@nanisoft/prism-ui 0.13.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +22 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/blocks/about-01/about.d.ts +296 -0
- package/dist/blocks/about-01/about.d.ts.map +1 -0
- package/dist/blocks/about-01/about.js +103 -0
- package/dist/blocks/about-01/index.d.ts +3 -0
- package/dist/blocks/about-01/index.d.ts.map +1 -0
- package/dist/blocks/about-01/index.js +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
- package/dist/blocks/accept-invite-01/index.d.ts +3 -0
- package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/index.js +1 -0
- package/dist/blocks/account-01/account-01.d.ts +393 -0
- package/dist/blocks/account-01/account-01.d.ts.map +1 -0
- package/dist/blocks/account-01/account-01.js +215 -0
- package/dist/blocks/account-01/index.d.ts +3 -0
- package/dist/blocks/account-01/index.d.ts.map +1 -0
- package/dist/blocks/account-01/index.js +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
- package/dist/blocks/activity-feed-01/index.d.ts +3 -0
- package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/index.js +1 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
- package/dist/blocks/address-book-01/address-book-01.js +233 -0
- package/dist/blocks/address-book-01/index.d.ts +3 -0
- package/dist/blocks/address-book-01/index.d.ts.map +1 -0
- package/dist/blocks/address-book-01/index.js +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
- package/dist/blocks/audit-log-01/index.d.ts +3 -0
- package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/index.js +1 -0
- package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
- package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
- package/dist/blocks/auth-form-01/auth-form.js +26 -3
- package/dist/blocks/awards-01/awards.d.ts +156 -0
- package/dist/blocks/awards-01/awards.d.ts.map +1 -0
- package/dist/blocks/awards-01/awards.js +102 -0
- package/dist/blocks/awards-01/index.d.ts +3 -0
- package/dist/blocks/awards-01/index.d.ts.map +1 -0
- package/dist/blocks/awards-01/index.js +1 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/backdrop.js +170 -0
- package/dist/blocks/backdrop-01/index.d.ts +3 -0
- package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/index.js +1 -0
- package/dist/blocks/bento-01/bento-01.d.ts +136 -0
- package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
- package/dist/blocks/bento-01/bento-01.js +97 -0
- package/dist/blocks/bento-01/index.d.ts +3 -0
- package/dist/blocks/bento-01/index.d.ts.map +1 -0
- package/dist/blocks/bento-01/index.js +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
- package/dist/blocks/billing-source-01/index.d.ts +3 -0
- package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/index.js +1 -0
- package/dist/blocks/bundle-01/bundle.d.ts +387 -0
- package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
- package/dist/blocks/bundle-01/bundle.js +153 -0
- package/dist/blocks/bundle-01/index.d.ts +3 -0
- package/dist/blocks/bundle-01/index.d.ts.map +1 -0
- package/dist/blocks/bundle-01/index.js +1 -0
- package/dist/blocks/calendar-01/calendar.d.ts +251 -0
- package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
- package/dist/blocks/calendar-01/calendar.js +191 -0
- package/dist/blocks/calendar-01/index.d.ts +3 -0
- package/dist/blocks/calendar-01/index.d.ts.map +1 -0
- package/dist/blocks/calendar-01/index.js +1 -0
- package/dist/blocks/capacity-01/capacity.d.ts +363 -0
- package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
- package/dist/blocks/capacity-01/capacity.js +208 -0
- package/dist/blocks/capacity-01/index.d.ts +3 -0
- package/dist/blocks/capacity-01/index.d.ts.map +1 -0
- package/dist/blocks/capacity-01/index.js +1 -0
- package/dist/blocks/careers-01/careers.d.ts +186 -0
- package/dist/blocks/careers-01/careers.d.ts.map +1 -0
- package/dist/blocks/careers-01/careers.js +83 -0
- package/dist/blocks/careers-01/index.d.ts +3 -0
- package/dist/blocks/careers-01/index.d.ts.map +1 -0
- package/dist/blocks/careers-01/index.js +1 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/case-studies.js +97 -0
- package/dist/blocks/case-studies-01/index.d.ts +3 -0
- package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/index.js +1 -0
- package/dist/blocks/case-study-01/case-study.d.ts +214 -0
- package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
- package/dist/blocks/case-study-01/case-study.js +79 -0
- package/dist/blocks/case-study-01/index.d.ts +3 -0
- package/dist/blocks/case-study-01/index.d.ts.map +1 -0
- package/dist/blocks/case-study-01/index.js +1 -0
- package/dist/blocks/changelog-01/changelog.d.ts +200 -0
- package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
- package/dist/blocks/changelog-01/changelog.js +155 -0
- package/dist/blocks/changelog-01/index.d.ts +3 -0
- package/dist/blocks/changelog-01/index.d.ts.map +1 -0
- package/dist/blocks/changelog-01/index.js +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
- package/dist/blocks/chart-card-01/index.d.ts +3 -0
- package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/index.js +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
- package/dist/blocks/chart-group-01/index.d.ts +3 -0
- package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/index.js +1 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/code-sample.js +104 -0
- package/dist/blocks/code-sample-01/index.d.ts +3 -0
- package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/index.js +1 -0
- package/dist/blocks/community-01/community.d.ts +183 -0
- package/dist/blocks/community-01/community.d.ts.map +1 -0
- package/dist/blocks/community-01/community.js +102 -0
- package/dist/blocks/community-01/index.d.ts +3 -0
- package/dist/blocks/community-01/index.d.ts.map +1 -0
- package/dist/blocks/community-01/index.js +1 -0
- package/dist/blocks/compare-01/compare.d.ts +184 -0
- package/dist/blocks/compare-01/compare.d.ts.map +1 -0
- package/dist/blocks/compare-01/compare.js +106 -0
- package/dist/blocks/compare-01/index.d.ts +3 -0
- package/dist/blocks/compare-01/index.d.ts.map +1 -0
- package/dist/blocks/compare-01/index.js +1 -0
- package/dist/blocks/compliance-01/compliance.d.ts +249 -0
- package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
- package/dist/blocks/compliance-01/compliance.js +130 -0
- package/dist/blocks/compliance-01/index.d.ts +3 -0
- package/dist/blocks/compliance-01/index.d.ts.map +1 -0
- package/dist/blocks/compliance-01/index.js +1 -0
- package/dist/blocks/consent-01/consent.d.ts +211 -0
- package/dist/blocks/consent-01/consent.d.ts.map +1 -0
- package/dist/blocks/consent-01/consent.js +101 -0
- package/dist/blocks/consent-01/index.d.ts +3 -0
- package/dist/blocks/consent-01/index.d.ts.map +1 -0
- package/dist/blocks/consent-01/index.js +1 -0
- package/dist/blocks/contact-01/contact.d.ts +319 -0
- package/dist/blocks/contact-01/contact.d.ts.map +1 -0
- package/dist/blocks/contact-01/contact.js +211 -0
- package/dist/blocks/contact-01/index.d.ts +3 -0
- package/dist/blocks/contact-01/index.d.ts.map +1 -0
- package/dist/blocks/contact-01/index.js +1 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/content-grid.js +155 -0
- package/dist/blocks/content-grid-01/index.d.ts +3 -0
- package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/index.js +1 -0
- package/dist/blocks/cta-01/cta.d.ts +7 -1
- package/dist/blocks/cta-01/cta.d.ts.map +1 -1
- package/dist/blocks/cta-01/cta.js +11 -2
- package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
- package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
- package/dist/blocks/dashboard-01/index.d.ts +3 -0
- package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/index.js +1 -0
- package/dist/blocks/data-table-01/data-table.d.ts +22 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +9 -5
- package/dist/blocks/delivery-01/delivery.d.ts +343 -0
- package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
- package/dist/blocks/delivery-01/delivery.js +212 -0
- package/dist/blocks/delivery-01/index.d.ts +3 -0
- package/dist/blocks/delivery-01/index.d.ts.map +1 -0
- package/dist/blocks/delivery-01/index.js +1 -0
- package/dist/blocks/directory-01/directory-01.d.ts +316 -0
- package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
- package/dist/blocks/directory-01/directory-01.js +252 -0
- package/dist/blocks/directory-01/index.d.ts +3 -0
- package/dist/blocks/directory-01/index.d.ts.map +1 -0
- package/dist/blocks/directory-01/index.js +1 -0
- package/dist/blocks/download-01/download.d.ts +261 -0
- package/dist/blocks/download-01/download.d.ts.map +1 -0
- package/dist/blocks/download-01/download.js +115 -0
- package/dist/blocks/download-01/index.d.ts +3 -0
- package/dist/blocks/download-01/index.d.ts.map +1 -0
- package/dist/blocks/download-01/index.js +1 -0
- package/dist/blocks/faq-01/faq.d.ts +128 -0
- package/dist/blocks/faq-01/faq.d.ts.map +1 -0
- package/dist/blocks/faq-01/faq.js +53 -0
- package/dist/blocks/faq-01/index.d.ts +3 -0
- package/dist/blocks/faq-01/index.d.ts.map +1 -0
- package/dist/blocks/faq-01/index.js +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
- package/dist/blocks/feature-rows-01/index.d.ts +3 -0
- package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/index.js +1 -0
- package/dist/blocks/feedback-01/feedback.d.ts +235 -0
- package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
- package/dist/blocks/feedback-01/feedback.js +113 -0
- package/dist/blocks/feedback-01/index.d.ts +3 -0
- package/dist/blocks/feedback-01/index.d.ts.map +1 -0
- package/dist/blocks/feedback-01/index.js +1 -0
- package/dist/blocks/field-map-01/field-map.d.ts +247 -0
- package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
- package/dist/blocks/field-map-01/field-map.js +183 -0
- package/dist/blocks/field-map-01/index.d.ts +3 -0
- package/dist/blocks/field-map-01/index.d.ts.map +1 -0
- package/dist/blocks/field-map-01/index.js +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
- package/dist/blocks/forgot-password-01/index.d.ts +3 -0
- package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/index.js +1 -0
- package/dist/blocks/gallery-01/gallery.d.ts +208 -0
- package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
- package/dist/blocks/gallery-01/gallery.js +174 -0
- package/dist/blocks/gallery-01/index.d.ts +3 -0
- package/dist/blocks/gallery-01/index.d.ts.map +1 -0
- package/dist/blocks/gallery-01/index.js +1 -0
- package/dist/blocks/gantt-01/gantt.d.ts +290 -0
- package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
- package/dist/blocks/gantt-01/gantt.js +224 -0
- package/dist/blocks/gantt-01/index.d.ts +3 -0
- package/dist/blocks/gantt-01/index.d.ts.map +1 -0
- package/dist/blocks/gantt-01/index.js +1 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
- package/dist/blocks/handoff-01/handoff-01.js +180 -0
- package/dist/blocks/handoff-01/index.d.ts +3 -0
- package/dist/blocks/handoff-01/index.d.ts.map +1 -0
- package/dist/blocks/handoff-01/index.js +1 -0
- package/dist/blocks/help-01/help.d.ts +254 -0
- package/dist/blocks/help-01/help.d.ts.map +1 -0
- package/dist/blocks/help-01/help.js +188 -0
- package/dist/blocks/help-01/index.d.ts +3 -0
- package/dist/blocks/help-01/index.d.ts.map +1 -0
- package/dist/blocks/help-01/index.js +1 -0
- package/dist/blocks/hero-01/hero.d.ts +105 -34
- package/dist/blocks/hero-01/hero.d.ts.map +1 -1
- package/dist/blocks/hero-01/hero.js +23 -15
- package/dist/blocks/hero-01/index.d.ts +1 -1
- package/dist/blocks/hero-01/index.d.ts.map +1 -1
- package/dist/blocks/hero-02/hero-02.d.ts +244 -0
- package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
- package/dist/blocks/hero-02/hero-02.js +87 -0
- package/dist/blocks/hero-02/index.d.ts +3 -0
- package/dist/blocks/hero-02/index.d.ts.map +1 -0
- package/dist/blocks/hero-02/index.js +1 -0
- package/dist/blocks/hero-03/hero-03.d.ts +247 -0
- package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
- package/dist/blocks/hero-03/hero-03.js +93 -0
- package/dist/blocks/hero-03/index.d.ts +3 -0
- package/dist/blocks/hero-03/index.d.ts.map +1 -0
- package/dist/blocks/hero-03/index.js +1 -0
- package/dist/blocks/history-01/history-01.d.ts +414 -0
- package/dist/blocks/history-01/history-01.d.ts.map +1 -0
- package/dist/blocks/history-01/history-01.js +285 -0
- package/dist/blocks/history-01/index.d.ts +3 -0
- package/dist/blocks/history-01/index.d.ts.map +1 -0
- package/dist/blocks/history-01/index.js +1 -0
- package/dist/blocks/inbox-01/inbox.d.ts +349 -0
- package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
- package/dist/blocks/inbox-01/inbox.js +244 -0
- package/dist/blocks/inbox-01/index.d.ts +3 -0
- package/dist/blocks/inbox-01/index.d.ts.map +1 -0
- package/dist/blocks/inbox-01/index.js +1 -0
- package/dist/blocks/index.d.ts +203 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +118 -0
- package/dist/blocks/industries-01/index.d.ts +3 -0
- package/dist/blocks/industries-01/index.d.ts.map +1 -0
- package/dist/blocks/industries-01/index.js +1 -0
- package/dist/blocks/industries-01/industries.d.ts +164 -0
- package/dist/blocks/industries-01/industries.d.ts.map +1 -0
- package/dist/blocks/industries-01/industries.js +96 -0
- package/dist/blocks/intake-01/index.d.ts +3 -0
- package/dist/blocks/intake-01/index.d.ts.map +1 -0
- package/dist/blocks/intake-01/index.js +1 -0
- package/dist/blocks/intake-01/intake-01.d.ts +305 -0
- package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
- package/dist/blocks/intake-01/intake-01.js +178 -0
- package/dist/blocks/integration-01/index.d.ts +3 -0
- package/dist/blocks/integration-01/index.d.ts.map +1 -0
- package/dist/blocks/integration-01/index.js +1 -0
- package/dist/blocks/integration-01/integration.d.ts +226 -0
- package/dist/blocks/integration-01/integration.d.ts.map +1 -0
- package/dist/blocks/integration-01/integration.js +170 -0
- package/dist/blocks/invite-user-01/index.d.ts +3 -0
- package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/index.js +1 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/invite-user.js +228 -0
- package/dist/blocks/issue-detail-01/index.d.ts +3 -0
- package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/index.js +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
- package/dist/blocks/issue-list-01/index.d.ts +3 -0
- package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/index.js +1 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/issue-list.js +284 -0
- package/dist/blocks/kanban-01/index.d.ts +3 -0
- package/dist/blocks/kanban-01/index.d.ts.map +1 -0
- package/dist/blocks/kanban-01/index.js +1 -0
- package/dist/blocks/kanban-01/kanban.d.ts +278 -0
- package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
- package/dist/blocks/kanban-01/kanban.js +144 -0
- package/dist/blocks/leaderboard-01/index.d.ts +3 -0
- package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/index.js +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
- package/dist/blocks/login-01/index.d.ts +3 -0
- package/dist/blocks/login-01/index.d.ts.map +1 -0
- package/dist/blocks/login-01/index.js +1 -0
- package/dist/blocks/login-01/login-01.d.ts +356 -0
- package/dist/blocks/login-01/login-01.d.ts.map +1 -0
- package/dist/blocks/login-01/login-01.js +249 -0
- package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
- package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/index.js +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
- package/dist/blocks/magic-link-01/index.d.ts +3 -0
- package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/index.js +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
- package/dist/blocks/member-list-01/index.d.ts +3 -0
- package/dist/blocks/member-list-01/index.d.ts.map +1 -0
- package/dist/blocks/member-list-01/index.js +1 -0
- package/dist/blocks/member-list-01/member-list.d.ts +192 -0
- package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
- package/dist/blocks/member-list-01/member-list.js +142 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/index.js +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
- package/dist/blocks/newsletter-01/index.d.ts +3 -0
- package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/index.js +1 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/newsletter.js +102 -0
- package/dist/blocks/notification-center-01/index.d.ts +3 -0
- package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/index.js +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
- package/dist/blocks/offer-01/index.d.ts +3 -0
- package/dist/blocks/offer-01/index.d.ts.map +1 -0
- package/dist/blocks/offer-01/index.js +1 -0
- package/dist/blocks/offer-01/offer.d.ts +139 -0
- package/dist/blocks/offer-01/offer.d.ts.map +1 -0
- package/dist/blocks/offer-01/offer.js +81 -0
- package/dist/blocks/offering-01/index.d.ts +3 -0
- package/dist/blocks/offering-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-01/index.js +1 -0
- package/dist/blocks/offering-01/offering.d.ts +245 -0
- package/dist/blocks/offering-01/offering.d.ts.map +1 -0
- package/dist/blocks/offering-01/offering.js +144 -0
- package/dist/blocks/offering-categories-01/index.d.ts +3 -0
- package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/index.js +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
- package/dist/blocks/offering-list-01/index.d.ts +3 -0
- package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/index.js +1 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/offering-list.js +366 -0
- package/dist/blocks/onboarding-01/index.d.ts +3 -0
- package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/index.js +1 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/onboarding.js +182 -0
- package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
- package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/index.js +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
- package/dist/blocks/page-header-01/index.d.ts +1 -1
- package/dist/blocks/page-header-01/index.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.d.ts +131 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +33 -9
- package/dist/blocks/passkey-01/index.d.ts +3 -0
- package/dist/blocks/passkey-01/index.d.ts.map +1 -0
- package/dist/blocks/passkey-01/index.js +1 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
- package/dist/blocks/passkey-01/passkey-01.js +192 -0
- package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
- package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/index.js +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
- package/dist/blocks/pricing-01/index.d.ts +1 -0
- package/dist/blocks/pricing-01/index.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.d.ts +118 -1
- package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.js +9 -2
- package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
- package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/index.js +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
- package/dist/blocks/project-01/index.d.ts +3 -0
- package/dist/blocks/project-01/index.d.ts.map +1 -0
- package/dist/blocks/project-01/index.js +1 -0
- package/dist/blocks/project-01/project.d.ts +323 -0
- package/dist/blocks/project-01/project.d.ts.map +1 -0
- package/dist/blocks/project-01/project.js +247 -0
- package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
- package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/index.js +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
- package/dist/blocks/project-list-01/index.d.ts +3 -0
- package/dist/blocks/project-list-01/index.d.ts.map +1 -0
- package/dist/blocks/project-list-01/index.js +1 -0
- package/dist/blocks/project-list-01/project-list.d.ts +301 -0
- package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
- package/dist/blocks/project-list-01/project-list.js +305 -0
- package/dist/blocks/provisioning-01/index.d.ts +3 -0
- package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/index.js +1 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/provisioning.js +230 -0
- package/dist/blocks/quick-view-01/index.d.ts +3 -0
- package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/index.js +1 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/quick-view.js +136 -0
- package/dist/blocks/rate-card-01/index.d.ts +3 -0
- package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/index.js +1 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/rate-card.js +79 -0
- package/dist/blocks/reset-password-01/index.d.ts +3 -0
- package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/index.js +1 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/reset-password.js +175 -0
- package/dist/blocks/resource-list-01/index.d.ts +3 -0
- package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/index.js +1 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/resource-list.js +154 -0
- package/dist/blocks/retention-01/index.d.ts +3 -0
- package/dist/blocks/retention-01/index.d.ts.map +1 -0
- package/dist/blocks/retention-01/index.js +1 -0
- package/dist/blocks/retention-01/retention.d.ts +255 -0
- package/dist/blocks/retention-01/retention.d.ts.map +1 -0
- package/dist/blocks/retention-01/retention.js +145 -0
- package/dist/blocks/run-console-01/run-console.d.ts +14 -1
- package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
- package/dist/blocks/run-console-01/run-console.js +4 -2
- package/dist/blocks/services-01/index.d.ts +3 -0
- package/dist/blocks/services-01/index.d.ts.map +1 -0
- package/dist/blocks/services-01/index.js +1 -0
- package/dist/blocks/services-01/services.d.ts +159 -0
- package/dist/blocks/services-01/services.d.ts.map +1 -0
- package/dist/blocks/services-01/services.js +81 -0
- package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
- package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/index.js +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
- package/dist/blocks/settings-members-01/index.d.ts +3 -0
- package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/index.js +1 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/settings-members.js +255 -0
- package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
- package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/index.js +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
- package/dist/blocks/settings-security-01/index.d.ts +3 -0
- package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/index.js +1 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/settings-security.js +244 -0
- package/dist/blocks/shortlist-01/index.d.ts +3 -0
- package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/index.js +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
- package/dist/blocks/showcase-01/index.d.ts +3 -0
- package/dist/blocks/showcase-01/index.d.ts.map +1 -0
- package/dist/blocks/showcase-01/index.js +1 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
- package/dist/blocks/showcase-01/showcase-01.js +84 -0
- package/dist/blocks/signup-01/index.d.ts +3 -0
- package/dist/blocks/signup-01/index.d.ts.map +1 -0
- package/dist/blocks/signup-01/index.js +1 -0
- package/dist/blocks/signup-01/signup-01.d.ts +405 -0
- package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
- package/dist/blocks/signup-01/signup-01.js +209 -0
- package/dist/blocks/site-footer/site-footer.d.ts +34 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +24 -2
- package/dist/blocks/site-header/site-header.js +1 -1
- package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
- package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
- package/dist/blocks/site-navbar/site-navbar.js +33 -4
- package/dist/blocks/spec-table-01/index.d.ts +3 -0
- package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/index.js +1 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/spec-table.js +217 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts +13 -0
- package/dist/blocks/stack-grid-01/stack-grid.d.ts.map +1 -1
- package/dist/blocks/stack-grid-01/stack-grid.js +14 -1
- package/dist/blocks/story-01/index.d.ts +3 -0
- package/dist/blocks/story-01/index.d.ts.map +1 -0
- package/dist/blocks/story-01/index.js +1 -0
- package/dist/blocks/story-01/story.d.ts +153 -0
- package/dist/blocks/story-01/story.d.ts.map +1 -0
- package/dist/blocks/story-01/story.js +103 -0
- package/dist/blocks/summary-01/index.d.ts +3 -0
- package/dist/blocks/summary-01/index.d.ts.map +1 -0
- package/dist/blocks/summary-01/index.js +1 -0
- package/dist/blocks/summary-01/summary.d.ts +300 -0
- package/dist/blocks/summary-01/summary.d.ts.map +1 -0
- package/dist/blocks/summary-01/summary.js +174 -0
- package/dist/blocks/team-01/index.d.ts +3 -0
- package/dist/blocks/team-01/index.d.ts.map +1 -0
- package/dist/blocks/team-01/index.js +1 -0
- package/dist/blocks/team-01/team.d.ts +176 -0
- package/dist/blocks/team-01/team.d.ts.map +1 -0
- package/dist/blocks/team-01/team.js +117 -0
- package/dist/blocks/testimonial-01/index.d.ts +3 -0
- package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/index.js +1 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/testimonial.js +87 -0
- package/dist/blocks/todo-01/index.d.ts +3 -0
- package/dist/blocks/todo-01/index.d.ts.map +1 -0
- package/dist/blocks/todo-01/index.js +1 -0
- package/dist/blocks/todo-01/todo.d.ts +286 -0
- package/dist/blocks/todo-01/todo.d.ts.map +1 -0
- package/dist/blocks/todo-01/todo.js +149 -0
- package/dist/blocks/trend-01/index.d.ts +3 -0
- package/dist/blocks/trend-01/index.d.ts.map +1 -0
- package/dist/blocks/trend-01/index.js +1 -0
- package/dist/blocks/trend-01/trend.d.ts +184 -0
- package/dist/blocks/trend-01/trend.d.ts.map +1 -0
- package/dist/blocks/trend-01/trend.js +99 -0
- package/dist/blocks/trust-strip-01/index.d.ts +3 -0
- package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/index.js +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
- package/dist/blocks/two-factor-01/index.d.ts +3 -0
- package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/index.js +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
- package/dist/blocks/user-profile-01/index.d.ts +3 -0
- package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/index.js +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
- package/dist/blocks/verify-email-01/index.d.ts +3 -0
- package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/index.js +1 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/verify-email.js +190 -0
- package/dist/blocks/waitlist-01/index.d.ts +3 -0
- package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/index.js +1 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/waitlist.js +75 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1641 -1
- package/dist/components/index.d.ts +114 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +134 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -2
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +22 -4
- package/dist/components/ui/announcement.d.ts +169 -0
- package/dist/components/ui/announcement.d.ts.map +1 -0
- package/dist/components/ui/announcement.js +123 -0
- package/dist/components/ui/avatar-group.d.ts +176 -0
- package/dist/components/ui/avatar-group.d.ts.map +1 -0
- package/dist/components/ui/avatar-group.js +135 -0
- package/dist/components/ui/billing-source.d.ts +293 -0
- package/dist/components/ui/billing-source.d.ts.map +1 -0
- package/dist/components/ui/billing-source.js +136 -0
- package/dist/components/ui/button.d.ts +16 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +17 -2
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +30 -2
- package/dist/components/ui/carousel.d.ts +7 -0
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +58 -1
- package/dist/components/ui/chart.d.ts +334 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +369 -0
- package/dist/components/ui/checkbox.d.ts +10 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +19 -1
- package/dist/components/ui/checklist.d.ts +262 -0
- package/dist/components/ui/checklist.d.ts.map +1 -0
- package/dist/components/ui/checklist.js +135 -0
- package/dist/components/ui/choice-card.d.ts +273 -0
- package/dist/components/ui/choice-card.d.ts.map +1 -0
- package/dist/components/ui/choice-card.js +138 -0
- package/dist/components/ui/code-block.d.ts +182 -0
- package/dist/components/ui/code-block.d.ts.map +1 -0
- package/dist/components/ui/code-block.js +108 -0
- package/dist/components/ui/cohort-grid.d.ts +210 -0
- package/dist/components/ui/cohort-grid.d.ts.map +1 -0
- package/dist/components/ui/cohort-grid.js +202 -0
- package/dist/components/ui/collapsible.d.ts +11 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +13 -2
- package/dist/components/ui/combobox.d.ts +4 -1
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +20 -4
- package/dist/components/ui/command-palette.d.ts +11 -0
- package/dist/components/ui/command-palette.d.ts.map +1 -1
- package/dist/components/ui/command-palette.js +49 -3
- package/dist/components/ui/contribution-graph.d.ts +156 -0
- package/dist/components/ui/contribution-graph.d.ts.map +1 -0
- package/dist/components/ui/contribution-graph.js +170 -0
- package/dist/components/ui/creatable-combobox.d.ts +153 -0
- package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
- package/dist/components/ui/creatable-combobox.js +285 -0
- package/dist/components/ui/data-toolbar.d.ts +133 -0
- package/dist/components/ui/data-toolbar.d.ts.map +1 -0
- package/dist/components/ui/data-toolbar.js +67 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +9 -1
- package/dist/components/ui/diagram.d.ts +38 -7
- package/dist/components/ui/diagram.d.ts.map +1 -1
- package/dist/components/ui/diagram.js +134 -52
- package/dist/components/ui/dialog.d.ts +31 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +40 -6
- package/dist/components/ui/drawer.d.ts +270 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +241 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +6 -1
- package/dist/components/ui/dropzone.d.ts +147 -0
- package/dist/components/ui/dropzone.d.ts.map +1 -0
- package/dist/components/ui/dropzone.js +141 -0
- package/dist/components/ui/emoji-picker.d.ts +328 -0
- package/dist/components/ui/emoji-picker.d.ts.map +1 -0
- package/dist/components/ui/emoji-picker.js +278 -0
- package/dist/components/ui/fact-list.d.ts +17 -0
- package/dist/components/ui/fact-list.d.ts.map +1 -1
- package/dist/components/ui/fact-list.js +18 -1
- package/dist/components/ui/file-upload.d.ts +152 -0
- package/dist/components/ui/file-upload.d.ts.map +1 -0
- package/dist/components/ui/file-upload.js +101 -0
- package/dist/components/ui/filter-panel.d.ts +164 -0
- package/dist/components/ui/filter-panel.d.ts.map +1 -0
- package/dist/components/ui/filter-panel.js +91 -0
- package/dist/components/ui/form-dialog.d.ts +257 -0
- package/dist/components/ui/form-dialog.d.ts.map +1 -0
- package/dist/components/ui/form-dialog.js +176 -0
- package/dist/components/ui/form-wizard.d.ts +251 -0
- package/dist/components/ui/form-wizard.d.ts.map +1 -0
- package/dist/components/ui/form-wizard.js +151 -0
- package/dist/components/ui/image-list-field.d.ts +232 -0
- package/dist/components/ui/image-list-field.d.ts.map +1 -0
- package/dist/components/ui/image-list-field.js +168 -0
- package/dist/components/ui/image-zoom.d.ts +164 -0
- package/dist/components/ui/image-zoom.d.ts.map +1 -0
- package/dist/components/ui/image-zoom.js +169 -0
- package/dist/components/ui/intensity-grid.d.ts +270 -0
- package/dist/components/ui/intensity-grid.d.ts.map +1 -0
- package/dist/components/ui/intensity-grid.js +211 -0
- package/dist/components/ui/lifecycle-button.d.ts +276 -0
- package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
- package/dist/components/ui/lifecycle-button.js +144 -0
- package/dist/components/ui/lightbox.d.ts +165 -0
- package/dist/components/ui/lightbox.d.ts.map +1 -0
- package/dist/components/ui/lightbox.js +130 -0
- package/dist/components/ui/list-panel.d.ts +288 -0
- package/dist/components/ui/list-panel.d.ts.map +1 -0
- package/dist/components/ui/list-panel.js +139 -0
- package/dist/components/ui/mega-menu.d.ts +244 -0
- package/dist/components/ui/mega-menu.d.ts.map +1 -0
- package/dist/components/ui/mega-menu.js +97 -0
- package/dist/components/ui/menubar.d.ts +9 -0
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +10 -1
- package/dist/components/ui/metric.d.ts +123 -0
- package/dist/components/ui/metric.d.ts.map +1 -0
- package/dist/components/ui/metric.js +68 -0
- package/dist/components/ui/mini-calendar.d.ts +143 -0
- package/dist/components/ui/mini-calendar.d.ts.map +1 -0
- package/dist/components/ui/mini-calendar.js +261 -0
- package/dist/components/ui/mode-toggle.d.ts +102 -0
- package/dist/components/ui/mode-toggle.d.ts.map +1 -0
- package/dist/components/ui/mode-toggle.js +83 -0
- package/dist/components/ui/money-field.d.ts +200 -0
- package/dist/components/ui/money-field.d.ts.map +1 -0
- package/dist/components/ui/money-field.js +215 -0
- package/dist/components/ui/multi-combobox.d.ts +181 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.js +297 -0
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js +8 -1
- package/dist/components/ui/navigation-menu.d.ts +7 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +8 -1
- package/dist/components/ui/nested-tabs.d.ts +188 -0
- package/dist/components/ui/nested-tabs.d.ts.map +1 -0
- package/dist/components/ui/nested-tabs.js +75 -0
- package/dist/components/ui/number-field.d.ts +40 -7
- package/dist/components/ui/number-field.d.ts.map +1 -1
- package/dist/components/ui/number-field.js +37 -7
- package/dist/components/ui/overflow-actions.d.ts +169 -0
- package/dist/components/ui/overflow-actions.d.ts.map +1 -0
- package/dist/components/ui/overflow-actions.js +266 -0
- package/dist/components/ui/pack-swatch.d.ts +177 -0
- package/dist/components/ui/pack-swatch.d.ts.map +1 -0
- package/dist/components/ui/pack-swatch.js +117 -0
- package/dist/components/ui/pack-switcher.d.ts +221 -0
- package/dist/components/ui/pack-switcher.d.ts.map +1 -0
- package/dist/components/ui/pack-switcher.js +94 -0
- package/dist/components/ui/pagination.d.ts +22 -0
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +23 -1
- package/dist/components/ui/password-field.d.ts +122 -0
- package/dist/components/ui/password-field.d.ts.map +1 -0
- package/dist/components/ui/password-field.js +69 -0
- package/dist/components/ui/pill.d.ts +172 -0
- package/dist/components/ui/pill.d.ts.map +1 -0
- package/dist/components/ui/pill.js +102 -0
- package/dist/components/ui/platform-modifier-key.d.ts +129 -0
- package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
- package/dist/components/ui/platform-modifier-key.js +125 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -1
- package/dist/components/ui/price.d.ts +144 -0
- package/dist/components/ui/price.d.ts.map +1 -0
- package/dist/components/ui/price.js +107 -0
- package/dist/components/ui/progress.d.ts +55 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +110 -2
- package/dist/components/ui/prompt-composer.d.ts +302 -0
- package/dist/components/ui/prompt-composer.d.ts.map +1 -0
- package/dist/components/ui/prompt-composer.js +145 -0
- package/dist/components/ui/proportion-list.d.ts +188 -0
- package/dist/components/ui/proportion-list.d.ts.map +1 -0
- package/dist/components/ui/proportion-list.js +134 -0
- package/dist/components/ui/prose.d.ts +34 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +41 -1
- package/dist/components/ui/pulse-graph.d.ts +36 -4
- package/dist/components/ui/pulse-graph.d.ts.map +1 -1
- package/dist/components/ui/pulse-graph.js +174 -60
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +8 -1
- package/dist/components/ui/range-field.d.ts +158 -0
- package/dist/components/ui/range-field.d.ts.map +1 -0
- package/dist/components/ui/range-field.js +208 -0
- package/dist/components/ui/relative-time.d.ts +116 -0
- package/dist/components/ui/relative-time.d.ts.map +1 -0
- package/dist/components/ui/relative-time.js +67 -0
- package/dist/components/ui/reorderable-list.d.ts +262 -0
- package/dist/components/ui/reorderable-list.d.ts.map +1 -0
- package/dist/components/ui/reorderable-list.js +325 -0
- package/dist/components/ui/repeatable-rows.d.ts +241 -0
- package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
- package/dist/components/ui/repeatable-rows.js +221 -0
- package/dist/components/ui/repo-stars.d.ts +165 -0
- package/dist/components/ui/repo-stars.d.ts.map +1 -0
- package/dist/components/ui/repo-stars.js +92 -0
- package/dist/components/ui/resizable.d.ts +24 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +96 -4
- package/dist/components/ui/search-dialog.d.ts +40 -5
- package/dist/components/ui/search-dialog.d.ts.map +1 -1
- package/dist/components/ui/search-dialog.js +94 -16
- package/dist/components/ui/search-field.d.ts +159 -0
- package/dist/components/ui/search-field.d.ts.map +1 -0
- package/dist/components/ui/search-field.js +98 -0
- package/dist/components/ui/section.d.ts +110 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +111 -3
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +9 -1
- package/dist/components/ui/selection-toolbar.d.ts +166 -0
- package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
- package/dist/components/ui/selection-toolbar.js +139 -0
- package/dist/components/ui/sidebar.d.ts +29 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +35 -2
- package/dist/components/ui/signal-field.d.ts.map +1 -1
- package/dist/components/ui/signal-field.js +1 -1
- package/dist/components/ui/slider.d.ts +7 -0
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +32 -1
- package/dist/components/ui/sparkline.d.ts +117 -0
- package/dist/components/ui/sparkline.d.ts.map +1 -0
- package/dist/components/ui/sparkline.js +113 -0
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +13 -0
- package/dist/components/ui/split-button.d.ts +207 -0
- package/dist/components/ui/split-button.d.ts.map +1 -0
- package/dist/components/ui/split-button.js +75 -0
- package/dist/components/ui/stateful-table.d.ts +345 -0
- package/dist/components/ui/stateful-table.d.ts.map +1 -0
- package/dist/components/ui/stateful-table.js +169 -0
- package/dist/components/ui/status.d.ts +99 -0
- package/dist/components/ui/status.d.ts.map +1 -0
- package/dist/components/ui/status.js +63 -0
- package/dist/components/ui/stepper.d.ts +155 -0
- package/dist/components/ui/stepper.d.ts.map +1 -0
- package/dist/components/ui/stepper.js +83 -0
- package/dist/components/ui/steps.d.ts +141 -0
- package/dist/components/ui/steps.d.ts.map +1 -0
- package/dist/components/ui/steps.js +128 -0
- package/dist/components/ui/switch.d.ts +8 -0
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +12 -1
- package/dist/components/ui/tabs.d.ts +21 -2
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +23 -4
- package/dist/components/ui/tag-group.d.ts +154 -0
- package/dist/components/ui/tag-group.d.ts.map +1 -0
- package/dist/components/ui/tag-group.js +111 -0
- package/dist/components/ui/task-progress.d.ts +149 -0
- package/dist/components/ui/task-progress.d.ts.map +1 -0
- package/dist/components/ui/task-progress.js +110 -0
- package/dist/components/ui/text-format-toolbar.d.ts +211 -0
- package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
- package/dist/components/ui/text-format-toolbar.js +186 -0
- package/dist/components/ui/timeline.d.ts.map +1 -1
- package/dist/components/ui/timeline.js +10 -1
- package/dist/components/ui/toast.d.ts +32 -10
- package/dist/components/ui/toast.d.ts.map +1 -1
- package/dist/components/ui/toast.js +150 -47
- package/dist/components/ui/toggle-group.d.ts +14 -5
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +15 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +9 -1
- package/dist/components/ui/tree.d.ts +8 -0
- package/dist/components/ui/tree.d.ts.map +1 -1
- package/dist/components/ui/tree.js +92 -13
- package/dist/components/ui/video-player.d.ts +236 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +72 -0
- package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -0
- package/dist/lib/figure.d.ts +149 -0
- package/dist/lib/figure.d.ts.map +1 -0
- package/dist/lib/figure.js +242 -0
- package/dist/lib/utils.d.ts +29 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +35 -0
- package/dist/live/index.d.ts +10 -3
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +12 -3
- package/dist/live/run-stream-01/run-stream.d.ts.map +1 -1
- package/dist/live/run-stream-01/run-stream.js +6 -5
- package/dist/live/tool-ledger-01/index.d.ts +3 -0
- package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/index.js +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
- package/dist/pages/about-page/index.d.ts +306 -0
- package/dist/pages/about-page/index.d.ts.map +1 -0
- package/dist/pages/about-page/index.js +161 -0
- package/dist/pages/blog-post-page/index.d.ts +36 -15
- package/dist/pages/blog-post-page/index.d.ts.map +1 -1
- package/dist/pages/blog-post-page/index.js +35 -10
- package/dist/pages/careers-page/index.d.ts +288 -0
- package/dist/pages/careers-page/index.d.ts.map +1 -0
- package/dist/pages/careers-page/index.js +182 -0
- package/dist/pages/changelog-page/index.d.ts +255 -0
- package/dist/pages/changelog-page/index.d.ts.map +1 -0
- package/dist/pages/changelog-page/index.js +86 -0
- package/dist/pages/contact-page/index.d.ts +261 -0
- package/dist/pages/contact-page/index.d.ts.map +1 -0
- package/dist/pages/contact-page/index.js +136 -0
- package/dist/pages/docs-shell/docs-shell.d.ts +126 -16
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +229 -28
- package/dist/pages/error-page/index.d.ts +188 -0
- package/dist/pages/error-page/index.d.ts.map +1 -0
- package/dist/pages/error-page/index.js +102 -0
- package/dist/pages/index.d.ts +10 -0
- package/dist/pages/index.d.ts.map +1 -1
- package/dist/pages/index.js +14 -0
- package/dist/pages/legal-page/index.d.ts +194 -0
- package/dist/pages/legal-page/index.d.ts.map +1 -0
- package/dist/pages/legal-page/index.js +99 -0
- package/dist/pages/not-found-page/index.d.ts.map +1 -1
- package/dist/pages/not-found-page/index.js +4 -3
- package/dist/pages/onboarding-page/index.d.ts +199 -0
- package/dist/pages/onboarding-page/index.d.ts.map +1 -0
- package/dist/pages/onboarding-page/index.js +71 -0
- package/dist/pages/pricing-page/index.d.ts +286 -0
- package/dist/pages/pricing-page/index.d.ts.map +1 -0
- package/dist/pages/pricing-page/index.js +139 -0
- package/dist/pages/search-page/index.d.ts +305 -0
- package/dist/pages/search-page/index.d.ts.map +1 -0
- package/dist/pages/search-page/index.js +142 -0
- package/dist/pages/status-page/index.d.ts +366 -0
- package/dist/pages/status-page/index.d.ts.map +1 -0
- package/dist/pages/status-page/index.js +136 -0
- package/dist/styles.css +1105 -62
- package/package.json +9 -3
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* One image the field holds, and the three things the field knows about it.
|
|
4
|
+
*
|
|
5
|
+
* A reference and not a file. A `File` object is a browser fact that does not
|
|
6
|
+
* survive a page reload and says nothing about where the bytes are, and a
|
|
7
|
+
* design system that took one would be a Component whose value is only meaningful
|
|
8
|
+
* on the machine that produced it. What a form field actually holds is a handle:
|
|
9
|
+
* an id the caller's own store recognises, and a name a reader recognises. The
|
|
10
|
+
* caller resolves that handle into a URL, a signed path or a thumbnail component,
|
|
11
|
+
* and passes the result as `preview`, because how an image is fetched, cached and
|
|
12
|
+
* cropped is the caller's transport decision and Prism ships no client.
|
|
13
|
+
*/
|
|
14
|
+
export type ImageListFieldImage = {
|
|
15
|
+
/**
|
|
16
|
+
* The caller's own identity for the image, and what the remove control reports.
|
|
17
|
+
*
|
|
18
|
+
* Required, and required as a string rather than as the file name, for the
|
|
19
|
+
* reason `FileUpload` states in full: a reader who adds the same photograph
|
|
20
|
+
* twice has two rows with the same name, and two remove controls that announce
|
|
21
|
+
* identically are two controls nobody can tell apart.
|
|
22
|
+
*/
|
|
23
|
+
id: string;
|
|
24
|
+
/**
|
|
25
|
+
* The name a reader recognises the image by.
|
|
26
|
+
*
|
|
27
|
+
* A word and not a sentence. It is drawn truncated in the middle and it is what
|
|
28
|
+
* `removeLabel` is given, so it is the one string in the row that a caller
|
|
29
|
+
* should keep short enough to finish reading.
|
|
30
|
+
*/
|
|
31
|
+
name: string;
|
|
32
|
+
/**
|
|
33
|
+
* The caller's own picture for the row, clipped to a fixed square.
|
|
34
|
+
*
|
|
35
|
+
* A `ReactNode` and not a URL. A URL here would be a claim that the image lives
|
|
36
|
+
* at an address the browser can fetch, which is false for a blob, a signed
|
|
37
|
+
* path that expires, a data URI and anything behind an authenticated route, and
|
|
38
|
+
* a Component that rendered an `<img>` would then be drawing a broken image and
|
|
39
|
+
* an alt text it invented. Pass an `img` with the caller's own `alt`, or a
|
|
40
|
+
* placeholder mark; both are the caller's to choose.
|
|
41
|
+
*/
|
|
42
|
+
preview?: ReactNode;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* The props the Image list field accepts.
|
|
46
|
+
*
|
|
47
|
+
* A declared interface rather than a forwarded native one, which is the opposite
|
|
48
|
+
* of what most of this package does and is right here: every prop on this
|
|
49
|
+
* Component is a fact about the caller's value or a sentence the caller owns, and
|
|
50
|
+
* there is no native attribute left to forward once those are spent.
|
|
51
|
+
*/
|
|
52
|
+
export interface ImageListFieldProps {
|
|
53
|
+
/**
|
|
54
|
+
* The images, in the order the reader added them.
|
|
55
|
+
*
|
|
56
|
+
* Required, and order is the caller's because it is a claim about importance.
|
|
57
|
+
* The list is an `ol`, so the position is in the accessibility tree and a
|
|
58
|
+
* reader who removes the third of six hears the five that remain renumbered
|
|
59
|
+
* rather than having to count them again.
|
|
60
|
+
*/
|
|
61
|
+
images: ImageListFieldImage[];
|
|
62
|
+
/**
|
|
63
|
+
* The most images this field will hold.
|
|
64
|
+
*
|
|
65
|
+
* Required, and a number rather than a boolean, because "at most one" and "at
|
|
66
|
+
* most twelve" are the same shape of rule and only one of them is a decision
|
|
67
|
+
* about a product. A caller that does not have a cap does not use this
|
|
68
|
+
* Component: a list with no ceiling is a `FileUpload` with a receipt's worth of
|
|
69
|
+
* rows, and the Component that already draws that is one call away.
|
|
70
|
+
*/
|
|
71
|
+
cap: number;
|
|
72
|
+
/**
|
|
73
|
+
* The visible label of the add affordance, in the product's own words.
|
|
74
|
+
*
|
|
75
|
+
* Required and never defaulted. "Add photograph", "Add another floor plan" and
|
|
76
|
+
* "Subir imagen" are three products' answers, and the affordance is the one
|
|
77
|
+
* place on the field where a reader decides whether the rule is one they accept.
|
|
78
|
+
*/
|
|
79
|
+
addLabel: ReactNode;
|
|
80
|
+
/**
|
|
81
|
+
* Called when the reader asks for another image.
|
|
82
|
+
*
|
|
83
|
+
* Required, and it is a callback rather than a composed `Dropzone` on purpose.
|
|
84
|
+
* This Component cannot know what an image is on the caller's side: it may be a
|
|
85
|
+
* browser `File` on its way to an upload, a URL already in the caller's store,
|
|
86
|
+
* or a picked frame from a camera roll the browser has no input for. Enforcing
|
|
87
|
+
* the cap means owning the affordance, and owning the affordance means Prism
|
|
88
|
+
* draws the control while the caller keeps the picker: compose `Dropzone` in
|
|
89
|
+
* your own layout, or a `Button` over a hidden `input`, and open it here. The
|
|
90
|
+
* alternative, Prism rendering a `Dropzone` and being handed `File` objects,
|
|
91
|
+
* would make a field about images a field about uploads, and every caller whose
|
|
92
|
+
* images are already stored would have to fake a `File` to use it.
|
|
93
|
+
*/
|
|
94
|
+
onAdd: () => void;
|
|
95
|
+
/**
|
|
96
|
+
* Called with an image's `id` when the reader takes it off the list.
|
|
97
|
+
*
|
|
98
|
+
* Required rather than optional, unlike `FileUpload`'s. A `FileUpload` is
|
|
99
|
+
* sometimes a receipt, and offering to remove an attachment from a receipt is a
|
|
100
|
+
* promise the product cannot keep. A field is not a receipt: the images on it
|
|
101
|
+
* are the ones the reader is still choosing between, so a field where a chosen
|
|
102
|
+
* image cannot be unchosen is a form with a mistake in it and no way back.
|
|
103
|
+
*/
|
|
104
|
+
onRemove: (id: string) => void;
|
|
105
|
+
/**
|
|
106
|
+
* The accessible name of one row's remove control, given that row's image name.
|
|
107
|
+
*
|
|
108
|
+
* Required, and a function because the name has to name the image and the
|
|
109
|
+
* image's name is the caller's string rather than this package's sentence. A
|
|
110
|
+
* nameless remove control is announced as "button", and a screen reader user
|
|
111
|
+
* holding a list of six is left to work out which row it belongs to.
|
|
112
|
+
*/
|
|
113
|
+
removeLabel: (name: string) => string;
|
|
114
|
+
/**
|
|
115
|
+
* What stands in for the list while it is empty.
|
|
116
|
+
*
|
|
117
|
+
* Required, and it is a label rather than a placeholder row. A row with no
|
|
118
|
+
* image in it is a row a reader tries to remove, and a row whose preview is
|
|
119
|
+
* still loading is a row that looks like a broken image. The absence is either
|
|
120
|
+
* the caller's own sentence or, here, nothing at all: a caller who would rather
|
|
121
|
+
* the field showed nothing until the first image passes an empty string and
|
|
122
|
+
* gets nothing drawn, because the check is on the value's length and not on
|
|
123
|
+
* this prop being present.
|
|
124
|
+
*/
|
|
125
|
+
empty: ReactNode;
|
|
126
|
+
/**
|
|
127
|
+
* What the reader is told when the cap is reached.
|
|
128
|
+
*
|
|
129
|
+
* Optional, and it exists because the affordance going unavailable is a
|
|
130
|
+
* question the reader will ask. A dimmed add button answers "can I not" and not
|
|
131
|
+
* "why not", and a form whose only feedback is a dimmed control is the dead end
|
|
132
|
+
* the disabled-state rule exists to prevent. Written with the limit and the way
|
|
133
|
+
* past it: "Six is the most a listing takes. Remove one to swap it." The
|
|
134
|
+
* affordance points at it with `aria-describedby` while it is shown, so the
|
|
135
|
+
* reason is announced with the control rather than sitting beside it as a line
|
|
136
|
+
* a reader has to find.
|
|
137
|
+
*/
|
|
138
|
+
capLabel?: ReactNode;
|
|
139
|
+
/**
|
|
140
|
+
* The list's own name, drawn above it and used as its accessible name.
|
|
141
|
+
*
|
|
142
|
+
* Optional rather than required, and the omission is deliberate rather than an
|
|
143
|
+
* oversight: this is the one place in the package where a region is allowed to
|
|
144
|
+
* arrive anonymous, and `ListPanel` says why at length. A list called "Images"
|
|
145
|
+
* is a claim that is wrong in every consumer's product, and a screen reader
|
|
146
|
+
* user hearing a generic name learns less than hearing none, because a name is
|
|
147
|
+
* a promise that something follows it. Omit it and the list is honestly absent
|
|
148
|
+
* from the landmark list; pass one when the field sits among several.
|
|
149
|
+
*/
|
|
150
|
+
label?: ReactNode;
|
|
151
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
152
|
+
className?: string;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* An ordered list of images with a cap, a per-item remove, and an add affordance
|
|
156
|
+
* that stops offering a seventh before the reader has chosen one.
|
|
157
|
+
*
|
|
158
|
+
* **It is not a `FileUpload`, and the difference is the cap.** `FileUpload` is the
|
|
159
|
+
* receipt half of an upload: it renders whatever array it is handed, with no
|
|
160
|
+
* ceiling and no way in, because a receipt names what was sent and a limit on
|
|
161
|
+
* what may be sent belongs to the control that sends. This is the other half. It
|
|
162
|
+
* has a ceiling, and the ceiling is a rule about the caller's product, so the
|
|
163
|
+
* Component that can enforce it is the one that owns the affordance. A caller who
|
|
164
|
+
* wants a capped list today writes a button, a length test and a disabled branch,
|
|
165
|
+
* and the branch is the interesting one, because a cap enforced anywhere else
|
|
166
|
+
* produces one of two lies: a value holding six images rendered as four, or six
|
|
167
|
+
* rows where the fifth and sixth are drawn in a way that says they are not
|
|
168
|
+
* welcome. Neither is a fact about the reader's field. The one thing that is a
|
|
169
|
+
* fact is the affordance, and this is the Component that draws it.
|
|
170
|
+
*
|
|
171
|
+
* **The cap is enforced at the affordance and nowhere else, and that placement is
|
|
172
|
+
* the design.** The moment the cap is reached, the add control is still there, in
|
|
173
|
+
* the tab order, and marked `aria-disabled`; it is not removed and it is not
|
|
174
|
+
* natively disabled, because a control that vanishes leaves a keyboard reader
|
|
175
|
+
* with a gap and no announcement, and a natively disabled one is gone from the tab
|
|
176
|
+
* order for the same reason. `Dropzone` states the whole argument and this
|
|
177
|
+
* Component inherits it. The reader learns the cap before they spend a pick, and
|
|
178
|
+
* the value is never silently truncated.
|
|
179
|
+
*
|
|
180
|
+
* **Removing a middle row moves focus, and that is the part no prop can express.**
|
|
181
|
+
* The naive `onRemove` hands the reader back to the document: the button they
|
|
182
|
+
* pressed is unmounted with the row, focus falls to `body`, and the next Tab
|
|
183
|
+
* starts from the top of the page, so a reader removing the third of six
|
|
184
|
+
* photographs is returned to the top of a form to find the two they still meant
|
|
185
|
+
* to change. The correct destination is a neighbour, and which neighbour is a
|
|
186
|
+
* fact about the index the caller does not know this Component holds: the row
|
|
187
|
+
* that moved up into the removed row's place, or the one above it when the
|
|
188
|
+
* removed row was last. Prism knows the index because it drew the row, so Prism
|
|
189
|
+
* moves the focus. When the last image goes, the focus lands on the add control,
|
|
190
|
+
* because that is the only operable thing left in the field and dropping a reader
|
|
191
|
+
* on nothing is the same defect one level up.
|
|
192
|
+
*
|
|
193
|
+
* **The row is a reference and the list is an `ol`, so position is in the
|
|
194
|
+
* accessibility tree.** The Component does not draw an ordinal and does not
|
|
195
|
+
* renumber anything by hand: an `ol` reports "3 of 6" for free, and the
|
|
196
|
+
* renumbering the reader needs after a removal is the list doing its job rather
|
|
197
|
+
* than a number this Component recomputed and could get wrong. The remove control
|
|
198
|
+
* is named by the caller's own sentence so the two do not have to agree.
|
|
199
|
+
*
|
|
200
|
+
* **It draws its own row and does not compose `FileUpload`, and the reason is the
|
|
201
|
+
* number of bytes.** `FileUpload`'s row is a name, a size in bytes, an optional
|
|
202
|
+
* transfer meter and an optional per-file error, and a field of references has
|
|
203
|
+
* none of those: a stored image has no size until the caller fetches it, and
|
|
204
|
+
* drawing a byte count for an image that has not been downloaded is a
|
|
205
|
+
* measurement of nothing. The two would also disagree about focus, because
|
|
206
|
+
* `FileUpload` owns its own remove control and there is no way to tell it where
|
|
207
|
+
* the reader's focus should land afterwards without reaching into its markup. The
|
|
208
|
+
* composition Prism does make is outward: `onAdd` is the seam where a `Dropzone`
|
|
209
|
+
* or a hidden `input` is composed, and `Button` draws the affordance rather than
|
|
210
|
+
* this Component re-deriving a control's metrics.
|
|
211
|
+
*
|
|
212
|
+
* **It is a client Component**, because the focus handoff and the cap's arrival
|
|
213
|
+
* both happen after the reader acts, and neither can be known at a server render.
|
|
214
|
+
* What that costs is the price of every client field: a form with images on it
|
|
215
|
+
* carries a hydration boundary, and a caller whose form is otherwise static pays
|
|
216
|
+
* for this one. The value is still the caller's, so a server Component may render
|
|
217
|
+
* the whole field once with the list already in place; what it may not do is offer
|
|
218
|
+
* a capped, removable list whose focus behaves, because that part is a client
|
|
219
|
+
* fact.
|
|
220
|
+
*
|
|
221
|
+
* **Two upstream spellings are this one job, and the catalogue holds one of
|
|
222
|
+
* them.** An image list and a gallery upload differ in whether the frame around
|
|
223
|
+
* the images is decorative, and in nothing else: both are an ordered list of
|
|
224
|
+
* image references, both cap, both remove. Publishing both would put two Items in
|
|
225
|
+
* the list whose only difference is a wrapper one of them drew, and a list
|
|
226
|
+
* nobody can search is what the naming law exists to prevent. A caller who wants
|
|
227
|
+
* a gallery frames the list themselves, which is layout and therefore already
|
|
228
|
+
* theirs.
|
|
229
|
+
*/
|
|
230
|
+
declare function ImageListField({ images, cap, addLabel, onAdd, onRemove, removeLabel, empty, capLabel, label, className, }: ImageListFieldProps): import("react").JSX.Element;
|
|
231
|
+
export { ImageListField };
|
|
232
|
+
//# sourceMappingURL=image-list-field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-list-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/image-list-field.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAKhE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;;;OAOG;IACH,EAAE,EAAE,MAAM,CAAA;IACV;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B;;;;;;;;OAQG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;OAMG;IACH,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;;;;;OAQG;IACH,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC;;;;;;;;;;OAUG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2EG;AACH,iBAAS,cAAc,CAAC,EACtB,MAAM,EACN,GAAG,EACH,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GACV,EAAE,mBAAmB,+BA8JrB;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ImagePlusIcon, XIcon } from 'lucide-react';
|
|
4
|
+
import { useEffect, useId, useRef } from 'react';
|
|
5
|
+
import { Button } from './button.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* The remove control, drawn once and used by every row.
|
|
9
|
+
*
|
|
10
|
+
* The same treatment `FileUpload` gives its own remove control, for the same
|
|
11
|
+
* reason and with the same two decisions: the ink is the muted one because every
|
|
12
|
+
* row is the same surface and a control that changed colour with its row's state
|
|
13
|
+
* would be a second thing to read, and the target takes the 44px coarse-pointer
|
|
14
|
+
* floor so a list of photographs on a phone is a list of rows a thumb can hit.
|
|
15
|
+
* Duplicated as a constant rather than imported, because `FileUpload` does not
|
|
16
|
+
* export it and the alternative is for this Component to redraw the whole list
|
|
17
|
+
* to get at one class string.
|
|
18
|
+
*/
|
|
19
|
+
const REMOVE_CONTROL = 'text-muted-foreground hover:text-foreground inline-flex size-5 shrink-0 cursor-pointer items-center justify-center rounded-sm outline-none transition-colors duration-fast ease-out pointer-coarse:size-11 focus-visible:ring-ring focus-visible:ring-[3px]';
|
|
20
|
+
/**
|
|
21
|
+
* A row's own `data-slot`, read back through one root ref.
|
|
22
|
+
*
|
|
23
|
+
* The Component does not hold a ref per row. A ref array indexed by position has
|
|
24
|
+
* to be reconciled with the value on every commit, and the value is the caller's,
|
|
25
|
+
* so the reconciliation is a second source of truth about how many rows there
|
|
26
|
+
* are. One ref on the root and a query for the Component's own slots is the same
|
|
27
|
+
* answer with no bookkeeping, and the cost is stated rather than hidden: it reads
|
|
28
|
+
* markup rather than state, so it can only reach what this Component drew, which
|
|
29
|
+
* is exactly the set that has to move.
|
|
30
|
+
*/
|
|
31
|
+
const REMOVE_SLOT = '[data-slot="image-list-field-remove"]';
|
|
32
|
+
const ADD_SLOT = '[data-slot="image-list-field-add"]';
|
|
33
|
+
/**
|
|
34
|
+
* An ordered list of images with a cap, a per-item remove, and an add affordance
|
|
35
|
+
* that stops offering a seventh before the reader has chosen one.
|
|
36
|
+
*
|
|
37
|
+
* **It is not a `FileUpload`, and the difference is the cap.** `FileUpload` is the
|
|
38
|
+
* receipt half of an upload: it renders whatever array it is handed, with no
|
|
39
|
+
* ceiling and no way in, because a receipt names what was sent and a limit on
|
|
40
|
+
* what may be sent belongs to the control that sends. This is the other half. It
|
|
41
|
+
* has a ceiling, and the ceiling is a rule about the caller's product, so the
|
|
42
|
+
* Component that can enforce it is the one that owns the affordance. A caller who
|
|
43
|
+
* wants a capped list today writes a button, a length test and a disabled branch,
|
|
44
|
+
* and the branch is the interesting one, because a cap enforced anywhere else
|
|
45
|
+
* produces one of two lies: a value holding six images rendered as four, or six
|
|
46
|
+
* rows where the fifth and sixth are drawn in a way that says they are not
|
|
47
|
+
* welcome. Neither is a fact about the reader's field. The one thing that is a
|
|
48
|
+
* fact is the affordance, and this is the Component that draws it.
|
|
49
|
+
*
|
|
50
|
+
* **The cap is enforced at the affordance and nowhere else, and that placement is
|
|
51
|
+
* the design.** The moment the cap is reached, the add control is still there, in
|
|
52
|
+
* the tab order, and marked `aria-disabled`; it is not removed and it is not
|
|
53
|
+
* natively disabled, because a control that vanishes leaves a keyboard reader
|
|
54
|
+
* with a gap and no announcement, and a natively disabled one is gone from the tab
|
|
55
|
+
* order for the same reason. `Dropzone` states the whole argument and this
|
|
56
|
+
* Component inherits it. The reader learns the cap before they spend a pick, and
|
|
57
|
+
* the value is never silently truncated.
|
|
58
|
+
*
|
|
59
|
+
* **Removing a middle row moves focus, and that is the part no prop can express.**
|
|
60
|
+
* The naive `onRemove` hands the reader back to the document: the button they
|
|
61
|
+
* pressed is unmounted with the row, focus falls to `body`, and the next Tab
|
|
62
|
+
* starts from the top of the page, so a reader removing the third of six
|
|
63
|
+
* photographs is returned to the top of a form to find the two they still meant
|
|
64
|
+
* to change. The correct destination is a neighbour, and which neighbour is a
|
|
65
|
+
* fact about the index the caller does not know this Component holds: the row
|
|
66
|
+
* that moved up into the removed row's place, or the one above it when the
|
|
67
|
+
* removed row was last. Prism knows the index because it drew the row, so Prism
|
|
68
|
+
* moves the focus. When the last image goes, the focus lands on the add control,
|
|
69
|
+
* because that is the only operable thing left in the field and dropping a reader
|
|
70
|
+
* on nothing is the same defect one level up.
|
|
71
|
+
*
|
|
72
|
+
* **The row is a reference and the list is an `ol`, so position is in the
|
|
73
|
+
* accessibility tree.** The Component does not draw an ordinal and does not
|
|
74
|
+
* renumber anything by hand: an `ol` reports "3 of 6" for free, and the
|
|
75
|
+
* renumbering the reader needs after a removal is the list doing its job rather
|
|
76
|
+
* than a number this Component recomputed and could get wrong. The remove control
|
|
77
|
+
* is named by the caller's own sentence so the two do not have to agree.
|
|
78
|
+
*
|
|
79
|
+
* **It draws its own row and does not compose `FileUpload`, and the reason is the
|
|
80
|
+
* number of bytes.** `FileUpload`'s row is a name, a size in bytes, an optional
|
|
81
|
+
* transfer meter and an optional per-file error, and a field of references has
|
|
82
|
+
* none of those: a stored image has no size until the caller fetches it, and
|
|
83
|
+
* drawing a byte count for an image that has not been downloaded is a
|
|
84
|
+
* measurement of nothing. The two would also disagree about focus, because
|
|
85
|
+
* `FileUpload` owns its own remove control and there is no way to tell it where
|
|
86
|
+
* the reader's focus should land afterwards without reaching into its markup. The
|
|
87
|
+
* composition Prism does make is outward: `onAdd` is the seam where a `Dropzone`
|
|
88
|
+
* or a hidden `input` is composed, and `Button` draws the affordance rather than
|
|
89
|
+
* this Component re-deriving a control's metrics.
|
|
90
|
+
*
|
|
91
|
+
* **It is a client Component**, because the focus handoff and the cap's arrival
|
|
92
|
+
* both happen after the reader acts, and neither can be known at a server render.
|
|
93
|
+
* What that costs is the price of every client field: a form with images on it
|
|
94
|
+
* carries a hydration boundary, and a caller whose form is otherwise static pays
|
|
95
|
+
* for this one. The value is still the caller's, so a server Component may render
|
|
96
|
+
* the whole field once with the list already in place; what it may not do is offer
|
|
97
|
+
* a capped, removable list whose focus behaves, because that part is a client
|
|
98
|
+
* fact.
|
|
99
|
+
*
|
|
100
|
+
* **Two upstream spellings are this one job, and the catalogue holds one of
|
|
101
|
+
* them.** An image list and a gallery upload differ in whether the frame around
|
|
102
|
+
* the images is decorative, and in nothing else: both are an ordered list of
|
|
103
|
+
* image references, both cap, both remove. Publishing both would put two Items in
|
|
104
|
+
* the list whose only difference is a wrapper one of them drew, and a list
|
|
105
|
+
* nobody can search is what the naming law exists to prevent. A caller who wants
|
|
106
|
+
* a gallery frames the list themselves, which is layout and therefore already
|
|
107
|
+
* theirs.
|
|
108
|
+
*/
|
|
109
|
+
function ImageListField({ images, cap, addLabel, onAdd, onRemove, removeLabel, empty, capLabel, label, className, }) {
|
|
110
|
+
const generated = useId();
|
|
111
|
+
const labelId = `${generated}-label`;
|
|
112
|
+
const capId = `${generated}-cap`;
|
|
113
|
+
const rootRef = useRef(null);
|
|
114
|
+
// The index whose remove control should take focus after the caller's value
|
|
115
|
+
// settles, or `'add'` for the add control when the list empties. Armed before
|
|
116
|
+
// the callback runs and read after the next commit, because the row that is
|
|
117
|
+
// gone cannot be focused and the row that replaced it does not exist yet.
|
|
118
|
+
const pending = useRef(null);
|
|
119
|
+
const capped = images.length >= cap;
|
|
120
|
+
// The four absent values rather than a truthiness test, for the reason
|
|
121
|
+
// `LiveRegion` states: an empty string, a null from a state that has not
|
|
122
|
+
// resolved and a false from a condition are three routes to "nothing to say",
|
|
123
|
+
// and a list of three is a list the fourth route would miss. Zero is not on it
|
|
124
|
+
// because React renders `0`.
|
|
125
|
+
const showEmpty = images.length === 0 && empty !== '' && empty !== null && empty !== undefined && empty !== false;
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
const target = pending.current;
|
|
128
|
+
if (target === null)
|
|
129
|
+
return;
|
|
130
|
+
pending.current = null;
|
|
131
|
+
const root = rootRef.current;
|
|
132
|
+
if (root === null)
|
|
133
|
+
return;
|
|
134
|
+
if (target === 'add') {
|
|
135
|
+
root.querySelector(ADD_SLOT)?.focus();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const buttons = root.querySelectorAll(REMOVE_SLOT);
|
|
139
|
+
// The row that moved up into the removed row's place, or the one above it when
|
|
140
|
+
// the removed row was the last. `Math.min` against the new count is the whole
|
|
141
|
+
// rule, and the list being empty afterwards is the case that has no row left
|
|
142
|
+
// to land on.
|
|
143
|
+
const button = buttons.item(Math.min(target, buttons.length - 1));
|
|
144
|
+
if (button === null)
|
|
145
|
+
root.querySelector(ADD_SLOT)?.focus();
|
|
146
|
+
else
|
|
147
|
+
button.focus();
|
|
148
|
+
});
|
|
149
|
+
const removeAt = (index) => {
|
|
150
|
+
const image = images[index];
|
|
151
|
+
if (image === undefined)
|
|
152
|
+
return;
|
|
153
|
+
pending.current = index;
|
|
154
|
+
onRemove(image.id);
|
|
155
|
+
};
|
|
156
|
+
return (_jsxs("div", { ref: rootRef, "data-slot": "image-list-field", className: cn('flex w-full flex-col gap-2', className), children: [label === undefined ? null : (_jsx("span", { id: labelId, "data-slot": "image-list-field-label", className: "text-muted-foreground text-xs font-medium tracking-wide uppercase", children: label })), showEmpty ? (_jsx("p", { "data-slot": "image-list-field-empty", className: "text-muted-foreground text-sm", children: empty })) : (_jsx("ol", { "data-slot": "image-list-field-list", "aria-labelledby": label === undefined ? undefined : labelId, className: "flex w-full flex-col gap-2", children: images.map((image, index) => (_jsxs("li", { "data-slot": "image-list-field-item", className: "border-border bg-card flex items-center gap-3 rounded-md border px-3 py-2", children: [image.preview === undefined || image.preview === null || image.preview === false ? null : (
|
|
157
|
+
/*
|
|
158
|
+
* The caller's picture, clipped rather than sized. A preview that
|
|
159
|
+
* keeps its own aspect ratio changes the height of the row it sits
|
|
160
|
+
* in, and a list of rows whose heights depend on the pictures in
|
|
161
|
+
* them is a list a reader cannot scan. The caller's own `alt`
|
|
162
|
+
* stays reachable: the box is not `aria-hidden`, because an image
|
|
163
|
+
* carries information the row's name does not, and a caller whose
|
|
164
|
+
* preview really is decoration passes one that says so.
|
|
165
|
+
*/
|
|
166
|
+
_jsx("div", { "data-slot": "image-list-field-preview", className: "bg-muted flex size-12 shrink-0 items-center justify-center overflow-hidden rounded-md", children: image.preview })), _jsx("span", { "data-slot": "image-list-field-name", className: "min-w-0 flex-1 truncate text-sm font-medium", children: image.name }), _jsx("button", { type: "button", "data-slot": "image-list-field-remove", "aria-label": removeLabel(image.name), onClick: () => removeAt(index), className: REMOVE_CONTROL, children: _jsx(XIcon, { className: "size-4", "aria-hidden": "true" }) })] }, image.id))) })), _jsxs("div", { "data-slot": "image-list-field-actions", className: "flex items-center gap-2", children: [_jsx("span", { "data-slot": "image-list-field-add-control", className: cn('inline-flex', capped && 'opacity-50'), children: _jsxs(Button, { "data-slot": "image-list-field-add", type: "button", variant: "outline", size: "sm", "aria-disabled": capped || undefined, "aria-describedby": capped && capLabel !== undefined ? capId : undefined, onClick: capped ? () => undefined : onAdd, children: [_jsx(ImagePlusIcon, { "aria-hidden": "true" }), addLabel] }) }), capped && capLabel !== undefined ? (_jsx("span", { id: capId, "data-slot": "image-list-field-cap", className: "text-muted-foreground text-xs", children: capLabel })) : null] })] }));
|
|
167
|
+
}
|
|
168
|
+
export { ImageListField };
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
2
|
+
/** The props the ImageZoom accepts. */
|
|
3
|
+
export interface ImageZoomProps extends Omit<ComponentProps<'div'>, 'children'> {
|
|
4
|
+
/** The image to magnify, at the resolution it should be magnified into. */
|
|
5
|
+
src: string;
|
|
6
|
+
/**
|
|
7
|
+
* The image's description, and required.
|
|
8
|
+
*
|
|
9
|
+
* Required for the reason it is required on `Lightbox`: an image with no
|
|
10
|
+
* description is a picture a reader can see more of and still not read, and
|
|
11
|
+
* this Component's whole purpose is that they see more of it. It is also the
|
|
12
|
+
* only thing that tells a screen reader what the thing they are magnifying is,
|
|
13
|
+
* because magnification changes no semantics at all: the element is still an
|
|
14
|
+
* `img` with this `alt` before, during and after.
|
|
15
|
+
*/
|
|
16
|
+
alt: string;
|
|
17
|
+
/**
|
|
18
|
+
* The accessible name of the group, and required.
|
|
19
|
+
*
|
|
20
|
+
* A page with two magnified images is a page where a reader cannot tell which
|
|
21
|
+
* set of controls they are in, and the controls are three buttons that all
|
|
22
|
+
* look alike. The name is the caller's word, and `role="group"` is the
|
|
23
|
+
* deliberate choice over a landmark: a group is announced where it is met and
|
|
24
|
+
* never appears in a landmark list, so a page with six figures does not put six
|
|
25
|
+
* new entries in a reader's list of regions to walk.
|
|
26
|
+
*/
|
|
27
|
+
label: string;
|
|
28
|
+
/**
|
|
29
|
+
* The words for the current magnification, and required.
|
|
30
|
+
*
|
|
31
|
+
* A function rather than a string, for the reason `Carousel`'s `position` is
|
|
32
|
+
* one: a magnification is a number and the sentence around it is different in
|
|
33
|
+
* every language, so the sentence is the caller's. It receives a percentage, not
|
|
34
|
+
* a multiplier, because a percentage is the form a reader reads and a
|
|
35
|
+
* multiplier is the form this Component stores.
|
|
36
|
+
*/
|
|
37
|
+
scale: (percent: number) => string;
|
|
38
|
+
/**
|
|
39
|
+
* The smallest magnification, as a multiple of the fitted size. @defaultValue 1
|
|
40
|
+
*
|
|
41
|
+
* A number and not a keyword, because the useful answers are a designer's: the
|
|
42
|
+
* fitted size, twice the fitted size, and a figure from the caller's own brief.
|
|
43
|
+
*/
|
|
44
|
+
minScale?: number;
|
|
45
|
+
/** The largest. @defaultValue 4 */
|
|
46
|
+
maxScale?: number;
|
|
47
|
+
/** How much one press moves it. @defaultValue 0.5 */
|
|
48
|
+
step?: number;
|
|
49
|
+
/**
|
|
50
|
+
* The accessible name of the control that magnifies, and required.
|
|
51
|
+
*
|
|
52
|
+
* Required rather than defaulted on the reasoning `Lightbox` states: a
|
|
53
|
+
* hardcoded accessible name is a sentence a consumer cannot localise, and the
|
|
54
|
+
* only fix is a fork of this package. The three names are the caller's because
|
|
55
|
+
* they are three sentences in the caller's own words, and because "Zoom" is
|
|
56
|
+
* not the word a German product says for it.
|
|
57
|
+
*/
|
|
58
|
+
zoomInLabel: string;
|
|
59
|
+
/** The accessible name of the control that reduces the magnification. */
|
|
60
|
+
zoomOutLabel: string;
|
|
61
|
+
/** The accessible name of the control that returns the image to its fitted size. */
|
|
62
|
+
resetLabel: string;
|
|
63
|
+
/**
|
|
64
|
+
* The caller's own controls, drawn after this Component's three.
|
|
65
|
+
*
|
|
66
|
+
* A slot and not a second set of props, because everything a reader might want
|
|
67
|
+
* beside a magnifier is the consumer's decision: a download, a "show the whole
|
|
68
|
+
* page" that hands off to `Lightbox`, a reset for the surrounding form. Prism
|
|
69
|
+
* draws the three controls it can get right, and this is where the rest go. The
|
|
70
|
+
* cost is that a caller who wants their own magnification controls cannot
|
|
71
|
+
* suppress these three, and the answer is that a magnifier whose only route to
|
|
72
|
+
* magnification is in someone else's markup is not a magnifier.
|
|
73
|
+
*/
|
|
74
|
+
controls?: ReactNode;
|
|
75
|
+
/**
|
|
76
|
+
* Called with the magnification after every press.
|
|
77
|
+
*
|
|
78
|
+
* A notification rather than a controlled prop, and the reason is the same as
|
|
79
|
+
* `Lightbox`'s reset: the magnification is a decision about this visit. A
|
|
80
|
+
* reader who magnified a diagram, went away and came back should find it as
|
|
81
|
+
* they left it, not as they found it, so it is held here and not lifted. What
|
|
82
|
+
* the caller usually wants the number for is layout, and a notification is
|
|
83
|
+
* enough for that.
|
|
84
|
+
*/
|
|
85
|
+
onScaleChange?: (scale: number) => void;
|
|
86
|
+
/** Layout only, exactly as on every Component. */
|
|
87
|
+
className?: string;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* An image the reader magnifies where it already sits, with a frame that scrolls
|
|
91
|
+
* once it is larger than its box.
|
|
92
|
+
*
|
|
93
|
+
* **It is the `Lightbox` with the dialog taken out, and that subtraction is the
|
|
94
|
+
* whole Component.** A `Lightbox` opens a portal, traps focus, locks page scroll,
|
|
95
|
+
* swallows the Escape key and hands the reader a different place in the document
|
|
96
|
+
* to come back from. All five of those are the right price for an image the page
|
|
97
|
+
* has not shown the reader at all, where the enlargement is the only way to see
|
|
98
|
+
* it. They are the wrong price for an image the reader is already looking at:
|
|
99
|
+
* paying a focus trap to make a picture on the page bigger costs the reader their
|
|
100
|
+
* scroll position, their place in the document and their focus context, and a
|
|
101
|
+
* reader who has magnified an inline diagram and then closed the dialog lands
|
|
102
|
+
* somewhere they have to find again. So there is no portal, no overlay, no trap,
|
|
103
|
+
* no Escape key and no dismiss here. The page does not move and nothing is taken
|
|
104
|
+
* away from it. **Use a `Lightbox` when the enlargement is the only route to the
|
|
105
|
+
* image; use this when the image is already on the page and only its size is in
|
|
106
|
+
* the way.**
|
|
107
|
+
*
|
|
108
|
+
* **Prism draws the three controls and asks for their names, rather than taking
|
|
109
|
+
* the controls as a slot.** A slot would move the one guarantee that makes a
|
|
110
|
+
* magnifier usable to the caller: that the controls exist, that they are real
|
|
111
|
+
* buttons in the tab order, that they are disabled at the ends of the range, and
|
|
112
|
+
* that a reader whose control has just been disabled is moved to one that still
|
|
113
|
+
* works. That last one is not obvious and `Carousel` had to write a `useEffect`
|
|
114
|
+
* to get it right, because a disabled button leaves the tab order without giving
|
|
115
|
+
* up focus: a reader who presses zoom in at the ceiling is left focused on a
|
|
116
|
+
* control that can no longer answer Enter, Space or anything else, stranded
|
|
117
|
+
* inside the magnifier with no working control under their fingers. This
|
|
118
|
+
* Component does that move itself. The cost is that a caller who wants their own
|
|
119
|
+
* magnification controls cannot have them here, and the answer is that this is
|
|
120
|
+
* the wrong Component for a caller who wants that.
|
|
121
|
+
*
|
|
122
|
+
* **The scale transition is a transform with a token duration, and it is the only
|
|
123
|
+
* motion on the surface.** Magnifying a picture is spatial movement of a whole
|
|
124
|
+
* surface, so a reader who has asked for reduced motion gets the new size
|
|
125
|
+
* immediately and loses nothing but the travel between the two. Nothing here is
|
|
126
|
+
* guarded per call site any more: `packages/ui/src/styles.css` stops every
|
|
127
|
+
* transition under `prefers-reduced-motion` in one unlayered rule, and a
|
|
128
|
+
* `motion-safe:` beside an unguarded `transition-transform` was inert rather than
|
|
129
|
+
* cautious. The transition is on `transform` and on nothing else: an animated
|
|
130
|
+
* `width` or `height` is a layout animation on the main thread, which is the
|
|
131
|
+
* defect the compositor rule in the ambient layer exists to prevent, and a
|
|
132
|
+
* magnified diagram is large enough for that to be visible.
|
|
133
|
+
*
|
|
134
|
+
* **The scale reaches its final value before the pixels do, and that is the
|
|
135
|
+
* price of using a transform.** A transform does not change layout, so the
|
|
136
|
+
* frame's scroll extent is already at its full size on the first frame of the
|
|
137
|
+
* transition and the scrollbar arrives while the image is still travelling. The
|
|
138
|
+
* alternative is to animate the image's own size, which is a main-thread layout
|
|
139
|
+
* animation on the largest element on the page, and a scrollbar that moves a
|
|
140
|
+
* fraction early is a cheaper defect than a stuttering diagram.
|
|
141
|
+
*
|
|
142
|
+
* **Panning is a scroll, not a gesture.** Once the image is larger than its frame
|
|
143
|
+
* the frame scrolls, and the reader pans with the keys they already use: the
|
|
144
|
+
* arrow keys, the space bar, the Home and End keys, and a trackpad or a finger.
|
|
145
|
+
* There is no drag to pan, no pinch and no double tap, for the reason
|
|
146
|
+
* `Lightbox` gives: each of those is a bespoke pointer model a reader has to
|
|
147
|
+
* discover, and a scrollable frame is a thing every reader already knows. The
|
|
148
|
+
* frame is a block rather than a centred flex row, because a centred child
|
|
149
|
+
* larger than its scroll container has a left edge that cannot be scrolled back
|
|
150
|
+
* to in more than one browser, and a magnified image is routinely larger than
|
|
151
|
+
* its frame.
|
|
152
|
+
*
|
|
153
|
+
* **The scale is announced, politely, in the caller's words.** The sentence is in
|
|
154
|
+
* an `aria-live="polite"` region beside the controls, so a reader who has just
|
|
155
|
+
* pressed a button is told where they are without the announcement interrupting
|
|
156
|
+
* whatever they were reading. It is polite rather than assertive for the same
|
|
157
|
+
* reason `Carousel`'s position is: the reader caused the change by pressing a
|
|
158
|
+
* control and does not need to be interrupted by it.
|
|
159
|
+
*
|
|
160
|
+
* It is a client Component, because it holds a magnification and answers presses.
|
|
161
|
+
*/
|
|
162
|
+
declare function ImageZoom({ src, alt, label, scale, minScale, maxScale, step, zoomInLabel, zoomOutLabel, resetLabel, controls, onScaleChange, className, ...props }: ImageZoomProps): import("react").JSX.Element;
|
|
163
|
+
export { ImageZoom };
|
|
164
|
+
//# sourceMappingURL=image-zoom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-zoom.d.ts","sourceRoot":"","sources":["../../../src/components/ui/image-zoom.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA4C,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAgBrG,uCAAuC;AACvC,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC7E,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;;;OASG;IACH,GAAG,EAAE,MAAM,CAAA;IACX;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,YAAY,EAAE,MAAM,CAAA;IACpB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAA;IAClB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA6BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,iBAAS,SAAS,CAAC,EACjB,GAAG,EACH,GAAG,EACH,KAAK,EACL,KAAK,EACL,QAAc,EACd,QAAkB,EAClB,IAAa,EACb,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,aAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,+BAyJhB;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
|