@nanisoft/prism-ui 0.13.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +22 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/blocks/about-01/about.d.ts +296 -0
- package/dist/blocks/about-01/about.d.ts.map +1 -0
- package/dist/blocks/about-01/about.js +103 -0
- package/dist/blocks/about-01/index.d.ts +3 -0
- package/dist/blocks/about-01/index.d.ts.map +1 -0
- package/dist/blocks/about-01/index.js +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
- package/dist/blocks/accept-invite-01/index.d.ts +3 -0
- package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/index.js +1 -0
- package/dist/blocks/account-01/account-01.d.ts +393 -0
- package/dist/blocks/account-01/account-01.d.ts.map +1 -0
- package/dist/blocks/account-01/account-01.js +215 -0
- package/dist/blocks/account-01/index.d.ts +3 -0
- package/dist/blocks/account-01/index.d.ts.map +1 -0
- package/dist/blocks/account-01/index.js +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
- package/dist/blocks/activity-feed-01/index.d.ts +3 -0
- package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/index.js +1 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
- package/dist/blocks/address-book-01/address-book-01.js +233 -0
- package/dist/blocks/address-book-01/index.d.ts +3 -0
- package/dist/blocks/address-book-01/index.d.ts.map +1 -0
- package/dist/blocks/address-book-01/index.js +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
- package/dist/blocks/audit-log-01/index.d.ts +3 -0
- package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/index.js +1 -0
- package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
- package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
- package/dist/blocks/auth-form-01/auth-form.js +26 -3
- package/dist/blocks/awards-01/awards.d.ts +156 -0
- package/dist/blocks/awards-01/awards.d.ts.map +1 -0
- package/dist/blocks/awards-01/awards.js +102 -0
- package/dist/blocks/awards-01/index.d.ts +3 -0
- package/dist/blocks/awards-01/index.d.ts.map +1 -0
- package/dist/blocks/awards-01/index.js +1 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/backdrop.js +170 -0
- package/dist/blocks/backdrop-01/index.d.ts +3 -0
- package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/index.js +1 -0
- package/dist/blocks/bento-01/bento-01.d.ts +136 -0
- package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
- package/dist/blocks/bento-01/bento-01.js +97 -0
- package/dist/blocks/bento-01/index.d.ts +3 -0
- package/dist/blocks/bento-01/index.d.ts.map +1 -0
- package/dist/blocks/bento-01/index.js +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
- package/dist/blocks/billing-source-01/index.d.ts +3 -0
- package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/index.js +1 -0
- package/dist/blocks/bundle-01/bundle.d.ts +387 -0
- package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
- package/dist/blocks/bundle-01/bundle.js +153 -0
- package/dist/blocks/bundle-01/index.d.ts +3 -0
- package/dist/blocks/bundle-01/index.d.ts.map +1 -0
- package/dist/blocks/bundle-01/index.js +1 -0
- package/dist/blocks/calendar-01/calendar.d.ts +251 -0
- package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
- package/dist/blocks/calendar-01/calendar.js +191 -0
- package/dist/blocks/calendar-01/index.d.ts +3 -0
- package/dist/blocks/calendar-01/index.d.ts.map +1 -0
- package/dist/blocks/calendar-01/index.js +1 -0
- package/dist/blocks/capacity-01/capacity.d.ts +363 -0
- package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
- package/dist/blocks/capacity-01/capacity.js +208 -0
- package/dist/blocks/capacity-01/index.d.ts +3 -0
- package/dist/blocks/capacity-01/index.d.ts.map +1 -0
- package/dist/blocks/capacity-01/index.js +1 -0
- package/dist/blocks/careers-01/careers.d.ts +186 -0
- package/dist/blocks/careers-01/careers.d.ts.map +1 -0
- package/dist/blocks/careers-01/careers.js +83 -0
- package/dist/blocks/careers-01/index.d.ts +3 -0
- package/dist/blocks/careers-01/index.d.ts.map +1 -0
- package/dist/blocks/careers-01/index.js +1 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/case-studies.js +97 -0
- package/dist/blocks/case-studies-01/index.d.ts +3 -0
- package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/index.js +1 -0
- package/dist/blocks/case-study-01/case-study.d.ts +214 -0
- package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
- package/dist/blocks/case-study-01/case-study.js +79 -0
- package/dist/blocks/case-study-01/index.d.ts +3 -0
- package/dist/blocks/case-study-01/index.d.ts.map +1 -0
- package/dist/blocks/case-study-01/index.js +1 -0
- package/dist/blocks/changelog-01/changelog.d.ts +200 -0
- package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
- package/dist/blocks/changelog-01/changelog.js +155 -0
- package/dist/blocks/changelog-01/index.d.ts +3 -0
- package/dist/blocks/changelog-01/index.d.ts.map +1 -0
- package/dist/blocks/changelog-01/index.js +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
- package/dist/blocks/chart-card-01/index.d.ts +3 -0
- package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/index.js +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
- package/dist/blocks/chart-group-01/index.d.ts +3 -0
- package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/index.js +1 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/code-sample.js +104 -0
- package/dist/blocks/code-sample-01/index.d.ts +3 -0
- package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/index.js +1 -0
- package/dist/blocks/community-01/community.d.ts +183 -0
- package/dist/blocks/community-01/community.d.ts.map +1 -0
- package/dist/blocks/community-01/community.js +102 -0
- package/dist/blocks/community-01/index.d.ts +3 -0
- package/dist/blocks/community-01/index.d.ts.map +1 -0
- package/dist/blocks/community-01/index.js +1 -0
- package/dist/blocks/compare-01/compare.d.ts +184 -0
- package/dist/blocks/compare-01/compare.d.ts.map +1 -0
- package/dist/blocks/compare-01/compare.js +106 -0
- package/dist/blocks/compare-01/index.d.ts +3 -0
- package/dist/blocks/compare-01/index.d.ts.map +1 -0
- package/dist/blocks/compare-01/index.js +1 -0
- package/dist/blocks/compliance-01/compliance.d.ts +249 -0
- package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
- package/dist/blocks/compliance-01/compliance.js +130 -0
- package/dist/blocks/compliance-01/index.d.ts +3 -0
- package/dist/blocks/compliance-01/index.d.ts.map +1 -0
- package/dist/blocks/compliance-01/index.js +1 -0
- package/dist/blocks/consent-01/consent.d.ts +211 -0
- package/dist/blocks/consent-01/consent.d.ts.map +1 -0
- package/dist/blocks/consent-01/consent.js +101 -0
- package/dist/blocks/consent-01/index.d.ts +3 -0
- package/dist/blocks/consent-01/index.d.ts.map +1 -0
- package/dist/blocks/consent-01/index.js +1 -0
- package/dist/blocks/contact-01/contact.d.ts +319 -0
- package/dist/blocks/contact-01/contact.d.ts.map +1 -0
- package/dist/blocks/contact-01/contact.js +211 -0
- package/dist/blocks/contact-01/index.d.ts +3 -0
- package/dist/blocks/contact-01/index.d.ts.map +1 -0
- package/dist/blocks/contact-01/index.js +1 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/content-grid.js +155 -0
- package/dist/blocks/content-grid-01/index.d.ts +3 -0
- package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/index.js +1 -0
- package/dist/blocks/cta-01/cta.d.ts +7 -1
- package/dist/blocks/cta-01/cta.d.ts.map +1 -1
- package/dist/blocks/cta-01/cta.js +11 -2
- package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
- package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
- package/dist/blocks/dashboard-01/index.d.ts +3 -0
- package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/index.js +1 -0
- package/dist/blocks/data-table-01/data-table.d.ts +22 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +9 -5
- package/dist/blocks/delivery-01/delivery.d.ts +343 -0
- package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
- package/dist/blocks/delivery-01/delivery.js +212 -0
- package/dist/blocks/delivery-01/index.d.ts +3 -0
- package/dist/blocks/delivery-01/index.d.ts.map +1 -0
- package/dist/blocks/delivery-01/index.js +1 -0
- package/dist/blocks/directory-01/directory-01.d.ts +316 -0
- package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
- package/dist/blocks/directory-01/directory-01.js +252 -0
- package/dist/blocks/directory-01/index.d.ts +3 -0
- package/dist/blocks/directory-01/index.d.ts.map +1 -0
- package/dist/blocks/directory-01/index.js +1 -0
- package/dist/blocks/download-01/download.d.ts +261 -0
- package/dist/blocks/download-01/download.d.ts.map +1 -0
- package/dist/blocks/download-01/download.js +115 -0
- package/dist/blocks/download-01/index.d.ts +3 -0
- package/dist/blocks/download-01/index.d.ts.map +1 -0
- package/dist/blocks/download-01/index.js +1 -0
- package/dist/blocks/faq-01/faq.d.ts +128 -0
- package/dist/blocks/faq-01/faq.d.ts.map +1 -0
- package/dist/blocks/faq-01/faq.js +53 -0
- package/dist/blocks/faq-01/index.d.ts +3 -0
- package/dist/blocks/faq-01/index.d.ts.map +1 -0
- package/dist/blocks/faq-01/index.js +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
- package/dist/blocks/feature-rows-01/index.d.ts +3 -0
- package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/index.js +1 -0
- package/dist/blocks/feedback-01/feedback.d.ts +235 -0
- package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
- package/dist/blocks/feedback-01/feedback.js +113 -0
- package/dist/blocks/feedback-01/index.d.ts +3 -0
- package/dist/blocks/feedback-01/index.d.ts.map +1 -0
- package/dist/blocks/feedback-01/index.js +1 -0
- package/dist/blocks/field-map-01/field-map.d.ts +247 -0
- package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
- package/dist/blocks/field-map-01/field-map.js +183 -0
- package/dist/blocks/field-map-01/index.d.ts +3 -0
- package/dist/blocks/field-map-01/index.d.ts.map +1 -0
- package/dist/blocks/field-map-01/index.js +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
- package/dist/blocks/forgot-password-01/index.d.ts +3 -0
- package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/index.js +1 -0
- package/dist/blocks/gallery-01/gallery.d.ts +208 -0
- package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
- package/dist/blocks/gallery-01/gallery.js +174 -0
- package/dist/blocks/gallery-01/index.d.ts +3 -0
- package/dist/blocks/gallery-01/index.d.ts.map +1 -0
- package/dist/blocks/gallery-01/index.js +1 -0
- package/dist/blocks/gantt-01/gantt.d.ts +290 -0
- package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
- package/dist/blocks/gantt-01/gantt.js +224 -0
- package/dist/blocks/gantt-01/index.d.ts +3 -0
- package/dist/blocks/gantt-01/index.d.ts.map +1 -0
- package/dist/blocks/gantt-01/index.js +1 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
- package/dist/blocks/handoff-01/handoff-01.js +180 -0
- package/dist/blocks/handoff-01/index.d.ts +3 -0
- package/dist/blocks/handoff-01/index.d.ts.map +1 -0
- package/dist/blocks/handoff-01/index.js +1 -0
- package/dist/blocks/help-01/help.d.ts +254 -0
- package/dist/blocks/help-01/help.d.ts.map +1 -0
- package/dist/blocks/help-01/help.js +188 -0
- package/dist/blocks/help-01/index.d.ts +3 -0
- package/dist/blocks/help-01/index.d.ts.map +1 -0
- package/dist/blocks/help-01/index.js +1 -0
- package/dist/blocks/hero-01/hero.d.ts +105 -34
- package/dist/blocks/hero-01/hero.d.ts.map +1 -1
- package/dist/blocks/hero-01/hero.js +23 -15
- package/dist/blocks/hero-01/index.d.ts +1 -1
- package/dist/blocks/hero-01/index.d.ts.map +1 -1
- package/dist/blocks/hero-02/hero-02.d.ts +244 -0
- package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
- package/dist/blocks/hero-02/hero-02.js +87 -0
- package/dist/blocks/hero-02/index.d.ts +3 -0
- package/dist/blocks/hero-02/index.d.ts.map +1 -0
- package/dist/blocks/hero-02/index.js +1 -0
- package/dist/blocks/hero-03/hero-03.d.ts +247 -0
- package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
- package/dist/blocks/hero-03/hero-03.js +93 -0
- package/dist/blocks/hero-03/index.d.ts +3 -0
- package/dist/blocks/hero-03/index.d.ts.map +1 -0
- package/dist/blocks/hero-03/index.js +1 -0
- package/dist/blocks/history-01/history-01.d.ts +414 -0
- package/dist/blocks/history-01/history-01.d.ts.map +1 -0
- package/dist/blocks/history-01/history-01.js +285 -0
- package/dist/blocks/history-01/index.d.ts +3 -0
- package/dist/blocks/history-01/index.d.ts.map +1 -0
- package/dist/blocks/history-01/index.js +1 -0
- package/dist/blocks/inbox-01/inbox.d.ts +349 -0
- package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
- package/dist/blocks/inbox-01/inbox.js +244 -0
- package/dist/blocks/inbox-01/index.d.ts +3 -0
- package/dist/blocks/inbox-01/index.d.ts.map +1 -0
- package/dist/blocks/inbox-01/index.js +1 -0
- package/dist/blocks/index.d.ts +203 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +118 -0
- package/dist/blocks/industries-01/index.d.ts +3 -0
- package/dist/blocks/industries-01/index.d.ts.map +1 -0
- package/dist/blocks/industries-01/index.js +1 -0
- package/dist/blocks/industries-01/industries.d.ts +164 -0
- package/dist/blocks/industries-01/industries.d.ts.map +1 -0
- package/dist/blocks/industries-01/industries.js +96 -0
- package/dist/blocks/intake-01/index.d.ts +3 -0
- package/dist/blocks/intake-01/index.d.ts.map +1 -0
- package/dist/blocks/intake-01/index.js +1 -0
- package/dist/blocks/intake-01/intake-01.d.ts +305 -0
- package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
- package/dist/blocks/intake-01/intake-01.js +178 -0
- package/dist/blocks/integration-01/index.d.ts +3 -0
- package/dist/blocks/integration-01/index.d.ts.map +1 -0
- package/dist/blocks/integration-01/index.js +1 -0
- package/dist/blocks/integration-01/integration.d.ts +226 -0
- package/dist/blocks/integration-01/integration.d.ts.map +1 -0
- package/dist/blocks/integration-01/integration.js +170 -0
- package/dist/blocks/invite-user-01/index.d.ts +3 -0
- package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/index.js +1 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/invite-user.js +228 -0
- package/dist/blocks/issue-detail-01/index.d.ts +3 -0
- package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/index.js +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
- package/dist/blocks/issue-list-01/index.d.ts +3 -0
- package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/index.js +1 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/issue-list.js +284 -0
- package/dist/blocks/kanban-01/index.d.ts +3 -0
- package/dist/blocks/kanban-01/index.d.ts.map +1 -0
- package/dist/blocks/kanban-01/index.js +1 -0
- package/dist/blocks/kanban-01/kanban.d.ts +278 -0
- package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
- package/dist/blocks/kanban-01/kanban.js +144 -0
- package/dist/blocks/leaderboard-01/index.d.ts +3 -0
- package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/index.js +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
- package/dist/blocks/login-01/index.d.ts +3 -0
- package/dist/blocks/login-01/index.d.ts.map +1 -0
- package/dist/blocks/login-01/index.js +1 -0
- package/dist/blocks/login-01/login-01.d.ts +356 -0
- package/dist/blocks/login-01/login-01.d.ts.map +1 -0
- package/dist/blocks/login-01/login-01.js +249 -0
- package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
- package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/index.js +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
- package/dist/blocks/magic-link-01/index.d.ts +3 -0
- package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/index.js +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
- package/dist/blocks/member-list-01/index.d.ts +3 -0
- package/dist/blocks/member-list-01/index.d.ts.map +1 -0
- package/dist/blocks/member-list-01/index.js +1 -0
- package/dist/blocks/member-list-01/member-list.d.ts +192 -0
- package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
- package/dist/blocks/member-list-01/member-list.js +142 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/index.js +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
- package/dist/blocks/newsletter-01/index.d.ts +3 -0
- package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/index.js +1 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/newsletter.js +102 -0
- package/dist/blocks/notification-center-01/index.d.ts +3 -0
- package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/index.js +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
- package/dist/blocks/offer-01/index.d.ts +3 -0
- package/dist/blocks/offer-01/index.d.ts.map +1 -0
- package/dist/blocks/offer-01/index.js +1 -0
- package/dist/blocks/offer-01/offer.d.ts +139 -0
- package/dist/blocks/offer-01/offer.d.ts.map +1 -0
- package/dist/blocks/offer-01/offer.js +81 -0
- package/dist/blocks/offering-01/index.d.ts +3 -0
- package/dist/blocks/offering-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-01/index.js +1 -0
- package/dist/blocks/offering-01/offering.d.ts +245 -0
- package/dist/blocks/offering-01/offering.d.ts.map +1 -0
- package/dist/blocks/offering-01/offering.js +144 -0
- package/dist/blocks/offering-categories-01/index.d.ts +3 -0
- package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/index.js +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
- package/dist/blocks/offering-list-01/index.d.ts +3 -0
- package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/index.js +1 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/offering-list.js +366 -0
- package/dist/blocks/onboarding-01/index.d.ts +3 -0
- package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/index.js +1 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/onboarding.js +182 -0
- package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
- package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/index.js +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
- package/dist/blocks/page-header-01/index.d.ts +1 -1
- package/dist/blocks/page-header-01/index.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.d.ts +131 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +33 -9
- package/dist/blocks/passkey-01/index.d.ts +3 -0
- package/dist/blocks/passkey-01/index.d.ts.map +1 -0
- package/dist/blocks/passkey-01/index.js +1 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
- package/dist/blocks/passkey-01/passkey-01.js +192 -0
- package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
- package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/index.js +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
- package/dist/blocks/pricing-01/index.d.ts +1 -0
- package/dist/blocks/pricing-01/index.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.d.ts +118 -1
- package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.js +9 -2
- package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
- package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/index.js +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
- package/dist/blocks/project-01/index.d.ts +3 -0
- package/dist/blocks/project-01/index.d.ts.map +1 -0
- package/dist/blocks/project-01/index.js +1 -0
- package/dist/blocks/project-01/project.d.ts +323 -0
- package/dist/blocks/project-01/project.d.ts.map +1 -0
- package/dist/blocks/project-01/project.js +247 -0
- package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
- package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/index.js +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
- package/dist/blocks/project-list-01/index.d.ts +3 -0
- package/dist/blocks/project-list-01/index.d.ts.map +1 -0
- package/dist/blocks/project-list-01/index.js +1 -0
- package/dist/blocks/project-list-01/project-list.d.ts +301 -0
- package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
- package/dist/blocks/project-list-01/project-list.js +305 -0
- package/dist/blocks/provisioning-01/index.d.ts +3 -0
- package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/index.js +1 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/provisioning.js +230 -0
- package/dist/blocks/quick-view-01/index.d.ts +3 -0
- package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/index.js +1 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/quick-view.js +136 -0
- package/dist/blocks/rate-card-01/index.d.ts +3 -0
- package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/index.js +1 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/rate-card.js +79 -0
- package/dist/blocks/reset-password-01/index.d.ts +3 -0
- package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/index.js +1 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/reset-password.js +175 -0
- package/dist/blocks/resource-list-01/index.d.ts +3 -0
- package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/index.js +1 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/resource-list.js +154 -0
- package/dist/blocks/retention-01/index.d.ts +3 -0
- package/dist/blocks/retention-01/index.d.ts.map +1 -0
- package/dist/blocks/retention-01/index.js +1 -0
- package/dist/blocks/retention-01/retention.d.ts +255 -0
- package/dist/blocks/retention-01/retention.d.ts.map +1 -0
- package/dist/blocks/retention-01/retention.js +145 -0
- package/dist/blocks/run-console-01/run-console.d.ts +14 -1
- package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
- package/dist/blocks/run-console-01/run-console.js +4 -2
- package/dist/blocks/services-01/index.d.ts +3 -0
- package/dist/blocks/services-01/index.d.ts.map +1 -0
- package/dist/blocks/services-01/index.js +1 -0
- package/dist/blocks/services-01/services.d.ts +159 -0
- package/dist/blocks/services-01/services.d.ts.map +1 -0
- package/dist/blocks/services-01/services.js +81 -0
- package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
- package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/index.js +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
- package/dist/blocks/settings-members-01/index.d.ts +3 -0
- package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/index.js +1 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/settings-members.js +255 -0
- package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
- package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/index.js +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
- package/dist/blocks/settings-security-01/index.d.ts +3 -0
- package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/index.js +1 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/settings-security.js +244 -0
- package/dist/blocks/shortlist-01/index.d.ts +3 -0
- package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/index.js +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
- package/dist/blocks/showcase-01/index.d.ts +3 -0
- package/dist/blocks/showcase-01/index.d.ts.map +1 -0
- package/dist/blocks/showcase-01/index.js +1 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
- package/dist/blocks/showcase-01/showcase-01.js +84 -0
- package/dist/blocks/signup-01/index.d.ts +3 -0
- package/dist/blocks/signup-01/index.d.ts.map +1 -0
- package/dist/blocks/signup-01/index.js +1 -0
- package/dist/blocks/signup-01/signup-01.d.ts +405 -0
- package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
- package/dist/blocks/signup-01/signup-01.js +209 -0
- package/dist/blocks/site-footer/site-footer.d.ts +34 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +24 -2
- package/dist/blocks/site-header/site-header.js +1 -1
- package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
- package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
- package/dist/blocks/site-navbar/site-navbar.js +33 -4
- package/dist/blocks/spec-table-01/index.d.ts +3 -0
- package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/index.js +1 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/spec-table.js +217 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts +13 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -1
- package/dist/blocks/stack-grid-01/stack-grid.js +14 -1
- package/dist/blocks/story-01/index.d.ts +3 -0
- package/dist/blocks/story-01/index.d.ts.map +1 -0
- package/dist/blocks/story-01/index.js +1 -0
- package/dist/blocks/story-01/story.d.ts +153 -0
- package/dist/blocks/story-01/story.d.ts.map +1 -0
- package/dist/blocks/story-01/story.js +103 -0
- package/dist/blocks/summary-01/index.d.ts +3 -0
- package/dist/blocks/summary-01/index.d.ts.map +1 -0
- package/dist/blocks/summary-01/index.js +1 -0
- package/dist/blocks/summary-01/summary.d.ts +300 -0
- package/dist/blocks/summary-01/summary.d.ts.map +1 -0
- package/dist/blocks/summary-01/summary.js +174 -0
- package/dist/blocks/team-01/index.d.ts +3 -0
- package/dist/blocks/team-01/index.d.ts.map +1 -0
- package/dist/blocks/team-01/index.js +1 -0
- package/dist/blocks/team-01/team.d.ts +176 -0
- package/dist/blocks/team-01/team.d.ts.map +1 -0
- package/dist/blocks/team-01/team.js +117 -0
- package/dist/blocks/testimonial-01/index.d.ts +3 -0
- package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/index.js +1 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/testimonial.js +87 -0
- package/dist/blocks/todo-01/index.d.ts +3 -0
- package/dist/blocks/todo-01/index.d.ts.map +1 -0
- package/dist/blocks/todo-01/index.js +1 -0
- package/dist/blocks/todo-01/todo.d.ts +286 -0
- package/dist/blocks/todo-01/todo.d.ts.map +1 -0
- package/dist/blocks/todo-01/todo.js +149 -0
- package/dist/blocks/trend-01/index.d.ts +3 -0
- package/dist/blocks/trend-01/index.d.ts.map +1 -0
- package/dist/blocks/trend-01/index.js +1 -0
- package/dist/blocks/trend-01/trend.d.ts +184 -0
- package/dist/blocks/trend-01/trend.d.ts.map +1 -0
- package/dist/blocks/trend-01/trend.js +99 -0
- package/dist/blocks/trust-strip-01/index.d.ts +3 -0
- package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/index.js +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
- package/dist/blocks/two-factor-01/index.d.ts +3 -0
- package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/index.js +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
- package/dist/blocks/user-profile-01/index.d.ts +3 -0
- package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/index.js +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
- package/dist/blocks/verify-email-01/index.d.ts +3 -0
- package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/index.js +1 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/verify-email.js +190 -0
- package/dist/blocks/waitlist-01/index.d.ts +3 -0
- package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/index.js +1 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/waitlist.js +75 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1641 -1
- package/dist/components/index.d.ts +114 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +134 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -2
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +22 -4
- package/dist/components/ui/announcement.d.ts +169 -0
- package/dist/components/ui/announcement.d.ts.map +1 -0
- package/dist/components/ui/announcement.js +123 -0
- package/dist/components/ui/avatar-group.d.ts +176 -0
- package/dist/components/ui/avatar-group.d.ts.map +1 -0
- package/dist/components/ui/avatar-group.js +135 -0
- package/dist/components/ui/billing-source.d.ts +293 -0
- package/dist/components/ui/billing-source.d.ts.map +1 -0
- package/dist/components/ui/billing-source.js +136 -0
- package/dist/components/ui/button.d.ts +16 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +17 -2
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +30 -2
- package/dist/components/ui/carousel.d.ts +7 -0
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +58 -1
- package/dist/components/ui/chart.d.ts +334 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +369 -0
- package/dist/components/ui/checkbox.d.ts +10 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +19 -1
- package/dist/components/ui/checklist.d.ts +262 -0
- package/dist/components/ui/checklist.d.ts.map +1 -0
- package/dist/components/ui/checklist.js +135 -0
- package/dist/components/ui/choice-card.d.ts +273 -0
- package/dist/components/ui/choice-card.d.ts.map +1 -0
- package/dist/components/ui/choice-card.js +138 -0
- package/dist/components/ui/code-block.d.ts +182 -0
- package/dist/components/ui/code-block.d.ts.map +1 -0
- package/dist/components/ui/code-block.js +108 -0
- package/dist/components/ui/cohort-grid.d.ts +210 -0
- package/dist/components/ui/cohort-grid.d.ts.map +1 -0
- package/dist/components/ui/cohort-grid.js +202 -0
- package/dist/components/ui/collapsible.d.ts +11 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +13 -2
- package/dist/components/ui/combobox.d.ts +4 -1
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +20 -4
- package/dist/components/ui/command-palette.d.ts +11 -0
- package/dist/components/ui/command-palette.d.ts.map +1 -1
- package/dist/components/ui/command-palette.js +49 -3
- package/dist/components/ui/contribution-graph.d.ts +156 -0
- package/dist/components/ui/contribution-graph.d.ts.map +1 -0
- package/dist/components/ui/contribution-graph.js +170 -0
- package/dist/components/ui/creatable-combobox.d.ts +153 -0
- package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
- package/dist/components/ui/creatable-combobox.js +285 -0
- package/dist/components/ui/data-toolbar.d.ts +133 -0
- package/dist/components/ui/data-toolbar.d.ts.map +1 -0
- package/dist/components/ui/data-toolbar.js +67 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +9 -1
- package/dist/components/ui/diagram.d.ts +38 -7
- package/dist/components/ui/diagram.d.ts.map +1 -1
- package/dist/components/ui/diagram.js +134 -52
- package/dist/components/ui/dialog.d.ts +31 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +40 -6
- package/dist/components/ui/drawer.d.ts +270 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +241 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +6 -1
- package/dist/components/ui/dropzone.d.ts +147 -0
- package/dist/components/ui/dropzone.d.ts.map +1 -0
- package/dist/components/ui/dropzone.js +141 -0
- package/dist/components/ui/emoji-picker.d.ts +328 -0
- package/dist/components/ui/emoji-picker.d.ts.map +1 -0
- package/dist/components/ui/emoji-picker.js +278 -0
- package/dist/components/ui/fact-list.d.ts +17 -0
- package/dist/components/ui/fact-list.d.ts.map +1 -1
- package/dist/components/ui/fact-list.js +18 -1
- package/dist/components/ui/file-upload.d.ts +152 -0
- package/dist/components/ui/file-upload.d.ts.map +1 -0
- package/dist/components/ui/file-upload.js +101 -0
- package/dist/components/ui/filter-panel.d.ts +164 -0
- package/dist/components/ui/filter-panel.d.ts.map +1 -0
- package/dist/components/ui/filter-panel.js +91 -0
- package/dist/components/ui/form-dialog.d.ts +257 -0
- package/dist/components/ui/form-dialog.d.ts.map +1 -0
- package/dist/components/ui/form-dialog.js +176 -0
- package/dist/components/ui/form-wizard.d.ts +251 -0
- package/dist/components/ui/form-wizard.d.ts.map +1 -0
- package/dist/components/ui/form-wizard.js +151 -0
- package/dist/components/ui/image-list-field.d.ts +232 -0
- package/dist/components/ui/image-list-field.d.ts.map +1 -0
- package/dist/components/ui/image-list-field.js +168 -0
- package/dist/components/ui/image-zoom.d.ts +164 -0
- package/dist/components/ui/image-zoom.d.ts.map +1 -0
- package/dist/components/ui/image-zoom.js +169 -0
- package/dist/components/ui/intensity-grid.d.ts +270 -0
- package/dist/components/ui/intensity-grid.d.ts.map +1 -0
- package/dist/components/ui/intensity-grid.js +211 -0
- package/dist/components/ui/lifecycle-button.d.ts +276 -0
- package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
- package/dist/components/ui/lifecycle-button.js +144 -0
- package/dist/components/ui/lightbox.d.ts +165 -0
- package/dist/components/ui/lightbox.d.ts.map +1 -0
- package/dist/components/ui/lightbox.js +130 -0
- package/dist/components/ui/list-panel.d.ts +288 -0
- package/dist/components/ui/list-panel.d.ts.map +1 -0
- package/dist/components/ui/list-panel.js +139 -0
- package/dist/components/ui/mega-menu.d.ts +244 -0
- package/dist/components/ui/mega-menu.d.ts.map +1 -0
- package/dist/components/ui/mega-menu.js +97 -0
- package/dist/components/ui/menubar.d.ts +9 -0
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +10 -1
- package/dist/components/ui/metric.d.ts +123 -0
- package/dist/components/ui/metric.d.ts.map +1 -0
- package/dist/components/ui/metric.js +68 -0
- package/dist/components/ui/mini-calendar.d.ts +143 -0
- package/dist/components/ui/mini-calendar.d.ts.map +1 -0
- package/dist/components/ui/mini-calendar.js +261 -0
- package/dist/components/ui/mode-toggle.d.ts +102 -0
- package/dist/components/ui/mode-toggle.d.ts.map +1 -0
- package/dist/components/ui/mode-toggle.js +83 -0
- package/dist/components/ui/money-field.d.ts +200 -0
- package/dist/components/ui/money-field.d.ts.map +1 -0
- package/dist/components/ui/money-field.js +215 -0
- package/dist/components/ui/multi-combobox.d.ts +181 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.js +297 -0
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js +8 -1
- package/dist/components/ui/navigation-menu.d.ts +7 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +8 -1
- package/dist/components/ui/nested-tabs.d.ts +188 -0
- package/dist/components/ui/nested-tabs.d.ts.map +1 -0
- package/dist/components/ui/nested-tabs.js +75 -0
- package/dist/components/ui/number-field.d.ts +40 -7
- package/dist/components/ui/number-field.d.ts.map +1 -1
- package/dist/components/ui/number-field.js +37 -7
- package/dist/components/ui/overflow-actions.d.ts +169 -0
- package/dist/components/ui/overflow-actions.d.ts.map +1 -0
- package/dist/components/ui/overflow-actions.js +266 -0
- package/dist/components/ui/pack-swatch.d.ts +177 -0
- package/dist/components/ui/pack-swatch.d.ts.map +1 -0
- package/dist/components/ui/pack-swatch.js +117 -0
- package/dist/components/ui/pack-switcher.d.ts +221 -0
- package/dist/components/ui/pack-switcher.d.ts.map +1 -0
- package/dist/components/ui/pack-switcher.js +94 -0
- package/dist/components/ui/pagination.d.ts +22 -0
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +23 -1
- package/dist/components/ui/password-field.d.ts +122 -0
- package/dist/components/ui/password-field.d.ts.map +1 -0
- package/dist/components/ui/password-field.js +69 -0
- package/dist/components/ui/pill.d.ts +172 -0
- package/dist/components/ui/pill.d.ts.map +1 -0
- package/dist/components/ui/pill.js +102 -0
- package/dist/components/ui/platform-modifier-key.d.ts +129 -0
- package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
- package/dist/components/ui/platform-modifier-key.js +125 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -1
- package/dist/components/ui/price.d.ts +144 -0
- package/dist/components/ui/price.d.ts.map +1 -0
- package/dist/components/ui/price.js +107 -0
- package/dist/components/ui/progress.d.ts +55 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +110 -2
- package/dist/components/ui/prompt-composer.d.ts +302 -0
- package/dist/components/ui/prompt-composer.d.ts.map +1 -0
- package/dist/components/ui/prompt-composer.js +145 -0
- package/dist/components/ui/proportion-list.d.ts +188 -0
- package/dist/components/ui/proportion-list.d.ts.map +1 -0
- package/dist/components/ui/proportion-list.js +134 -0
- package/dist/components/ui/prose.d.ts +34 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +41 -1
- package/dist/components/ui/pulse-graph.d.ts +36 -4
- package/dist/components/ui/pulse-graph.d.ts.map +1 -1
- package/dist/components/ui/pulse-graph.js +174 -60
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +8 -1
- package/dist/components/ui/range-field.d.ts +158 -0
- package/dist/components/ui/range-field.d.ts.map +1 -0
- package/dist/components/ui/range-field.js +208 -0
- package/dist/components/ui/relative-time.d.ts +116 -0
- package/dist/components/ui/relative-time.d.ts.map +1 -0
- package/dist/components/ui/relative-time.js +67 -0
- package/dist/components/ui/reorderable-list.d.ts +262 -0
- package/dist/components/ui/reorderable-list.d.ts.map +1 -0
- package/dist/components/ui/reorderable-list.js +325 -0
- package/dist/components/ui/repeatable-rows.d.ts +241 -0
- package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
- package/dist/components/ui/repeatable-rows.js +221 -0
- package/dist/components/ui/repo-stars.d.ts +165 -0
- package/dist/components/ui/repo-stars.d.ts.map +1 -0
- package/dist/components/ui/repo-stars.js +92 -0
- package/dist/components/ui/resizable.d.ts +24 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +96 -4
- package/dist/components/ui/search-dialog.d.ts +40 -5
- package/dist/components/ui/search-dialog.d.ts.map +1 -1
- package/dist/components/ui/search-dialog.js +94 -16
- package/dist/components/ui/search-field.d.ts +159 -0
- package/dist/components/ui/search-field.d.ts.map +1 -0
- package/dist/components/ui/search-field.js +98 -0
- package/dist/components/ui/section.d.ts +110 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +111 -3
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +9 -1
- package/dist/components/ui/selection-toolbar.d.ts +166 -0
- package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
- package/dist/components/ui/selection-toolbar.js +139 -0
- package/dist/components/ui/sidebar.d.ts +29 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +35 -2
- package/dist/components/ui/signal-field.d.ts.map +1 -1
- package/dist/components/ui/signal-field.js +1 -1
- package/dist/components/ui/slider.d.ts +7 -0
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +32 -1
- package/dist/components/ui/sparkline.d.ts +117 -0
- package/dist/components/ui/sparkline.d.ts.map +1 -0
- package/dist/components/ui/sparkline.js +113 -0
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +13 -0
- package/dist/components/ui/split-button.d.ts +207 -0
- package/dist/components/ui/split-button.d.ts.map +1 -0
- package/dist/components/ui/split-button.js +75 -0
- package/dist/components/ui/stateful-table.d.ts +345 -0
- package/dist/components/ui/stateful-table.d.ts.map +1 -0
- package/dist/components/ui/stateful-table.js +169 -0
- package/dist/components/ui/status.d.ts +99 -0
- package/dist/components/ui/status.d.ts.map +1 -0
- package/dist/components/ui/status.js +63 -0
- package/dist/components/ui/stepper.d.ts +155 -0
- package/dist/components/ui/stepper.d.ts.map +1 -0
- package/dist/components/ui/stepper.js +83 -0
- package/dist/components/ui/steps.d.ts +141 -0
- package/dist/components/ui/steps.d.ts.map +1 -0
- package/dist/components/ui/steps.js +128 -0
- package/dist/components/ui/switch.d.ts +8 -0
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +12 -1
- package/dist/components/ui/tabs.d.ts +21 -2
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +23 -4
- package/dist/components/ui/tag-group.d.ts +154 -0
- package/dist/components/ui/tag-group.d.ts.map +1 -0
- package/dist/components/ui/tag-group.js +111 -0
- package/dist/components/ui/task-progress.d.ts +149 -0
- package/dist/components/ui/task-progress.d.ts.map +1 -0
- package/dist/components/ui/task-progress.js +110 -0
- package/dist/components/ui/text-format-toolbar.d.ts +211 -0
- package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
- package/dist/components/ui/text-format-toolbar.js +186 -0
- package/dist/components/ui/timeline.d.ts.map +1 -1
- package/dist/components/ui/timeline.js +10 -1
- package/dist/components/ui/toast.d.ts +32 -10
- package/dist/components/ui/toast.d.ts.map +1 -1
- package/dist/components/ui/toast.js +150 -47
- package/dist/components/ui/toggle-group.d.ts +14 -5
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +15 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +9 -1
- package/dist/components/ui/tree.d.ts +8 -0
- package/dist/components/ui/tree.d.ts.map +1 -1
- package/dist/components/ui/tree.js +92 -13
- package/dist/components/ui/video-player.d.ts +236 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +72 -0
- package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -0
- package/dist/lib/figure.d.ts +149 -0
- package/dist/lib/figure.d.ts.map +1 -0
- package/dist/lib/figure.js +242 -0
- package/dist/lib/utils.d.ts +29 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +35 -0
- package/dist/live/index.d.ts +10 -3
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +12 -3
- package/dist/live/run-stream-01/run-stream.d.ts.map +1 -1
- package/dist/live/run-stream-01/run-stream.js +6 -5
- package/dist/live/tool-ledger-01/index.d.ts +3 -0
- package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/index.js +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
- package/dist/pages/about-page/index.d.ts +306 -0
- package/dist/pages/about-page/index.d.ts.map +1 -0
- package/dist/pages/about-page/index.js +161 -0
- package/dist/pages/blog-post-page/index.d.ts +36 -15
- package/dist/pages/blog-post-page/index.d.ts.map +1 -1
- package/dist/pages/blog-post-page/index.js +35 -10
- package/dist/pages/careers-page/index.d.ts +288 -0
- package/dist/pages/careers-page/index.d.ts.map +1 -0
- package/dist/pages/careers-page/index.js +182 -0
- package/dist/pages/changelog-page/index.d.ts +255 -0
- package/dist/pages/changelog-page/index.d.ts.map +1 -0
- package/dist/pages/changelog-page/index.js +86 -0
- package/dist/pages/contact-page/index.d.ts +261 -0
- package/dist/pages/contact-page/index.d.ts.map +1 -0
- package/dist/pages/contact-page/index.js +136 -0
- package/dist/pages/docs-shell/docs-shell.d.ts +126 -16
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +229 -28
- package/dist/pages/error-page/index.d.ts +188 -0
- package/dist/pages/error-page/index.d.ts.map +1 -0
- package/dist/pages/error-page/index.js +102 -0
- package/dist/pages/index.d.ts +10 -0
- package/dist/pages/index.d.ts.map +1 -1
- package/dist/pages/index.js +14 -0
- package/dist/pages/legal-page/index.d.ts +194 -0
- package/dist/pages/legal-page/index.d.ts.map +1 -0
- package/dist/pages/legal-page/index.js +99 -0
- package/dist/pages/not-found-page/index.d.ts.map +1 -1
- package/dist/pages/not-found-page/index.js +4 -3
- package/dist/pages/onboarding-page/index.d.ts +199 -0
- package/dist/pages/onboarding-page/index.d.ts.map +1 -0
- package/dist/pages/onboarding-page/index.js +71 -0
- package/dist/pages/pricing-page/index.d.ts +286 -0
- package/dist/pages/pricing-page/index.d.ts.map +1 -0
- package/dist/pages/pricing-page/index.js +139 -0
- package/dist/pages/search-page/index.d.ts +305 -0
- package/dist/pages/search-page/index.d.ts.map +1 -0
- package/dist/pages/search-page/index.js +142 -0
- package/dist/pages/status-page/index.d.ts +366 -0
- package/dist/pages/status-page/index.d.ts.map +1 -0
- package/dist/pages/status-page/index.js +136 -0
- package/dist/styles.css +1105 -62
- package/package.json +9 -3
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* One choice in a `select` field, and nothing else.
|
|
5
|
+
*
|
|
6
|
+
* A native `<option>` holds text and nothing more, which is the whole reason a
|
|
7
|
+
* contact form's select is a `NativeSelect` rather than the Base UI one. The two
|
|
8
|
+
* values are a string and its label, so a caller who needs a description beside an
|
|
9
|
+
* option, a count, or anything nested is reaching for a control the platform
|
|
10
|
+
* cannot render, and `Contact01` does not pretend otherwise: it names
|
|
11
|
+
* `NativeSelect`'s own argument in its JSDoc and stops there.
|
|
12
|
+
*/
|
|
13
|
+
export type Contact01Option = {
|
|
14
|
+
/** What the form submits for this choice, which is a key and not a sentence. */
|
|
15
|
+
value: string;
|
|
16
|
+
/** The words the reader sees, in the product's own language. */
|
|
17
|
+
label: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* What every contact field carries, whichever control it draws.
|
|
21
|
+
*
|
|
22
|
+
* `required` is a boolean rather than an optional prop because there is no third
|
|
23
|
+
* state worth having: a field is one the reader must fill or one they may leave,
|
|
24
|
+
* and a `required?: boolean` leaves a caller who passed nothing unable to say which
|
|
25
|
+
* of the two they meant. A field is a data declaration and nothing else, and the
|
|
26
|
+
* two arms below differ only in which control is drawn and in the one property
|
|
27
|
+
* that control needs and the other has no use for.
|
|
28
|
+
*/
|
|
29
|
+
type ContactFieldBase = {
|
|
30
|
+
/** The caller's key for this field, and the key the value arrives under. */
|
|
31
|
+
id: string;
|
|
32
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
33
|
+
label: string;
|
|
34
|
+
/** Whether the reader may submit the form without filling it. */
|
|
35
|
+
required: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* A line under the control, announced with it.
|
|
38
|
+
*
|
|
39
|
+
* A node, because the honest line is sometimes not one sentence: a caller's
|
|
40
|
+
* hint, a link to the thing being asked about, a piece of the page's own copy.
|
|
41
|
+
* It is wired to the control through `aria-describedby` rather than drawn as a
|
|
42
|
+
* footnote, so a screen reader hears what this field is for as they reach it.
|
|
43
|
+
*/
|
|
44
|
+
description?: ReactNode;
|
|
45
|
+
/** What the control shows while it is empty. A hint, not a name. */
|
|
46
|
+
placeholder?: string;
|
|
47
|
+
/** The platform's own autofill hint for this field. */
|
|
48
|
+
autoComplete?: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* One field of the caller's form, and the control it draws.
|
|
52
|
+
*
|
|
53
|
+
* **A union and not one type with an optional `options`, and that is the shape of
|
|
54
|
+
* the whole argument in this Block.** A contact form's fields are the caller's
|
|
55
|
+
* declaration, not this package's opinion about what a reader may be asked, and
|
|
56
|
+
* the one place that shows is the select: a select with no options is a control
|
|
57
|
+
* with nothing in it, which is a question no reader can answer, so `options` is
|
|
58
|
+
* required inside the select arm and forbidden beside the other four. A
|
|
59
|
+
* `options?: string[]` on one type would typecheck the defect and only the
|
|
60
|
+
* diagnostic at run time would catch it, which is one gate too late. The union is
|
|
61
|
+
* the same mechanism `HeroAction` uses for the same reason: the shape that
|
|
62
|
+
* requires something declares it, and the shape that forbids it says so in the
|
|
63
|
+
* type rather than in prose.
|
|
64
|
+
*
|
|
65
|
+
* The cost of the union is that a caller who wants to build a field list
|
|
66
|
+
* generically, from data, has to narrow before it can type the result, and the
|
|
67
|
+
* answer to that is a narrowing function in the caller's own code rather than a
|
|
68
|
+
* looser type here.
|
|
69
|
+
*/
|
|
70
|
+
export type ContactField = (ContactFieldBase & {
|
|
71
|
+
type: 'select';
|
|
72
|
+
/** The choices, in the order the reader should meet them. */
|
|
73
|
+
options: Contact01Option[];
|
|
74
|
+
}) | (ContactFieldBase & {
|
|
75
|
+
type: 'text' | 'email' | 'tel' | 'textarea';
|
|
76
|
+
/** A select with no options is a question nobody can answer, so it is not one here. */
|
|
77
|
+
options?: never;
|
|
78
|
+
});
|
|
79
|
+
/**
|
|
80
|
+
* Where a reader can reach a person, and the one address this Block links.
|
|
81
|
+
*
|
|
82
|
+
* **The `email` and `emailLabel` arms are a union, and the reason is the sentence
|
|
83
|
+
* a screen reader would otherwise read.** A mailto link whose accessible name is
|
|
84
|
+
* the address itself is announced as `mailto` and a run of characters read out
|
|
85
|
+
* one at a time, which is the one link on the page no reader can follow and the
|
|
86
|
+
* one a mouse reader cannot copy either. So a link is never drawn from a bare
|
|
87
|
+
* address: `emailLabel` is the sentence that says what activating it does, and it
|
|
88
|
+
* is required inside the arm where `email` is. The alternative was an optional
|
|
89
|
+
* `emailLabel` beside an optional `email` and a fallback, and the fallback would
|
|
90
|
+
* have been the address, which is the defect.
|
|
91
|
+
*/
|
|
92
|
+
export type Contact01Address = {
|
|
93
|
+
/** The postal lines, one per entry, in the order a reader reads them. */
|
|
94
|
+
lines: string[];
|
|
95
|
+
/**
|
|
96
|
+
* What a reader is told about the hours, if the caller has hours to state.
|
|
97
|
+
*
|
|
98
|
+
* A node rather than a string, because the honest content is a table on three of
|
|
99
|
+
* the four consumer sites rather than a sentence, and a Block that accepted a
|
|
100
|
+
* string would force the caller to flatten it.
|
|
101
|
+
*/
|
|
102
|
+
hours?: ReactNode;
|
|
103
|
+
} & ({
|
|
104
|
+
/** The address the mailto link points at. */
|
|
105
|
+
email: string;
|
|
106
|
+
/** The words on the link, which is its accessible name. */
|
|
107
|
+
emailLabel: string;
|
|
108
|
+
} | {
|
|
109
|
+
/** No link, so no accessible name to owe. */
|
|
110
|
+
email?: never;
|
|
111
|
+
emailLabel?: never;
|
|
112
|
+
});
|
|
113
|
+
/**
|
|
114
|
+
* Everything the caller declared, keyed by the caller's own `id`.
|
|
115
|
+
*
|
|
116
|
+
* A record and not a fixed shape, and the reason is the same one that makes
|
|
117
|
+
* `fields` a list: the keys are facts about the caller's product, so a named type
|
|
118
|
+
* would be a claim about what a contact form is made of. The value type is `string`
|
|
119
|
+
* because the five control types here all submit strings, and a contact form that
|
|
120
|
+
* collects a file is a different Block.
|
|
121
|
+
*/
|
|
122
|
+
export type ContactValue = Record<string, string>;
|
|
123
|
+
/**
|
|
124
|
+
* The outcome of the caller's own request, as the Block draws it.
|
|
125
|
+
*
|
|
126
|
+
* A prop and never a state this Block writes, for the reason every Block in this
|
|
127
|
+
* wave states: a success sentence this package wrote would be inherited verbatim
|
|
128
|
+
* by every consumer, and a contact request has more outcomes than any other form
|
|
129
|
+
* here, from a delivered message to a spam folder to a rate limit to an address
|
|
130
|
+
* that was never deliverable.
|
|
131
|
+
*/
|
|
132
|
+
export type Contact01Status = {
|
|
133
|
+
/** Which of the four the request is in. Read by the Block for two things only. */
|
|
134
|
+
state: 'idle' | 'sending' | 'sent' | 'error';
|
|
135
|
+
/** The words for that state, in the product's own voice. */
|
|
136
|
+
message: ReactNode;
|
|
137
|
+
};
|
|
138
|
+
/** The props a Contact01 takes. Every string in this Block is one of them. */
|
|
139
|
+
export type Contact01Props = {
|
|
140
|
+
/** The short line above the title, usually what the desk is called. */
|
|
141
|
+
eyebrow?: ReactNode;
|
|
142
|
+
/** The heading. Required, because a form with no heading is a form in a page. */
|
|
143
|
+
title: ReactNode;
|
|
144
|
+
/** One supporting line under the heading, for the part the title cannot carry. */
|
|
145
|
+
description?: ReactNode;
|
|
146
|
+
/**
|
|
147
|
+
* Called with the declared fields' values when the reader submits.
|
|
148
|
+
*
|
|
149
|
+
* **Required, and the requirement is the design.** `onSubmit` is the only thing
|
|
150
|
+
* this Block does with what it collected, and there is no arm of this component
|
|
151
|
+
* in which a message is gathered and then nowhere to go. The obvious
|
|
152
|
+
* alternative is an optional handler with a form that renders and does nothing,
|
|
153
|
+
* which is a component that collects a personal datum, displays it back to the
|
|
154
|
+
* reader and then discards it without telling anyone.
|
|
155
|
+
*/
|
|
156
|
+
onSubmit: (value: ContactValue) => void;
|
|
157
|
+
/**
|
|
158
|
+
* The fields, in the order the reader should meet them.
|
|
159
|
+
*
|
|
160
|
+
* **Required, and this list is the whole design rather than a convenience.** A
|
|
161
|
+
* contact form Component with a fixed set of fields is a Component that decides
|
|
162
|
+
* what a reader may say, and the decision is invisible in a review because the
|
|
163
|
+
* rendered form looks complete. It is also the decision that loses the message
|
|
164
|
+
* a contact form was given: a form that cannot ask for an order number has to
|
|
165
|
+
* be abandoned and retried through a support channel, a form that cannot ask for
|
|
166
|
+
* a company size sends a one-line hello to a sales team that then spends a week
|
|
167
|
+
* on discovery calls, and a form that cannot ask for a budget guarantees the
|
|
168
|
+
* reply nobody wanted. So Prism names the five control types it can draw and
|
|
169
|
+
* supplies no fields: a contact desk that asks for a tax number, a preferred
|
|
170
|
+
* contact window and three product interests is three fields of the caller's own
|
|
171
|
+
* vocabulary and a select, and Prism composes all of them. The cost is stated
|
|
172
|
+
* rather than hidden: a consumer that wants a second column for a subset of its
|
|
173
|
+
* fields composes two `Contact01`s or reaches for a `Page`, because this Block
|
|
174
|
+
* draws one column in the order the list gives.
|
|
175
|
+
*/
|
|
176
|
+
fields: ContactField[];
|
|
177
|
+
/** The label on the one control that submits. */
|
|
178
|
+
submitLabel: string;
|
|
179
|
+
/**
|
|
180
|
+
* What the reader is told happens to what they type.
|
|
181
|
+
*
|
|
182
|
+
* Optional here, and the difference from `Newsletter01` is the fact rather than
|
|
183
|
+
* an inconsistency: a newsletter's consent line is about a marketing list and a
|
|
184
|
+
* jurisdiction may require it to be there, while a contact form's disclosure is
|
|
185
|
+
* about a reply, and most jurisdictions are satisfied by the caller's own footer
|
|
186
|
+
* and by this Block's status sentence. A caller whose counsel asks for one
|
|
187
|
+
* passes it, and it is drawn under the fields where the reader is about to press
|
|
188
|
+
* the control rather than in a page they have already scrolled past.
|
|
189
|
+
*/
|
|
190
|
+
consent?: ReactNode;
|
|
191
|
+
/** Where a reader can reach a person, drawn beside the form in the split layout. */
|
|
192
|
+
address?: Contact01Address;
|
|
193
|
+
/**
|
|
194
|
+
* Whether the address sits beside the form or under it.
|
|
195
|
+
*
|
|
196
|
+
* `split` is right where the address is a real destination rather than a
|
|
197
|
+
* decoration, which is most of the time, and `stacked` is right on a narrow
|
|
198
|
+
* page and wherever a reader on a phone would otherwise have to scroll past four
|
|
199
|
+
* postal lines before reaching the field they came for. There is no third
|
|
200
|
+
* arrangement that changes Prism's drawing rather than this Block's spacing,
|
|
201
|
+
* because `className` is layout only.
|
|
202
|
+
*/
|
|
203
|
+
variant?: 'split' | 'stacked';
|
|
204
|
+
/**
|
|
205
|
+
* The outcome of the caller's request, drawn in a live region and announced.
|
|
206
|
+
*
|
|
207
|
+
* A prop and never an internal state Prism writes, for the reason the type
|
|
208
|
+
* states: a success sentence this package wrote would be inherited by every
|
|
209
|
+
* consumer and would be the one sentence on the page most certainly wrong.
|
|
210
|
+
*/
|
|
211
|
+
status?: Contact01Status;
|
|
212
|
+
/** Heading level for the section heading. See `HeadingLevel`. */
|
|
213
|
+
headingLevel?: HeadingLevel;
|
|
214
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
215
|
+
className?: string;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* A contact form whose fields the caller declares, beside the address a reader can
|
|
219
|
+
* reach a person at.
|
|
220
|
+
*
|
|
221
|
+
* **The declared field list is the whole design, and the reason is that a contact
|
|
222
|
+
* form is a form about the message.** A contact form Component with a fixed set of
|
|
223
|
+
* fields is a Component that decides what a reader may say, and the decision is
|
|
224
|
+
* invisible in a review because the rendered form looks complete: four labelled
|
|
225
|
+
* controls and a submit button read as a finished surface in a screenshot. What it
|
|
226
|
+
* is is a claim about what enquiries are, and it is a claim that loses the message
|
|
227
|
+
* the form was given. A form that cannot ask for an order number is a form a
|
|
228
|
+
* reader abandons and retried through a support channel. A form that cannot ask for
|
|
229
|
+
* a company size sends a one-line hello to a sales team that then spends a week on
|
|
230
|
+
* discovery calls. A form that cannot ask for a budget guarantees the reply nobody
|
|
231
|
+
* wanted, because the reader has already told the sender what they can afford and
|
|
232
|
+
* the send has nowhere to put it. So `fields` is a prop list of the caller's own,
|
|
233
|
+
* Prism names the five control types it can draw and supplies no fields at all, and
|
|
234
|
+
* a contact desk that asks for a tax number, a preferred contact window and three
|
|
235
|
+
* product interests is three fields and a select. The honest cost is the mirror of
|
|
236
|
+
* the argument: one column in the order the list gives, so a consumer that wants a
|
|
237
|
+
* two-column form for a subset of its fields composes two of these or reaches for
|
|
238
|
+
* a Page, and no single field here can be described by a caller's own validation
|
|
239
|
+
* message, which is the second cost and is stated below.
|
|
240
|
+
*
|
|
241
|
+
* **`onSubmit` is required and the Block sends nothing, which is what makes it
|
|
242
|
+
* installable.** The alternative shape, the one this Block is shaped to refuse, is a
|
|
243
|
+
* component that collects a name, an address and a message and posts them to a route
|
|
244
|
+
* it guessed at: four consumers with four back ends then either patch it or rewrite
|
|
245
|
+
* it, and in the meantime the message has been handled, stored, retried, threaded
|
|
246
|
+
* and forgotten by a piece of code that was installed to draw a form. Every one of
|
|
247
|
+
* those five is a decision about the caller's product and its data, and a frame that
|
|
248
|
+
* takes one of them is a frame that has to be replaced rather than configured. A
|
|
249
|
+
* consumer who wants a transport writes one, and a consumer who already has one
|
|
250
|
+
* passes it straight in.
|
|
251
|
+
*
|
|
252
|
+
* **There is no success message anywhere in this file, and that is the other half
|
|
253
|
+
* of the same argument.** A form that owns its own outcome sentence puts that
|
|
254
|
+
* sentence into every product that installs the Block, the corpus publishes it as
|
|
255
|
+
* this design system's own voice, and it is the single line on the page most
|
|
256
|
+
* certainly to be wrong: a contact request can be delivered, held by a filter,
|
|
257
|
+
* filed by a bot, refused as a duplicate, and answered, and one sentence cannot be
|
|
258
|
+
* true of all five. So `status` is a prop with a caller-written message, this file
|
|
259
|
+
* holds no `sent` flag and no `error` flag, and a consumer who installs this Block
|
|
260
|
+
* owns the promise it makes.
|
|
261
|
+
*
|
|
262
|
+
* **The run throws on a field with no label and on a select with no options, and
|
|
263
|
+
* both refusals are about a control that cannot be used.** A nameless control is
|
|
264
|
+
* announced as "text field", which is the one name every other field on the page
|
|
265
|
+
* shares, so two fields in this same form become indistinguishable to a screen
|
|
266
|
+
* reader and the form is unusable for exactly the readers the label exists for. A
|
|
267
|
+
* select with nothing in it is a question no reader can answer that looks answered
|
|
268
|
+
* only because the control is there and focusable. The type catches the second
|
|
269
|
+
* one for a TypeScript caller through the union above, and the check is here for
|
|
270
|
+
* the JavaScript caller and for the value that came out of a database with the
|
|
271
|
+
* type's guarantee already gone. Each message names the field rather than the
|
|
272
|
+
* index, because a caller with nine fields needs to know which one.
|
|
273
|
+
*
|
|
274
|
+
* **`emailLabel` is required wherever there is an email, because a mailto link
|
|
275
|
+
* whose accessible name is the address is unreadable as a sentence.** The link
|
|
276
|
+
* would be announced as the word mailto and then a run of characters read out one
|
|
277
|
+
* at a time, which is the one link on the page no reader can follow and the one a
|
|
278
|
+
* mouse reader cannot copy either, because the words a reader selects are the ones
|
|
279
|
+
* on the control rather than the ones in the address bar. So the visible text is
|
|
280
|
+
* the caller's sentence about what the link does, and the address itself is in the
|
|
281
|
+
* `href` where it belongs. The union on `Contact01Address` is what holds it: an
|
|
282
|
+
* optional `emailLabel` beside an optional `email` would need a fallback, and the
|
|
283
|
+
* only fallback available is the address.
|
|
284
|
+
*
|
|
285
|
+
* **Every field goes through `Field`, so its label, its description and the control
|
|
286
|
+
* that announces them are Prism's wiring rather than a caller's.** That is the
|
|
287
|
+
* second reason the field list is data: the wiring is the part that has to be right
|
|
288
|
+
* on every field, and a Block that drew a bespoke row per type would have six
|
|
289
|
+
* places to get it wrong. What `field.tsx` offers and this Block does not draw is
|
|
290
|
+
* `FieldError`, and the omission is a decision rather than an oversight: the
|
|
291
|
+
* sentence saying what is wrong with a value is the one sentence a native control
|
|
292
|
+
* already gets right in the reader's own language for free, because the browser
|
|
293
|
+
* writes it, so the `required` and `type` attributes this Block forwards are the
|
|
294
|
+
* error path and a per-field message from the caller is composed beside `Field`
|
|
295
|
+
* rather than inside this Block. The cost is named: a consumer whose validation
|
|
296
|
+
* rules are its own rather than the platform's has no seam here, and the answer is
|
|
297
|
+
* that it validates in its handler and puts the message in `status`, which is one
|
|
298
|
+
* sentence about all the fields rather than one per field.
|
|
299
|
+
*
|
|
300
|
+
* **Nothing here validates anything.** There is no address format check, no message
|
|
301
|
+
* length, no required consent and no spam rule. Each of those is a decision about
|
|
302
|
+
* the caller's product and its data, and a Block that guessed one would refuse a
|
|
303
|
+
* reader on the caller's behalf. What Prism does with `status` is refuse a second
|
|
304
|
+
* press: while the state reads `sending` the submit control is disabled, because a
|
|
305
|
+
* second press while the first request is in flight is a duplicate enquiry a
|
|
306
|
+
* support inbox cannot merge. That is the whole of Prism's reading of the state,
|
|
307
|
+
* and it is stated here because the alternative is a Block that has begun to have
|
|
308
|
+
* opinions about the request.
|
|
309
|
+
*
|
|
310
|
+
* It is a client Component, and the reason is the handler rather than the state.
|
|
311
|
+
* `onSubmit` is a function, a function is a piece of state, and state is a client
|
|
312
|
+
* module: a server component cannot hand an event handler down to a `<form>`, so a
|
|
313
|
+
* caller rendering this from a server component gets a form that submits and calls
|
|
314
|
+
* nothing. The rest of the rendering is a section and five controls, which is the
|
|
315
|
+
* price of the argument above and not a claim about what else this Block might do.
|
|
316
|
+
*/
|
|
317
|
+
export declare function Contact01({ eyebrow, title, description, onSubmit, fields, submitLabel, consent, address, variant, status, headingLevel, className, }: Contact01Props): import("react").JSX.Element;
|
|
318
|
+
export default Contact01;
|
|
319
|
+
//# sourceMappingURL=contact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../src/blocks/contact-01/contact.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,OAAO,CAAA;AASjD,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAIxF;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;GASG;AACH,KAAK,gBAAgB,GAAG;IACtB,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,iEAAiE;IACjE,QAAQ,EAAE,OAAO,CAAA;IACjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,YAAY,GACpB,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAA;IACd,6DAA6D;IAC7D,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B,CAAC,GACF,CAAC,gBAAgB,GAAG;IAClB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAA;IAC3C,uFAAuF;IACvF,OAAO,CAAC,EAAE,KAAK,CAAA;CAChB,CAAC,CAAA;AAEN;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yEAAyE;IACzE,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,GAAG,CACA;IACE,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAA;CACnB,GACD;IACE,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,CACJ,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjD;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,kFAAkF;IAClF,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;IAC5C,4DAA4D;IAC5D,OAAO,EAAE,SAAS,CAAA;CACnB,CAAA;AAED,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,iFAAiF;IACjF,KAAK,EAAE,SAAS,CAAA;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,oFAAoF;IACpF,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,iEAAiE;IACjE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAiB,EACjB,MAAM,EACN,YAAmB,EACnB,SAAS,GACV,EAAE,cAAc,+BAkMhB;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from 'react';
|
|
4
|
+
import { Button } from '../../components/ui/button.js';
|
|
5
|
+
import { CtaLink } from '../../components/ui/cta-link.js';
|
|
6
|
+
import { Field, FieldDescription, FieldLabel } from '../../components/ui/field.js';
|
|
7
|
+
import { Input } from '../../components/ui/input.js';
|
|
8
|
+
import { LiveRegion } from '../../components/ui/live-region.js';
|
|
9
|
+
import { NativeSelect } from '../../components/ui/native-select.js';
|
|
10
|
+
import { Section, SectionHeading } from '../../components/ui/section.js';
|
|
11
|
+
import { Textarea } from '../../components/ui/textarea.js';
|
|
12
|
+
import { cn } from '../../lib/utils.js';
|
|
13
|
+
/**
|
|
14
|
+
* Whether a caller-supplied string never arrived, arrived empty, or arrived as
|
|
15
|
+
* nothing but space.
|
|
16
|
+
*
|
|
17
|
+
* Read as `string | undefined` rather than as the declared `string`, because the
|
|
18
|
+
* check is about the value that turned up rather than about what the type
|
|
19
|
+
* promised. A JavaScript caller and a value out of a database both arrive with
|
|
20
|
+
* the type's guarantee already gone, and the diagnostic below is the last place
|
|
21
|
+
* that can still say what was wrong.
|
|
22
|
+
*/
|
|
23
|
+
function blank(value) {
|
|
24
|
+
return value === undefined || value.trim() === '';
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Whether a caller passed a list that is not there, or is there and empty.
|
|
28
|
+
*
|
|
29
|
+
* The same argument as `blank` above, and the reason a select with no options is
|
|
30
|
+
* caught rather than drawn: a control with nothing in it is a question no reader
|
|
31
|
+
* can answer, and it is a question that looks answered because the control is
|
|
32
|
+
* there and focusable.
|
|
33
|
+
*/
|
|
34
|
+
function blankList(value) {
|
|
35
|
+
return value === undefined || value.length === 0;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The two ways a caller's field declaration can be a form that cannot be filled,
|
|
39
|
+
* checked before anything is drawn so the run fails once with the name of the
|
|
40
|
+
* field rather than once per field with a nameless control on the page.
|
|
41
|
+
*
|
|
42
|
+
* Both reach a developer in a console rather than a reader, which is what makes
|
|
43
|
+
* them refusals rather than copy: the message says what was passed and what to
|
|
44
|
+
* pass instead, and neither of those sentences is ever shown to a reader.
|
|
45
|
+
*/
|
|
46
|
+
function assertField(field) {
|
|
47
|
+
if (blank(field.label)) {
|
|
48
|
+
throw new Error(`Contact01: the field "${field.id}" declares no label, so the control would be announced with no name and ` +
|
|
49
|
+
'two fields on this page would be announced identically. Every control this Block draws is named by its ' +
|
|
50
|
+
'label, so there is no fallback to fall back to.');
|
|
51
|
+
}
|
|
52
|
+
if (field.type === 'select' && blankList(field.options)) {
|
|
53
|
+
throw new Error(`Contact01: the field "${field.id}" is a select and passes no options, so it would render a control with ` +
|
|
54
|
+
'nothing in it, which is a question no reader can answer and looks answered only because the control is ' +
|
|
55
|
+
'there and focusable. Pass the choices, or declare the field as a text field and check the answer in your ' +
|
|
56
|
+
'own handler.');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A contact form whose fields the caller declares, beside the address a reader can
|
|
61
|
+
* reach a person at.
|
|
62
|
+
*
|
|
63
|
+
* **The declared field list is the whole design, and the reason is that a contact
|
|
64
|
+
* form is a form about the message.** A contact form Component with a fixed set of
|
|
65
|
+
* fields is a Component that decides what a reader may say, and the decision is
|
|
66
|
+
* invisible in a review because the rendered form looks complete: four labelled
|
|
67
|
+
* controls and a submit button read as a finished surface in a screenshot. What it
|
|
68
|
+
* is is a claim about what enquiries are, and it is a claim that loses the message
|
|
69
|
+
* the form was given. A form that cannot ask for an order number is a form a
|
|
70
|
+
* reader abandons and retried through a support channel. A form that cannot ask for
|
|
71
|
+
* a company size sends a one-line hello to a sales team that then spends a week on
|
|
72
|
+
* discovery calls. A form that cannot ask for a budget guarantees the reply nobody
|
|
73
|
+
* wanted, because the reader has already told the sender what they can afford and
|
|
74
|
+
* the send has nowhere to put it. So `fields` is a prop list of the caller's own,
|
|
75
|
+
* Prism names the five control types it can draw and supplies no fields at all, and
|
|
76
|
+
* a contact desk that asks for a tax number, a preferred contact window and three
|
|
77
|
+
* product interests is three fields and a select. The honest cost is the mirror of
|
|
78
|
+
* the argument: one column in the order the list gives, so a consumer that wants a
|
|
79
|
+
* two-column form for a subset of its fields composes two of these or reaches for
|
|
80
|
+
* a Page, and no single field here can be described by a caller's own validation
|
|
81
|
+
* message, which is the second cost and is stated below.
|
|
82
|
+
*
|
|
83
|
+
* **`onSubmit` is required and the Block sends nothing, which is what makes it
|
|
84
|
+
* installable.** The alternative shape, the one this Block is shaped to refuse, is a
|
|
85
|
+
* component that collects a name, an address and a message and posts them to a route
|
|
86
|
+
* it guessed at: four consumers with four back ends then either patch it or rewrite
|
|
87
|
+
* it, and in the meantime the message has been handled, stored, retried, threaded
|
|
88
|
+
* and forgotten by a piece of code that was installed to draw a form. Every one of
|
|
89
|
+
* those five is a decision about the caller's product and its data, and a frame that
|
|
90
|
+
* takes one of them is a frame that has to be replaced rather than configured. A
|
|
91
|
+
* consumer who wants a transport writes one, and a consumer who already has one
|
|
92
|
+
* passes it straight in.
|
|
93
|
+
*
|
|
94
|
+
* **There is no success message anywhere in this file, and that is the other half
|
|
95
|
+
* of the same argument.** A form that owns its own outcome sentence puts that
|
|
96
|
+
* sentence into every product that installs the Block, the corpus publishes it as
|
|
97
|
+
* this design system's own voice, and it is the single line on the page most
|
|
98
|
+
* certainly to be wrong: a contact request can be delivered, held by a filter,
|
|
99
|
+
* filed by a bot, refused as a duplicate, and answered, and one sentence cannot be
|
|
100
|
+
* true of all five. So `status` is a prop with a caller-written message, this file
|
|
101
|
+
* holds no `sent` flag and no `error` flag, and a consumer who installs this Block
|
|
102
|
+
* owns the promise it makes.
|
|
103
|
+
*
|
|
104
|
+
* **The run throws on a field with no label and on a select with no options, and
|
|
105
|
+
* both refusals are about a control that cannot be used.** A nameless control is
|
|
106
|
+
* announced as "text field", which is the one name every other field on the page
|
|
107
|
+
* shares, so two fields in this same form become indistinguishable to a screen
|
|
108
|
+
* reader and the form is unusable for exactly the readers the label exists for. A
|
|
109
|
+
* select with nothing in it is a question no reader can answer that looks answered
|
|
110
|
+
* only because the control is there and focusable. The type catches the second
|
|
111
|
+
* one for a TypeScript caller through the union above, and the check is here for
|
|
112
|
+
* the JavaScript caller and for the value that came out of a database with the
|
|
113
|
+
* type's guarantee already gone. Each message names the field rather than the
|
|
114
|
+
* index, because a caller with nine fields needs to know which one.
|
|
115
|
+
*
|
|
116
|
+
* **`emailLabel` is required wherever there is an email, because a mailto link
|
|
117
|
+
* whose accessible name is the address is unreadable as a sentence.** The link
|
|
118
|
+
* would be announced as the word mailto and then a run of characters read out one
|
|
119
|
+
* at a time, which is the one link on the page no reader can follow and the one a
|
|
120
|
+
* mouse reader cannot copy either, because the words a reader selects are the ones
|
|
121
|
+
* on the control rather than the ones in the address bar. So the visible text is
|
|
122
|
+
* the caller's sentence about what the link does, and the address itself is in the
|
|
123
|
+
* `href` where it belongs. The union on `Contact01Address` is what holds it: an
|
|
124
|
+
* optional `emailLabel` beside an optional `email` would need a fallback, and the
|
|
125
|
+
* only fallback available is the address.
|
|
126
|
+
*
|
|
127
|
+
* **Every field goes through `Field`, so its label, its description and the control
|
|
128
|
+
* that announces them are Prism's wiring rather than a caller's.** That is the
|
|
129
|
+
* second reason the field list is data: the wiring is the part that has to be right
|
|
130
|
+
* on every field, and a Block that drew a bespoke row per type would have six
|
|
131
|
+
* places to get it wrong. What `field.tsx` offers and this Block does not draw is
|
|
132
|
+
* `FieldError`, and the omission is a decision rather than an oversight: the
|
|
133
|
+
* sentence saying what is wrong with a value is the one sentence a native control
|
|
134
|
+
* already gets right in the reader's own language for free, because the browser
|
|
135
|
+
* writes it, so the `required` and `type` attributes this Block forwards are the
|
|
136
|
+
* error path and a per-field message from the caller is composed beside `Field`
|
|
137
|
+
* rather than inside this Block. The cost is named: a consumer whose validation
|
|
138
|
+
* rules are its own rather than the platform's has no seam here, and the answer is
|
|
139
|
+
* that it validates in its handler and puts the message in `status`, which is one
|
|
140
|
+
* sentence about all the fields rather than one per field.
|
|
141
|
+
*
|
|
142
|
+
* **Nothing here validates anything.** There is no address format check, no message
|
|
143
|
+
* length, no required consent and no spam rule. Each of those is a decision about
|
|
144
|
+
* the caller's product and its data, and a Block that guessed one would refuse a
|
|
145
|
+
* reader on the caller's behalf. What Prism does with `status` is refuse a second
|
|
146
|
+
* press: while the state reads `sending` the submit control is disabled, because a
|
|
147
|
+
* second press while the first request is in flight is a duplicate enquiry a
|
|
148
|
+
* support inbox cannot merge. That is the whole of Prism's reading of the state,
|
|
149
|
+
* and it is stated here because the alternative is a Block that has begun to have
|
|
150
|
+
* opinions about the request.
|
|
151
|
+
*
|
|
152
|
+
* It is a client Component, and the reason is the handler rather than the state.
|
|
153
|
+
* `onSubmit` is a function, a function is a piece of state, and state is a client
|
|
154
|
+
* module: a server component cannot hand an event handler down to a `<form>`, so a
|
|
155
|
+
* caller rendering this from a server component gets a form that submits and calls
|
|
156
|
+
* nothing. The rest of the rendering is a section and five controls, which is the
|
|
157
|
+
* price of the argument above and not a claim about what else this Block might do.
|
|
158
|
+
*/
|
|
159
|
+
export function Contact01({ eyebrow, title, description, onSubmit, fields, submitLabel, consent, address, variant = 'split', status, headingLevel = 'h2', className, }) {
|
|
160
|
+
const generated = useId();
|
|
161
|
+
const sending = status?.state === 'sending';
|
|
162
|
+
for (const field of fields)
|
|
163
|
+
assertField(field);
|
|
164
|
+
/*
|
|
165
|
+
* The values are read out of the form rather than out of any prop, because a
|
|
166
|
+
* contact form is uncontrolled by nature: there are as many fields as the caller
|
|
167
|
+
* declared and no state to hold them in. The keys are the caller's own `id`s, so
|
|
168
|
+
* the record that arrives is shaped like the declaration that produced it, and a
|
|
169
|
+
* caller that renames a field in one place renames it in one place.
|
|
170
|
+
*/
|
|
171
|
+
const handleSubmit = (event) => {
|
|
172
|
+
event.preventDefault();
|
|
173
|
+
const read = new FormData(event.currentTarget);
|
|
174
|
+
const next = {};
|
|
175
|
+
for (const field of fields) {
|
|
176
|
+
const one = read.get(field.id);
|
|
177
|
+
if (typeof one === 'string')
|
|
178
|
+
next[field.id] = one;
|
|
179
|
+
}
|
|
180
|
+
onSubmit(next);
|
|
181
|
+
};
|
|
182
|
+
return (_jsx(Section, { "data-slot": "contact-01", className: cn(className), children: _jsxs("div", { "data-slot": "contact-01-body", className: "flex flex-col gap-8", children: [_jsx(SectionHeading, { eyebrow: eyebrow, title: title, description: description, align: "left", as: headingLevel }), _jsxs("div", { "data-slot": "contact-01-columns", "data-variant": variant, className: cn('grid items-start gap-10', variant === 'split' ? 'lg:grid-cols-[minmax(0,3fr)_minmax(0,2fr)] lg:gap-14' : null), children: [_jsxs("form", { "data-slot": "contact-01-form", onSubmit: handleSubmit, className: "flex w-full max-w-measure flex-col gap-4", children: [fields.map((field) => {
|
|
183
|
+
const controlId = `${generated}-${field.id}`;
|
|
184
|
+
const descriptionId = `${controlId}-description`;
|
|
185
|
+
return (_jsxs(Field, { "data-slot": "contact-01-field", "data-field": field.type, children: [_jsx(FieldLabel, { htmlFor: controlId, children: field.label }), field.type === 'textarea' ? (_jsx(Textarea, { id: controlId, name: field.id, rows: 4, placeholder: field.placeholder, required: field.required, "aria-describedby": field.description === undefined ? undefined : descriptionId })) : field.type === 'select' ? (_jsx(NativeSelect, { id: controlId, name: field.id, required: field.required, "aria-describedby": field.description === undefined ? undefined : descriptionId, children: field.options.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value))) })) : (_jsx(Input, { id: controlId, name: field.id, type: field.type, placeholder: field.placeholder, autoComplete: field.autoComplete, required: field.required, "aria-describedby": field.description === undefined ? undefined : descriptionId })), field.description === undefined ? null : (_jsx(FieldDescription, { id: descriptionId, children: field.description }))] }, field.id));
|
|
186
|
+
}), consent === undefined ? null : (_jsx("p", { "data-slot": "contact-01-consent", className: "text-muted-foreground text-sm", children: consent })), _jsxs("div", { "data-slot": "contact-01-actions", className: "flex flex-col gap-3", children: [_jsx(Button, { "data-slot": "contact-01-submit", type: "submit", disabled: sending, className: "self-start", children: submitLabel }), _jsx(LiveRegion, { politeness: status?.state === 'error' ? 'assertive' : 'polite', busy: sending, className: "text-sm", children: status?.message })] })] }), address === undefined ? null : (
|
|
187
|
+
/*
|
|
188
|
+
* An `address` element, because that is what this is: contact
|
|
189
|
+
* information for the organisation, which is what the element names and
|
|
190
|
+
* which a `<div>` does not. The platform renders it in italics and no
|
|
191
|
+
* token in this stylesheet resets that, so the one display utility
|
|
192
|
+
* restores the reading type. It is here rather than in a token
|
|
193
|
+
* because an italic address is a platform default rather than a design
|
|
194
|
+
* decision, and because the reset belongs on every element that draws
|
|
195
|
+
* postal lines: this one and `contact-page`'s office rows, which is why
|
|
196
|
+
* it is written out twice rather than pushed into the base layer, since
|
|
197
|
+
* a base reset for one element a package happens to draw is a decision
|
|
198
|
+
* about the platform default made in a place no reader looks.
|
|
199
|
+
*/
|
|
200
|
+
_jsxs("address", { "data-slot": "contact-01-address", className: "text-muted-foreground flex w-full max-w-measure-narrow flex-col gap-4 not-italic", children: [address.lines.map((line) => (_jsx("span", { "data-slot": "contact-01-address-line", className: "block", children: line }, line))), address.email === undefined ? null : (
|
|
201
|
+
/*
|
|
202
|
+
* A `CtaLink` and not a bare anchor, so the link carries the focus
|
|
203
|
+
* ring, the hover state and the announced role of one, and so the
|
|
204
|
+
* address is in the `href` where a reader can copy it rather than
|
|
205
|
+
* being the only words on the control. The words are the caller's,
|
|
206
|
+
* and the union on `Contact01Address` is what refuses to draw this
|
|
207
|
+
* one at all without them.
|
|
208
|
+
*/
|
|
209
|
+
_jsx(CtaLink, { "data-slot": "contact-01-email", href: `mailto:${address.email}`, variant: "ghost", size: "sm", className: "self-start", children: address.emailLabel })), address.hours === undefined ? null : (_jsx("div", { "data-slot": "contact-01-hours", className: "flex flex-col gap-2 text-sm", children: address.hours }))] }))] })] }) }));
|
|
210
|
+
}
|
|
211
|
+
export default Contact01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/contact-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAM9C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Contact01, default } from './contact.js';
|