@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,282 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* One role, and everything the matrix needs to say about it beyond its name.
|
|
5
|
+
*
|
|
6
|
+
* `name` is a plain string and not a node, which is the one thing here that is
|
|
7
|
+
* not obvious, and the reason is on `PermissionMatrixColumn.header`: the header is
|
|
8
|
+
* display content and may carry a badge, a count styled as part of it, a node with
|
|
9
|
+
* a link in it, and `name` is what `valueLabel` composes an accessible sentence
|
|
10
|
+
* with. Those are two different jobs and one of them cannot be done with a node.
|
|
11
|
+
*/
|
|
12
|
+
export type PermissionMatrixRole = {
|
|
13
|
+
/** Stable identity. Matched by `columns`, which is what puts the role in the table. */
|
|
14
|
+
id: string;
|
|
15
|
+
/**
|
|
16
|
+
* The role's own name, in the product's own vocabulary, and the string handed to
|
|
17
|
+
* `valueLabel`.
|
|
18
|
+
*
|
|
19
|
+
* A short noun phrase, because a column of five role names is a column a reader
|
|
20
|
+
* scans rather than reads, and a name that wraps is a column whose cells sit
|
|
21
|
+
* against two lines of header.
|
|
22
|
+
*/
|
|
23
|
+
name: string;
|
|
24
|
+
/** The line under the role's name: what the role is for, and what it inherits. */
|
|
25
|
+
description?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* How many people hold the role, when the product knows.
|
|
28
|
+
*
|
|
29
|
+
* A number and not a node because it is a count the product holds, and Prism
|
|
30
|
+
* formats no number here; the sentence around it is `countLabel`.
|
|
31
|
+
*/
|
|
32
|
+
count?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The words for the count, given the number.
|
|
35
|
+
*
|
|
36
|
+
* Required whenever `count` is given, because a bare figure in a heading is a
|
|
37
|
+
* number a reader has to guess the unit of, which is the one thing a headline
|
|
38
|
+
* figure cannot afford and the reason `metric` takes a node for its value.
|
|
39
|
+
*/
|
|
40
|
+
countLabel?: (count: number) => string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* One column of the matrix, which is one role.
|
|
44
|
+
*
|
|
45
|
+
* The words above the column are the caller's and are a node, and the role's own
|
|
46
|
+
* name beside them in the `roles` array is a string. The split is the whole design
|
|
47
|
+
* and it is worth one sentence: a column heading is display content, and the
|
|
48
|
+
* commonest thing a consumer puts in one is a count rendered as part of it or a
|
|
49
|
+
* badge marking the role they are being walked towards, either of which is a node
|
|
50
|
+
* and neither of which is a string a sentence can be composed from. So the header
|
|
51
|
+
* is a node and `roles[].name` is the plain string, and the two are matched by
|
|
52
|
+
* `id`.
|
|
53
|
+
*/
|
|
54
|
+
export type PermissionMatrixColumn = {
|
|
55
|
+
/** The role's `id`. A column with no role, or a role with no column, is refused. */
|
|
56
|
+
id: string;
|
|
57
|
+
/** The words above this role's column. */
|
|
58
|
+
header: ReactNode;
|
|
59
|
+
/** Layout only: a width. */
|
|
60
|
+
className?: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* One permission, and one answer per role.
|
|
64
|
+
*
|
|
65
|
+
* `values` is positional and its length must equal the number of roles, and the
|
|
66
|
+
* reason a mismatch is a thrown diagnostic rather than a short row is the Block's
|
|
67
|
+
* own JSDoc: a permission matrix is the surface where a mistake is most expensive,
|
|
68
|
+
* and a role quietly given no answer is a role a reader believes is refused.
|
|
69
|
+
*/
|
|
70
|
+
export type PermissionMatrixPermission = {
|
|
71
|
+
/** Stable identity, used for the row's key. */
|
|
72
|
+
id: string;
|
|
73
|
+
/**
|
|
74
|
+
* The permission's own name, and the row header the table announces.
|
|
75
|
+
*
|
|
76
|
+
* A short noun phrase in the imperative a product's own settings page uses. This
|
|
77
|
+
* is the cell a reader navigates to, and the one they read first, because it is
|
|
78
|
+
* the question they arrived with.
|
|
79
|
+
*/
|
|
80
|
+
label: string;
|
|
81
|
+
/**
|
|
82
|
+
* The line under the permission's name: what it reaches, what turning it on
|
|
83
|
+
* costs, why it is conditional for one role.
|
|
84
|
+
*
|
|
85
|
+
* A node because the conditional cell in this matrix almost always carries a
|
|
86
|
+
* reference, and a caller who has to flatten theirs to a string loses the link
|
|
87
|
+
* that explains the condition.
|
|
88
|
+
*/
|
|
89
|
+
description?: ReactNode;
|
|
90
|
+
/**
|
|
91
|
+
* One answer per role, in the order the columns were given.
|
|
92
|
+
*
|
|
93
|
+
* The union is the whole design of the cell and the Block's JSDoc argues for its
|
|
94
|
+
* third member at length: `true` is granted, `false` is refused, and a string is
|
|
95
|
+
* anything else, which is a category of its own rather than a spelling of the
|
|
96
|
+
* first two.
|
|
97
|
+
*/
|
|
98
|
+
values: readonly (boolean | string)[];
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* A band of permissions under one name.
|
|
102
|
+
*
|
|
103
|
+
* Groups are the caller's because grouping is a claim about how the permissions
|
|
104
|
+
* relate, which is a fact about the product's own model and not about the matrix.
|
|
105
|
+
* Most matrices are one group, and that is a legitimate answer: pass one group with
|
|
106
|
+
* an empty `title` and it is the only row of headers the table carries.
|
|
107
|
+
*/
|
|
108
|
+
export type PermissionMatrixGroup = {
|
|
109
|
+
/** The group's own name, as the caller writes it. */
|
|
110
|
+
title: string;
|
|
111
|
+
/** The permissions in this group, in the order a reader should meet them. */
|
|
112
|
+
permissions: readonly PermissionMatrixPermission[];
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* The three marks and the words they answer with.
|
|
116
|
+
*
|
|
117
|
+
* All three required, and the reason is the one `PricingCompare01Labels` is built
|
|
118
|
+
* on: three marks in a matrix with no key is a matrix nobody can read. A check and
|
|
119
|
+
* a cross and a question mark are three shapes a reader learns once and applies
|
|
120
|
+
* forty times, and a matrix is the one place on a page where a reader is expected
|
|
121
|
+
* to apply a shape forty times. Without the key the third shape in particular is
|
|
122
|
+
* unreadable, because a question mark is a thing that went wrong to most readers
|
|
123
|
+
* and a condition to a few, and the reader has no way to find out which this is.
|
|
124
|
+
*/
|
|
125
|
+
export type PermissionMatrixLegend = {
|
|
126
|
+
/** Announced beside the check in a granted cell. */
|
|
127
|
+
allowed: string;
|
|
128
|
+
/** Announced beside the cross in a refused cell. */
|
|
129
|
+
denied: string;
|
|
130
|
+
/** Announced beside the question mark in a cell that depends on something else. */
|
|
131
|
+
conditional: string;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* The props a PermissionMatrix01 takes.
|
|
135
|
+
*
|
|
136
|
+
* Every string is a prop and the Block ships none. There is no role, no
|
|
137
|
+
* permission, no cell value, no group name, no count sentence and not one of the
|
|
138
|
+
* three words a cell answers with. A permission matrix is the densest arrangement
|
|
139
|
+
* of claims a product makes about itself, and it is the arrangement where one
|
|
140
|
+
* hardcoded word is hardest to notice, because the reader is looking at forty cells
|
|
141
|
+
* and reading none of them.
|
|
142
|
+
*/
|
|
143
|
+
export type PermissionMatrix01Props = {
|
|
144
|
+
/** Optional label above the section title. See the No-Default-Eyebrow Rule. */
|
|
145
|
+
eyebrow?: ReactNode;
|
|
146
|
+
/** The section title. Required, because a matrix with no heading is a fragment. */
|
|
147
|
+
title: ReactNode;
|
|
148
|
+
/** One or two sentences under the title. */
|
|
149
|
+
description?: ReactNode;
|
|
150
|
+
/**
|
|
151
|
+
* The columns, one per role, in the order a reader should meet them.
|
|
152
|
+
*
|
|
153
|
+
* Required, and the `id` of each is matched against `roles`. The two arrays exist
|
|
154
|
+
* rather than one because of the split documented on `PermissionMatrixColumn`: a
|
|
155
|
+
* heading is a node and a role's name is a string, and a matrix that had to
|
|
156
|
+
* derive one from the other would force every consumer to flatten a heading into
|
|
157
|
+
* a string or to build a sentence out of a badge.
|
|
158
|
+
*/
|
|
159
|
+
columns: readonly PermissionMatrixColumn[];
|
|
160
|
+
/** The roles the columns name, keyed by the same ids. */
|
|
161
|
+
roles: readonly PermissionMatrixRole[];
|
|
162
|
+
/**
|
|
163
|
+
* The permissions, grouped. Group order is the caller's, and so is the order
|
|
164
|
+
* inside each group, for the same reason: both are claims about what matters
|
|
165
|
+
* first.
|
|
166
|
+
*/
|
|
167
|
+
groups: readonly PermissionMatrixGroup[];
|
|
168
|
+
/**
|
|
169
|
+
* The words one cell announces, given whether it is granted, the role it belongs
|
|
170
|
+
* to and the permission it is about.
|
|
171
|
+
*
|
|
172
|
+
* Required, and a function of three arguments because the honest answer is a
|
|
173
|
+
* sentence rather than a word in almost every case that is not a straight yes or
|
|
174
|
+
* no. "Publish without a review" is the answer; "Own billing" is the answer, in
|
|
175
|
+
* the reader's own words, in the reader's own language, with the reader's own
|
|
176
|
+
* plural rules. Prism will not compose it, and the alternative was a record of
|
|
177
|
+
* three English strings, which is exactly the defect the copy gate was written to
|
|
178
|
+
* end.
|
|
179
|
+
*/
|
|
180
|
+
valueLabel: (allowed: boolean, role: string, permission: string) => string;
|
|
181
|
+
/**
|
|
182
|
+
* The key for the three marks.
|
|
183
|
+
*
|
|
184
|
+
* Required, because three marks with no key is a matrix nobody can read, and
|
|
185
|
+
* because the third mark is the one that most needs it: a question mark reads as
|
|
186
|
+
* a fault to most readers and as a condition to the few who have met one.
|
|
187
|
+
*/
|
|
188
|
+
legend: PermissionMatrixLegend;
|
|
189
|
+
/** Heading level for the section title. @defaultValue 'h2' */
|
|
190
|
+
headingLevel?: HeadingLevel;
|
|
191
|
+
/**
|
|
192
|
+
* Layout only, exactly as on every Block. Changing a Prism-owned visual
|
|
193
|
+
* property from here is prohibited.
|
|
194
|
+
*/
|
|
195
|
+
className?: string;
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Roles against capabilities: the roles across the top, the permissions down the
|
|
199
|
+
* side, and one cell per intersection saying what that role does with that
|
|
200
|
+
* permission.
|
|
201
|
+
*
|
|
202
|
+
* **It is a real `<table>`, and the rejected alternative is a grid of `div`s that
|
|
203
|
+
* looks the same.** A permission matrix is the one table on a page where a mistake
|
|
204
|
+
* is the most expensive kind of mistake a page can have. A reader who is not sure
|
|
205
|
+
* whether the Billing role can publish will try to do it, and the failure arrives
|
|
206
|
+
* later as somebody else's problem, and the matrix is the document that was
|
|
207
|
+
* supposed to prevent it. So the structure has to be the platform's: a reader using
|
|
208
|
+
* a screen reader asks the table for a column and hears the role's name, then
|
|
209
|
+
* moves down the cells and hears each answer against that name, and asks for a row
|
|
210
|
+
* and hears the permission and then its answers. A grid of `div`s has no header
|
|
211
|
+
* cells to ask for, so the same reader receives forty cells of unlabelled marks
|
|
212
|
+
* and has to hold the column in their head while reading down it, which is the
|
|
213
|
+
* single task a matrix exists to remove, and on this particular table it is the
|
|
214
|
+
* task whose failure is most expensive. The cost of the table is the one every
|
|
215
|
+
* real table carries: `Table` wraps the whole thing in a horizontally scrollable
|
|
216
|
+
* container, because five roles do not fit a phone, and a matrix that reflowed into
|
|
217
|
+
* a stack would no longer be a matrix. The scroll is the price, and the alternative
|
|
218
|
+
* is not a narrower matrix, it is a div grid.
|
|
219
|
+
*
|
|
220
|
+
* **`values` is `boolean | string`, and the string is a third answer rather than a
|
|
221
|
+
* spelling of the other two.** `true` is granted and `false` is refused, and those
|
|
222
|
+
* two are marks the reader learns once. The third case is a permission that depends
|
|
223
|
+
* on something the reader has to go and look up: it is granted to a role that
|
|
224
|
+
* holds a particular licence, limited for a role in a particular plan, or granted
|
|
225
|
+
* only where a second role is also held. That answer is neither a yes nor a no, and
|
|
226
|
+
* a matrix that can only say yes or no forces a product to lie in one of the two
|
|
227
|
+
* directions. It will draw the conditional cell as granted, because the role can
|
|
228
|
+
* do the thing; and the reader goes away believing their role can publish, and
|
|
229
|
+
* finds out at the moment they press the button, on a surface with no explanation.
|
|
230
|
+
* Or it will draw it as refused, which is the worse of the two because it is
|
|
231
|
+
* untrue in the direction that looks like a restriction rather than a gap, and a
|
|
232
|
+
* reader who has been told twice that their role cannot do something stops asking
|
|
233
|
+
* anyone. So the union has a third member, the mark is a question rather than a
|
|
234
|
+
* tick or a cross, and the words are the caller's because only the caller knows
|
|
235
|
+
* what the condition is. The cost is stated rather than hidden: a conditional cell
|
|
236
|
+
* is wider than the two marks, so a matrix with many of them scrolls further, and
|
|
237
|
+
* a caller who finds that painful has an obvious and wrong answer available, which
|
|
238
|
+
* is to call the condition a limit and print a number.
|
|
239
|
+
*
|
|
240
|
+
* **A `values` array that does not match the columns throws.** Four roles and
|
|
241
|
+
* three values renders perfectly: the markup is valid, the header row is correct,
|
|
242
|
+
* the styling is right, and a column is simply not there. A silent truncation in a
|
|
243
|
+
* permission matrix is a claim about a role nobody made, on the one table where a
|
|
244
|
+
* reader will act on the claim, and nothing in the rendered result says a value is
|
|
245
|
+
* missing. So the Block refuses the props. The cost is a render that throws in
|
|
246
|
+
* development rather than a matrix that lies in production, and the alternative
|
|
247
|
+
* was considered and refused: a pad of empty cells would turn a caller's mistake
|
|
248
|
+
* into a document in which a role has no opinion about a permission, which is
|
|
249
|
+
* indistinguishable from a role that has been refused one.
|
|
250
|
+
*
|
|
251
|
+
* **The group is a row group, and a group's name is a table header rather than a
|
|
252
|
+
* heading.** Each group is its own `<tbody>` and its name is a `th` with
|
|
253
|
+
* `scope="rowgroup"`, which is what HTML offers for a header that names the rows
|
|
254
|
+
* below it, so a screen reader announces the group when the reader enters it
|
|
255
|
+
* rather than repeating it over every column. It is deliberately not in the page
|
|
256
|
+
* outline: a group name is a band of rows and not a section of the page, and seven
|
|
257
|
+
* group names in the outline would be seven entries for a reader navigating by
|
|
258
|
+
* heading who expected sections.
|
|
259
|
+
*
|
|
260
|
+
* **A role's name is a heading, at `childLevel(headingLevel)`.** The role is the
|
|
261
|
+
* column's title, a reader who navigates by heading wants to reach the role rather
|
|
262
|
+
* than the permissions under it, and a matrix embedded one level deeper than it was
|
|
263
|
+
* written for has to carry its role names with it. The count, when there is one, is
|
|
264
|
+
* inside the same element, because a role and the number of people holding it are
|
|
265
|
+
* one thing a reader takes together, and a count in a separate column would be a
|
|
266
|
+
* column of numbers a reader has to match back to a name.
|
|
267
|
+
*
|
|
268
|
+
* **The legend is drawn under the table and required, because three marks with no
|
|
269
|
+
* key is a matrix nobody can read.** This is the cheapest thing on the Block and
|
|
270
|
+
* the one whose absence costs the most: a reader who has met a check, a cross and a
|
|
271
|
+
* question mark in one matrix has learned three things and will apply them to the
|
|
272
|
+
* next forty cells, and a reader who has met two of them has learned a binary and
|
|
273
|
+
* will misread the third. The legend is a `tfoot` so it is inside the table and
|
|
274
|
+
* travels with it in the accessibility tree, rather than a row of prose below that
|
|
275
|
+
* a reader navigating the table never meets.
|
|
276
|
+
*
|
|
277
|
+
* It is a server Component: no hook, no state, no client code and no router. The
|
|
278
|
+
* three marks are drawn as vectors, so a matrix costs no JavaScript.
|
|
279
|
+
*/
|
|
280
|
+
export declare function PermissionMatrix01({ eyebrow, title, description, columns, roles, groups, valueLabel, legend, headingLevel, className, }: PermissionMatrix01Props): import("react").JSX.Element;
|
|
281
|
+
export default PermissionMatrix01;
|
|
282
|
+
//# sourceMappingURL=permission-matrix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-matrix.d.ts","sourceRoot":"","sources":["../../../src/blocks/permission-matrix-01/permission-matrix.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAA;AAYpC;;;;;;;;GAQG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;CACvC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAA;IACV,0CAA0C;IAC1C,MAAM,EAAE,SAAS,CAAA;IACjB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;OAOG;IACH,MAAM,EAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAA;CACtC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,WAAW,EAAE,SAAS,0BAA0B,EAAE,CAAA;CACnD,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,+EAA+E;IAC/E,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,mFAAmF;IACnF,KAAK,EAAE,SAAS,CAAA;IAChB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAA;IAC1C,yDAAyD;IACzD,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACtC;;;;OAIG;IACH,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;IACxC;;;;;;;;;;;OAWG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1E;;;;;;OAMG;IACH,MAAM,EAAE,sBAAsB,CAAA;IAC9B,8DAA8D;IAC9D,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AA6DD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,EACV,MAAM,EACN,YAAmB,EACnB,SAAS,GACV,EAAE,uBAAuB,+BAsNzB;AAED,eAAe,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
import { Check, CircleHelp, X } from 'lucide-react';
|
|
4
|
+
import { Section, SectionHeading, childLevel, } from '../../components/ui/section.js';
|
|
5
|
+
import { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, } from '../../components/ui/table.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* One cell: the mark, and the words, and a string where the answer is neither.
|
|
9
|
+
*
|
|
10
|
+
* A component in the module and not a second Item, because it has no public
|
|
11
|
+
* surface and nothing to document for a consumer. It exists so the two boolean
|
|
12
|
+
* arms are written once, and they are written once because the span wrapping the
|
|
13
|
+
* mark and the visually hidden words is the part that is easy to get subtly wrong
|
|
14
|
+
* three times in a row.
|
|
15
|
+
*/
|
|
16
|
+
function MatrixCell({ value, role, permission, valueLabel, conditionalLabel, }) {
|
|
17
|
+
if (typeof value === 'boolean') {
|
|
18
|
+
return value ? (_jsxs("span", { "data-slot": "permission-matrix-answer", className: "text-success inline-flex items-center gap-1.5", children: [_jsx(Check, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "sr-only", children: valueLabel(true, role, permission) })] })) : (_jsxs("span", { "data-slot": "permission-matrix-answer", className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(X, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "sr-only", children: valueLabel(false, role, permission) })] }));
|
|
19
|
+
}
|
|
20
|
+
/*
|
|
21
|
+
The third answer, and the sentence beside the mark is `legend.conditional`
|
|
22
|
+
rather than `valueLabel`, which is a real distinction rather than a shortcut.
|
|
23
|
+
`valueLabel` composes the answer for a cell that is granted or refused; this
|
|
24
|
+
cell's answer is the string the caller wrote, and what the mark needs beside it
|
|
25
|
+
is the name of the category, so that a reader knows the sentence is a condition
|
|
26
|
+
to look up rather than a limit they have hit.
|
|
27
|
+
*/
|
|
28
|
+
return (_jsxs("span", { "data-slot": "permission-matrix-conditional", className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(CircleHelp, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-sm text-pretty", children: value }), _jsx("span", { className: "sr-only", children: conditionalLabel })] }));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Roles against capabilities: the roles across the top, the permissions down the
|
|
32
|
+
* side, and one cell per intersection saying what that role does with that
|
|
33
|
+
* permission.
|
|
34
|
+
*
|
|
35
|
+
* **It is a real `<table>`, and the rejected alternative is a grid of `div`s that
|
|
36
|
+
* looks the same.** A permission matrix is the one table on a page where a mistake
|
|
37
|
+
* is the most expensive kind of mistake a page can have. A reader who is not sure
|
|
38
|
+
* whether the Billing role can publish will try to do it, and the failure arrives
|
|
39
|
+
* later as somebody else's problem, and the matrix is the document that was
|
|
40
|
+
* supposed to prevent it. So the structure has to be the platform's: a reader using
|
|
41
|
+
* a screen reader asks the table for a column and hears the role's name, then
|
|
42
|
+
* moves down the cells and hears each answer against that name, and asks for a row
|
|
43
|
+
* and hears the permission and then its answers. A grid of `div`s has no header
|
|
44
|
+
* cells to ask for, so the same reader receives forty cells of unlabelled marks
|
|
45
|
+
* and has to hold the column in their head while reading down it, which is the
|
|
46
|
+
* single task a matrix exists to remove, and on this particular table it is the
|
|
47
|
+
* task whose failure is most expensive. The cost of the table is the one every
|
|
48
|
+
* real table carries: `Table` wraps the whole thing in a horizontally scrollable
|
|
49
|
+
* container, because five roles do not fit a phone, and a matrix that reflowed into
|
|
50
|
+
* a stack would no longer be a matrix. The scroll is the price, and the alternative
|
|
51
|
+
* is not a narrower matrix, it is a div grid.
|
|
52
|
+
*
|
|
53
|
+
* **`values` is `boolean | string`, and the string is a third answer rather than a
|
|
54
|
+
* spelling of the other two.** `true` is granted and `false` is refused, and those
|
|
55
|
+
* two are marks the reader learns once. The third case is a permission that depends
|
|
56
|
+
* on something the reader has to go and look up: it is granted to a role that
|
|
57
|
+
* holds a particular licence, limited for a role in a particular plan, or granted
|
|
58
|
+
* only where a second role is also held. That answer is neither a yes nor a no, and
|
|
59
|
+
* a matrix that can only say yes or no forces a product to lie in one of the two
|
|
60
|
+
* directions. It will draw the conditional cell as granted, because the role can
|
|
61
|
+
* do the thing; and the reader goes away believing their role can publish, and
|
|
62
|
+
* finds out at the moment they press the button, on a surface with no explanation.
|
|
63
|
+
* Or it will draw it as refused, which is the worse of the two because it is
|
|
64
|
+
* untrue in the direction that looks like a restriction rather than a gap, and a
|
|
65
|
+
* reader who has been told twice that their role cannot do something stops asking
|
|
66
|
+
* anyone. So the union has a third member, the mark is a question rather than a
|
|
67
|
+
* tick or a cross, and the words are the caller's because only the caller knows
|
|
68
|
+
* what the condition is. The cost is stated rather than hidden: a conditional cell
|
|
69
|
+
* is wider than the two marks, so a matrix with many of them scrolls further, and
|
|
70
|
+
* a caller who finds that painful has an obvious and wrong answer available, which
|
|
71
|
+
* is to call the condition a limit and print a number.
|
|
72
|
+
*
|
|
73
|
+
* **A `values` array that does not match the columns throws.** Four roles and
|
|
74
|
+
* three values renders perfectly: the markup is valid, the header row is correct,
|
|
75
|
+
* the styling is right, and a column is simply not there. A silent truncation in a
|
|
76
|
+
* permission matrix is a claim about a role nobody made, on the one table where a
|
|
77
|
+
* reader will act on the claim, and nothing in the rendered result says a value is
|
|
78
|
+
* missing. So the Block refuses the props. The cost is a render that throws in
|
|
79
|
+
* development rather than a matrix that lies in production, and the alternative
|
|
80
|
+
* was considered and refused: a pad of empty cells would turn a caller's mistake
|
|
81
|
+
* into a document in which a role has no opinion about a permission, which is
|
|
82
|
+
* indistinguishable from a role that has been refused one.
|
|
83
|
+
*
|
|
84
|
+
* **The group is a row group, and a group's name is a table header rather than a
|
|
85
|
+
* heading.** Each group is its own `<tbody>` and its name is a `th` with
|
|
86
|
+
* `scope="rowgroup"`, which is what HTML offers for a header that names the rows
|
|
87
|
+
* below it, so a screen reader announces the group when the reader enters it
|
|
88
|
+
* rather than repeating it over every column. It is deliberately not in the page
|
|
89
|
+
* outline: a group name is a band of rows and not a section of the page, and seven
|
|
90
|
+
* group names in the outline would be seven entries for a reader navigating by
|
|
91
|
+
* heading who expected sections.
|
|
92
|
+
*
|
|
93
|
+
* **A role's name is a heading, at `childLevel(headingLevel)`.** The role is the
|
|
94
|
+
* column's title, a reader who navigates by heading wants to reach the role rather
|
|
95
|
+
* than the permissions under it, and a matrix embedded one level deeper than it was
|
|
96
|
+
* written for has to carry its role names with it. The count, when there is one, is
|
|
97
|
+
* inside the same element, because a role and the number of people holding it are
|
|
98
|
+
* one thing a reader takes together, and a count in a separate column would be a
|
|
99
|
+
* column of numbers a reader has to match back to a name.
|
|
100
|
+
*
|
|
101
|
+
* **The legend is drawn under the table and required, because three marks with no
|
|
102
|
+
* key is a matrix nobody can read.** This is the cheapest thing on the Block and
|
|
103
|
+
* the one whose absence costs the most: a reader who has met a check, a cross and a
|
|
104
|
+
* question mark in one matrix has learned three things and will apply them to the
|
|
105
|
+
* next forty cells, and a reader who has met two of them has learned a binary and
|
|
106
|
+
* will misread the third. The legend is a `tfoot` so it is inside the table and
|
|
107
|
+
* travels with it in the accessibility tree, rather than a row of prose below that
|
|
108
|
+
* a reader navigating the table never meets.
|
|
109
|
+
*
|
|
110
|
+
* It is a server Component: no hook, no state, no client code and no router. The
|
|
111
|
+
* three marks are drawn as vectors, so a matrix costs no JavaScript.
|
|
112
|
+
*/
|
|
113
|
+
export function PermissionMatrix01({ eyebrow, title, description, columns, roles, groups, valueLabel, legend, headingLevel = 'h2', className, }) {
|
|
114
|
+
// The handle a table below takes its name from; see the note on the table.
|
|
115
|
+
const headingId = useId();
|
|
116
|
+
if (roles.length === 0) {
|
|
117
|
+
throw new Error('PermissionMatrix01: roles is empty, so the matrix has no columns and the table would render a header ' +
|
|
118
|
+
'row and nothing else. Pass the roles a reader is choosing between.');
|
|
119
|
+
}
|
|
120
|
+
if (columns.length === 0) {
|
|
121
|
+
throw new Error('PermissionMatrix01: columns is empty, so the matrix has no headings and every cell would be a mark with ' +
|
|
122
|
+
'nothing to attach it to. Name one column per role.');
|
|
123
|
+
}
|
|
124
|
+
if (groups.length === 0) {
|
|
125
|
+
throw new Error('PermissionMatrix01: groups is empty, so the matrix has no rows. Pass one group, even when its title is ' +
|
|
126
|
+
'empty, rather than leaving the reader with a row of role names and no permissions beside them.');
|
|
127
|
+
}
|
|
128
|
+
for (const column of columns) {
|
|
129
|
+
if (!roles.some((role) => role.id === column.id)) {
|
|
130
|
+
throw new Error(`PermissionMatrix01: a column names the role ${JSON.stringify(column.id)} and no role carries that id, ` +
|
|
131
|
+
'so the heading would sit over a column no answers belong to. Give the column the id of a role, or ' +
|
|
132
|
+
'drop it.');
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
for (const role of roles) {
|
|
136
|
+
if (!columns.some((column) => column.id === role.id)) {
|
|
137
|
+
throw new Error(`PermissionMatrix01: the role ${JSON.stringify(role.name)} has no column, so the table would hold a ` +
|
|
138
|
+
'row of answers for a role no reader can name. Give the role a column whose id is its own.');
|
|
139
|
+
}
|
|
140
|
+
if (role.count !== undefined && role.countLabel === undefined) {
|
|
141
|
+
throw new Error(`PermissionMatrix01: the role ${JSON.stringify(role.name)} declares a count and no countLabel, so a ` +
|
|
142
|
+
'bare figure would sit in a column heading with nothing saying what it counts. Pass the function.');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
for (const group of groups) {
|
|
146
|
+
for (const permission of group.permissions) {
|
|
147
|
+
if (permission.values.length !== columns.length) {
|
|
148
|
+
throw new Error(`PermissionMatrix01: the permission ${JSON.stringify(permission.label)} has ` +
|
|
149
|
+
`${permission.values.length} value(s) and there are ${columns.length} column(s). A short row ` +
|
|
150
|
+
'renders a role with no answer, which on this table is a claim nobody made, so it is refused ' +
|
|
151
|
+
'rather than padded.');
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// A role is a column, and a column is a title inside the section that
|
|
156
|
+
// introduces the set, so five roles under one `h2` are five `h3`s.
|
|
157
|
+
const RoleHeading = childLevel(headingLevel);
|
|
158
|
+
const width = columns.length + 1;
|
|
159
|
+
// Read once rather than searched per cell, because `valueLabel` is called for
|
|
160
|
+
// every cell and a linear search inside that is a cost the reader pays on the
|
|
161
|
+
// render. The `id` is the join, and the loop above has already refused a column
|
|
162
|
+
// or a role the other side does not carry.
|
|
163
|
+
const byId = new Map(roles.map((role) => [role.id, role]));
|
|
164
|
+
const nameOf = (id) => byId.get(id)?.name ?? id;
|
|
165
|
+
return (_jsxs(Section, { className: className, "data-slot": "permission-matrix", children: [_jsx(SectionHeading, { as: headingLevel, id: headingId, align: "left", eyebrow: eyebrow, title: title, description: description, className: "mb-12" }), _jsx("div", { "data-slot": "permission-matrix-table", className: "flex flex-col gap-4", children: _jsx("div", { className: "border-border overflow-hidden rounded-xl border", children: _jsxs(Table, { "aria-labelledby": headingId, children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { className: "w-56 align-bottom" }), columns.map((column) => {
|
|
166
|
+
const role = byId.get(column.id);
|
|
167
|
+
return (_jsxs(TableHead, { scope: "col", "data-role": column.id, className: cn('w-44 whitespace-normal align-bottom', column.className), children: [_jsxs(RoleHeading, { className: "flex flex-col items-start gap-1 text-base font-semibold tracking-tight text-balance", children: [_jsx("span", { "data-slot": "permission-matrix-role-name", children: column.header }), role?.count === undefined || role.countLabel === undefined ? null : (_jsx("span", { "data-slot": "permission-matrix-role-count", className: "text-muted-foreground text-xs font-normal tabular-nums", children: role.countLabel(role.count) }))] }), role?.description === undefined ? null : (_jsx("span", { "data-slot": "permission-matrix-role-description", className: "text-muted-foreground mt-1 block text-sm font-normal text-pretty", children: role.description }))] }, column.id));
|
|
168
|
+
})] }) }), groups.map((group, groupIndex) => (
|
|
169
|
+
// Positional, because a group title is display content and a caller
|
|
170
|
+
// may legitimately split a model into two bands under one name.
|
|
171
|
+
_jsxs(TableBody, { "data-slot": "permission-matrix-group", children: [_jsx(TableRow, { children: _jsx(TableHead, { scope: "rowgroup", colSpan: width, className: "bg-muted/50 whitespace-normal", children: _jsx("span", { className: "text-sm font-semibold", children: group.title }) }) }), group.permissions.map((permission) => (_jsxs(TableRow, { "data-slot": "permission-matrix-permission", "data-permission": permission.id, children: [_jsx(TableHead, { scope: "row", className: "text-foreground h-auto w-56 whitespace-normal font-medium", children: _jsxs("span", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-sm font-medium", children: permission.label }), permission.description === undefined ? null : (_jsx("span", { className: "text-muted-foreground text-xs font-normal text-pretty", children: permission.description }))] }) }), columns.map((column, index) => (_jsx(TableCell, { "data-role": column.id, children: _jsx(MatrixCell, { value: permission.values[index] ?? false, role: nameOf(column.id), permission: permission.label, valueLabel: valueLabel, conditionalLabel: legend.conditional }) }, column.id)))] }, permission.id)))] }, groupIndex))), _jsx(TableFooter, { children: _jsx(TableRow, { children: _jsx(TableCell, { colSpan: width, className: "bg-muted/50 whitespace-normal", children: _jsxs("span", { className: "flex flex-wrap items-center gap-x-6 gap-y-2", children: [_jsxs("span", { className: "text-success inline-flex items-center gap-1.5", children: [_jsx(Check, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.allowed })] }), _jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(X, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.denied })] }), _jsxs("span", { className: "text-muted-foreground inline-flex items-center gap-1.5", children: [_jsx(CircleHelp, { "aria-hidden": true, className: "size-4 shrink-0" }), _jsx("span", { className: "text-foreground text-sm", children: legend.conditional })] })] }) }) }) })] }) }) })] }));
|
|
172
|
+
}
|
|
173
|
+
export default PermissionMatrix01;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAM9C,YAAY,EACV,IAAI,EACJ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,WAAW,CAAA"}
|
|
@@ -1,12 +1,123 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
1
2
|
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* One plan's control, when it is a destination.
|
|
5
|
+
*
|
|
6
|
+
* One of the two arms of `PricingAction`, and named rather than left as an inline
|
|
7
|
+
* member of the union so a caller building `plans` from its own data can say which
|
|
8
|
+
* arm it is building. `href` is required and that is the whole of the arm.
|
|
9
|
+
*/
|
|
10
|
+
export type PricingLinkAction = {
|
|
11
|
+
/** The words on the control. A plan's action is its pitch, so it is the caller's. */
|
|
12
|
+
label: string;
|
|
13
|
+
/**
|
|
14
|
+
* Where the control goes. Rendered as a native anchor's `href`.
|
|
15
|
+
*
|
|
16
|
+
* **Required, and this member did not exist.** `Plan` declared a required `cta`
|
|
17
|
+
* string and the Block rendered it as a `Button`, so every plan in every consumer's
|
|
18
|
+
* pricing table shipped a focusable control, announced as a button, that activated
|
|
19
|
+
* to nothing, at the foot of the card that a reader was about to decide on. A price
|
|
20
|
+
* is the one number on a marketing page a reader acts on, and the control beside it
|
|
21
|
+
* did nothing.
|
|
22
|
+
*/
|
|
23
|
+
href: string;
|
|
24
|
+
/**
|
|
25
|
+
* Opens the destination in a new browsing context, which defaults the link
|
|
26
|
+
* relationship to `noopener noreferrer`. Declared rather than inferred, for the
|
|
27
|
+
* reason `Cta01Action.newTab` states.
|
|
28
|
+
*/
|
|
29
|
+
newTab?: boolean;
|
|
30
|
+
/** Forbidden, so that an action cannot be both a destination and a caller's own control. */
|
|
31
|
+
slot?: never;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* One plan's control, when it is the caller's own.
|
|
35
|
+
*
|
|
36
|
+
* **This is the arm that replaced a rendered button, and the reason it is a slot
|
|
37
|
+
* rather than an `onClick` is that a Block cannot receive one.** This is a server
|
|
38
|
+
* Component, so a handler is not a prop it can be given. A plan's control is also the
|
|
39
|
+
* one place a pricing table most often needs a control Prism cannot draw: a trial
|
|
40
|
+
* that opens a checkout dialog, a contact form for the top tier, a router's own
|
|
41
|
+
* `Link` for a client-side transition into the plan.
|
|
42
|
+
*
|
|
43
|
+
* The Block places the node in the card's foot and adds nothing to it, because a
|
|
44
|
+
* class it adds to a node it does not render is a style the caller cannot see and
|
|
45
|
+
* cannot remove, and this package has no override path.
|
|
46
|
+
*/
|
|
47
|
+
export type PricingSlotAction = {
|
|
48
|
+
/**
|
|
49
|
+
* The caller's own control, placed in the card's foot.
|
|
50
|
+
*
|
|
51
|
+
* The whole control, including its own label, its own weight and any icon. A plan
|
|
52
|
+
* with a slot action draws no `Button` of its own, so the caller's weight is the
|
|
53
|
+
* weight a reader sees and there is nothing here that can contradict it.
|
|
54
|
+
*/
|
|
55
|
+
slot: ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Forbidden on this arm, and for a reason rather than by tidiness: the Block
|
|
58
|
+
* renders `slot` and nothing else, so a `label` beside it would be a word no
|
|
59
|
+
* reader ever sees.
|
|
60
|
+
*/
|
|
61
|
+
label?: never;
|
|
62
|
+
/** Forbidden: an anchor belongs on the other arm, where Prism renders it. */
|
|
63
|
+
href?: never;
|
|
64
|
+
/** Forbidden with `href`, for the same reason. */
|
|
65
|
+
newTab?: never;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* One plan's control, as a union of the two things a control at the foot of a
|
|
69
|
+
* pricing card can honestly be.
|
|
70
|
+
*
|
|
71
|
+
* A plan carries exactly one control, so this is not an ordered row and the slot is
|
|
72
|
+
* an arm of the plan's own record rather than a sibling prop on the Block: `Plan` is
|
|
73
|
+
* one entry in a list, and a sibling `actionSlot` on `Pricing01` could not say which
|
|
74
|
+
* card it filled. Position and element are the same value here for the same reason
|
|
75
|
+
* they are in a hero's row.
|
|
76
|
+
*
|
|
77
|
+
* It is declared here rather than imported from `cta-01`, following
|
|
78
|
+
* `ProcessFlow01`'s note on the same point, and `scripts/check-block-controls.mjs`
|
|
79
|
+
* holds the shape: a shared type would make `@nanisoft/prism-ui/blocks/cta-01` a
|
|
80
|
+
* dependency of `@nanisoft/prism-ui/blocks/pricing-01`, and a consumer installing a
|
|
81
|
+
* pricing table would be made to resolve a closing call-to-action band to get it.
|
|
82
|
+
*/
|
|
83
|
+
export type PricingAction = PricingLinkAction | PricingSlotAction;
|
|
2
84
|
export type Plan = {
|
|
85
|
+
/**
|
|
86
|
+
* A stable key for this plan, and the only thing about it React keys on.
|
|
87
|
+
*
|
|
88
|
+
* **Required, and it did not exist: the cards were keyed on `name`.** `name` is
|
|
89
|
+
* the word a reader reads on the card, so it is display content and not identity,
|
|
90
|
+
* and a Block that keyed on it had two ways to be wrong at once. Two plans
|
|
91
|
+
* sharing a name, which is a monthly and an annual row of the same tier or a
|
|
92
|
+
* "Standard" and a "Standard (legacy)" line a product is migrating away from,
|
|
93
|
+
* produced a duplicate key and cards the renderer had been told are ambiguous.
|
|
94
|
+
* And a rename in the copy was a rename in the key, which loses a caller's saved
|
|
95
|
+
* selection or expanded state over an edit to a sentence.
|
|
96
|
+
*
|
|
97
|
+
* The route or the product's own plan code is the usual value and needs no
|
|
98
|
+
* coordination. `Careers01` and every other Block in this package key on an `id`
|
|
99
|
+
* and say why in the same words; this is the last one that did not, and the reason
|
|
100
|
+
* it survived is recorded in the release that introduced `action` rather than
|
|
101
|
+
* here.
|
|
102
|
+
*/
|
|
103
|
+
id: string;
|
|
104
|
+
/** The plan's own name, which is what the card's title reads. */
|
|
3
105
|
name: string;
|
|
4
106
|
price: string;
|
|
5
107
|
/** Rendered after the price, e.g. " / month". Omit for a one-off figure. */
|
|
6
108
|
period?: string;
|
|
7
109
|
body?: string;
|
|
8
110
|
features: string[];
|
|
9
|
-
|
|
111
|
+
/**
|
|
112
|
+
* The one control at the foot of this card.
|
|
113
|
+
*
|
|
114
|
+
* **A union of a destination and a slot, and it replaces a required `cta`
|
|
115
|
+
* string.** The string compiled and rendered a `Button`, which is a control that
|
|
116
|
+
* activates to nothing; a pricing card is the last thing a reader sees before they
|
|
117
|
+
* choose, so that is the worst place in the package to ship one. See
|
|
118
|
+
* `PricingAction`.
|
|
119
|
+
*/
|
|
120
|
+
action: PricingAction;
|
|
10
121
|
/** Lifts the plan with a primary border and a filled button. */
|
|
11
122
|
featured?: boolean;
|
|
12
123
|
/** Overrides the "Popular" badge on the featured plan. */
|
|
@@ -36,6 +147,12 @@ export type Pricing01Props = {
|
|
|
36
147
|
* `Pricing01` and `FeatureGrid01` were the only two Blocks that left the heading
|
|
37
148
|
* centred over content, and neither had a stated reason for it, so both were
|
|
38
149
|
* taking the default rather than making a decision.
|
|
150
|
+
*
|
|
151
|
+
* **The card's foot is a link or the caller's own control, and never a button of
|
|
152
|
+
* this Block's.** `Plan` used to carry a required `cta` string and the Block
|
|
153
|
+
* rendered it as a `Button`, so every pricing table in every consumer's product
|
|
154
|
+
* shipped a focusable control, announced as a button, that activated to nothing,
|
|
155
|
+
* on the card a reader was about to choose from. See `PricingAction`.
|
|
39
156
|
*/
|
|
40
157
|
export declare function Pricing01({ eyebrow, title, description, plans, headingLevel, }: Pricing01Props): import("react").JSX.Element;
|
|
41
158
|
export default Pricing01;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/pricing.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../../src/blocks/pricing-01/pricing.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAchD,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEpG;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;;OAMG;IACH,IAAI,EAAE,SAAS,CAAA;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,6EAA6E;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,kDAAkD;IAClD,MAAM,CAAC,EAAE,KAAK,CAAA;CACf,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,iBAAiB,CAAA;AAEjE,MAAM,MAAM,IAAI,GAAG;IACjB;;;;;;;;;;;;;;;;;OAiBG;IACH,EAAE,EAAE,MAAM,CAAA;IACV,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB;;;;;;;;OAQG;IACH,MAAM,EAAE,aAAa,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,+DAA+D;IAC/D,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,KAAK,EACL,WAAW,EACX,KAAK,EACL,YAAmB,GACpB,EAAE,cAAc,+BAuFhB;AAED,eAAe,SAAS,CAAA"}
|