@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,356 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* The thing a reader types to say who they are, declared by the caller.
|
|
5
|
+
*
|
|
6
|
+
* **A field and not a string, and the reason is that the identifier is the first
|
|
7
|
+
* decision this screen cannot make for the caller.** A product that signs people in
|
|
8
|
+
* by email and a product that signs people in by a handle, a staff number or a
|
|
9
|
+
* workspace name all need the same labelled text control, and the words above it
|
|
10
|
+
* are the product's own claim about what identifies a person there. So the label is
|
|
11
|
+
* required, the type is a choice between the two that a platform can do something
|
|
12
|
+
* different with, and the description is a node because the honest line in this
|
|
13
|
+
* position is often a link to the document that says what the identifier is.
|
|
14
|
+
*/
|
|
15
|
+
export type Login01Identifier = {
|
|
16
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
17
|
+
label: string;
|
|
18
|
+
/**
|
|
19
|
+
* Which of the two the platform's own behaviour differs on.
|
|
20
|
+
*
|
|
21
|
+
* `email` is the default because it is the answer on most of these products and
|
|
22
|
+
* because a keyboard on a phone turns a different keypad up for it. `text` is
|
|
23
|
+
* right for a handle, a staff number and a workspace name, and it is also the
|
|
24
|
+
* only one of the two that will accept an address a mail server will not.
|
|
25
|
+
*/
|
|
26
|
+
type?: 'email' | 'text';
|
|
27
|
+
/**
|
|
28
|
+
* The platform's autofill hint.
|
|
29
|
+
*
|
|
30
|
+
* Left out of this type's defaults on purpose: the hint that is right depends on
|
|
31
|
+
* the identifier rather than on the Block, and `email` is the one a password
|
|
32
|
+
* manager keys an account on. Pass it when the identifier is not an address.
|
|
33
|
+
*/
|
|
34
|
+
autoComplete?: string;
|
|
35
|
+
/**
|
|
36
|
+
* A line under the control, announced with it rather than printed under the row.
|
|
37
|
+
*
|
|
38
|
+
* A node, because half of the useful sentences in this position carry a link to
|
|
39
|
+
* the document that explains the product's idea of an identifier, and a caller
|
|
40
|
+
* who has to flatten theirs to a string loses it.
|
|
41
|
+
*/
|
|
42
|
+
description?: ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* The identifier as the caller holds it.
|
|
45
|
+
*
|
|
46
|
+
* Required with `onValueChange` and refused without it, for the reason the Block's
|
|
47
|
+
* JSDoc gives: a value this Block holds and the caller cannot see is a value the
|
|
48
|
+
* caller cannot clear, and a credential field that cannot be cleared is a
|
|
49
|
+
* credential field a reader has to reload the page to abandon.
|
|
50
|
+
*/
|
|
51
|
+
value?: string;
|
|
52
|
+
/** Called with the identifier as the reader changes it. */
|
|
53
|
+
onValueChange?: (value: string) => void;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* The secret, and the two sentences a reveal control has to be named with.
|
|
57
|
+
*
|
|
58
|
+
* **`revealLabel` and `hideLabel` are here and cannot be defaulted, and the reason is
|
|
59
|
+
* the one `PasswordField` argues for at length.** A reveal control that says one
|
|
60
|
+
* sentence in a product whose interface is in another language looks localised,
|
|
61
|
+
* because the icon is the same everywhere and the half a screen reader user actually
|
|
62
|
+
* hears is English. A Block that filled them in would be shipping English into every
|
|
63
|
+
* consumer's password field, which is the exact defect `check-block-copy` was
|
|
64
|
+
* written to end.
|
|
65
|
+
*/
|
|
66
|
+
export type Login01Secret = {
|
|
67
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
68
|
+
label: string;
|
|
69
|
+
/** The accessible name of a reveal control while the secret is hidden. */
|
|
70
|
+
revealLabel: string;
|
|
71
|
+
/** The accessible name of a reveal control while the secret is showing. */
|
|
72
|
+
hideLabel: string;
|
|
73
|
+
/** The secret as the caller holds it. Refused without `onValueChange`. */
|
|
74
|
+
value?: string;
|
|
75
|
+
/** Called with the secret as the reader changes it. */
|
|
76
|
+
onValueChange?: (value: string) => void;
|
|
77
|
+
/**
|
|
78
|
+
* A line under the control.
|
|
79
|
+
*
|
|
80
|
+
* Replaced by `error` while the field is invalid rather than stacked under it, so
|
|
81
|
+
* the reader has one instruction at a time. That replacement is `PasswordField`'s
|
|
82
|
+
* own and this Block does not re-decide it.
|
|
83
|
+
*/
|
|
84
|
+
description?: ReactNode;
|
|
85
|
+
/**
|
|
86
|
+
* What is wrong with the entry, in the destructive token and announced as it
|
|
87
|
+
* appears. It also marks the control invalid.
|
|
88
|
+
*
|
|
89
|
+
* The caller's sentence, and the reason is the same one the field's label is: a
|
|
90
|
+
* product that says "That password has been in three breaches" and a product that
|
|
91
|
+
* says "Wrong password" are making different claims about their own credential
|
|
92
|
+
* store, and one of them is a decision about whether the account exists.
|
|
93
|
+
*/
|
|
94
|
+
error?: ReactNode;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* The remember control, and what it remembers.
|
|
98
|
+
*
|
|
99
|
+
* **A row and not a checkbox, and the reason is that the label is a sentence about
|
|
100
|
+
* a duration.** "Keep me signed in" is a claim about a session length and a cookie,
|
|
101
|
+
* and "Remember this device for 30 days" is a different claim with a different
|
|
102
|
+
* consequence if the device is shared. Both are the caller's, and both belong beside
|
|
103
|
+
* the control rather than inside it.
|
|
104
|
+
*/
|
|
105
|
+
export type Login01Remember = {
|
|
106
|
+
/** The words on the control, and its accessible name. */
|
|
107
|
+
label: string;
|
|
108
|
+
/** Whether the row is ticked, as the caller holds it. Refused without `onValueChange`. */
|
|
109
|
+
value?: boolean;
|
|
110
|
+
/** Called with the new state as the reader ticks the control. */
|
|
111
|
+
onValueChange?: (value: boolean) => void;
|
|
112
|
+
/** A line under the label, read after it rather than instead of it. */
|
|
113
|
+
description?: ReactNode;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* One of the two ways off this screen, and where each of them goes.
|
|
117
|
+
*
|
|
118
|
+
* A sentence and not a noun phrase, and the reason is the defect the whole
|
|
119
|
+
* component family is written against: a link whose visible words do not say what
|
|
120
|
+
* activating it does is a link a voice control user cannot say out loud, because
|
|
121
|
+
* the words they can see are the words they can speak. "Reset your password" and
|
|
122
|
+
* "Create an account instead" are sentences. "Forgot?" and "Sign up" are two
|
|
123
|
+
* destinations a reader has to stop and read the context of.
|
|
124
|
+
*/
|
|
125
|
+
export type Login01Link = {
|
|
126
|
+
/** The words on the link, and its accessible name. */
|
|
127
|
+
label: string;
|
|
128
|
+
/** The destination, in the `href` where the status bar and the context menu can reach it. */
|
|
129
|
+
href: string;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* What the caller's own sign-in request is doing, in the caller's own words.
|
|
133
|
+
*
|
|
134
|
+
* A prop and never a state this Block writes, for the reason every Block in this
|
|
135
|
+
* family states and stated hardest here: a credential surface has more failure
|
|
136
|
+
* sentences than any other surface in the package, and the one this package wrote
|
|
137
|
+
* would be the one most certainly wrong. See the Block's JSDoc.
|
|
138
|
+
*/
|
|
139
|
+
export type Login01Status = {
|
|
140
|
+
/**
|
|
141
|
+
* Which of the three the request is in. Read by the Block for two things only.
|
|
142
|
+
*
|
|
143
|
+
* `working` disables the submit control, because a second press while the first
|
|
144
|
+
* request is in flight is a second credential sent to the caller's own server and
|
|
145
|
+
* a second attempt counted against whatever limit the caller has. `error` is the
|
|
146
|
+
* only other member that changes anything, and it changes one thing: the region
|
|
147
|
+
* announces the message rather than waiting for a pause, because a reader who
|
|
148
|
+
* pressed a button and got nothing back is a reader who will press it again.
|
|
149
|
+
*/
|
|
150
|
+
state: 'idle' | 'working' | 'error';
|
|
151
|
+
/** The words for that state, in the product's own voice. */
|
|
152
|
+
message: ReactNode;
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* The props a Login01 takes. Every string in this Block is one of them.
|
|
156
|
+
*
|
|
157
|
+
* There is no field list here and that is the design rather than an omission. A
|
|
158
|
+
* sign-in form is two controls wide on four of the four consumer sites and three on
|
|
159
|
+
* the other, and a list would have been a shape that has to be validated against
|
|
160
|
+
* every arrangement a product actually ships. What this Block does take as a
|
|
161
|
+
* declaration is the one thing that varies in kind rather than in number: the
|
|
162
|
+
* identifier.
|
|
163
|
+
*/
|
|
164
|
+
export type Login01Props = {
|
|
165
|
+
/** The short line above the title, usually which product this is. */
|
|
166
|
+
eyebrow?: ReactNode;
|
|
167
|
+
/**
|
|
168
|
+
* The heading.
|
|
169
|
+
*
|
|
170
|
+
* Required, because a credential surface with no heading is a form in a page, and
|
|
171
|
+
* a reader who has just been asked to authorise a machine deserves to be told
|
|
172
|
+
* which one before they type.
|
|
173
|
+
*/
|
|
174
|
+
title: ReactNode;
|
|
175
|
+
/** One supporting line under the heading, for the part the title cannot carry. */
|
|
176
|
+
description?: ReactNode;
|
|
177
|
+
/**
|
|
178
|
+
* Called with what the reader typed, and the only thing this Block does with it.
|
|
179
|
+
*
|
|
180
|
+
* **Required, and the requirement is the whole of the Block's neutrality.** There
|
|
181
|
+
* is no transport here, no route, no session store and no cookie, because every
|
|
182
|
+
* one of those is a decision about the caller's product and its data, and a frame
|
|
183
|
+
* that takes one is a frame that has to be replaced rather than configured. A
|
|
184
|
+
* consumer who wants a transport writes one; a consumer who already has one
|
|
185
|
+
* passes it straight in.
|
|
186
|
+
*/
|
|
187
|
+
onSubmit: (value: {
|
|
188
|
+
identifier: string;
|
|
189
|
+
secret: string;
|
|
190
|
+
remember: boolean;
|
|
191
|
+
}) => void;
|
|
192
|
+
/** The identifier field, declared by the caller. See `Login01Identifier`. */
|
|
193
|
+
identifier: Login01Identifier;
|
|
194
|
+
/** The secret field, and the two sentences its reveal control is named with. */
|
|
195
|
+
secret: Login01Secret;
|
|
196
|
+
/** The remember row. Omit it and the row is not drawn, which is a real choice. */
|
|
197
|
+
remember?: Login01Remember;
|
|
198
|
+
/** The words on the one control that submits. */
|
|
199
|
+
submitLabel: string;
|
|
200
|
+
/**
|
|
201
|
+
* Whether the caller's request is in flight.
|
|
202
|
+
*
|
|
203
|
+
* A prop and not read from `status`, because the two answer different questions:
|
|
204
|
+
* `submitting` is the control, and `status.state` is the outcome. A caller whose
|
|
205
|
+
* transport is a server action gets a pending state without a status, and a caller
|
|
206
|
+
* with a status of their own gets one without wiring a pending flag.
|
|
207
|
+
*/
|
|
208
|
+
submitting?: boolean;
|
|
209
|
+
/**
|
|
210
|
+
* What the caller's own request is doing, drawn in a live region and announced.
|
|
211
|
+
*
|
|
212
|
+
* See the Block's JSDoc for why there is no sentence anywhere in this file and
|
|
213
|
+
* what the honest failure of a sign-in looks like.
|
|
214
|
+
*/
|
|
215
|
+
status?: Login01Status;
|
|
216
|
+
/**
|
|
217
|
+
* The caller's own second factor, drawn under the status.
|
|
218
|
+
*
|
|
219
|
+
* **A slot and not a `two-factor-01`, and the reason is that a second factor is
|
|
220
|
+
* not one arrangement.** A product that asks for a code composes `two-factor-01`
|
|
221
|
+
* and passes it here, a product that asks for a passkey puts a caller's own
|
|
222
|
+
* ceremony control here, and a product that does both renders a chooser. All three
|
|
223
|
+
* are the same screen at different moments and none of them is this Block's to
|
|
224
|
+
* decide, so the region is drawn and the words, the controls and the states are the
|
|
225
|
+
* caller's.
|
|
226
|
+
*/
|
|
227
|
+
secondFactor?: ReactNode;
|
|
228
|
+
/**
|
|
229
|
+
* The caller's own ways in that are not a typed identifier and a secret.
|
|
230
|
+
*
|
|
231
|
+
* **A slot, and the reason is the licensed asset.** A provider's mark is a
|
|
232
|
+
* trademark this repository has no right to ship and no licence to redistribute,
|
|
233
|
+
* and Prism's icon lane is Lucide, whose whole vocabulary is line drawings of
|
|
234
|
+
* objects. So the marks, the names, the order and the accessible names of three
|
|
235
|
+
* identity providers are the caller's, and so is whatever separates the row from
|
|
236
|
+
* the form above it: this Block draws a rule above the slot and no words, because
|
|
237
|
+
* the honest separator on a sign-in screen is a sentence in the product's language
|
|
238
|
+
* and the word that most often appears there is the one a design system has no
|
|
239
|
+
* business choosing.
|
|
240
|
+
*/
|
|
241
|
+
providers?: ReactNode;
|
|
242
|
+
/** The link that leaves this screen to recover a secret. */
|
|
243
|
+
forgot?: Login01Link;
|
|
244
|
+
/** The link that leaves this screen to create an account. */
|
|
245
|
+
signup?: Login01Link;
|
|
246
|
+
/** Heading level for the section heading. @defaultValue 'h2' */
|
|
247
|
+
headingLevel?: HeadingLevel;
|
|
248
|
+
/**
|
|
249
|
+
* Layout only, exactly as on every Block. Changing a Prism-owned visual property
|
|
250
|
+
* from here is prohibited.
|
|
251
|
+
*/
|
|
252
|
+
className?: string;
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* A sign-in: the identifier a person is known by, the secret they keep, the one
|
|
256
|
+
* control that hands both to the caller, and the caller's own words for what
|
|
257
|
+
* happened.
|
|
258
|
+
*
|
|
259
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
260
|
+
* storefront publishes a sign-in card: an email field, a password with an eye, a
|
|
261
|
+
* remember-me tick, a button, a row of third-party marks and two links, and its
|
|
262
|
+
* purpose is to get a shopper past the gate so their order history is waiting on the
|
|
263
|
+
* other side. Prism's products observe a pipeline, capture a market, watch an estate
|
|
264
|
+
* and run agents, and a machine acting on behalf of a person is the whole subject,
|
|
265
|
+
* so this is the screen where a human authorises a machine. The composition is the
|
|
266
|
+
* storefront's and is unchanged: the labelled identifier, the reveal, the remember
|
|
267
|
+
* row, the single control, the provider row, the two links. What it authorises is a
|
|
268
|
+
* session on an instrument, which is a claim with consequences a shopping account
|
|
269
|
+
* does not have, and the difference shows up in exactly one place: the sentence on
|
|
270
|
+
* the failure.
|
|
271
|
+
*
|
|
272
|
+
* **What it authorises.** A successful `onSubmit` means the caller's own server has
|
|
273
|
+
* accepted an identifier and a secret and is about to open a session, and the Block
|
|
274
|
+
* has done nothing more than carry two strings and a boolean across a form
|
|
275
|
+
* boundary. It reads no credential off the page, verifies nothing, stores nothing,
|
|
276
|
+
* and starts nothing. A reader who signs in here has authorised their own machine
|
|
277
|
+
* and the caller's server is what decides whether that authorisation took.
|
|
278
|
+
*
|
|
279
|
+
* **What it deliberately does not do, and these are the three decisions every
|
|
280
|
+
* credential surface has to make.** It will not rate-limit. It will not decide
|
|
281
|
+
* whether the identifier exists. And it will not say whether the secret was right.
|
|
282
|
+
* Each of those is the consumer's, and each is a security decision rather than a
|
|
283
|
+
* rendering one, so a Block that made any of them would be something other than a
|
|
284
|
+
* composition: a Block that rate-limited would be a rate limiter in a component
|
|
285
|
+
* library, and it would be shipping one policy to every product that installed it, in
|
|
286
|
+
* a place no consumer can read it. A Block that decided whether the identifier exists
|
|
287
|
+
* would be an account directory, and it would also be an enumeration oracle: the
|
|
288
|
+
* difference between "no such account" and "wrong password" is the difference between
|
|
289
|
+
* a screen that can be used to discover who has an account and one that cannot, and
|
|
290
|
+
* that difference is a product's disclosure decision. A Block that said whether the
|
|
291
|
+
* secret was right would be a password verifier, which is the mechanism this package
|
|
292
|
+
* is furthest from owning. So the Block hands over what was typed and draws what it
|
|
293
|
+
* was given, and the three decisions are the caller's in the order they want to make
|
|
294
|
+
* them.
|
|
295
|
+
*
|
|
296
|
+
* **The honest failure state is a single sentence, and the sentence is the caller's,
|
|
297
|
+
* and the reason is that a credential surface's failures are not enumerable here.**
|
|
298
|
+
* A sign-in can fail because the identifier is unknown, because the secret is wrong,
|
|
299
|
+
* because the account is disabled, because the address was never verified, because
|
|
300
|
+
* the session was revoked elsewhere, because a rate limit was reached, because a
|
|
301
|
+
* breached-password list caught the secret, because the second factor was declined,
|
|
302
|
+
* because the caller's identity provider is down, or because the caller's own database
|
|
303
|
+
* is unreachable. Those are eleven outcomes with eleven different sentences, and the
|
|
304
|
+
* product's choice about which of them a reader is told about is a disclosure
|
|
305
|
+
* decision with a security consequence. One sentence this package wrote would be
|
|
306
|
+
* inherited verbatim by every consumer and would be the one line on this screen most
|
|
307
|
+
* certainly wrong. So `status` is a prop, this file holds no `error` flag and no
|
|
308
|
+
* `success` flag, and the words for the field come from `secret.error` rather than
|
|
309
|
+
* from anything here. What the Block does do about a failure is the two things that
|
|
310
|
+
* are rendering rather than policy: it refuses a second press while the caller's
|
|
311
|
+
* request is in flight, because a second press is a second credential sent to the
|
|
312
|
+
* caller's server and a second attempt counted against a limit the Block cannot see,
|
|
313
|
+
* and it marks the secret's own field invalid, so the reader is told which control
|
|
314
|
+
* the sentence is about rather than being left to work it out.
|
|
315
|
+
*
|
|
316
|
+
* **There is no `Alert` anywhere in this file, and the alternative was a callout with
|
|
317
|
+
* `role="alert"` beside the live region.** That would announce the same sentence
|
|
318
|
+
* twice, once through the alert and once through the region, and on a screen where a
|
|
319
|
+
* reader is waiting for an answer that is the one place a doubled announcement is
|
|
320
|
+
* least forgivable: a screen reader user hears the refusal, is interrupted by the
|
|
321
|
+
* refusal again, and cannot tell whether the two are the same message. So the
|
|
322
|
+
* outcome is a `LiveRegion` whose politeness follows the caller's own state, and
|
|
323
|
+
* `assertive` only for the refusal.
|
|
324
|
+
*
|
|
325
|
+
* **The Block owns the three values and adopts a caller's, and the reason is that
|
|
326
|
+
* `PasswordField` is a controlled control.** A reveal toggle has to be able to show
|
|
327
|
+
* and hide the same value, so the field cannot be uncontrolled, so the value has to
|
|
328
|
+
* exist before the reader types anything, and so a Block that declared `value` and
|
|
329
|
+
* `onValueChange` optional and then read them off the props would render a field that
|
|
330
|
+
* accepts keystrokes into nothing. The Block therefore holds the three entries itself,
|
|
331
|
+
* hands them to the caller on every change when an `onValueChange` was passed, and
|
|
332
|
+
* adopts a `value` prop the moment it changes, which is the arrangement React
|
|
333
|
+
* documents for a prop that can be changed under a stateful child. The cost is
|
|
334
|
+
* stated rather than hidden: a caller who never passes `value` owns nothing and can
|
|
335
|
+
* clear the form only by changing the caller's own state somewhere else, and a caller
|
|
336
|
+
* who passes `value` without `onValueChange` is a caller whose control and whose
|
|
337
|
+
* value are about to disagree, which is why that pair is refused above.
|
|
338
|
+
*
|
|
339
|
+
* **The secret field's `autoComplete` is left at `PasswordField`'s own default of
|
|
340
|
+
* `current-password`, which is the right answer here and only here.** A sign-in is
|
|
341
|
+
* the one place that hint is correct, and the other three places a password appears
|
|
342
|
+
* want `new-password`, which is the argument `PasswordField` makes in full. The
|
|
343
|
+
* identifier's hint is left to the caller rather than guessed, because a password
|
|
344
|
+
* manager keys an account on the identifier and the right hint depends on what the
|
|
345
|
+
* product calls a person.
|
|
346
|
+
*
|
|
347
|
+
* **It is a client Component, and the directive is unconditional.** `onSubmit` is a
|
|
348
|
+
* function, a function is a piece of state, and state is a client module: a server
|
|
349
|
+
* Component cannot hand an event handler to a `<form>`, so a caller rendering this
|
|
350
|
+
* from a server component gets a form that submits and calls nothing. A consumer who
|
|
351
|
+
* needs this to stay in the server graph can render it inside their own client
|
|
352
|
+
* boundary, and the cost of that is their boundary rather than this Block's silence.
|
|
353
|
+
*/
|
|
354
|
+
export declare function Login01({ eyebrow, title, description, onSubmit, identifier, secret, remember, submitLabel, submitting, status, secondFactor, providers, forgot, signup, headingLevel, className, }: Login01Props): import("react").JSX.Element;
|
|
355
|
+
export default Login01;
|
|
356
|
+
//# sourceMappingURL=login-01.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-01.d.ts","sourceRoot":"","sources":["../../../src/blocks/login-01/login-01.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,SAAS,EAAE,MAAM,OAAO,CAAA;AAWjD,OAAO,EAA2B,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAGxF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAA;IACb,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,uEAAuE;IACvE,WAAW,CAAC,EAAE,SAAS,CAAA;CACxB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAA;IACnC,4DAA4D;IAC5D,OAAO,EAAE,SAAS,CAAA;CACnB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,qEAAqE;IACrE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;;OASG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACpF,6EAA6E;IAC7E,UAAU,EAAE,iBAAiB,CAAA;IAC7B,gFAAgF;IAChF,MAAM,EAAE,aAAa,CAAA;IACrB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,gEAAgE;IAChE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA+GD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmGG;AACH,wBAAgB,OAAO,CAAC,EACtB,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,MAAM,EACN,QAAQ,EACR,WAAW,EACX,UAAkB,EAClB,MAAM,EACN,YAAY,EACZ,SAAS,EACT,MAAM,EACN,MAAM,EACN,YAAmB,EACnB,SAAS,GACV,EAAE,YAAY,+BAsPd;AAED,eAAe,OAAO,CAAA"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId, useState } from 'react';
|
|
4
|
+
import { Button } from '../../components/ui/button.js';
|
|
5
|
+
import { Card } from '../../components/ui/card.js';
|
|
6
|
+
import { Checkbox } from '../../components/ui/checkbox.js';
|
|
7
|
+
import { CtaLink } from '../../components/ui/cta-link.js';
|
|
8
|
+
import { Field, FieldDescription, FieldGroup, FieldLabel } from '../../components/ui/field.js';
|
|
9
|
+
import { Input } from '../../components/ui/input.js';
|
|
10
|
+
import { LiveRegion } from '../../components/ui/live-region.js';
|
|
11
|
+
import { PasswordField } from '../../components/ui/password-field.js';
|
|
12
|
+
import { Section, SectionHeading } from '../../components/ui/section.js';
|
|
13
|
+
import { cn } from '../../lib/utils.js';
|
|
14
|
+
/**
|
|
15
|
+
* The three entries the form hands over, and the empty triple it starts from.
|
|
16
|
+
*
|
|
17
|
+
* `remember` is in here rather than being read from a control, because a checkbox
|
|
18
|
+
* the reader ticks and forgets is not one this Block can report. The Block owns the
|
|
19
|
+
* three values and the caller sees all of them at once, which is the arrangement
|
|
20
|
+
* `settings-security-01` uses for its three password entries and the reason there.
|
|
21
|
+
*/
|
|
22
|
+
const EMPTY_CREDENTIALS = { identifier: '', secret: '', remember: false };
|
|
23
|
+
/**
|
|
24
|
+
* Whether a caller passed a word that is not there.
|
|
25
|
+
*
|
|
26
|
+
* Read as `string | undefined` rather than as the declared type, because the check
|
|
27
|
+
* is about the value that turned up rather than about what the type promised. A
|
|
28
|
+
* JavaScript caller and a value out of a session store both arrive with the type's
|
|
29
|
+
* guarantee already gone, and the diagnostic below is the last place that can still
|
|
30
|
+
* say what was wrong.
|
|
31
|
+
*/
|
|
32
|
+
function blank(value) {
|
|
33
|
+
return value === undefined || value.trim() === '';
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The refusals, checked before anything is drawn so a caller's mistake is one
|
|
37
|
+
* diagnostic in a console rather than a nameless control on the screen where a
|
|
38
|
+
* reader is about to hand over a secret.
|
|
39
|
+
*
|
|
40
|
+
* Six shapes, and each one is a control that cannot be used or a sentence that would
|
|
41
|
+
* be read in the wrong language. A nameless field is announced as a text field, and
|
|
42
|
+
* two nameless fields on one page are announced identically. A nameless reveal
|
|
43
|
+
* control is announced as a button, and it is the only button on a sign-in form
|
|
44
|
+
* that a reader can reach with Tab. An English `revealLabel` in a product that does
|
|
45
|
+
* not use the word is the half-localised control the copy gate was written to end. A
|
|
46
|
+
* `value` with no `onValueChange` is a field the caller cannot clear. A
|
|
47
|
+
* `remember.label` with no words is a checkbox nobody can find.
|
|
48
|
+
*/
|
|
49
|
+
function assertLogin(input) {
|
|
50
|
+
const { identifier, secret, remember, forgot, signup } = input;
|
|
51
|
+
if (blank(identifier.label)) {
|
|
52
|
+
throw new Error('Login01: the identifier field declares no label, so its control would be announced as a text ' +
|
|
53
|
+
'field, which is the same name the secret field below it is announced by once the reveal control is ' +
|
|
54
|
+
'out of the way. Pass the words the product uses for a person or a workspace.');
|
|
55
|
+
}
|
|
56
|
+
if (blank(secret.label) || blank(secret.revealLabel) || blank(secret.hideLabel)) {
|
|
57
|
+
throw new Error('Login01: the secret field is missing one of its three words. A reveal control with no name is ' +
|
|
58
|
+
'announced as a button, and it is the only control on this screen a keyboard reader reaches with ' +
|
|
59
|
+
'Tab. Pass label, revealLabel and hideLabel in your own language.');
|
|
60
|
+
}
|
|
61
|
+
if (identifier.value !== undefined && identifier.onValueChange === undefined) {
|
|
62
|
+
throw new Error('Login01: identifier.value was passed with no onValueChange, so the field would show the value once ' +
|
|
63
|
+
'and then stop telling the caller what is in it, which is a credential the caller cannot clear when ' +
|
|
64
|
+
'a reader gives up on the form. Pass the pair, or neither.');
|
|
65
|
+
}
|
|
66
|
+
if (secret.value !== undefined && secret.onValueChange === undefined) {
|
|
67
|
+
throw new Error('Login01: secret.value was passed with no onValueChange, so the Block would hold a password the ' +
|
|
68
|
+
'caller has lost track of and cannot clear. Pass the pair, or neither.');
|
|
69
|
+
}
|
|
70
|
+
if (remember === undefined)
|
|
71
|
+
return;
|
|
72
|
+
if (blank(remember.label)) {
|
|
73
|
+
throw new Error('Login01: a remember row was passed with no label, so the control would be a tick box with no words ' +
|
|
74
|
+
'beside it and a reader could not tell what ticking it changes about the session. Pass the sentence ' +
|
|
75
|
+
'your product uses, or drop the row.');
|
|
76
|
+
}
|
|
77
|
+
if (remember.value !== undefined && remember.onValueChange === undefined) {
|
|
78
|
+
throw new Error('Login01: remember.value was passed with no onValueChange, so the row would show one state and then ' +
|
|
79
|
+
'stop agreeing with the caller, which on a credential surface is a control that lies about the ' +
|
|
80
|
+
'session the reader is about to be given. Pass the pair, or neither.');
|
|
81
|
+
}
|
|
82
|
+
for (const link of [forgot, signup]) {
|
|
83
|
+
if (link === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
if (blank(link.label)) {
|
|
86
|
+
throw new Error(`Login01: the link to ${JSON.stringify(link.href)} declares no label, so the anchor's accessible name ` +
|
|
87
|
+
'would be its destination, which a screen reader reads as a run of characters and a mouse reader ' +
|
|
88
|
+
'cannot copy. Pass the sentence that says what following it does.');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A sign-in: the identifier a person is known by, the secret they keep, the one
|
|
94
|
+
* control that hands both to the caller, and the caller's own words for what
|
|
95
|
+
* happened.
|
|
96
|
+
*
|
|
97
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
98
|
+
* storefront publishes a sign-in card: an email field, a password with an eye, a
|
|
99
|
+
* remember-me tick, a button, a row of third-party marks and two links, and its
|
|
100
|
+
* purpose is to get a shopper past the gate so their order history is waiting on the
|
|
101
|
+
* other side. Prism's products observe a pipeline, capture a market, watch an estate
|
|
102
|
+
* and run agents, and a machine acting on behalf of a person is the whole subject,
|
|
103
|
+
* so this is the screen where a human authorises a machine. The composition is the
|
|
104
|
+
* storefront's and is unchanged: the labelled identifier, the reveal, the remember
|
|
105
|
+
* row, the single control, the provider row, the two links. What it authorises is a
|
|
106
|
+
* session on an instrument, which is a claim with consequences a shopping account
|
|
107
|
+
* does not have, and the difference shows up in exactly one place: the sentence on
|
|
108
|
+
* the failure.
|
|
109
|
+
*
|
|
110
|
+
* **What it authorises.** A successful `onSubmit` means the caller's own server has
|
|
111
|
+
* accepted an identifier and a secret and is about to open a session, and the Block
|
|
112
|
+
* has done nothing more than carry two strings and a boolean across a form
|
|
113
|
+
* boundary. It reads no credential off the page, verifies nothing, stores nothing,
|
|
114
|
+
* and starts nothing. A reader who signs in here has authorised their own machine
|
|
115
|
+
* and the caller's server is what decides whether that authorisation took.
|
|
116
|
+
*
|
|
117
|
+
* **What it deliberately does not do, and these are the three decisions every
|
|
118
|
+
* credential surface has to make.** It will not rate-limit. It will not decide
|
|
119
|
+
* whether the identifier exists. And it will not say whether the secret was right.
|
|
120
|
+
* Each of those is the consumer's, and each is a security decision rather than a
|
|
121
|
+
* rendering one, so a Block that made any of them would be something other than a
|
|
122
|
+
* composition: a Block that rate-limited would be a rate limiter in a component
|
|
123
|
+
* library, and it would be shipping one policy to every product that installed it, in
|
|
124
|
+
* a place no consumer can read it. A Block that decided whether the identifier exists
|
|
125
|
+
* would be an account directory, and it would also be an enumeration oracle: the
|
|
126
|
+
* difference between "no such account" and "wrong password" is the difference between
|
|
127
|
+
* a screen that can be used to discover who has an account and one that cannot, and
|
|
128
|
+
* that difference is a product's disclosure decision. A Block that said whether the
|
|
129
|
+
* secret was right would be a password verifier, which is the mechanism this package
|
|
130
|
+
* is furthest from owning. So the Block hands over what was typed and draws what it
|
|
131
|
+
* was given, and the three decisions are the caller's in the order they want to make
|
|
132
|
+
* them.
|
|
133
|
+
*
|
|
134
|
+
* **The honest failure state is a single sentence, and the sentence is the caller's,
|
|
135
|
+
* and the reason is that a credential surface's failures are not enumerable here.**
|
|
136
|
+
* A sign-in can fail because the identifier is unknown, because the secret is wrong,
|
|
137
|
+
* because the account is disabled, because the address was never verified, because
|
|
138
|
+
* the session was revoked elsewhere, because a rate limit was reached, because a
|
|
139
|
+
* breached-password list caught the secret, because the second factor was declined,
|
|
140
|
+
* because the caller's identity provider is down, or because the caller's own database
|
|
141
|
+
* is unreachable. Those are eleven outcomes with eleven different sentences, and the
|
|
142
|
+
* product's choice about which of them a reader is told about is a disclosure
|
|
143
|
+
* decision with a security consequence. One sentence this package wrote would be
|
|
144
|
+
* inherited verbatim by every consumer and would be the one line on this screen most
|
|
145
|
+
* certainly wrong. So `status` is a prop, this file holds no `error` flag and no
|
|
146
|
+
* `success` flag, and the words for the field come from `secret.error` rather than
|
|
147
|
+
* from anything here. What the Block does do about a failure is the two things that
|
|
148
|
+
* are rendering rather than policy: it refuses a second press while the caller's
|
|
149
|
+
* request is in flight, because a second press is a second credential sent to the
|
|
150
|
+
* caller's server and a second attempt counted against a limit the Block cannot see,
|
|
151
|
+
* and it marks the secret's own field invalid, so the reader is told which control
|
|
152
|
+
* the sentence is about rather than being left to work it out.
|
|
153
|
+
*
|
|
154
|
+
* **There is no `Alert` anywhere in this file, and the alternative was a callout with
|
|
155
|
+
* `role="alert"` beside the live region.** That would announce the same sentence
|
|
156
|
+
* twice, once through the alert and once through the region, and on a screen where a
|
|
157
|
+
* reader is waiting for an answer that is the one place a doubled announcement is
|
|
158
|
+
* least forgivable: a screen reader user hears the refusal, is interrupted by the
|
|
159
|
+
* refusal again, and cannot tell whether the two are the same message. So the
|
|
160
|
+
* outcome is a `LiveRegion` whose politeness follows the caller's own state, and
|
|
161
|
+
* `assertive` only for the refusal.
|
|
162
|
+
*
|
|
163
|
+
* **The Block owns the three values and adopts a caller's, and the reason is that
|
|
164
|
+
* `PasswordField` is a controlled control.** A reveal toggle has to be able to show
|
|
165
|
+
* and hide the same value, so the field cannot be uncontrolled, so the value has to
|
|
166
|
+
* exist before the reader types anything, and so a Block that declared `value` and
|
|
167
|
+
* `onValueChange` optional and then read them off the props would render a field that
|
|
168
|
+
* accepts keystrokes into nothing. The Block therefore holds the three entries itself,
|
|
169
|
+
* hands them to the caller on every change when an `onValueChange` was passed, and
|
|
170
|
+
* adopts a `value` prop the moment it changes, which is the arrangement React
|
|
171
|
+
* documents for a prop that can be changed under a stateful child. The cost is
|
|
172
|
+
* stated rather than hidden: a caller who never passes `value` owns nothing and can
|
|
173
|
+
* clear the form only by changing the caller's own state somewhere else, and a caller
|
|
174
|
+
* who passes `value` without `onValueChange` is a caller whose control and whose
|
|
175
|
+
* value are about to disagree, which is why that pair is refused above.
|
|
176
|
+
*
|
|
177
|
+
* **The secret field's `autoComplete` is left at `PasswordField`'s own default of
|
|
178
|
+
* `current-password`, which is the right answer here and only here.** A sign-in is
|
|
179
|
+
* the one place that hint is correct, and the other three places a password appears
|
|
180
|
+
* want `new-password`, which is the argument `PasswordField` makes in full. The
|
|
181
|
+
* identifier's hint is left to the caller rather than guessed, because a password
|
|
182
|
+
* manager keys an account on the identifier and the right hint depends on what the
|
|
183
|
+
* product calls a person.
|
|
184
|
+
*
|
|
185
|
+
* **It is a client Component, and the directive is unconditional.** `onSubmit` is a
|
|
186
|
+
* function, a function is a piece of state, and state is a client module: a server
|
|
187
|
+
* Component cannot hand an event handler to a `<form>`, so a caller rendering this
|
|
188
|
+
* from a server component gets a form that submits and calls nothing. A consumer who
|
|
189
|
+
* needs this to stay in the server graph can render it inside their own client
|
|
190
|
+
* boundary, and the cost of that is their boundary rather than this Block's silence.
|
|
191
|
+
*/
|
|
192
|
+
export function Login01({ eyebrow, title, description, onSubmit, identifier, secret, remember, submitLabel, submitting = false, status, secondFactor, providers, forgot, signup, headingLevel = 'h2', className, }) {
|
|
193
|
+
assertLogin({ identifier, secret, remember, forgot, signup });
|
|
194
|
+
const generated = useId();
|
|
195
|
+
const identifierId = `${generated}-identifier`;
|
|
196
|
+
const identifierDescriptionId = `${generated}-identifier-description`;
|
|
197
|
+
const rememberId = `${generated}-remember`;
|
|
198
|
+
const rememberDescriptionId = `${generated}-remember-description`;
|
|
199
|
+
/*
|
|
200
|
+
* The three entries, and the two pieces of render-time state that let the Block
|
|
201
|
+
* adopt a caller's value and keep it in step. Both are adjusted during render
|
|
202
|
+
* rather than in an effect, because the trigger is a prop changing and this is the
|
|
203
|
+
* arrangement React documents for it: a set during render is applied before the
|
|
204
|
+
* browser paints, so a controlled caller never sees the field disagree with the
|
|
205
|
+
* value it just sent.
|
|
206
|
+
*/
|
|
207
|
+
const [typed, setTyped] = useState({
|
|
208
|
+
identifier: identifier.value ?? '',
|
|
209
|
+
secret: secret.value ?? '',
|
|
210
|
+
remember: remember?.value ?? false,
|
|
211
|
+
});
|
|
212
|
+
const [seen, setSeen] = useState({ identifier: identifier.value, secret: secret.value, remember: remember?.value });
|
|
213
|
+
if (seen.identifier !== identifier.value ||
|
|
214
|
+
seen.secret !== secret.value ||
|
|
215
|
+
seen.remember !== remember?.value) {
|
|
216
|
+
setSeen({ identifier: identifier.value, secret: secret.value, remember: remember?.value });
|
|
217
|
+
setTyped({
|
|
218
|
+
identifier: identifier.value ?? '',
|
|
219
|
+
secret: secret.value ?? '',
|
|
220
|
+
remember: remember?.value ?? false,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
const working = submitting || status?.state === 'working';
|
|
224
|
+
/*
|
|
225
|
+
* Three setters rather than one keyed by name, and the reason is that the three
|
|
226
|
+
* report to three different callables with three different types. A single
|
|
227
|
+
* `setEntry(key)` would be shorter and would need a cast on every call to make the
|
|
228
|
+
* three `onValueChange` signatures agree, and a cast is where a credential would
|
|
229
|
+
* be handed to the wrong callback.
|
|
230
|
+
*/
|
|
231
|
+
const setIdentifier = (value) => {
|
|
232
|
+
setTyped((was) => ({ ...was, identifier: value }));
|
|
233
|
+
identifier.onValueChange?.(value);
|
|
234
|
+
};
|
|
235
|
+
const setSecret = (value) => {
|
|
236
|
+
setTyped((was) => ({ ...was, secret: value }));
|
|
237
|
+
secret.onValueChange?.(value);
|
|
238
|
+
};
|
|
239
|
+
const setRemember = (value) => {
|
|
240
|
+
setTyped((was) => ({ ...was, remember: value }));
|
|
241
|
+
remember?.onValueChange?.(value);
|
|
242
|
+
};
|
|
243
|
+
const handleSubmit = (event) => {
|
|
244
|
+
event.preventDefault();
|
|
245
|
+
onSubmit(typed);
|
|
246
|
+
};
|
|
247
|
+
return (_jsx(Section, { "data-slot": "login-01", className: cn(className), children: _jsxs("div", { "data-slot": "login-01-body", className: "flex flex-col gap-10", children: [_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description }), _jsx(Card, { "data-slot": "login-01-card", className: "max-w-measure-narrow gap-0 px-6", children: _jsxs("form", { "data-slot": "login-01-form", onSubmit: handleSubmit, className: "flex w-full flex-col gap-5", children: [_jsxs(FieldGroup, { "data-slot": "login-01-fields", children: [_jsxs(Field, { "data-slot": "login-01-identifier", "data-field": "identifier", children: [_jsx(FieldLabel, { htmlFor: identifierId, children: identifier.label }), _jsx(Input, { id: identifierId, type: identifier.type ?? 'email', autoComplete: identifier.autoComplete, value: typed.identifier, onChange: (event) => setIdentifier(event.target.value), required: true, "aria-describedby": identifier.description === undefined ? undefined : identifierDescriptionId }), identifier.description === undefined ? null : (_jsx(FieldDescription, { id: identifierDescriptionId, children: identifier.description }))] }), _jsx(PasswordField, { value: typed.secret, onValueChange: setSecret, label: secret.label, description: secret.description, error: secret.error, revealLabel: secret.revealLabel, hideLabel: secret.hideLabel })] }), remember === undefined ? null : (_jsxs("div", { "data-slot": "login-01-remember", className: "flex items-start gap-2.5", children: [_jsx(Checkbox, { id: rememberId, checked: typed.remember, onCheckedChange: (next) => setRemember(next === true), className: "mt-0.5" }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(FieldLabel, { htmlFor: rememberId, className: "font-normal", children: remember.label }), remember.description === undefined ? null : (_jsx(FieldDescription, { id: rememberDescriptionId, children: remember.description }))] })] })), forgot === undefined ? null : (_jsx(CtaLink, { "data-slot": "login-01-forgot", href: forgot.href, variant: "ghost", size: "sm", className: "self-start", children: forgot.label })), _jsxs("div", { "data-slot": "login-01-actions", className: "flex flex-col gap-3", children: [_jsx(Button, { "data-slot": "login-01-submit", type: "submit", disabled: working, className: "w-full", children: submitLabel }), _jsx(LiveRegion, { "data-slot": "login-01-status", politeness: status?.state === 'error' ? 'assertive' : 'polite', busy: working, className: cn('text-sm', status?.state === 'error' ? 'text-destructive font-medium' : 'text-muted-foreground'), children: status?.message })] }), secondFactor === undefined ? null : (_jsx("div", { "data-slot": "login-01-second-factor", className: "border-border border-t pt-5", children: secondFactor })), providers === undefined ? null : (_jsx("div", { "data-slot": "login-01-providers", className: "border-border border-t pt-5", children: providers }))] }) }), signup === undefined ? null : (_jsx(CtaLink, { "data-slot": "login-01-signup", href: signup.href, variant: "ghost", size: "sm", className: "self-start", children: signup.label }))] }) }));
|
|
248
|
+
}
|
|
249
|
+
export default Login01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/logo-cloud-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAInD,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LogoCloud01, default } from './logo-cloud.js';
|