@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,202 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId } from 'react';
|
|
4
|
+
import { Field, FieldDescription, FieldLabel } from '../../components/ui/field.js';
|
|
5
|
+
import { Section, SectionHeading, childLevel, } from '../../components/ui/section.js';
|
|
6
|
+
import { Switch } from '../../components/ui/switch.js';
|
|
7
|
+
/**
|
|
8
|
+
* The refusals, so that a preferences surface never renders a control it cannot
|
|
9
|
+
* explain.
|
|
10
|
+
*
|
|
11
|
+
* A switch that moves and reports nothing, a switch that reports a move and
|
|
12
|
+
* cannot move, an event marked as one the product cannot work without and no
|
|
13
|
+
* words for the reader on either side of that, and a required set with no note
|
|
14
|
+
* saying so anywhere on the page. Each is a caller's mistake rather than a
|
|
15
|
+
* request, so each throws in a console rather than rendering the quiet version of
|
|
16
|
+
* itself.
|
|
17
|
+
*/
|
|
18
|
+
function assertProps(props) {
|
|
19
|
+
const { channels, onToggle, updateLabel, disabledLabel } = props;
|
|
20
|
+
if (onToggle !== undefined && updateLabel === undefined) {
|
|
21
|
+
throw new Error('SettingsNotifications01: onToggle was passed with no updateLabel, so every switch would be announced ' +
|
|
22
|
+
'by the name of the event alone. That name says what the control is, not what pressing it does, and ' +
|
|
23
|
+
'a reader who cannot tell those two things apart has to press the control to find out.');
|
|
24
|
+
}
|
|
25
|
+
if (onToggle === undefined && updateLabel !== undefined) {
|
|
26
|
+
throw new Error('SettingsNotifications01: updateLabel was passed with no onToggle, so the sentences would be composed ' +
|
|
27
|
+
'and then discarded, which is a caller who believes they have named the switches on a surface that ' +
|
|
28
|
+
'has none.');
|
|
29
|
+
}
|
|
30
|
+
for (const channel of channels) {
|
|
31
|
+
if (channel.events.length === 0) {
|
|
32
|
+
throw new Error(`SettingsNotifications01: the channel ${JSON.stringify(channel.name)} carries no events, so the group ` +
|
|
33
|
+
'would be a heading with a line under it and nothing to decide. Omit the channel, or give it the ' +
|
|
34
|
+
'events it is for.');
|
|
35
|
+
}
|
|
36
|
+
for (const event of channel.events) {
|
|
37
|
+
if (event.required === true &&
|
|
38
|
+
(event.requiredLabel === undefined || event.requiredLabel.trim() === '')) {
|
|
39
|
+
throw new Error('SettingsNotifications01: an event is marked required and passed no requiredLabel, so the control ' +
|
|
40
|
+
'that will not move would say nothing about why. Pass the mark, and the note on the section.');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const anyRequired = channels.some((channel) => channel.events.some((event) => event.required === true));
|
|
45
|
+
if (anyRequired && (disabledLabel === undefined || disabledLabel.trim() === '')) {
|
|
46
|
+
throw new Error('SettingsNotifications01: an event is marked required and no disabledLabel was passed, so a reader ' +
|
|
47
|
+
'would meet a control that will not move with no sentence anywhere on the page explaining that a ' +
|
|
48
|
+
'product decision is what stopped them. Pass the note.');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Per-channel notification preferences: a channel, a line about it, a set of
|
|
53
|
+
* switches for the events on it, and a note where the product has a standing
|
|
54
|
+
* requirement of its own.
|
|
55
|
+
*
|
|
56
|
+
* **This is the Block where a design system's care is most visible and least
|
|
57
|
+
* appreciated, because the reader came to change one thing and leave.** A
|
|
58
|
+
* preferences surface is the densest set of controls a product puts in front of a
|
|
59
|
+
* reader, and it is the one they visit least often and trust most. They are not
|
|
60
|
+
* reading it, they are hunting. They want the switch for the one event and they
|
|
61
|
+
* want to be sure of three things when they find it: that this is the right
|
|
62
|
+
* event, that pressing it does what they think, and that it did what they wanted.
|
|
63
|
+
* Everything below is in service of the third of those, which is the one a
|
|
64
|
+
* surface usually gets wrong, usually by being optimistic.
|
|
65
|
+
*
|
|
66
|
+
* **The `required` flag is the load-bearing decision, and the set is a prop
|
|
67
|
+
* because a design system that fixed the list would be deciding for every
|
|
68
|
+
* product which of its events are load-bearing.** The argument has two halves and
|
|
69
|
+
* both matter. A preference surface where every control is optional is a surface
|
|
70
|
+
* that will let a reader turn off something the product cannot work without: the
|
|
71
|
+
* reader is told the switch is theirs, presses it, the product stores the answer,
|
|
72
|
+
* and the failure arrives days later in a different part of the product with
|
|
73
|
+
* nothing on this page to point at. The reader is right that the switch was
|
|
74
|
+
* there and the product is right that the event was needed, and neither of them
|
|
75
|
+
* is wrong, which is the worst possible place for a disagreement to live. So a
|
|
76
|
+
* required set has to exist. And the fixed-list alternative is worse than the
|
|
77
|
+
* problem: this package does not know what any product cannot work without. A
|
|
78
|
+
* product whose password reset email is load-bearing and a product that mails
|
|
79
|
+
* nothing at all are both real, and a Block that shipped the first product's list
|
|
80
|
+
* would install it into the second, where a reader could turn off a notification
|
|
81
|
+
* that does not exist and a support ticket would arrive with no cause anyone can
|
|
82
|
+
* find. So the flag is on the event, the note is the caller's, and the
|
|
83
|
+
* consequence is that a consumer wiring this Block up has to decide which of their
|
|
84
|
+
* own events are load-bearing. That is a sentence worth naming rather than
|
|
85
|
+
* hiding: it is a decision, and it is theirs.
|
|
86
|
+
*
|
|
87
|
+
* **A required control is drawn read-only rather than disabled, and the reason is
|
|
88
|
+
* that a disabled control is not in the tab order.** A keyboard reader who tabs
|
|
89
|
+
* across a preferences surface with three required events meets three holes where
|
|
90
|
+
* three controls used to be. They cannot find the setting, they cannot come back
|
|
91
|
+
* to it, and there is nothing in the document to tell them the setting exists at
|
|
92
|
+
* all, so the most likely reading is that the page is broken or that the product
|
|
93
|
+
* has hidden something from them. Both are worse than the truth, which is that a
|
|
94
|
+
* decision has been made on their behalf. So the control keeps its place in the
|
|
95
|
+
* order, keeps its state announced, and takes the note as its description: the
|
|
96
|
+
* reader meets it, hears that it will not move, and hears why. The cost is
|
|
97
|
+
* stated rather than hidden, because it is real: a read-only control is drawn in
|
|
98
|
+
* the same ink as a live one, so the mark beside it and the note under the title
|
|
99
|
+
* are what carry the fact, and there is no flag on this package that dims it. A
|
|
100
|
+
* caller who wants the visual weight of a disabled control has to choose between
|
|
101
|
+
* that and the focus hole, and the focus hole is the worse of the two, so the
|
|
102
|
+
* decision here is not that read-only is better but that it is less bad.
|
|
103
|
+
*
|
|
104
|
+
* **The switch's accessible name says what pressing it will do, and the sentence
|
|
105
|
+
* is the caller's.** A switch announces its state, so a reader who meets a
|
|
106
|
+
* control named "Deploys" with the state off knows the current answer and has to
|
|
107
|
+
* work out the consequence themselves, which is the one step a switch exists to
|
|
108
|
+
* remove. So the name is composed from the state the control would move to, and
|
|
109
|
+
* it is a function rather than a record of strings because the honest sentence
|
|
110
|
+
* names the event, the channel and sometimes a qualification, and because a
|
|
111
|
+
* consumer in three languages has the sentence in three languages and Prism has
|
|
112
|
+
* none of them. The name is not consulted for a required event, and that is a
|
|
113
|
+
* consequence rather than an omission: a sentence describing what pressing a
|
|
114
|
+
* read-only control would do is a claim about a thing that cannot happen, and a
|
|
115
|
+
* Block that printed one would be the defect it exists to prevent.
|
|
116
|
+
*
|
|
117
|
+
* **The note is described once and repeated by reference, so every read-only
|
|
118
|
+
* control on the page carries it.** It is drawn at the top rather than repeated on
|
|
119
|
+
* each row, for the reason `list-panel` states for a count: it is the product's
|
|
120
|
+
* standing reason for the whole set, so a reader who meets it once has met it. The
|
|
121
|
+
* `aria-describedby` is what makes it true per control, and that is a real
|
|
122
|
+
* difference rather than a nicety: a sentence a reader has to go and find is a
|
|
123
|
+
* sentence most readers do not go and find, and a control that will not move with
|
|
124
|
+
* an unfound reason behind it is exactly the control a reader reports as broken.
|
|
125
|
+
* The same attribute carries the event's own description, which was drawn and never
|
|
126
|
+
* referred to, so the two are assembled rather than chosen between: a read-only
|
|
127
|
+
* event has both, and a reader who meets one without the other has to work out
|
|
128
|
+
* which half they are missing.
|
|
129
|
+
*
|
|
130
|
+
* **A switch is the control, and not a checkbox and not a button.** `Switch` is
|
|
131
|
+
* composed for all three reasons the Component's own JSDoc gives, and the third
|
|
132
|
+
* is the one that matters on this surface: a switch takes effect immediately, so
|
|
133
|
+
* there is no save control on the page for a reader to press and no state in which
|
|
134
|
+
* the page is holding changes the reader has not committed. That is the whole
|
|
135
|
+
* reason a preferences surface is drawn as switches rather than as a form, and
|
|
136
|
+
* re-deriving it here would mean a hand-written checkbox with no keyboard model, a
|
|
137
|
+
* hidden input that may not submit, and a page where a reader has to look for a
|
|
138
|
+
* button to find out whether they pressed the right thing.
|
|
139
|
+
*
|
|
140
|
+
* **The Block holds no preference state, so a failed change is the caller's to
|
|
141
|
+
* show.** `event.on` is the truth, the switch is controlled from it, and
|
|
142
|
+
* `onToggle` is a request. A Block that moved the switch and rolled it back would
|
|
143
|
+
* show a reader a preference the product rejected, and a reader who left the page
|
|
144
|
+
* in the moment between would leave believing they had turned something off that
|
|
145
|
+
* was still on. The arrangement is the one a server action wants, and it is
|
|
146
|
+
* stated rather than hidden: with a slow network the switch does not move until
|
|
147
|
+
* the product answers, which is slower than the alternative and the only version
|
|
148
|
+
* of it that is not lying.
|
|
149
|
+
*
|
|
150
|
+
* It is a client Component, and the directive is unconditional: a surface that
|
|
151
|
+
* attaches a handler owns the JavaScript that carries it, and the directive is on
|
|
152
|
+
* the module rather than in a leaf so a consumer composing a server page gets the
|
|
153
|
+
* boundary in one place they can see. `Switch` is the only client leaf it draws,
|
|
154
|
+
* and it is a client leaf for the same reason.
|
|
155
|
+
*/
|
|
156
|
+
export function SettingsNotifications01({ eyebrow, title, description, channels, onToggle, updateLabel, disabledLabel, empty, headingLevel = 'h2', className, }) {
|
|
157
|
+
assertProps({ channels, onToggle, updateLabel, disabledLabel });
|
|
158
|
+
// A channel is a group inside the section, so its name is one level below the
|
|
159
|
+
// section's own heading and travels with it when the Block is composed deeper.
|
|
160
|
+
const ChannelTitle = childLevel(headingLevel);
|
|
161
|
+
const base = useId();
|
|
162
|
+
const noteId = disabledLabel === undefined ? undefined : `${base}-note`;
|
|
163
|
+
// Whether there is anything at all to decide, which is a fact about the data
|
|
164
|
+
// rather than a prop a caller has to keep in step with the channels.
|
|
165
|
+
const hasEvents = channels.some((channel) => channel.events.length > 0);
|
|
166
|
+
if (!hasEvents) {
|
|
167
|
+
return (_jsxs(Section, { className: className, "data-slot": "settings-notifications", children: [_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description }), _jsx("p", { "data-slot": "settings-notifications-empty", className: "text-muted-foreground text-pretty text-sm", children: empty })] }));
|
|
168
|
+
}
|
|
169
|
+
return (_jsxs(Section, { className: className, "data-slot": "settings-notifications", children: [_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description, className: "mb-8" }), noteId === undefined ? null : (_jsx("p", { id: noteId, "data-slot": "settings-notifications-note", className: "text-muted-foreground mb-8 text-pretty text-sm", children: disabledLabel })), _jsx("div", { "data-slot": "settings-notifications-channels", className: "flex flex-col gap-10", children: channels.map((channel) => {
|
|
170
|
+
if (channel.events.length === 0)
|
|
171
|
+
return null;
|
|
172
|
+
return (_jsxs("section", { "data-slot": "settings-notifications-channel", "data-channel": channel.id, className: "flex flex-col gap-5", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(ChannelTitle, { "data-slot": "settings-notifications-channel-name", className: "text-lg font-semibold tracking-tight", children: channel.name }), channel.description === undefined ? null : (_jsx("p", { className: "text-muted-foreground text-pretty text-sm", children: channel.description }))] }), _jsx("ul", { "data-slot": "settings-notifications-events", className: "flex flex-col", children: channel.events.map((event) => {
|
|
173
|
+
const controlId = `${base}-${channel.id}-${event.id}`;
|
|
174
|
+
const required = event.required === true;
|
|
175
|
+
const descriptionId = event.description === undefined ? undefined : `${controlId}-description`;
|
|
176
|
+
/*
|
|
177
|
+
* Up to two referrers, one attribute, assembled rather than chosen
|
|
178
|
+
* between. The event's own description says what the event is and
|
|
179
|
+
* what it carries, and the note says why a control will not move; a
|
|
180
|
+
* read-only event has both, and a reader who meets one without the
|
|
181
|
+
* other has to guess which half they are missing. Assembled from
|
|
182
|
+
* templates rather than from a `join`, for the reason
|
|
183
|
+
* `MultiCombobox` gives for its own pair: a bare separator literal
|
|
184
|
+
* is a string the copy gate reads as a space somebody typed.
|
|
185
|
+
*/
|
|
186
|
+
const describedBy = descriptionId === undefined
|
|
187
|
+
? required
|
|
188
|
+
? noteId
|
|
189
|
+
: undefined
|
|
190
|
+
: required && noteId !== undefined
|
|
191
|
+
? `${descriptionId} ${noteId}`
|
|
192
|
+
: descriptionId;
|
|
193
|
+
const describedByIds = describedBy === '' ? undefined : describedBy;
|
|
194
|
+
return (_jsxs("li", { "data-slot": "settings-notifications-event", "data-event": event.id, "data-required": required ? 'true' : undefined, className: "border-border flex flex-col gap-3 border-b py-4 last:border-b-0 sm:flex-row sm:items-start sm:justify-between sm:gap-6", children: [_jsxs(Field, { className: "min-w-0 gap-1", children: [_jsx(FieldLabel, { htmlFor: controlId, className: "text-base", children: event.label }), event.description === undefined ? null : (_jsx(FieldDescription, { id: descriptionId, children: event.description }))] }), _jsxs("div", { "data-slot": "settings-notifications-control", className: "flex shrink-0 items-center gap-3 pt-0.5 sm:pt-1", children: [required && event.requiredLabel === undefined ? null : (_jsx("span", { "data-slot": "settings-notifications-required", className: "text-muted-foreground text-xs font-medium", children: event.requiredLabel })), _jsx(Switch, { id: controlId, checked: event.on, readOnly: required, "aria-label": required || updateLabel === undefined
|
|
195
|
+
? undefined
|
|
196
|
+
: updateLabel(channel, event, !event.on), "aria-describedby": describedByIds, onCheckedChange: onToggle === undefined
|
|
197
|
+
? undefined
|
|
198
|
+
: (next) => onToggle(channel.id, event.id, next) })] })] }, event.id));
|
|
199
|
+
}) })] }, channel.id));
|
|
200
|
+
}) })] }));
|
|
201
|
+
}
|
|
202
|
+
export default SettingsNotifications01;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { SettingsSecurity01, default } from './settings-security.js';
|
|
2
|
+
export type { SettingsSecurity01Props, SettingsSecurityChangePassword, SettingsSecurityLabels, SettingsSecurityMethod, SettingsSecurityMethodState, SettingsSecurityPasswordField, SettingsSecuritySession, SettingsSecurityTwoFactor, SettingsSecurityTwoFactorState, } from './settings-security.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/settings-security-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMjE,YAAY,EACV,uBAAuB,EACvB,8BAA8B,EAC9B,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SettingsSecurity01, default } from './settings-security.js';
|
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* Where a sign-in method stands.
|
|
5
|
+
*
|
|
6
|
+
* `pending` is the member that is not a binary, and the Block's JSDoc says what
|
|
7
|
+
* it does with it: a setup that is half finished is not a setting that is on, and
|
|
8
|
+
* a control drawn on it would let a reader turn off something that was never on.
|
|
9
|
+
*/
|
|
10
|
+
export type SettingsSecurityMethodState = 'enabled' | 'disabled' | 'pending';
|
|
11
|
+
/**
|
|
12
|
+
* Where a second factor stands.
|
|
13
|
+
*
|
|
14
|
+
* `enrolled` is the third answer and it is the one a two-state surface cannot
|
|
15
|
+
* give: a secret has been generated and the reader has not yet confirmed it, so
|
|
16
|
+
* the account is neither protected nor unprotected and the honest word is neither
|
|
17
|
+
* on nor off.
|
|
18
|
+
*/
|
|
19
|
+
export type SettingsSecurityTwoFactorState = 'on' | 'off' | 'enrolled';
|
|
20
|
+
/**
|
|
21
|
+
* One way a reader can prove who they are.
|
|
22
|
+
*
|
|
23
|
+
* A method and not a credential: the Block never sees a secret, and the words in
|
|
24
|
+
* every field here are the product's statements about its own authentication.
|
|
25
|
+
*/
|
|
26
|
+
export type SettingsSecurityMethod = {
|
|
27
|
+
/** A stable key for the row, passed back to `onMethodChange`, and carried as `data-method`. */
|
|
28
|
+
id: string;
|
|
29
|
+
/** The method's own name, as the product writes it: a passkey, a phrase, a code. */
|
|
30
|
+
name: string;
|
|
31
|
+
/** Where the method stands. Required, because a row with no state cannot be acted on. */
|
|
32
|
+
state: SettingsSecurityMethodState;
|
|
33
|
+
/**
|
|
34
|
+
* The words for the state, in the product's own vocabulary.
|
|
35
|
+
*
|
|
36
|
+
* Required whenever `state` is given, which is always, and a thrown diagnostic
|
|
37
|
+
* rather than a silent absence, for the reason `Status` states in full: the tone
|
|
38
|
+
* is a colour and the words are the information.
|
|
39
|
+
*/
|
|
40
|
+
stateLabel?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The line under the method's name: where the secret is kept, when it was last
|
|
43
|
+
* used, what turning it on will ask for.
|
|
44
|
+
*
|
|
45
|
+
* A node because half of the useful sentences in this position carry a link to
|
|
46
|
+
* the document that explains the method, and a caller who has to flatten theirs
|
|
47
|
+
* to a string loses it.
|
|
48
|
+
*/
|
|
49
|
+
detail?: ReactNode;
|
|
50
|
+
/**
|
|
51
|
+
* The line naming when this method was added, already written as it should be
|
|
52
|
+
* read.
|
|
53
|
+
*
|
|
54
|
+
* A string rather than a moment and a formatter for the reason the other Blocks
|
|
55
|
+
* in this wave take it: a Block that formatted the moment would be choosing a
|
|
56
|
+
* locale and a granularity on a reader's behalf. A caller who wants "three months
|
|
57
|
+
* ago" composes `relative-time` and passes the reading.
|
|
58
|
+
*/
|
|
59
|
+
addedLabel?: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* One field of the change-password form, and which of the three it is.
|
|
63
|
+
*
|
|
64
|
+
* The union of three is what lets the Block make the reveal decision per field,
|
|
65
|
+
* which is the decision this Block's JSDoc argues for at length.
|
|
66
|
+
*/
|
|
67
|
+
export type SettingsSecurityPasswordField = {
|
|
68
|
+
/** A stable key for the field, and the element's `id`. */
|
|
69
|
+
id: string;
|
|
70
|
+
/** The field's own label, as the product writes it. */
|
|
71
|
+
label: string;
|
|
72
|
+
/**
|
|
73
|
+
* Which of the three fields this is.
|
|
74
|
+
*
|
|
75
|
+
* The name is a machine value and the arrangement is the whole of it: a `current`
|
|
76
|
+
* field is the one a reader is proving they know a secret, and a `new` or
|
|
77
|
+
* `confirm` field is the one they are about to retype. The Block draws a reveal
|
|
78
|
+
* control on the second kind and not on the first, and the Block's JSDoc gives
|
|
79
|
+
* the reason in full.
|
|
80
|
+
*/
|
|
81
|
+
type: 'current' | 'new' | 'confirm';
|
|
82
|
+
/**
|
|
83
|
+
* The form field name the platform's password manager offers to save.
|
|
84
|
+
*
|
|
85
|
+
* Defaults to the right hint for the field's own kind, which is the arrangement
|
|
86
|
+
* `PasswordField` insists on and the reason this prop exists at all: a
|
|
87
|
+
* `current` field wants `current-password` and the other two want `new-password`,
|
|
88
|
+
* and getting it wrong on a new password produces an account the browser will
|
|
89
|
+
* not offer to sign in with.
|
|
90
|
+
*/
|
|
91
|
+
autoComplete?: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* The change-password form, and everything the caller has to say about it.
|
|
95
|
+
*
|
|
96
|
+
* `revealLabel` and `hideLabel` are here rather than being defaulted because they
|
|
97
|
+
* cannot be defaulted: a reveal control that says one sentence in a product whose
|
|
98
|
+
* interface is in another language is the defect the Component's own JSDoc was
|
|
99
|
+
* written against, and a Block that filled them in would be shipping English into
|
|
100
|
+
* every consumer's password field.
|
|
101
|
+
*/
|
|
102
|
+
export type SettingsSecurityChangePassword = {
|
|
103
|
+
/** The three fields, in the order a reader should meet them. */
|
|
104
|
+
fields: readonly SettingsSecurityPasswordField[];
|
|
105
|
+
/**
|
|
106
|
+
* Called with the three entries when the reader submits the form.
|
|
107
|
+
*
|
|
108
|
+
* The Block holds the values only long enough to hand them over, and it hands
|
|
109
|
+
* over all three whatever the form is missing, so a caller that renders two
|
|
110
|
+
* fields still receives a `confirm` of the empty string rather than `undefined`.
|
|
111
|
+
*/
|
|
112
|
+
onSubmit: (value: {
|
|
113
|
+
current: string;
|
|
114
|
+
next: string;
|
|
115
|
+
confirm: string;
|
|
116
|
+
}) => void;
|
|
117
|
+
/** The words on the submit control. */
|
|
118
|
+
submitLabel: string;
|
|
119
|
+
/**
|
|
120
|
+
* The accessible name of a reveal control while the password is hidden.
|
|
121
|
+
*
|
|
122
|
+
* Required, and a prop rather than a default for the reason
|
|
123
|
+
* `PasswordField.revealLabel` gives in full.
|
|
124
|
+
*/
|
|
125
|
+
revealLabel: string;
|
|
126
|
+
/**
|
|
127
|
+
* The accessible name of a reveal control while the password is showing.
|
|
128
|
+
*
|
|
129
|
+
* Required as a second sentence rather than as a state flag, because the name
|
|
130
|
+
* has to describe what pressing the control will do rather than what is
|
|
131
|
+
* currently true.
|
|
132
|
+
*/
|
|
133
|
+
hideLabel: string;
|
|
134
|
+
/**
|
|
135
|
+
* What the product has to say about the change, after the reader pressed the
|
|
136
|
+
* control.
|
|
137
|
+
*
|
|
138
|
+
* The state is the caller's, so a form that shows a failure is showing a truth
|
|
139
|
+
* the Block cannot know, and the `error` state takes `role="alert"` so the
|
|
140
|
+
* message is announced when it appears rather than when the reader finds it.
|
|
141
|
+
*/
|
|
142
|
+
status?: {
|
|
143
|
+
state: 'idle' | 'sending' | 'done' | 'error';
|
|
144
|
+
message: ReactNode;
|
|
145
|
+
};
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* One place a session is signed in from.
|
|
149
|
+
*
|
|
150
|
+
* A device and not a browser, and no address, because a security surface that
|
|
151
|
+
* shows a reader their own IP addresses is showing them something they cannot act
|
|
152
|
+
* on and did not ask for.
|
|
153
|
+
*/
|
|
154
|
+
export type SettingsSecuritySession = {
|
|
155
|
+
/** A stable key for the row, passed back to `onRevokeSession`, and carried as `data-session`. */
|
|
156
|
+
id: string;
|
|
157
|
+
/** The device, as the product describes it. */
|
|
158
|
+
device: string;
|
|
159
|
+
/** Where the session was opened, in the product's own terms. */
|
|
160
|
+
location?: string;
|
|
161
|
+
/**
|
|
162
|
+
* When the session began, in whichever of the two forms the caller already has
|
|
163
|
+
* it. Printed exactly as passed.
|
|
164
|
+
*/
|
|
165
|
+
startedAt?: number | string;
|
|
166
|
+
/**
|
|
167
|
+
* The words for the start, given the moment. A function because the honest
|
|
168
|
+
* reading is a localised sentence.
|
|
169
|
+
*/
|
|
170
|
+
startedAtLabel?: (value: number | string) => string;
|
|
171
|
+
/**
|
|
172
|
+
* Marks the session the reader is currently signed in through.
|
|
173
|
+
*
|
|
174
|
+
* The mark changes no control. See the Block's JSDoc for why revocation is
|
|
175
|
+
* offered on this row anyway, which is the part of this Block most likely to be
|
|
176
|
+
* got wrong.
|
|
177
|
+
*/
|
|
178
|
+
isCurrent?: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* The words that mark the reader's own session.
|
|
181
|
+
*
|
|
182
|
+
* Required whenever `isCurrent` is set, and a thrown diagnostic rather than a
|
|
183
|
+
* silent absence: a row the Block has decided is the reader's own, marked by
|
|
184
|
+
* nothing a reader can see, is a claim with no document to check it against.
|
|
185
|
+
*/
|
|
186
|
+
currentLabel?: string;
|
|
187
|
+
/**
|
|
188
|
+
* The caller's own control for this row, in place of the Block's revoke
|
|
189
|
+
* control.
|
|
190
|
+
*
|
|
191
|
+
* A slot because revoking a session is an action a product usually confirms, and
|
|
192
|
+
* the confirmation is the product's: a sheet on some surfaces, a toast on
|
|
193
|
+
* others, and on a security surface a bare click is not a confirmation.
|
|
194
|
+
*/
|
|
195
|
+
revoke?: ReactNode;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* The second factor's state, and the caller's own control for it.
|
|
199
|
+
*
|
|
200
|
+
* A named type and not an inline object, for the ordinary reason: a consumer
|
|
201
|
+
* assembling a security surface in its own module has to be able to declare this
|
|
202
|
+
* shape once and hand the same object to the Block.
|
|
203
|
+
*/
|
|
204
|
+
export type SettingsSecurityTwoFactor = {
|
|
205
|
+
/** Where the second factor stands. */
|
|
206
|
+
state: SettingsSecurityTwoFactorState;
|
|
207
|
+
/**
|
|
208
|
+
* The words for the state, in the product's own vocabulary.
|
|
209
|
+
*
|
|
210
|
+
* Required whenever `state` is given, which is always, and a thrown diagnostic
|
|
211
|
+
* rather than a silent absence: this is the most load-bearing control on the page
|
|
212
|
+
* and a coloured dot with nothing beside it is a claim about the reader's account
|
|
213
|
+
* that nothing in the document backs up.
|
|
214
|
+
*/
|
|
215
|
+
stateLabel?: string;
|
|
216
|
+
/**
|
|
217
|
+
* The control that moves the second factor, because it is a different control in
|
|
218
|
+
* each of the three states: enroll, turn on, turn off. A Block that chose would be
|
|
219
|
+
* choosing for every product that has one.
|
|
220
|
+
*/
|
|
221
|
+
action?: ReactNode;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* The four group names, all optional, and the reason they are optional is the
|
|
225
|
+
* Block's JSDoc.
|
|
226
|
+
*
|
|
227
|
+
* A caller who names a group gets a real heading one level below the section; a
|
|
228
|
+
* caller who names none gets a section of rows under the section heading, which
|
|
229
|
+
* is the right arrangement for the common case of a product with one group.
|
|
230
|
+
*/
|
|
231
|
+
export type SettingsSecurityLabels = {
|
|
232
|
+
/** Above the sign-in methods. */
|
|
233
|
+
methods?: ReactNode;
|
|
234
|
+
/** The card's title, on the change-password form. */
|
|
235
|
+
password?: ReactNode;
|
|
236
|
+
/** Above the sessions list. */
|
|
237
|
+
sessions?: ReactNode;
|
|
238
|
+
/** Above the second-factor row. */
|
|
239
|
+
twoFactor?: ReactNode;
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* The props a SettingsSecurity01 takes.
|
|
243
|
+
*
|
|
244
|
+
* Every string is a prop and the Block ships none. There is no method list, no
|
|
245
|
+
* session list, no device vocabulary, no state word, no field label, no submit
|
|
246
|
+
* sentence, no reveal sentence and not one of the sentences a security surface is
|
|
247
|
+
* most tempted to ship. A security surface is where a hardcoded word is least
|
|
248
|
+
* excusable and most likely, because the reader is reading about their own
|
|
249
|
+
* account and assumes every word on the page was chosen for them.
|
|
250
|
+
*/
|
|
251
|
+
export type SettingsSecurity01Props = {
|
|
252
|
+
/** Optional label above the section title. See the No-Default-Eyebrow Rule. */
|
|
253
|
+
eyebrow?: ReactNode;
|
|
254
|
+
/** The section title. Required, because a security surface with no heading is a fragment. */
|
|
255
|
+
title: ReactNode;
|
|
256
|
+
/** One or two sentences under the title. */
|
|
257
|
+
description?: ReactNode;
|
|
258
|
+
/**
|
|
259
|
+
* The names of the four groups this surface can draw.
|
|
260
|
+
*
|
|
261
|
+
* All four optional, and the reason is in the Block's JSDoc: a group with no name
|
|
262
|
+
* is not a mystery, and four required names would be four sentences a consumer
|
|
263
|
+
* writes for groups they may not have. A group whose name is passed becomes a
|
|
264
|
+
* real heading at `childLevel(headingLevel)`; a group whose name is not passed
|
|
265
|
+
* draws no heading and is a set of rows under the section's own.
|
|
266
|
+
*/
|
|
267
|
+
labels?: SettingsSecurityLabels;
|
|
268
|
+
/** The sign-in methods, in the order a reader should meet them. */
|
|
269
|
+
methods: readonly SettingsSecurityMethod[];
|
|
270
|
+
/**
|
|
271
|
+
* Called when a reader turns a method on or off.
|
|
272
|
+
*
|
|
273
|
+
* A request and not a mutation, for the same reason as the other Blocks in this
|
|
274
|
+
* wave: the row's state comes from the data, so a control that moved and rolled
|
|
275
|
+
* back would show a reader a method state the product did not change.
|
|
276
|
+
*/
|
|
277
|
+
onMethodChange?: (id: string) => void;
|
|
278
|
+
/**
|
|
279
|
+
* The accessible name of a method's control, given the method and the state the
|
|
280
|
+
* control would move to.
|
|
281
|
+
*
|
|
282
|
+
* Required whenever `onMethodChange` is set, and a function for the reasons
|
|
283
|
+
* `SettingsNotifications01.updateLabel` is one: a control's accessible name has
|
|
284
|
+
* to say what pressing it does, and the sentence has to contain the method's own
|
|
285
|
+
* name because that is the visible label of the control and the WCAG rule that a
|
|
286
|
+
* visible label must be inside the accessible name is what lets a reader using
|
|
287
|
+
* voice control act on the words they can see.
|
|
288
|
+
*
|
|
289
|
+
* It is not consulted for a method in the `pending` state, which draws no
|
|
290
|
+
* control at all, for the reason the Block's JSDoc gives.
|
|
291
|
+
*/
|
|
292
|
+
methodToggleLabel?: (method: {
|
|
293
|
+
id: string;
|
|
294
|
+
name: string;
|
|
295
|
+
}, on: boolean) => string;
|
|
296
|
+
/**
|
|
297
|
+
* The change-password form. Omit it and the card is not drawn, which is right
|
|
298
|
+
* for a product that authenticates entirely by a method this Block already
|
|
299
|
+
* lists.
|
|
300
|
+
*/
|
|
301
|
+
changePassword?: SettingsSecurityChangePassword;
|
|
302
|
+
/**
|
|
303
|
+
* The sessions this workspace is signed in from. Omit the group and it is not
|
|
304
|
+
* drawn.
|
|
305
|
+
*/
|
|
306
|
+
sessions?: readonly SettingsSecuritySession[];
|
|
307
|
+
/**
|
|
308
|
+
* Called when a reader revokes a session.
|
|
309
|
+
*
|
|
310
|
+
* Offered on every row, including the reader's own. See the Block's JSDoc.
|
|
311
|
+
*/
|
|
312
|
+
onRevokeSession?: (id: string) => void;
|
|
313
|
+
/**
|
|
314
|
+
* The words on a revoke control, given the session.
|
|
315
|
+
*
|
|
316
|
+
* Required whenever `onRevokeSession` is set, and a function because a column of
|
|
317
|
+
* controls all announced as "Revoke" is a column a screen reader user cannot act
|
|
318
|
+
* on, and because the honest sentence names the device: "Revoke the session on a
|
|
319
|
+
* work laptop" and "Revoke the session on a phone" are different consequences.
|
|
320
|
+
*/
|
|
321
|
+
revokeLabel?: (session: {
|
|
322
|
+
id: string;
|
|
323
|
+
device: string;
|
|
324
|
+
}) => string;
|
|
325
|
+
/**
|
|
326
|
+
* The second factor's state, and the caller's own control for it.
|
|
327
|
+
*
|
|
328
|
+
* Omit it and the row is not drawn, which is right for a product with no second
|
|
329
|
+
* factor at all.
|
|
330
|
+
*/
|
|
331
|
+
twoFactor?: SettingsSecurityTwoFactor;
|
|
332
|
+
/**
|
|
333
|
+
* What the surface shows when there are no methods.
|
|
334
|
+
*
|
|
335
|
+
* Required, and the reason is the one the other Blocks in this wave take: a
|
|
336
|
+
* workspace with no way to sign in and a workspace whose methods failed to load
|
|
337
|
+
* are not the same page.
|
|
338
|
+
*/
|
|
339
|
+
empty: ReactNode;
|
|
340
|
+
/** Heading level for the section title. @defaultValue 'h2' */
|
|
341
|
+
headingLevel?: HeadingLevel;
|
|
342
|
+
/**
|
|
343
|
+
* Layout only, exactly as on every Block. Changing a Prism-owned visual
|
|
344
|
+
* property from here is prohibited.
|
|
345
|
+
*/
|
|
346
|
+
className?: string;
|
|
347
|
+
};
|
|
348
|
+
/**
|
|
349
|
+
* The security surface of a workspace: the ways in, the form that changes the one
|
|
350
|
+
* secret a reader is most likely to have forgotten, the places it is signed in
|
|
351
|
+
* from, and whether there is a second factor.
|
|
352
|
+
*
|
|
353
|
+
* **A settings surface is where a design system's care is most visible and least
|
|
354
|
+
* appreciated, and this is the one where the stakes of a small mistake are
|
|
355
|
+
* highest.** The reader came to change one thing and leave. They came because
|
|
356
|
+
* something worried them: a login they do not recognise, a device they do not
|
|
357
|
+
* own, a warning they read somewhere else. They are not reading this page, they
|
|
358
|
+
* are checking it, and the two or three questions they arrived with are answered
|
|
359
|
+
* somewhere in it. Everything below is arranged so that those questions are
|
|
360
|
+
* answerable without reading anything twice and without finding that the page
|
|
361
|
+
* moved while they were on it.
|
|
362
|
+
*
|
|
363
|
+
* **The reveal control is on the new password and the confirmation, and not on
|
|
364
|
+
* the current one, and the reason is what each field is for.** A reader retyping
|
|
365
|
+
* a password they have just chosen needs to see the characters, because they are
|
|
366
|
+
* checking their own memory of what they typed and the failure they are guarding
|
|
367
|
+
* against is a single wrong character in a string they cannot read. A reader
|
|
368
|
+
* typing the password they set six months ago is doing the opposite: they are
|
|
369
|
+
* proving they know a secret, and a reveal control on that field turns the proof
|
|
370
|
+
* into a lookup. Put it there and the field stops being a check, it becomes a
|
|
371
|
+
* read, and a password change is exactly the moment at which an observer over a
|
|
372
|
+
* reader's shoulder is most likely to be looking. The arrangement also matches
|
|
373
|
+
* what the platform already knows: the current field is the one a password manager
|
|
374
|
+
* can fill, and the other two are the ones it must offer to save.
|
|
375
|
+
*
|
|
376
|
+
* **A method that is pending draws no control, because a half-finished setup is
|
|
377
|
+
* not a setting that is on.** The three states are not a boolean with an extra
|
|
378
|
+
* case, and a switch drawn on a pending method would be a control offering to turn
|
|
379
|
+
* off something that was never on, in a panel whose whole job is to tell a reader
|
|
380
|
+
* what is protecting their account. A pending method is a device that asked to be
|
|
381
|
+
* added and has not been confirmed, and the only honest thing to draw beside it
|
|
382
|
+
* is the caller's words about that, and the reader's own control for finishing it.
|
|
383
|
+
*
|
|
384
|
+
* **The revoke control is offered on the session the reader is in, and that is the
|
|
385
|
+
* decision most likely to be got wrong.** Every instinct on a security page is to
|
|
386
|
+
* withhold the dangerous control from the row the reader is sitting on, and the
|
|
387
|
+
* instinct is wrong for a reason that has nothing to do with the interface: a
|
|
388
|
+
* reader who wants to end the session they are in is a reader who will find
|
|
389
|
+
* another way. They will ask an administrator, or they will sign out everywhere and
|
|
390
|
+
* guess, or they will simply carry on, and the third is the common one and the one
|
|
391
|
+
* that leaves the thing they were worried about open. Withholding the control does
|
|
392
|
+
* not remove the wish, it removes the honest route to it, and what it leaves behind
|
|
393
|
+
* is a support ticket and a still-open session. So the control is drawn on every
|
|
394
|
+
* row, and the mark on the reader's own row says which one they are in, so the
|
|
395
|
+
* consequence is legible rather than surprising. What the Block does not do is
|
|
396
|
+
* confirm: a bare click that signs the reader out of the page they are reading is
|
|
397
|
+
* not a confirmation, and the caller's `revoke` slot is where that belongs.
|
|
398
|
+
*
|
|
399
|
+
* **The three entries are handed over together whatever the form contains, and the
|
|
400
|
+
* form holds them only long enough to hand them over.** A caller who renders two
|
|
401
|
+
* fields receives a `confirm` of the empty string rather than `undefined`, because
|
|
402
|
+
* a value that is sometimes a string and sometimes absent is a value every caller
|
|
403
|
+
* has to narrow before it can use, and a password is not a value to narrow. The
|
|
404
|
+
* Block clears the three entries when the caller's status becomes `done`, which is
|
|
405
|
+
* the one piece of state it keeps about them, and that is a decision rather than an
|
|
406
|
+
* omission: a new password sitting in a form on a page about the reader's security
|
|
407
|
+
* is a worse thing than a caller who wanted to keep it, and the caller's `status`
|
|
408
|
+
* prop is exactly where the truth about the change lives.
|
|
409
|
+
*
|
|
410
|
+
* **The second factor has three states, and the third is the one a two-state
|
|
411
|
+
* surface cannot give.** A secret has been generated and the reader has not
|
|
412
|
+
* confirmed it, so the account is neither protected nor unprotected, and a surface
|
|
413
|
+
* offering only on and off makes a consumer draw an enrolled account as one of the
|
|
414
|
+
* two, which is either a false claim of protection or a false claim of exposure.
|
|
415
|
+
* The tone for it is `info` and for an off factor `neutral`, because turning a
|
|
416
|
+
* second factor off is a decision a reader is allowed to make on an account they
|
|
417
|
+
* control, and a page that alarms about it is a page that nags about something
|
|
418
|
+
* legal.
|
|
419
|
+
*
|
|
420
|
+
* **The four group names are optional, and the reason is that a group with no name
|
|
421
|
+
* is not a mystery.** A caller who names a group gets a real heading one level
|
|
422
|
+
* below the section's own, and a caller who names none gets a section of rows
|
|
423
|
+
* under the section heading, which is the right arrangement for the common case of
|
|
424
|
+
* a product with one group and no second factor. The alternative, four required
|
|
425
|
+
* names, is four sentences a consumer writes for a page they may not have: a
|
|
426
|
+
* product with no second factor would have to name that group's heading to satisfy
|
|
427
|
+
* a type, and the name would then sit in their source describing something they do
|
|
428
|
+
* not render. The cost is stated rather than hidden: a Block with four groups and
|
|
429
|
+
* no names is four lists under one heading, and a reader navigating by heading
|
|
430
|
+
* finds one entry where there are four regions. That is the caller's arrangement
|
|
431
|
+
* to make and easy to correct by passing four words.
|
|
432
|
+
*
|
|
433
|
+
* It is a client Component, and the directive is unconditional: the form holds
|
|
434
|
+
* state, the controls attach handlers, and a surface that owns either owns the
|
|
435
|
+
* JavaScript that carries it.
|
|
436
|
+
*/
|
|
437
|
+
export declare function SettingsSecurity01({ eyebrow, title, description, labels, methods, onMethodChange, methodToggleLabel, changePassword, sessions, onRevokeSession, revokeLabel, twoFactor, empty, headingLevel, className, }: SettingsSecurity01Props): import("react").JSX.Element;
|
|
438
|
+
export default SettingsSecurity01;
|
|
439
|
+
//# sourceMappingURL=settings-security.d.ts.map
|