@nanisoft/prism-ui 0.13.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +22 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/blocks/about-01/about.d.ts +296 -0
- package/dist/blocks/about-01/about.d.ts.map +1 -0
- package/dist/blocks/about-01/about.js +103 -0
- package/dist/blocks/about-01/index.d.ts +3 -0
- package/dist/blocks/about-01/index.d.ts.map +1 -0
- package/dist/blocks/about-01/index.js +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
- package/dist/blocks/accept-invite-01/index.d.ts +3 -0
- package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/index.js +1 -0
- package/dist/blocks/account-01/account-01.d.ts +393 -0
- package/dist/blocks/account-01/account-01.d.ts.map +1 -0
- package/dist/blocks/account-01/account-01.js +215 -0
- package/dist/blocks/account-01/index.d.ts +3 -0
- package/dist/blocks/account-01/index.d.ts.map +1 -0
- package/dist/blocks/account-01/index.js +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
- package/dist/blocks/activity-feed-01/index.d.ts +3 -0
- package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/index.js +1 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
- package/dist/blocks/address-book-01/address-book-01.js +233 -0
- package/dist/blocks/address-book-01/index.d.ts +3 -0
- package/dist/blocks/address-book-01/index.d.ts.map +1 -0
- package/dist/blocks/address-book-01/index.js +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
- package/dist/blocks/audit-log-01/index.d.ts +3 -0
- package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/index.js +1 -0
- package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
- package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
- package/dist/blocks/auth-form-01/auth-form.js +26 -3
- package/dist/blocks/awards-01/awards.d.ts +156 -0
- package/dist/blocks/awards-01/awards.d.ts.map +1 -0
- package/dist/blocks/awards-01/awards.js +102 -0
- package/dist/blocks/awards-01/index.d.ts +3 -0
- package/dist/blocks/awards-01/index.d.ts.map +1 -0
- package/dist/blocks/awards-01/index.js +1 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/backdrop.js +170 -0
- package/dist/blocks/backdrop-01/index.d.ts +3 -0
- package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/index.js +1 -0
- package/dist/blocks/bento-01/bento-01.d.ts +136 -0
- package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
- package/dist/blocks/bento-01/bento-01.js +97 -0
- package/dist/blocks/bento-01/index.d.ts +3 -0
- package/dist/blocks/bento-01/index.d.ts.map +1 -0
- package/dist/blocks/bento-01/index.js +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
- package/dist/blocks/billing-source-01/index.d.ts +3 -0
- package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/index.js +1 -0
- package/dist/blocks/bundle-01/bundle.d.ts +387 -0
- package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
- package/dist/blocks/bundle-01/bundle.js +153 -0
- package/dist/blocks/bundle-01/index.d.ts +3 -0
- package/dist/blocks/bundle-01/index.d.ts.map +1 -0
- package/dist/blocks/bundle-01/index.js +1 -0
- package/dist/blocks/calendar-01/calendar.d.ts +251 -0
- package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
- package/dist/blocks/calendar-01/calendar.js +191 -0
- package/dist/blocks/calendar-01/index.d.ts +3 -0
- package/dist/blocks/calendar-01/index.d.ts.map +1 -0
- package/dist/blocks/calendar-01/index.js +1 -0
- package/dist/blocks/capacity-01/capacity.d.ts +363 -0
- package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
- package/dist/blocks/capacity-01/capacity.js +208 -0
- package/dist/blocks/capacity-01/index.d.ts +3 -0
- package/dist/blocks/capacity-01/index.d.ts.map +1 -0
- package/dist/blocks/capacity-01/index.js +1 -0
- package/dist/blocks/careers-01/careers.d.ts +186 -0
- package/dist/blocks/careers-01/careers.d.ts.map +1 -0
- package/dist/blocks/careers-01/careers.js +83 -0
- package/dist/blocks/careers-01/index.d.ts +3 -0
- package/dist/blocks/careers-01/index.d.ts.map +1 -0
- package/dist/blocks/careers-01/index.js +1 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/case-studies.js +97 -0
- package/dist/blocks/case-studies-01/index.d.ts +3 -0
- package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/index.js +1 -0
- package/dist/blocks/case-study-01/case-study.d.ts +214 -0
- package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
- package/dist/blocks/case-study-01/case-study.js +79 -0
- package/dist/blocks/case-study-01/index.d.ts +3 -0
- package/dist/blocks/case-study-01/index.d.ts.map +1 -0
- package/dist/blocks/case-study-01/index.js +1 -0
- package/dist/blocks/changelog-01/changelog.d.ts +200 -0
- package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
- package/dist/blocks/changelog-01/changelog.js +155 -0
- package/dist/blocks/changelog-01/index.d.ts +3 -0
- package/dist/blocks/changelog-01/index.d.ts.map +1 -0
- package/dist/blocks/changelog-01/index.js +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
- package/dist/blocks/chart-card-01/index.d.ts +3 -0
- package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/index.js +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
- package/dist/blocks/chart-group-01/index.d.ts +3 -0
- package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/index.js +1 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/code-sample.js +104 -0
- package/dist/blocks/code-sample-01/index.d.ts +3 -0
- package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/index.js +1 -0
- package/dist/blocks/community-01/community.d.ts +183 -0
- package/dist/blocks/community-01/community.d.ts.map +1 -0
- package/dist/blocks/community-01/community.js +102 -0
- package/dist/blocks/community-01/index.d.ts +3 -0
- package/dist/blocks/community-01/index.d.ts.map +1 -0
- package/dist/blocks/community-01/index.js +1 -0
- package/dist/blocks/compare-01/compare.d.ts +184 -0
- package/dist/blocks/compare-01/compare.d.ts.map +1 -0
- package/dist/blocks/compare-01/compare.js +106 -0
- package/dist/blocks/compare-01/index.d.ts +3 -0
- package/dist/blocks/compare-01/index.d.ts.map +1 -0
- package/dist/blocks/compare-01/index.js +1 -0
- package/dist/blocks/compliance-01/compliance.d.ts +249 -0
- package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
- package/dist/blocks/compliance-01/compliance.js +130 -0
- package/dist/blocks/compliance-01/index.d.ts +3 -0
- package/dist/blocks/compliance-01/index.d.ts.map +1 -0
- package/dist/blocks/compliance-01/index.js +1 -0
- package/dist/blocks/consent-01/consent.d.ts +211 -0
- package/dist/blocks/consent-01/consent.d.ts.map +1 -0
- package/dist/blocks/consent-01/consent.js +101 -0
- package/dist/blocks/consent-01/index.d.ts +3 -0
- package/dist/blocks/consent-01/index.d.ts.map +1 -0
- package/dist/blocks/consent-01/index.js +1 -0
- package/dist/blocks/contact-01/contact.d.ts +319 -0
- package/dist/blocks/contact-01/contact.d.ts.map +1 -0
- package/dist/blocks/contact-01/contact.js +211 -0
- package/dist/blocks/contact-01/index.d.ts +3 -0
- package/dist/blocks/contact-01/index.d.ts.map +1 -0
- package/dist/blocks/contact-01/index.js +1 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/content-grid.js +155 -0
- package/dist/blocks/content-grid-01/index.d.ts +3 -0
- package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/index.js +1 -0
- package/dist/blocks/cta-01/cta.d.ts +7 -1
- package/dist/blocks/cta-01/cta.d.ts.map +1 -1
- package/dist/blocks/cta-01/cta.js +11 -2
- package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
- package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
- package/dist/blocks/dashboard-01/index.d.ts +3 -0
- package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/index.js +1 -0
- package/dist/blocks/data-table-01/data-table.d.ts +22 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +9 -5
- package/dist/blocks/delivery-01/delivery.d.ts +343 -0
- package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
- package/dist/blocks/delivery-01/delivery.js +212 -0
- package/dist/blocks/delivery-01/index.d.ts +3 -0
- package/dist/blocks/delivery-01/index.d.ts.map +1 -0
- package/dist/blocks/delivery-01/index.js +1 -0
- package/dist/blocks/directory-01/directory-01.d.ts +316 -0
- package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
- package/dist/blocks/directory-01/directory-01.js +252 -0
- package/dist/blocks/directory-01/index.d.ts +3 -0
- package/dist/blocks/directory-01/index.d.ts.map +1 -0
- package/dist/blocks/directory-01/index.js +1 -0
- package/dist/blocks/download-01/download.d.ts +261 -0
- package/dist/blocks/download-01/download.d.ts.map +1 -0
- package/dist/blocks/download-01/download.js +115 -0
- package/dist/blocks/download-01/index.d.ts +3 -0
- package/dist/blocks/download-01/index.d.ts.map +1 -0
- package/dist/blocks/download-01/index.js +1 -0
- package/dist/blocks/faq-01/faq.d.ts +128 -0
- package/dist/blocks/faq-01/faq.d.ts.map +1 -0
- package/dist/blocks/faq-01/faq.js +53 -0
- package/dist/blocks/faq-01/index.d.ts +3 -0
- package/dist/blocks/faq-01/index.d.ts.map +1 -0
- package/dist/blocks/faq-01/index.js +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
- package/dist/blocks/feature-rows-01/index.d.ts +3 -0
- package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/index.js +1 -0
- package/dist/blocks/feedback-01/feedback.d.ts +235 -0
- package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
- package/dist/blocks/feedback-01/feedback.js +113 -0
- package/dist/blocks/feedback-01/index.d.ts +3 -0
- package/dist/blocks/feedback-01/index.d.ts.map +1 -0
- package/dist/blocks/feedback-01/index.js +1 -0
- package/dist/blocks/field-map-01/field-map.d.ts +247 -0
- package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
- package/dist/blocks/field-map-01/field-map.js +183 -0
- package/dist/blocks/field-map-01/index.d.ts +3 -0
- package/dist/blocks/field-map-01/index.d.ts.map +1 -0
- package/dist/blocks/field-map-01/index.js +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
- package/dist/blocks/forgot-password-01/index.d.ts +3 -0
- package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/index.js +1 -0
- package/dist/blocks/gallery-01/gallery.d.ts +208 -0
- package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
- package/dist/blocks/gallery-01/gallery.js +174 -0
- package/dist/blocks/gallery-01/index.d.ts +3 -0
- package/dist/blocks/gallery-01/index.d.ts.map +1 -0
- package/dist/blocks/gallery-01/index.js +1 -0
- package/dist/blocks/gantt-01/gantt.d.ts +290 -0
- package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
- package/dist/blocks/gantt-01/gantt.js +224 -0
- package/dist/blocks/gantt-01/index.d.ts +3 -0
- package/dist/blocks/gantt-01/index.d.ts.map +1 -0
- package/dist/blocks/gantt-01/index.js +1 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
- package/dist/blocks/handoff-01/handoff-01.js +180 -0
- package/dist/blocks/handoff-01/index.d.ts +3 -0
- package/dist/blocks/handoff-01/index.d.ts.map +1 -0
- package/dist/blocks/handoff-01/index.js +1 -0
- package/dist/blocks/help-01/help.d.ts +254 -0
- package/dist/blocks/help-01/help.d.ts.map +1 -0
- package/dist/blocks/help-01/help.js +188 -0
- package/dist/blocks/help-01/index.d.ts +3 -0
- package/dist/blocks/help-01/index.d.ts.map +1 -0
- package/dist/blocks/help-01/index.js +1 -0
- package/dist/blocks/hero-01/hero.d.ts +105 -34
- package/dist/blocks/hero-01/hero.d.ts.map +1 -1
- package/dist/blocks/hero-01/hero.js +23 -15
- package/dist/blocks/hero-01/index.d.ts +1 -1
- package/dist/blocks/hero-01/index.d.ts.map +1 -1
- package/dist/blocks/hero-02/hero-02.d.ts +244 -0
- package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
- package/dist/blocks/hero-02/hero-02.js +87 -0
- package/dist/blocks/hero-02/index.d.ts +3 -0
- package/dist/blocks/hero-02/index.d.ts.map +1 -0
- package/dist/blocks/hero-02/index.js +1 -0
- package/dist/blocks/hero-03/hero-03.d.ts +247 -0
- package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
- package/dist/blocks/hero-03/hero-03.js +93 -0
- package/dist/blocks/hero-03/index.d.ts +3 -0
- package/dist/blocks/hero-03/index.d.ts.map +1 -0
- package/dist/blocks/hero-03/index.js +1 -0
- package/dist/blocks/history-01/history-01.d.ts +414 -0
- package/dist/blocks/history-01/history-01.d.ts.map +1 -0
- package/dist/blocks/history-01/history-01.js +285 -0
- package/dist/blocks/history-01/index.d.ts +3 -0
- package/dist/blocks/history-01/index.d.ts.map +1 -0
- package/dist/blocks/history-01/index.js +1 -0
- package/dist/blocks/inbox-01/inbox.d.ts +349 -0
- package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
- package/dist/blocks/inbox-01/inbox.js +244 -0
- package/dist/blocks/inbox-01/index.d.ts +3 -0
- package/dist/blocks/inbox-01/index.d.ts.map +1 -0
- package/dist/blocks/inbox-01/index.js +1 -0
- package/dist/blocks/index.d.ts +203 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +118 -0
- package/dist/blocks/industries-01/index.d.ts +3 -0
- package/dist/blocks/industries-01/index.d.ts.map +1 -0
- package/dist/blocks/industries-01/index.js +1 -0
- package/dist/blocks/industries-01/industries.d.ts +164 -0
- package/dist/blocks/industries-01/industries.d.ts.map +1 -0
- package/dist/blocks/industries-01/industries.js +96 -0
- package/dist/blocks/intake-01/index.d.ts +3 -0
- package/dist/blocks/intake-01/index.d.ts.map +1 -0
- package/dist/blocks/intake-01/index.js +1 -0
- package/dist/blocks/intake-01/intake-01.d.ts +305 -0
- package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
- package/dist/blocks/intake-01/intake-01.js +178 -0
- package/dist/blocks/integration-01/index.d.ts +3 -0
- package/dist/blocks/integration-01/index.d.ts.map +1 -0
- package/dist/blocks/integration-01/index.js +1 -0
- package/dist/blocks/integration-01/integration.d.ts +226 -0
- package/dist/blocks/integration-01/integration.d.ts.map +1 -0
- package/dist/blocks/integration-01/integration.js +170 -0
- package/dist/blocks/invite-user-01/index.d.ts +3 -0
- package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/index.js +1 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/invite-user.js +228 -0
- package/dist/blocks/issue-detail-01/index.d.ts +3 -0
- package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/index.js +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
- package/dist/blocks/issue-list-01/index.d.ts +3 -0
- package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/index.js +1 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/issue-list.js +284 -0
- package/dist/blocks/kanban-01/index.d.ts +3 -0
- package/dist/blocks/kanban-01/index.d.ts.map +1 -0
- package/dist/blocks/kanban-01/index.js +1 -0
- package/dist/blocks/kanban-01/kanban.d.ts +278 -0
- package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
- package/dist/blocks/kanban-01/kanban.js +144 -0
- package/dist/blocks/leaderboard-01/index.d.ts +3 -0
- package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/index.js +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
- package/dist/blocks/login-01/index.d.ts +3 -0
- package/dist/blocks/login-01/index.d.ts.map +1 -0
- package/dist/blocks/login-01/index.js +1 -0
- package/dist/blocks/login-01/login-01.d.ts +356 -0
- package/dist/blocks/login-01/login-01.d.ts.map +1 -0
- package/dist/blocks/login-01/login-01.js +249 -0
- package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
- package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/index.js +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
- package/dist/blocks/magic-link-01/index.d.ts +3 -0
- package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/index.js +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
- package/dist/blocks/member-list-01/index.d.ts +3 -0
- package/dist/blocks/member-list-01/index.d.ts.map +1 -0
- package/dist/blocks/member-list-01/index.js +1 -0
- package/dist/blocks/member-list-01/member-list.d.ts +192 -0
- package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
- package/dist/blocks/member-list-01/member-list.js +142 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/index.js +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
- package/dist/blocks/newsletter-01/index.d.ts +3 -0
- package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/index.js +1 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/newsletter.js +102 -0
- package/dist/blocks/notification-center-01/index.d.ts +3 -0
- package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/index.js +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
- package/dist/blocks/offer-01/index.d.ts +3 -0
- package/dist/blocks/offer-01/index.d.ts.map +1 -0
- package/dist/blocks/offer-01/index.js +1 -0
- package/dist/blocks/offer-01/offer.d.ts +139 -0
- package/dist/blocks/offer-01/offer.d.ts.map +1 -0
- package/dist/blocks/offer-01/offer.js +81 -0
- package/dist/blocks/offering-01/index.d.ts +3 -0
- package/dist/blocks/offering-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-01/index.js +1 -0
- package/dist/blocks/offering-01/offering.d.ts +245 -0
- package/dist/blocks/offering-01/offering.d.ts.map +1 -0
- package/dist/blocks/offering-01/offering.js +144 -0
- package/dist/blocks/offering-categories-01/index.d.ts +3 -0
- package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/index.js +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
- package/dist/blocks/offering-list-01/index.d.ts +3 -0
- package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/index.js +1 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/offering-list.js +366 -0
- package/dist/blocks/onboarding-01/index.d.ts +3 -0
- package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/index.js +1 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/onboarding.js +182 -0
- package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
- package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/index.js +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
- package/dist/blocks/page-header-01/index.d.ts +1 -1
- package/dist/blocks/page-header-01/index.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.d.ts +131 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +33 -9
- package/dist/blocks/passkey-01/index.d.ts +3 -0
- package/dist/blocks/passkey-01/index.d.ts.map +1 -0
- package/dist/blocks/passkey-01/index.js +1 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
- package/dist/blocks/passkey-01/passkey-01.js +192 -0
- package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
- package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/index.js +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
- package/dist/blocks/pricing-01/index.d.ts +1 -0
- package/dist/blocks/pricing-01/index.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.d.ts +118 -1
- package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.js +9 -2
- package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
- package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/index.js +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
- package/dist/blocks/project-01/index.d.ts +3 -0
- package/dist/blocks/project-01/index.d.ts.map +1 -0
- package/dist/blocks/project-01/index.js +1 -0
- package/dist/blocks/project-01/project.d.ts +323 -0
- package/dist/blocks/project-01/project.d.ts.map +1 -0
- package/dist/blocks/project-01/project.js +247 -0
- package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
- package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/index.js +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
- package/dist/blocks/project-list-01/index.d.ts +3 -0
- package/dist/blocks/project-list-01/index.d.ts.map +1 -0
- package/dist/blocks/project-list-01/index.js +1 -0
- package/dist/blocks/project-list-01/project-list.d.ts +301 -0
- package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
- package/dist/blocks/project-list-01/project-list.js +305 -0
- package/dist/blocks/provisioning-01/index.d.ts +3 -0
- package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/index.js +1 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/provisioning.js +230 -0
- package/dist/blocks/quick-view-01/index.d.ts +3 -0
- package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/index.js +1 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/quick-view.js +136 -0
- package/dist/blocks/rate-card-01/index.d.ts +3 -0
- package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/index.js +1 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/rate-card.js +79 -0
- package/dist/blocks/reset-password-01/index.d.ts +3 -0
- package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/index.js +1 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/reset-password.js +175 -0
- package/dist/blocks/resource-list-01/index.d.ts +3 -0
- package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/index.js +1 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/resource-list.js +154 -0
- package/dist/blocks/retention-01/index.d.ts +3 -0
- package/dist/blocks/retention-01/index.d.ts.map +1 -0
- package/dist/blocks/retention-01/index.js +1 -0
- package/dist/blocks/retention-01/retention.d.ts +255 -0
- package/dist/blocks/retention-01/retention.d.ts.map +1 -0
- package/dist/blocks/retention-01/retention.js +145 -0
- package/dist/blocks/run-console-01/run-console.d.ts +14 -1
- package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
- package/dist/blocks/run-console-01/run-console.js +4 -2
- package/dist/blocks/services-01/index.d.ts +3 -0
- package/dist/blocks/services-01/index.d.ts.map +1 -0
- package/dist/blocks/services-01/index.js +1 -0
- package/dist/blocks/services-01/services.d.ts +159 -0
- package/dist/blocks/services-01/services.d.ts.map +1 -0
- package/dist/blocks/services-01/services.js +81 -0
- package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
- package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/index.js +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
- package/dist/blocks/settings-members-01/index.d.ts +3 -0
- package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/index.js +1 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/settings-members.js +255 -0
- package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
- package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/index.js +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
- package/dist/blocks/settings-security-01/index.d.ts +3 -0
- package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/index.js +1 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/settings-security.js +244 -0
- package/dist/blocks/shortlist-01/index.d.ts +3 -0
- package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/index.js +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
- package/dist/blocks/showcase-01/index.d.ts +3 -0
- package/dist/blocks/showcase-01/index.d.ts.map +1 -0
- package/dist/blocks/showcase-01/index.js +1 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
- package/dist/blocks/showcase-01/showcase-01.js +84 -0
- package/dist/blocks/signup-01/index.d.ts +3 -0
- package/dist/blocks/signup-01/index.d.ts.map +1 -0
- package/dist/blocks/signup-01/index.js +1 -0
- package/dist/blocks/signup-01/signup-01.d.ts +405 -0
- package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
- package/dist/blocks/signup-01/signup-01.js +209 -0
- package/dist/blocks/site-footer/site-footer.d.ts +34 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +24 -2
- package/dist/blocks/site-header/site-header.js +1 -1
- package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
- package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
- package/dist/blocks/site-navbar/site-navbar.js +33 -4
- package/dist/blocks/spec-table-01/index.d.ts +3 -0
- package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/index.js +1 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/spec-table.js +217 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts +13 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -1
- package/dist/blocks/stack-grid-01/stack-grid.js +14 -1
- package/dist/blocks/story-01/index.d.ts +3 -0
- package/dist/blocks/story-01/index.d.ts.map +1 -0
- package/dist/blocks/story-01/index.js +1 -0
- package/dist/blocks/story-01/story.d.ts +153 -0
- package/dist/blocks/story-01/story.d.ts.map +1 -0
- package/dist/blocks/story-01/story.js +103 -0
- package/dist/blocks/summary-01/index.d.ts +3 -0
- package/dist/blocks/summary-01/index.d.ts.map +1 -0
- package/dist/blocks/summary-01/index.js +1 -0
- package/dist/blocks/summary-01/summary.d.ts +300 -0
- package/dist/blocks/summary-01/summary.d.ts.map +1 -0
- package/dist/blocks/summary-01/summary.js +174 -0
- package/dist/blocks/team-01/index.d.ts +3 -0
- package/dist/blocks/team-01/index.d.ts.map +1 -0
- package/dist/blocks/team-01/index.js +1 -0
- package/dist/blocks/team-01/team.d.ts +176 -0
- package/dist/blocks/team-01/team.d.ts.map +1 -0
- package/dist/blocks/team-01/team.js +117 -0
- package/dist/blocks/testimonial-01/index.d.ts +3 -0
- package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/index.js +1 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/testimonial.js +87 -0
- package/dist/blocks/todo-01/index.d.ts +3 -0
- package/dist/blocks/todo-01/index.d.ts.map +1 -0
- package/dist/blocks/todo-01/index.js +1 -0
- package/dist/blocks/todo-01/todo.d.ts +286 -0
- package/dist/blocks/todo-01/todo.d.ts.map +1 -0
- package/dist/blocks/todo-01/todo.js +149 -0
- package/dist/blocks/trend-01/index.d.ts +3 -0
- package/dist/blocks/trend-01/index.d.ts.map +1 -0
- package/dist/blocks/trend-01/index.js +1 -0
- package/dist/blocks/trend-01/trend.d.ts +184 -0
- package/dist/blocks/trend-01/trend.d.ts.map +1 -0
- package/dist/blocks/trend-01/trend.js +99 -0
- package/dist/blocks/trust-strip-01/index.d.ts +3 -0
- package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/index.js +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
- package/dist/blocks/two-factor-01/index.d.ts +3 -0
- package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/index.js +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
- package/dist/blocks/user-profile-01/index.d.ts +3 -0
- package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/index.js +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
- package/dist/blocks/verify-email-01/index.d.ts +3 -0
- package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/index.js +1 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/verify-email.js +190 -0
- package/dist/blocks/waitlist-01/index.d.ts +3 -0
- package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/index.js +1 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/waitlist.js +75 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1641 -1
- package/dist/components/index.d.ts +114 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +134 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -2
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +22 -4
- package/dist/components/ui/announcement.d.ts +169 -0
- package/dist/components/ui/announcement.d.ts.map +1 -0
- package/dist/components/ui/announcement.js +123 -0
- package/dist/components/ui/avatar-group.d.ts +176 -0
- package/dist/components/ui/avatar-group.d.ts.map +1 -0
- package/dist/components/ui/avatar-group.js +135 -0
- package/dist/components/ui/billing-source.d.ts +293 -0
- package/dist/components/ui/billing-source.d.ts.map +1 -0
- package/dist/components/ui/billing-source.js +136 -0
- package/dist/components/ui/button.d.ts +16 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +17 -2
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +30 -2
- package/dist/components/ui/carousel.d.ts +7 -0
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +58 -1
- package/dist/components/ui/chart.d.ts +334 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +369 -0
- package/dist/components/ui/checkbox.d.ts +10 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +19 -1
- package/dist/components/ui/checklist.d.ts +262 -0
- package/dist/components/ui/checklist.d.ts.map +1 -0
- package/dist/components/ui/checklist.js +135 -0
- package/dist/components/ui/choice-card.d.ts +273 -0
- package/dist/components/ui/choice-card.d.ts.map +1 -0
- package/dist/components/ui/choice-card.js +138 -0
- package/dist/components/ui/code-block.d.ts +182 -0
- package/dist/components/ui/code-block.d.ts.map +1 -0
- package/dist/components/ui/code-block.js +108 -0
- package/dist/components/ui/cohort-grid.d.ts +210 -0
- package/dist/components/ui/cohort-grid.d.ts.map +1 -0
- package/dist/components/ui/cohort-grid.js +202 -0
- package/dist/components/ui/collapsible.d.ts +11 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +13 -2
- package/dist/components/ui/combobox.d.ts +4 -1
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +20 -4
- package/dist/components/ui/command-palette.d.ts +11 -0
- package/dist/components/ui/command-palette.d.ts.map +1 -1
- package/dist/components/ui/command-palette.js +49 -3
- package/dist/components/ui/contribution-graph.d.ts +156 -0
- package/dist/components/ui/contribution-graph.d.ts.map +1 -0
- package/dist/components/ui/contribution-graph.js +170 -0
- package/dist/components/ui/creatable-combobox.d.ts +153 -0
- package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
- package/dist/components/ui/creatable-combobox.js +285 -0
- package/dist/components/ui/data-toolbar.d.ts +133 -0
- package/dist/components/ui/data-toolbar.d.ts.map +1 -0
- package/dist/components/ui/data-toolbar.js +67 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +9 -1
- package/dist/components/ui/diagram.d.ts +38 -7
- package/dist/components/ui/diagram.d.ts.map +1 -1
- package/dist/components/ui/diagram.js +134 -52
- package/dist/components/ui/dialog.d.ts +31 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +40 -6
- package/dist/components/ui/drawer.d.ts +270 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +241 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +6 -1
- package/dist/components/ui/dropzone.d.ts +147 -0
- package/dist/components/ui/dropzone.d.ts.map +1 -0
- package/dist/components/ui/dropzone.js +141 -0
- package/dist/components/ui/emoji-picker.d.ts +328 -0
- package/dist/components/ui/emoji-picker.d.ts.map +1 -0
- package/dist/components/ui/emoji-picker.js +278 -0
- package/dist/components/ui/fact-list.d.ts +17 -0
- package/dist/components/ui/fact-list.d.ts.map +1 -1
- package/dist/components/ui/fact-list.js +18 -1
- package/dist/components/ui/file-upload.d.ts +152 -0
- package/dist/components/ui/file-upload.d.ts.map +1 -0
- package/dist/components/ui/file-upload.js +101 -0
- package/dist/components/ui/filter-panel.d.ts +164 -0
- package/dist/components/ui/filter-panel.d.ts.map +1 -0
- package/dist/components/ui/filter-panel.js +91 -0
- package/dist/components/ui/form-dialog.d.ts +257 -0
- package/dist/components/ui/form-dialog.d.ts.map +1 -0
- package/dist/components/ui/form-dialog.js +176 -0
- package/dist/components/ui/form-wizard.d.ts +251 -0
- package/dist/components/ui/form-wizard.d.ts.map +1 -0
- package/dist/components/ui/form-wizard.js +151 -0
- package/dist/components/ui/image-list-field.d.ts +232 -0
- package/dist/components/ui/image-list-field.d.ts.map +1 -0
- package/dist/components/ui/image-list-field.js +168 -0
- package/dist/components/ui/image-zoom.d.ts +164 -0
- package/dist/components/ui/image-zoom.d.ts.map +1 -0
- package/dist/components/ui/image-zoom.js +169 -0
- package/dist/components/ui/intensity-grid.d.ts +270 -0
- package/dist/components/ui/intensity-grid.d.ts.map +1 -0
- package/dist/components/ui/intensity-grid.js +211 -0
- package/dist/components/ui/lifecycle-button.d.ts +276 -0
- package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
- package/dist/components/ui/lifecycle-button.js +144 -0
- package/dist/components/ui/lightbox.d.ts +165 -0
- package/dist/components/ui/lightbox.d.ts.map +1 -0
- package/dist/components/ui/lightbox.js +130 -0
- package/dist/components/ui/list-panel.d.ts +288 -0
- package/dist/components/ui/list-panel.d.ts.map +1 -0
- package/dist/components/ui/list-panel.js +139 -0
- package/dist/components/ui/mega-menu.d.ts +244 -0
- package/dist/components/ui/mega-menu.d.ts.map +1 -0
- package/dist/components/ui/mega-menu.js +97 -0
- package/dist/components/ui/menubar.d.ts +9 -0
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +10 -1
- package/dist/components/ui/metric.d.ts +123 -0
- package/dist/components/ui/metric.d.ts.map +1 -0
- package/dist/components/ui/metric.js +68 -0
- package/dist/components/ui/mini-calendar.d.ts +143 -0
- package/dist/components/ui/mini-calendar.d.ts.map +1 -0
- package/dist/components/ui/mini-calendar.js +261 -0
- package/dist/components/ui/mode-toggle.d.ts +102 -0
- package/dist/components/ui/mode-toggle.d.ts.map +1 -0
- package/dist/components/ui/mode-toggle.js +83 -0
- package/dist/components/ui/money-field.d.ts +200 -0
- package/dist/components/ui/money-field.d.ts.map +1 -0
- package/dist/components/ui/money-field.js +215 -0
- package/dist/components/ui/multi-combobox.d.ts +181 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.js +297 -0
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js +8 -1
- package/dist/components/ui/navigation-menu.d.ts +7 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +8 -1
- package/dist/components/ui/nested-tabs.d.ts +188 -0
- package/dist/components/ui/nested-tabs.d.ts.map +1 -0
- package/dist/components/ui/nested-tabs.js +75 -0
- package/dist/components/ui/number-field.d.ts +40 -7
- package/dist/components/ui/number-field.d.ts.map +1 -1
- package/dist/components/ui/number-field.js +37 -7
- package/dist/components/ui/overflow-actions.d.ts +169 -0
- package/dist/components/ui/overflow-actions.d.ts.map +1 -0
- package/dist/components/ui/overflow-actions.js +266 -0
- package/dist/components/ui/pack-swatch.d.ts +177 -0
- package/dist/components/ui/pack-swatch.d.ts.map +1 -0
- package/dist/components/ui/pack-swatch.js +117 -0
- package/dist/components/ui/pack-switcher.d.ts +221 -0
- package/dist/components/ui/pack-switcher.d.ts.map +1 -0
- package/dist/components/ui/pack-switcher.js +94 -0
- package/dist/components/ui/pagination.d.ts +22 -0
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +23 -1
- package/dist/components/ui/password-field.d.ts +122 -0
- package/dist/components/ui/password-field.d.ts.map +1 -0
- package/dist/components/ui/password-field.js +69 -0
- package/dist/components/ui/pill.d.ts +172 -0
- package/dist/components/ui/pill.d.ts.map +1 -0
- package/dist/components/ui/pill.js +102 -0
- package/dist/components/ui/platform-modifier-key.d.ts +129 -0
- package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
- package/dist/components/ui/platform-modifier-key.js +125 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -1
- package/dist/components/ui/price.d.ts +144 -0
- package/dist/components/ui/price.d.ts.map +1 -0
- package/dist/components/ui/price.js +107 -0
- package/dist/components/ui/progress.d.ts +55 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +110 -2
- package/dist/components/ui/prompt-composer.d.ts +302 -0
- package/dist/components/ui/prompt-composer.d.ts.map +1 -0
- package/dist/components/ui/prompt-composer.js +145 -0
- package/dist/components/ui/proportion-list.d.ts +188 -0
- package/dist/components/ui/proportion-list.d.ts.map +1 -0
- package/dist/components/ui/proportion-list.js +134 -0
- package/dist/components/ui/prose.d.ts +34 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +41 -1
- package/dist/components/ui/pulse-graph.d.ts +36 -4
- package/dist/components/ui/pulse-graph.d.ts.map +1 -1
- package/dist/components/ui/pulse-graph.js +174 -60
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +8 -1
- package/dist/components/ui/range-field.d.ts +158 -0
- package/dist/components/ui/range-field.d.ts.map +1 -0
- package/dist/components/ui/range-field.js +208 -0
- package/dist/components/ui/relative-time.d.ts +116 -0
- package/dist/components/ui/relative-time.d.ts.map +1 -0
- package/dist/components/ui/relative-time.js +67 -0
- package/dist/components/ui/reorderable-list.d.ts +262 -0
- package/dist/components/ui/reorderable-list.d.ts.map +1 -0
- package/dist/components/ui/reorderable-list.js +325 -0
- package/dist/components/ui/repeatable-rows.d.ts +241 -0
- package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
- package/dist/components/ui/repeatable-rows.js +221 -0
- package/dist/components/ui/repo-stars.d.ts +165 -0
- package/dist/components/ui/repo-stars.d.ts.map +1 -0
- package/dist/components/ui/repo-stars.js +92 -0
- package/dist/components/ui/resizable.d.ts +24 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +96 -4
- package/dist/components/ui/search-dialog.d.ts +40 -5
- package/dist/components/ui/search-dialog.d.ts.map +1 -1
- package/dist/components/ui/search-dialog.js +94 -16
- package/dist/components/ui/search-field.d.ts +159 -0
- package/dist/components/ui/search-field.d.ts.map +1 -0
- package/dist/components/ui/search-field.js +98 -0
- package/dist/components/ui/section.d.ts +110 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +111 -3
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +9 -1
- package/dist/components/ui/selection-toolbar.d.ts +166 -0
- package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
- package/dist/components/ui/selection-toolbar.js +139 -0
- package/dist/components/ui/sidebar.d.ts +29 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +35 -2
- package/dist/components/ui/signal-field.d.ts.map +1 -1
- package/dist/components/ui/signal-field.js +1 -1
- package/dist/components/ui/slider.d.ts +7 -0
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +32 -1
- package/dist/components/ui/sparkline.d.ts +117 -0
- package/dist/components/ui/sparkline.d.ts.map +1 -0
- package/dist/components/ui/sparkline.js +113 -0
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +13 -0
- package/dist/components/ui/split-button.d.ts +207 -0
- package/dist/components/ui/split-button.d.ts.map +1 -0
- package/dist/components/ui/split-button.js +75 -0
- package/dist/components/ui/stateful-table.d.ts +345 -0
- package/dist/components/ui/stateful-table.d.ts.map +1 -0
- package/dist/components/ui/stateful-table.js +169 -0
- package/dist/components/ui/status.d.ts +99 -0
- package/dist/components/ui/status.d.ts.map +1 -0
- package/dist/components/ui/status.js +63 -0
- package/dist/components/ui/stepper.d.ts +155 -0
- package/dist/components/ui/stepper.d.ts.map +1 -0
- package/dist/components/ui/stepper.js +83 -0
- package/dist/components/ui/steps.d.ts +141 -0
- package/dist/components/ui/steps.d.ts.map +1 -0
- package/dist/components/ui/steps.js +128 -0
- package/dist/components/ui/switch.d.ts +8 -0
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +12 -1
- package/dist/components/ui/tabs.d.ts +21 -2
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +23 -4
- package/dist/components/ui/tag-group.d.ts +154 -0
- package/dist/components/ui/tag-group.d.ts.map +1 -0
- package/dist/components/ui/tag-group.js +111 -0
- package/dist/components/ui/task-progress.d.ts +149 -0
- package/dist/components/ui/task-progress.d.ts.map +1 -0
- package/dist/components/ui/task-progress.js +110 -0
- package/dist/components/ui/text-format-toolbar.d.ts +211 -0
- package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
- package/dist/components/ui/text-format-toolbar.js +186 -0
- package/dist/components/ui/timeline.d.ts.map +1 -1
- package/dist/components/ui/timeline.js +10 -1
- package/dist/components/ui/toast.d.ts +32 -10
- package/dist/components/ui/toast.d.ts.map +1 -1
- package/dist/components/ui/toast.js +150 -47
- package/dist/components/ui/toggle-group.d.ts +14 -5
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +15 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +9 -1
- package/dist/components/ui/tree.d.ts +8 -0
- package/dist/components/ui/tree.d.ts.map +1 -1
- package/dist/components/ui/tree.js +92 -13
- package/dist/components/ui/video-player.d.ts +236 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +72 -0
- package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -0
- package/dist/lib/figure.d.ts +149 -0
- package/dist/lib/figure.d.ts.map +1 -0
- package/dist/lib/figure.js +242 -0
- package/dist/lib/utils.d.ts +29 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +35 -0
- package/dist/live/index.d.ts +10 -3
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +12 -3
- package/dist/live/run-stream-01/run-stream.d.ts.map +1 -1
- package/dist/live/run-stream-01/run-stream.js +6 -5
- package/dist/live/tool-ledger-01/index.d.ts +3 -0
- package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/index.js +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
- package/dist/pages/about-page/index.d.ts +306 -0
- package/dist/pages/about-page/index.d.ts.map +1 -0
- package/dist/pages/about-page/index.js +161 -0
- package/dist/pages/blog-post-page/index.d.ts +36 -15
- package/dist/pages/blog-post-page/index.d.ts.map +1 -1
- package/dist/pages/blog-post-page/index.js +35 -10
- package/dist/pages/careers-page/index.d.ts +288 -0
- package/dist/pages/careers-page/index.d.ts.map +1 -0
- package/dist/pages/careers-page/index.js +182 -0
- package/dist/pages/changelog-page/index.d.ts +255 -0
- package/dist/pages/changelog-page/index.d.ts.map +1 -0
- package/dist/pages/changelog-page/index.js +86 -0
- package/dist/pages/contact-page/index.d.ts +261 -0
- package/dist/pages/contact-page/index.d.ts.map +1 -0
- package/dist/pages/contact-page/index.js +136 -0
- package/dist/pages/docs-shell/docs-shell.d.ts +126 -16
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +229 -28
- package/dist/pages/error-page/index.d.ts +188 -0
- package/dist/pages/error-page/index.d.ts.map +1 -0
- package/dist/pages/error-page/index.js +102 -0
- package/dist/pages/index.d.ts +10 -0
- package/dist/pages/index.d.ts.map +1 -1
- package/dist/pages/index.js +14 -0
- package/dist/pages/legal-page/index.d.ts +194 -0
- package/dist/pages/legal-page/index.d.ts.map +1 -0
- package/dist/pages/legal-page/index.js +99 -0
- package/dist/pages/not-found-page/index.d.ts.map +1 -1
- package/dist/pages/not-found-page/index.js +4 -3
- package/dist/pages/onboarding-page/index.d.ts +199 -0
- package/dist/pages/onboarding-page/index.d.ts.map +1 -0
- package/dist/pages/onboarding-page/index.js +71 -0
- package/dist/pages/pricing-page/index.d.ts +286 -0
- package/dist/pages/pricing-page/index.d.ts.map +1 -0
- package/dist/pages/pricing-page/index.js +139 -0
- package/dist/pages/search-page/index.d.ts +305 -0
- package/dist/pages/search-page/index.d.ts.map +1 -0
- package/dist/pages/search-page/index.js +142 -0
- package/dist/pages/status-page/index.d.ts +366 -0
- package/dist/pages/status-page/index.d.ts.map +1 -0
- package/dist/pages/status-page/index.js +136 -0
- package/dist/styles.css +1105 -62
- package/package.json +9 -3
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar.js';
|
|
3
|
+
import { FactList } from '../../components/ui/fact-list.js';
|
|
4
|
+
import { Section, SectionHeading } from '../../components/ui/section.js';
|
|
5
|
+
import { Separator } from '../../components/ui/separator.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* The initials a name produces, and the rule that produces them.
|
|
9
|
+
*
|
|
10
|
+
* Two letters from the first and last words, and the first two characters of a
|
|
11
|
+
* single word. It is the same rule `AvatarGroup`, `Team01` and `MemberList01` each
|
|
12
|
+
* apply, repeated rather than imported, and the boundary is the reason: that
|
|
13
|
+
* helper is private to its module, and exporting it would make a private
|
|
14
|
+
* derivation part of a published surface in order to save six lines in a Block.
|
|
15
|
+
* The cost is stated rather than hidden: four modules now carry this rule, so a
|
|
16
|
+
* change to it is a change in four places, and a caller who needs a case the rule
|
|
17
|
+
* does not cover composes `Avatar` themselves and passes their own node.
|
|
18
|
+
*/
|
|
19
|
+
function initialsOf(name) {
|
|
20
|
+
const words = name.trim().split(/\s+/).filter(Boolean);
|
|
21
|
+
const first = words[0];
|
|
22
|
+
if (first === undefined)
|
|
23
|
+
return '';
|
|
24
|
+
if (words.length === 1)
|
|
25
|
+
return first.slice(0, 2).toUpperCase();
|
|
26
|
+
return `${first.charAt(0)}${words[words.length - 1].charAt(0)}`.toUpperCase();
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* One person in full: a portrait where there is one, a name, a role, a biography,
|
|
30
|
+
* a set of facts, the caller's own controls, and room for the caller's own
|
|
31
|
+
* sections underneath.
|
|
32
|
+
*
|
|
33
|
+
* **This is a Block and not a Card, and not `MemberList01`, and the three facts
|
|
34
|
+
* that separate them are all about how many people are on the page and why the
|
|
35
|
+
* reader came.** A profile is one person in full and the reader arrived for them:
|
|
36
|
+
* they followed a link, they opened a record, they are looking at the one subject
|
|
37
|
+
* the page is about, and everything on it is about that person. A member list is
|
|
38
|
+
* many people and the reader is looking for one, which is the opposite reading
|
|
39
|
+
* order: the reader scans a column of names and stops at one, so a member list is
|
|
40
|
+
* optimised for scanning and a profile is optimised for reading. A card is a
|
|
41
|
+
* bounded group of related content, and a profile is not a group: it has one
|
|
42
|
+
* subject, and a subject in a frame reads as a set of facts about a thing rather
|
|
43
|
+
* than as the thing. The three are separately the right answers to three different
|
|
44
|
+
* pages, and a Block that blurred them would be a Block whose weight was wrong for
|
|
45
|
+
* whichever page used it.
|
|
46
|
+
*
|
|
47
|
+
* **The facts compose `FactList` rather than being drawn as a definition list
|
|
48
|
+
* here, and the reason is the empty case, quoted from the Component: "An empty
|
|
49
|
+
* list renders nothing rather than an empty frame, so a caller that has nothing to
|
|
50
|
+
* say does not get a bordered box with a title above it."** A profile is very
|
|
51
|
+
* often a person with three facts and also a person with none, and the second case
|
|
52
|
+
* is not a defect to be papered over with a placeholder row; it is a person whose
|
|
53
|
+
* whole profile is a name. `FactList` draws the real `<dl>` with the term before its
|
|
54
|
+
* answer, which is what a specification is and what a pair of columns is not, and
|
|
55
|
+
* it draws the hairlines and the alignment that a hand-rolled version gets subtly
|
|
56
|
+
* wrong. Writing a second definition list here would put a second answer to "how
|
|
57
|
+
* does a set of facts read" in one package, and the second answer is always the one
|
|
58
|
+
* that disagrees. The cost is stated rather than hidden: `FactList` keys its own
|
|
59
|
+
* rows by position, so a caller whose facts reorder between renders and who needs
|
|
60
|
+
* row identity composes the Component directly rather than passing them here.
|
|
61
|
+
*
|
|
62
|
+
* **The portrait is a slot and no mark is drawn in its place, because a fallback
|
|
63
|
+
* which is a person-shaped glyph is a claim about a person this system knows
|
|
64
|
+
* nothing about.** A silhouette says there is a person here, which is true, and it
|
|
65
|
+
* says it identically about every reader of every product that installs this
|
|
66
|
+
* Block, so a reader who has seen four of them has learned nothing about any of
|
|
67
|
+
* them. The fallback that ships is the person's own initials, derived from the
|
|
68
|
+
* caller's data by a rule this file repeats rather than imports, so a reader who
|
|
69
|
+
* cannot see the photograph still recognises the name printed beside it. Omit
|
|
70
|
+
* `avatar` entirely and nothing is drawn where the portrait would be, which is the
|
|
71
|
+
* honest state: a person the caller has no photograph of is still a person, and a
|
|
72
|
+
* grey disc is a claim that the absence is a gap.
|
|
73
|
+
*
|
|
74
|
+
* **The name is the section heading and not a line in the body, and that is the
|
|
75
|
+
* decision the rest of the Block follows from.** A page whose only subject is one
|
|
76
|
+
* person is a page a reader reaches by following a link and navigates away from by
|
|
77
|
+
* heading, so a name in a `span` is a name no reader can come back to. It also
|
|
78
|
+
* settles the arrangement: the name is at `headingLevel`, the role is the
|
|
79
|
+
* supporting line under it, and the facts are the answers to questions the reader
|
|
80
|
+
* did not arrive with, which is why they are a definition list and not more
|
|
81
|
+
* headings. The cost is that the section heading is the person's name, so a page
|
|
82
|
+
* with two profiles on it has two sections whose titles are people, and a
|
|
83
|
+
* consumer who wants a page titled by the product instead composes the profile
|
|
84
|
+
* inside their own `Section` rather than using this one.
|
|
85
|
+
*
|
|
86
|
+
* **`actions` and `tabs` are slots, and both are refused as anything else.** The
|
|
87
|
+
* controls that belong to a person rather than to the page are the caller's fact:
|
|
88
|
+
* follow, message, assign and remove are four different products' ideas, and a
|
|
89
|
+
* Block that drew one of them would be drawing a workflow. Tabs are worse, because
|
|
90
|
+
* a tab strip is a behaviour as much as a look: which sections exist, which one is
|
|
91
|
+
* showing, and what happens when the reader changes it are three decisions about
|
|
92
|
+
* the caller's application, and a Block that drew the strip would have to own all
|
|
93
|
+
* three for it to work. So the space is here, a rule is drawn above it, and
|
|
94
|
+
* `Tabs` is the caller's to compose. The cost is that this Block does not enforce
|
|
95
|
+
* a relationship between the two, and a caller who passes neither gets a profile
|
|
96
|
+
* with a facts list and nothing else, which is a valid page.
|
|
97
|
+
*
|
|
98
|
+
* **There is no motion in this Block, and the reason is worth stating because the
|
|
99
|
+
* absence is a decision rather than an oversight.** The first law of motion covers
|
|
100
|
+
* feedback, which is a response to something the reader did, and a profile has
|
|
101
|
+
* nothing the reader pressed: there is no control that opens, no panel that
|
|
102
|
+
* closes, and no row that changes state. The second law covers a cycle, which is a
|
|
103
|
+
* demonstration of a mechanism, and the test that decides which law a motion falls
|
|
104
|
+
* under is falsifiable: stop the animation, is the figure still true and still
|
|
105
|
+
* legible? There is no figure here at all, so the question does not arise, and a
|
|
106
|
+
* Block that answered it by animating the portrait in would be decoration wearing
|
|
107
|
+
* the costume of a demonstration, which is the thing the first law was written to
|
|
108
|
+
* exclude. The one place a transition could honestly go is the caller's own
|
|
109
|
+
* controls, and those are the caller's Components with their own motion already
|
|
110
|
+
* settled.
|
|
111
|
+
*
|
|
112
|
+
* It is a server Component: no hook, no state, no effect and no client code of its
|
|
113
|
+
* own. The portrait is `Avatar`, which is a client Component whose only client work
|
|
114
|
+
* is measuring whether an image has loaded, so a profile costs a consumer nothing
|
|
115
|
+
* in client JavaScript beyond that and a caller composing a client `actions` slot
|
|
116
|
+
* pays for the action rather than for the profile.
|
|
117
|
+
*/
|
|
118
|
+
export function UserProfile01({ name, role, bio, avatar, facts, actions, tabs, layout = 'header', headingLevel = 'h2', className, }) {
|
|
119
|
+
const beside = layout === 'header';
|
|
120
|
+
return (_jsx(Section, { "data-slot": "user-profile-01", className: cn(className), children: _jsxs("div", { "data-slot": "user-profile-01-body", "data-layout": layout, className: cn('flex flex-col gap-8',
|
|
121
|
+
// The narrow arrangement is the one that needs a bound of its own, because
|
|
122
|
+
// the wide one is already inside the container `Section` owns. `max-w-*`
|
|
123
|
+
// is a bound token and not an arbitrary width, which is the whole of what
|
|
124
|
+
// the layout gate allows in this position.
|
|
125
|
+
beside ? null : 'max-w-measure-narrow'), children: [_jsxs("div", { "data-slot": "user-profile-01-head", className: cn('flex flex-col gap-6', beside ? 'sm:flex-row sm:items-start sm:gap-6' : 'items-start'), children: [avatar === undefined ? null : (
|
|
126
|
+
/*
|
|
127
|
+
* The portrait, and the only place in this Block a client Component is
|
|
128
|
+
* composed. `size-20` rather than a size the caller chooses, because a
|
|
129
|
+
* profile's portrait is the one image on the page and its size is part
|
|
130
|
+
* of what a profile looks like rather than a fact about the person.
|
|
131
|
+
* `AvatarImage` takes an empty `alt` because the name is printed beside
|
|
132
|
+
* it in the same heading, so an `alt` repeating that name would be the
|
|
133
|
+
* same string twice for a reader who meets the image first.
|
|
134
|
+
*/
|
|
135
|
+
_jsxs(Avatar, { "data-slot": "user-profile-01-avatar", className: "size-20 shrink-0", children: [avatar.src === undefined ? null : _jsx(AvatarImage, { src: avatar.src, alt: "" }), _jsx(AvatarFallback, { className: "text-mono", children: initialsOf(avatar.name) })] })), _jsx(SectionHeading, { as: headingLevel, align: "left", title: name, description: role, className: "min-w-0 flex-1" })] }), bio === undefined ? null : (_jsx("p", { "data-slot": "user-profile-01-bio", className: "text-muted-foreground max-w-measure text-pretty text-sm", children: bio })), facts === undefined ? null : (
|
|
136
|
+
/*
|
|
137
|
+
* The facts, composed and not derived. `FactList` renders nothing at all
|
|
138
|
+
* for an empty list, which is the case this Block leans on hardest: a
|
|
139
|
+
* person with no facts gets a name and a role and no box where facts
|
|
140
|
+
* would have been. The mapping exists only because this Block's fact has
|
|
141
|
+
* an `id` for the caller's data and `Fact` has no use for one.
|
|
142
|
+
*/
|
|
143
|
+
_jsx(FactList, { "data-slot": "user-profile-01-facts", facts: facts.map((fact) => ({ label: fact.label, value: fact.value })) })), actions === undefined ? null : (
|
|
144
|
+
/*
|
|
145
|
+
* The caller's own controls, in a plain row with no role. A group role
|
|
146
|
+
* here would be a group with no name and one more thing a reader has to
|
|
147
|
+
* walk past, and the controls inside are the controls.
|
|
148
|
+
*/
|
|
149
|
+
_jsx("div", { "data-slot": "user-profile-01-actions", className: "flex flex-wrap items-center gap-3", children: actions })), tabs === undefined ? null : (
|
|
150
|
+
/*
|
|
151
|
+
* The caller's own sections, under a rule rather than inside a strip.
|
|
152
|
+
* The rule is decorative and says so by default, which is right: it
|
|
153
|
+
* separates two blocks of the caller's own content and does not express
|
|
154
|
+
* a separation a keyboard reader needs to know about.
|
|
155
|
+
*/
|
|
156
|
+
_jsxs("div", { "data-slot": "user-profile-01-sections", className: "flex flex-col gap-6", children: [_jsx(Separator, { "data-slot": "user-profile-01-rule" }), tabs] }))] }) }));
|
|
157
|
+
}
|
|
158
|
+
export default UserProfile01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/verify-email-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAQvD,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { VerifyEmail01, default } from './verify-email.js';
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* The five things that can be true of a verification, and the whole design of the
|
|
5
|
+
* Block is that there are five of them and each one is a different screen.
|
|
6
|
+
*
|
|
7
|
+
* The names say what they select rather than what colour they draw. `checking` is
|
|
8
|
+
* progress, `verified` is a destination, `pending` is a wait, `failed` is a retry and
|
|
9
|
+
* `expired` is a request for a new link. Four of the five are states a reader has to
|
|
10
|
+
* act in, and only one of them is a sentence.
|
|
11
|
+
*/
|
|
12
|
+
export type VerifyEmail01Outcome = 'checking' | 'verified' | 'pending' | 'failed' | 'expired';
|
|
13
|
+
/**
|
|
14
|
+
* Which of the five the verification is in, what the reader is told, and the short
|
|
15
|
+
* name of the state.
|
|
16
|
+
*
|
|
17
|
+
* **Required on the Block rather than optional on the arm, because on this screen the
|
|
18
|
+
* state is the screen.** There is no resting state a reader can see and no state this
|
|
19
|
+
* Block can reach on its own: the link is the proof, and the caller's server is what
|
|
20
|
+
* knows whether following it proved anything. A caller that renders this without
|
|
21
|
+
* saying where the verification has got to has drawn the frame and omitted the page.
|
|
22
|
+
*
|
|
23
|
+
* `stateLabel` is the short name beside the dot and `message` is the sentence, and
|
|
24
|
+
* the split is the same one `Status` argues for. With nothing passed for it the
|
|
25
|
+
* machine value is drawn instead, which is honest and rarely what was wanted: a
|
|
26
|
+
* product whose readers meet the word `pending` is a product that has not named its
|
|
27
|
+
* own states yet.
|
|
28
|
+
*/
|
|
29
|
+
export type VerifyEmail01Status = {
|
|
30
|
+
/** Which of the five the verification is in. Read by the Block for four things. */
|
|
31
|
+
state: VerifyEmail01Outcome;
|
|
32
|
+
/** The sentence for that state, in the product's own voice. */
|
|
33
|
+
message: ReactNode;
|
|
34
|
+
/** The short name of the state, beside the dot. Falls back to `state`. */
|
|
35
|
+
stateLabel?: string;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* What is being verified, and the caller's own way to change it.
|
|
39
|
+
*
|
|
40
|
+
* The union is what makes the change control mean one thing: a control with words and
|
|
41
|
+
* no handler draws a button that does nothing, and a handler with no words draws a
|
|
42
|
+
* button a screen reader announces as "button" and a voice control user cannot say.
|
|
43
|
+
*/
|
|
44
|
+
export type VerifyEmail01Target = {
|
|
45
|
+
/**
|
|
46
|
+
* The identifier whose address is in question, drawn on the screen.
|
|
47
|
+
*
|
|
48
|
+
* Required, because a verification screen that does not say what is being verified
|
|
49
|
+
* is a screen where a reader with two addresses has no idea which one arrived. This
|
|
50
|
+
* is also the reason the screen has no code field: see the Block's JSDoc.
|
|
51
|
+
*/
|
|
52
|
+
identifier: string;
|
|
53
|
+
/**
|
|
54
|
+
* What the caller's product calls the identifier.
|
|
55
|
+
*
|
|
56
|
+
* The words beside it rather than its accessible name, because the identifier is
|
|
57
|
+
* already on the page and is what a reader needs to compare against their own inbox
|
|
58
|
+
* before they press anything.
|
|
59
|
+
*/
|
|
60
|
+
identifierLabel?: string;
|
|
61
|
+
} & ({
|
|
62
|
+
/** The words on the control that opens the caller's own change surface. */
|
|
63
|
+
changeLabel: string;
|
|
64
|
+
/** Called with the identifier the reader chose. */
|
|
65
|
+
onChange: (identifier: string) => void;
|
|
66
|
+
} | {
|
|
67
|
+
/** A change control with no words is a button nobody can find. */
|
|
68
|
+
changeLabel?: never;
|
|
69
|
+
/** A handler with no control is a call the caller cannot make. */
|
|
70
|
+
onChange?: never;
|
|
71
|
+
});
|
|
72
|
+
/**
|
|
73
|
+
* The route out for a reader this screen does not help, and where it goes.
|
|
74
|
+
*
|
|
75
|
+
* `message` and `label` are separate because they are separate jobs: the message is
|
|
76
|
+
* the sentence about why the reader is stuck and the label is what following the link
|
|
77
|
+
* does. A link labelled with the sentence is a link whose visible words do not say
|
|
78
|
+
* what activating it does, which is a link a voice control user cannot speak.
|
|
79
|
+
*/
|
|
80
|
+
export type VerifyEmail01Help = {
|
|
81
|
+
/** The sentence about why this screen is not helping, and what else exists. */
|
|
82
|
+
message: ReactNode;
|
|
83
|
+
/** The destination, in the `href` where the status bar and the context menu reach it. */
|
|
84
|
+
href: string;
|
|
85
|
+
/** The words on the link, and its accessible name. */
|
|
86
|
+
label: string;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* The props a VerifyEmail01 takes. Every string in this Block is one of them.
|
|
90
|
+
*
|
|
91
|
+
* There is no field, no form and no value this Block holds, and that is the shape of
|
|
92
|
+
* the pattern rather than a limitation of it. The link is the proof; everything this
|
|
93
|
+
* screen does is report what happened and offer the caller's own next moves.
|
|
94
|
+
*/
|
|
95
|
+
export type VerifyEmail01Props = {
|
|
96
|
+
/** The short line above the title, usually which product this is. */
|
|
97
|
+
eyebrow?: ReactNode;
|
|
98
|
+
/**
|
|
99
|
+
* The heading.
|
|
100
|
+
*
|
|
101
|
+
* Required, because a screen that reports a security decision with no heading is a
|
|
102
|
+
* sentence in a page, and a reader who has just followed a link from their own inbox
|
|
103
|
+
* needs to be told which product is speaking before they trust it.
|
|
104
|
+
*/
|
|
105
|
+
title: ReactNode;
|
|
106
|
+
/**
|
|
107
|
+
* What the reader is about to find out.
|
|
108
|
+
*
|
|
109
|
+
* **Required, and the difference from every other Block's description is the fact
|
|
110
|
+
* rather than an inconsistency.** The reader has just been told something was sent
|
|
111
|
+
* and has arrived here to find out whether it arrived. This is the one screen where
|
|
112
|
+
* that question has a definite answer and the reader cannot see the answer until the
|
|
113
|
+
* screen says it, so a frame that can ship without saying what it is about to say
|
|
114
|
+
* leaves a reader guessing from a tone and a sentence. What the answer says is the
|
|
115
|
+
* caller's, because what it means to have verified an address in their product is
|
|
116
|
+
* their fact.
|
|
117
|
+
*/
|
|
118
|
+
description: ReactNode;
|
|
119
|
+
/** What is being verified, and the caller's way to verify something else. */
|
|
120
|
+
target: VerifyEmail01Target;
|
|
121
|
+
/**
|
|
122
|
+
* Called when the reader asks for the message to be sent again.
|
|
123
|
+
*
|
|
124
|
+
* Required, and the requirement is the design. A verification a reader cannot
|
|
125
|
+
* re-trigger is a verification that ends in a support ticket, so the control has to
|
|
126
|
+
* be on the screen and the words have to be the product's own.
|
|
127
|
+
*/
|
|
128
|
+
onResend: () => void;
|
|
129
|
+
/** The words on the resend control. */
|
|
130
|
+
resendLabel: string;
|
|
131
|
+
/**
|
|
132
|
+
* The words the same control carries once a resend has been asked for.
|
|
133
|
+
*
|
|
134
|
+
* Required rather than optional, because which of the two the control shows is
|
|
135
|
+
* decided by the state and not by the caller: a state that can move into a resend
|
|
136
|
+
* cannot be known at the moment the props are written, and a control that keeps
|
|
137
|
+
* saying it will send the message while it is sending it has stopped agreeing with
|
|
138
|
+
* itself. See the Block's JSDoc for the exact rule.
|
|
139
|
+
*/
|
|
140
|
+
resentLabel: string;
|
|
141
|
+
/**
|
|
142
|
+
* Whether a resend is in flight, which is also how the caller says one has happened.
|
|
143
|
+
*
|
|
144
|
+
* The two questions are the same question from where the reader is sitting: the one
|
|
145
|
+
* control on screen should either offer the resend or report that it is under way,
|
|
146
|
+
* and never do both at once.
|
|
147
|
+
*/
|
|
148
|
+
resending?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* The words for the wait, drawn under the resend control once one has been asked
|
|
151
|
+
* for.
|
|
152
|
+
*
|
|
153
|
+
* A prop because the length of the wait is the caller's own rate limit. A Block that
|
|
154
|
+
* guessed it would be shipping one cooldown policy to every product that installs
|
|
155
|
+
* it, in a place no consumer can read it.
|
|
156
|
+
*/
|
|
157
|
+
cooldownLabel?: string;
|
|
158
|
+
/** Where the verification has got to, in the caller's own words. */
|
|
159
|
+
status: VerifyEmail01Status;
|
|
160
|
+
/**
|
|
161
|
+
* The caller's own next moves, drawn under the resend control in every state.
|
|
162
|
+
*
|
|
163
|
+
* A slot rather than a set of named controls, because what a reader does next on this
|
|
164
|
+
* screen is a fact about the caller's product: open another inbox, sign in, contact
|
|
165
|
+
* an administrator, ask a colleague to resend.
|
|
166
|
+
*/
|
|
167
|
+
actions?: ReactNode;
|
|
168
|
+
/** The route out for a reader this screen does not help. */
|
|
169
|
+
help?: VerifyEmail01Help;
|
|
170
|
+
/** Heading level for the section heading. @defaultValue 'h2' */
|
|
171
|
+
headingLevel?: HeadingLevel;
|
|
172
|
+
/**
|
|
173
|
+
* Layout only, exactly as on every Block. Changing a Prism-owned visual property
|
|
174
|
+
* from here is prohibited.
|
|
175
|
+
*/
|
|
176
|
+
className?: string;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* What is being verified, where it has got to, and the caller's own way to ask again.
|
|
180
|
+
*
|
|
181
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
182
|
+
* storefront publishes a confirm-your-email screen: the address it was sent to, a
|
|
183
|
+
* line that says to check your inbox, and a button that sends it again, and its
|
|
184
|
+
* purpose is to let a shopper reach an order history and a saved card. Prism's
|
|
185
|
+
* products observe a pipeline, capture a market, watch an estate and run agents, and a
|
|
186
|
+
* machine acting on behalf of a person is the whole subject, so this is the screen
|
|
187
|
+
* where a person proves they read what a machine sent them, because the address on
|
|
188
|
+
* file is the address an operator's actions will be attributed to. The composition is
|
|
189
|
+
* the storefront's and is unchanged: the address, the outcome, a resend. What is
|
|
190
|
+
* different is the standard, and that is the next paragraph.
|
|
191
|
+
*
|
|
192
|
+
* **What it assumes about the reader in front of it, because this is the screen where
|
|
193
|
+
* the cost of an assumption is highest.** It assumes they followed a link, that the
|
|
194
|
+
* link came from the product they expect, and that they are waiting. It refuses to
|
|
195
|
+
* assume they can tell from a sentence what has happened to them, and it refuses to
|
|
196
|
+
* assume they will read a tone correctly, or that they will try again patiently
|
|
197
|
+
* rather than immediately, or that they know the difference between the five states
|
|
198
|
+
* this screen can be in.
|
|
199
|
+
*
|
|
200
|
+
* **The five states are five screens and not five messages, and that is the design.**
|
|
201
|
+
* `checking` is progress: something is happening and the reader's job is to wait.
|
|
202
|
+
* `verified` is a destination: the work is finished and the reader's job is to leave.
|
|
203
|
+
* `pending` is a wait: nothing has gone wrong and the reader's job is to keep an eye
|
|
204
|
+
* on an inbox. `failed` is a retry: something the reader just did did not work.
|
|
205
|
+
* `expired` is a request for a new link: the one that arrived is dead and another is
|
|
206
|
+
* needed. A screen that drew any of these as a sentence in the middle of a form would
|
|
207
|
+
* be asking a reader to work out what has happened from a sentence, and a reader who
|
|
208
|
+
* cannot tell whether their address is verified will try again, and a second attempt
|
|
209
|
+
* on a verification is a second attempt on a machine's authorisation and eventually a
|
|
210
|
+
* lockout. So each state changes the arrangement: which indicator is drawn, whether
|
|
211
|
+
* the resend is offered, and how insistently the outcome is announced.
|
|
212
|
+
*
|
|
213
|
+
* **There is no code field on this screen, and the reason is one sentence: the link is
|
|
214
|
+
* the proof, and a field invites a reader to type a code they do not have.** A reader
|
|
215
|
+
* who arrives without the link has one action available to them and it is asking for
|
|
216
|
+
* another one, and a field in front of them invites them to type the six characters
|
|
217
|
+
* they can half remember from a text they did not read. Prisms that render a code
|
|
218
|
+
* field on a link-based verification are answering a product that sends codes.
|
|
219
|
+
*
|
|
220
|
+
* **`stateLabel` falls back to the machine value rather than to nothing, and the cost
|
|
221
|
+
* of that is named.** A dot with no name beside it is a colour a reader cannot read,
|
|
222
|
+
* and `Status` refuses to render one, so there has to be something. The machine value
|
|
223
|
+
* is the honest something: a product whose readers meet the word `pending` is a
|
|
224
|
+
* product that has not named its own states, and seeing its own key on the screen is
|
|
225
|
+
* a faster way to find that out than shipping it.
|
|
226
|
+
*
|
|
227
|
+
* **`resentLabel` is required and the rule that uses it is about the state rather than
|
|
228
|
+
* about the caller.** The resend control is drawn for a wait, a failure and an expiry,
|
|
229
|
+
* and withheld for progress and for the destination, because a control with nothing to
|
|
230
|
+
* do is a control a reader presses to find out what happens. While `resending` is
|
|
231
|
+
* true the control is disabled and carries `resentLabel`, because a control that keeps
|
|
232
|
+
* offering to do the thing it is currently doing has stopped agreeing with itself. The
|
|
233
|
+
* cooldown is the caller's own line beside it, because the length of the wait is a
|
|
234
|
+
* rate limit and a Block that guessed one would be shipping one policy to four
|
|
235
|
+
* products in a place no consumer can read it.
|
|
236
|
+
*
|
|
237
|
+
* **The announcement is assertive only for the two states where something the reader
|
|
238
|
+
* did did not work.** A confirmation and a wait are things a reader can take in order,
|
|
239
|
+
* and a progress reading is the last thing that should interrupt a sentence; a failure
|
|
240
|
+
* and an expiry are the answer to the thing they just clicked and nothing else
|
|
241
|
+
* follows, which is the case `LiveRegion` names as the one that interrupts.
|
|
242
|
+
*
|
|
243
|
+
* **There is no form, no `<form>` element and no value this Block holds, and the
|
|
244
|
+
* absence is the pattern.** The link carried the proof and the caller's server knows
|
|
245
|
+
* whether it proved anything, so the only things left to draw are what happened and
|
|
246
|
+
* the reader's own next moves. The change control is a `Button` rather than a dialog
|
|
247
|
+
* because where a new identifier is typed is a fact about the caller's product, and a
|
|
248
|
+
* Block that opened a dialog would have to own that field's label, its description and
|
|
249
|
+
* its sentences.
|
|
250
|
+
*
|
|
251
|
+
* It is a client Component, and the directive is unconditional even though it holds no
|
|
252
|
+
* state of its own. `onResend` and `onChange` are functions, a function is a piece of
|
|
253
|
+
* state, and state is a client module: a server Component cannot hand an event handler
|
|
254
|
+
* to a `<button>`, so a caller rendering this from a server Component gets a screen
|
|
255
|
+
* whose controls press and do nothing. The cost is a module in the client graph whose
|
|
256
|
+
* static arrangement would have shipped no JavaScript at all, and the price was judged
|
|
257
|
+
* worth paying for one boundary rather than a split where the reporting half is a
|
|
258
|
+
* server Component and the controls half is not.
|
|
259
|
+
*/
|
|
260
|
+
export declare function VerifyEmail01({ eyebrow, title, description, target, onResend, resendLabel, resentLabel, resending, cooldownLabel, status, actions, help, headingLevel, className, }: VerifyEmail01Props): import("react").JSX.Element;
|
|
261
|
+
export default VerifyEmail01;
|
|
262
|
+
//# sourceMappingURL=verify-email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-email.d.ts","sourceRoot":"","sources":["../../../src/blocks/verify-email-01/verify-email.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMtC,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAKxF;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,UAAU,GACV,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AAEb;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,mFAAmF;IACnF,KAAK,EAAE,oBAAoB,CAAA;IAC3B,+DAA+D;IAC/D,OAAO,EAAE,SAAS,CAAA;IAClB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,GAAG,CACA;IACE,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC,GACD;IACE,kEAAkE;IAClE,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CACJ,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+EAA+E;IAC/E,OAAO,EAAE,SAAS,CAAA;IAClB,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,qEAAqE;IACrE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;;;;;;OAWG;IACH,WAAW,EAAE,SAAS,CAAA;IACtB,6EAA6E;IAC7E,MAAM,EAAE,mBAAmB,CAAA;IAC3B;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oEAAoE;IACpE,MAAM,EAAE,mBAAmB,CAAA;IAC3B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,iBAAiB,CAAA;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiFG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,SAAiB,EACjB,aAAa,EACb,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAmB,EACnB,SAAS,GACV,EAAE,kBAAkB,+BAgLpB;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Button } from '../../components/ui/button.js';
|
|
4
|
+
import { Card } from '../../components/ui/card.js';
|
|
5
|
+
import { CtaLink } from '../../components/ui/cta-link.js';
|
|
6
|
+
import { LiveRegion } from '../../components/ui/live-region.js';
|
|
7
|
+
import { Section, SectionHeading } from '../../components/ui/section.js';
|
|
8
|
+
import { Spinner } from '../../components/ui/spinner.js';
|
|
9
|
+
import { Status } from '../../components/ui/status.js';
|
|
10
|
+
import { cn } from '../../lib/utils.js';
|
|
11
|
+
/**
|
|
12
|
+
* The tone each state takes, taken from `StatusTone` rather than invented.
|
|
13
|
+
*
|
|
14
|
+
* **`neutral` is the tone that asserts least, and `pending` is the state that gets
|
|
15
|
+
* it.** A reader who has just followed a link is in the middle of an action they took
|
|
16
|
+
* and the honest reading of the next two seconds is that nothing has gone wrong. A
|
|
17
|
+
* destructive dot on a wait is a claim about the reader's account made by a colour,
|
|
18
|
+
* before any evidence exists, and the reader who believes it is the one who goes and
|
|
19
|
+
* looks for the problem somewhere else.
|
|
20
|
+
*
|
|
21
|
+
* The other four are chosen because each is a different kind of fact. `checking` is
|
|
22
|
+
* work in progress, so it borrows the informational tone. `verified` is the only
|
|
23
|
+
* success this screen has, so it takes the success role. `expired` is not a failure:
|
|
24
|
+
* the link died, the reader's address may be perfectly good, and the thing they have
|
|
25
|
+
* to do about it is ask for a new one, so it takes the warning role rather than the
|
|
26
|
+
* destructive one. `failed` is the only destructive state, because it is the only one
|
|
27
|
+
* where something the reader just did did not work.
|
|
28
|
+
*/
|
|
29
|
+
const STATE_TONE = {
|
|
30
|
+
checking: 'info',
|
|
31
|
+
verified: 'success',
|
|
32
|
+
pending: 'neutral',
|
|
33
|
+
failed: 'destructive',
|
|
34
|
+
expired: 'warning',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* The three states a reader can be asked for another message from, and the two they
|
|
38
|
+
* cannot.
|
|
39
|
+
*
|
|
40
|
+
* A progress reading and a destination have nothing to resend, and a control with
|
|
41
|
+
* nothing to do is a control a reader presses to find out what happens. So the
|
|
42
|
+
* resend is drawn for a wait, a failure and an expiry, which are the three states
|
|
43
|
+
* where a second message is the reader's next move.
|
|
44
|
+
*/
|
|
45
|
+
const RESENDABLE = ['pending', 'failed', 'expired'];
|
|
46
|
+
/** Whether a caller passed a word that is not there. Read about the value, not the type. */
|
|
47
|
+
function blank(value) {
|
|
48
|
+
return value === undefined || value.trim() === '';
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The six refusals, checked before anything is drawn so a caller's mistake is one
|
|
52
|
+
* diagnostic in a console rather than a nameless control on the screen where a reader
|
|
53
|
+
* has just followed a link from their own inbox and is waiting to find out whether it
|
|
54
|
+
* worked.
|
|
55
|
+
*/
|
|
56
|
+
function assertVerify(input) {
|
|
57
|
+
const { target, status, resendLabel, resentLabel, help } = input;
|
|
58
|
+
if (blank(target.identifier)) {
|
|
59
|
+
throw new Error('VerifyEmail01: the target declares no identifier, so the screen would report the state of a verification ' +
|
|
60
|
+
'without saying what is being verified, and a reader with two addresses has no way to know which one ' +
|
|
61
|
+
'arrived. Pass the identifier the caller\'s own product prints.');
|
|
62
|
+
}
|
|
63
|
+
if ((target.changeLabel === undefined) !== (target.onChange === undefined) ||
|
|
64
|
+
(target.onChange !== undefined && blank(target.changeLabel))) {
|
|
65
|
+
throw new Error('VerifyEmail01: the target was passed one half of its change control, so the screen would either offer ' +
|
|
66
|
+
'a button that does nothing or call a handler no control can reach, and a button with no words is ' +
|
|
67
|
+
'announced as "button" and cannot be spoken by a voice control. Pass changeLabel and onChange ' +
|
|
68
|
+
'together, or neither.');
|
|
69
|
+
}
|
|
70
|
+
if (blank(resendLabel) || blank(resentLabel)) {
|
|
71
|
+
throw new Error('VerifyEmail01: the resend control is missing one of its two labels. A control with no name is announced ' +
|
|
72
|
+
'as a button, and this is the one control on the screen a reader reaches who cannot get into their ' +
|
|
73
|
+
'account. Pass both labels in your own language.');
|
|
74
|
+
}
|
|
75
|
+
if (status.stateLabel !== undefined && blank(status.stateLabel)) {
|
|
76
|
+
throw new Error('VerifyEmail01: stateLabel was passed with no words, so the dot beside it would be a colour with no name ' +
|
|
77
|
+
'beside it, which is exactly the thing a Status refuses to render. Pass the name of the state or ' +
|
|
78
|
+
'nothing.');
|
|
79
|
+
}
|
|
80
|
+
if (help !== undefined && blank(help.label)) {
|
|
81
|
+
throw new Error(`VerifyEmail01: the help link to ${JSON.stringify(help.href)} declares no label, so the anchor accessible ` +
|
|
82
|
+
'name would be its destination, which a screen reader reads as a run of characters and a mouse reader ' +
|
|
83
|
+
'cannot copy. Pass the sentence that says what following it does.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* What is being verified, where it has got to, and the caller's own way to ask again.
|
|
88
|
+
*
|
|
89
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
90
|
+
* storefront publishes a confirm-your-email screen: the address it was sent to, a
|
|
91
|
+
* line that says to check your inbox, and a button that sends it again, and its
|
|
92
|
+
* purpose is to let a shopper reach an order history and a saved card. Prism's
|
|
93
|
+
* products observe a pipeline, capture a market, watch an estate and run agents, and a
|
|
94
|
+
* machine acting on behalf of a person is the whole subject, so this is the screen
|
|
95
|
+
* where a person proves they read what a machine sent them, because the address on
|
|
96
|
+
* file is the address an operator's actions will be attributed to. The composition is
|
|
97
|
+
* the storefront's and is unchanged: the address, the outcome, a resend. What is
|
|
98
|
+
* different is the standard, and that is the next paragraph.
|
|
99
|
+
*
|
|
100
|
+
* **What it assumes about the reader in front of it, because this is the screen where
|
|
101
|
+
* the cost of an assumption is highest.** It assumes they followed a link, that the
|
|
102
|
+
* link came from the product they expect, and that they are waiting. It refuses to
|
|
103
|
+
* assume they can tell from a sentence what has happened to them, and it refuses to
|
|
104
|
+
* assume they will read a tone correctly, or that they will try again patiently
|
|
105
|
+
* rather than immediately, or that they know the difference between the five states
|
|
106
|
+
* this screen can be in.
|
|
107
|
+
*
|
|
108
|
+
* **The five states are five screens and not five messages, and that is the design.**
|
|
109
|
+
* `checking` is progress: something is happening and the reader's job is to wait.
|
|
110
|
+
* `verified` is a destination: the work is finished and the reader's job is to leave.
|
|
111
|
+
* `pending` is a wait: nothing has gone wrong and the reader's job is to keep an eye
|
|
112
|
+
* on an inbox. `failed` is a retry: something the reader just did did not work.
|
|
113
|
+
* `expired` is a request for a new link: the one that arrived is dead and another is
|
|
114
|
+
* needed. A screen that drew any of these as a sentence in the middle of a form would
|
|
115
|
+
* be asking a reader to work out what has happened from a sentence, and a reader who
|
|
116
|
+
* cannot tell whether their address is verified will try again, and a second attempt
|
|
117
|
+
* on a verification is a second attempt on a machine's authorisation and eventually a
|
|
118
|
+
* lockout. So each state changes the arrangement: which indicator is drawn, whether
|
|
119
|
+
* the resend is offered, and how insistently the outcome is announced.
|
|
120
|
+
*
|
|
121
|
+
* **There is no code field on this screen, and the reason is one sentence: the link is
|
|
122
|
+
* the proof, and a field invites a reader to type a code they do not have.** A reader
|
|
123
|
+
* who arrives without the link has one action available to them and it is asking for
|
|
124
|
+
* another one, and a field in front of them invites them to type the six characters
|
|
125
|
+
* they can half remember from a text they did not read. Prisms that render a code
|
|
126
|
+
* field on a link-based verification are answering a product that sends codes.
|
|
127
|
+
*
|
|
128
|
+
* **`stateLabel` falls back to the machine value rather than to nothing, and the cost
|
|
129
|
+
* of that is named.** A dot with no name beside it is a colour a reader cannot read,
|
|
130
|
+
* and `Status` refuses to render one, so there has to be something. The machine value
|
|
131
|
+
* is the honest something: a product whose readers meet the word `pending` is a
|
|
132
|
+
* product that has not named its own states, and seeing its own key on the screen is
|
|
133
|
+
* a faster way to find that out than shipping it.
|
|
134
|
+
*
|
|
135
|
+
* **`resentLabel` is required and the rule that uses it is about the state rather than
|
|
136
|
+
* about the caller.** The resend control is drawn for a wait, a failure and an expiry,
|
|
137
|
+
* and withheld for progress and for the destination, because a control with nothing to
|
|
138
|
+
* do is a control a reader presses to find out what happens. While `resending` is
|
|
139
|
+
* true the control is disabled and carries `resentLabel`, because a control that keeps
|
|
140
|
+
* offering to do the thing it is currently doing has stopped agreeing with itself. The
|
|
141
|
+
* cooldown is the caller's own line beside it, because the length of the wait is a
|
|
142
|
+
* rate limit and a Block that guessed one would be shipping one policy to four
|
|
143
|
+
* products in a place no consumer can read it.
|
|
144
|
+
*
|
|
145
|
+
* **The announcement is assertive only for the two states where something the reader
|
|
146
|
+
* did did not work.** A confirmation and a wait are things a reader can take in order,
|
|
147
|
+
* and a progress reading is the last thing that should interrupt a sentence; a failure
|
|
148
|
+
* and an expiry are the answer to the thing they just clicked and nothing else
|
|
149
|
+
* follows, which is the case `LiveRegion` names as the one that interrupts.
|
|
150
|
+
*
|
|
151
|
+
* **There is no form, no `<form>` element and no value this Block holds, and the
|
|
152
|
+
* absence is the pattern.** The link carried the proof and the caller's server knows
|
|
153
|
+
* whether it proved anything, so the only things left to draw are what happened and
|
|
154
|
+
* the reader's own next moves. The change control is a `Button` rather than a dialog
|
|
155
|
+
* because where a new identifier is typed is a fact about the caller's product, and a
|
|
156
|
+
* Block that opened a dialog would have to own that field's label, its description and
|
|
157
|
+
* its sentences.
|
|
158
|
+
*
|
|
159
|
+
* It is a client Component, and the directive is unconditional even though it holds no
|
|
160
|
+
* state of its own. `onResend` and `onChange` are functions, a function is a piece of
|
|
161
|
+
* state, and state is a client module: a server Component cannot hand an event handler
|
|
162
|
+
* to a `<button>`, so a caller rendering this from a server Component gets a screen
|
|
163
|
+
* whose controls press and do nothing. The cost is a module in the client graph whose
|
|
164
|
+
* static arrangement would have shipped no JavaScript at all, and the price was judged
|
|
165
|
+
* worth paying for one boundary rather than a split where the reporting half is a
|
|
166
|
+
* server Component and the controls half is not.
|
|
167
|
+
*/
|
|
168
|
+
export function VerifyEmail01({ eyebrow, title, description, target, onResend, resendLabel, resentLabel, resending = false, cooldownLabel, status, actions, help, headingLevel = 'h2', className, }) {
|
|
169
|
+
assertVerify({ target, status, resendLabel, resentLabel, help });
|
|
170
|
+
const busy = resending || status.state === 'checking';
|
|
171
|
+
const resendable = RESENDABLE.includes(status.state);
|
|
172
|
+
/*
|
|
173
|
+
* The ring is drawn only when the caller supplied the words to name it, and the
|
|
174
|
+
* reason is `Spinner`'s own: a busy indicator with no name is an animation, and an
|
|
175
|
+
* animation is nothing to a reader who cannot see it. So `checking` falls back to
|
|
176
|
+
* the informational dot rather than to an unnamed ring, which is the same fact
|
|
177
|
+
* reported in a way that needs no name.
|
|
178
|
+
*/
|
|
179
|
+
const working = status.state === 'checking';
|
|
180
|
+
return (_jsx(Section, { "data-slot": "verify-email-01", className: cn(className), children: _jsxs("div", { "data-slot": "verify-email-01-body", className: "flex flex-col gap-10", children: [_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description }), _jsxs(Card, { "data-slot": "verify-email-01-card", className: "max-w-measure-narrow gap-0 px-6", children: [_jsxs("div", { "data-slot": "verify-email-01-target", className: "flex flex-col gap-2", children: [target.identifierLabel === undefined ? null : (_jsx("span", { "data-slot": "verify-email-01-target-label", className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: target.identifierLabel })), _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-x-4 gap-y-2", children: [_jsx("span", { "data-slot": "verify-email-01-identifier", className: "min-w-0 text-sm font-medium break-all", children: target.identifier }), target.changeLabel === undefined ? null : (
|
|
181
|
+
/*
|
|
182
|
+
The caller's way to verify something else. A `Button` and not a
|
|
183
|
+
`CtaLink` because this does not navigate: it opens whatever surface
|
|
184
|
+
the caller's product uses to take a new identifier, and a control that
|
|
185
|
+
changes nothing about the address on screen is not a link to
|
|
186
|
+
somewhere.
|
|
187
|
+
*/
|
|
188
|
+
_jsx(Button, { "data-slot": "verify-email-01-change", type: "button", variant: "ghost", size: "sm", onClick: () => target.onChange?.(target.identifier), children: target.changeLabel }))] })] }), _jsxs("div", { "data-slot": "verify-email-01-state", "data-state": status.state, className: "border-border flex flex-col gap-2 rounded-lg border px-4 py-3", children: [working && status.stateLabel !== undefined ? (_jsx(Spinner, { "data-slot": "verify-email-01-spinner", label: status.stateLabel, size: "sm" })) : (_jsx(Status, { "data-slot": "verify-email-01-status-label", tone: STATE_TONE[status.state], label: status.stateLabel ?? status.state, size: "sm" })), _jsx(LiveRegion, { "data-slot": "verify-email-01-status", politeness: status.state === 'failed' || status.state === 'expired' ? 'assertive' : 'polite', busy: busy, className: cn('text-sm text-pretty', status.state === 'failed' ? 'text-destructive font-medium' : ''), children: status.message })] }), _jsxs("div", { "data-slot": "verify-email-01-actions", className: "flex flex-col items-start gap-3", children: [resendable ? (_jsx(Button, { "data-slot": "verify-email-01-resend", type: "button", variant: "outline", onClick: onResend, disabled: resending, children: resending ? resentLabel : resendLabel })) : null, !resending || cooldownLabel === undefined ? null : (_jsx("p", { "data-slot": "verify-email-01-cooldown", className: "text-muted-foreground text-xs", children: cooldownLabel })), actions === undefined ? null : (_jsx("div", { "data-slot": "verify-email-01-next", className: "flex w-full flex-col gap-2", children: actions }))] })] }), help === undefined ? null : (_jsxs("div", { "data-slot": "verify-email-01-help", className: "flex max-w-measure-narrow flex-col items-start gap-2", children: [_jsx("p", { className: "text-muted-foreground text-sm text-pretty", children: help.message }), _jsx(CtaLink, { href: help.href, variant: "ghost", size: "sm", children: help.label })] }))] }) }));
|
|
189
|
+
}
|
|
190
|
+
export default VerifyEmail01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/waitlist-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAKhD,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAA"}
|