@nanisoft/prism-ui 0.13.0 → 0.15.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 +12 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +8 -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 +124 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +25 -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 +3 -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 +18 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +8 -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/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/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/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 +23 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +30 -1
- 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 +108 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +109 -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/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.js +4 -4
- 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/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 +8 -0
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +24 -7
- 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 +98 -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/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 +1003 -55
- package/package.json +9 -3
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One column of a mega-menu panel, and the links in it.
|
|
3
|
+
*
|
|
4
|
+
* A column and not a link, because a column is a claim about how the caller's
|
|
5
|
+
* information is grouped and Prism cannot make it: four columns of two links and two
|
|
6
|
+
* columns of five links are two products' answers to the same panel, and a Component
|
|
7
|
+
* that decided the number would be deciding the caller's information architecture.
|
|
8
|
+
*/
|
|
9
|
+
export type MegaMenuColumn = {
|
|
10
|
+
/**
|
|
11
|
+
* The column's name.
|
|
12
|
+
*
|
|
13
|
+
* Required, and required rather than optional because an unlabelled column of
|
|
14
|
+
* links is a list a reader scans twice: once to work out what it is and once to
|
|
15
|
+
* find the link. `null` is not offered for the same reason a page heading cannot
|
|
16
|
+
* be omitted: the grouping is the thing that makes the panel readable.
|
|
17
|
+
*/
|
|
18
|
+
label: React.ReactNode;
|
|
19
|
+
/** The links, in the order a reader should meet them. */
|
|
20
|
+
links: readonly MegaMenuLink[];
|
|
21
|
+
};
|
|
22
|
+
/** One destination in a mega-menu column. */
|
|
23
|
+
export type MegaMenuLink = {
|
|
24
|
+
/** Where the link goes. */
|
|
25
|
+
href: string;
|
|
26
|
+
/** The words on the link. */
|
|
27
|
+
label: React.ReactNode;
|
|
28
|
+
/** One line under the link saying where it goes. */
|
|
29
|
+
description?: React.ReactNode;
|
|
30
|
+
/** Whether this is the page the reader is on. */
|
|
31
|
+
active?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Whether taking the link closes the panel.
|
|
34
|
+
*
|
|
35
|
+
* Optional and false by default rather than true, and the reason is which link a
|
|
36
|
+
* reader is most likely to press. A panel of destinations is read, compared and
|
|
37
|
+
* scanned, and a reader who has found the one they want and clicked it expects to
|
|
38
|
+
* be somewhere new; closing on every click means a reader who clicks to find out
|
|
39
|
+
* where something is loses the panel they were comparing in. A caller whose links
|
|
40
|
+
* are commands rather than addresses sets it on each one.
|
|
41
|
+
*/
|
|
42
|
+
closeOnClick?: boolean;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The tabbed panels inside one disclosure, and the tabs that choose between them.
|
|
46
|
+
*
|
|
47
|
+
* A tab axis rather than a column per tab because the two are different claims. A
|
|
48
|
+
* column per tab says "here are six things you may want", all six of which are
|
|
49
|
+
* peers. A tab axis says "here are four *views of one subject*, and at any moment
|
|
50
|
+
* exactly one is the view you are looking at", which is the structure a documentation
|
|
51
|
+
* index, a pricing comparison and an API reference all have, and which a reader
|
|
52
|
+
* navigating by Tab has to be told about.
|
|
53
|
+
*/
|
|
54
|
+
export type MegaMenuPanel = {
|
|
55
|
+
/** The panel's stable key. */
|
|
56
|
+
value: string;
|
|
57
|
+
/** The tab's visible name. */
|
|
58
|
+
label: React.ReactNode;
|
|
59
|
+
/** The columns this panel holds. */
|
|
60
|
+
columns: readonly MegaMenuColumn[];
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* One disclosure in the bar, and the panels it opens.
|
|
64
|
+
*
|
|
65
|
+
* `panels` is required and may hold one entry, and a single panel is a real shape:
|
|
66
|
+
* it is a disclosure whose content is one column of links and no axis to choose on.
|
|
67
|
+
* A Component that required two would make that caller invent a second tab they do
|
|
68
|
+
* not have, and a reader who tabs onto a one-tab axis has learned nothing.
|
|
69
|
+
*/
|
|
70
|
+
export type MegaMenuGroup = {
|
|
71
|
+
/** The group's stable key, and what the disclosure's open state refers to. */
|
|
72
|
+
value: string;
|
|
73
|
+
/** The words on the trigger. */
|
|
74
|
+
label: React.ReactNode;
|
|
75
|
+
/** The panels the trigger opens. */
|
|
76
|
+
panels: readonly MegaMenuPanel[];
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* The props a MegaMenu accepts.
|
|
80
|
+
*
|
|
81
|
+
* Declared rather than extended from `NavigationMenu`'s, and the reason is that
|
|
82
|
+
* every prop here is about the *inside* of the panel, which `NavigationMenu` has no
|
|
83
|
+
* opinion about at all: it knows about triggers and links and nothing between them.
|
|
84
|
+
* The open state is forwarded rather than re-declared, so a caller reading this
|
|
85
|
+
* Component's signature can see the whole contract in one place.
|
|
86
|
+
*/
|
|
87
|
+
export interface MegaMenuProps {
|
|
88
|
+
/**
|
|
89
|
+
* The accessible name of this region of links.
|
|
90
|
+
*
|
|
91
|
+
* Required, and required for the reason `NavigationMenu` requires it: the root
|
|
92
|
+
* renders a `<nav>`, and a `<nav>` with no name is a landmark announced only as
|
|
93
|
+
* "navigation". A site header's primary links and a footer link list are both
|
|
94
|
+
* `<nav>`, and a reader moving between them is told nothing about which is which.
|
|
95
|
+
*/
|
|
96
|
+
label: string;
|
|
97
|
+
/**
|
|
98
|
+
* The disclosures, in the order a reader meets them.
|
|
99
|
+
*
|
|
100
|
+
* Required, and the order is a reading order rather than a sort: a header's
|
|
101
|
+
* disclosures are ordered by how often they are used, which is the caller's fact
|
|
102
|
+
* and not something a sort here could know.
|
|
103
|
+
*/
|
|
104
|
+
groups: readonly MegaMenuGroup[];
|
|
105
|
+
/**
|
|
106
|
+
* The open group, or `null` for none open.
|
|
107
|
+
*
|
|
108
|
+
* Controlled and required, for the reason it is on `NavigationMenu`: the caller's
|
|
109
|
+
* page, its address and its analytics all need to know what is open, and a
|
|
110
|
+
* Component holding its own copy would be a second source of truth about a state
|
|
111
|
+
* that a reader can see on the page.
|
|
112
|
+
*/
|
|
113
|
+
value: string | null;
|
|
114
|
+
/** Called when the open group changes. */
|
|
115
|
+
onValueChange: (value: string | null) => void;
|
|
116
|
+
/**
|
|
117
|
+
* The accessible name of each panel's tab axis, given the group's value.
|
|
118
|
+
*
|
|
119
|
+
* Required and a function of the group, because the inner axis is a *second*
|
|
120
|
+
* navigation region and it needs a name of its own: a reader who has tabbed out
|
|
121
|
+
* of the header's tab list and into a panel's tab list has to be told which of the
|
|
122
|
+
* two they are in, and the only word this package could invent would be a word
|
|
123
|
+
* that is wrong in every consumer's product.
|
|
124
|
+
*/
|
|
125
|
+
panelLabel: (group: string) => string;
|
|
126
|
+
/**
|
|
127
|
+
* The inner tab shown for one group, given the group's value.
|
|
128
|
+
*
|
|
129
|
+
* Required and a function of the group rather than a single value, because the
|
|
130
|
+
* inner axis belongs to the group that holds it: two groups' panels are two
|
|
131
|
+
* different lists of tabs, and one shared value would give a reader who has the
|
|
132
|
+
* second tab of one open whichever tab happened to be last in the other. So the
|
|
133
|
+
* caller holds one value per group and this Component asks for the group it needs
|
|
134
|
+
* rather than keeping a record the caller cannot see and cannot put in an address.
|
|
135
|
+
*
|
|
136
|
+
* The cost is a caller who opens two groups and has set the same value in both has
|
|
137
|
+
* a reader who lands on the same tab index in each, which is right when the panels
|
|
138
|
+
* are parallel and wrong when they are not. Telling the two apart is the caller's
|
|
139
|
+
* knowledge about their own content rather than a fact this package holds.
|
|
140
|
+
*/
|
|
141
|
+
panel: (group: string) => string;
|
|
142
|
+
/**
|
|
143
|
+
* Called when the reader moves to another inner tab, given the group and the tab.
|
|
144
|
+
*
|
|
145
|
+
* Required, and the group comes first because the caller is holding a value per
|
|
146
|
+
* group and a callback that reported only the tab would leave them to guess which
|
|
147
|
+
* of their values to write.
|
|
148
|
+
*/
|
|
149
|
+
onPanelChange: (group: string, value: string) => void;
|
|
150
|
+
/**
|
|
151
|
+
* How long the pointer must rest on a trigger before the group opens, in
|
|
152
|
+
* milliseconds.
|
|
153
|
+
*
|
|
154
|
+
* Optional and defaulted the way `NavigationMenu` defaults it, because the panel is
|
|
155
|
+
* a set of addresses rather than a preview: the reader is about to take one of
|
|
156
|
+
* these links and a long rest followed by a wait is a rest they conclude did
|
|
157
|
+
* nothing. The value is forwarded rather than re-decided so a caller who needs a
|
|
158
|
+
* different one has one place to set it.
|
|
159
|
+
*/
|
|
160
|
+
delay?: number;
|
|
161
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
162
|
+
className?: string;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* A multi-column disclosure whose panel is a second navigation axis, with its own
|
|
166
|
+
* focus order inside the header's.
|
|
167
|
+
*
|
|
168
|
+
* **`NavigationMenu` is a disclosure of links. This is a disclosure whose contents
|
|
169
|
+
* are themselves a set of views, and the difference is a focus order rather than a
|
|
170
|
+
* drawing.** `NavigationMenu` opens a panel and the panel is links: Tab moves from
|
|
171
|
+
* the trigger into a flat list and out of it, and there is nothing inside to
|
|
172
|
+
* navigate. Here the panel opens onto a *tab axis*, so a reader who has tabbed off
|
|
173
|
+
* the trigger is on a second list with its own roving tab stop, and from there into
|
|
174
|
+
* the links of whichever panel is showing. That is three levels of navigation inside
|
|
175
|
+
* one disclosure, and it is why this Component exists rather than a caller
|
|
176
|
+
* composing `NavigationMenu` and dropping a `Tabs` into its content: a hand-placed
|
|
177
|
+
* `Tabs` inside a `NavigationMenuContent` works until the reader tabs, at which
|
|
178
|
+
* point two arrow-key models are live in one panel and the reader cannot tell which
|
|
179
|
+
* one their key press is about.
|
|
180
|
+
*
|
|
181
|
+
* **The composition is deliberate and it is the argument.** `NavigationMenu`
|
|
182
|
+
* supplies the disclosure: the trigger, the open state, the portal, the viewport
|
|
183
|
+
* that absorbs the width change between panels, the Escape that closes and returns
|
|
184
|
+
* focus, and the outside press. `Tabs` supplies the inner axis: the roving tab
|
|
185
|
+
* stop, the arrow keys, `aria-selected` on the trigger and the panel relationship.
|
|
186
|
+
* Neither is reimplemented here, for the reason every composition in this package is
|
|
187
|
+
* one: two implementations of a focus model disagree within a release and a consumer
|
|
188
|
+
* cannot tell which they installed. What this Component owns is the third thing, and
|
|
189
|
+
* it is the third thing that is the Component: **the panel's focus order**, which is
|
|
190
|
+
* the ordering of the two axes relative to each other and to the trigger.
|
|
191
|
+
*
|
|
192
|
+
* **The inner panel's value is the caller's, one per group, and that is what keeps
|
|
193
|
+
* the two axes from colliding.** A reader who has the second tab of the Developers
|
|
194
|
+
* panel open expects it to still be open when they come back to it, and a Component
|
|
195
|
+
* with one shared `panel` value would give them whichever tab happened to be last.
|
|
196
|
+
* So `panel` is a function of the group and the caller's map of group to tab value is
|
|
197
|
+
* the truth. What this Component adds is the part the caller cannot: it asks for the
|
|
198
|
+
* group it needs at the moment the panel is drawn, and it never resets a value the
|
|
199
|
+
* reader chose. The cost is stated on the prop, and it is the same cost the whole
|
|
200
|
+
* composition has: a caller who has set the same value in two groups has a reader who
|
|
201
|
+
* lands on the same index in each.
|
|
202
|
+
*
|
|
203
|
+
* **The inner axis is named, and the name is per group.** The outer list is a
|
|
204
|
+
* `<nav>` named by `label`, and the inner axis is a second navigation region that a
|
|
205
|
+
* reader has to be told about separately: "Pricing, tab list" is a different
|
|
206
|
+
* sentence from "Primary, tab list", and a reader who has tabbed off the header's
|
|
207
|
+
* triggers and onto a panel's tabs has to know which one their arrow keys are about.
|
|
208
|
+
* `panelLabel` is a function of the group for the same reason: "Pricing" and "Docs"
|
|
209
|
+
* have different panels and a single word would be wrong for one of them.
|
|
210
|
+
*
|
|
211
|
+
* **A group with one panel draws one panel and no axis, and that is the honest
|
|
212
|
+
* drawing.** One panel is a disclosure whose content is a set of links, which is what
|
|
213
|
+
* `NavigationMenu` already is, and a one-tab axis is a tab stop that goes nowhere.
|
|
214
|
+
* So the tab list is drawn only when there is more than one panel to choose between,
|
|
215
|
+
* and a group with one panel renders its columns directly. The cost is that the
|
|
216
|
+
* panel's markup differs between the two shapes, and a caller styling across both
|
|
217
|
+
* has to account for a missing tab list, which is a selector rather than a
|
|
218
|
+
* behaviour.
|
|
219
|
+
*
|
|
220
|
+
* **`NavigationMenuLink` is composed for every destination and it is the only
|
|
221
|
+
* interactive leaf inside the panel.** That is `NavigationMenu`'s rule and it is
|
|
222
|
+
* load-bearing: a link carries an address, so the browser can open it in a new tab,
|
|
223
|
+
* copy it, and a crawler can follow it. A mega-menu whose panel holds buttons is a
|
|
224
|
+
* header whose links cannot be shared, and the second navigation axis makes it more
|
|
225
|
+
* tempting rather than less, because a tab axis looks like a set of controls. So
|
|
226
|
+
* every leaf here is a native anchor and there is no command part to reach for by
|
|
227
|
+
* mistake.
|
|
228
|
+
*
|
|
229
|
+
* **`active` is a required prop on every link rather than a derived one, and this is
|
|
230
|
+
* the Component that most needs it.** A mega-menu is the widest panel a header draws
|
|
231
|
+
* and the one a reader is most likely to be inside already: they are looking for
|
|
232
|
+
* where they are. The marking is `aria-current="page"` on the anchor, so it is the
|
|
233
|
+
* attribute and not a fill, which is the order the whole package keeps meaning in.
|
|
234
|
+
*
|
|
235
|
+
* **It is a client Component**, because the disclosure opens after the reader acts,
|
|
236
|
+
* because the inner axis moves after the reader acts, and because every one of its
|
|
237
|
+
* value props is a function the caller hands it, which is a client-to-client boundary
|
|
238
|
+
* wherever it is written. What that costs is the price of every client control: a
|
|
239
|
+
* server Component may render the bar's triggers once with every panel closed, and
|
|
240
|
+
* what it may not do is open one.
|
|
241
|
+
*/
|
|
242
|
+
declare function MegaMenu({ label, groups, value, onValueChange, panelLabel, panel, onPanelChange, delay, className, }: MegaMenuProps): import("react").JSX.Element;
|
|
243
|
+
export { MegaMenu };
|
|
244
|
+
//# sourceMappingURL=mega-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mega-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/mega-menu.tsx"],"names":[],"mappings":"AAiBA;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;;OAOG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,yDAAyD;IACzD,KAAK,EAAE,SAAS,YAAY,EAAE,CAAA;CAC/B,CAAA;AAED,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG;IACzB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,6BAA6B;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,oDAAoD;IACpD,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,oCAAoC;IACpC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CACnC,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAA;IACb,gCAAgC;IAChC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,oCAAoC;IACpC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;CACjC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,MAAM,EAAE,SAAS,aAAa,EAAE,CAAA;IAChC;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,0CAA0C;IAC1C,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC7C;;;;;;;;OAQG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC;;;;;;;;;;;;;;OAcG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAChC;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6EG;AACH,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAK,EACL,SAAS,GACV,EAAE,aAAa,+BAuHf;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Tabs, TabsContent, TabsList, TabsTrigger } from './tabs.js';
|
|
4
|
+
import { NavigationMenu, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPortal, NavigationMenuPopup, NavigationMenuPositioner, NavigationMenuTrigger, NavigationMenuViewport, } from './navigation-menu.js';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
/**
|
|
7
|
+
* One column's links, and the column's own frame.
|
|
8
|
+
*
|
|
9
|
+
* `min-w-0` on the list so a long link wraps rather than widening the panel, and the
|
|
10
|
+
* panel's width is the panel's business: a mega-menu that sizes itself to its widest
|
|
11
|
+
* column is a panel whose width changes as the reader moves between tabs, which is
|
|
12
|
+
* the layout shift `NavigationMenu`'s viewport exists to absorb and this column list
|
|
13
|
+
* helps by not asking for more than it needs.
|
|
14
|
+
*/
|
|
15
|
+
const COLUMN = 'flex min-w-0 flex-1 flex-col gap-3';
|
|
16
|
+
/**
|
|
17
|
+
* A multi-column disclosure whose panel is a second navigation axis, with its own
|
|
18
|
+
* focus order inside the header's.
|
|
19
|
+
*
|
|
20
|
+
* **`NavigationMenu` is a disclosure of links. This is a disclosure whose contents
|
|
21
|
+
* are themselves a set of views, and the difference is a focus order rather than a
|
|
22
|
+
* drawing.** `NavigationMenu` opens a panel and the panel is links: Tab moves from
|
|
23
|
+
* the trigger into a flat list and out of it, and there is nothing inside to
|
|
24
|
+
* navigate. Here the panel opens onto a *tab axis*, so a reader who has tabbed off
|
|
25
|
+
* the trigger is on a second list with its own roving tab stop, and from there into
|
|
26
|
+
* the links of whichever panel is showing. That is three levels of navigation inside
|
|
27
|
+
* one disclosure, and it is why this Component exists rather than a caller
|
|
28
|
+
* composing `NavigationMenu` and dropping a `Tabs` into its content: a hand-placed
|
|
29
|
+
* `Tabs` inside a `NavigationMenuContent` works until the reader tabs, at which
|
|
30
|
+
* point two arrow-key models are live in one panel and the reader cannot tell which
|
|
31
|
+
* one their key press is about.
|
|
32
|
+
*
|
|
33
|
+
* **The composition is deliberate and it is the argument.** `NavigationMenu`
|
|
34
|
+
* supplies the disclosure: the trigger, the open state, the portal, the viewport
|
|
35
|
+
* that absorbs the width change between panels, the Escape that closes and returns
|
|
36
|
+
* focus, and the outside press. `Tabs` supplies the inner axis: the roving tab
|
|
37
|
+
* stop, the arrow keys, `aria-selected` on the trigger and the panel relationship.
|
|
38
|
+
* Neither is reimplemented here, for the reason every composition in this package is
|
|
39
|
+
* one: two implementations of a focus model disagree within a release and a consumer
|
|
40
|
+
* cannot tell which they installed. What this Component owns is the third thing, and
|
|
41
|
+
* it is the third thing that is the Component: **the panel's focus order**, which is
|
|
42
|
+
* the ordering of the two axes relative to each other and to the trigger.
|
|
43
|
+
*
|
|
44
|
+
* **The inner panel's value is the caller's, one per group, and that is what keeps
|
|
45
|
+
* the two axes from colliding.** A reader who has the second tab of the Developers
|
|
46
|
+
* panel open expects it to still be open when they come back to it, and a Component
|
|
47
|
+
* with one shared `panel` value would give them whichever tab happened to be last.
|
|
48
|
+
* So `panel` is a function of the group and the caller's map of group to tab value is
|
|
49
|
+
* the truth. What this Component adds is the part the caller cannot: it asks for the
|
|
50
|
+
* group it needs at the moment the panel is drawn, and it never resets a value the
|
|
51
|
+
* reader chose. The cost is stated on the prop, and it is the same cost the whole
|
|
52
|
+
* composition has: a caller who has set the same value in two groups has a reader who
|
|
53
|
+
* lands on the same index in each.
|
|
54
|
+
*
|
|
55
|
+
* **The inner axis is named, and the name is per group.** The outer list is a
|
|
56
|
+
* `<nav>` named by `label`, and the inner axis is a second navigation region that a
|
|
57
|
+
* reader has to be told about separately: "Pricing, tab list" is a different
|
|
58
|
+
* sentence from "Primary, tab list", and a reader who has tabbed off the header's
|
|
59
|
+
* triggers and onto a panel's tabs has to know which one their arrow keys are about.
|
|
60
|
+
* `panelLabel` is a function of the group for the same reason: "Pricing" and "Docs"
|
|
61
|
+
* have different panels and a single word would be wrong for one of them.
|
|
62
|
+
*
|
|
63
|
+
* **A group with one panel draws one panel and no axis, and that is the honest
|
|
64
|
+
* drawing.** One panel is a disclosure whose content is a set of links, which is what
|
|
65
|
+
* `NavigationMenu` already is, and a one-tab axis is a tab stop that goes nowhere.
|
|
66
|
+
* So the tab list is drawn only when there is more than one panel to choose between,
|
|
67
|
+
* and a group with one panel renders its columns directly. The cost is that the
|
|
68
|
+
* panel's markup differs between the two shapes, and a caller styling across both
|
|
69
|
+
* has to account for a missing tab list, which is a selector rather than a
|
|
70
|
+
* behaviour.
|
|
71
|
+
*
|
|
72
|
+
* **`NavigationMenuLink` is composed for every destination and it is the only
|
|
73
|
+
* interactive leaf inside the panel.** That is `NavigationMenu`'s rule and it is
|
|
74
|
+
* load-bearing: a link carries an address, so the browser can open it in a new tab,
|
|
75
|
+
* copy it, and a crawler can follow it. A mega-menu whose panel holds buttons is a
|
|
76
|
+
* header whose links cannot be shared, and the second navigation axis makes it more
|
|
77
|
+
* tempting rather than less, because a tab axis looks like a set of controls. So
|
|
78
|
+
* every leaf here is a native anchor and there is no command part to reach for by
|
|
79
|
+
* mistake.
|
|
80
|
+
*
|
|
81
|
+
* **`active` is a required prop on every link rather than a derived one, and this is
|
|
82
|
+
* the Component that most needs it.** A mega-menu is the widest panel a header draws
|
|
83
|
+
* and the one a reader is most likely to be inside already: they are looking for
|
|
84
|
+
* where they are. The marking is `aria-current="page"` on the anchor, so it is the
|
|
85
|
+
* attribute and not a fill, which is the order the whole package keeps meaning in.
|
|
86
|
+
*
|
|
87
|
+
* **It is a client Component**, because the disclosure opens after the reader acts,
|
|
88
|
+
* because the inner axis moves after the reader acts, and because every one of its
|
|
89
|
+
* value props is a function the caller hands it, which is a client-to-client boundary
|
|
90
|
+
* wherever it is written. What that costs is the price of every client control: a
|
|
91
|
+
* server Component may render the bar's triggers once with every panel closed, and
|
|
92
|
+
* what it may not do is open one.
|
|
93
|
+
*/
|
|
94
|
+
function MegaMenu({ label, groups, value, onValueChange, panelLabel, panel, onPanelChange, delay, className, }) {
|
|
95
|
+
return (_jsx(NavigationMenu, { label: label, value: value, onValueChange: onValueChange, delay: delay, className: cn('w-full', className), children: _jsx(NavigationMenuList, { children: groups.map((group) => (_jsxs(NavigationMenuItem, { value: group.value, children: [_jsx(NavigationMenuTrigger, { children: group.label }), _jsx(NavigationMenuPortal, { children: _jsx(NavigationMenuPositioner, { children: _jsx(NavigationMenuPopup, { children: _jsx(NavigationMenuViewport, { className: "p-4", children: _jsxs(Tabs, { value: panel(group.value), onValueChange: (next) => onPanelChange(group.value, next), children: [group.panels.length <= 1 ? null : (_jsx(TabsList, { "aria-label": panelLabel(group.value), children: group.panels.map((panel) => (_jsx(TabsTrigger, { value: panel.value, children: panel.label }, panel.value))) })), group.panels.map((panel) => (_jsx(TabsContent, { value: panel.value, children: _jsx("div", { "data-slot": "mega-menu-columns", className: "flex flex-col gap-6 sm:flex-row sm:gap-8", children: panel.columns.map((column) => (_jsxs("div", { "data-slot": "mega-menu-column", className: COLUMN, children: [_jsx("p", { "data-slot": "mega-menu-column-label", className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: column.label }), _jsx("ul", { className: "flex list-none flex-col gap-1", children: column.links.map((link) => (_jsx("li", { children: _jsx(NavigationMenuLink, { href: link.href, active: link.active, closeOnClick: link.closeOnClick, children: _jsxs("span", { "data-slot": "mega-menu-link", className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-sm font-medium", children: link.label }), link.description === undefined ? null : (_jsx("span", { className: "text-muted-foreground text-xs", children: link.description }))] }) }) }, link.href))) })] }, String(column.label)))) }) }, panel.value)))] }) }) }) }) })] }, group.value))) }) }));
|
|
96
|
+
}
|
|
97
|
+
export { MegaMenu };
|
|
@@ -158,6 +158,15 @@ declare function MenubarMenu({ ...props }: MenubarMenuProps): import("react").JS
|
|
|
158
158
|
*
|
|
159
159
|
* It is a real button and it is a menu item in the bar's own model, so Enter and
|
|
160
160
|
* Arrow Down open the menu and the arrows along the bar move between triggers.
|
|
161
|
+
*
|
|
162
|
+
* `pointer-coarse:h-11` is the coarse-pointer floor, as a step. A band was rejected
|
|
163
|
+
* on condition 1 and this is the sharpest case of it in the package: the triggers sit
|
|
164
|
+
* beside each other along the bar, so a 44px band on one trigger is a press aimed at
|
|
165
|
+
* its neighbour. That is the same argument `DESIGN.md` makes for a checkbox beside the
|
|
166
|
+
* next row's own checkbox, and the same one that made `NumberField` turn its steppers
|
|
167
|
+
* side by side rather than stack two 44px bands on two 18px rows. Growing the bar's
|
|
168
|
+
* height from 32 to 44 on touch input is the cost, and it is the cost the platform's
|
|
169
|
+
* own menu bars pay. See DESIGN.md, The coarse-pointer floor.
|
|
161
170
|
*/
|
|
162
171
|
declare function MenubarTrigger({ className, ...props }: MenubarTriggerProps): import("react").JSX.Element;
|
|
163
172
|
/** The floating menu surface. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/menubar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"menubar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/menubar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -49,9 +49,18 @@ function MenubarMenu({ ...props }) {
|
|
|
49
49
|
*
|
|
50
50
|
* It is a real button and it is a menu item in the bar's own model, so Enter and
|
|
51
51
|
* Arrow Down open the menu and the arrows along the bar move between triggers.
|
|
52
|
+
*
|
|
53
|
+
* `pointer-coarse:h-11` is the coarse-pointer floor, as a step. A band was rejected
|
|
54
|
+
* on condition 1 and this is the sharpest case of it in the package: the triggers sit
|
|
55
|
+
* beside each other along the bar, so a 44px band on one trigger is a press aimed at
|
|
56
|
+
* its neighbour. That is the same argument `DESIGN.md` makes for a checkbox beside the
|
|
57
|
+
* next row's own checkbox, and the same one that made `NumberField` turn its steppers
|
|
58
|
+
* side by side rather than stack two 44px bands on two 18px rows. Growing the bar's
|
|
59
|
+
* height from 32 to 44 on touch input is the cost, and it is the cost the platform's
|
|
60
|
+
* own menu bars pay. See DESIGN.md, The coarse-pointer floor.
|
|
52
61
|
*/
|
|
53
62
|
function MenubarTrigger({ className, ...props }) {
|
|
54
|
-
return (_jsx(MenuPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn('text-foreground inline-flex h-8 items-center gap-1.5 rounded-sm px-3 text-sm font-medium whitespace-nowrap outline-none', 'transition-[color,background-color,box-shadow] duration-fast ease-out', 'hover:bg-accent hover:text-accent-foreground focus-visible:ring-ring focus-visible:ring-[3px]', 'data-[popup-open]:bg-accent data-[popup-open]:text-accent-foreground', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props }));
|
|
63
|
+
return (_jsx(MenuPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn('text-foreground inline-flex h-8 items-center gap-1.5 rounded-sm px-3 text-sm font-medium whitespace-nowrap outline-none', 'transition-[color,background-color,box-shadow] duration-fast ease-out', 'hover:bg-accent hover:text-accent-foreground focus-visible:ring-ring focus-visible:ring-[3px]', 'data-[popup-open]:bg-accent data-[popup-open]:text-accent-foreground', 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50', 'pointer-coarse:h-11', className), ...props }));
|
|
55
64
|
}
|
|
56
65
|
/** The floating menu surface. */
|
|
57
66
|
function MenubarContent({ className, sideOffset = 4, alignOffset = 0, ...props }) {
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* A change against the previous reading, as a number whose sign is the direction.
|
|
4
|
+
*
|
|
5
|
+
* The sign is the direction, and that is the whole of the type. The shape this
|
|
6
|
+
* refuses is `{ value: number, direction: 'up' | 'down' }`, which is the shape a
|
|
7
|
+
* caller reaches for first and which is wrong twice over: it lets a caller put a
|
|
8
|
+
* rising mark on a falling number, and it gives one fact two spellings, so a
|
|
9
|
+
* call site holding one of them wrong reads the wrong way with nothing to catch
|
|
10
|
+
* it. A number has exactly one sign and there is nothing left to declare.
|
|
11
|
+
*
|
|
12
|
+
* **There is no flat member, and a zero draws no direction mark.** A zero is a
|
|
13
|
+
* real reading and the number is still shown, but nothing is drawn beside it,
|
|
14
|
+
* because a mark on a figure that did not move is a claim the data does not
|
|
15
|
+
* make. An arrow says the reading changed, and a reader who believes it is
|
|
16
|
+
* looking at movement that is not there.
|
|
17
|
+
*
|
|
18
|
+
* The number is the caller's own figure in the caller's own units. A delta of
|
|
19
|
+
* `0.12` is not a mistake here, and Prism does not attach a percent sign to it
|
|
20
|
+
* on the chance that it is one; see `MetricProps.deltaFormat` for what it prints
|
|
21
|
+
* instead.
|
|
22
|
+
*/
|
|
23
|
+
export type MetricDelta = number;
|
|
24
|
+
/** The props the Metric accepts. */
|
|
25
|
+
export interface MetricProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
26
|
+
/**
|
|
27
|
+
* The figure itself, the number the whole Item exists to show.
|
|
28
|
+
*
|
|
29
|
+
* A `ReactNode` rather than a `number`, for the reason a Component cannot
|
|
30
|
+
* print a figure it cannot see the unit of: a caller's figure is often a value
|
|
31
|
+
* it formatted itself, and a `number` prop would make it either ship that as a
|
|
32
|
+
* string outside this Component or lose the unit it belongs to. Prism takes the
|
|
33
|
+
* node and formats nothing.
|
|
34
|
+
*/
|
|
35
|
+
value: ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* What the figure measures, read under it rather than above it.
|
|
38
|
+
*
|
|
39
|
+
* Required, because a figure with nothing saying what it is is a number a
|
|
40
|
+
* reader has to guess the meaning of, which is the one thing a headline figure
|
|
41
|
+
* cannot afford.
|
|
42
|
+
*/
|
|
43
|
+
label: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* The unit, set beside the figure at the Label step.
|
|
46
|
+
*
|
|
47
|
+
* A prop rather than part of `value` so a consumer that wants the unit to scale
|
|
48
|
+
* with the figure puts it in `value` and a consumer that wants it quiet puts
|
|
49
|
+
* it here. Omit it for a figure that is self-describing.
|
|
50
|
+
*/
|
|
51
|
+
unit?: ReactNode;
|
|
52
|
+
/** The change against the previous reading. See `MetricDelta`. */
|
|
53
|
+
delta?: MetricDelta;
|
|
54
|
+
/**
|
|
55
|
+
* The words for the delta, given the number.
|
|
56
|
+
*
|
|
57
|
+
* There is no default that knows the unit, and that is the point: a delta of
|
|
58
|
+
* `0.12` is twelve percent, twelve cents or twelve milliseconds, and a
|
|
59
|
+
* Component that guessed would be claiming a caller's units. The fallback is
|
|
60
|
+
* the number itself, so a caller who passes a fraction and no formatter gets
|
|
61
|
+
* `0.12` printed, which is honest and usually not what was wanted. Pass the
|
|
62
|
+
* formatter.
|
|
63
|
+
*/
|
|
64
|
+
deltaFormat?: (value: number) => string;
|
|
65
|
+
/**
|
|
66
|
+
* The line under the label, for whatever the caller wants said about the
|
|
67
|
+
* figure: the period it covers, the source it came from, the caveat that
|
|
68
|
+
* matters this week.
|
|
69
|
+
*/
|
|
70
|
+
hint?: ReactNode;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* One figure, read first, with the words that say what it is underneath it.
|
|
74
|
+
*
|
|
75
|
+
* **A metric is read as a number, so the label goes under the value.** The
|
|
76
|
+
* label-first arrangement is the one most stat tiles use, and it asks a reader
|
|
77
|
+
* to read a heading before they know what the heading is about. A Metric
|
|
78
|
+
* inverts it: the figure lands first, at the Title step of the type scale, and
|
|
79
|
+
* the name is the second thing read. The cost is real and worth naming, because
|
|
80
|
+
* a column of metrics read top to bottom puts the names at different heights. A
|
|
81
|
+
* dashboard row is scanned by the figures and settled by the names, and a caller
|
|
82
|
+
* who wants a column of named figures is looking for a table rather than for
|
|
83
|
+
* this.
|
|
84
|
+
*
|
|
85
|
+
* **The direction is derived, never declared.** See `MetricDelta`. A Metric that
|
|
86
|
+
* took a `direction` beside the number would be able to draw a rising mark on a
|
|
87
|
+
* falling reading, which is a defect a reader sees and a type checker does not,
|
|
88
|
+
* so the direction has nowhere to be written but the sign it already came from.
|
|
89
|
+
*
|
|
90
|
+
* **The mark is a glyph rather than a drawing, and that is what makes the
|
|
91
|
+
* direction localisable.** The mark is a character, not an icon set and not a
|
|
92
|
+
* CSS triangle, so assistive technology announces it with the platform's own
|
|
93
|
+
* name for the character, in the reader's own language. The rejected
|
|
94
|
+
* alternative is a `title` attribute, or an `aria-label`, holding the word up or
|
|
95
|
+
* down, which would put a sentence in English into every consumer's product and
|
|
96
|
+
* leave the consumer no way to translate it. The cost of the glyph is that not
|
|
97
|
+
* every screen reader names every arrow, so the number beside it is the reading
|
|
98
|
+
* and the mark is the quicker one.
|
|
99
|
+
*
|
|
100
|
+
* **A string value is set in the mono face and a composed value is not.** The
|
|
101
|
+
* mono stack in this system annotates machine-readable readings, and a figure a
|
|
102
|
+
* consumer formatted itself is one of them: a caller's grouped thousands, its
|
|
103
|
+
* percentage, its currency. The rejected alternative is a `monospace` prop,
|
|
104
|
+
* which pushes the same decision onto every caller, and the decision is the same
|
|
105
|
+
* for all of them. A value that arrives as a node rather than a string is a
|
|
106
|
+
* figure the consumer composed out of several parts, and setting that in mono
|
|
107
|
+
* would put a machine face on a sentence.
|
|
108
|
+
*
|
|
109
|
+
* **Prism formats only the delta, and the fallback is the bare number.** The
|
|
110
|
+
* figure is a node and the unit is a node, so the only number this Component
|
|
111
|
+
* prints is the delta, and it prints it with the caller's formatter when there is
|
|
112
|
+
* one and with the number itself when there is not. A Component cannot print a
|
|
113
|
+
* delta it has no unit for, and a default that guessed a percent sign would be a
|
|
114
|
+
* claim about the caller's domain. The cost of that refusal is visible: a caller
|
|
115
|
+
* who passes a fraction and no formatter gets `0.12` printed, which is honest and
|
|
116
|
+
* usually not what was wanted. See `deltaFormat`.
|
|
117
|
+
*
|
|
118
|
+
* It is a server Component: no hook, no state, no effect, and nothing here is
|
|
119
|
+
* decided at hydration time. The whole figure is markup.
|
|
120
|
+
*/
|
|
121
|
+
declare function Metric({ className, value, label, unit, delta, deltaFormat, hint, ...props }: MetricProps): import("react").JSX.Element;
|
|
122
|
+
export { Metric };
|
|
123
|
+
//# sourceMappingURL=metric.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metric.d.ts","sourceRoot":"","sources":["../../../src/components/ui/metric.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAQhC,oCAAoC;AACpC,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC1E;;;;;;;;OAQG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,kEAAkE;IAClE,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,KAAK,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,WAAW,EACX,IAAI,EACJ,GAAG,KAAK,EACT,EAAE,WAAW,+BAoDb;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
/** The mark a rising reading takes. A glyph, not a drawing, and the reason is in the JSDoc. */
|
|
4
|
+
const RISING = '↑';
|
|
5
|
+
/** The mark a falling reading takes. */
|
|
6
|
+
const FALLING = '↓';
|
|
7
|
+
/**
|
|
8
|
+
* One figure, read first, with the words that say what it is underneath it.
|
|
9
|
+
*
|
|
10
|
+
* **A metric is read as a number, so the label goes under the value.** The
|
|
11
|
+
* label-first arrangement is the one most stat tiles use, and it asks a reader
|
|
12
|
+
* to read a heading before they know what the heading is about. A Metric
|
|
13
|
+
* inverts it: the figure lands first, at the Title step of the type scale, and
|
|
14
|
+
* the name is the second thing read. The cost is real and worth naming, because
|
|
15
|
+
* a column of metrics read top to bottom puts the names at different heights. A
|
|
16
|
+
* dashboard row is scanned by the figures and settled by the names, and a caller
|
|
17
|
+
* who wants a column of named figures is looking for a table rather than for
|
|
18
|
+
* this.
|
|
19
|
+
*
|
|
20
|
+
* **The direction is derived, never declared.** See `MetricDelta`. A Metric that
|
|
21
|
+
* took a `direction` beside the number would be able to draw a rising mark on a
|
|
22
|
+
* falling reading, which is a defect a reader sees and a type checker does not,
|
|
23
|
+
* so the direction has nowhere to be written but the sign it already came from.
|
|
24
|
+
*
|
|
25
|
+
* **The mark is a glyph rather than a drawing, and that is what makes the
|
|
26
|
+
* direction localisable.** The mark is a character, not an icon set and not a
|
|
27
|
+
* CSS triangle, so assistive technology announces it with the platform's own
|
|
28
|
+
* name for the character, in the reader's own language. The rejected
|
|
29
|
+
* alternative is a `title` attribute, or an `aria-label`, holding the word up or
|
|
30
|
+
* down, which would put a sentence in English into every consumer's product and
|
|
31
|
+
* leave the consumer no way to translate it. The cost of the glyph is that not
|
|
32
|
+
* every screen reader names every arrow, so the number beside it is the reading
|
|
33
|
+
* and the mark is the quicker one.
|
|
34
|
+
*
|
|
35
|
+
* **A string value is set in the mono face and a composed value is not.** The
|
|
36
|
+
* mono stack in this system annotates machine-readable readings, and a figure a
|
|
37
|
+
* consumer formatted itself is one of them: a caller's grouped thousands, its
|
|
38
|
+
* percentage, its currency. The rejected alternative is a `monospace` prop,
|
|
39
|
+
* which pushes the same decision onto every caller, and the decision is the same
|
|
40
|
+
* for all of them. A value that arrives as a node rather than a string is a
|
|
41
|
+
* figure the consumer composed out of several parts, and setting that in mono
|
|
42
|
+
* would put a machine face on a sentence.
|
|
43
|
+
*
|
|
44
|
+
* **Prism formats only the delta, and the fallback is the bare number.** The
|
|
45
|
+
* figure is a node and the unit is a node, so the only number this Component
|
|
46
|
+
* prints is the delta, and it prints it with the caller's formatter when there is
|
|
47
|
+
* one and with the number itself when there is not. A Component cannot print a
|
|
48
|
+
* delta it has no unit for, and a default that guessed a percent sign would be a
|
|
49
|
+
* claim about the caller's domain. The cost of that refusal is visible: a caller
|
|
50
|
+
* who passes a fraction and no formatter gets `0.12` printed, which is honest and
|
|
51
|
+
* usually not what was wanted. See `deltaFormat`.
|
|
52
|
+
*
|
|
53
|
+
* It is a server Component: no hook, no state, no effect, and nothing here is
|
|
54
|
+
* decided at hydration time. The whole figure is markup.
|
|
55
|
+
*/
|
|
56
|
+
function Metric({ className, value, label, unit, delta, deltaFormat, hint, ...props }) {
|
|
57
|
+
// A delta that is not a finite number is dropped rather than printed, because
|
|
58
|
+
// "NaN" under a figure is a second claim about the figure and "Infinity" is a
|
|
59
|
+
// third, and neither is a reading.
|
|
60
|
+
const shown = typeof delta === 'number' && Number.isFinite(delta) ? delta : undefined;
|
|
61
|
+
const read = deltaFormat ?? ((change) => String(change));
|
|
62
|
+
return (_jsxs("div", { "data-slot": "metric", className: cn('flex w-full flex-col', className), ...props, children: [_jsxs("div", { "data-slot": "metric-figure", className: "flex flex-wrap items-baseline gap-x-2", children: [_jsx("span", { "data-slot": "metric-value", className: cn('text-2xl font-semibold tracking-tight tabular-nums',
|
|
63
|
+
// A string is a machine-readable reading, and the mono stack is what
|
|
64
|
+
// this system annotates one with. A node is a composed figure and
|
|
65
|
+
// stays in the interface face.
|
|
66
|
+
typeof value === 'string' && 'font-mono'), children: value }), unit === undefined ? null : (_jsx("span", { "data-slot": "metric-unit", className: "text-muted-foreground text-sm font-medium", children: unit }))] }), shown === undefined ? null : (_jsxs("span", { "data-slot": "metric-delta", className: "text-muted-foreground mt-1 flex items-baseline gap-1 text-sm tabular-nums", children: [shown === 0 ? null : (_jsx("span", { "data-slot": "metric-delta-mark", children: shown > 0 ? RISING : FALLING })), read(shown)] })), _jsx("span", { "data-slot": "metric-label", className: "text-muted-foreground text-sm font-medium", children: label }), hint === undefined ? null : (_jsx("span", { "data-slot": "metric-hint", className: "text-muted-foreground text-xs", children: hint }))] }));
|
|
67
|
+
}
|
|
68
|
+
export { Metric };
|