@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,166 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* One command in a selection toolbar.
|
|
4
|
+
*
|
|
5
|
+
* A callback per command rather than one dispatch for the whole row, because a
|
|
6
|
+
* selection toolbar's commands are not interchangeable the way a split button's
|
|
7
|
+
* menu rows are: two of them may be destructive and one may need an argument the
|
|
8
|
+
* caller computes from its own selection, and a single `id` plus a switch at the
|
|
9
|
+
* call site would move that computation to the reader's keystroke.
|
|
10
|
+
*/
|
|
11
|
+
export type SelectionToolbarCommand = {
|
|
12
|
+
/**
|
|
13
|
+
* The caller's own identity for the command.
|
|
14
|
+
*
|
|
15
|
+
* Required and stable, for the reason every keyed list in this package says:
|
|
16
|
+
* a command keyed on a localised label remounts a control the moment the reader
|
|
17
|
+
* changes language, which drops the focus the Component just took pains to hold.
|
|
18
|
+
*/
|
|
19
|
+
id: string;
|
|
20
|
+
/**
|
|
21
|
+
* The command's accessible name, in the product's own words.
|
|
22
|
+
*
|
|
23
|
+
* Required and a string, because a name a screen reader reads is a string.
|
|
24
|
+
* Commands here are almost always icon-only, and a row of unnamed icon buttons
|
|
25
|
+
* is announced as "button, button, button", which is three controls nobody can
|
|
26
|
+
* tell apart in a toolbar whose whole job is that they differ.
|
|
27
|
+
*/
|
|
28
|
+
label: string;
|
|
29
|
+
/**
|
|
30
|
+
* The mark for the command.
|
|
31
|
+
*
|
|
32
|
+
* A `ReactNode` and not an icon name, because the vocabulary a product uses for
|
|
33
|
+
* its own rows is its own. Pass an `svg` or an `img` and keep it `aria-hidden`,
|
|
34
|
+
* because `label` already names the control.
|
|
35
|
+
*/
|
|
36
|
+
icon?: ReactNode;
|
|
37
|
+
/** Whether the command refuses the press and stays in the walk. */
|
|
38
|
+
disabled?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Runs the command against the caller's selection.
|
|
41
|
+
*
|
|
42
|
+
* Required, and the caller owns everything inside it: reading what is selected,
|
|
43
|
+
* doing it, and clearing or keeping the selection afterwards. Prism calls it
|
|
44
|
+
* and does not touch the selection, because the selection is a claim about the
|
|
45
|
+
* caller's data and a Component that rewrote it would be rewriting rows it
|
|
46
|
+
* cannot see.
|
|
47
|
+
*/
|
|
48
|
+
onRun: () => void;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The props the Selection toolbar accepts.
|
|
52
|
+
*
|
|
53
|
+
* A declared interface rather than a forwarded native one, because the Component
|
|
54
|
+
* draws a `toolbar` and its own commands, so a forwarded `onKeyDown` would be a
|
|
55
|
+
* second place the arrow-key model lives and a forwarded `children` would be a
|
|
56
|
+
* second way to say what the row contains.
|
|
57
|
+
*/
|
|
58
|
+
export interface SelectionToolbarProps {
|
|
59
|
+
/**
|
|
60
|
+
* What is selected, read at the leading end of the row.
|
|
61
|
+
*
|
|
62
|
+
* Required, and passing `null` is how the caller says there is no selection, in
|
|
63
|
+
* which case this Component renders nothing at all. That is the whole of the
|
|
64
|
+
* appearing half and it is a decision rather than a prop: a toolbar for nothing
|
|
65
|
+
* is a row of controls that do nothing, and a caller who mounts one permanently
|
|
66
|
+
* so it can appear later has paid for it on every page that never selects
|
|
67
|
+
* anything. The cost is that the caller has to hold the sentence rather than
|
|
68
|
+
* only the number, because "3 selected" and "Drei ausgewahlt" are one string
|
|
69
|
+
* in one language, and no Component here may compose the two.
|
|
70
|
+
*/
|
|
71
|
+
label: ReactNode;
|
|
72
|
+
/**
|
|
73
|
+
* The commands, in the order the arrow keys walk them.
|
|
74
|
+
*
|
|
75
|
+
* Required, and the order is the caller's because it is a claim about how often
|
|
76
|
+
* each is used. Nothing is drawn between them: no separators and no groups, so
|
|
77
|
+
* the order is the only grouping the row has.
|
|
78
|
+
*/
|
|
79
|
+
commands: readonly SelectionToolbarCommand[];
|
|
80
|
+
/**
|
|
81
|
+
* The accessible name of the dismiss control.
|
|
82
|
+
*
|
|
83
|
+
* Required, and the reason is the one `Toast` states for its close control: a
|
|
84
|
+
* control the reader reaches towards has to say what it is before they press
|
|
85
|
+
* it, and four products in at least two languages cannot all be told it says
|
|
86
|
+
* "Clear selection".
|
|
87
|
+
*/
|
|
88
|
+
dismissLabel: string;
|
|
89
|
+
/**
|
|
90
|
+
* Called when the reader asks for the selection to end.
|
|
91
|
+
*
|
|
92
|
+
* Required, and Prism does not clear the selection itself. The selection lives
|
|
93
|
+
* in the caller's rows, in its own checkboxes or its own table state, and a
|
|
94
|
+
* Component that unchecked them would be writing to data it was handed as a
|
|
95
|
+
* count. The caller unmounts the toolbar by clearing the selection, which is
|
|
96
|
+
* also why `label={null}` is how it leaves rather than a `hidden` prop.
|
|
97
|
+
*/
|
|
98
|
+
onDismiss: () => void;
|
|
99
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
100
|
+
className?: string;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* A toolbar that exists because something is selected, and acts on it.
|
|
104
|
+
*
|
|
105
|
+
* **It is a different Component from `TextFormatToolbar`, and the two disagree
|
|
106
|
+
* about focus.** That is the argument, and it is a disagreement rather than a
|
|
107
|
+
* difference of content: a text format toolbar **must** refuse to move focus on a
|
|
108
|
+
* press, because focus leaving a `contenteditable` collapses its selection in
|
|
109
|
+
* several engines and the command would act on nothing, so it takes a
|
|
110
|
+
* `getEditor` and hands focus back after every command. A selection toolbar over
|
|
111
|
+
* rows **must let** focus move, because a keyboard reader has to Tab back to the
|
|
112
|
+
* list to change what is selected, and a row's checkbox has to be able to receive
|
|
113
|
+
* focus to be unchecked. One Component could not do both, and a
|
|
114
|
+
* `preserveFocus` boolean over the two would be a prop whose two answers are "this
|
|
115
|
+
* is the Component for a caret" and "this is the Component for a set of rows",
|
|
116
|
+
* which is the kind of prop that makes a catalogue a second list of call sites.
|
|
117
|
+
* So the roles are the same and the focus contract is the Component.
|
|
118
|
+
*
|
|
119
|
+
* **It renders nothing when nothing is selected, and the cost is the caller
|
|
120
|
+
* holding the sentence.** See `label`. A Component that counted for itself would
|
|
121
|
+
* need a `count` and a plural rule, and the plural rule is a language question:
|
|
122
|
+
* English puts the noun in the middle, Polish puts it in the genitive and adds
|
|
123
|
+
* three forms, and no Component here may know any of that. The caller passes the
|
|
124
|
+
* finished words and this Component never invents one.
|
|
125
|
+
*
|
|
126
|
+
* **Unavailable is drawn and walked, not removed and not the native `disabled`.**
|
|
127
|
+
* A command that cannot run keeps its place in the row and in the arrow-key walk,
|
|
128
|
+
* carries `aria-disabled`, and refuses the press in its handler, which is the
|
|
129
|
+
* arrangement `Dropzone` states in full: a control that vanishes leaves a
|
|
130
|
+
* keyboard reader with a gap and no announcement, and a natively disabled one
|
|
131
|
+
* leaves a hole they have to interpret. The cost is that the row is wider than
|
|
132
|
+
* the set of things a reader can do about the selection they have made.
|
|
133
|
+
*
|
|
134
|
+
* **The commands are drawn, and the selection is not read.** Prism never calls
|
|
135
|
+
* `window.getSelection` and never asks what is selected, for the same reason
|
|
136
|
+
* `TextFormatToolbar` does not: the rows may be a table, a grid, a card list or
|
|
137
|
+
* something behind a consumer's own state, and the DOM selection a browser would
|
|
138
|
+
* report is either absent or a fiction. So the caller owns whether a command can
|
|
139
|
+
* run, what running it does, and what happens to the selection afterwards, and
|
|
140
|
+
* this Component's entire claim about the selection is that it exists while there
|
|
141
|
+
* is one and says how much of it there is.
|
|
142
|
+
*
|
|
143
|
+
* **The dismiss control is a second command and not a property of the row.** A
|
|
144
|
+
* selection ends by the reader saying so, and a row that could not be ended would
|
|
145
|
+
* leave a reader who selected the wrong eleven rows with no way back that does not
|
|
146
|
+
* involve the checkboxes. It is a real button with its own name rather than a
|
|
147
|
+
* drawn affordance, so the cost is one more stop in a row whose commands are
|
|
148
|
+
* otherwise the caller's.
|
|
149
|
+
*
|
|
150
|
+
* **The row is named by the label it already draws.** `aria-labelledby` on the
|
|
151
|
+
* leading label rather than an `aria-label`, because `label` is a `ReactNode` and
|
|
152
|
+
* there is no string here to put in an `aria-label`, while a reference reads the
|
|
153
|
+
* rendered words. So a reader tabbing onto the row hears the selection and the
|
|
154
|
+
* commands in one announcement, and the two cannot drift apart.
|
|
155
|
+
* `TextFormatToolbar` states the same rule from the other end, where its name is a
|
|
156
|
+
* string and `aria-label` is what takes it.
|
|
157
|
+
*
|
|
158
|
+
* **It is a client Component**, because it holds the one tab stop the `toolbar`
|
|
159
|
+
* role promises, walks it with four keys, and takes the dismissal callback. What
|
|
160
|
+
* that costs is that a server-rendered page cannot show a selection toolbar at all,
|
|
161
|
+
* which is correct, because a selection is something a reader did and a server has
|
|
162
|
+
* not heard about it yet.
|
|
163
|
+
*/
|
|
164
|
+
declare function SelectionToolbar({ label, commands, dismissLabel, onDismiss, className, }: SelectionToolbarProps): import("react").JSX.Element | null;
|
|
165
|
+
export { SelectionToolbar };
|
|
166
|
+
//# sourceMappingURL=selection-toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/selection-toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA+C,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKnF;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;;OAOG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;;;OAWG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAC5C;;;;;;;OAOG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,GACV,EAAE,qBAAqB,sCA+GvB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { XIcon } from 'lucide-react';
|
|
4
|
+
import { useId, useRef, useState } from 'react';
|
|
5
|
+
import { Button } from './button.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
/** The drawn commands, read back for the arrow-key walk. */
|
|
8
|
+
const COMMAND_SLOT = '[data-slot="selection-toolbar-command"]';
|
|
9
|
+
/**
|
|
10
|
+
* Whether the caller says there is nothing selected.
|
|
11
|
+
*
|
|
12
|
+
* The test is "renders nothing" rather than a list of the nothing values, for the
|
|
13
|
+
* reason `LiveRegion` states in full: a caller passing an empty string, a null
|
|
14
|
+
* from a state that has not resolved and a false from a condition are three
|
|
15
|
+
* routes to the same state, and a list of three is a list a fourth route would
|
|
16
|
+
* miss.
|
|
17
|
+
*/
|
|
18
|
+
function isNothing(label) {
|
|
19
|
+
return label === undefined || label === null || label === false || label === '';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A toolbar that exists because something is selected, and acts on it.
|
|
23
|
+
*
|
|
24
|
+
* **It is a different Component from `TextFormatToolbar`, and the two disagree
|
|
25
|
+
* about focus.** That is the argument, and it is a disagreement rather than a
|
|
26
|
+
* difference of content: a text format toolbar **must** refuse to move focus on a
|
|
27
|
+
* press, because focus leaving a `contenteditable` collapses its selection in
|
|
28
|
+
* several engines and the command would act on nothing, so it takes a
|
|
29
|
+
* `getEditor` and hands focus back after every command. A selection toolbar over
|
|
30
|
+
* rows **must let** focus move, because a keyboard reader has to Tab back to the
|
|
31
|
+
* list to change what is selected, and a row's checkbox has to be able to receive
|
|
32
|
+
* focus to be unchecked. One Component could not do both, and a
|
|
33
|
+
* `preserveFocus` boolean over the two would be a prop whose two answers are "this
|
|
34
|
+
* is the Component for a caret" and "this is the Component for a set of rows",
|
|
35
|
+
* which is the kind of prop that makes a catalogue a second list of call sites.
|
|
36
|
+
* So the roles are the same and the focus contract is the Component.
|
|
37
|
+
*
|
|
38
|
+
* **It renders nothing when nothing is selected, and the cost is the caller
|
|
39
|
+
* holding the sentence.** See `label`. A Component that counted for itself would
|
|
40
|
+
* need a `count` and a plural rule, and the plural rule is a language question:
|
|
41
|
+
* English puts the noun in the middle, Polish puts it in the genitive and adds
|
|
42
|
+
* three forms, and no Component here may know any of that. The caller passes the
|
|
43
|
+
* finished words and this Component never invents one.
|
|
44
|
+
*
|
|
45
|
+
* **Unavailable is drawn and walked, not removed and not the native `disabled`.**
|
|
46
|
+
* A command that cannot run keeps its place in the row and in the arrow-key walk,
|
|
47
|
+
* carries `aria-disabled`, and refuses the press in its handler, which is the
|
|
48
|
+
* arrangement `Dropzone` states in full: a control that vanishes leaves a
|
|
49
|
+
* keyboard reader with a gap and no announcement, and a natively disabled one
|
|
50
|
+
* leaves a hole they have to interpret. The cost is that the row is wider than
|
|
51
|
+
* the set of things a reader can do about the selection they have made.
|
|
52
|
+
*
|
|
53
|
+
* **The commands are drawn, and the selection is not read.** Prism never calls
|
|
54
|
+
* `window.getSelection` and never asks what is selected, for the same reason
|
|
55
|
+
* `TextFormatToolbar` does not: the rows may be a table, a grid, a card list or
|
|
56
|
+
* something behind a consumer's own state, and the DOM selection a browser would
|
|
57
|
+
* report is either absent or a fiction. So the caller owns whether a command can
|
|
58
|
+
* run, what running it does, and what happens to the selection afterwards, and
|
|
59
|
+
* this Component's entire claim about the selection is that it exists while there
|
|
60
|
+
* is one and says how much of it there is.
|
|
61
|
+
*
|
|
62
|
+
* **The dismiss control is a second command and not a property of the row.** A
|
|
63
|
+
* selection ends by the reader saying so, and a row that could not be ended would
|
|
64
|
+
* leave a reader who selected the wrong eleven rows with no way back that does not
|
|
65
|
+
* involve the checkboxes. It is a real button with its own name rather than a
|
|
66
|
+
* drawn affordance, so the cost is one more stop in a row whose commands are
|
|
67
|
+
* otherwise the caller's.
|
|
68
|
+
*
|
|
69
|
+
* **The row is named by the label it already draws.** `aria-labelledby` on the
|
|
70
|
+
* leading label rather than an `aria-label`, because `label` is a `ReactNode` and
|
|
71
|
+
* there is no string here to put in an `aria-label`, while a reference reads the
|
|
72
|
+
* rendered words. So a reader tabbing onto the row hears the selection and the
|
|
73
|
+
* commands in one announcement, and the two cannot drift apart.
|
|
74
|
+
* `TextFormatToolbar` states the same rule from the other end, where its name is a
|
|
75
|
+
* string and `aria-label` is what takes it.
|
|
76
|
+
*
|
|
77
|
+
* **It is a client Component**, because it holds the one tab stop the `toolbar`
|
|
78
|
+
* role promises, walks it with four keys, and takes the dismissal callback. What
|
|
79
|
+
* that costs is that a server-rendered page cannot show a selection toolbar at all,
|
|
80
|
+
* which is correct, because a selection is something a reader did and a server has
|
|
81
|
+
* not heard about it yet.
|
|
82
|
+
*/
|
|
83
|
+
function SelectionToolbar({ label, commands, dismissLabel, onDismiss, className, }) {
|
|
84
|
+
const rootRef = useRef(null);
|
|
85
|
+
// The name of the toolbar, taken from the label the reader can already see.
|
|
86
|
+
//
|
|
87
|
+
// The visible label is a `ReactNode` because the count is a sentence in the
|
|
88
|
+
// caller's language and this Component may not compose one, so the name cannot be
|
|
89
|
+
// an `aria-label`: there is no string here to put in one. `aria-labelledby` reads
|
|
90
|
+
// the rendered text of the element it points at, which is the arrangement
|
|
91
|
+
// `ChoiceCard` uses for its legend and for the same reason, and it has the second
|
|
92
|
+
// property that matters, which is that the name and the words cannot drift apart.
|
|
93
|
+
const labelId = useId();
|
|
94
|
+
// The one tab stop the `toolbar` role promises, held as a position so a caller
|
|
95
|
+
// who reorders the commands does not strand the reader on a command that moved.
|
|
96
|
+
const [active, setActive] = useState(0);
|
|
97
|
+
// Clamped to the row, because a caller who removes commands can leave the
|
|
98
|
+
// remembered position past the end and a toolbar with no tab stop is a toolbar a
|
|
99
|
+
// keyboard reader has to step over.
|
|
100
|
+
const stop = active < commands.length ? active : 0;
|
|
101
|
+
if (isNothing(label))
|
|
102
|
+
return null;
|
|
103
|
+
const focusCommand = (index) => {
|
|
104
|
+
const count = commands.length;
|
|
105
|
+
if (count === 0)
|
|
106
|
+
return;
|
|
107
|
+
// Wrapping is the toolbar model rather than the list model: a reader who
|
|
108
|
+
// arrows off the right end expects the row to continue, because a row that
|
|
109
|
+
// stops is a row they have to Tab out of and back into to reach the first
|
|
110
|
+
// command again.
|
|
111
|
+
const next = ((index % count) + count) % count;
|
|
112
|
+
setActive(next);
|
|
113
|
+
const command = rootRef.current?.querySelectorAll(COMMAND_SLOT).item(next);
|
|
114
|
+
command?.focus();
|
|
115
|
+
};
|
|
116
|
+
const onKeyDown = (event) => {
|
|
117
|
+
switch (event.key) {
|
|
118
|
+
case 'ArrowRight':
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
focusCommand(active + 1);
|
|
121
|
+
return;
|
|
122
|
+
case 'ArrowLeft':
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
focusCommand(active - 1);
|
|
125
|
+
return;
|
|
126
|
+
case 'Home':
|
|
127
|
+
event.preventDefault();
|
|
128
|
+
focusCommand(0);
|
|
129
|
+
return;
|
|
130
|
+
case 'End':
|
|
131
|
+
event.preventDefault();
|
|
132
|
+
focusCommand(commands.length - 1);
|
|
133
|
+
return;
|
|
134
|
+
default:
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
return (_jsxs("div", { ref: rootRef, "data-slot": "selection-toolbar", role: "toolbar", "aria-labelledby": labelId, "aria-orientation": "horizontal", onKeyDown: onKeyDown, className: cn('bg-card flex w-full items-center gap-1 rounded-md border p-1', className), children: [_jsx("span", { id: labelId, "data-slot": "selection-toolbar-label", className: "text-muted-foreground px-2 text-sm font-medium", children: label }), commands.map((command, index) => (_jsx(Button, { "data-slot": "selection-toolbar-command", type: "button", variant: "ghost", size: "sm", tabIndex: index === stop ? 0 : -1, "aria-label": command.label, "aria-disabled": command.disabled || undefined, onClick: command.disabled ? () => undefined : command.onRun, children: command.icon }, command.id))), _jsx(Button, { "data-slot": "selection-toolbar-dismiss", type: "button", variant: "ghost", size: "sm", "aria-label": dismissLabel, onClick: onDismiss, children: _jsx(XIcon, { "aria-hidden": "true" }) })] }));
|
|
138
|
+
}
|
|
139
|
+
export { SelectionToolbar };
|
|
@@ -185,6 +185,26 @@ export interface SidebarFooterProps extends ComponentProps<'div'> {
|
|
|
185
185
|
* `useState` and the same context around it. The toggle is a part rather than a
|
|
186
186
|
* built-in control, so a product puts it in the rail's header or its footer
|
|
187
187
|
* without the Component deciding where a rail's controls belong.
|
|
188
|
+
*
|
|
189
|
+
* **The rail animates `width` and not a transform, and this is the one place in
|
|
190
|
+
* this package that could not be moved.** `Progress` and `RangeField` both express
|
|
191
|
+
* their value as a `scaleX` about the inline start, because a bar and a band are
|
|
192
|
+
* shapes: scaling one squashes its own corner radius and nothing else, and both
|
|
193
|
+
* Components say so and accept the trade. A rail is not a shape. It carries a
|
|
194
|
+
* brand mark, a list of items with a 16px icon, the item's own label, and a
|
|
195
|
+
* trailing count, and a `scaleX` scales every one of them: the icons become ovals,
|
|
196
|
+
* the labels become condensed, and the counts are unreadable at exactly the moment
|
|
197
|
+
* the rail is moving. A transform cannot reflow text, which is the whole reason a
|
|
198
|
+
* rail is animated at all: at `scaleX(0.25)` the labels are still laid out for a
|
|
199
|
+
* 16rem column, so the rail's contents would never reflow into the 4rem column they
|
|
200
|
+
* are supposed to occupy. The property has to be the one that reflows them.
|
|
201
|
+
*
|
|
202
|
+
* So the rail keeps `transition-[width]` and is the named exception rather than an
|
|
203
|
+
* unexplained gap, and the cost is stated rather than argued away: it is a layout
|
|
204
|
+
* animation on the main thread, over a column that is one element with a small
|
|
205
|
+
* subtree, once per reader's click. That is a different order of cost from a bar
|
|
206
|
+
* that advances on every frame of a running job, which is why the two were not the
|
|
207
|
+
* same decision.
|
|
188
208
|
*/
|
|
189
209
|
declare function Sidebar({ collapsed: controlled, defaultCollapsed, onCollapsedChange, id, children, className, ...props }: SidebarProps): import("react").JSX.Element;
|
|
190
210
|
/**
|
|
@@ -222,6 +242,15 @@ declare function SidebarItem({ label, href, onClick, icon, current, children, ne
|
|
|
222
242
|
* a workspace switcher for the same row. It points at the rail by id, so the
|
|
223
243
|
* region it controls is the element the rail actually rendered rather than a name
|
|
224
244
|
* that has drifted from it.
|
|
245
|
+
*
|
|
246
|
+
* **`pointer-coarse:size-11` is the coarse-pointer floor, as a step.** A band was
|
|
247
|
+
* rejected on condition 1 for the same reason `dialog.tsx` rejects one: this control
|
|
248
|
+
* is the one thing in the rail's header row, so there is no neighbouring control for
|
|
249
|
+
* a band to reach, and there is no inset to overhang either. `SidebarHeader` is
|
|
250
|
+
* `p-3` open and `p-2` collapsed with no fixed height, so growing the toggle by
|
|
251
|
+
* twelve pixels grows the header by twelve and moves nothing. The collapsed rail is
|
|
252
|
+
* `w-16`, so a 44px control centred in it by `mx-auto` still has ten pixels of air on
|
|
253
|
+
* each side. See DESIGN.md, The coarse-pointer floor.
|
|
225
254
|
*/
|
|
226
255
|
declare function SidebarToggle({ collapseLabel, expandLabel, className, ...props }: SidebarToggleProps): import("react").JSX.Element;
|
|
227
256
|
export { Sidebar, SidebarHeader, SidebarNav, SidebarItem, SidebarFooter, SidebarToggle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAmCd,qCAAqC;AACrC,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC3E;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD;;;;;;;OAOG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iFAAiF;IACjF,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAEpE,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC9E;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACpF;;;;;;;OAOG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAkBpE
|
|
1
|
+
{"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAmCd,qCAAqC;AACrC,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC3E;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,+EAA+E;IAC/E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAChD;;;;;;;OAOG;IACH,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,iFAAiF;IACjF,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAEpE,wCAAwC;AACxC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC9E;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;;OAUG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACpF;;;;;;;OAOG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,KAAK,CAAC;CAAG;AAkBpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,iBAAS,OAAO,CAAC,EACf,SAAS,EAAE,UAAU,EACrB,gBAAwB,EACxB,iBAAiB,EACjB,EAAE,EACF,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,YAAY,+BAmDd;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BASjE;AAED,kFAAkF;AAClF,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BAgB5E;AAED;;;;;GAKG;AACH,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,+BASjE;AAED;;;;;;;;GAQG;AACH,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,OAAe,EACf,QAAQ,EACR,MAAM,EACN,SAAS,GACV,EAAE,gBAAgB,+BAgGlB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,aAAa,CAAC,EACrB,aAAa,EACb,WAAW,EACX,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,+BA2BpB;AAED,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -77,6 +77,26 @@ const ITEM_FILL = {
|
|
|
77
77
|
* `useState` and the same context around it. The toggle is a part rather than a
|
|
78
78
|
* built-in control, so a product puts it in the rail's header or its footer
|
|
79
79
|
* without the Component deciding where a rail's controls belong.
|
|
80
|
+
*
|
|
81
|
+
* **The rail animates `width` and not a transform, and this is the one place in
|
|
82
|
+
* this package that could not be moved.** `Progress` and `RangeField` both express
|
|
83
|
+
* their value as a `scaleX` about the inline start, because a bar and a band are
|
|
84
|
+
* shapes: scaling one squashes its own corner radius and nothing else, and both
|
|
85
|
+
* Components say so and accept the trade. A rail is not a shape. It carries a
|
|
86
|
+
* brand mark, a list of items with a 16px icon, the item's own label, and a
|
|
87
|
+
* trailing count, and a `scaleX` scales every one of them: the icons become ovals,
|
|
88
|
+
* the labels become condensed, and the counts are unreadable at exactly the moment
|
|
89
|
+
* the rail is moving. A transform cannot reflow text, which is the whole reason a
|
|
90
|
+
* rail is animated at all: at `scaleX(0.25)` the labels are still laid out for a
|
|
91
|
+
* 16rem column, so the rail's contents would never reflow into the 4rem column they
|
|
92
|
+
* are supposed to occupy. The property has to be the one that reflows them.
|
|
93
|
+
*
|
|
94
|
+
* So the rail keeps `transition-[width]` and is the named exception rather than an
|
|
95
|
+
* unexplained gap, and the cost is stated rather than argued away: it is a layout
|
|
96
|
+
* animation on the main thread, over a column that is one element with a small
|
|
97
|
+
* subtree, once per reader's click. That is a different order of cost from a bar
|
|
98
|
+
* that advances on every frame of a running job, which is why the two were not the
|
|
99
|
+
* same decision.
|
|
80
100
|
*/
|
|
81
101
|
function Sidebar({ collapsed: controlled, defaultCollapsed = false, onCollapsedChange, id, children, className, ...props }) {
|
|
82
102
|
const [internal, setInternal] = useState(defaultCollapsed);
|
|
@@ -100,7 +120,11 @@ function Sidebar({ collapsed: controlled, defaultCollapsed = false, onCollapsedC
|
|
|
100
120
|
// The width is the state feedback, and it is the only motion on the
|
|
101
121
|
// rail: a rail that collapsed and looked identical teaches a reader
|
|
102
122
|
// that the control did nothing.
|
|
103
|
-
|
|
123
|
+
//
|
|
124
|
+
// `duration-slow` because this is a layout animation, which is the case
|
|
125
|
+
// `DESIGN.md`'s motion scale assigns `slow` to. The items in the rail
|
|
126
|
+
// stay on `duration-fast` for colour, because colour is the other case.
|
|
127
|
+
'transition-[width] duration-slow ease-out', collapsed ? 'w-16' : 'w-64', className), ...props, children: children }) }));
|
|
104
128
|
}
|
|
105
129
|
/**
|
|
106
130
|
* The space at the top of the rail, for a brand or a workspace switcher.
|
|
@@ -164,9 +188,18 @@ function SidebarItem({ label, href, onClick, icon, current = false, children, ne
|
|
|
164
188
|
* a workspace switcher for the same row. It points at the rail by id, so the
|
|
165
189
|
* region it controls is the element the rail actually rendered rather than a name
|
|
166
190
|
* that has drifted from it.
|
|
191
|
+
*
|
|
192
|
+
* **`pointer-coarse:size-11` is the coarse-pointer floor, as a step.** A band was
|
|
193
|
+
* rejected on condition 1 for the same reason `dialog.tsx` rejects one: this control
|
|
194
|
+
* is the one thing in the rail's header row, so there is no neighbouring control for
|
|
195
|
+
* a band to reach, and there is no inset to overhang either. `SidebarHeader` is
|
|
196
|
+
* `p-3` open and `p-2` collapsed with no fixed height, so growing the toggle by
|
|
197
|
+
* twelve pixels grows the header by twelve and moves nothing. The collapsed rail is
|
|
198
|
+
* `w-16`, so a 44px control centred in it by `mx-auto` still has ten pixels of air on
|
|
199
|
+
* each side. See DESIGN.md, The coarse-pointer floor.
|
|
167
200
|
*/
|
|
168
201
|
function SidebarToggle({ collapseLabel, expandLabel, className, ...props }) {
|
|
169
202
|
const { collapsed, id, toggle } = useSidebarState();
|
|
170
|
-
return (_jsx("button", { type: "button", "data-slot": "sidebar-toggle", "data-collapsed": collapsed, "aria-expanded": !collapsed, "aria-controls": id, "aria-label": collapsed ? expandLabel : collapseLabel, onClick: toggle, className: cn('text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring focus-visible:ring-[3px] flex size-8 shrink-0 items-center justify-center rounded-md', 'transition-colors duration-fast ease-out', collapsed && 'mx-auto', className), ...props, children: collapsed ? (_jsx(PanelLeftOpen, { className: "size-4", "aria-hidden": "true" })) : (_jsx(PanelLeftClose, { className: "size-4", "aria-hidden": "true" })) }));
|
|
203
|
+
return (_jsx("button", { type: "button", "data-slot": "sidebar-toggle", "data-collapsed": collapsed, "aria-expanded": !collapsed, "aria-controls": id, "aria-label": collapsed ? expandLabel : collapseLabel, onClick: toggle, className: cn('text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-sidebar-ring focus-visible:ring-[3px] flex size-8 shrink-0 items-center justify-center rounded-md', 'transition-colors duration-fast ease-out', 'pointer-coarse:size-11', collapsed && 'mx-auto', className), ...props, children: collapsed ? (_jsx(PanelLeftOpen, { className: "size-4", "aria-hidden": "true" })) : (_jsx(PanelLeftClose, { className: "size-4", "aria-hidden": "true" })) }));
|
|
171
204
|
}
|
|
172
205
|
export { Sidebar, SidebarHeader, SidebarNav, SidebarItem, SidebarFooter, SidebarToggle };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/signal-field.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,WAAW,CAAC,EACnB,KAAU,EACV,UAAU,EACV,KAAK,EACL,UAAiB,EACjB,KAAa,EACb,SAAS,GACV,EAAE,gBAAgB,+
|
|
1
|
+
{"version":3,"file":"signal-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/signal-field.tsx"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,WAAW,CAAC,EACnB,KAAU,EACV,UAAU,EACV,KAAK,EACL,UAAiB,EACjB,KAAa,EACb,SAAS,GACV,EAAE,gBAAgB,+BA2ClB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -72,6 +72,6 @@ function SignalField({ count = 28, emphasisAt, label, decorative = true, drift =
|
|
|
72
72
|
'--ambient-drift-x': `${(index % 2 === 0 ? 1 : -1) * (0.4 + (index % 5) * 0.15)}rem`,
|
|
73
73
|
'--ambient-drift-y': `${(index % 3 === 0 ? 1 : -1) * 0.35}rem`,
|
|
74
74
|
}
|
|
75
|
-
: undefined }))) }));
|
|
75
|
+
: undefined }, index))) }));
|
|
76
76
|
}
|
|
77
77
|
export { SignalField };
|
|
@@ -37,6 +37,13 @@ export interface SliderProps extends Omit<ComponentProps<'div'>, 'onChange'> {
|
|
|
37
37
|
* ends. Give it an `aria-label` or a visible label. Use a Slider for a value
|
|
38
38
|
* that is approximate and continuous; when the exact number matters, use an
|
|
39
39
|
* Input of type number.
|
|
40
|
+
*
|
|
41
|
+
* The thumb is 16px for a mouse and a trackpad and takes the 44px coarse-pointer
|
|
42
|
+
* floor on touch input as a transparent band around itself, so the dot you see and
|
|
43
|
+
* the dot you grab are the same size on every pointer. A press inside the band
|
|
44
|
+
* drags the thumb from where it was rather than jumping the value to where you
|
|
45
|
+
* pressed, which is the trade the floor costs on a six pixel rail; the arrow keys
|
|
46
|
+
* and the range input behind the track still reach every value.
|
|
40
47
|
*/
|
|
41
48
|
declare function Slider({ className, 'aria-label': ariaLabel, ...props }: SliderProps): import("react").JSX.Element;
|
|
42
49
|
export { Slider };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/components/ui/slider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC1E,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/components/ui/slider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC1E,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,GAAG,KAAK,EACT,EAAE,WAAW,+BAyDb;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -10,6 +10,13 @@ import { cn } from '../../lib/utils.js';
|
|
|
10
10
|
* ends. Give it an `aria-label` or a visible label. Use a Slider for a value
|
|
11
11
|
* that is approximate and continuous; when the exact number matters, use an
|
|
12
12
|
* Input of type number.
|
|
13
|
+
*
|
|
14
|
+
* The thumb is 16px for a mouse and a trackpad and takes the 44px coarse-pointer
|
|
15
|
+
* floor on touch input as a transparent band around itself, so the dot you see and
|
|
16
|
+
* the dot you grab are the same size on every pointer. A press inside the band
|
|
17
|
+
* drags the thumb from where it was rather than jumping the value to where you
|
|
18
|
+
* pressed, which is the trade the floor costs on a six pixel rail; the arrow keys
|
|
19
|
+
* and the range input behind the track still reach every value.
|
|
13
20
|
*/
|
|
14
21
|
function Slider({ className, 'aria-label': ariaLabel, ...props }) {
|
|
15
22
|
return (_jsx(SliderPrimitive.Root, { "data-slot": "slider", className: cn('relative flex w-full touch-none items-center select-none', 'data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col', 'data-[disabled]:opacity-50', className), ...props, children: _jsxs(SliderPrimitive.Control, { className: "flex w-full items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", children: [_jsx(SliderPrimitive.Track, { className: "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5", children: _jsx(SliderPrimitive.Indicator, { className: "bg-primary absolute rounded-full data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full" }) }), _jsx(SliderPrimitive.Thumb, { "aria-label": ariaLabel, className: cn(
|
|
@@ -18,6 +25,30 @@ function Slider({ className, 'aria-label': ariaLabel, ...props }) {
|
|
|
18
25
|
// compliant ring and never sees that half strength fails 3:1. This thumb is
|
|
19
26
|
// the element the JSDoc above says stays focusable, so it is the one
|
|
20
27
|
// indicator a keyboard user has. See the comment on the Button's base class.
|
|
21
|
-
'border-primary bg-background shadow-xs ring-ring block size-4 shrink-0 rounded-full border outline-none',
|
|
28
|
+
'border-primary bg-background shadow-xs ring-ring block size-4 shrink-0 rounded-full border outline-none',
|
|
29
|
+
// The 44px coarse-pointer floor, and here it is a band rather than a step.
|
|
30
|
+
//
|
|
31
|
+
// The two obvious steps are both wrong for a thumb. Growing the dot to 44px
|
|
32
|
+
// puts a ball the size of a switch on a 6px track, and Base UI positions the
|
|
33
|
+
// thumb with `left: <percent>%` plus a `translate`, so the value would not
|
|
34
|
+
// move, but the drawing would: a slider whose handle is seven times the
|
|
35
|
+
// thickness of its own rail reads as a different control. A band reaches the
|
|
36
|
+
// same 44px with the 16px dot untouched.
|
|
37
|
+
//
|
|
38
|
+
// The band is safe here because nothing sits within fourteen pixels of a
|
|
39
|
+
// thumb to be swallowed by it. It does overlap the track, and that is the
|
|
40
|
+
// trade rather than an oversight: a press inside the band grabs the thumb and
|
|
41
|
+
// drags it from where it was, where a press on the bare track 10px away would
|
|
42
|
+
// have jumped the value to that point. On a coarse pointer the drag is the
|
|
43
|
+
// model, a 6px rail cannot be tapped to a chosen value by anyone, and the
|
|
44
|
+
// keyboard still reaches every value through the range input behind it.
|
|
45
|
+
//
|
|
46
|
+
// Nothing about the value maths moves, and that is a claim about Base UI
|
|
47
|
+
// rather than about this class string. It reads the press offset from
|
|
48
|
+
// `getMidpoint(thumb)`, and it computes the value from the control's own
|
|
49
|
+
// `getBoundingClientRect()`, so a pseudo-element, which contributes to neither
|
|
50
|
+
// box, cannot shift either. `slider.test.tsx` asserts that the value still
|
|
51
|
+
// tracks a pointer press at a given coordinate.
|
|
52
|
+
'transition-[color,box-shadow] duration-fast ease-out', 'hover:ring-4 focus-visible:ring-4', 'data-[disabled]:pointer-events-none', 'pointer-coarse:before:absolute pointer-coarse:before:left-1/2 pointer-coarse:before:top-1/2 pointer-coarse:before:h-11 pointer-coarse:before:w-11 pointer-coarse:before:-translate-x-1/2 pointer-coarse:before:-translate-y-1/2 pointer-coarse:before:content-[""]') })] }) }));
|
|
22
53
|
}
|
|
23
54
|
export { Slider };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
import type { ChartColor } from './chart-frame.js';
|
|
3
|
+
/** The props the Sparkline accepts. */
|
|
4
|
+
export interface SparklineProps extends Omit<ComponentProps<'figure'>, 'children'> {
|
|
5
|
+
/**
|
|
6
|
+
* The readings, in order, in the caller's own units.
|
|
7
|
+
*
|
|
8
|
+
* Raw magnitudes rather than percentages of a maximum, for the reason
|
|
9
|
+
* `PulseSeries` gives for its columns and the reason `ChartFrame` gives for its
|
|
10
|
+
* scale: a caller that pre-normalises has two chances to get the axis wrong, and
|
|
11
|
+
* a mislabelled axis is a lie with a typeface on it. The tallest reading sets
|
|
12
|
+
* the top of the box here, and the smallest sets the bottom.
|
|
13
|
+
*/
|
|
14
|
+
values: readonly number[];
|
|
15
|
+
/**
|
|
16
|
+
* The name of the series, and the only thing a screen reader reads before the
|
|
17
|
+
* numbers.
|
|
18
|
+
*
|
|
19
|
+
* Required rather than defaulted, and required for the same two reasons
|
|
20
|
+
* `ChartFrame` gives: two sparklines in a table of numbers are two pictures a
|
|
21
|
+
* reader cannot tell apart, and a picture with no name is not announced and not
|
|
22
|
+
* linkable. A sparkline named "Chart" is a Component shipping a sentence about a
|
|
23
|
+
* product it knows nothing about.
|
|
24
|
+
*/
|
|
25
|
+
label: string;
|
|
26
|
+
/**
|
|
27
|
+
* The role the line is drawn in. @defaultValue 'chart-1'
|
|
28
|
+
*
|
|
29
|
+
* One of the five the token contract publishes, and never a raw colour: a
|
|
30
|
+
* series colour is a claim about what a thing is, and a Component that knows
|
|
31
|
+
* nothing about the caller's product has no business choosing one, so the caller
|
|
32
|
+
* chooses and gets the same ink in every pack and both modes. The default is
|
|
33
|
+
* `chart-1` because a sparkline is usually alone in its cell and has no series
|
|
34
|
+
* to be distinguished from.
|
|
35
|
+
*/
|
|
36
|
+
tone?: ChartColor;
|
|
37
|
+
/**
|
|
38
|
+
* The width of the box, in pixels. @defaultValue 96
|
|
39
|
+
*
|
|
40
|
+
* A number in pixels rather than a token, and the cost is that a sparkline is
|
|
41
|
+
* not fluid: one in a column that resizes does not resize with it. The reason is
|
|
42
|
+
* that a sparkline lives in a table cell or a list row, where its job is to sit
|
|
43
|
+
* at one size in a column of rows and line up with the figures beside it, and a
|
|
44
|
+
* percentage of a fluid cell would make every row a different width.
|
|
45
|
+
*/
|
|
46
|
+
width?: number;
|
|
47
|
+
/**
|
|
48
|
+
* The height of the box, in pixels. @defaultValue 24
|
|
49
|
+
*
|
|
50
|
+
* Two dozen pixels because a sparkline is a mark, not a plot: it is read beside
|
|
51
|
+
* its number rather than examined, and a box tall enough to read an axis would
|
|
52
|
+
* be a chart, which is `ChartFrame`.
|
|
53
|
+
*/
|
|
54
|
+
height?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Whether the last reading takes a mark.
|
|
57
|
+
*
|
|
58
|
+
* Off by default, because a line with a dot on its end is a claim that the end
|
|
59
|
+
* is special. On when the series is a live reading, where the last value is the
|
|
60
|
+
* one the reader came for and the shape behind it is context.
|
|
61
|
+
*/
|
|
62
|
+
emphasizeLast?: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* A series drawn small enough to sit in a cell, and the numbers behind it.
|
|
66
|
+
*
|
|
67
|
+
* **It is decorative and described, and both halves are needed.** The drawing is
|
|
68
|
+
* `aria-hidden` and carries no information a reader can use on its own: a
|
|
69
|
+
* 96-pixel line with no axis, no labels and no legend is a shape, and a shape a
|
|
70
|
+
* reader cannot query is the failure a chart exists to prevent. So the values are
|
|
71
|
+
* also rendered as a table in a visually hidden wrapper, generated from the same
|
|
72
|
+
* array the line is drawn from, which means a screen reader reaches every number,
|
|
73
|
+
* a reader's own table navigation can walk it, and a crawler indexing the page
|
|
74
|
+
* finds the figures rather than a picture. That is the honest answer for a figure
|
|
75
|
+
* whose entire claim is its shape, and the cost is real: a table of two hundred
|
|
76
|
+
* rows in the document for a sparkline that occupies ninety-six pixels.
|
|
77
|
+
*
|
|
78
|
+
* **The table has no column headings, and that is a gap with a reason.** The
|
|
79
|
+
* positions are numbered rather than named, because this Item has no words for
|
|
80
|
+
* what a position is called and inventing "Time" or "Index" would be a claim
|
|
81
|
+
* about the caller's data. The row head carries the position, the cell carries the
|
|
82
|
+
* number, and the caption is the caller's own `label`. A caller whose readings
|
|
83
|
+
* have names, a category axis, a legend, a second series or a visible table is
|
|
84
|
+
* looking for `ChartFrame`, which is the Component that has room for all of it.
|
|
85
|
+
*
|
|
86
|
+
* **Two inputs throw rather than draw, because a drawn lie is worse than a
|
|
87
|
+
* refusal.** An empty `values` array is a frame with no claim in it, and a series
|
|
88
|
+
* whose readings are all the same number is a straight stroke with no information
|
|
89
|
+
* in it. A reader cannot tell a flat line from a broken chart, and the only thing
|
|
90
|
+
* that separates them is a diagnostic the caller sees. The alternative was to draw
|
|
91
|
+
* a horizontal line, which is what a charting library does, and which answers
|
|
92
|
+
* "the data is flat" with a picture that also answers "the chart is broken".
|
|
93
|
+
*
|
|
94
|
+
* **A line is scaled to its own range, with no floor at zero, and the cost is
|
|
95
|
+
* named here.** A bar has to start at zero or its length is not a measurement,
|
|
96
|
+
* which is why `ChartFrame` floors every scale. A line is read for the shape
|
|
97
|
+
* between its points, and a series between 900 and 1,000 floored at zero is a
|
|
98
|
+
* flat line drawn faithfully, which is a picture that hides the thing it was put
|
|
99
|
+
* there to show. So the range is the data's own. The price is that a series that
|
|
100
|
+
* moves by two percent looks dramatic, and the answer is the table, which carries
|
|
101
|
+
* the numbers at the precision the caller gave them.
|
|
102
|
+
*
|
|
103
|
+
* **The geometry is `ChartFrame`'s geometry.** The `<svg>` has no `viewBox` and
|
|
104
|
+
* its coordinates are percentages of the box, so the stroke is pixels rather than
|
|
105
|
+
* user units and a two-pixel line is two pixels in every box size, and one
|
|
106
|
+
* `<line>` is drawn per pair of readings rather than a `polyline`, because a
|
|
107
|
+
* `points` attribute is a list of coordinate pairs joined by a space and a
|
|
108
|
+
* Component here ships no word-shaped literal. The tone is a semantic utility from
|
|
109
|
+
* the contract, so a scoped pack boundary restyles the line through the cascade
|
|
110
|
+
* rather than through a value the drawing is holding.
|
|
111
|
+
*
|
|
112
|
+
* It is a server Component. No hook, no state, and the line is arithmetic over
|
|
113
|
+
* props, so a dashboard full of sparklines costs no client code at all.
|
|
114
|
+
*/
|
|
115
|
+
declare function Sparkline({ className, values, label, tone, width, height, emphasizeLast, ...props }: SparklineProps): import("react").JSX.Element;
|
|
116
|
+
export { Sparkline };
|
|
117
|
+
//# sourceMappingURL=sparkline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sparkline.d.ts","sourceRoot":"","sources":["../../../src/components/ui/sparkline.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AA2C/C,uCAAuC;AACvC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IAChF;;;;;;;;OAQG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,MAAM,EACN,KAAK,EACL,IAAgB,EAChB,KAAU,EACV,MAAW,EACX,aAAqB,EACrB,GAAG,KAAK,EACT,EAAE,cAAc,+BA6FhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|