@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
|
@@ -35,7 +35,10 @@ import { cn } from '../../lib/utils.js';
|
|
|
35
35
|
* open and explains that the query found nothing, because a combobox that closed
|
|
36
36
|
* itself on a non-match tells the reader their keystroke broke the control. The
|
|
37
37
|
* explanation is a prop, since the sentence is the caller's and the query is put
|
|
38
|
-
* into it.
|
|
38
|
+
* into it. The message is a sibling of the listbox and not inside it, because a
|
|
39
|
+
* listbox owns `option` and `group` and nothing else, and the field's
|
|
40
|
+
* `aria-controls` points at the popup rather than at the listbox, because there is
|
|
41
|
+
* no listbox in that state and `aria-controls` is required on an expanded combobox.
|
|
39
42
|
*
|
|
40
43
|
* **The field keeps the caret for the whole interaction.** The arrows move a
|
|
41
44
|
* highlight through the list and leave focus where it is, so a reader can keep
|
|
@@ -67,6 +70,10 @@ function Combobox({ label, items, value, defaultValue = null, onValueChange, emp
|
|
|
67
70
|
const generated = useId();
|
|
68
71
|
const inputId = id ?? generated;
|
|
69
72
|
const listId = `${generated}-list`;
|
|
73
|
+
// The popup the field controls. Separate from the listbox id because the listbox is
|
|
74
|
+
// not rendered at all when nothing matched, and `aria-controls` is a required
|
|
75
|
+
// attribute on an expanded combobox.
|
|
76
|
+
const popupId = `${generated}-popup`;
|
|
70
77
|
const chosen = value === undefined ? ownValue : value;
|
|
71
78
|
/** The chosen option, resolved against the option set the caller passed. */
|
|
72
79
|
const chosenItem = useMemo(() => items.find((item) => item.value === chosen) ?? null, [items, chosen]);
|
|
@@ -208,7 +215,7 @@ function Combobox({ label, items, value, defaultValue = null, onValueChange, emp
|
|
|
208
215
|
list.querySelector('[data-active="true"]')?.scrollIntoView({ block: 'nearest' });
|
|
209
216
|
}, [activeIndex, isOpen]);
|
|
210
217
|
const activeRow = isOpen ? ranked[activeIndex] : undefined;
|
|
211
|
-
return (_jsxs("div", { "data-slot": "combobox", className: cn('relative w-full', className), children: [_jsx("input", { "data-slot": "combobox-input", id: inputId, type: "text", role: "combobox", autoComplete: "off", "aria-expanded": isOpen
|
|
218
|
+
return (_jsxs("div", { "data-slot": "combobox", className: cn('relative w-full', className), children: [_jsx("input", { "data-slot": "combobox-input", id: inputId, type: "text", role: "combobox", autoComplete: "off", "aria-expanded": isOpen, "aria-controls": isOpen ? popupId : undefined, "aria-haspopup": "listbox", "aria-autocomplete": "list", "aria-label": label, "aria-required": required || undefined, "aria-activedescendant": activeRow === undefined ? undefined : `${listId}-option-${activeIndex}`, ...(describedBy === undefined ? null : { 'aria-describedby': describedBy }), ...(placeholder === undefined ? null : { placeholder }), value: query, disabled: disabled, onChange: (event) => {
|
|
212
219
|
const next = event.target.value;
|
|
213
220
|
setQuery(next);
|
|
214
221
|
setActive(0);
|
|
@@ -227,7 +234,16 @@ function Combobox({ label, items, value, defaultValue = null, onValueChange, emp
|
|
|
227
234
|
}, onBlur: () => {
|
|
228
235
|
setOpen(false);
|
|
229
236
|
restore();
|
|
230
|
-
}, onKeyDown: onKeyDown, className: cn('border-input bg-background text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] duration-fast ease-out outline-none md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50') }), name === undefined ? null : (_jsx("input", { type: "hidden", name: name, ...(form === undefined ? null : { form }), value: chosen ?? '', readOnly: true })), isOpen ? (
|
|
237
|
+
}, onKeyDown: onKeyDown, className: cn('border-input bg-background text-foreground placeholder:text-muted-foreground flex h-9 w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] duration-fast ease-out outline-none md:text-sm', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50') }), name === undefined ? null : (_jsx("input", { type: "hidden", name: name, ...(form === undefined ? null : { form }), value: chosen ?? '', readOnly: true })), isOpen ? (
|
|
238
|
+
/*
|
|
239
|
+
* One popup with two children rather than two popups, because the empty
|
|
240
|
+
* message is a sibling of the listbox and not inside it: a listbox owns
|
|
241
|
+
* `option` and `group` and nothing else, so a `<p>` in the empty branch was a
|
|
242
|
+
* phantom row the index counted and no reader could choose. The id on the
|
|
243
|
+
* panel is what the field's `aria-controls` points at, so that reference
|
|
244
|
+
* resolves whether or not there is a listbox to point at.
|
|
245
|
+
*/
|
|
246
|
+
_jsx("div", { id: popupId, "data-slot": "combobox-popup", className: "bg-popover text-popover-foreground absolute z-50 mt-1 w-full min-w-(--anchor-width) rounded-md border p-1 shadow-md", children: ranked.length === 0 ? (_jsxs("p", { "data-slot": "combobox-empty", role: "status", className: "text-muted-foreground px-3 py-6 text-center text-sm", children: [empty.message(trimmed), empty.hint === undefined ? null : (_jsx("span", { className: "mt-1 block text-xs", children: empty.hint }))] })) : (_jsx("div", { "data-slot": "combobox-list", id: listId, ref: listRef, role: "listbox", "aria-label": label, className: "max-h-72 overflow-y-auto", children: ranked.map((hit, index) => {
|
|
231
247
|
const isActive = index === activeIndex;
|
|
232
248
|
return (_jsxs("div", { id: `${listId}-option-${index}`, "data-slot": "combobox-option", "data-active": isActive, role: "option", "aria-selected": hit.item.value === chosen, "aria-disabled": hit.item.disabled || undefined, onMouseEnter: () => {
|
|
233
249
|
if (!hit.item.disabled)
|
|
@@ -238,6 +254,6 @@ function Combobox({ label, items, value, defaultValue = null, onValueChange, emp
|
|
|
238
254
|
// pointer choice is a blur, and the blur is the path that puts
|
|
239
255
|
// the old answer back into the field.
|
|
240
256
|
onMouseDown: (event) => event.preventDefault(), onClick: () => run(hit.item), className: cn('flex cursor-pointer items-baseline justify-between gap-3 rounded-sm px-3 py-2 text-sm outline-none', 'focus-visible:ring-ring focus-visible:ring-[3px]', hit.item.disabled && 'text-muted-foreground cursor-not-allowed opacity-50', !hit.item.disabled && isActive && 'bg-accent text-accent-foreground', !hit.item.disabled && !isActive && 'text-muted-foreground hover:text-foreground'), children: [_jsx("span", { className: "min-w-0 truncate", children: hit.range === undefined ? (hit.item.label) : (_jsxs(_Fragment, { children: [hit.item.label.slice(0, hit.range[0]), _jsx("strong", { className: "font-semibold", children: hit.item.label.slice(hit.range[0], hit.range[1]) }), hit.item.label.slice(hit.range[1])] })) }), hit.item.hint === undefined ? null : (_jsx("span", { className: "shrink-0 text-xs", children: hit.item.hint }))] }, hit.item.value));
|
|
241
|
-
}) }) }))
|
|
257
|
+
}) })) })) : null] }));
|
|
242
258
|
}
|
|
243
259
|
export { Combobox };
|
|
@@ -100,6 +100,17 @@ export interface CommandPaletteProps {
|
|
|
100
100
|
* highlight through the list rather than moving focus into it, so a reader can keep
|
|
101
101
|
* typing while they choose, and the highlighted row carries the state. That is the
|
|
102
102
|
* combobox pattern and it is the reason the arrows do not steal the caret.
|
|
103
|
+
*
|
|
104
|
+
* **A query that matched nothing is a popup that is still open.** The panel stays,
|
|
105
|
+
* it says so in the caller's sentence, and the field announces itself expanded,
|
|
106
|
+
* because a palette that closed itself on a non-match tells the reader their
|
|
107
|
+
* keystroke broke it. The message is a sibling of the listbox rather than a child of
|
|
108
|
+
* it, because a listbox owns `option` and `group` and nothing else, and
|
|
109
|
+
* `aria-controls` points at the palette rather than at the listbox, because the
|
|
110
|
+
* listbox is not on the page in that state and `aria-controls` is required on an
|
|
111
|
+
* expanded combobox. `Combobox`, `MultiCombobox` and `CreatableCombobox` make the
|
|
112
|
+
* same choices, and they make them here rather than each answering the question
|
|
113
|
+
* again.
|
|
103
114
|
*/
|
|
104
115
|
declare function CommandPalette({ open, onOpenChange, label, inputLabel, placeholder, groups, suggest, empty, className, }: CommandPaletteProps): import("react").JSX.Element;
|
|
105
116
|
export { CommandPalette };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../src/components/ui/command-palette.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,0DAA0D;AAC1D,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;CAC9B,CAAA;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,2CAA2C;IAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;KAAE,CAAA;IAC1D;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAeD
|
|
1
|
+
{"version":3,"file":"command-palette.d.ts","sourceRoot":"","sources":["../../../src/components/ui/command-palette.tsx"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED,0DAA0D;AAC1D,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;CAC9B,CAAA;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,2CAA2C;IAC3C,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,MAAM,EAAE,SAAS,YAAY,EAAE,CAAA;IAC/B;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;KAAE,CAAA;IAC1D;;;;;;OAMG;IACH,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5D,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAeD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,iBAAS,cAAc,CAAC,EACtB,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,+BAiUrB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -32,12 +32,27 @@ import { cn } from '../../lib/utils.js';
|
|
|
32
32
|
* highlight through the list rather than moving focus into it, so a reader can keep
|
|
33
33
|
* typing while they choose, and the highlighted row carries the state. That is the
|
|
34
34
|
* combobox pattern and it is the reason the arrows do not steal the caret.
|
|
35
|
+
*
|
|
36
|
+
* **A query that matched nothing is a popup that is still open.** The panel stays,
|
|
37
|
+
* it says so in the caller's sentence, and the field announces itself expanded,
|
|
38
|
+
* because a palette that closed itself on a non-match tells the reader their
|
|
39
|
+
* keystroke broke it. The message is a sibling of the listbox rather than a child of
|
|
40
|
+
* it, because a listbox owns `option` and `group` and nothing else, and
|
|
41
|
+
* `aria-controls` points at the palette rather than at the listbox, because the
|
|
42
|
+
* listbox is not on the page in that state and `aria-controls` is required on an
|
|
43
|
+
* expanded combobox. `Combobox`, `MultiCombobox` and `CreatableCombobox` make the
|
|
44
|
+
* same choices, and they make them here rather than each answering the question
|
|
45
|
+
* again.
|
|
35
46
|
*/
|
|
36
47
|
function CommandPalette({ open, onOpenChange, label, inputLabel, placeholder, groups, suggest, empty, className, }) {
|
|
37
48
|
const [query, setQuery] = useState('');
|
|
38
49
|
const [active, setActive] = useState(0);
|
|
39
50
|
const listRef = useRef(null);
|
|
40
51
|
const titleId = useId();
|
|
52
|
+
// The surface the field controls, which is the palette itself. Separate from the
|
|
53
|
+
// listbox id because the listbox is not rendered at all when nothing matched, and
|
|
54
|
+
// `aria-controls` is a required attribute on an expanded combobox.
|
|
55
|
+
const popupId = `${titleId}-popup`;
|
|
41
56
|
const trimmed = query.trim();
|
|
42
57
|
/**
|
|
43
58
|
* The ranked result: groups in their declared order, items within a group by
|
|
@@ -153,6 +168,10 @@ function CommandPalette({ open, onOpenChange, label, inputLabel, placeholder, gr
|
|
|
153
168
|
// reader is already in. The DialogTitle is still rendered and still names
|
|
154
169
|
// the dialog for assistive technology, which is the whole reason it
|
|
155
170
|
// exists separately from anything visible.
|
|
171
|
+
//
|
|
172
|
+
// The id is the field's `aria-controls`. It is on the surface rather than on
|
|
173
|
+
// the listbox because the listbox is not rendered when nothing matched, and
|
|
174
|
+
// the field is expanded whenever the palette is open.
|
|
156
175
|
, {
|
|
157
176
|
// The palette is a wide, top-anchored surface rather than a centred card,
|
|
158
177
|
// and it carries no visible heading: the search field is what a reader
|
|
@@ -160,17 +179,44 @@ function CommandPalette({ open, onOpenChange, label, inputLabel, placeholder, gr
|
|
|
160
179
|
// reader is already in. The DialogTitle is still rendered and still names
|
|
161
180
|
// the dialog for assistive technology, which is the whole reason it
|
|
162
181
|
// exists separately from anything visible.
|
|
163
|
-
|
|
182
|
+
//
|
|
183
|
+
// The id is the field's `aria-controls`. It is on the surface rather than on
|
|
184
|
+
// the listbox because the listbox is not rendered when nothing matched, and
|
|
185
|
+
// the field is expanded whenever the palette is open.
|
|
186
|
+
id: popupId, side: "top", showCloseButton: false, className: cn('max-w-overlay-palette gap-0 p-0', className), children: [_jsx(DialogTitle, { className: "sr-only", children: label }), _jsx("div", { className: "border-border flex items-center border-b px-3", children: _jsx("input", { "data-slot": "command-palette-input", type: "text", role: "combobox", "aria-expanded": open, "aria-controls": open ? popupId : undefined, "aria-activedescendant": flat[activeIndex] === undefined ? undefined : `${titleId}-item-${flat[activeIndex]?.id}`, "aria-label": inputLabel, ...(placeholder === undefined ? null : { placeholder }), value: query, onChange: (event) => {
|
|
164
187
|
setQuery(event.target.value);
|
|
165
188
|
setActive(0);
|
|
166
189
|
}, onKeyDown: onKeyDown,
|
|
167
190
|
// The field is focused when the palette opens, so a reader can type
|
|
168
191
|
// immediately. Nothing else in the surface is focusable, which is what
|
|
169
192
|
// makes this a combobox rather than a list of buttons.
|
|
170
|
-
autoFocus: true,
|
|
193
|
+
autoFocus: true,
|
|
194
|
+
// The ring is at full strength, and it is drawn at all because this is
|
|
195
|
+
// the control focus lands in and `outline-none` is what removed the
|
|
196
|
+
// browser's indicator from it. A field with no visible focus is a field
|
|
197
|
+
// a keyboard reader cannot say they are inside. The ring and not the
|
|
198
|
+
// border, as `Command` draws it: this field has no border to colour.
|
|
199
|
+
//
|
|
200
|
+
// `text-base` then `md:text-sm`, which is the pair `Input`, `Textarea`,
|
|
201
|
+
// `Combobox`, `Form` and `NumberField` all carry and which this field
|
|
202
|
+
// was the one exception to. The reason is iOS Safari and not a visual
|
|
203
|
+
// one: it zooms the viewport on a focused input under 16 pixels and does
|
|
204
|
+
// not zoom back out, so a palette opened on a phone was a page the reader
|
|
205
|
+
// could not get out of.
|
|
206
|
+
className: "placeholder:text-muted-foreground h-12 w-full bg-transparent text-base outline-none focus-visible:ring-ring focus-visible:ring-[3px] md:text-sm" }) }), results.length === 0 ? (_jsx("div", { "data-slot": "command-palette-empty-state", className: "max-h-80 overflow-y-auto p-1", children: _jsxs("p", { "data-slot": "command-palette-empty", role: "status", className: "text-muted-foreground px-3 py-6 text-center text-sm", children: [empty.message(trimmed), empty.hint === undefined ? null : (_jsx("span", { className: "mt-1 block text-xs", children: empty.hint }))] }) })) : (_jsx("div", { "data-slot": "command-palette-list", id: `${titleId}-list`, ref: listRef, role: "listbox", "aria-label": label, className: "max-h-80 overflow-y-auto p-1", children: results.map((group) => (
|
|
207
|
+
/*
|
|
208
|
+
* `role="group"` and not a bare `<div>`. A listbox owns `option` and
|
|
209
|
+
* `group` and nothing else, so a wrapper with no role puts its options
|
|
210
|
+
* straight into the listbox and the heading beside them becomes an
|
|
211
|
+
* unowned loose text node: a reader hears the heading as another row
|
|
212
|
+
* and has no way to ask what the rows under it belong to. The name is
|
|
213
|
+
* `aria-labelledby` on the heading that is already drawn rather than a
|
|
214
|
+
* second copy of the words in an attribute that could drift from it.
|
|
215
|
+
*/
|
|
216
|
+
_jsxs("div", { role: "group", "aria-labelledby": `${titleId}-group-${group.id}`, "data-slot": "command-palette-group", className: "mb-1 last:mb-0", children: [_jsx("div", { id: `${titleId}-group-${group.id}`, "data-slot": "command-palette-group-label", className: "text-muted-foreground bg-popover text-xs font-medium tracking-wide uppercase sticky top-0 px-3 py-1.5", children: group.label }), group.hits.map((hit) => {
|
|
171
217
|
const index = flat.indexOf(hit.item);
|
|
172
218
|
const isActive = index === activeIndex;
|
|
173
219
|
return (_jsxs("div", { id: `${titleId}-item-${hit.item.id}`, "data-slot": "command-palette-item", "data-active": isActive, role: "option", "aria-selected": isActive, onMouseEnter: () => setActive(index), onClick: () => run(hit.item), className: cn('flex cursor-pointer items-baseline justify-between gap-3 rounded-sm px-3 py-2 text-sm', isActive && 'bg-accent text-accent-foreground', !isActive && 'text-muted-foreground hover:text-foreground'), children: [_jsx("span", { className: "min-w-0 truncate", children: hit.range === undefined ? (hit.item.label) : (_jsxs(_Fragment, { children: [hit.item.label.slice(0, hit.range[0]), _jsx("strong", { className: "text-foreground font-semibold", children: hit.item.label.slice(hit.range[0], hit.range[1]) }), hit.item.label.slice(hit.range[1])] })) }), hit.item.hint === undefined ? null : (_jsx("span", { className: "shrink-0 text-xs", children: hit.item.hint }))] }, hit.item.id));
|
|
174
|
-
})] }, group.id)))
|
|
220
|
+
})] }, group.id))) }))] }) }));
|
|
175
221
|
}
|
|
176
222
|
export { CommandPalette };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The five steps of the intensity scale, from an absent day to a full one.
|
|
4
|
+
*
|
|
5
|
+
* A five-step scale and not a continuous ramp, and the reason is that a reader
|
|
6
|
+
* has to compare two squares at a glance. A continuous scale is smoother and
|
|
7
|
+
* unreadable: the difference between a Tuesday and the Wednesday beside it is a
|
|
8
|
+
* few percent of opacity, which is nothing to see, while the difference between
|
|
9
|
+
* step two and step three is a band the eye can sort without being told what the
|
|
10
|
+
* bands mean. Five is also the number the eye can rank in a column without
|
|
11
|
+
* counting, and a heat grid is read by scanning columns.
|
|
12
|
+
*/
|
|
13
|
+
export type ContributionLevel = 0 | 1 | 2 | 3 | 4;
|
|
14
|
+
/** The props the ContributionGraph accepts. */
|
|
15
|
+
export interface ContributionGraphProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
16
|
+
/**
|
|
17
|
+
* One entry per day, keyed by its own date.
|
|
18
|
+
*
|
|
19
|
+
* `date` is a `YYYY-MM-DD` key because that is the key a collector stores and
|
|
20
|
+
* the one a database index is on, so the caller passes what it already has
|
|
21
|
+
* rather than a second shape this Component would have to convert. The array
|
|
22
|
+
* is in any order: each day is placed by its own key, so a collector that
|
|
23
|
+
* returns newest first draws the same grid as one that returns oldest first.
|
|
24
|
+
*
|
|
25
|
+
* A day with a count of zero is a day the caller looked and found nothing. A
|
|
26
|
+
* day that is not in the array at all is a day nobody reported, and the two are
|
|
27
|
+
* drawn the same way and must be, because there is no third state to draw.
|
|
28
|
+
*/
|
|
29
|
+
days: readonly {
|
|
30
|
+
date: string;
|
|
31
|
+
count: number;
|
|
32
|
+
}[];
|
|
33
|
+
/**
|
|
34
|
+
* The name of the figure, read before the grid and captioned on the table.
|
|
35
|
+
*
|
|
36
|
+
* Required rather than defaulted, for the two reasons `ChartFrame` states: two
|
|
37
|
+
* heat grids on a page are two figures a reader cannot tell apart, and a
|
|
38
|
+
* picture with no name is neither announced nor linkable. A figure named
|
|
39
|
+
* "Chart" is a Component shipping a sentence about a product it knows nothing
|
|
40
|
+
* about.
|
|
41
|
+
*/
|
|
42
|
+
label: string;
|
|
43
|
+
/**
|
|
44
|
+
* The accessible name of one day's square, given the day.
|
|
45
|
+
*
|
|
46
|
+
* Required, and it is the one prop here that is a function rather than data,
|
|
47
|
+
* because it is the one thing Prism cannot compose. "4 contributions on 1
|
|
48
|
+
* March 2026" is a sentence in a language and a calendar, and a design system
|
|
49
|
+
* that wrote it would put English and a Gregorian month name into every
|
|
50
|
+
* consumer's product, in a figure that is otherwise entirely the caller's. The
|
|
51
|
+
* day is passed whole so the caller can say as much or as little as its own
|
|
52
|
+
* words need, and can reach for a translated month or a relative phrase.
|
|
53
|
+
*
|
|
54
|
+
* A day the caller did not report is never named, because there is nothing to
|
|
55
|
+
* name: an absence is not a zero and not a row.
|
|
56
|
+
*/
|
|
57
|
+
dayLabel: (day: {
|
|
58
|
+
date: string;
|
|
59
|
+
count: number;
|
|
60
|
+
}) => string;
|
|
61
|
+
/**
|
|
62
|
+
* How many week columns to draw. @defaultValue 26
|
|
63
|
+
*
|
|
64
|
+
* Half a year, which is the range a contribution graph is read at when the
|
|
65
|
+
* question is "do I keep going" rather than "what did last Tuesday look like".
|
|
66
|
+
* The window is the most recent `weeks` weeks ending with the latest day given,
|
|
67
|
+
* so a day older than the window is not drawn rather than pushing everything
|
|
68
|
+
* else out of view. A grid whose window slid to fit every day would move under
|
|
69
|
+
* the reader every time a collector caught up.
|
|
70
|
+
*/
|
|
71
|
+
weeks?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Which day each row starts on. @defaultValue 1
|
|
74
|
+
*
|
|
75
|
+
* Zero for Sunday and one for Monday, and it is a prop because the caller's
|
|
76
|
+
* week is not the design system's: a grid that started on Monday when the
|
|
77
|
+
* product's week starts on Sunday puts a Saturday in the row above a Monday
|
|
78
|
+
* and the reader has to work that out before they can read anything. The
|
|
79
|
+
* default is Monday because that is the first day ISO 8601 names, and it is
|
|
80
|
+
* overridable for exactly the reason it is right most of the time.
|
|
81
|
+
*/
|
|
82
|
+
weekStartsOn?: 0 | 1;
|
|
83
|
+
/**
|
|
84
|
+
* How a count becomes a level, given the count and the largest count drawn.
|
|
85
|
+
*
|
|
86
|
+
* The default is quartiles of the maximum, and the reason is stated in full on
|
|
87
|
+
* the helper above: a caller that pre-normalises has two chances to get the
|
|
88
|
+
* scale wrong. A caller with a real reason to bucket differently, a log
|
|
89
|
+
* distribution where the top day is a hundred times the median, a set where
|
|
90
|
+
* zero means something other than nothing, passes one function and gets a
|
|
91
|
+
* scale nobody else has to explain.
|
|
92
|
+
*/
|
|
93
|
+
levelFor?: (count: number, max: number) => ContributionLevel;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* A calendar of days, one square each, filled by how much happened on it.
|
|
97
|
+
*
|
|
98
|
+
* **The scale is the caller's counts and this Component's arithmetic.** The
|
|
99
|
+
* caller passes counts and the Component works out the largest count in the
|
|
100
|
+
* window and buckets against it, because a caller that pre-normalises has two
|
|
101
|
+
* chances to get the scale wrong and a mislabelled scale is a lie with a
|
|
102
|
+
* typeface on it. That is the reasoning `PulseSeries` states for its columns and
|
|
103
|
+
* the reason this Item is not a prop called `max` the caller had to divide by.
|
|
104
|
+
* The cost is named rather than hidden: quartiles of the maximum put most squares
|
|
105
|
+
* at level one or two when one day is an outlier, because that is what quartiles
|
|
106
|
+
* of an outlier are. A caller with a distribution like that passes `levelFor` and
|
|
107
|
+
* the cost goes away.
|
|
108
|
+
*
|
|
109
|
+
* **The maximum is taken from the days that are drawn, not from every day given.**
|
|
110
|
+
* A day that falls outside the window is neither drawn nor tabulated, and letting
|
|
111
|
+
* one into the maximum would stretch the scale around a square that is not in the
|
|
112
|
+
* picture, which is the quietest way a chart can be wrong. That is the rule
|
|
113
|
+
* `ChartFrame` states for a value past the end of its categories.
|
|
114
|
+
*
|
|
115
|
+
* **The four filled levels are one token at four strengths, never five
|
|
116
|
+
* colours.** `primary` at a quarter, a half, three quarters and full, over a
|
|
117
|
+
* `muted` empty cell. A ramp of five authored colour tokens would have been a
|
|
118
|
+
* second set of colour roles for a scale the alpha modifier already expresses, and
|
|
119
|
+
* it would not have moved with a scoped pack boundary the way an alpha step on one
|
|
120
|
+
* semantic role does. The cost is that the five steps are the same hue, so the
|
|
121
|
+
* grid reads as intensity rather than as categories, which is what a calendar of
|
|
122
|
+
* activity should read as.
|
|
123
|
+
*
|
|
124
|
+
* **A day the caller did not report is an absence, not a zero, and the two look
|
|
125
|
+
* the same on purpose.** Both are the empty cell, because there is no third
|
|
126
|
+
* drawing available: a hole in the grid would imply something happened, and a
|
|
127
|
+
* zero-filled cell for an unreported day would claim a measurement nobody made.
|
|
128
|
+
* The difference survives where it matters, in the table, where an unreported day
|
|
129
|
+
* has no row at all and a reported zero has a row reading zero. A short `days`
|
|
130
|
+
* array therefore leaves the leading weeks of the window empty rather than
|
|
131
|
+
* compressing the days it has, because a compressed grid is a grid whose cells no
|
|
132
|
+
* longer mean days.
|
|
133
|
+
*
|
|
134
|
+
* **Each square is named by the caller and the numbers are also in a table.** The
|
|
135
|
+
* squares carry `dayLabel` rather than a name this Component composed, because a
|
|
136
|
+
* composed name is a sentence in English and a Gregorian month. The counts are
|
|
137
|
+
* additionally rendered as a visually hidden table from the same array, so a
|
|
138
|
+
* screen reader's table navigation can reach a number directly and a crawler
|
|
139
|
+
* indexing the page finds the figures. The table has one row per reported day, its
|
|
140
|
+
* row head is the caller's own date key and its caption is the caller's own label;
|
|
141
|
+
* it has no column heading, because this Item has no word for "count" that is true
|
|
142
|
+
* in the caller's domain and inventing one would be a claim.
|
|
143
|
+
*
|
|
144
|
+
* The cost of naming every square is that a screen reader meets one stop per day
|
|
145
|
+
* before it reaches the table, which is a lot of stops for a hundred and eighty-two
|
|
146
|
+
* squares. That is the trade this design makes, and it is the same trade
|
|
147
|
+
* `ContributionGraph`'s table makes in the other direction: the grid answers "which
|
|
148
|
+
* days", the table answers "how many".
|
|
149
|
+
*
|
|
150
|
+
* It is a server Component. The window is arithmetic over props, there is no
|
|
151
|
+
* clock to read and no state to hold, so a contribution graph on a static page
|
|
152
|
+
* costs no client code.
|
|
153
|
+
*/
|
|
154
|
+
declare function ContributionGraph({ className, days, label, dayLabel, weeks, weekStartsOn, levelFor, ...props }: ContributionGraphProps): import("react").JSX.Element;
|
|
155
|
+
export { ContributionGraph };
|
|
156
|
+
//# sourceMappingURL=contribution-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contribution-graph.d.ts","sourceRoot":"","sources":["../../../src/components/ui/contribution-graph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAK3C;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAyEjD,+CAA+C;AAC/C,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACrF;;;;;;;;;;;;OAYG;IACH,IAAI,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChD;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;;;;;OAaG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IAC1D;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACpB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,iBAAiB,CAAA;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,KAAU,EACV,YAAgB,EAChB,QAAoB,EACpB,GAAG,KAAK,EACT,EAAE,sBAAsB,+BAkGxB;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Table, TableBody, TableCaption, TableCell, TableHead, TableRow } from './table.js';
|
|
3
|
+
import { cn } from '../../lib/utils.js';
|
|
4
|
+
/**
|
|
5
|
+
* The fill each level is drawn in.
|
|
6
|
+
*
|
|
7
|
+
* Level zero is the empty cell, and it is the `muted` surface rather than a pale
|
|
8
|
+
* primary, so "nothing here" is visibly a different thing from "a little here".
|
|
9
|
+
* The other four are the same `primary` role at four alpha steps, so the scale
|
|
10
|
+
* is one token at four strengths and moves as a unit when the pack does. The
|
|
11
|
+
* alternative was a ramp of five authored colours, and that would have been a
|
|
12
|
+
* second set of colour tokens for a scale the alpha modifier already expresses.
|
|
13
|
+
*/
|
|
14
|
+
const LEVEL_FILL = {
|
|
15
|
+
0: 'bg-muted',
|
|
16
|
+
1: 'bg-primary/25',
|
|
17
|
+
2: 'bg-primary/50',
|
|
18
|
+
3: 'bg-primary/75',
|
|
19
|
+
4: 'bg-primary',
|
|
20
|
+
};
|
|
21
|
+
/** Milliseconds in a day, which is the unit a calendar is counted in. */
|
|
22
|
+
const DAY = 86_400_000;
|
|
23
|
+
/** The shape of a caller's day key, checked rather than assumed. */
|
|
24
|
+
const DAY_KEY = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
25
|
+
/**
|
|
26
|
+
* The default bucketing: quartiles of the largest count in the window.
|
|
27
|
+
*
|
|
28
|
+
* A caller that pre-normalises has two chances to get the scale wrong, and a
|
|
29
|
+
* mislabelled axis is a lie with a typeface on it, which is the reason
|
|
30
|
+
* `PulseSeries` gives for taking raw magnitudes and scaling them against the
|
|
31
|
+
* tallest column. So this takes a count and the maximum the Component worked out
|
|
32
|
+
* from the days it drew, and the caller never divides anything. A count of zero
|
|
33
|
+
* or less is level zero whatever the maximum is, because a negative count is not
|
|
34
|
+
* a quiet day, it is data that is wrong, and this Component has no level to put
|
|
35
|
+
* that in.
|
|
36
|
+
*/
|
|
37
|
+
function quartiles(count, max) {
|
|
38
|
+
if (!(count > 0))
|
|
39
|
+
return 0;
|
|
40
|
+
if (!(max > 0))
|
|
41
|
+
return 4;
|
|
42
|
+
const share = count / max;
|
|
43
|
+
if (share <= 0.25)
|
|
44
|
+
return 1;
|
|
45
|
+
if (share <= 0.5)
|
|
46
|
+
return 2;
|
|
47
|
+
if (share <= 0.75)
|
|
48
|
+
return 3;
|
|
49
|
+
return 4;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A caller's day key as a count of days from the epoch, or `null` for a key the
|
|
53
|
+
* calendar does not have.
|
|
54
|
+
*
|
|
55
|
+
* The round trip is checked rather than trusted, because `Date.UTC` accepts a
|
|
56
|
+
* 31st of February and hands back the 3rd of March, so a key that names a day
|
|
57
|
+
* that does not exist would be drawn on the wrong cell and the graph would be
|
|
58
|
+
* quietly wrong in a way no reader could see. Returning `null` lets the caller
|
|
59
|
+
* refuse the whole set rather than move one square onto a day it was not
|
|
60
|
+
* reported for.
|
|
61
|
+
*/
|
|
62
|
+
function epochDayOf(key) {
|
|
63
|
+
const parts = DAY_KEY.exec(key);
|
|
64
|
+
if (parts === null)
|
|
65
|
+
return null;
|
|
66
|
+
const at = Date.UTC(Number(parts[1]), Number(parts[2]) - 1, Number(parts[3]));
|
|
67
|
+
return new Date(at).toISOString().slice(0, 10) === key ? Math.floor(at / DAY) : null;
|
|
68
|
+
}
|
|
69
|
+
/** Which day of the week a day count names, with Sunday as zero. */
|
|
70
|
+
function weekdayOf(day) {
|
|
71
|
+
// The epoch was a Thursday, which is four days past Sunday, so adding four and
|
|
72
|
+
// taking the remainder counts from Sunday without a lookup table.
|
|
73
|
+
return (((day + 4) % 7) + 7) % 7;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A calendar of days, one square each, filled by how much happened on it.
|
|
77
|
+
*
|
|
78
|
+
* **The scale is the caller's counts and this Component's arithmetic.** The
|
|
79
|
+
* caller passes counts and the Component works out the largest count in the
|
|
80
|
+
* window and buckets against it, because a caller that pre-normalises has two
|
|
81
|
+
* chances to get the scale wrong and a mislabelled scale is a lie with a
|
|
82
|
+
* typeface on it. That is the reasoning `PulseSeries` states for its columns and
|
|
83
|
+
* the reason this Item is not a prop called `max` the caller had to divide by.
|
|
84
|
+
* The cost is named rather than hidden: quartiles of the maximum put most squares
|
|
85
|
+
* at level one or two when one day is an outlier, because that is what quartiles
|
|
86
|
+
* of an outlier are. A caller with a distribution like that passes `levelFor` and
|
|
87
|
+
* the cost goes away.
|
|
88
|
+
*
|
|
89
|
+
* **The maximum is taken from the days that are drawn, not from every day given.**
|
|
90
|
+
* A day that falls outside the window is neither drawn nor tabulated, and letting
|
|
91
|
+
* one into the maximum would stretch the scale around a square that is not in the
|
|
92
|
+
* picture, which is the quietest way a chart can be wrong. That is the rule
|
|
93
|
+
* `ChartFrame` states for a value past the end of its categories.
|
|
94
|
+
*
|
|
95
|
+
* **The four filled levels are one token at four strengths, never five
|
|
96
|
+
* colours.** `primary` at a quarter, a half, three quarters and full, over a
|
|
97
|
+
* `muted` empty cell. A ramp of five authored colour tokens would have been a
|
|
98
|
+
* second set of colour roles for a scale the alpha modifier already expresses, and
|
|
99
|
+
* it would not have moved with a scoped pack boundary the way an alpha step on one
|
|
100
|
+
* semantic role does. The cost is that the five steps are the same hue, so the
|
|
101
|
+
* grid reads as intensity rather than as categories, which is what a calendar of
|
|
102
|
+
* activity should read as.
|
|
103
|
+
*
|
|
104
|
+
* **A day the caller did not report is an absence, not a zero, and the two look
|
|
105
|
+
* the same on purpose.** Both are the empty cell, because there is no third
|
|
106
|
+
* drawing available: a hole in the grid would imply something happened, and a
|
|
107
|
+
* zero-filled cell for an unreported day would claim a measurement nobody made.
|
|
108
|
+
* The difference survives where it matters, in the table, where an unreported day
|
|
109
|
+
* has no row at all and a reported zero has a row reading zero. A short `days`
|
|
110
|
+
* array therefore leaves the leading weeks of the window empty rather than
|
|
111
|
+
* compressing the days it has, because a compressed grid is a grid whose cells no
|
|
112
|
+
* longer mean days.
|
|
113
|
+
*
|
|
114
|
+
* **Each square is named by the caller and the numbers are also in a table.** The
|
|
115
|
+
* squares carry `dayLabel` rather than a name this Component composed, because a
|
|
116
|
+
* composed name is a sentence in English and a Gregorian month. The counts are
|
|
117
|
+
* additionally rendered as a visually hidden table from the same array, so a
|
|
118
|
+
* screen reader's table navigation can reach a number directly and a crawler
|
|
119
|
+
* indexing the page finds the figures. The table has one row per reported day, its
|
|
120
|
+
* row head is the caller's own date key and its caption is the caller's own label;
|
|
121
|
+
* it has no column heading, because this Item has no word for "count" that is true
|
|
122
|
+
* in the caller's domain and inventing one would be a claim.
|
|
123
|
+
*
|
|
124
|
+
* The cost of naming every square is that a screen reader meets one stop per day
|
|
125
|
+
* before it reaches the table, which is a lot of stops for a hundred and eighty-two
|
|
126
|
+
* squares. That is the trade this design makes, and it is the same trade
|
|
127
|
+
* `ContributionGraph`'s table makes in the other direction: the grid answers "which
|
|
128
|
+
* days", the table answers "how many".
|
|
129
|
+
*
|
|
130
|
+
* It is a server Component. The window is arithmetic over props, there is no
|
|
131
|
+
* clock to read and no state to hold, so a contribution graph on a static page
|
|
132
|
+
* costs no client code.
|
|
133
|
+
*/
|
|
134
|
+
function ContributionGraph({ className, days, label, dayLabel, weeks = 26, weekStartsOn = 1, levelFor = quartiles, ...props }) {
|
|
135
|
+
const given = days.map((day) => {
|
|
136
|
+
const at = epochDayOf(day.date);
|
|
137
|
+
if (at === null) {
|
|
138
|
+
throw new Error(`ContributionGraph: a day is keyed '${day.date}', which is not a YYYY-MM-DD date the ` +
|
|
139
|
+
'calendar has, so there is no cell to draw it in. Pass the key your collector stores, and ' +
|
|
140
|
+
'a day the calendar does not have is a bug in the collector rather than a square to move.');
|
|
141
|
+
}
|
|
142
|
+
return { day, at };
|
|
143
|
+
});
|
|
144
|
+
// A nonsense `weeks` gets a floor of one rather than an empty grid, because an
|
|
145
|
+
// empty grid is a figure with nothing in it and this Component already refuses
|
|
146
|
+
// to draw one of those on the Sparkline.
|
|
147
|
+
const columns = Math.max(1, Math.floor(weeks));
|
|
148
|
+
// The window is the most recent `columns` weeks ending with the latest day
|
|
149
|
+
// given, so the caller's data fills the right-hand edge rather than the left.
|
|
150
|
+
// With no days at all the anchor is the epoch, which draws `columns` empty weeks
|
|
151
|
+
// rather than a special case, because an empty window and a window with nothing
|
|
152
|
+
// in it are the same picture.
|
|
153
|
+
const latest = given.length === 0 ? 0 : Math.max(...given.map((entry) => entry.at));
|
|
154
|
+
const first = latest - (((weekdayOf(latest) - weekStartsOn + 7) % 7) + (columns - 1) * 7);
|
|
155
|
+
const byDay = new Map(given.map((entry) => [entry.at, entry.day]));
|
|
156
|
+
const drawn = given.filter((entry) => entry.at >= first);
|
|
157
|
+
const max = drawn.length === 0 ? 0 : Math.max(...drawn.map((entry) => entry.day.count));
|
|
158
|
+
const cells = Array.from({ length: columns * 7 }, (_, index) => {
|
|
159
|
+
const at = first + index;
|
|
160
|
+
const day = byDay.get(at);
|
|
161
|
+
return { at, day, level: day === undefined ? 0 : levelFor(day.count, max) };
|
|
162
|
+
});
|
|
163
|
+
return (_jsxs("div", { "data-slot": "contribution-graph", role: "group", "aria-label": label, className: cn('flex w-full flex-col gap-2', className), ...props, children: [_jsx("div", { "data-slot": "contribution-weeks", className: "w-full overflow-x-auto pb-1", children: _jsx("div", { "data-slot": "contribution-grid", className: "flex gap-1", children: Array.from({ length: columns }, (_, column) => (_jsx("div", { "data-slot": "contribution-week", className: "flex flex-col gap-1", children: cells.slice(column * 7, column * 7 + 7).map((cell) => (_jsx("span", { "data-slot": "contribution-day", "data-date": cell.day?.date, "data-level": cell.level,
|
|
164
|
+
// A square is a picture of a day rather than text, so it takes
|
|
165
|
+
// the image role and the caller's own name for that day. An
|
|
166
|
+
// unreported day is hidden instead, because there is nothing
|
|
167
|
+
// to name and an absence has no row in the table either.
|
|
168
|
+
role: "img", "aria-label": cell.day === undefined ? undefined : dayLabel(cell.day), "aria-hidden": cell.day === undefined ? true : undefined, className: cn('size-3 shrink-0 rounded-sm', LEVEL_FILL[cell.level]) }, cell.at))) }, column))) }) }), _jsx("div", { "data-slot": "contribution-table", className: "sr-only", children: _jsxs(Table, { children: [_jsx(TableCaption, { children: label }), _jsx(TableBody, { children: drawn.map((entry) => (_jsxs(TableRow, { children: [_jsx(TableHead, { scope: "row", className: "font-mono font-normal", children: entry.day.date }), _jsx(TableCell, { className: "tabular-nums", children: entry.day.count })] }, entry.day.date))) })] }) })] }));
|
|
169
|
+
}
|
|
170
|
+
export { ContributionGraph };
|