@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,134 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Meter } from './meter.js';
|
|
3
|
+
import { Status } from './status.js';
|
|
4
|
+
import { cn } from '../../lib/utils.js';
|
|
5
|
+
/**
|
|
6
|
+
* The bar's fill, from the state the caller put beside it.
|
|
7
|
+
*
|
|
8
|
+
* `StatusTone` is the wider of the two closed sets, because it is the one the
|
|
9
|
+
* caller is already using for a state wherever else they show one, and a list with
|
|
10
|
+
* its own narrower set would make the caller translate between two vocabularies for
|
|
11
|
+
* the same judgement. `MeterTone` is narrower and has no `info`, so `info` takes the
|
|
12
|
+
* neutral fill, and that cost is named on `status` and on this Component rather than
|
|
13
|
+
* hidden here.
|
|
14
|
+
*
|
|
15
|
+
* The mapping is a fact about two closed sets rather than a judgement about
|
|
16
|
+
* urgency. Nothing in this file decides whether a category is alarming: the caller
|
|
17
|
+
* named the tone, and a Component that graded a bar by how its own number compared
|
|
18
|
+
* to a ceiling would be making a claim about a budget this file cannot see.
|
|
19
|
+
*/
|
|
20
|
+
const BAR_FILL = {
|
|
21
|
+
neutral: 'neutral',
|
|
22
|
+
info: 'neutral',
|
|
23
|
+
success: 'success',
|
|
24
|
+
warning: 'warning',
|
|
25
|
+
destructive: 'destructive',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Each labelled category's share of one whole, as a proportional bar and a number.
|
|
29
|
+
*
|
|
30
|
+
* **The unit is a share, and that is what the whole Component is built around.** A
|
|
31
|
+
* part-to-whole with two or three parts is a `Chart` `donut`, and a series of
|
|
32
|
+
* unrelated values against a shared baseline is a `Chart` `bar`; neither is this,
|
|
33
|
+
* because a list of shares is neither of those things. Its bars cannot be modelled
|
|
34
|
+
* as independent series, since they are constrained to sum to the whole and a
|
|
35
|
+
* reader comparing two of them is comparing two slices of one pie rather than two
|
|
36
|
+
* measurements against a scale. So there is no `series` prop, no `mark`, and no
|
|
37
|
+
* axis: the bar is drawn from `value` against `total`, and the number printed
|
|
38
|
+
* beside it is that same division, so the two cannot disagree with each other or
|
|
39
|
+
* with the data.
|
|
40
|
+
*
|
|
41
|
+
* **The bar is decorative and the number is the reading, said plainly.** `Meter`
|
|
42
|
+
* draws the track and the fill, and the row wraps it in an `aria-hidden` box on
|
|
43
|
+
* purpose: a meter announces its name and its value, and the row already prints
|
|
44
|
+
* both, so an announced bar beside a printed one is the same sentence twice for
|
|
45
|
+
* every row on the page. `Meter` requires a name and the only name in the row is
|
|
46
|
+
* the category's own, so `label` is forwarded to it rather than invented, and the
|
|
47
|
+
* forwarding is invisible because the wrapper is hidden. A reader who cannot rank
|
|
48
|
+
* the fills still has every number, which is the whole reason the number is printed
|
|
49
|
+
* rather than left to the bar.
|
|
50
|
+
*
|
|
51
|
+
* **A share is drawn on one scale, so the bars are comparable down the page.** Every
|
|
52
|
+
* row's fill is `value / total` of the same track, and the tracks are the same
|
|
53
|
+
* width, which is what makes two categories comparable at a glance. That is the
|
|
54
|
+
* reason this is a list of bars rather than a stacked bar: a stack puts the shares
|
|
55
|
+
* in one figure, where the reader has to find the boundary between two categories
|
|
56
|
+
* to compare them, and a list puts each one on its own common baseline.
|
|
57
|
+
*
|
|
58
|
+
* **`Meter` is used rather than a second bar drawn here, and the honest cost is a
|
|
59
|
+
* palette of three state tones against five.** Composing it means the bar, its
|
|
60
|
+
* tone vocabulary and its accessibility are one Component's rather than two, and it
|
|
61
|
+
* means a share list looks like every other measurement in the product, which is
|
|
62
|
+
* what a reader wants from a bar. The cost is that `StatusTone` and `MeterTone` are
|
|
63
|
+
* different widths: there is no informational fill, so a category whose state is
|
|
64
|
+
* `info` draws a neutral bar and its colour meaning is carried by the dot beside the
|
|
65
|
+
* label. The alternative was a second set of fills authored here, and that is a
|
|
66
|
+
* second source of truth for a scale the tokens already own.
|
|
67
|
+
*
|
|
68
|
+
* **Two inputs throw, because a share that cannot be drawn is not a quiet share.**
|
|
69
|
+
* A negative quantity and a whole that is zero or less are both impossible rather
|
|
70
|
+
* than unusual, and both have exactly one honest rendering, which is to stop: a
|
|
71
|
+
* negative share drawn as an empty bar claims the category is zero when it is
|
|
72
|
+
* below zero, and a list drawn against a total of zero divides by nothing. The
|
|
73
|
+
* alternative was to clamp, which is what `Chart` does for a value past the end of
|
|
74
|
+
* its axis, and the reason it does not apply here is that there is no axis to be
|
|
75
|
+
* past: the whole is the denominator and it is either there or it is not.
|
|
76
|
+
*
|
|
77
|
+
* **The rows are a list, so a reader is told how many categories there are.**
|
|
78
|
+
* `<ul>` and `<li>` rather than a table of divs, because a reader moving by list
|
|
79
|
+
* item is told the count and each row is one stop, and because nothing in a
|
|
80
|
+
* category list is tabular data: there is one measure and it is beside its name.
|
|
81
|
+
* The rows are also not interactive, and no motion is attached to them for the same
|
|
82
|
+
* reason: a hover state on a row that cannot be pressed is an affordance for
|
|
83
|
+
* something the page does not do.
|
|
84
|
+
*
|
|
85
|
+
* **An empty list renders the caller's sentence rather than nothing.** A heading
|
|
86
|
+
* with no rows says the whole is nothing, and hiding the figure leaves a reader
|
|
87
|
+
* wondering whether it had been missed, which is the argument `Retention01` makes
|
|
88
|
+
* for leaving a withdrawn schedule on the page.
|
|
89
|
+
*
|
|
90
|
+
* **It is a server Component.** There is no state, no effect and no handler, the
|
|
91
|
+
* whole figure is arithmetic over props, and a dashboard of proportions costs no
|
|
92
|
+
* client code at all. `Status` and `Meter` are server Components too, so composing
|
|
93
|
+
* them costs nothing at this boundary either.
|
|
94
|
+
*/
|
|
95
|
+
function ProportionList({ className, items, total, precision = 1, label, caption, empty, ...props }) {
|
|
96
|
+
const whole = total ?? items.reduce((sum, item) => sum + item.value, 0);
|
|
97
|
+
// A nonsense `precision` is floored at zero rather than reaching `toFixed`, which
|
|
98
|
+
// throws on a negative count, for the reason `CohortGrid` gives its own: a
|
|
99
|
+
// rounding instruction is a reading instruction and a typo in one should not take
|
|
100
|
+
// a page down.
|
|
101
|
+
const places = Math.min(20, Math.max(0, Math.floor(precision)));
|
|
102
|
+
/*
|
|
103
|
+
* The refusals are inside the `items.length > 0` test because an empty list is a
|
|
104
|
+
* state a caller reaches rather than a bug: with no categories there is no
|
|
105
|
+
* category to be negative and no whole to divide by, so there is nothing to
|
|
106
|
+
* refuse and the caller's own sentence renders below.
|
|
107
|
+
*/
|
|
108
|
+
if (items.length > 0) {
|
|
109
|
+
for (const item of items) {
|
|
110
|
+
if (!Number.isFinite(item.value) || item.value < 0) {
|
|
111
|
+
throw new Error(`ProportionList: the category '${item.label}' has the value ${String(item.value)}, which is not a ` +
|
|
112
|
+
'quantity a share can be taken of. A negative category is a subtraction somewhere upstream, and ' +
|
|
113
|
+
'a category whose value went missing is a query that did not come back; neither is something a ' +
|
|
114
|
+
'bar can draw honestly, so this stops rather than showing it as nothing.');
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (!Number.isFinite(whole) || whole <= 0) {
|
|
118
|
+
throw new Error(`ProportionList: the whole is ${String(whole)}, so there is nothing for a share to be a share of. ` +
|
|
119
|
+
'Either no category carries a value or the total you passed is not positive. Pass a total that ' +
|
|
120
|
+
'names what the categories are shares of, and a category whose value is genuinely nothing is a 0.');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return (_jsxs("figure", { "data-slot": "proportion-list", "data-count": items.length, "aria-label": label, className: cn('flex w-full flex-col gap-3', className), ...props, children: [items.length === 0 ? (_jsx("p", { "data-slot": "proportion-list-empty", className: "text-muted-foreground text-sm", children: empty ?? null })) : (_jsx("ul", { "data-slot": "proportion-list-rows", className: "flex flex-col gap-2", children: items.map((item, index) => {
|
|
124
|
+
const share = (item.value / whole) * 100;
|
|
125
|
+
// The bar is filled from the printed figure rather than from the exact
|
|
126
|
+
// quotient, so the length a reader measures and the number a reader reads
|
|
127
|
+
// are the same number to the last decimal. A bar at 64.2087 percent beside
|
|
128
|
+
// a printed 64.2 is one fact drawn twice, and a difference of one part in a
|
|
129
|
+
// thousand is not worth the two versions of it.
|
|
130
|
+
const printed = share.toFixed(places);
|
|
131
|
+
return (_jsxs("li", { "data-slot": "proportion-list-row", className: "flex items-center gap-3", children: [item.status === undefined ? null : (_jsx(Status, { tone: item.status.tone, label: item.status.label, size: "sm", className: "shrink-0" })), _jsx("span", { "data-slot": "proportion-list-label", className: "min-w-0 flex-1 truncate text-sm font-medium", children: item.label }), _jsx("div", { "data-slot": "proportion-list-bar", "aria-hidden": "true", className: "w-32 shrink-0", children: _jsx(Meter, { value: Number(printed), label: item.label, tone: item.status === undefined ? undefined : BAR_FILL[item.status.tone] }) }), _jsx("span", { "data-slot": "proportion-list-value", className: "shrink-0 text-right text-sm tabular-nums", children: item.text ?? `${printed}%` })] }, `${item.label}-${index}`));
|
|
132
|
+
}) })), caption === undefined ? null : (_jsx("p", { "data-slot": "proportion-list-caption", className: "text-muted-foreground text-sm", children: caption }))] }));
|
|
133
|
+
}
|
|
134
|
+
export { ProportionList };
|
|
@@ -81,7 +81,41 @@ export type ProseProps = ComponentProps<'div'> & {
|
|
|
81
81
|
* type rule gives body copy `text-pretty` and putting it here means a caller's
|
|
82
82
|
* own `<p>` inherits it rather than needing a class of its own.
|
|
83
83
|
*
|
|
84
|
+
* **A table in the run scrolls, and it is the only treatment here that has to
|
|
85
|
+
* change the element's box type to get there.** A `display: table` box cannot be
|
|
86
|
+
* a scroll container: `overflow` applies to block containers, and CSS Tables 3
|
|
87
|
+
* says the overflow property on a table-root or table-wrapper box "when its value
|
|
88
|
+
* is not either visible, clip or hidden, is ignored and treated as if its value
|
|
89
|
+
* was visible". So `overflow-x: auto` written straight onto the table computes
|
|
90
|
+
* away, the table keeps its min-content floor, and a four-column table widens the
|
|
91
|
+
* page instead of scrolling it. `display: block` is what makes the element a block
|
|
92
|
+
* container, and the declaration the code fence above already has then works on
|
|
93
|
+
* it. The row groups are wrapped in an anonymous table box by the fixup rules, and
|
|
94
|
+
* that box still inherits `border-collapse`, so a collapsed table stays collapsed.
|
|
95
|
+
*
|
|
96
|
+
* The consequence worth naming is that the grid inside now sizes to its content up
|
|
97
|
+
* to the measure rather than stretching to fill it, which is what the same
|
|
98
|
+
* technique does everywhere it is used. A table wider than the measure scrolls.
|
|
99
|
+
*
|
|
100
|
+
* The treatment is a CHILD selector, and that is load-bearing rather than
|
|
101
|
+
* incidental. A descendant selector would reach a table the caller has already put
|
|
102
|
+
* in a scroll container of their own, `Table` above all, and `display: block`
|
|
103
|
+
* there would move `caption-side` onto a block box and stop the grid filling the
|
|
104
|
+
* wrapper it arrived in. A direct child is what this component says its content
|
|
105
|
+
* is: the caller's own flow content.
|
|
106
|
+
*
|
|
84
107
|
* It is a server Component: no hook, no context and no client code.
|
|
108
|
+
*
|
|
109
|
+
* **The heading ladder here is the one `SectionHeading` walks, entered one rung
|
|
110
|
+
* down, and the reason is the measure rather than a second decision.** A run of
|
|
111
|
+
* prose is held to `--container-measure`, 42rem. The Display step is 3rem, and a
|
|
112
|
+
* 42rem column is fourteen of them, so a document title set at Display is a
|
|
113
|
+
* title broken into fragments rather than a title. So the child treatments set
|
|
114
|
+
* `h1` at `4xl` and descend one authored step per level to `lg` at `h5` and
|
|
115
|
+
* `h6`, which is the same scale, the same floor and the same rule about a
|
|
116
|
+
* heading never rendering smaller than the copy it introduces, entered at the
|
|
117
|
+
* rung that fits the column. A document and a page are therefore one hierarchy
|
|
118
|
+
* at different reading widths rather than two answers to one question.
|
|
85
119
|
*/
|
|
86
120
|
declare function Prose({ children, size, fullWidth, className, ...props }: ProseProps): import("react").JSX.Element;
|
|
87
121
|
export { Prose };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../../src/components/ui/prose.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;CAGP,CAAA;AAEV;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/C;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED
|
|
1
|
+
{"version":3,"file":"prose.d.ts","sourceRoot":"","sources":["../../../src/components/ui/prose.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;GAOG;AACH,QAAA,MAAM,WAAW;;;CAGP,CAAA;AAEV;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/C;;;;OAIG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,iBAAS,KAAK,CAAC,EAAE,QAAQ,EAAE,IAAa,EAAE,SAAiB,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BA0C7F;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -41,13 +41,53 @@ const PROSE_SIZES = {
|
|
|
41
41
|
* type rule gives body copy `text-pretty` and putting it here means a caller's
|
|
42
42
|
* own `<p>` inherits it rather than needing a class of its own.
|
|
43
43
|
*
|
|
44
|
+
* **A table in the run scrolls, and it is the only treatment here that has to
|
|
45
|
+
* change the element's box type to get there.** A `display: table` box cannot be
|
|
46
|
+
* a scroll container: `overflow` applies to block containers, and CSS Tables 3
|
|
47
|
+
* says the overflow property on a table-root or table-wrapper box "when its value
|
|
48
|
+
* is not either visible, clip or hidden, is ignored and treated as if its value
|
|
49
|
+
* was visible". So `overflow-x: auto` written straight onto the table computes
|
|
50
|
+
* away, the table keeps its min-content floor, and a four-column table widens the
|
|
51
|
+
* page instead of scrolling it. `display: block` is what makes the element a block
|
|
52
|
+
* container, and the declaration the code fence above already has then works on
|
|
53
|
+
* it. The row groups are wrapped in an anonymous table box by the fixup rules, and
|
|
54
|
+
* that box still inherits `border-collapse`, so a collapsed table stays collapsed.
|
|
55
|
+
*
|
|
56
|
+
* The consequence worth naming is that the grid inside now sizes to its content up
|
|
57
|
+
* to the measure rather than stretching to fill it, which is what the same
|
|
58
|
+
* technique does everywhere it is used. A table wider than the measure scrolls.
|
|
59
|
+
*
|
|
60
|
+
* The treatment is a CHILD selector, and that is load-bearing rather than
|
|
61
|
+
* incidental. A descendant selector would reach a table the caller has already put
|
|
62
|
+
* in a scroll container of their own, `Table` above all, and `display: block`
|
|
63
|
+
* there would move `caption-side` onto a block box and stop the grid filling the
|
|
64
|
+
* wrapper it arrived in. A direct child is what this component says its content
|
|
65
|
+
* is: the caller's own flow content.
|
|
66
|
+
*
|
|
44
67
|
* It is a server Component: no hook, no context and no client code.
|
|
68
|
+
*
|
|
69
|
+
* **The heading ladder here is the one `SectionHeading` walks, entered one rung
|
|
70
|
+
* down, and the reason is the measure rather than a second decision.** A run of
|
|
71
|
+
* prose is held to `--container-measure`, 42rem. The Display step is 3rem, and a
|
|
72
|
+
* 42rem column is fourteen of them, so a document title set at Display is a
|
|
73
|
+
* title broken into fragments rather than a title. So the child treatments set
|
|
74
|
+
* `h1` at `4xl` and descend one authored step per level to `lg` at `h5` and
|
|
75
|
+
* `h6`, which is the same scale, the same floor and the same rule about a
|
|
76
|
+
* heading never rendering smaller than the copy it introduces, entered at the
|
|
77
|
+
* rung that fits the column. A document and a page are therefore one hierarchy
|
|
78
|
+
* at different reading widths rather than two answers to one question.
|
|
45
79
|
*/
|
|
46
80
|
function Prose({ children, size = 'base', fullWidth = false, className, ...props }) {
|
|
47
81
|
return (_jsx("div", { "data-slot": "prose", "data-size": size, className: cn('text-pretty flex flex-col gap-4 leading-relaxed', fullWidth ? 'max-w-none' : 'max-w-measure', PROSE_SIZES[size],
|
|
48
82
|
// The block treatments. Every child is styled by its own tag so a
|
|
49
83
|
// consumer's plain elements read as the system, and the gaps the flex
|
|
50
84
|
// column owns are the rhythm between blocks.
|
|
51
|
-
'[&_a]:text-foreground [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:underline', '[&_blockquote]:border-border [&_blockquote]:text-muted-foreground [&_blockquote]:border-l-2 [&_blockquote]:pl-4 [&_blockquote]:italic', '[&_code]:bg-muted [&_code]:text-muted-foreground [&_code]:rounded-sm [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-xs', '[&_h1]:text-balance [&_h1]:text-
|
|
85
|
+
'[&_a]:text-foreground [&_a]:underline [&_a]:underline-offset-4 [&_a:hover]:underline', '[&_blockquote]:border-border [&_blockquote]:text-muted-foreground [&_blockquote]:border-l-2 [&_blockquote]:pl-4 [&_blockquote]:italic', '[&_code]:bg-muted [&_code]:text-muted-foreground [&_code]:rounded-sm [&_code]:px-1 [&_code]:py-0.5 [&_code]:font-mono [&_code]:text-xs', '[&_h1]:text-balance [&_h1]:text-4xl [&_h1]:font-semibold [&_h1]:tracking-tight', '[&_h2]:text-balance [&_h2]:mt-2 [&_h2]:text-3xl [&_h2]:font-semibold [&_h2]:tracking-tight', '[&_h3]:text-balance [&_h3]:mt-2 [&_h3]:text-2xl [&_h3]:font-semibold [&_h3]:tracking-tight', '[&_h4]:text-balance [&_h4]:text-xl [&_h4]:font-semibold', '[&_h5]:text-balance [&_h5]:text-lg [&_h5]:font-semibold', '[&_h6]:text-balance [&_h6]:text-lg [&_h6]:font-semibold', '[&_hr]:bg-border [&_hr]:h-px [&_hr]:my-2', '[&_img]:rounded-lg', '[&_li]:leading-relaxed [&_ol]:list-decimal [&_ol]:pl-6 [&_ul]:list-disc [&_ul]:pl-6', '[&_p]:leading-relaxed', '[&_pre]:bg-muted [&_pre]:overflow-x-auto [&_pre]:rounded-lg [&_pre]:p-4 [&_pre]:font-mono [&_pre]:text-xs', '[&_pre_code]:bg-transparent [&_pre_code]:p-0', '[&_strong]:font-semibold',
|
|
86
|
+
// The one treatment that changes a box type rather than decorating one.
|
|
87
|
+
// The reasoning, and the two spec rules it rests on, are in this
|
|
88
|
+
// component's JSDoc: a `display: table` box cannot be a scroll container,
|
|
89
|
+
// and a child selector is what keeps the rule off a table a caller has
|
|
90
|
+
// already wrapped in a scroll container of their own.
|
|
91
|
+
'[&>table]:block [&>table]:w-full [&>table]:overflow-x-auto', '[&_td]:px-3 [&_td]:py-2 [&_td]:align-top [&_th]:px-3 [&_th]:py-2 [&_th]:text-left', className), ...props, children: children }));
|
|
52
92
|
}
|
|
53
93
|
export { Prose };
|
|
@@ -87,7 +87,12 @@ type PulseFigure = {
|
|
|
87
87
|
relations?: readonly PulseRelation[];
|
|
88
88
|
/**
|
|
89
89
|
* Layout only, exactly as on every Component: grid placement and width.
|
|
90
|
-
* Changing a Prism-owned visual property from here is prohibited
|
|
90
|
+
* Changing a Prism-owned visual property from here is prohibited, and this
|
|
91
|
+
* Component spreads no other prop, so there is no second way to do it.
|
|
92
|
+
*
|
|
93
|
+
* It lands on the drawing inside the sideways region rather than on the region
|
|
94
|
+
* itself, so a caller narrowing the figure narrows the drawing and the region
|
|
95
|
+
* still holds the floor.
|
|
91
96
|
*/
|
|
92
97
|
className?: string;
|
|
93
98
|
};
|
|
@@ -175,9 +180,36 @@ export type PulseGraphProps = PulseFigure & ({
|
|
|
175
180
|
* sentence is what a screen reader gets. Pass `decorative` when that sentence
|
|
176
181
|
* already says what the drawing shows.
|
|
177
182
|
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
*
|
|
183
|
+
* **No stroke crosses a label, and every connector still reaches the marks it
|
|
184
|
+
* joins.** An edge used to run from one mark's centre to the other, and a node's
|
|
185
|
+
* name is printed under its mark, so every edge heading downward struck through the
|
|
186
|
+
* name of the node it left. Each label a node prints is now its own obstacle rather
|
|
187
|
+
* than part of one box enclosing the whole node, and an edge is trimmed only against
|
|
188
|
+
* the labels it would actually enter. That direction is the whole of the rule: a
|
|
189
|
+
* name and a note both sit below their mark, so an edge leaving sideways runs along
|
|
190
|
+
* the mark's centre line and clears both, and it stops at the mark's own edge with
|
|
191
|
+
* the ink clearance between. Backing every edge off the widest label at its node
|
|
192
|
+
* instead detached all five connectors on a six-stage rail from the circles they
|
|
193
|
+
* connect, which is a drawing of a shape with no relations on it. The Component
|
|
194
|
+
* cannot know that two labels will not collide with one another, which is the
|
|
195
|
+
* caller's positions to settle, and it does know every mark's radius, both label
|
|
196
|
+
* offsets and every label's own width, because a monospaced label's width is its
|
|
197
|
+
* character count. The rail is held to
|
|
198
|
+
* the same clearance rather than to a fixed distance from the canvas bottom,
|
|
199
|
+
* because a note is the deepest ink a node draws and a lane whose mark lands low
|
|
200
|
+
* put it under the rail. `test/pulse-graph.test.tsx` asserts both halves as
|
|
201
|
+
* geometry rather than the presence of a class name.
|
|
202
|
+
*
|
|
203
|
+
* **No label is drawn below `text-xs`.** The drawing is wrapped in a container
|
|
204
|
+
* that scrolls sideways, and the drawing itself holds a floor of its own
|
|
205
|
+
* coordinate space, so a phone sees the whole graph at a legible size rather than
|
|
206
|
+
* the whole graph at six pixels. That is the same bargain `Table` strikes with
|
|
207
|
+
* seven columns, and it is a bargain rather than an accident because the
|
|
208
|
+
* alternative is a picture of a shape with nothing written on it.
|
|
209
|
+
*
|
|
210
|
+
* Positions are the caller's, and two labels crossing one another is still the
|
|
211
|
+
* caller's to settle. A relation naming a node that is not in `nodes` is dropped
|
|
212
|
+
* and counted on the element.
|
|
181
213
|
*/
|
|
182
214
|
declare function PulseGraph({ nodes, relations, label, decorative, className, }: PulseGraphProps): import("react").JSX.Element;
|
|
183
215
|
export { PulseGraph };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulse-graph.d.ts","sourceRoot":"","sources":["../../../src/components/ui/pulse-graph.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pulse-graph.d.ts","sourceRoot":"","sources":["../../../src/components/ui/pulse-graph.tsx"],"names":[],"mappings":"AAaA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAA;IACV;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,CAAC,EAAE,MAAM,CAAA;IACT,0EAA0E;IAC1E,CAAC,EAAE,MAAM,CAAA;IACT;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAA;IACZ,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,iDAAiD;AACjD,KAAK,WAAW,GAAG;IACjB;;;;;OAKG;IACH,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;IAC3B;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,CAAA;IACpC;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,CACI;IACE;;;;OAIG;IACH,UAAU,EAAE,IAAI,CAAA;IAChB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GACD;IACE,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,CACJ,CAAA;AA2MH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8FG;AACH,iBAAS,UAAU,CAAC,EAClB,KAAK,EACL,SAAc,EACd,KAAK,EACL,UAAkB,EAClB,SAAS,GACV,EAAE,eAAe,+BAoMjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { INK_CLEARANCE, LABEL_DESCENT, fitPoints, strokeBetween, } from '../../lib/figure.js';
|
|
2
3
|
import { cn } from '../../lib/utils.js';
|
|
3
4
|
/**
|
|
4
5
|
* The canvas the graph draws into, in its own user units.
|
|
@@ -7,18 +8,49 @@ import { cn } from '../../lib/utils.js';
|
|
|
7
8
|
* the reason `Diagram` gives: type inside a scaled SVG is sized in the SVG's
|
|
8
9
|
* own user units, so a viewBox derived from a caller's coordinates would make
|
|
9
10
|
* the label size a function of how large a number the caller happened to use.
|
|
11
|
+
*
|
|
12
|
+
* **A fixed canvas fixes the ratio, and the ratio was the half of the argument
|
|
13
|
+
* that was missing.** Every label's rendered size is its size in user units times
|
|
14
|
+
* the rendered width over this number, so a drawing that is right at a desktop
|
|
15
|
+
* width shrinks with its container until it says nothing. In the 356 pixels a
|
|
16
|
+
* phone leaves a PulseGraph, a stage name came to 7.23 pixels and a node's note
|
|
17
|
+
* to 5.56, which is a picture of a shape with nothing written on it. The canvas
|
|
18
|
+
* is still the right answer and it is what keeps a label a constant rather than a
|
|
19
|
+
* function of the caller's arithmetic; what it does not do is set a floor, and
|
|
20
|
+
* `LEGIBLE_MIN_WIDTH` is that floor. `DESIGN.md` states the rule under The figure
|
|
21
|
+
* floor.
|
|
10
22
|
*/
|
|
11
23
|
const CANVAS_WIDTH = 640;
|
|
12
24
|
const CANVAS_HEIGHT = 360;
|
|
25
|
+
/**
|
|
26
|
+
* The width below which the drawing stops being legible, as a spacing multiple.
|
|
27
|
+
*
|
|
28
|
+
* The floor is `CANVAS_WIDTH` itself, so the rule is one sentence: the drawing is
|
|
29
|
+
* never rendered narrower than its own coordinate space, one user unit is
|
|
30
|
+
* therefore never less than one pixel, and the smallest label in it is
|
|
31
|
+
* `NODE_NOTE_SIZE`, which is the size `--text-xs` resolves to. So no label this
|
|
32
|
+
* drawing sets is smaller than `text-xs`, and at the floor the smallest is
|
|
33
|
+
* exactly it.
|
|
34
|
+
*
|
|
35
|
+
* **A container narrower than the floor scrolls rather than shrinking, and that
|
|
36
|
+
* is the answer this repository already gives a table and a board.** A table that
|
|
37
|
+
* restacks has stopped being a table, and a graph whose stage names are seven
|
|
38
|
+
* pixels tall has stopped being a graph: it is the shape with nothing written on
|
|
39
|
+
* it a reader can read. So the drawing holds its size and the container moves
|
|
40
|
+
* under it, which is what `Table` does with seven columns and what `Gantt01`
|
|
41
|
+
* does with a schedule of names and bars.
|
|
42
|
+
*
|
|
43
|
+
* `160` is `CANVAS_WIDTH` as a multiple of the authored spacing base, which is
|
|
44
|
+
* how a width nobody held a separate decision for is written.
|
|
45
|
+
*/
|
|
46
|
+
const LEGIBLE_MIN_WIDTH = 'min-w-160';
|
|
13
47
|
/**
|
|
14
48
|
* The band left empty around the fitted points, in user units.
|
|
15
49
|
*
|
|
16
|
-
*
|
|
17
|
-
* pulse graph is read as a sequence running left to
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* collide with. Reserving it once here is cheaper than every caller learning
|
|
21
|
-
* where not to put a node.
|
|
50
|
+
* The same band `Diagram` keeps on its top and its two sides, and the foot
|
|
51
|
+
* carries more than that: a pulse graph is read as a sequence running left to
|
|
52
|
+
* right, so the band below the fitted area holds the rail, and a lane whose mark
|
|
53
|
+
* lands low puts its note in the gap `RAIL_BAND` left rather than under the rail.
|
|
22
54
|
*/
|
|
23
55
|
const PADDING = 56;
|
|
24
56
|
/** The node mark's radius. A circle, so no corner radius for the pack to move. */
|
|
@@ -29,14 +61,29 @@ const NODE_RADIUS = 6;
|
|
|
29
61
|
* The authored type scale is in `rem` and cannot be used inside a viewBox, where
|
|
30
62
|
* a font size is a coordinate and not a length on the page. These are geometry,
|
|
31
63
|
* the one thing Tailwind stays authoritative for.
|
|
64
|
+
*
|
|
65
|
+
* The note is twelve user units, which is what `--text-xs` resolves to, so at
|
|
66
|
+
* `LEGIBLE_MIN_WIDTH` it renders at exactly that step and never below it. It was
|
|
67
|
+
* ten, and ten is not a step this system sets interface type at, so a note was the
|
|
68
|
+
* smallest type the whole package emitted anywhere, a figure included. The name is
|
|
69
|
+
* one unit larger, which is the same hierarchy the two have always drawn.
|
|
32
70
|
*/
|
|
33
71
|
const NODE_NAME_SIZE = 13;
|
|
34
72
|
const NODE_NAME_OFFSET = 22;
|
|
35
|
-
const NODE_NOTE_SIZE =
|
|
36
|
-
|
|
73
|
+
const NODE_NOTE_SIZE = 12;
|
|
74
|
+
/**
|
|
75
|
+
* The note's baseline, measured down from the mark's centre.
|
|
76
|
+
*
|
|
77
|
+
* The name's baseline, then the note's own size, then a line of leading, so the
|
|
78
|
+
* second line sits under the first rather than on it. It is the deepest any node
|
|
79
|
+
* draws, and the rail band below is measured from it.
|
|
80
|
+
*/
|
|
81
|
+
const NODE_NOTE_OFFSET = NODE_NAME_OFFSET + NODE_NOTE_SIZE + 5;
|
|
82
|
+
/** The deepest ink a node draws below its mark's centre, in user units. */
|
|
83
|
+
const NODE_NOTE_DEPTH = NODE_NOTE_OFFSET + LABEL_DESCENT * NODE_NOTE_SIZE;
|
|
37
84
|
/**
|
|
38
85
|
* The rail the marker rides, in user units, measured from the bottom of the
|
|
39
|
-
*
|
|
86
|
+
* canvas.
|
|
40
87
|
*
|
|
41
88
|
* It is a separate element from the edges because it is a different claim: the
|
|
42
89
|
* edges say what connects to what, and the rail says there is an order. A graph
|
|
@@ -46,28 +93,64 @@ const NODE_NOTE_OFFSET = 35;
|
|
|
46
93
|
const RAIL_OFFSET = 74;
|
|
47
94
|
const RAIL_THICKNESS = 1.5;
|
|
48
95
|
/**
|
|
49
|
-
* The
|
|
50
|
-
* the leftover shared out evenly.
|
|
96
|
+
* The band the rail reserves at the foot of the canvas, in user units.
|
|
51
97
|
*
|
|
52
|
-
*
|
|
53
|
-
* the
|
|
98
|
+
* It is the rail's own distance up from the bottom, then half its thickness, then
|
|
99
|
+
* the clearance the drawing keeps between two pieces of ink, then the deepest ink
|
|
100
|
+
* a node draws below its mark. The fitted area stops above the whole of it, so a
|
|
101
|
+
* lane whose mark lands on the bottom of that area puts its note in the gap this
|
|
102
|
+
* band left rather than on the rail's own stroke. It is arithmetic rather than a
|
|
103
|
+
* number because every term in it has its own reason, and retuning the rail or the
|
|
104
|
+
* type moves the fit with it rather than leaving the band behind.
|
|
54
105
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
106
|
+
const RAIL_BAND = RAIL_OFFSET + RAIL_THICKNESS / 2 + INK_CLEARANCE + NODE_NOTE_DEPTH;
|
|
107
|
+
/**
|
|
108
|
+
* The labels this drawing prints under one node, which are what a stroke leaving it
|
|
109
|
+
* has to be trimmed against.
|
|
110
|
+
*
|
|
111
|
+
* Each label is its own obstacle rather than one box enclosing both, and that is the
|
|
112
|
+
* whole of the trim rule as it applies here: a node's name and note are both below
|
|
113
|
+
* its mark, so an edge leaving sideways runs along the mark's centre line and never
|
|
114
|
+
* enters either of them, while an edge leaving downward enters both. The arithmetic
|
|
115
|
+
* is `lib/figure`, which is where the shared answer lives; what is left here is the
|
|
116
|
+
* two labels this drawing prints and where it prints them.
|
|
117
|
+
*/
|
|
118
|
+
function nodeLabels(node) {
|
|
119
|
+
const labels = [{ text: node.name, size: NODE_NAME_SIZE, offset: NODE_NAME_OFFSET }];
|
|
120
|
+
if (node.note !== undefined) {
|
|
121
|
+
labels.push({ text: node.note, size: NODE_NOTE_SIZE, offset: NODE_NOTE_OFFSET });
|
|
122
|
+
}
|
|
123
|
+
return labels;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* The head a carrying edge grows, at the end of the stroke a reader can see.
|
|
127
|
+
*
|
|
128
|
+
* The head is part of the stroke rather than part of the target mark, so it is
|
|
129
|
+
* placed at the stroke's own end and not at an inset from the mark's centre. A
|
|
130
|
+
* head measured from the centre would sit inside the clearance the stroke stops at
|
|
131
|
+
* and the two would read as two marks with a gap between them rather than as one
|
|
132
|
+
* arrow. Measured from the stroke's own end the tip is one ink clearance from the
|
|
133
|
+
* mark it points at, which is the same gap every other end of every other connector
|
|
134
|
+
* on the rail keeps.
|
|
135
|
+
*
|
|
136
|
+
* This is the one piece of the drawing that earns its place by being static. An
|
|
137
|
+
* edge that carries something has to say so to a reader who has turned every
|
|
138
|
+
* animation off, and a dashed overlay read as direction only while the dashes
|
|
139
|
+
* were moving, so the claim vanished for exactly the reader who most needed it.
|
|
140
|
+
* A head does not move, so it does not need a cycle, and it is legible in a
|
|
141
|
+
* printed page. The rail's travelling marker is then free to be pure atmosphere
|
|
142
|
+
* rather than the only thing carrying the meaning.
|
|
143
|
+
*/
|
|
144
|
+
function flowHead(line) {
|
|
145
|
+
const dx = line.to.x - line.from.x;
|
|
146
|
+
const dy = line.to.y - line.from.y;
|
|
147
|
+
const length = Math.hypot(dx, dy);
|
|
148
|
+
if (length === 0)
|
|
149
|
+
return null;
|
|
150
|
+
const ux = dx / length;
|
|
151
|
+
const uy = dy / length;
|
|
152
|
+
const head = 5;
|
|
153
|
+
return (_jsx("path", { "data-slot": "pulse-graph-flow", d: `M ${line.to.x - uy * head} ${line.to.y + ux * head} L ${line.to.x} ${line.to.y} L ${line.to.x + uy * head} ${line.to.y - ux * head}`, strokeWidth: 1.5, fill: "none", className: "stroke-brand-ink" }));
|
|
71
154
|
}
|
|
72
155
|
/**
|
|
73
156
|
* The lanes present, in ascending order.
|
|
@@ -159,19 +242,40 @@ function stagger(lane) {
|
|
|
159
242
|
* sentence is what a screen reader gets. Pass `decorative` when that sentence
|
|
160
243
|
* already says what the drawing shows.
|
|
161
244
|
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
245
|
+
* **No stroke crosses a label, and every connector still reaches the marks it
|
|
246
|
+
* joins.** An edge used to run from one mark's centre to the other, and a node's
|
|
247
|
+
* name is printed under its mark, so every edge heading downward struck through the
|
|
248
|
+
* name of the node it left. Each label a node prints is now its own obstacle rather
|
|
249
|
+
* than part of one box enclosing the whole node, and an edge is trimmed only against
|
|
250
|
+
* the labels it would actually enter. That direction is the whole of the rule: a
|
|
251
|
+
* name and a note both sit below their mark, so an edge leaving sideways runs along
|
|
252
|
+
* the mark's centre line and clears both, and it stops at the mark's own edge with
|
|
253
|
+
* the ink clearance between. Backing every edge off the widest label at its node
|
|
254
|
+
* instead detached all five connectors on a six-stage rail from the circles they
|
|
255
|
+
* connect, which is a drawing of a shape with no relations on it. The Component
|
|
256
|
+
* cannot know that two labels will not collide with one another, which is the
|
|
257
|
+
* caller's positions to settle, and it does know every mark's radius, both label
|
|
258
|
+
* offsets and every label's own width, because a monospaced label's width is its
|
|
259
|
+
* character count. The rail is held to
|
|
260
|
+
* the same clearance rather than to a fixed distance from the canvas bottom,
|
|
261
|
+
* because a note is the deepest ink a node draws and a lane whose mark lands low
|
|
262
|
+
* put it under the rail. `test/pulse-graph.test.tsx` asserts both halves as
|
|
263
|
+
* geometry rather than the presence of a class name.
|
|
264
|
+
*
|
|
265
|
+
* **No label is drawn below `text-xs`.** The drawing is wrapped in a container
|
|
266
|
+
* that scrolls sideways, and the drawing itself holds a floor of its own
|
|
267
|
+
* coordinate space, so a phone sees the whole graph at a legible size rather than
|
|
268
|
+
* the whole graph at six pixels. That is the same bargain `Table` strikes with
|
|
269
|
+
* seven columns, and it is a bargain rather than an accident because the
|
|
270
|
+
* alternative is a picture of a shape with nothing written on it.
|
|
271
|
+
*
|
|
272
|
+
* Positions are the caller's, and two labels crossing one another is still the
|
|
273
|
+
* caller's to settle. A relation naming a node that is not in `nodes` is dropped
|
|
274
|
+
* and counted on the element.
|
|
165
275
|
*/
|
|
166
276
|
function PulseGraph({ nodes, relations = [], label, decorative = false, className, }) {
|
|
167
|
-
const place = fit(nodes);
|
|
168
277
|
const byId = new Map(nodes.map((node) => [node.id, node]));
|
|
169
278
|
const lanes = lanesOf(nodes);
|
|
170
|
-
const drawn = relations.flatMap((relation) => {
|
|
171
|
-
const from = byId.get(relation.from);
|
|
172
|
-
const to = byId.get(relation.to);
|
|
173
|
-
return from && to ? [{ relation, from: place(from), to: place(to) }] : [];
|
|
174
|
-
});
|
|
175
279
|
/**
|
|
176
280
|
* The rail's two ends, taken from the lanes that exist rather than from the
|
|
177
281
|
* canvas. A rail as wide as the canvas regardless of where the nodes are would
|
|
@@ -179,6 +283,27 @@ function PulseGraph({ nodes, relations = [], label, decorative = false, classNam
|
|
|
179
283
|
* about a caller's data that the caller did not make.
|
|
180
284
|
*/
|
|
181
285
|
const railNodes = nodes.filter((node) => node.lane !== undefined);
|
|
286
|
+
// A lane's note is the deepest ink a node draws, and the rail sits below the
|
|
287
|
+
// fitted area, so the fit stops above the band the rail reserves. A field has
|
|
288
|
+
// no rail, nothing reserves the foot, and the fit is the same band the top and
|
|
289
|
+
// the two sides get.
|
|
290
|
+
const place = fitPoints(nodes, {
|
|
291
|
+
width: CANVAS_WIDTH,
|
|
292
|
+
height: CANVAS_HEIGHT,
|
|
293
|
+
padding: PADDING,
|
|
294
|
+
bottom: railNodes.length ? CANVAS_HEIGHT - RAIL_BAND : undefined,
|
|
295
|
+
});
|
|
296
|
+
const drawn = relations.flatMap((relation) => {
|
|
297
|
+
const from = byId.get(relation.from);
|
|
298
|
+
const to = byId.get(relation.to);
|
|
299
|
+
if (!from || !to)
|
|
300
|
+
return [];
|
|
301
|
+
// Each end carries its mark's centre and the labels printed under it, because
|
|
302
|
+
// a stroke is trimmed against the labels it would enter and the two are not the
|
|
303
|
+
// same thing.
|
|
304
|
+
const end = (node) => ({ at: place(node), labels: nodeLabels(node) });
|
|
305
|
+
return [{ relation, from: end(from), to: end(to) }];
|
|
306
|
+
});
|
|
182
307
|
const railAt = railNodes.length
|
|
183
308
|
? {
|
|
184
309
|
x0: Math.min(...railNodes.map((node) => place(node).x)) - NODE_RADIUS - 10,
|
|
@@ -186,27 +311,16 @@ function PulseGraph({ nodes, relations = [], label, decorative = false, classNam
|
|
|
186
311
|
}
|
|
187
312
|
: null;
|
|
188
313
|
const railY = CANVAS_HEIGHT - RAIL_OFFSET;
|
|
189
|
-
return (
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
const ux = dx / length;
|
|
201
|
-
const uy = dy / length;
|
|
202
|
-
const hx = to.x - ux * inset;
|
|
203
|
-
const hy = to.y - uy * inset;
|
|
204
|
-
const head = 5;
|
|
205
|
-
return (_jsx("path", { "data-slot": "pulse-graph-flow", d: `M ${hx - uy * head} ${hy + ux * head} L ${hx} ${hy} L ${hx + uy * head} ${hy - ux * head}`, strokeWidth: 1.5, fill: "none", className: "stroke-brand-ink" }));
|
|
206
|
-
})()
|
|
207
|
-
: null] }, `${relation.from}-${relation.to}`))), nodes.map((node) => {
|
|
208
|
-
const at = place(node);
|
|
209
|
-
return (_jsxs("g", { "data-slot": "pulse-graph-node", "data-node": node.id, "data-emphasis": node.emphasis || undefined, "data-lane": node.lane, children: [node.emphasis ? (_jsx("circle", { "data-slot": "pulse-graph-halo", cx: at.x, cy: at.y, r: NODE_RADIUS, strokeWidth: 0, className: cn('fill-brand-ink/25', 'prism-ambient-pulse', stagger(node.lane ?? 0)) })) : null, _jsx("circle", { cx: at.x, cy: at.y, r: NODE_RADIUS, strokeWidth: node.emphasis ? 2 : 1, className: cn(node.emphasis ? 'fill-accent stroke-brand-ink' : 'fill-card stroke-border') }), _jsx("text", { x: at.x, y: at.y + NODE_NAME_OFFSET, fontSize: NODE_NAME_SIZE, textAnchor: "middle", className: "fill-foreground font-mono", children: node.name }), node.note ? (_jsx("text", { x: at.x, y: at.y + NODE_NOTE_OFFSET, fontSize: NODE_NOTE_SIZE, textAnchor: "middle", className: "fill-muted-foreground font-mono", children: node.note })) : null] }, node.id));
|
|
210
|
-
})] }));
|
|
314
|
+
return (
|
|
315
|
+
// The sideways region, for the reason `LEGIBLE_MIN_WIDTH` states: the drawing
|
|
316
|
+
// holds a legible floor and a container narrower than it moves under the
|
|
317
|
+
// drawing rather than the drawing shrinking below what it says.
|
|
318
|
+
_jsx("div", { "data-slot": "pulse-graph-container", className: "w-full overflow-x-auto", children: _jsxs("svg", { "data-slot": "pulse-graph", "data-unresolved-relations": relations.length - drawn.length, "data-lanes": lanes.length, viewBox: `0 0 ${CANVAS_WIDTH} ${CANVAS_HEIGHT}`, xmlns: "http://www.w3.org/2000/svg", role: decorative ? undefined : 'img', "aria-label": decorative ? undefined : label, "aria-hidden": decorative || undefined, className: cn('h-auto w-full', LEGIBLE_MIN_WIDTH, className), children: [railAt ? (_jsxs("g", { "data-slot": "pulse-graph-rail", children: [_jsx("line", { "data-slot": "pulse-graph-rail-line", x1: railAt.x0, y1: railY, x2: railAt.x1, y2: railY, strokeWidth: RAIL_THICKNESS, className: "stroke-border" }), _jsx("g", { "data-slot": "pulse-graph-marker", className: "prism-ambient-travel prism-ambient-delay-1", style: { '--ambient-travel-distance': `${railAt.x1 - railAt.x0}px` }, children: _jsx("rect", { x: railAt.x0 - 2.5, y: railY - 2.5, width: 5, height: 5, rx: 2.5, className: "fill-brand-ink" }) })] })) : null, drawn.map(({ relation, from, to }) => {
|
|
319
|
+
const line = strokeBetween(from.at, to.at, NODE_RADIUS, from.labels, to.labels);
|
|
320
|
+
return (_jsxs("g", { "data-slot": "pulse-graph-relation", "data-relation": `${relation.from}-${relation.to}`, "data-carries": relation.carries || undefined, children: [_jsx("line", { x1: line.from.x, y1: line.from.y, x2: line.to.x, y2: line.to.y, strokeWidth: 1, strokeDasharray: relation.indirect ? '4 4' : undefined, className: "stroke-muted-foreground/50 fill-none" }), relation.carries ? flowHead(line) : null] }, `${relation.from}-${relation.to}`));
|
|
321
|
+
}), nodes.map((node) => {
|
|
322
|
+
const at = place(node);
|
|
323
|
+
return (_jsxs("g", { "data-slot": "pulse-graph-node", "data-node": node.id, "data-emphasis": node.emphasis || undefined, "data-lane": node.lane, children: [node.emphasis ? (_jsx("circle", { "data-slot": "pulse-graph-halo", cx: at.x, cy: at.y, r: NODE_RADIUS, strokeWidth: 0, className: cn('fill-brand-ink/25', 'prism-ambient-pulse', stagger(node.lane ?? 0)) })) : null, _jsx("circle", { cx: at.x, cy: at.y, r: NODE_RADIUS, strokeWidth: node.emphasis ? 2 : 1, className: cn(node.emphasis ? 'fill-accent stroke-brand-ink' : 'fill-card stroke-border') }), _jsx("text", { x: at.x, y: at.y + NODE_NAME_OFFSET, fontSize: NODE_NAME_SIZE, textAnchor: "middle", className: "fill-foreground font-mono", children: node.name }), node.note ? (_jsx("text", { "data-slot": "pulse-graph-node-note", x: at.x, y: at.y + NODE_NOTE_OFFSET, fontSize: NODE_NOTE_SIZE, textAnchor: "middle", className: "fill-muted-foreground font-mono", children: node.note })) : null] }, node.id));
|
|
324
|
+
})] }) }));
|
|
211
325
|
}
|
|
212
326
|
export { PulseGraph };
|