@nanisoft/prism-ui 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +12 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +8 -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 +124 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +25 -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 +3 -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 +18 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +8 -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/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/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/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 +23 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +30 -1
- 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 +108 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +109 -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/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.js +4 -4
- 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/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 +8 -0
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +24 -7
- 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 +98 -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/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 +1003 -55
- package/package.json +9 -3
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* One person, as a team section shows them.
|
|
5
|
+
*
|
|
6
|
+
* Four things, and the fourth is the one that varies: a portrait may be absent
|
|
7
|
+
* and a biography may be absent and a destination may be absent, and each absence
|
|
8
|
+
* is a fact about what the consumer publishes rather than a state this Block has
|
|
9
|
+
* to render around.
|
|
10
|
+
*/
|
|
11
|
+
export type Team01Person = {
|
|
12
|
+
/**
|
|
13
|
+
* A stable key for the cell, and carried on the markup as `data-person` so a
|
|
14
|
+
* test can name one person rather than the first one, and so `highlight` can
|
|
15
|
+
* name them.
|
|
16
|
+
*/
|
|
17
|
+
id: string;
|
|
18
|
+
/**
|
|
19
|
+
* The person's own name, as they publish it.
|
|
20
|
+
*
|
|
21
|
+
* The anchor of the cell and the card title. It is also the source of the
|
|
22
|
+
* initials the portrait falls back to, so a name a consumer wants displayed
|
|
23
|
+
* differently from the one it wants abbreviated is a caller problem this Block
|
|
24
|
+
* has no opinion about.
|
|
25
|
+
*/
|
|
26
|
+
name: string;
|
|
27
|
+
/**
|
|
28
|
+
* What they do, in the words the consumer uses.
|
|
29
|
+
*
|
|
30
|
+
* Required, because a portrait with a name and no role says who someone is and
|
|
31
|
+
* not what they are for, which on a team page is the only reason the person is
|
|
32
|
+
* in it.
|
|
33
|
+
*/
|
|
34
|
+
role: string;
|
|
35
|
+
/**
|
|
36
|
+
* A sentence or two about the person, as a node.
|
|
37
|
+
*
|
|
38
|
+
* Set at the prose measure rather than at the card measure, because a
|
|
39
|
+
* biography is prose and a line of text at card width is a caption. Nothing
|
|
40
|
+
* here truncates it: see the Block's JSDoc for why this Block will not cut a
|
|
41
|
+
* biography short.
|
|
42
|
+
*/
|
|
43
|
+
bio?: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* The portrait, with the name the initials come from.
|
|
46
|
+
*
|
|
47
|
+
* A name rather than a string here, because an `Avatar` without a fallback is
|
|
48
|
+
* an empty circle for exactly as long as the image takes to arrive and forever
|
|
49
|
+
* if it never does. Omit the whole field for a person the consumer has no
|
|
50
|
+
* photograph of and would rather show as a card with a name on it.
|
|
51
|
+
*/
|
|
52
|
+
avatar?: {
|
|
53
|
+
/** The photograph. Omit it, or pass a URL that fails, for the initials. */
|
|
54
|
+
src?: string;
|
|
55
|
+
/** The person's name, which is the initials' source. */
|
|
56
|
+
name: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Where the person goes.
|
|
60
|
+
*
|
|
61
|
+
* A native anchor `href`, and it makes the whole cell or the whole row the
|
|
62
|
+
* destination rather than a control in the corner of it.
|
|
63
|
+
*/
|
|
64
|
+
href?: string;
|
|
65
|
+
/**
|
|
66
|
+
* The words naming the destination, drawn inside the link.
|
|
67
|
+
*
|
|
68
|
+
* Required whenever `href` is given, and not defaulted, for the reason
|
|
69
|
+
* `Compliance01` states for its evidence label: a link whose name is its
|
|
70
|
+
* address is announced as punctuation. Keeping the words inside the link rather
|
|
71
|
+
* than replacing the link's accessible name is deliberate: the visible name of
|
|
72
|
+
* the cell has to be contained in the accessible name, so a label that
|
|
73
|
+
* overrode it would break the one rule a screen reader user cannot see broken.
|
|
74
|
+
*/
|
|
75
|
+
hrefLabel?: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* The props a Team01 takes.
|
|
79
|
+
*
|
|
80
|
+
* Every string is a prop and the Block ships none: no name, no role, no biography
|
|
81
|
+
* and not one person. A team section that hardcoded any of them would put Prism
|
|
82
|
+
* staff inside a consumer's product.
|
|
83
|
+
*/
|
|
84
|
+
export type Team01Props = {
|
|
85
|
+
/** Optional label above the section title. See the No-Default-Eyebrow Rule. */
|
|
86
|
+
eyebrow?: string;
|
|
87
|
+
/** The section title. Omit it for a grid composed under its own heading. */
|
|
88
|
+
title?: ReactNode;
|
|
89
|
+
/** One or two sentences under the title. */
|
|
90
|
+
description?: ReactNode;
|
|
91
|
+
/** The people, in the order a reader should meet them. Order is the caller's. */
|
|
92
|
+
people: readonly Team01Person[];
|
|
93
|
+
/**
|
|
94
|
+
* `cards` draws a card per person with the portrait above the name. `list`
|
|
95
|
+
* draws hairline rows with the portrait at the leading edge.
|
|
96
|
+
*
|
|
97
|
+
* @defaultValue 'cards'
|
|
98
|
+
*/
|
|
99
|
+
variant?: 'cards' | 'list';
|
|
100
|
+
/**
|
|
101
|
+
* The ids that get a stronger border.
|
|
102
|
+
*
|
|
103
|
+
* Ids rather than names or positions, because a border that follows a position
|
|
104
|
+
* moves to a different person after a reorder, and a border is a claim about
|
|
105
|
+
* who matters on this page. The Block draws a border in `primary` and nothing
|
|
106
|
+
* else: no fill, no ring, no badge, because a highlight on a marketing page
|
|
107
|
+
* becomes a statement about rank and the only statement this Block can make is
|
|
108
|
+
* the one the consumer asked for. An id here that is not in `people` throws,
|
|
109
|
+
* because a highlight that silently does nothing is worse than one that fails.
|
|
110
|
+
*/
|
|
111
|
+
highlight?: readonly string[];
|
|
112
|
+
/** Heading level for the section title. See `HeadingLevel`. */
|
|
113
|
+
headingLevel?: HeadingLevel;
|
|
114
|
+
/**
|
|
115
|
+
* Layout only, exactly as on every Component. Changing a Prism-owned visual
|
|
116
|
+
* property from here is prohibited.
|
|
117
|
+
*/
|
|
118
|
+
className?: string;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* A grid or a list of people: a portrait where there is one, a name, a role, a
|
|
122
|
+
* biography, and a destination where the consumer publishes one.
|
|
123
|
+
*
|
|
124
|
+
* All four NaniSoft sites publish a team section and each one wrote it by hand:
|
|
125
|
+
* a grid of portraits with a name and a role under each, on a marketing page, for
|
|
126
|
+
* the people who watch a pipeline, who read a market, and who keep an estate
|
|
127
|
+
* observed. Four copies of the same arrangement, four decisions about whether
|
|
128
|
+
* the biography was set at card width or at the reading measure, and four
|
|
129
|
+
* decisions about what a person with no photograph looks like. None of those is a
|
|
130
|
+
* hard problem. The reason the section is worth a Block is the opposite of the
|
|
131
|
+
* usual one, which is that it is where a marketing page is most tempted to make a
|
|
132
|
+
* claim about a person: a card with a portrait and a job title under it reads as
|
|
133
|
+
* an endorsement, so the arrangement this Block ships keeps the person's own name
|
|
134
|
+
* as the anchor, keeps the role in the words the consumer wrote, and refuses to
|
|
135
|
+
* invent either.
|
|
136
|
+
*
|
|
137
|
+
* **The biography is not truncated, and the caller is the one who decides how long
|
|
138
|
+
* it is.** A Block that cut a biography at three lines with an ellipsis would be
|
|
139
|
+
* deciding which part of a person's account of their own work matters, and it
|
|
140
|
+
* would do it by cutting mid-sentence, which is the one place a truncation is
|
|
141
|
+
* guaranteed to remove the qualification rather than the flattery. So the bio is
|
|
142
|
+
* rendered at the measure and at whatever length the caller passed, and a caller
|
|
143
|
+
* who wants three lines writes three lines. The cost is stated rather than
|
|
144
|
+
* hidden: a card grid with six two-paragraph biographies is a very tall page, and
|
|
145
|
+
* the fix is the caller's editing rather than this Block's ellipsis.
|
|
146
|
+
*
|
|
147
|
+
* **`avatar-group` is deliberately not composed here.** It is the right
|
|
148
|
+
* Component for a set a page is summarising rather than showing: a row of
|
|
149
|
+
* overlapping discs with a count for the rest is a statement that the set is
|
|
150
|
+
* longer than the space. A team page shows every person, because the person is
|
|
151
|
+
* the content, so the count would replace a person with a numeral. The one place
|
|
152
|
+
* a group belongs on a team page is a related section about a project, and that
|
|
153
|
+
* is a caller's row rather than this Block's job.
|
|
154
|
+
*
|
|
155
|
+
* **A card with a destination is a native anchor wrapping the card, so the focus
|
|
156
|
+
* ring bounds the card rather than the words inside it.** That is the argument
|
|
157
|
+
* `Item` states in full and it is the reason the anchor sits outside the surface
|
|
158
|
+
* here. The link's words are drawn inside it as the trailing label, and the
|
|
159
|
+
* label is required whenever the link is, because a link announced by its address
|
|
160
|
+
* is a link a reader cannot follow. A person with no `href` is not a disabled
|
|
161
|
+
* link: the card is a card.
|
|
162
|
+
*
|
|
163
|
+
* The card title is composed at `childLevel(headingLevel)` rather than at a fixed
|
|
164
|
+
* level, so a team grid embedded one level deeper than it was written for carries
|
|
165
|
+
* its titles with it. An empty set renders nothing, for the reason
|
|
166
|
+
* `ProductSwitcher` and `AvatarGroup` each state: an empty frame is worse than an
|
|
167
|
+
* absent one, and a team page with nobody on it has nothing to say.
|
|
168
|
+
*
|
|
169
|
+
* It is a server Component: no hook, no state and no client code of its own. The
|
|
170
|
+
* portrait is `Avatar`, which is a client Component whose only client work is
|
|
171
|
+
* measuring whether an image has loaded, so a grid of twelve people costs no
|
|
172
|
+
* JavaScript from this module beyond that.
|
|
173
|
+
*/
|
|
174
|
+
export declare function Team01({ eyebrow, title, description, people, variant, highlight, headingLevel, className, }: Team01Props): import("react").JSX.Element | null;
|
|
175
|
+
export default Team01;
|
|
176
|
+
//# sourceMappingURL=team.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../../src/blocks/team-01/team.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAuBpG;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB;;;;OAIG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QACP,2EAA2E;QAC3E,GAAG,CAAC,EAAE,MAAM,CAAA;QACZ,wDAAwD;QACxD,IAAI,EAAE,MAAM,CAAA;KACb,CAAA;IACD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,iFAAiF;IACjF,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC7B,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA8BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,MAAM,CAAC,EACrB,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,OAAiB,EACjB,SAAS,EACT,YAAmB,EACnB,SAAS,GACV,EAAE,WAAW,sCA2Ib;AAED,eAAe,MAAM,CAAA"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar.js';
|
|
3
|
+
import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '../../components/ui/card.js';
|
|
4
|
+
import { Section, SectionHeading, childLevel } from '../../components/ui/section.js';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* The initials a name produces, and the rule that produces them.
|
|
8
|
+
*
|
|
9
|
+
* Two letters from the first and last words, and the first two characters of a
|
|
10
|
+
* single word. It is the same rule `AvatarGroup` applies and it is repeated here
|
|
11
|
+
* rather than imported, and the reason is a boundary rather than an oversight:
|
|
12
|
+
* that helper is private to its module, and exporting it would make a private
|
|
13
|
+
* derivation part of the published surface of a Component in order to save six
|
|
14
|
+
* lines in a Block. The cost of the repetition is stated rather than hidden: two
|
|
15
|
+
* modules carry this rule, so a change to it is a change in both, and a caller
|
|
16
|
+
* who needs a case the rule does not cover passes their own node.
|
|
17
|
+
*/
|
|
18
|
+
function initialsOf(name) {
|
|
19
|
+
const words = name.trim().split(/\s+/).filter(Boolean);
|
|
20
|
+
const first = words[0];
|
|
21
|
+
if (first === undefined)
|
|
22
|
+
return '';
|
|
23
|
+
if (words.length === 1)
|
|
24
|
+
return first.slice(0, 2).toUpperCase();
|
|
25
|
+
return `${first.charAt(0)}${words[words.length - 1].charAt(0)}`.toUpperCase();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The checks that keep a claim about a person from being one Prism made.
|
|
29
|
+
*
|
|
30
|
+
* A label with no link is a word with nothing behind it, which is the same defect
|
|
31
|
+
* `Status` refuses with its own `label`; a highlight naming a person who is not
|
|
32
|
+
* in the set is a border drawn around nobody, which is invisible in review and
|
|
33
|
+
* permanent in the rendered page. Both throw rather than degrade.
|
|
34
|
+
*/
|
|
35
|
+
function assertPeople(people, highlight) {
|
|
36
|
+
for (const id of highlight ?? []) {
|
|
37
|
+
if (!people.some((person) => person.id === id)) {
|
|
38
|
+
throw new Error('Team01: highlight names an id that is not in people, so the border would be drawn around nobody and the ' +
|
|
39
|
+
'page would look deliberate. Name a person, or drop the id.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
for (const person of people) {
|
|
43
|
+
if (person.href !== undefined && (person.hrefLabel === undefined || person.hrefLabel.trim() === '')) {
|
|
44
|
+
throw new Error('Team01: a person declares an href and no hrefLabel, so the link would be announced by its address, which ' +
|
|
45
|
+
'is punctuation rather than a name. Pass the words that say where the person goes.');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A grid or a list of people: a portrait where there is one, a name, a role, a
|
|
51
|
+
* biography, and a destination where the consumer publishes one.
|
|
52
|
+
*
|
|
53
|
+
* All four NaniSoft sites publish a team section and each one wrote it by hand:
|
|
54
|
+
* a grid of portraits with a name and a role under each, on a marketing page, for
|
|
55
|
+
* the people who watch a pipeline, who read a market, and who keep an estate
|
|
56
|
+
* observed. Four copies of the same arrangement, four decisions about whether
|
|
57
|
+
* the biography was set at card width or at the reading measure, and four
|
|
58
|
+
* decisions about what a person with no photograph looks like. None of those is a
|
|
59
|
+
* hard problem. The reason the section is worth a Block is the opposite of the
|
|
60
|
+
* usual one, which is that it is where a marketing page is most tempted to make a
|
|
61
|
+
* claim about a person: a card with a portrait and a job title under it reads as
|
|
62
|
+
* an endorsement, so the arrangement this Block ships keeps the person's own name
|
|
63
|
+
* as the anchor, keeps the role in the words the consumer wrote, and refuses to
|
|
64
|
+
* invent either.
|
|
65
|
+
*
|
|
66
|
+
* **The biography is not truncated, and the caller is the one who decides how long
|
|
67
|
+
* it is.** A Block that cut a biography at three lines with an ellipsis would be
|
|
68
|
+
* deciding which part of a person's account of their own work matters, and it
|
|
69
|
+
* would do it by cutting mid-sentence, which is the one place a truncation is
|
|
70
|
+
* guaranteed to remove the qualification rather than the flattery. So the bio is
|
|
71
|
+
* rendered at the measure and at whatever length the caller passed, and a caller
|
|
72
|
+
* who wants three lines writes three lines. The cost is stated rather than
|
|
73
|
+
* hidden: a card grid with six two-paragraph biographies is a very tall page, and
|
|
74
|
+
* the fix is the caller's editing rather than this Block's ellipsis.
|
|
75
|
+
*
|
|
76
|
+
* **`avatar-group` is deliberately not composed here.** It is the right
|
|
77
|
+
* Component for a set a page is summarising rather than showing: a row of
|
|
78
|
+
* overlapping discs with a count for the rest is a statement that the set is
|
|
79
|
+
* longer than the space. A team page shows every person, because the person is
|
|
80
|
+
* the content, so the count would replace a person with a numeral. The one place
|
|
81
|
+
* a group belongs on a team page is a related section about a project, and that
|
|
82
|
+
* is a caller's row rather than this Block's job.
|
|
83
|
+
*
|
|
84
|
+
* **A card with a destination is a native anchor wrapping the card, so the focus
|
|
85
|
+
* ring bounds the card rather than the words inside it.** That is the argument
|
|
86
|
+
* `Item` states in full and it is the reason the anchor sits outside the surface
|
|
87
|
+
* here. The link's words are drawn inside it as the trailing label, and the
|
|
88
|
+
* label is required whenever the link is, because a link announced by its address
|
|
89
|
+
* is a link a reader cannot follow. A person with no `href` is not a disabled
|
|
90
|
+
* link: the card is a card.
|
|
91
|
+
*
|
|
92
|
+
* The card title is composed at `childLevel(headingLevel)` rather than at a fixed
|
|
93
|
+
* level, so a team grid embedded one level deeper than it was written for carries
|
|
94
|
+
* its titles with it. An empty set renders nothing, for the reason
|
|
95
|
+
* `ProductSwitcher` and `AvatarGroup` each state: an empty frame is worse than an
|
|
96
|
+
* absent one, and a team page with nobody on it has nothing to say.
|
|
97
|
+
*
|
|
98
|
+
* It is a server Component: no hook, no state and no client code of its own. The
|
|
99
|
+
* portrait is `Avatar`, which is a client Component whose only client work is
|
|
100
|
+
* measuring whether an image has loaded, so a grid of twelve people costs no
|
|
101
|
+
* JavaScript from this module beyond that.
|
|
102
|
+
*/
|
|
103
|
+
export function Team01({ eyebrow, title, description, people, variant = 'cards', highlight, headingLevel = 'h2', className, }) {
|
|
104
|
+
if (people.length === 0)
|
|
105
|
+
return null;
|
|
106
|
+
assertPeople(people, highlight);
|
|
107
|
+
const Title = childLevel(headingLevel);
|
|
108
|
+
const marked = (id) => highlight?.includes(id) === true;
|
|
109
|
+
return (_jsxs(Section, { className: className, children: [title ? (_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description, className: "mb-12" })) : null, variant === 'list' ? (_jsx("ul", { "data-slot": "team", "data-variant": variant, className: "flex flex-col", children: people.map((person) => {
|
|
110
|
+
const row = (_jsxs(_Fragment, { children: [person.avatar === undefined ? null : (_jsxs(Avatar, { className: "size-10", children: [person.avatar.src === undefined ? null : (_jsx(AvatarImage, { src: person.avatar.src, alt: "" })), _jsx(AvatarFallback, { children: initialsOf(person.avatar.name) })] })), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1", children: [_jsx("span", { className: "text-sm font-semibold", children: person.name }), _jsx("span", { className: "text-muted-foreground text-sm", children: person.role }), person.bio === undefined ? null : (_jsx("p", { className: "text-muted-foreground max-w-measure text-pretty text-sm", children: person.bio }))] }), person.hrefLabel === undefined ? null : (_jsx("span", { className: "text-muted-foreground shrink-0 text-sm", children: person.hrefLabel }))] }));
|
|
111
|
+
return (_jsx("li", { "data-slot": "team-item", "data-person": person.id, "data-highlighted": marked(person.id) ? 'true' : undefined, className: cn('border-border border-b first:border-t', marked(person.id) ? 'border-primary border-l-2 pl-4' : ''), children: person.href === undefined ? (_jsx("div", { className: "flex items-start gap-4 py-5", children: row })) : (_jsx("a", { "data-slot": "team-link", href: person.href, className: "hover:bg-accent/50 focus-visible:ring-ring flex items-start gap-4 rounded-sm px-2 py-5 transition-colors duration-fast ease-out focus-visible:ring-[3px] focus-visible:outline-none", children: row })) }, person.id));
|
|
112
|
+
}) })) : (_jsx("ul", { "data-slot": "team", "data-variant": variant, className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3", children: people.map((person) => {
|
|
113
|
+
const card = (_jsxs(Card, { className: cn('h-full gap-4 py-6', marked(person.id) ? 'border-primary' : ''), children: [_jsxs(CardHeader, { className: "gap-2.5", children: [person.avatar === undefined ? null : (_jsxs(Avatar, { className: "size-16", children: [person.avatar.src === undefined ? null : (_jsx(AvatarImage, { src: person.avatar.src, alt: "" })), _jsx(AvatarFallback, { children: initialsOf(person.avatar.name) })] })), _jsx(CardTitle, { as: Title, children: person.name }), _jsx("p", { className: "text-muted-foreground text-sm", children: person.role })] }), person.bio === undefined ? null : (_jsx(CardContent, { className: "text-muted-foreground max-w-measure text-pretty text-sm", children: person.bio })), person.hrefLabel === undefined ? null : (_jsx(CardFooter, { className: "text-muted-foreground text-sm", children: person.hrefLabel }))] }));
|
|
114
|
+
return (_jsx("li", { "data-slot": "team-item", "data-person": person.id, "data-highlighted": marked(person.id) ? 'true' : undefined, className: "h-full", children: person.href === undefined ? (card) : (_jsx("a", { "data-slot": "team-link", href: person.href, className: "focus-visible:ring-ring block h-full rounded-xl transition-opacity duration-fast ease-out hover:opacity-80 focus-visible:ring-[3px] focus-visible:outline-none", children: card })) }, person.id));
|
|
115
|
+
}) }))] }));
|
|
116
|
+
}
|
|
117
|
+
export default Team01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/testimonial-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAItD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Testimonial01, default } from './testimonial.js';
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* One quote and the person it is attributed to.
|
|
5
|
+
*
|
|
6
|
+
* `id` is separate from `name` for the reason every id in this package is
|
|
7
|
+
* separate from its display text: `format="pair"` matches on it, and a name is
|
|
8
|
+
* display content a consumer may correct in one release and not the other.
|
|
9
|
+
*/
|
|
10
|
+
export type Testimonial01Quote = {
|
|
11
|
+
/** Stable identity, used for the key and for the pair's column matching. */
|
|
12
|
+
id: string;
|
|
13
|
+
/** The words, as the caller composes them. A node so a caller can mark one. */
|
|
14
|
+
quote: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* The person quoted.
|
|
17
|
+
*
|
|
18
|
+
* Required, and it is the only required field after the words themselves,
|
|
19
|
+
* because a quote with no name is a sentence the reader cannot weigh. See the
|
|
20
|
+
* JSDoc on the Block.
|
|
21
|
+
*/
|
|
22
|
+
name: string;
|
|
23
|
+
/**
|
|
24
|
+
* What the person does, in the product's own words.
|
|
25
|
+
*
|
|
26
|
+
* A separate field from `company` rather than one `byline` string, and the
|
|
27
|
+
* reason is the shape of the data. A quote whose speaker has a role and no
|
|
28
|
+
* company, a consultant, a regulator, an author, would otherwise have to write
|
|
29
|
+
* something in the company field to fill it, and the two common workarounds are
|
|
30
|
+
* both worse than an empty field: a consumer writes "Independent" and publishes
|
|
31
|
+
* a claim about a person's employment status, or they concatenate the two into
|
|
32
|
+
* one string and lose the ability to link the company.
|
|
33
|
+
*/
|
|
34
|
+
role?: string;
|
|
35
|
+
/** The organisation the person speaks for, when there is one. */
|
|
36
|
+
company?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Where the organisation's own page is, when there is one.
|
|
39
|
+
*
|
|
40
|
+
* Rendered as a real anchor with the company as its accessible name, so a
|
|
41
|
+
* reader hears "NaniSoft, link" rather than a bare URL and can follow it. Omit
|
|
42
|
+
* it and the company is text, which is the right answer when the company has no
|
|
43
|
+
* page of its own.
|
|
44
|
+
*/
|
|
45
|
+
companyUrl?: string;
|
|
46
|
+
/**
|
|
47
|
+
* The person's picture, and what to show when there is none.
|
|
48
|
+
*
|
|
49
|
+
* `src` and `name` are both the caller's and the pairing is the point: `name` is
|
|
50
|
+
* what the fallback shows, so a caller supplies the initials or monogram they
|
|
51
|
+
* want rather than accepting ones this Block derived. See the JSDoc on the
|
|
52
|
+
* Block for why Prism does not extract them.
|
|
53
|
+
*/
|
|
54
|
+
avatar?: {
|
|
55
|
+
src?: string;
|
|
56
|
+
name: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* The props a Testimonial01 takes.
|
|
61
|
+
*
|
|
62
|
+
* Every string is a prop and the Block ships none: no quote, no name, no role, no
|
|
63
|
+
* company and no avatar text. A testimonial is the one place on a marketing page
|
|
64
|
+
* where a hardcoded name is a claim about a real person, which is a different kind
|
|
65
|
+
* of wrong from a hardcoded price.
|
|
66
|
+
*/
|
|
67
|
+
export type Testimonial01Props = {
|
|
68
|
+
/** Optional label above the section title. See the No-Default-Eyebrow Rule. */
|
|
69
|
+
eyebrow?: ReactNode;
|
|
70
|
+
/**
|
|
71
|
+
* The section title.
|
|
72
|
+
*
|
|
73
|
+
* Optional, unlike a section that introduces a set. A testimonial band placed
|
|
74
|
+
* between a case study and a pricing table often has nothing to add to what is
|
|
75
|
+
* above it, and a heading invented to fill the space is a heading nobody
|
|
76
|
+
* wanted.
|
|
77
|
+
*/
|
|
78
|
+
title?: ReactNode;
|
|
79
|
+
/** One or two sentences under the title. */
|
|
80
|
+
description?: ReactNode;
|
|
81
|
+
/**
|
|
82
|
+
* The quotes, in the order a reader should meet them.
|
|
83
|
+
*
|
|
84
|
+
* `format="single"` takes exactly one and `format="pair"` takes exactly two.
|
|
85
|
+
* A count that does not match is a thrown diagnostic rather than a short row,
|
|
86
|
+
* for the reason the matrix throws: a testimonial that quietly drops its third
|
|
87
|
+
* quote is a product that decided a reader was not meant to read it.
|
|
88
|
+
*/
|
|
89
|
+
quotes: readonly Testimonial01Quote[];
|
|
90
|
+
/**
|
|
91
|
+
* Which form the quotes take.
|
|
92
|
+
*
|
|
93
|
+
* `single` is the default because one quote read well is worth more than three
|
|
94
|
+
* read quickly, and a band of four is a carousel with better manners. `pair` is
|
|
95
|
+
* two columns, which is the most a reader can hold side by side before the
|
|
96
|
+
* attributions start to blur.
|
|
97
|
+
*
|
|
98
|
+
* @defaultValue 'single'
|
|
99
|
+
*/
|
|
100
|
+
format?: 'single' | 'pair';
|
|
101
|
+
/** Heading level for the section title. See `HeadingLevel`. */
|
|
102
|
+
headingLevel?: HeadingLevel;
|
|
103
|
+
/** Layout classes for the band. Layout only; every visual property is Prism's. */
|
|
104
|
+
className?: string;
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* One quote with an attribution, or two side by side.
|
|
108
|
+
*
|
|
109
|
+
* **The attribution is the load-bearing part, and everything else on this Block is
|
|
110
|
+
* arranged around it.** A quote with no name is a sentence the reader cannot
|
|
111
|
+
* weigh: an unattributed sentence on a marketing page is a claim the page makes
|
|
112
|
+
* about itself, wearing somebody's voice, and a reader who is weighing whether to
|
|
113
|
+
* trust the product has nothing to weigh it against. A quote with a name and no
|
|
114
|
+
* role is only slightly better, because a name is a name and a reader cannot tell
|
|
115
|
+
* a user from the person who wrote the thing they are using.
|
|
116
|
+
*
|
|
117
|
+
* **So `role` and `company` are two optional fields and not one `byline` string,
|
|
118
|
+
* and the reason is the shape of the data rather than the shape of the layout.** A
|
|
119
|
+
* testimonial whose speaker has a role and no company is ordinary: a consultant, a
|
|
120
|
+
* regulator, an auditor, an author, an engineer who has left. One `byline` string
|
|
121
|
+
* would have forced that speaker to put something in the company half, and the two
|
|
122
|
+
* workarounds available at the time were both worse than an empty field. A
|
|
123
|
+
* consumer writes "Independent" and publishes a claim about somebody's employment
|
|
124
|
+
* status that may be false. Or the consumer concatenates the two into one string
|
|
125
|
+
* and loses the ability to link the company, which is the half a reader most wants
|
|
126
|
+
* to follow. Two fields cost a consumer one extra line and cost this Block
|
|
127
|
+
* nothing, and the two are laid out as two items in one caption line rather than
|
|
128
|
+
* as one concatenated string, so a reader is not left parsing a byline and working
|
|
129
|
+
* out where the role ends and the employer begins. The cost of the decision is
|
|
130
|
+
* that a caller who wants a single unbroken byline has to write the punctuation
|
|
131
|
+
* themselves, which is the right way round: it is their name and their voice.
|
|
132
|
+
*
|
|
133
|
+
* **`companyUrl` renders a real anchor, and the company is its accessible name.**
|
|
134
|
+
* The alternative was a bare URL under the attribution, which is a link a reader
|
|
135
|
+
* has to read character by character and a link whose destination is announced as
|
|
136
|
+
* punctuation. The anchor also carries the full-strength focus ring the rest of
|
|
137
|
+
* this package draws, because a bare anchor in a `figcaption` is the one link on
|
|
138
|
+
* the page a keyboard reader is most likely to reach without having seen.
|
|
139
|
+
*
|
|
140
|
+
* **`avatar.name` is the caller's fallback text and Prism does not derive it.** The
|
|
141
|
+
* obvious Block would take a `name` and take the initials from it, and that is a
|
|
142
|
+
* claim about the grammar of names in a language this repository has no data for:
|
|
143
|
+
* one word, two words, a surname first, a patronymic, a suffix, a name that is
|
|
144
|
+
* written with a space in it. So the fallback is the caller's own short string, and
|
|
145
|
+
* a caller who wants a monogram writes the monogram. The image's `alt` is empty
|
|
146
|
+
* rather than the person's name, for the reason `Avatar`'s JSDoc gives: the
|
|
147
|
+
* attribution beside it already identifies the person, and an `alt` repeating that
|
|
148
|
+
* name is the same sentence twice.
|
|
149
|
+
*
|
|
150
|
+
* **There is no carousel and nothing advances.** `DESIGN.md`'s Motion section
|
|
151
|
+
* refuses an attention loop, and a testimonial that moves is a testimonial a
|
|
152
|
+
* reader cannot finish reading. A quote is a sentence somebody chose to say about
|
|
153
|
+
* a product they use, and the reader is being asked to weigh it; swapping it out
|
|
154
|
+
* from under them mid-sentence is the opposite of being asked, and an
|
|
155
|
+
* auto-advancing quote is a quote the reader has to outrun. The consequence is
|
|
156
|
+
* that a reader who wants more quotes scrolls, and a product with twenty
|
|
157
|
+
* testimonials ships a `pair` twice or a page of them rather than a control. That
|
|
158
|
+
* is a real cost: a carousel is shorter, and this is a Block that cannot be made
|
|
159
|
+
* shorter. The rejected alternative was a manual carousel, which is the same
|
|
160
|
+
* component with the motion taken out and the truncation left in.
|
|
161
|
+
*
|
|
162
|
+
* **The count must match the form, and it throws rather than truncating.** See
|
|
163
|
+
* `Testimonial01Props.quotes`. `format="single"` with three quotes would render one
|
|
164
|
+
* of them and drop two, and a dropped testimonial is a product that decided a
|
|
165
|
+
* reader was not meant to read it.
|
|
166
|
+
*
|
|
167
|
+
* It is a server Component: no hook, no state and no client code of its own. It
|
|
168
|
+
* composes `Avatar`, which ships its own client directive, so a consumer who
|
|
169
|
+
* passes no `avatar` pays for nothing.
|
|
170
|
+
*/
|
|
171
|
+
export declare function Testimonial01({ eyebrow, title, description, quotes, format, headingLevel, className, }: Testimonial01Props): import("react").JSX.Element;
|
|
172
|
+
export default Testimonial01;
|
|
173
|
+
//# sourceMappingURL=testimonial.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"testimonial.d.ts","sourceRoot":"","sources":["../../../src/blocks/testimonial-01/testimonial.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItC,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAGpG;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,+EAA+E;IAC/E,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACxC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;OAOG;IACH,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,KAAK,EACL,WAAW,EACX,MAAM,EACN,MAAiB,EACjB,YAAmB,EACnB,SAAS,GACV,EAAE,kBAAkB,+BA0CpB;AAED,eAAe,aAAa,CAAA"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar.js';
|
|
3
|
+
import { Card, CardContent } from '../../components/ui/card.js';
|
|
4
|
+
import { Section, SectionHeading, childLevel } from '../../components/ui/section.js';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
/** One quote: the words, then the person they are attributed to. */
|
|
7
|
+
function Quote({ quote, name, role, company, companyUrl, avatar, Name, }) {
|
|
8
|
+
return (_jsx(Card, { "data-slot": "testimonial-quote", className: "gap-4", children: _jsx(CardContent, { children: _jsxs("figure", { className: "flex flex-col gap-4", children: [_jsx("blockquote", { "data-slot": "testimonial-text", className: "text-pretty text-base leading-relaxed", children: quote }), _jsxs("figcaption", { "data-slot": "testimonial-attribution", className: "text-muted-foreground flex items-center gap-3 text-sm", children: [avatar ? (_jsxs(Avatar, { className: "size-9", children: [avatar.src ? _jsx(AvatarImage, { src: avatar.src, alt: "" }) : null, _jsx(AvatarFallback, { children: avatar.name })] })) : null, _jsxs("span", { className: "flex min-w-0 flex-col gap-0.5", children: [_jsx(Name, { className: "text-foreground text-sm font-medium", children: name }), role || company ? (_jsxs("span", { className: "flex flex-wrap items-center gap-x-2", children: [role ? _jsx("span", { children: role }) : null, company ? (companyUrl ? (_jsx("a", { href: companyUrl, rel: "noopener noreferrer", className: "focus-visible:ring-ring rounded-xs underline underline-offset-4 outline-none focus-visible:ring-[3px]", children: company })) : (_jsx("span", { children: company }))) : null] })) : null] })] })] }) }) }));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* One quote with an attribution, or two side by side.
|
|
12
|
+
*
|
|
13
|
+
* **The attribution is the load-bearing part, and everything else on this Block is
|
|
14
|
+
* arranged around it.** A quote with no name is a sentence the reader cannot
|
|
15
|
+
* weigh: an unattributed sentence on a marketing page is a claim the page makes
|
|
16
|
+
* about itself, wearing somebody's voice, and a reader who is weighing whether to
|
|
17
|
+
* trust the product has nothing to weigh it against. A quote with a name and no
|
|
18
|
+
* role is only slightly better, because a name is a name and a reader cannot tell
|
|
19
|
+
* a user from the person who wrote the thing they are using.
|
|
20
|
+
*
|
|
21
|
+
* **So `role` and `company` are two optional fields and not one `byline` string,
|
|
22
|
+
* and the reason is the shape of the data rather than the shape of the layout.** A
|
|
23
|
+
* testimonial whose speaker has a role and no company is ordinary: a consultant, a
|
|
24
|
+
* regulator, an auditor, an author, an engineer who has left. One `byline` string
|
|
25
|
+
* would have forced that speaker to put something in the company half, and the two
|
|
26
|
+
* workarounds available at the time were both worse than an empty field. A
|
|
27
|
+
* consumer writes "Independent" and publishes a claim about somebody's employment
|
|
28
|
+
* status that may be false. Or the consumer concatenates the two into one string
|
|
29
|
+
* and loses the ability to link the company, which is the half a reader most wants
|
|
30
|
+
* to follow. Two fields cost a consumer one extra line and cost this Block
|
|
31
|
+
* nothing, and the two are laid out as two items in one caption line rather than
|
|
32
|
+
* as one concatenated string, so a reader is not left parsing a byline and working
|
|
33
|
+
* out where the role ends and the employer begins. The cost of the decision is
|
|
34
|
+
* that a caller who wants a single unbroken byline has to write the punctuation
|
|
35
|
+
* themselves, which is the right way round: it is their name and their voice.
|
|
36
|
+
*
|
|
37
|
+
* **`companyUrl` renders a real anchor, and the company is its accessible name.**
|
|
38
|
+
* The alternative was a bare URL under the attribution, which is a link a reader
|
|
39
|
+
* has to read character by character and a link whose destination is announced as
|
|
40
|
+
* punctuation. The anchor also carries the full-strength focus ring the rest of
|
|
41
|
+
* this package draws, because a bare anchor in a `figcaption` is the one link on
|
|
42
|
+
* the page a keyboard reader is most likely to reach without having seen.
|
|
43
|
+
*
|
|
44
|
+
* **`avatar.name` is the caller's fallback text and Prism does not derive it.** The
|
|
45
|
+
* obvious Block would take a `name` and take the initials from it, and that is a
|
|
46
|
+
* claim about the grammar of names in a language this repository has no data for:
|
|
47
|
+
* one word, two words, a surname first, a patronymic, a suffix, a name that is
|
|
48
|
+
* written with a space in it. So the fallback is the caller's own short string, and
|
|
49
|
+
* a caller who wants a monogram writes the monogram. The image's `alt` is empty
|
|
50
|
+
* rather than the person's name, for the reason `Avatar`'s JSDoc gives: the
|
|
51
|
+
* attribution beside it already identifies the person, and an `alt` repeating that
|
|
52
|
+
* name is the same sentence twice.
|
|
53
|
+
*
|
|
54
|
+
* **There is no carousel and nothing advances.** `DESIGN.md`'s Motion section
|
|
55
|
+
* refuses an attention loop, and a testimonial that moves is a testimonial a
|
|
56
|
+
* reader cannot finish reading. A quote is a sentence somebody chose to say about
|
|
57
|
+
* a product they use, and the reader is being asked to weigh it; swapping it out
|
|
58
|
+
* from under them mid-sentence is the opposite of being asked, and an
|
|
59
|
+
* auto-advancing quote is a quote the reader has to outrun. The consequence is
|
|
60
|
+
* that a reader who wants more quotes scrolls, and a product with twenty
|
|
61
|
+
* testimonials ships a `pair` twice or a page of them rather than a control. That
|
|
62
|
+
* is a real cost: a carousel is shorter, and this is a Block that cannot be made
|
|
63
|
+
* shorter. The rejected alternative was a manual carousel, which is the same
|
|
64
|
+
* component with the motion taken out and the truncation left in.
|
|
65
|
+
*
|
|
66
|
+
* **The count must match the form, and it throws rather than truncating.** See
|
|
67
|
+
* `Testimonial01Props.quotes`. `format="single"` with three quotes would render one
|
|
68
|
+
* of them and drop two, and a dropped testimonial is a product that decided a
|
|
69
|
+
* reader was not meant to read it.
|
|
70
|
+
*
|
|
71
|
+
* It is a server Component: no hook, no state and no client code of its own. It
|
|
72
|
+
* composes `Avatar`, which ships its own client directive, so a consumer who
|
|
73
|
+
* passes no `avatar` pays for nothing.
|
|
74
|
+
*/
|
|
75
|
+
export function Testimonial01({ eyebrow, title, description, quotes, format = 'single', headingLevel = 'h2', className, }) {
|
|
76
|
+
const wanted = format === 'pair' ? 2 : 1;
|
|
77
|
+
if (quotes.length !== wanted) {
|
|
78
|
+
throw new Error(`Testimonial01: format is '${format}', which takes ${wanted} quote(s), and ${quotes.length} were ` +
|
|
79
|
+
'passed. A testimonial that quietly drops the ones past the count is a product deciding a reader ' +
|
|
80
|
+
'was not meant to read them, so the mismatch is refused rather than truncated.');
|
|
81
|
+
}
|
|
82
|
+
// The person quoted is the section's child title, for the reason the JSDoc gives:
|
|
83
|
+
// a reader navigating by heading should reach the name as well as the words.
|
|
84
|
+
const AttributionName = childLevel(headingLevel);
|
|
85
|
+
return (_jsxs(Section, { children: [title ? (_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description, className: "mb-12" })) : null, _jsx("div", { "data-slot": "testimonial", "data-format": format, className: cn('grid gap-6', format === 'pair' ? 'lg:grid-cols-2' : 'max-w-measure', className), children: quotes.map((entry) => (_jsx(Quote, { ...entry, Name: AttributionName }, entry.id))) })] }));
|
|
86
|
+
}
|
|
87
|
+
export default Testimonial01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/todo-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAKxC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Todo01, default } from './todo.js';
|