@nanisoft/prism-ui 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD-PARTY-NOTICES.md +22 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/blocks/about-01/about.d.ts +296 -0
- package/dist/blocks/about-01/about.d.ts.map +1 -0
- package/dist/blocks/about-01/about.js +103 -0
- package/dist/blocks/about-01/index.d.ts +3 -0
- package/dist/blocks/about-01/index.d.ts.map +1 -0
- package/dist/blocks/about-01/index.js +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts +324 -0
- package/dist/blocks/accept-invite-01/accept-invite.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/accept-invite.js +230 -0
- package/dist/blocks/accept-invite-01/index.d.ts +3 -0
- package/dist/blocks/accept-invite-01/index.d.ts.map +1 -0
- package/dist/blocks/accept-invite-01/index.js +1 -0
- package/dist/blocks/account-01/account-01.d.ts +393 -0
- package/dist/blocks/account-01/account-01.d.ts.map +1 -0
- package/dist/blocks/account-01/account-01.js +215 -0
- package/dist/blocks/account-01/index.d.ts +3 -0
- package/dist/blocks/account-01/index.d.ts.map +1 -0
- package/dist/blocks/account-01/index.js +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts +271 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/activity-feed-01.js +185 -0
- package/dist/blocks/activity-feed-01/index.d.ts +3 -0
- package/dist/blocks/activity-feed-01/index.d.ts.map +1 -0
- package/dist/blocks/activity-feed-01/index.js +1 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts +312 -0
- package/dist/blocks/address-book-01/address-book-01.d.ts.map +1 -0
- package/dist/blocks/address-book-01/address-book-01.js +233 -0
- package/dist/blocks/address-book-01/index.d.ts +3 -0
- package/dist/blocks/address-book-01/index.d.ts.map +1 -0
- package/dist/blocks/address-book-01/index.js +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts +333 -0
- package/dist/blocks/audit-log-01/audit-log-01.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/audit-log-01.js +211 -0
- package/dist/blocks/audit-log-01/index.d.ts +3 -0
- package/dist/blocks/audit-log-01/index.d.ts.map +1 -0
- package/dist/blocks/audit-log-01/index.js +1 -0
- package/dist/blocks/auth-form-01/auth-form.d.ts +40 -1
- package/dist/blocks/auth-form-01/auth-form.d.ts.map +1 -1
- package/dist/blocks/auth-form-01/auth-form.js +26 -3
- package/dist/blocks/awards-01/awards.d.ts +156 -0
- package/dist/blocks/awards-01/awards.d.ts.map +1 -0
- package/dist/blocks/awards-01/awards.js +102 -0
- package/dist/blocks/awards-01/index.d.ts +3 -0
- package/dist/blocks/awards-01/index.d.ts.map +1 -0
- package/dist/blocks/awards-01/index.js +1 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts +268 -0
- package/dist/blocks/backdrop-01/backdrop.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/backdrop.js +170 -0
- package/dist/blocks/backdrop-01/index.d.ts +3 -0
- package/dist/blocks/backdrop-01/index.d.ts.map +1 -0
- package/dist/blocks/backdrop-01/index.js +1 -0
- package/dist/blocks/bento-01/bento-01.d.ts +136 -0
- package/dist/blocks/bento-01/bento-01.d.ts.map +1 -0
- package/dist/blocks/bento-01/bento-01.js +97 -0
- package/dist/blocks/bento-01/index.d.ts +3 -0
- package/dist/blocks/bento-01/index.d.ts.map +1 -0
- package/dist/blocks/bento-01/index.js +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts +379 -0
- package/dist/blocks/billing-source-01/billing-source-01.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/billing-source-01.js +222 -0
- package/dist/blocks/billing-source-01/index.d.ts +3 -0
- package/dist/blocks/billing-source-01/index.d.ts.map +1 -0
- package/dist/blocks/billing-source-01/index.js +1 -0
- package/dist/blocks/bundle-01/bundle.d.ts +387 -0
- package/dist/blocks/bundle-01/bundle.d.ts.map +1 -0
- package/dist/blocks/bundle-01/bundle.js +153 -0
- package/dist/blocks/bundle-01/index.d.ts +3 -0
- package/dist/blocks/bundle-01/index.d.ts.map +1 -0
- package/dist/blocks/bundle-01/index.js +1 -0
- package/dist/blocks/calendar-01/calendar.d.ts +251 -0
- package/dist/blocks/calendar-01/calendar.d.ts.map +1 -0
- package/dist/blocks/calendar-01/calendar.js +191 -0
- package/dist/blocks/calendar-01/index.d.ts +3 -0
- package/dist/blocks/calendar-01/index.d.ts.map +1 -0
- package/dist/blocks/calendar-01/index.js +1 -0
- package/dist/blocks/capacity-01/capacity.d.ts +363 -0
- package/dist/blocks/capacity-01/capacity.d.ts.map +1 -0
- package/dist/blocks/capacity-01/capacity.js +208 -0
- package/dist/blocks/capacity-01/index.d.ts +3 -0
- package/dist/blocks/capacity-01/index.d.ts.map +1 -0
- package/dist/blocks/capacity-01/index.js +1 -0
- package/dist/blocks/careers-01/careers.d.ts +186 -0
- package/dist/blocks/careers-01/careers.d.ts.map +1 -0
- package/dist/blocks/careers-01/careers.js +83 -0
- package/dist/blocks/careers-01/index.d.ts +3 -0
- package/dist/blocks/careers-01/index.d.ts.map +1 -0
- package/dist/blocks/careers-01/index.js +1 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts +192 -0
- package/dist/blocks/case-studies-01/case-studies.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/case-studies.js +97 -0
- package/dist/blocks/case-studies-01/index.d.ts +3 -0
- package/dist/blocks/case-studies-01/index.d.ts.map +1 -0
- package/dist/blocks/case-studies-01/index.js +1 -0
- package/dist/blocks/case-study-01/case-study.d.ts +214 -0
- package/dist/blocks/case-study-01/case-study.d.ts.map +1 -0
- package/dist/blocks/case-study-01/case-study.js +79 -0
- package/dist/blocks/case-study-01/index.d.ts +3 -0
- package/dist/blocks/case-study-01/index.d.ts.map +1 -0
- package/dist/blocks/case-study-01/index.js +1 -0
- package/dist/blocks/changelog-01/changelog.d.ts +200 -0
- package/dist/blocks/changelog-01/changelog.d.ts.map +1 -0
- package/dist/blocks/changelog-01/changelog.js +155 -0
- package/dist/blocks/changelog-01/index.d.ts +3 -0
- package/dist/blocks/changelog-01/index.d.ts.map +1 -0
- package/dist/blocks/changelog-01/index.js +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts +149 -0
- package/dist/blocks/chart-card-01/chart-card-01.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/chart-card-01.js +81 -0
- package/dist/blocks/chart-card-01/index.d.ts +3 -0
- package/dist/blocks/chart-card-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-card-01/index.js +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts +138 -0
- package/dist/blocks/chart-group-01/chart-group-01.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/chart-group-01.js +74 -0
- package/dist/blocks/chart-group-01/index.d.ts +3 -0
- package/dist/blocks/chart-group-01/index.d.ts.map +1 -0
- package/dist/blocks/chart-group-01/index.js +1 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts +193 -0
- package/dist/blocks/code-sample-01/code-sample.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/code-sample.js +104 -0
- package/dist/blocks/code-sample-01/index.d.ts +3 -0
- package/dist/blocks/code-sample-01/index.d.ts.map +1 -0
- package/dist/blocks/code-sample-01/index.js +1 -0
- package/dist/blocks/community-01/community.d.ts +183 -0
- package/dist/blocks/community-01/community.d.ts.map +1 -0
- package/dist/blocks/community-01/community.js +102 -0
- package/dist/blocks/community-01/index.d.ts +3 -0
- package/dist/blocks/community-01/index.d.ts.map +1 -0
- package/dist/blocks/community-01/index.js +1 -0
- package/dist/blocks/compare-01/compare.d.ts +184 -0
- package/dist/blocks/compare-01/compare.d.ts.map +1 -0
- package/dist/blocks/compare-01/compare.js +106 -0
- package/dist/blocks/compare-01/index.d.ts +3 -0
- package/dist/blocks/compare-01/index.d.ts.map +1 -0
- package/dist/blocks/compare-01/index.js +1 -0
- package/dist/blocks/compliance-01/compliance.d.ts +249 -0
- package/dist/blocks/compliance-01/compliance.d.ts.map +1 -0
- package/dist/blocks/compliance-01/compliance.js +130 -0
- package/dist/blocks/compliance-01/index.d.ts +3 -0
- package/dist/blocks/compliance-01/index.d.ts.map +1 -0
- package/dist/blocks/compliance-01/index.js +1 -0
- package/dist/blocks/consent-01/consent.d.ts +211 -0
- package/dist/blocks/consent-01/consent.d.ts.map +1 -0
- package/dist/blocks/consent-01/consent.js +101 -0
- package/dist/blocks/consent-01/index.d.ts +3 -0
- package/dist/blocks/consent-01/index.d.ts.map +1 -0
- package/dist/blocks/consent-01/index.js +1 -0
- package/dist/blocks/contact-01/contact.d.ts +319 -0
- package/dist/blocks/contact-01/contact.d.ts.map +1 -0
- package/dist/blocks/contact-01/contact.js +211 -0
- package/dist/blocks/contact-01/index.d.ts +3 -0
- package/dist/blocks/contact-01/index.d.ts.map +1 -0
- package/dist/blocks/contact-01/index.js +1 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts +262 -0
- package/dist/blocks/content-grid-01/content-grid.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/content-grid.js +155 -0
- package/dist/blocks/content-grid-01/index.d.ts +3 -0
- package/dist/blocks/content-grid-01/index.d.ts.map +1 -0
- package/dist/blocks/content-grid-01/index.js +1 -0
- package/dist/blocks/cta-01/cta.d.ts +7 -1
- package/dist/blocks/cta-01/cta.d.ts.map +1 -1
- package/dist/blocks/cta-01/cta.js +11 -2
- package/dist/blocks/dashboard-01/dashboard-01.d.ts +247 -0
- package/dist/blocks/dashboard-01/dashboard-01.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/dashboard-01.js +141 -0
- package/dist/blocks/dashboard-01/index.d.ts +3 -0
- package/dist/blocks/dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/dashboard-01/index.js +1 -0
- package/dist/blocks/data-table-01/data-table.d.ts +12 -1
- package/dist/blocks/data-table-01/data-table.d.ts.map +1 -1
- package/dist/blocks/data-table-01/data-table.js +8 -5
- package/dist/blocks/delivery-01/delivery.d.ts +343 -0
- package/dist/blocks/delivery-01/delivery.d.ts.map +1 -0
- package/dist/blocks/delivery-01/delivery.js +212 -0
- package/dist/blocks/delivery-01/index.d.ts +3 -0
- package/dist/blocks/delivery-01/index.d.ts.map +1 -0
- package/dist/blocks/delivery-01/index.js +1 -0
- package/dist/blocks/directory-01/directory-01.d.ts +316 -0
- package/dist/blocks/directory-01/directory-01.d.ts.map +1 -0
- package/dist/blocks/directory-01/directory-01.js +252 -0
- package/dist/blocks/directory-01/index.d.ts +3 -0
- package/dist/blocks/directory-01/index.d.ts.map +1 -0
- package/dist/blocks/directory-01/index.js +1 -0
- package/dist/blocks/download-01/download.d.ts +261 -0
- package/dist/blocks/download-01/download.d.ts.map +1 -0
- package/dist/blocks/download-01/download.js +115 -0
- package/dist/blocks/download-01/index.d.ts +3 -0
- package/dist/blocks/download-01/index.d.ts.map +1 -0
- package/dist/blocks/download-01/index.js +1 -0
- package/dist/blocks/faq-01/faq.d.ts +128 -0
- package/dist/blocks/faq-01/faq.d.ts.map +1 -0
- package/dist/blocks/faq-01/faq.js +53 -0
- package/dist/blocks/faq-01/index.d.ts +3 -0
- package/dist/blocks/faq-01/index.d.ts.map +1 -0
- package/dist/blocks/faq-01/index.js +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts +158 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/feature-rows-01.js +81 -0
- package/dist/blocks/feature-rows-01/index.d.ts +3 -0
- package/dist/blocks/feature-rows-01/index.d.ts.map +1 -0
- package/dist/blocks/feature-rows-01/index.js +1 -0
- package/dist/blocks/feedback-01/feedback.d.ts +235 -0
- package/dist/blocks/feedback-01/feedback.d.ts.map +1 -0
- package/dist/blocks/feedback-01/feedback.js +113 -0
- package/dist/blocks/feedback-01/index.d.ts +3 -0
- package/dist/blocks/feedback-01/index.d.ts.map +1 -0
- package/dist/blocks/feedback-01/index.js +1 -0
- package/dist/blocks/field-map-01/field-map.d.ts +247 -0
- package/dist/blocks/field-map-01/field-map.d.ts.map +1 -0
- package/dist/blocks/field-map-01/field-map.js +183 -0
- package/dist/blocks/field-map-01/index.d.ts +3 -0
- package/dist/blocks/field-map-01/index.d.ts.map +1 -0
- package/dist/blocks/field-map-01/index.js +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts +288 -0
- package/dist/blocks/forgot-password-01/forgot-password.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/forgot-password.js +190 -0
- package/dist/blocks/forgot-password-01/index.d.ts +3 -0
- package/dist/blocks/forgot-password-01/index.d.ts.map +1 -0
- package/dist/blocks/forgot-password-01/index.js +1 -0
- package/dist/blocks/gallery-01/gallery.d.ts +208 -0
- package/dist/blocks/gallery-01/gallery.d.ts.map +1 -0
- package/dist/blocks/gallery-01/gallery.js +174 -0
- package/dist/blocks/gallery-01/index.d.ts +3 -0
- package/dist/blocks/gallery-01/index.d.ts.map +1 -0
- package/dist/blocks/gallery-01/index.js +1 -0
- package/dist/blocks/gantt-01/gantt.d.ts +290 -0
- package/dist/blocks/gantt-01/gantt.d.ts.map +1 -0
- package/dist/blocks/gantt-01/gantt.js +224 -0
- package/dist/blocks/gantt-01/index.d.ts +3 -0
- package/dist/blocks/gantt-01/index.d.ts.map +1 -0
- package/dist/blocks/gantt-01/index.js +1 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts +326 -0
- package/dist/blocks/handoff-01/handoff-01.d.ts.map +1 -0
- package/dist/blocks/handoff-01/handoff-01.js +180 -0
- package/dist/blocks/handoff-01/index.d.ts +3 -0
- package/dist/blocks/handoff-01/index.d.ts.map +1 -0
- package/dist/blocks/handoff-01/index.js +1 -0
- package/dist/blocks/help-01/help.d.ts +254 -0
- package/dist/blocks/help-01/help.d.ts.map +1 -0
- package/dist/blocks/help-01/help.js +188 -0
- package/dist/blocks/help-01/index.d.ts +3 -0
- package/dist/blocks/help-01/index.d.ts.map +1 -0
- package/dist/blocks/help-01/index.js +1 -0
- package/dist/blocks/hero-01/hero.d.ts +105 -34
- package/dist/blocks/hero-01/hero.d.ts.map +1 -1
- package/dist/blocks/hero-01/hero.js +23 -15
- package/dist/blocks/hero-01/index.d.ts +1 -1
- package/dist/blocks/hero-01/index.d.ts.map +1 -1
- package/dist/blocks/hero-02/hero-02.d.ts +244 -0
- package/dist/blocks/hero-02/hero-02.d.ts.map +1 -0
- package/dist/blocks/hero-02/hero-02.js +87 -0
- package/dist/blocks/hero-02/index.d.ts +3 -0
- package/dist/blocks/hero-02/index.d.ts.map +1 -0
- package/dist/blocks/hero-02/index.js +1 -0
- package/dist/blocks/hero-03/hero-03.d.ts +247 -0
- package/dist/blocks/hero-03/hero-03.d.ts.map +1 -0
- package/dist/blocks/hero-03/hero-03.js +93 -0
- package/dist/blocks/hero-03/index.d.ts +3 -0
- package/dist/blocks/hero-03/index.d.ts.map +1 -0
- package/dist/blocks/hero-03/index.js +1 -0
- package/dist/blocks/history-01/history-01.d.ts +414 -0
- package/dist/blocks/history-01/history-01.d.ts.map +1 -0
- package/dist/blocks/history-01/history-01.js +285 -0
- package/dist/blocks/history-01/index.d.ts +3 -0
- package/dist/blocks/history-01/index.d.ts.map +1 -0
- package/dist/blocks/history-01/index.js +1 -0
- package/dist/blocks/inbox-01/inbox.d.ts +349 -0
- package/dist/blocks/inbox-01/inbox.d.ts.map +1 -0
- package/dist/blocks/inbox-01/inbox.js +244 -0
- package/dist/blocks/inbox-01/index.d.ts +3 -0
- package/dist/blocks/inbox-01/index.d.ts.map +1 -0
- package/dist/blocks/inbox-01/index.js +1 -0
- package/dist/blocks/index.d.ts +203 -0
- package/dist/blocks/index.d.ts.map +1 -1
- package/dist/blocks/index.js +118 -0
- package/dist/blocks/industries-01/index.d.ts +3 -0
- package/dist/blocks/industries-01/index.d.ts.map +1 -0
- package/dist/blocks/industries-01/index.js +1 -0
- package/dist/blocks/industries-01/industries.d.ts +164 -0
- package/dist/blocks/industries-01/industries.d.ts.map +1 -0
- package/dist/blocks/industries-01/industries.js +96 -0
- package/dist/blocks/intake-01/index.d.ts +3 -0
- package/dist/blocks/intake-01/index.d.ts.map +1 -0
- package/dist/blocks/intake-01/index.js +1 -0
- package/dist/blocks/intake-01/intake-01.d.ts +305 -0
- package/dist/blocks/intake-01/intake-01.d.ts.map +1 -0
- package/dist/blocks/intake-01/intake-01.js +178 -0
- package/dist/blocks/integration-01/index.d.ts +3 -0
- package/dist/blocks/integration-01/index.d.ts.map +1 -0
- package/dist/blocks/integration-01/index.js +1 -0
- package/dist/blocks/integration-01/integration.d.ts +226 -0
- package/dist/blocks/integration-01/integration.d.ts.map +1 -0
- package/dist/blocks/integration-01/integration.js +170 -0
- package/dist/blocks/invite-user-01/index.d.ts +3 -0
- package/dist/blocks/invite-user-01/index.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/index.js +1 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts +317 -0
- package/dist/blocks/invite-user-01/invite-user.d.ts.map +1 -0
- package/dist/blocks/invite-user-01/invite-user.js +228 -0
- package/dist/blocks/issue-detail-01/index.d.ts +3 -0
- package/dist/blocks/issue-detail-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/index.js +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts +355 -0
- package/dist/blocks/issue-detail-01/issue-detail.d.ts.map +1 -0
- package/dist/blocks/issue-detail-01/issue-detail.js +187 -0
- package/dist/blocks/issue-list-01/index.d.ts +3 -0
- package/dist/blocks/issue-list-01/index.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/index.js +1 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts +298 -0
- package/dist/blocks/issue-list-01/issue-list.d.ts.map +1 -0
- package/dist/blocks/issue-list-01/issue-list.js +284 -0
- package/dist/blocks/kanban-01/index.d.ts +3 -0
- package/dist/blocks/kanban-01/index.d.ts.map +1 -0
- package/dist/blocks/kanban-01/index.js +1 -0
- package/dist/blocks/kanban-01/kanban.d.ts +278 -0
- package/dist/blocks/kanban-01/kanban.d.ts.map +1 -0
- package/dist/blocks/kanban-01/kanban.js +144 -0
- package/dist/blocks/leaderboard-01/index.d.ts +3 -0
- package/dist/blocks/leaderboard-01/index.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/index.js +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts +250 -0
- package/dist/blocks/leaderboard-01/leaderboard.d.ts.map +1 -0
- package/dist/blocks/leaderboard-01/leaderboard.js +121 -0
- package/dist/blocks/login-01/index.d.ts +3 -0
- package/dist/blocks/login-01/index.d.ts.map +1 -0
- package/dist/blocks/login-01/index.js +1 -0
- package/dist/blocks/login-01/login-01.d.ts +356 -0
- package/dist/blocks/login-01/login-01.d.ts.map +1 -0
- package/dist/blocks/login-01/login-01.js +249 -0
- package/dist/blocks/logo-cloud-01/index.d.ts +3 -0
- package/dist/blocks/logo-cloud-01/index.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/index.js +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts +181 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.d.ts.map +1 -0
- package/dist/blocks/logo-cloud-01/logo-cloud.js +118 -0
- package/dist/blocks/magic-link-01/index.d.ts +3 -0
- package/dist/blocks/magic-link-01/index.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/index.js +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts +367 -0
- package/dist/blocks/magic-link-01/magic-link-01.d.ts.map +1 -0
- package/dist/blocks/magic-link-01/magic-link-01.js +233 -0
- package/dist/blocks/member-list-01/index.d.ts +3 -0
- package/dist/blocks/member-list-01/index.d.ts.map +1 -0
- package/dist/blocks/member-list-01/index.js +1 -0
- package/dist/blocks/member-list-01/member-list.d.ts +192 -0
- package/dist/blocks/member-list-01/member-list.d.ts.map +1 -0
- package/dist/blocks/member-list-01/member-list.js +142 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts +3 -0
- package/dist/blocks/milestone-timeline-01/index.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/index.js +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts +217 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.d.ts.map +1 -0
- package/dist/blocks/milestone-timeline-01/milestone-timeline.js +173 -0
- package/dist/blocks/newsletter-01/index.d.ts +3 -0
- package/dist/blocks/newsletter-01/index.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/index.js +1 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts +216 -0
- package/dist/blocks/newsletter-01/newsletter.d.ts.map +1 -0
- package/dist/blocks/newsletter-01/newsletter.js +102 -0
- package/dist/blocks/notification-center-01/index.d.ts +3 -0
- package/dist/blocks/notification-center-01/index.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/index.js +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts +341 -0
- package/dist/blocks/notification-center-01/notification-center-01.d.ts.map +1 -0
- package/dist/blocks/notification-center-01/notification-center-01.js +203 -0
- package/dist/blocks/offer-01/index.d.ts +3 -0
- package/dist/blocks/offer-01/index.d.ts.map +1 -0
- package/dist/blocks/offer-01/index.js +1 -0
- package/dist/blocks/offer-01/offer.d.ts +139 -0
- package/dist/blocks/offer-01/offer.d.ts.map +1 -0
- package/dist/blocks/offer-01/offer.js +81 -0
- package/dist/blocks/offering-01/index.d.ts +3 -0
- package/dist/blocks/offering-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-01/index.js +1 -0
- package/dist/blocks/offering-01/offering.d.ts +245 -0
- package/dist/blocks/offering-01/offering.d.ts.map +1 -0
- package/dist/blocks/offering-01/offering.js +144 -0
- package/dist/blocks/offering-categories-01/index.d.ts +3 -0
- package/dist/blocks/offering-categories-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/index.js +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts +248 -0
- package/dist/blocks/offering-categories-01/offering-categories.d.ts.map +1 -0
- package/dist/blocks/offering-categories-01/offering-categories.js +153 -0
- package/dist/blocks/offering-list-01/index.d.ts +3 -0
- package/dist/blocks/offering-list-01/index.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/index.js +1 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts +362 -0
- package/dist/blocks/offering-list-01/offering-list.d.ts.map +1 -0
- package/dist/blocks/offering-list-01/offering-list.js +366 -0
- package/dist/blocks/onboarding-01/index.d.ts +3 -0
- package/dist/blocks/onboarding-01/index.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/index.js +1 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts +199 -0
- package/dist/blocks/onboarding-01/onboarding.d.ts.map +1 -0
- package/dist/blocks/onboarding-01/onboarding.js +182 -0
- package/dist/blocks/ops-checklist-01/index.d.ts +3 -0
- package/dist/blocks/ops-checklist-01/index.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/index.js +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts +308 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.d.ts.map +1 -0
- package/dist/blocks/ops-checklist-01/ops-checklist-01.js +165 -0
- package/dist/blocks/page-header-01/index.d.ts +1 -1
- package/dist/blocks/page-header-01/index.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.d.ts +124 -11
- package/dist/blocks/page-header-01/page-header.d.ts.map +1 -1
- package/dist/blocks/page-header-01/page-header.js +25 -9
- package/dist/blocks/passkey-01/index.d.ts +3 -0
- package/dist/blocks/passkey-01/index.d.ts.map +1 -0
- package/dist/blocks/passkey-01/index.js +1 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts +334 -0
- package/dist/blocks/passkey-01/passkey-01.d.ts.map +1 -0
- package/dist/blocks/passkey-01/passkey-01.js +192 -0
- package/dist/blocks/permission-matrix-01/index.d.ts +3 -0
- package/dist/blocks/permission-matrix-01/index.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/index.js +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts +282 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.d.ts.map +1 -0
- package/dist/blocks/permission-matrix-01/permission-matrix.js +173 -0
- package/dist/blocks/pricing-01/index.d.ts +1 -0
- package/dist/blocks/pricing-01/index.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.d.ts +118 -1
- package/dist/blocks/pricing-01/pricing.d.ts.map +1 -1
- package/dist/blocks/pricing-01/pricing.js +9 -2
- package/dist/blocks/pricing-compare-01/index.d.ts +3 -0
- package/dist/blocks/pricing-compare-01/index.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/index.js +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts +277 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.d.ts.map +1 -0
- package/dist/blocks/pricing-compare-01/pricing-compare.js +126 -0
- package/dist/blocks/project-01/index.d.ts +3 -0
- package/dist/blocks/project-01/index.d.ts.map +1 -0
- package/dist/blocks/project-01/index.js +1 -0
- package/dist/blocks/project-01/project.d.ts +323 -0
- package/dist/blocks/project-01/project.d.ts.map +1 -0
- package/dist/blocks/project-01/project.js +247 -0
- package/dist/blocks/project-dashboard-01/index.d.ts +3 -0
- package/dist/blocks/project-dashboard-01/index.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/index.js +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts +200 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.d.ts.map +1 -0
- package/dist/blocks/project-dashboard-01/project-dashboard.js +124 -0
- package/dist/blocks/project-list-01/index.d.ts +3 -0
- package/dist/blocks/project-list-01/index.d.ts.map +1 -0
- package/dist/blocks/project-list-01/index.js +1 -0
- package/dist/blocks/project-list-01/project-list.d.ts +301 -0
- package/dist/blocks/project-list-01/project-list.d.ts.map +1 -0
- package/dist/blocks/project-list-01/project-list.js +305 -0
- package/dist/blocks/provisioning-01/index.d.ts +3 -0
- package/dist/blocks/provisioning-01/index.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/index.js +1 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts +357 -0
- package/dist/blocks/provisioning-01/provisioning.d.ts.map +1 -0
- package/dist/blocks/provisioning-01/provisioning.js +230 -0
- package/dist/blocks/quick-view-01/index.d.ts +3 -0
- package/dist/blocks/quick-view-01/index.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/index.js +1 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts +215 -0
- package/dist/blocks/quick-view-01/quick-view.d.ts.map +1 -0
- package/dist/blocks/quick-view-01/quick-view.js +136 -0
- package/dist/blocks/rate-card-01/index.d.ts +3 -0
- package/dist/blocks/rate-card-01/index.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/index.js +1 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts +184 -0
- package/dist/blocks/rate-card-01/rate-card.d.ts.map +1 -0
- package/dist/blocks/rate-card-01/rate-card.js +79 -0
- package/dist/blocks/reset-password-01/index.d.ts +3 -0
- package/dist/blocks/reset-password-01/index.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/index.js +1 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts +276 -0
- package/dist/blocks/reset-password-01/reset-password.d.ts.map +1 -0
- package/dist/blocks/reset-password-01/reset-password.js +175 -0
- package/dist/blocks/resource-list-01/index.d.ts +3 -0
- package/dist/blocks/resource-list-01/index.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/index.js +1 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts +237 -0
- package/dist/blocks/resource-list-01/resource-list.d.ts.map +1 -0
- package/dist/blocks/resource-list-01/resource-list.js +154 -0
- package/dist/blocks/retention-01/index.d.ts +3 -0
- package/dist/blocks/retention-01/index.d.ts.map +1 -0
- package/dist/blocks/retention-01/index.js +1 -0
- package/dist/blocks/retention-01/retention.d.ts +255 -0
- package/dist/blocks/retention-01/retention.d.ts.map +1 -0
- package/dist/blocks/retention-01/retention.js +145 -0
- package/dist/blocks/run-console-01/run-console.d.ts +14 -1
- package/dist/blocks/run-console-01/run-console.d.ts.map +1 -1
- package/dist/blocks/run-console-01/run-console.js +3 -2
- package/dist/blocks/services-01/index.d.ts +3 -0
- package/dist/blocks/services-01/index.d.ts.map +1 -0
- package/dist/blocks/services-01/index.js +1 -0
- package/dist/blocks/services-01/services.d.ts +159 -0
- package/dist/blocks/services-01/services.d.ts.map +1 -0
- package/dist/blocks/services-01/services.js +81 -0
- package/dist/blocks/settings-integrations-01/index.d.ts +3 -0
- package/dist/blocks/settings-integrations-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/index.js +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts +246 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.d.ts.map +1 -0
- package/dist/blocks/settings-integrations-01/settings-integrations.js +213 -0
- package/dist/blocks/settings-members-01/index.d.ts +3 -0
- package/dist/blocks/settings-members-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/index.js +1 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts +396 -0
- package/dist/blocks/settings-members-01/settings-members.d.ts.map +1 -0
- package/dist/blocks/settings-members-01/settings-members.js +255 -0
- package/dist/blocks/settings-notifications-01/index.d.ts +3 -0
- package/dist/blocks/settings-notifications-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/index.js +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts +270 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.d.ts.map +1 -0
- package/dist/blocks/settings-notifications-01/settings-notifications.js +202 -0
- package/dist/blocks/settings-security-01/index.d.ts +3 -0
- package/dist/blocks/settings-security-01/index.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/index.js +1 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts +439 -0
- package/dist/blocks/settings-security-01/settings-security.d.ts.map +1 -0
- package/dist/blocks/settings-security-01/settings-security.js +244 -0
- package/dist/blocks/shortlist-01/index.d.ts +3 -0
- package/dist/blocks/shortlist-01/index.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/index.js +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts +337 -0
- package/dist/blocks/shortlist-01/shortlist-01.d.ts.map +1 -0
- package/dist/blocks/shortlist-01/shortlist-01.js +191 -0
- package/dist/blocks/showcase-01/index.d.ts +3 -0
- package/dist/blocks/showcase-01/index.d.ts.map +1 -0
- package/dist/blocks/showcase-01/index.js +1 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts +238 -0
- package/dist/blocks/showcase-01/showcase-01.d.ts.map +1 -0
- package/dist/blocks/showcase-01/showcase-01.js +84 -0
- package/dist/blocks/signup-01/index.d.ts +3 -0
- package/dist/blocks/signup-01/index.d.ts.map +1 -0
- package/dist/blocks/signup-01/index.js +1 -0
- package/dist/blocks/signup-01/signup-01.d.ts +405 -0
- package/dist/blocks/signup-01/signup-01.d.ts.map +1 -0
- package/dist/blocks/signup-01/signup-01.js +209 -0
- package/dist/blocks/site-footer/site-footer.d.ts +18 -1
- package/dist/blocks/site-footer/site-footer.d.ts.map +1 -1
- package/dist/blocks/site-footer/site-footer.js +8 -2
- package/dist/blocks/site-header/site-header.js +1 -1
- package/dist/blocks/site-navbar/site-navbar.d.ts +37 -3
- package/dist/blocks/site-navbar/site-navbar.d.ts.map +1 -1
- package/dist/blocks/site-navbar/site-navbar.js +33 -4
- package/dist/blocks/spec-table-01/index.d.ts +3 -0
- package/dist/blocks/spec-table-01/index.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/index.js +1 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts +293 -0
- package/dist/blocks/spec-table-01/spec-table.d.ts.map +1 -0
- package/dist/blocks/spec-table-01/spec-table.js +217 -0
- package/dist/blocks/story-01/index.d.ts +3 -0
- package/dist/blocks/story-01/index.d.ts.map +1 -0
- package/dist/blocks/story-01/index.js +1 -0
- package/dist/blocks/story-01/story.d.ts +153 -0
- package/dist/blocks/story-01/story.d.ts.map +1 -0
- package/dist/blocks/story-01/story.js +103 -0
- package/dist/blocks/summary-01/index.d.ts +3 -0
- package/dist/blocks/summary-01/index.d.ts.map +1 -0
- package/dist/blocks/summary-01/index.js +1 -0
- package/dist/blocks/summary-01/summary.d.ts +300 -0
- package/dist/blocks/summary-01/summary.d.ts.map +1 -0
- package/dist/blocks/summary-01/summary.js +174 -0
- package/dist/blocks/team-01/index.d.ts +3 -0
- package/dist/blocks/team-01/index.d.ts.map +1 -0
- package/dist/blocks/team-01/index.js +1 -0
- package/dist/blocks/team-01/team.d.ts +176 -0
- package/dist/blocks/team-01/team.d.ts.map +1 -0
- package/dist/blocks/team-01/team.js +117 -0
- package/dist/blocks/testimonial-01/index.d.ts +3 -0
- package/dist/blocks/testimonial-01/index.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/index.js +1 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts +173 -0
- package/dist/blocks/testimonial-01/testimonial.d.ts.map +1 -0
- package/dist/blocks/testimonial-01/testimonial.js +87 -0
- package/dist/blocks/todo-01/index.d.ts +3 -0
- package/dist/blocks/todo-01/index.d.ts.map +1 -0
- package/dist/blocks/todo-01/index.js +1 -0
- package/dist/blocks/todo-01/todo.d.ts +286 -0
- package/dist/blocks/todo-01/todo.d.ts.map +1 -0
- package/dist/blocks/todo-01/todo.js +149 -0
- package/dist/blocks/trend-01/index.d.ts +3 -0
- package/dist/blocks/trend-01/index.d.ts.map +1 -0
- package/dist/blocks/trend-01/index.js +1 -0
- package/dist/blocks/trend-01/trend.d.ts +184 -0
- package/dist/blocks/trend-01/trend.d.ts.map +1 -0
- package/dist/blocks/trend-01/trend.js +99 -0
- package/dist/blocks/trust-strip-01/index.d.ts +3 -0
- package/dist/blocks/trust-strip-01/index.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/index.js +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts +139 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.d.ts.map +1 -0
- package/dist/blocks/trust-strip-01/trust-strip-01.js +58 -0
- package/dist/blocks/two-factor-01/index.d.ts +3 -0
- package/dist/blocks/two-factor-01/index.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/index.js +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts +440 -0
- package/dist/blocks/two-factor-01/two-factor-01.d.ts.map +1 -0
- package/dist/blocks/two-factor-01/two-factor-01.js +273 -0
- package/dist/blocks/user-profile-01/index.d.ts +3 -0
- package/dist/blocks/user-profile-01/index.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/index.js +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts +258 -0
- package/dist/blocks/user-profile-01/user-profile-01.d.ts.map +1 -0
- package/dist/blocks/user-profile-01/user-profile-01.js +158 -0
- package/dist/blocks/verify-email-01/index.d.ts +3 -0
- package/dist/blocks/verify-email-01/index.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/index.js +1 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts +262 -0
- package/dist/blocks/verify-email-01/verify-email.d.ts.map +1 -0
- package/dist/blocks/verify-email-01/verify-email.js +190 -0
- package/dist/blocks/waitlist-01/index.d.ts +3 -0
- package/dist/blocks/waitlist-01/index.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/index.js +1 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts +254 -0
- package/dist/blocks/waitlist-01/waitlist.d.ts.map +1 -0
- package/dist/blocks/waitlist-01/waitlist.js +75 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +1641 -1
- package/dist/components/index.d.ts +114 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +134 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -2
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +22 -4
- package/dist/components/ui/announcement.d.ts +169 -0
- package/dist/components/ui/announcement.d.ts.map +1 -0
- package/dist/components/ui/announcement.js +123 -0
- package/dist/components/ui/avatar-group.d.ts +176 -0
- package/dist/components/ui/avatar-group.d.ts.map +1 -0
- package/dist/components/ui/avatar-group.js +135 -0
- package/dist/components/ui/billing-source.d.ts +293 -0
- package/dist/components/ui/billing-source.d.ts.map +1 -0
- package/dist/components/ui/billing-source.js +136 -0
- package/dist/components/ui/button.d.ts +16 -1
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +17 -2
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar.js +30 -2
- package/dist/components/ui/carousel.d.ts +7 -0
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +58 -1
- package/dist/components/ui/chart.d.ts +334 -0
- package/dist/components/ui/chart.d.ts.map +1 -0
- package/dist/components/ui/chart.js +369 -0
- package/dist/components/ui/checkbox.d.ts +10 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +19 -1
- package/dist/components/ui/checklist.d.ts +262 -0
- package/dist/components/ui/checklist.d.ts.map +1 -0
- package/dist/components/ui/checklist.js +135 -0
- package/dist/components/ui/choice-card.d.ts +273 -0
- package/dist/components/ui/choice-card.d.ts.map +1 -0
- package/dist/components/ui/choice-card.js +138 -0
- package/dist/components/ui/code-block.d.ts +182 -0
- package/dist/components/ui/code-block.d.ts.map +1 -0
- package/dist/components/ui/code-block.js +108 -0
- package/dist/components/ui/cohort-grid.d.ts +210 -0
- package/dist/components/ui/cohort-grid.d.ts.map +1 -0
- package/dist/components/ui/cohort-grid.js +202 -0
- package/dist/components/ui/collapsible.d.ts +11 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/collapsible.js +13 -2
- package/dist/components/ui/combobox.d.ts +4 -1
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +20 -4
- package/dist/components/ui/command-palette.d.ts +11 -0
- package/dist/components/ui/command-palette.d.ts.map +1 -1
- package/dist/components/ui/command-palette.js +49 -3
- package/dist/components/ui/contribution-graph.d.ts +156 -0
- package/dist/components/ui/contribution-graph.d.ts.map +1 -0
- package/dist/components/ui/contribution-graph.js +170 -0
- package/dist/components/ui/creatable-combobox.d.ts +153 -0
- package/dist/components/ui/creatable-combobox.d.ts.map +1 -0
- package/dist/components/ui/creatable-combobox.js +285 -0
- package/dist/components/ui/data-toolbar.d.ts +133 -0
- package/dist/components/ui/data-toolbar.d.ts.map +1 -0
- package/dist/components/ui/data-toolbar.js +67 -0
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/date-picker.js +9 -1
- package/dist/components/ui/dialog.d.ts +31 -2
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +40 -6
- package/dist/components/ui/drawer.d.ts +270 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +241 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +6 -1
- package/dist/components/ui/dropzone.d.ts +147 -0
- package/dist/components/ui/dropzone.d.ts.map +1 -0
- package/dist/components/ui/dropzone.js +141 -0
- package/dist/components/ui/emoji-picker.d.ts +328 -0
- package/dist/components/ui/emoji-picker.d.ts.map +1 -0
- package/dist/components/ui/emoji-picker.js +278 -0
- package/dist/components/ui/file-upload.d.ts +152 -0
- package/dist/components/ui/file-upload.d.ts.map +1 -0
- package/dist/components/ui/file-upload.js +101 -0
- package/dist/components/ui/filter-panel.d.ts +164 -0
- package/dist/components/ui/filter-panel.d.ts.map +1 -0
- package/dist/components/ui/filter-panel.js +91 -0
- package/dist/components/ui/form-dialog.d.ts +257 -0
- package/dist/components/ui/form-dialog.d.ts.map +1 -0
- package/dist/components/ui/form-dialog.js +176 -0
- package/dist/components/ui/form-wizard.d.ts +251 -0
- package/dist/components/ui/form-wizard.d.ts.map +1 -0
- package/dist/components/ui/form-wizard.js +151 -0
- package/dist/components/ui/image-list-field.d.ts +232 -0
- package/dist/components/ui/image-list-field.d.ts.map +1 -0
- package/dist/components/ui/image-list-field.js +168 -0
- package/dist/components/ui/image-zoom.d.ts +164 -0
- package/dist/components/ui/image-zoom.d.ts.map +1 -0
- package/dist/components/ui/image-zoom.js +169 -0
- package/dist/components/ui/intensity-grid.d.ts +270 -0
- package/dist/components/ui/intensity-grid.d.ts.map +1 -0
- package/dist/components/ui/intensity-grid.js +211 -0
- package/dist/components/ui/lifecycle-button.d.ts +276 -0
- package/dist/components/ui/lifecycle-button.d.ts.map +1 -0
- package/dist/components/ui/lifecycle-button.js +144 -0
- package/dist/components/ui/lightbox.d.ts +165 -0
- package/dist/components/ui/lightbox.d.ts.map +1 -0
- package/dist/components/ui/lightbox.js +130 -0
- package/dist/components/ui/list-panel.d.ts +288 -0
- package/dist/components/ui/list-panel.d.ts.map +1 -0
- package/dist/components/ui/list-panel.js +139 -0
- package/dist/components/ui/mega-menu.d.ts +244 -0
- package/dist/components/ui/mega-menu.d.ts.map +1 -0
- package/dist/components/ui/mega-menu.js +97 -0
- package/dist/components/ui/menubar.d.ts +9 -0
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar.js +10 -1
- package/dist/components/ui/metric.d.ts +123 -0
- package/dist/components/ui/metric.d.ts.map +1 -0
- package/dist/components/ui/metric.js +68 -0
- package/dist/components/ui/mini-calendar.d.ts +143 -0
- package/dist/components/ui/mini-calendar.d.ts.map +1 -0
- package/dist/components/ui/mini-calendar.js +261 -0
- package/dist/components/ui/mode-toggle.d.ts +102 -0
- package/dist/components/ui/mode-toggle.d.ts.map +1 -0
- package/dist/components/ui/mode-toggle.js +83 -0
- package/dist/components/ui/money-field.d.ts +200 -0
- package/dist/components/ui/money-field.d.ts.map +1 -0
- package/dist/components/ui/money-field.js +215 -0
- package/dist/components/ui/multi-combobox.d.ts +181 -0
- package/dist/components/ui/multi-combobox.d.ts.map +1 -0
- package/dist/components/ui/multi-combobox.js +297 -0
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js +8 -1
- package/dist/components/ui/navigation-menu.d.ts +7 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +8 -1
- package/dist/components/ui/nested-tabs.d.ts +188 -0
- package/dist/components/ui/nested-tabs.d.ts.map +1 -0
- package/dist/components/ui/nested-tabs.js +75 -0
- package/dist/components/ui/number-field.d.ts +40 -7
- package/dist/components/ui/number-field.d.ts.map +1 -1
- package/dist/components/ui/number-field.js +37 -7
- package/dist/components/ui/overflow-actions.d.ts +169 -0
- package/dist/components/ui/overflow-actions.d.ts.map +1 -0
- package/dist/components/ui/overflow-actions.js +266 -0
- package/dist/components/ui/pack-swatch.d.ts +177 -0
- package/dist/components/ui/pack-swatch.d.ts.map +1 -0
- package/dist/components/ui/pack-swatch.js +117 -0
- package/dist/components/ui/pack-switcher.d.ts +221 -0
- package/dist/components/ui/pack-switcher.d.ts.map +1 -0
- package/dist/components/ui/pack-switcher.js +94 -0
- package/dist/components/ui/pagination.d.ts +22 -0
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js +23 -1
- package/dist/components/ui/password-field.d.ts +122 -0
- package/dist/components/ui/password-field.d.ts.map +1 -0
- package/dist/components/ui/password-field.js +69 -0
- package/dist/components/ui/pill.d.ts +172 -0
- package/dist/components/ui/pill.d.ts.map +1 -0
- package/dist/components/ui/pill.js +102 -0
- package/dist/components/ui/platform-modifier-key.d.ts +129 -0
- package/dist/components/ui/platform-modifier-key.d.ts.map +1 -0
- package/dist/components/ui/platform-modifier-key.js +125 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -1
- package/dist/components/ui/price.d.ts +144 -0
- package/dist/components/ui/price.d.ts.map +1 -0
- package/dist/components/ui/price.js +107 -0
- package/dist/components/ui/progress.d.ts +55 -1
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/progress.js +110 -2
- package/dist/components/ui/prompt-composer.d.ts +302 -0
- package/dist/components/ui/prompt-composer.d.ts.map +1 -0
- package/dist/components/ui/prompt-composer.js +145 -0
- package/dist/components/ui/proportion-list.d.ts +188 -0
- package/dist/components/ui/proportion-list.d.ts.map +1 -0
- package/dist/components/ui/proportion-list.js +134 -0
- package/dist/components/ui/prose.d.ts +23 -0
- package/dist/components/ui/prose.d.ts.map +1 -1
- package/dist/components/ui/prose.js +30 -1
- package/dist/components/ui/radio-group.d.ts +7 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +8 -1
- package/dist/components/ui/range-field.d.ts +158 -0
- package/dist/components/ui/range-field.d.ts.map +1 -0
- package/dist/components/ui/range-field.js +208 -0
- package/dist/components/ui/relative-time.d.ts +116 -0
- package/dist/components/ui/relative-time.d.ts.map +1 -0
- package/dist/components/ui/relative-time.js +67 -0
- package/dist/components/ui/reorderable-list.d.ts +262 -0
- package/dist/components/ui/reorderable-list.d.ts.map +1 -0
- package/dist/components/ui/reorderable-list.js +325 -0
- package/dist/components/ui/repeatable-rows.d.ts +241 -0
- package/dist/components/ui/repeatable-rows.d.ts.map +1 -0
- package/dist/components/ui/repeatable-rows.js +221 -0
- package/dist/components/ui/repo-stars.d.ts +165 -0
- package/dist/components/ui/repo-stars.d.ts.map +1 -0
- package/dist/components/ui/repo-stars.js +92 -0
- package/dist/components/ui/resizable.d.ts +24 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +96 -4
- package/dist/components/ui/search-dialog.d.ts +40 -5
- package/dist/components/ui/search-dialog.d.ts.map +1 -1
- package/dist/components/ui/search-dialog.js +94 -16
- package/dist/components/ui/search-field.d.ts +159 -0
- package/dist/components/ui/search-field.d.ts.map +1 -0
- package/dist/components/ui/search-field.js +98 -0
- package/dist/components/ui/section.d.ts +108 -1
- package/dist/components/ui/section.d.ts.map +1 -1
- package/dist/components/ui/section.js +109 -3
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/select.js +9 -1
- package/dist/components/ui/selection-toolbar.d.ts +166 -0
- package/dist/components/ui/selection-toolbar.d.ts.map +1 -0
- package/dist/components/ui/selection-toolbar.js +139 -0
- package/dist/components/ui/sidebar.d.ts +29 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/sidebar.js +35 -2
- package/dist/components/ui/signal-field.d.ts.map +1 -1
- package/dist/components/ui/signal-field.js +1 -1
- package/dist/components/ui/slider.d.ts +7 -0
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/slider.js +32 -1
- package/dist/components/ui/sparkline.d.ts +117 -0
- package/dist/components/ui/sparkline.d.ts.map +1 -0
- package/dist/components/ui/sparkline.js +113 -0
- package/dist/components/ui/spinner.d.ts.map +1 -1
- package/dist/components/ui/spinner.js +13 -0
- package/dist/components/ui/split-button.d.ts +207 -0
- package/dist/components/ui/split-button.d.ts.map +1 -0
- package/dist/components/ui/split-button.js +75 -0
- package/dist/components/ui/stateful-table.d.ts +345 -0
- package/dist/components/ui/stateful-table.d.ts.map +1 -0
- package/dist/components/ui/stateful-table.js +169 -0
- package/dist/components/ui/status.d.ts +99 -0
- package/dist/components/ui/status.d.ts.map +1 -0
- package/dist/components/ui/status.js +63 -0
- package/dist/components/ui/stepper.d.ts +155 -0
- package/dist/components/ui/stepper.d.ts.map +1 -0
- package/dist/components/ui/stepper.js +83 -0
- package/dist/components/ui/steps.d.ts +141 -0
- package/dist/components/ui/steps.d.ts.map +1 -0
- package/dist/components/ui/steps.js +128 -0
- package/dist/components/ui/switch.d.ts +8 -0
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/switch.js +12 -1
- package/dist/components/ui/tabs.d.ts +21 -2
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/tabs.js +23 -4
- package/dist/components/ui/tag-group.d.ts +154 -0
- package/dist/components/ui/tag-group.d.ts.map +1 -0
- package/dist/components/ui/tag-group.js +111 -0
- package/dist/components/ui/task-progress.d.ts +149 -0
- package/dist/components/ui/task-progress.d.ts.map +1 -0
- package/dist/components/ui/task-progress.js +110 -0
- package/dist/components/ui/text-format-toolbar.d.ts +211 -0
- package/dist/components/ui/text-format-toolbar.d.ts.map +1 -0
- package/dist/components/ui/text-format-toolbar.js +186 -0
- package/dist/components/ui/timeline.d.ts.map +1 -1
- package/dist/components/ui/timeline.js +10 -1
- package/dist/components/ui/toast.d.ts +32 -10
- package/dist/components/ui/toast.d.ts.map +1 -1
- package/dist/components/ui/toast.js +150 -47
- package/dist/components/ui/toggle-group.d.ts +14 -5
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.js +15 -1
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +9 -1
- package/dist/components/ui/tree.d.ts +8 -0
- package/dist/components/ui/tree.d.ts.map +1 -1
- package/dist/components/ui/tree.js +92 -13
- package/dist/components/ui/video-player.d.ts +236 -0
- package/dist/components/ui/video-player.d.ts.map +1 -0
- package/dist/components/ui/video-player.js +72 -0
- package/dist/fonts/inter-latin-400-italic.woff2 +0 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -0
- package/dist/lib/utils.d.ts +29 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +35 -0
- package/dist/live/index.d.ts +10 -3
- package/dist/live/index.d.ts.map +1 -1
- package/dist/live/index.js +12 -3
- package/dist/live/run-stream-01/run-stream.js +4 -4
- package/dist/live/tool-ledger-01/index.d.ts +3 -0
- package/dist/live/tool-ledger-01/index.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/index.js +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts +348 -0
- package/dist/live/tool-ledger-01/tool-ledger.d.ts.map +1 -0
- package/dist/live/tool-ledger-01/tool-ledger.js +245 -0
- package/dist/pages/about-page/index.d.ts +306 -0
- package/dist/pages/about-page/index.d.ts.map +1 -0
- package/dist/pages/about-page/index.js +161 -0
- package/dist/pages/careers-page/index.d.ts +288 -0
- package/dist/pages/careers-page/index.d.ts.map +1 -0
- package/dist/pages/careers-page/index.js +182 -0
- package/dist/pages/changelog-page/index.d.ts +255 -0
- package/dist/pages/changelog-page/index.d.ts.map +1 -0
- package/dist/pages/changelog-page/index.js +86 -0
- package/dist/pages/contact-page/index.d.ts +261 -0
- package/dist/pages/contact-page/index.d.ts.map +1 -0
- package/dist/pages/contact-page/index.js +136 -0
- package/dist/pages/docs-shell/docs-shell.d.ts +8 -0
- package/dist/pages/docs-shell/docs-shell.d.ts.map +1 -1
- package/dist/pages/docs-shell/docs-shell.js +24 -7
- package/dist/pages/error-page/index.d.ts +188 -0
- package/dist/pages/error-page/index.d.ts.map +1 -0
- package/dist/pages/error-page/index.js +98 -0
- package/dist/pages/index.d.ts +10 -0
- package/dist/pages/index.d.ts.map +1 -1
- package/dist/pages/index.js +14 -0
- package/dist/pages/legal-page/index.d.ts +194 -0
- package/dist/pages/legal-page/index.d.ts.map +1 -0
- package/dist/pages/legal-page/index.js +99 -0
- package/dist/pages/onboarding-page/index.d.ts +199 -0
- package/dist/pages/onboarding-page/index.d.ts.map +1 -0
- package/dist/pages/onboarding-page/index.js +71 -0
- package/dist/pages/pricing-page/index.d.ts +286 -0
- package/dist/pages/pricing-page/index.d.ts.map +1 -0
- package/dist/pages/pricing-page/index.js +139 -0
- package/dist/pages/search-page/index.d.ts +305 -0
- package/dist/pages/search-page/index.d.ts.map +1 -0
- package/dist/pages/search-page/index.js +142 -0
- package/dist/pages/status-page/index.d.ts +366 -0
- package/dist/pages/status-page/index.d.ts.map +1 -0
- package/dist/pages/status-page/index.js +136 -0
- package/dist/styles.css +1003 -55
- package/package.json +9 -3
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/** The props the Mini calendar accepts. */
|
|
2
|
+
export interface MiniCalendarProps {
|
|
3
|
+
/**
|
|
4
|
+
* The chosen date, or nothing when the reader has not chosen one.
|
|
5
|
+
*
|
|
6
|
+
* Pass it and the grid is controlled, which is what a filter panel wants: the
|
|
7
|
+
* panel already holds the date the page is filtered by, and a second copy of it
|
|
8
|
+
* inside the grid is a second thing to keep in step.
|
|
9
|
+
*/
|
|
10
|
+
selected?: Date;
|
|
11
|
+
/** Called with the date the reader chooses. Never called for a date outside `min` and `max`. */
|
|
12
|
+
onSelect?: (date: Date) => void;
|
|
13
|
+
/**
|
|
14
|
+
* The month on show.
|
|
15
|
+
*
|
|
16
|
+
* Pass it with `onMonthChange` to control the month, or pass `defaultMonth` to
|
|
17
|
+
* let the grid keep it. A controlled month with no `onMonthChange` would draw
|
|
18
|
+
* two paging controls that cannot page, so the two halves are documented
|
|
19
|
+
* together rather than separately.
|
|
20
|
+
*/
|
|
21
|
+
month?: Date;
|
|
22
|
+
/** The month the grid opens on, for a grid that keeps its own. */
|
|
23
|
+
defaultMonth?: Date;
|
|
24
|
+
/** Called with the first day of the month when the reader pages. */
|
|
25
|
+
onMonthChange?: (month: Date) => void;
|
|
26
|
+
/**
|
|
27
|
+
* The locale the month name, the weekday headings and the day numbers are
|
|
28
|
+
* written in.
|
|
29
|
+
*
|
|
30
|
+
* Omit it and the runtime's own locale is used. It is one tag, not a table of
|
|
31
|
+
* words, which is the point: this Component never holds a month name, a
|
|
32
|
+
* weekday name or a digit set, so there is nothing here to translate.
|
|
33
|
+
*/
|
|
34
|
+
locale?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Which day the reader's week starts on, as `Date.prototype.getDay()` numbers
|
|
37
|
+
* it, so `0` is Sunday and `1` is Monday.
|
|
38
|
+
*
|
|
39
|
+
* Defaults to Sunday because that is what `getDay` returns. Prism asks rather
|
|
40
|
+
* than infers: the platform can answer it for a locale through
|
|
41
|
+
* `new Intl.Locale(locale).getWeekInfo().firstDay`, and where that is not
|
|
42
|
+
* available a grid that guesses Sunday is wrong in a Monday-first country with
|
|
43
|
+
* nothing on screen to say so. The caller usually already knows, because their
|
|
44
|
+
* own date handling had to.
|
|
45
|
+
*/
|
|
46
|
+
weekStartsOn?: 0 | 1;
|
|
47
|
+
/** The accessible name of the control that steps back one month. */
|
|
48
|
+
previousLabel: string;
|
|
49
|
+
/** The accessible name of the control that steps forward one month. */
|
|
50
|
+
nextLabel: string;
|
|
51
|
+
/**
|
|
52
|
+
* The accessible name of the grid, saying which question it answers.
|
|
53
|
+
*
|
|
54
|
+
* Required. A grid named "Calendar" is a grid that answers no question, and a
|
|
55
|
+
* filter panel with two of them gives a reader two identical names to choose
|
|
56
|
+
* between. Name the filter: "Booked from", "Delivery date".
|
|
57
|
+
*/
|
|
58
|
+
label: string;
|
|
59
|
+
/**
|
|
60
|
+
* The earliest date that may be chosen.
|
|
61
|
+
*
|
|
62
|
+
* Days before it are still drawn, still reachable and still announced, and
|
|
63
|
+
* refuse to be chosen. A day that is simply missing is indistinguishable from a
|
|
64
|
+
* grid that failed to render that week, so the shape of the month never
|
|
65
|
+
* changes. Say why in text beside the grid.
|
|
66
|
+
*/
|
|
67
|
+
min?: Date;
|
|
68
|
+
/** The latest date that may be chosen. Held to the same rule as `min`. */
|
|
69
|
+
max?: Date;
|
|
70
|
+
/** Layout only. */
|
|
71
|
+
className?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A compact month grid for placing in a panel, a filter list or a sidebar.
|
|
75
|
+
*
|
|
76
|
+
* **It is the small sibling of `Calendar`, and the difference is where it
|
|
77
|
+
* lives.** `Calendar` is a full control: it is drawn inside a popover, it owns
|
|
78
|
+
* the roving tab stop for a form, and it is what a `DatePicker` opens. This one
|
|
79
|
+
* is a grid you place. It owns no popover and no trigger, because the two things
|
|
80
|
+
* a trigger needs, a field to sit in and a place to open, are the caller's in a
|
|
81
|
+
* filter panel and a sidebar, and a Component that drew its own would be a
|
|
82
|
+
* control inside a control. Everything else is deliberately the same: six rows, a
|
|
83
|
+
* roving tab stop, arrows that cross a month boundary, and a rule about what a
|
|
84
|
+
* date outside the range means. Two date grids in one product that behave
|
|
85
|
+
* differently is the failure this Component exists to prevent, so the keyboard
|
|
86
|
+
* model is `Calendar`'s rather than a second answer written for a smaller box.
|
|
87
|
+
*
|
|
88
|
+
* **Every name and every number comes from `Intl` and from `locale`, and there
|
|
89
|
+
* is no array of weekday names anywhere in this file.** A calendar whose weekday
|
|
90
|
+
* row is a literal array of English abbreviations is wrong in every locale the
|
|
91
|
+
* caller has, in a way no screenshot of the control shows, and it is the most
|
|
92
|
+
* common single defect in a date control: it is the shape every tutorial and
|
|
93
|
+
* every hand-rolled grid arrives at, because the seven names are the first thing
|
|
94
|
+
* a grid needs and the seventh thing anybody looks up. So the headings are
|
|
95
|
+
* formatted from the first week's own cells, which means the heading over a
|
|
96
|
+
* column is the weekday that column actually holds, and the month name and the
|
|
97
|
+
* day numbers come from the same locale. The caller's only job is a locale tag.
|
|
98
|
+
*
|
|
99
|
+
* **The visible heading is short and the full weekday rides on `abbr`.** A
|
|
100
|
+
* seven-column grid has no room for "Wednesday", and a truncated weekday name is
|
|
101
|
+
* a weekday a reader has to guess at. The short form is what is drawn and the
|
|
102
|
+
* long form is what the header cell names itself with, so the abbreviation a
|
|
103
|
+
* reader sees and the word a screen reader says are both right.
|
|
104
|
+
*
|
|
105
|
+
* **The table is the structure and the buttons are the controls.** A grid whose
|
|
106
|
+
* cells are the focusable elements is a grid of divs that a reader has to be told
|
|
107
|
+
* is operable, and the gate on focus indicators is the gate that says so. Here the
|
|
108
|
+
* table carries the rows, the columns, the weekday associations and the caption,
|
|
109
|
+
* so the screen reader's structure is the table, and each day is a `<button>`
|
|
110
|
+
* inside its cell, which is a control the platform already knows how to press
|
|
111
|
+
* with Enter and Space and how to focus with a ring. The cell carries
|
|
112
|
+
* `aria-selected` because that is the only place the attribute is valid, and a
|
|
113
|
+
* chosen day announced as an ordinary cell has told the reader nothing about
|
|
114
|
+
* whether it is the one they picked.
|
|
115
|
+
*
|
|
116
|
+
* **The month name is a `<caption>` and the paging controls live inside it.** A
|
|
117
|
+
* caption is the one place in a table that is allowed to hold flow content, and
|
|
118
|
+
* putting the month name and its two controls there means the month is named by
|
|
119
|
+
* the table's own structure rather than by a heading that happens to sit above
|
|
120
|
+
* it. The alternative was a header row outside the table, which reads fine and
|
|
121
|
+
* leaves the table unnamed.
|
|
122
|
+
*
|
|
123
|
+
* **The grid is always six weeks tall and a day outside the range is still
|
|
124
|
+
* there.** Both are the same decision. A month that needs five rows and one that
|
|
125
|
+
* needs six would otherwise resize as the reader pages, which moves the dates
|
|
126
|
+
* under the pointer: a reader who aims at the 24th after reading its position in
|
|
127
|
+
* a five-row month clicks the 31st in a six-row one. So the edge cells are padded
|
|
128
|
+
* and the out-of-range days are drawn, dimmed, reachable and refusing, because a
|
|
129
|
+
* day that is simply missing is indistinguishable from a grid that failed to
|
|
130
|
+
* render that week, and a reader who cannot land on it cannot tell a sold-out
|
|
131
|
+
* day from a bug. The costs are paid visibly: a short month carries one empty row
|
|
132
|
+
* and an in-range filter still shows a month of greyed days.
|
|
133
|
+
*
|
|
134
|
+
* **The month is marked today from the renderer's clock.** That is the same
|
|
135
|
+
* choice `DatePicker` makes and it has the same cost: a server render and a
|
|
136
|
+
* hydration that straddle midnight disagree about which day is today, and React
|
|
137
|
+
* reports the attribute. It is one attribute on one cell, and the alternative
|
|
138
|
+
* was a prop every caller of a small grid would have to pass to avoid a warning
|
|
139
|
+
* they would never see.
|
|
140
|
+
*/
|
|
141
|
+
declare function MiniCalendar({ selected, onSelect, month, defaultMonth, onMonthChange, locale, weekStartsOn, previousLabel, nextLabel, label, min, max, className, }: MiniCalendarProps): import("react").JSX.Element;
|
|
142
|
+
export { MiniCalendar };
|
|
143
|
+
//# sourceMappingURL=mini-calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mini-calendar.d.ts","sourceRoot":"","sources":["../../../src/components/ui/mini-calendar.tsx"],"names":[],"mappings":"AAOA,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,gGAAgG;IAChG,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,IAAI,CAAA;IACZ,kEAAkE;IAClE,YAAY,CAAC,EAAE,IAAI,CAAA;IACnB,oEAAoE;IACpE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,IAAI,CAAA;IACrC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;IACpB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,mBAAmB;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAuDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,iBAAS,YAAY,CAAC,EACpB,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,aAAa,EACb,MAAM,EACN,YAAgB,EAChB,aAAa,EACb,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,EACH,SAAS,GACV,EAAE,iBAAiB,+BA6QnB;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { ChevronLeftIcon, ChevronRightIcon } from 'lucide-react';
|
|
4
|
+
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
5
|
+
import { cn } from '../../lib/utils.js';
|
|
6
|
+
/** `YYYY-MM-DD` in local time, which is the only key a date grid needs. */
|
|
7
|
+
const iso = (date) => `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
|
|
8
|
+
const addDays = (date, days) => new Date(date.getFullYear(), date.getMonth(), date.getDate() + days);
|
|
9
|
+
const startOfMonth = (date) => new Date(date.getFullYear(), date.getMonth(), 1);
|
|
10
|
+
const sameMonth = (a, b) => a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
11
|
+
const sameDay = (a, b) => iso(a) === iso(b);
|
|
12
|
+
/** Midnight local, so a range compares days rather than clock times. */
|
|
13
|
+
const startOfDay = (date) => new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime();
|
|
14
|
+
/**
|
|
15
|
+
* The same day of the month, `months` along, clamped to the month it lands in.
|
|
16
|
+
*
|
|
17
|
+
* Stepping back from the 31st lands on the 30th, the 28th or the 29th rather than
|
|
18
|
+
* rolling into the month before, because a roll would move the focus to a month
|
|
19
|
+
* the reader did not ask for and the date would be wrong by a month with nothing
|
|
20
|
+
* on screen to say so.
|
|
21
|
+
*/
|
|
22
|
+
const shiftMonth = (date, months) => {
|
|
23
|
+
const target = new Date(date.getFullYear(), date.getMonth() + months, 1);
|
|
24
|
+
const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();
|
|
25
|
+
return new Date(target.getFullYear(), target.getMonth(), Math.min(date.getDate(), lastDay));
|
|
26
|
+
};
|
|
27
|
+
/** A day cell, and nothing about which day is in it. */
|
|
28
|
+
const DAY_CELL = 'text-foreground hover:bg-accent hover:text-accent-foreground flex h-8 w-full cursor-pointer items-center justify-center rounded-md text-sm tabular-nums outline-none transition-colors duration-fast ease-out pointer-coarse:h-11 focus-visible:ring-ring focus-visible:ring-[3px]';
|
|
29
|
+
/**
|
|
30
|
+
* How a day cell looks, and why `today` sets no ink.
|
|
31
|
+
*
|
|
32
|
+
* `selected` states a fill and therefore states its own ink. `today` sets none,
|
|
33
|
+
* so it states none: it is a ring inside the cell and a weight, and a ring has no
|
|
34
|
+
* foreground to keep in step with the two states above it.
|
|
35
|
+
*/
|
|
36
|
+
const DAY_STATE = {
|
|
37
|
+
selected: 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground font-semibold',
|
|
38
|
+
today: 'ring-ring ring-1 ring-inset font-semibold',
|
|
39
|
+
unavailable: 'text-muted-foreground aria-disabled:hover:bg-transparent',
|
|
40
|
+
};
|
|
41
|
+
/** The two paging controls, which are controls and get a ring of their own. */
|
|
42
|
+
const NAV_CONTROL = 'text-muted-foreground hover:bg-accent hover:text-accent-foreground inline-flex size-8 shrink-0 items-center justify-center rounded-md outline-none transition-colors duration-fast ease-out pointer-coarse:size-11 focus-visible:ring-ring focus-visible:ring-[3px]';
|
|
43
|
+
/**
|
|
44
|
+
* A compact month grid for placing in a panel, a filter list or a sidebar.
|
|
45
|
+
*
|
|
46
|
+
* **It is the small sibling of `Calendar`, and the difference is where it
|
|
47
|
+
* lives.** `Calendar` is a full control: it is drawn inside a popover, it owns
|
|
48
|
+
* the roving tab stop for a form, and it is what a `DatePicker` opens. This one
|
|
49
|
+
* is a grid you place. It owns no popover and no trigger, because the two things
|
|
50
|
+
* a trigger needs, a field to sit in and a place to open, are the caller's in a
|
|
51
|
+
* filter panel and a sidebar, and a Component that drew its own would be a
|
|
52
|
+
* control inside a control. Everything else is deliberately the same: six rows, a
|
|
53
|
+
* roving tab stop, arrows that cross a month boundary, and a rule about what a
|
|
54
|
+
* date outside the range means. Two date grids in one product that behave
|
|
55
|
+
* differently is the failure this Component exists to prevent, so the keyboard
|
|
56
|
+
* model is `Calendar`'s rather than a second answer written for a smaller box.
|
|
57
|
+
*
|
|
58
|
+
* **Every name and every number comes from `Intl` and from `locale`, and there
|
|
59
|
+
* is no array of weekday names anywhere in this file.** A calendar whose weekday
|
|
60
|
+
* row is a literal array of English abbreviations is wrong in every locale the
|
|
61
|
+
* caller has, in a way no screenshot of the control shows, and it is the most
|
|
62
|
+
* common single defect in a date control: it is the shape every tutorial and
|
|
63
|
+
* every hand-rolled grid arrives at, because the seven names are the first thing
|
|
64
|
+
* a grid needs and the seventh thing anybody looks up. So the headings are
|
|
65
|
+
* formatted from the first week's own cells, which means the heading over a
|
|
66
|
+
* column is the weekday that column actually holds, and the month name and the
|
|
67
|
+
* day numbers come from the same locale. The caller's only job is a locale tag.
|
|
68
|
+
*
|
|
69
|
+
* **The visible heading is short and the full weekday rides on `abbr`.** A
|
|
70
|
+
* seven-column grid has no room for "Wednesday", and a truncated weekday name is
|
|
71
|
+
* a weekday a reader has to guess at. The short form is what is drawn and the
|
|
72
|
+
* long form is what the header cell names itself with, so the abbreviation a
|
|
73
|
+
* reader sees and the word a screen reader says are both right.
|
|
74
|
+
*
|
|
75
|
+
* **The table is the structure and the buttons are the controls.** A grid whose
|
|
76
|
+
* cells are the focusable elements is a grid of divs that a reader has to be told
|
|
77
|
+
* is operable, and the gate on focus indicators is the gate that says so. Here the
|
|
78
|
+
* table carries the rows, the columns, the weekday associations and the caption,
|
|
79
|
+
* so the screen reader's structure is the table, and each day is a `<button>`
|
|
80
|
+
* inside its cell, which is a control the platform already knows how to press
|
|
81
|
+
* with Enter and Space and how to focus with a ring. The cell carries
|
|
82
|
+
* `aria-selected` because that is the only place the attribute is valid, and a
|
|
83
|
+
* chosen day announced as an ordinary cell has told the reader nothing about
|
|
84
|
+
* whether it is the one they picked.
|
|
85
|
+
*
|
|
86
|
+
* **The month name is a `<caption>` and the paging controls live inside it.** A
|
|
87
|
+
* caption is the one place in a table that is allowed to hold flow content, and
|
|
88
|
+
* putting the month name and its two controls there means the month is named by
|
|
89
|
+
* the table's own structure rather than by a heading that happens to sit above
|
|
90
|
+
* it. The alternative was a header row outside the table, which reads fine and
|
|
91
|
+
* leaves the table unnamed.
|
|
92
|
+
*
|
|
93
|
+
* **The grid is always six weeks tall and a day outside the range is still
|
|
94
|
+
* there.** Both are the same decision. A month that needs five rows and one that
|
|
95
|
+
* needs six would otherwise resize as the reader pages, which moves the dates
|
|
96
|
+
* under the pointer: a reader who aims at the 24th after reading its position in
|
|
97
|
+
* a five-row month clicks the 31st in a six-row one. So the edge cells are padded
|
|
98
|
+
* and the out-of-range days are drawn, dimmed, reachable and refusing, because a
|
|
99
|
+
* day that is simply missing is indistinguishable from a grid that failed to
|
|
100
|
+
* render that week, and a reader who cannot land on it cannot tell a sold-out
|
|
101
|
+
* day from a bug. The costs are paid visibly: a short month carries one empty row
|
|
102
|
+
* and an in-range filter still shows a month of greyed days.
|
|
103
|
+
*
|
|
104
|
+
* **The month is marked today from the renderer's clock.** That is the same
|
|
105
|
+
* choice `DatePicker` makes and it has the same cost: a server render and a
|
|
106
|
+
* hydration that straddle midnight disagree about which day is today, and React
|
|
107
|
+
* reports the attribute. It is one attribute on one cell, and the alternative
|
|
108
|
+
* was a prop every caller of a small grid would have to pass to avoid a warning
|
|
109
|
+
* they would never see.
|
|
110
|
+
*/
|
|
111
|
+
function MiniCalendar({ selected, onSelect, month, defaultMonth, onMonthChange, locale, weekStartsOn = 0, previousLabel, nextLabel, label, min, max, className, }) {
|
|
112
|
+
const today = new Date();
|
|
113
|
+
const [ownSelected, setOwnSelected] = useState(undefined);
|
|
114
|
+
const [ownMonth, setOwnMonth] = useState(() => startOfMonth(defaultMonth ?? selected ?? today));
|
|
115
|
+
// `null` means "wherever the reader would expect to land", derived rather than
|
|
116
|
+
// stored, so a change to `selected` or `month` moves the tab stop without this
|
|
117
|
+
// Component having to watch for it.
|
|
118
|
+
const [movedTo, setMovedTo] = useState(null);
|
|
119
|
+
const gridRef = useRef(null);
|
|
120
|
+
const shown = month === undefined ? ownMonth : startOfMonth(month);
|
|
121
|
+
const chosen = selected === undefined ? ownSelected : selected;
|
|
122
|
+
const monthText = useMemo(() => new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric' }).format(shown), [locale, shown]);
|
|
123
|
+
const dayText = useMemo(() => new Intl.DateTimeFormat(locale, { day: 'numeric' }), [locale]);
|
|
124
|
+
/** Six weeks from the reader's first day, on or before the first of the month. */
|
|
125
|
+
const cells = useMemo(() => {
|
|
126
|
+
const first = startOfMonth(shown);
|
|
127
|
+
const offset = (first.getDay() - weekStartsOn + 7) % 7;
|
|
128
|
+
return Array.from({ length: 42 }, (_, index) => addDays(addDays(first, -offset), index));
|
|
129
|
+
}, [shown, weekStartsOn]);
|
|
130
|
+
/**
|
|
131
|
+
* The seven headings, formatted from the first week's own cells.
|
|
132
|
+
*
|
|
133
|
+
* From the cells and not from a reference date, because a cell in column `n` of
|
|
134
|
+
* the first row is by construction the weekday that column holds, so a heading
|
|
135
|
+
* cannot drift from the column it sits over the way a computed weekday index
|
|
136
|
+
* can. There is no table of weekday names in this file to drift in the first
|
|
137
|
+
* place.
|
|
138
|
+
*/
|
|
139
|
+
const headings = useMemo(() => {
|
|
140
|
+
const short = new Intl.DateTimeFormat(locale, { weekday: 'short' });
|
|
141
|
+
const long = new Intl.DateTimeFormat(locale, { weekday: 'long' });
|
|
142
|
+
return cells.slice(0, 7).map((cell) => ({ short: short.format(cell), long: long.format(cell) }));
|
|
143
|
+
}, [cells, locale]);
|
|
144
|
+
/** Where a reader who tabs into the grid lands: the choice, else today, else the first. */
|
|
145
|
+
const landing = chosen !== undefined && sameMonth(chosen, shown)
|
|
146
|
+
? chosen
|
|
147
|
+
: sameMonth(today, shown)
|
|
148
|
+
? today
|
|
149
|
+
: startOfMonth(shown);
|
|
150
|
+
const focused = movedTo !== null && sameMonth(movedTo, shown) ? movedTo : landing;
|
|
151
|
+
const focusedIso = iso(focused);
|
|
152
|
+
const chosenIso = chosen === undefined ? null : iso(chosen);
|
|
153
|
+
const todayIso = iso(today);
|
|
154
|
+
const isUnavailable = (date) => {
|
|
155
|
+
const at = startOfDay(date);
|
|
156
|
+
if (min !== undefined && at < startOfDay(min))
|
|
157
|
+
return true;
|
|
158
|
+
if (max !== undefined && at > startOfDay(max))
|
|
159
|
+
return true;
|
|
160
|
+
return false;
|
|
161
|
+
};
|
|
162
|
+
/** Focus follows a move, because a move that changed month draws a new cell. */
|
|
163
|
+
useEffect(() => {
|
|
164
|
+
if (movedTo === null)
|
|
165
|
+
return;
|
|
166
|
+
gridRef.current?.querySelector(`[data-date="${iso(movedTo)}"]`)?.focus();
|
|
167
|
+
}, [movedTo, shown]);
|
|
168
|
+
const move = (next) => {
|
|
169
|
+
if (month === undefined)
|
|
170
|
+
setOwnMonth(next);
|
|
171
|
+
onMonthChange?.(next);
|
|
172
|
+
};
|
|
173
|
+
const choose = (date) => {
|
|
174
|
+
setMovedTo(date);
|
|
175
|
+
if (isUnavailable(date))
|
|
176
|
+
return;
|
|
177
|
+
if (selected === undefined)
|
|
178
|
+
setOwnSelected(date);
|
|
179
|
+
onSelect?.(date);
|
|
180
|
+
};
|
|
181
|
+
/** Moves the tab stop, and the month on show when the move crosses a month. */
|
|
182
|
+
const goTo = (date) => {
|
|
183
|
+
setMovedTo(date);
|
|
184
|
+
if (!sameMonth(date, shown))
|
|
185
|
+
move(startOfMonth(date));
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* The keys on one day.
|
|
189
|
+
*
|
|
190
|
+
* The date comes from the cell the event fired on rather than from state,
|
|
191
|
+
* because a reader may have arrived at a cell by Tab or by a click and the tab
|
|
192
|
+
* stop is this Component's own decision. Deriving the move from state would
|
|
193
|
+
* step from wherever the tab stop happened to be, which is a cell the reader is
|
|
194
|
+
* not on.
|
|
195
|
+
*/
|
|
196
|
+
const onDayKeyDown = (event, date) => {
|
|
197
|
+
const row = Math.floor(cells.findIndex((entry) => sameDay(entry, date)) / 7);
|
|
198
|
+
const first = cells[row * 7];
|
|
199
|
+
const last = first === undefined ? null : addDays(first, 6);
|
|
200
|
+
// Enter by `key`, Space by `code`. The space bar's `key` has been reported as
|
|
201
|
+
// a space, as "Spacebar" and as "Space" by different engines over the years,
|
|
202
|
+
// and its `code` has been the same in all of them.
|
|
203
|
+
if (event.key === 'Enter' || event.code === 'Space') {
|
|
204
|
+
event.preventDefault();
|
|
205
|
+
choose(date);
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
switch (event.key) {
|
|
209
|
+
case 'ArrowLeft':
|
|
210
|
+
event.preventDefault();
|
|
211
|
+
goTo(addDays(date, -1));
|
|
212
|
+
return;
|
|
213
|
+
case 'ArrowRight':
|
|
214
|
+
event.preventDefault();
|
|
215
|
+
goTo(addDays(date, 1));
|
|
216
|
+
return;
|
|
217
|
+
case 'ArrowUp':
|
|
218
|
+
event.preventDefault();
|
|
219
|
+
goTo(addDays(date, -7));
|
|
220
|
+
return;
|
|
221
|
+
case 'ArrowDown':
|
|
222
|
+
event.preventDefault();
|
|
223
|
+
goTo(addDays(date, 7));
|
|
224
|
+
return;
|
|
225
|
+
case 'Home':
|
|
226
|
+
event.preventDefault();
|
|
227
|
+
if (first !== undefined)
|
|
228
|
+
goTo(first);
|
|
229
|
+
return;
|
|
230
|
+
case 'End':
|
|
231
|
+
event.preventDefault();
|
|
232
|
+
if (last !== null)
|
|
233
|
+
goTo(last);
|
|
234
|
+
return;
|
|
235
|
+
case 'PageUp':
|
|
236
|
+
event.preventDefault();
|
|
237
|
+
goTo(shiftMonth(date, event.shiftKey ? -12 : -1));
|
|
238
|
+
return;
|
|
239
|
+
case 'PageDown':
|
|
240
|
+
event.preventDefault();
|
|
241
|
+
goTo(shiftMonth(date, event.shiftKey ? 12 : 1));
|
|
242
|
+
return;
|
|
243
|
+
default:
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
return (_jsx("div", { ref: gridRef, "data-slot": "mini-calendar", className: cn('bg-card text-card-foreground w-64 rounded-md border p-3 shadow-sm', className), children: _jsxs("table", { "data-slot": "mini-calendar-grid", role: "grid", "aria-label": label, className: "w-full border-collapse tabular-nums", children: [_jsx("caption", { "data-slot": "mini-calendar-caption", className: "mb-2", children: _jsxs("span", { className: "flex items-center justify-between gap-1", children: [_jsx("button", { type: "button", "data-slot": "mini-calendar-previous", "aria-label": previousLabel, onClick: () => move(shiftMonth(shown, -1)), className: NAV_CONTROL, children: _jsx(ChevronLeftIcon, { className: "size-4", "aria-hidden": "true" }) }), _jsx("span", { "data-slot": "mini-calendar-month", "aria-live": "polite", className: "text-foreground text-sm font-medium", children: monthText }), _jsx("button", { type: "button", "data-slot": "mini-calendar-next", "aria-label": nextLabel, onClick: () => move(shiftMonth(shown, 1)), className: NAV_CONTROL, children: _jsx(ChevronRightIcon, { className: "size-4", "aria-hidden": "true" }) })] }) }), _jsx("thead", { children: _jsx("tr", { children: headings.map((heading) => (_jsx("th", { scope: "col", abbr: heading.long, "data-slot": "mini-calendar-weekday", className: "text-muted-foreground flex h-8 items-center justify-center text-xs font-medium", children: heading.short }, heading.long))) }) }), _jsx("tbody", { children: Array.from({ length: 6 }, (_, row) => (_jsx("tr", { children: cells.slice(row * 7, row * 7 + 7).map((date) => {
|
|
247
|
+
const key = iso(date);
|
|
248
|
+
if (!sameMonth(date, shown)) {
|
|
249
|
+
// The cells that pad the month out. Hidden from the accessibility
|
|
250
|
+
// tree rather than filled with the neighbouring month's dates,
|
|
251
|
+
// because a date from another month drawn in this grid is a date
|
|
252
|
+
// the reader did not come for.
|
|
253
|
+
return _jsx("td", { role: "gridcell", "aria-hidden": "true", className: "p-0" }, key);
|
|
254
|
+
}
|
|
255
|
+
const unavailable = isUnavailable(date);
|
|
256
|
+
const isSelected = key === chosenIso;
|
|
257
|
+
const isToday = key === todayIso;
|
|
258
|
+
return (_jsx("td", { role: "gridcell", "data-slot": "mini-calendar-cell", "aria-selected": isSelected, className: "p-0", children: _jsx("button", { type: "button", "data-slot": "mini-calendar-day", "data-date": key, tabIndex: key === focusedIso ? 0 : -1, "aria-current": isToday ? 'date' : undefined, "aria-disabled": unavailable || undefined, onClick: () => choose(date), onKeyDown: (event) => onDayKeyDown(event, date), className: cn(DAY_CELL, unavailable && DAY_STATE.unavailable, isToday && !isSelected && DAY_STATE.today, isSelected && DAY_STATE.selected), children: dayText.format(date) }) }, key));
|
|
259
|
+
}) }, row))) })] }) }));
|
|
260
|
+
}
|
|
261
|
+
export { MiniCalendar };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
/** The props a `ModeToggle` takes. */
|
|
3
|
+
export interface ModeToggleProps extends Omit<ComponentProps<'button'>, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* The control's accessible name.
|
|
6
|
+
*
|
|
7
|
+
* Required, and a `string` rather than a node because it is written into
|
|
8
|
+
* `aria-label` and an accessible name is a string. It names the mode the button
|
|
9
|
+
* moves to rather than the mode the page is in, so the words and the icon
|
|
10
|
+
* beside them always say the same thing. Three of the four products in this
|
|
11
|
+
* family phrase it the other way round, which is a caller's sentence and not a
|
|
12
|
+
* Component's, and the prop is where that difference goes.
|
|
13
|
+
*/
|
|
14
|
+
label: string;
|
|
15
|
+
/**
|
|
16
|
+
* The control's height, forwarded to `Button`.
|
|
17
|
+
*
|
|
18
|
+
* `sm` and `md` and nothing else, because those are the two heights a site
|
|
19
|
+
* header and a settings row actually need. The underlying `Button` also has an
|
|
20
|
+
* icon size, which is refused here: an icon-only control with a label's
|
|
21
|
+
* proportions is what this is, and the icon size draws a square, which shows in
|
|
22
|
+
* the corner radius a reader sees.
|
|
23
|
+
*/
|
|
24
|
+
size?: 'sm' | 'md';
|
|
25
|
+
/** Layout only, exactly as on every Component. */
|
|
26
|
+
className?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The control that moves the reader between the light and the dark mode.
|
|
30
|
+
*
|
|
31
|
+
* **This is the one Component in the library that needs `PrismProvider` above it,
|
|
32
|
+
* and the reason is that it is the only one that writes the theme rather than
|
|
33
|
+
* reading it.** Every other Component reaches its colours through the cascade: the
|
|
34
|
+
* pack is an attribute on an ancestor and the mode is a class, and a Component
|
|
35
|
+
* that draws a `bg-primary` has drawn the right thing in every pack without
|
|
36
|
+
* knowing which pack it is in. This one cannot work that way, because moving
|
|
37
|
+
* between the modes means writing `.dark` on the document element, and the
|
|
38
|
+
* document element is not a thing a Component may reach for on its own. The
|
|
39
|
+
* provider is that permission, and it is optional everywhere else in Prism, which
|
|
40
|
+
* is why this is the only Component with a hard dependency on it. Mounted without
|
|
41
|
+
* one, `usePrismTheme` throws, and that is the intended behaviour rather than a
|
|
42
|
+
* silent no-op: a control that looks like it switches the mode and does nothing
|
|
43
|
+
* is worse than a page that says the provider is missing.
|
|
44
|
+
*
|
|
45
|
+
* **It renders one button and not a group, and a two-button group here is a
|
|
46
|
+
* segmented control doing a switch's job.** The obvious alternative is a pair of
|
|
47
|
+
* buttons, one per mode, with the current one marked selected. It is worse three
|
|
48
|
+
* separate ways. It takes two tab stops where the action needs one, so a reader
|
|
49
|
+
* tabbing along a header pays for a second stop to learn a thing the first stop
|
|
50
|
+
* already said. It announces a radio group, which changes what the arrow keys do
|
|
51
|
+
* inside it, so a reader who has learned the row they are in has to learn another
|
|
52
|
+
* model in the row above it. And it is the wrong role: two options where one is
|
|
53
|
+
* always selected and choosing either one leaves the page in the same state as
|
|
54
|
+
* choosing the other is a switch, and `toggle-group.tsx` is where a switch with
|
|
55
|
+
* two labelled members belongs, with the roving tab stop and the pressed set it
|
|
56
|
+
* already implements. A `Switch` is the other candidate and is refused for a
|
|
57
|
+
* different reason: a switch says "this setting is on" and a mode is not a
|
|
58
|
+
* setting, it is which of two renderings the page is using right now.
|
|
59
|
+
*
|
|
60
|
+
* **The icon is the destination and the name is the destination, so the two can
|
|
61
|
+
* never contradict each other.** A page in light mode shows a moon, because
|
|
62
|
+
* pressing it makes the page dark. The alternative, showing the current mode, puts
|
|
63
|
+
* a sun on a light page, which reads as a control that is already on, and a reader
|
|
64
|
+
* has to reconcile the picture with the state before they can use it. The icon is
|
|
65
|
+
* swapped, not animated between: the Motion law refuses a transition whose only
|
|
66
|
+
* purpose is decoration, and a sun morphing into a moon is decoration on a
|
|
67
|
+
* control that is about to be re-rendered with the other one anyway. So there is
|
|
68
|
+
* no transition here at all, and the swap is a repaint.
|
|
69
|
+
*
|
|
70
|
+
* **There is no `aria-pressed`, and that is a decision with a cost.** A pressed
|
|
71
|
+
* state describes the current mode, and the name describes the mode the press
|
|
72
|
+
* produces, so a pressed control named for its destination announces the opposite
|
|
73
|
+
* of what it is about: a screen reader reads "Switch to dark mode, pressed" on a
|
|
74
|
+
* page that is already dark. Since this Component takes one name rather than one
|
|
75
|
+
* per mode, the name cannot describe the current mode, and the honest reading of
|
|
76
|
+
* what is left is a button that performs an action. The cost is that a reader
|
|
77
|
+
* using a screen reader cannot ask the control what the page is in; they read the
|
|
78
|
+
* mode from the page, and a caller who would rather the control carried the state
|
|
79
|
+
* passes a name for the mode itself and mounts their own control, which is a real
|
|
80
|
+
* answer this Component is declining to give.
|
|
81
|
+
*
|
|
82
|
+
* **A reader who never mounts this is not left without the mode.** The mode on the
|
|
83
|
+
* page comes from the two document attributes, `data-pack` and `.dark`, and the
|
|
84
|
+
* blocking script in the head resolves them before first paint from a stored value
|
|
85
|
+
* or from what the server rendered. That is the declarative path, it is
|
|
86
|
+
* SSR-safe, and it is the one that works with no JavaScript at all. So this
|
|
87
|
+
* Component is a convenience layered on top of a mechanism that already works, not
|
|
88
|
+
* the mechanism, and a consumer who does not want a client Component in their
|
|
89
|
+
* layout can leave this one out: they put the attributes on their root element
|
|
90
|
+
* and write a plain button in their own code that calls `setMode` from the
|
|
91
|
+
* provider's hook. That is the reason the honest dependency is stated rather than
|
|
92
|
+
* hidden. A site that wants the mode switch with no JavaScript at all renders the
|
|
93
|
+
* attributes on the root and offers the choice inside a form, which is a real
|
|
94
|
+
* answer and a slightly worse one than a button.
|
|
95
|
+
*
|
|
96
|
+
* It is a client Component, and the provider it reads is a client module, so
|
|
97
|
+
* there is no way to make this one without `'use client'`. That is the cost of
|
|
98
|
+
* writing the theme rather than reading it, paid once, here.
|
|
99
|
+
*/
|
|
100
|
+
declare function ModeToggle({ label, size, className, ...props }: ModeToggleProps): import("react").JSX.Element;
|
|
101
|
+
export { ModeToggle };
|
|
102
|
+
//# sourceMappingURL=mode-toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-toggle.d.ts","sourceRoot":"","sources":["../../../src/components/ui/mode-toggle.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAM3C,sCAAsC;AACtC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACjF;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IAClB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,iBAAS,UAAU,CAAC,EAAE,KAAK,EAAE,IAAW,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,+BA+B/E;AAED,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Moon, Sun } from 'lucide-react';
|
|
4
|
+
import { usePrismTheme } from '../../provider/index.js';
|
|
5
|
+
import { Button } from './button.js';
|
|
6
|
+
import { cn } from '../../lib/utils.js';
|
|
7
|
+
/**
|
|
8
|
+
* The control that moves the reader between the light and the dark mode.
|
|
9
|
+
*
|
|
10
|
+
* **This is the one Component in the library that needs `PrismProvider` above it,
|
|
11
|
+
* and the reason is that it is the only one that writes the theme rather than
|
|
12
|
+
* reading it.** Every other Component reaches its colours through the cascade: the
|
|
13
|
+
* pack is an attribute on an ancestor and the mode is a class, and a Component
|
|
14
|
+
* that draws a `bg-primary` has drawn the right thing in every pack without
|
|
15
|
+
* knowing which pack it is in. This one cannot work that way, because moving
|
|
16
|
+
* between the modes means writing `.dark` on the document element, and the
|
|
17
|
+
* document element is not a thing a Component may reach for on its own. The
|
|
18
|
+
* provider is that permission, and it is optional everywhere else in Prism, which
|
|
19
|
+
* is why this is the only Component with a hard dependency on it. Mounted without
|
|
20
|
+
* one, `usePrismTheme` throws, and that is the intended behaviour rather than a
|
|
21
|
+
* silent no-op: a control that looks like it switches the mode and does nothing
|
|
22
|
+
* is worse than a page that says the provider is missing.
|
|
23
|
+
*
|
|
24
|
+
* **It renders one button and not a group, and a two-button group here is a
|
|
25
|
+
* segmented control doing a switch's job.** The obvious alternative is a pair of
|
|
26
|
+
* buttons, one per mode, with the current one marked selected. It is worse three
|
|
27
|
+
* separate ways. It takes two tab stops where the action needs one, so a reader
|
|
28
|
+
* tabbing along a header pays for a second stop to learn a thing the first stop
|
|
29
|
+
* already said. It announces a radio group, which changes what the arrow keys do
|
|
30
|
+
* inside it, so a reader who has learned the row they are in has to learn another
|
|
31
|
+
* model in the row above it. And it is the wrong role: two options where one is
|
|
32
|
+
* always selected and choosing either one leaves the page in the same state as
|
|
33
|
+
* choosing the other is a switch, and `toggle-group.tsx` is where a switch with
|
|
34
|
+
* two labelled members belongs, with the roving tab stop and the pressed set it
|
|
35
|
+
* already implements. A `Switch` is the other candidate and is refused for a
|
|
36
|
+
* different reason: a switch says "this setting is on" and a mode is not a
|
|
37
|
+
* setting, it is which of two renderings the page is using right now.
|
|
38
|
+
*
|
|
39
|
+
* **The icon is the destination and the name is the destination, so the two can
|
|
40
|
+
* never contradict each other.** A page in light mode shows a moon, because
|
|
41
|
+
* pressing it makes the page dark. The alternative, showing the current mode, puts
|
|
42
|
+
* a sun on a light page, which reads as a control that is already on, and a reader
|
|
43
|
+
* has to reconcile the picture with the state before they can use it. The icon is
|
|
44
|
+
* swapped, not animated between: the Motion law refuses a transition whose only
|
|
45
|
+
* purpose is decoration, and a sun morphing into a moon is decoration on a
|
|
46
|
+
* control that is about to be re-rendered with the other one anyway. So there is
|
|
47
|
+
* no transition here at all, and the swap is a repaint.
|
|
48
|
+
*
|
|
49
|
+
* **There is no `aria-pressed`, and that is a decision with a cost.** A pressed
|
|
50
|
+
* state describes the current mode, and the name describes the mode the press
|
|
51
|
+
* produces, so a pressed control named for its destination announces the opposite
|
|
52
|
+
* of what it is about: a screen reader reads "Switch to dark mode, pressed" on a
|
|
53
|
+
* page that is already dark. Since this Component takes one name rather than one
|
|
54
|
+
* per mode, the name cannot describe the current mode, and the honest reading of
|
|
55
|
+
* what is left is a button that performs an action. The cost is that a reader
|
|
56
|
+
* using a screen reader cannot ask the control what the page is in; they read the
|
|
57
|
+
* mode from the page, and a caller who would rather the control carried the state
|
|
58
|
+
* passes a name for the mode itself and mounts their own control, which is a real
|
|
59
|
+
* answer this Component is declining to give.
|
|
60
|
+
*
|
|
61
|
+
* **A reader who never mounts this is not left without the mode.** The mode on the
|
|
62
|
+
* page comes from the two document attributes, `data-pack` and `.dark`, and the
|
|
63
|
+
* blocking script in the head resolves them before first paint from a stored value
|
|
64
|
+
* or from what the server rendered. That is the declarative path, it is
|
|
65
|
+
* SSR-safe, and it is the one that works with no JavaScript at all. So this
|
|
66
|
+
* Component is a convenience layered on top of a mechanism that already works, not
|
|
67
|
+
* the mechanism, and a consumer who does not want a client Component in their
|
|
68
|
+
* layout can leave this one out: they put the attributes on their root element
|
|
69
|
+
* and write a plain button in their own code that calls `setMode` from the
|
|
70
|
+
* provider's hook. That is the reason the honest dependency is stated rather than
|
|
71
|
+
* hidden. A site that wants the mode switch with no JavaScript at all renders the
|
|
72
|
+
* attributes on the root and offers the choice inside a form, which is a real
|
|
73
|
+
* answer and a slightly worse one than a button.
|
|
74
|
+
*
|
|
75
|
+
* It is a client Component, and the provider it reads is a client module, so
|
|
76
|
+
* there is no way to make this one without `'use client'`. That is the cost of
|
|
77
|
+
* writing the theme rather than reading it, paid once, here.
|
|
78
|
+
*/
|
|
79
|
+
function ModeToggle({ label, size = 'md', className, ...props }) {
|
|
80
|
+
const { mode, toggleMode } = usePrismTheme();
|
|
81
|
+
return (_jsx(Button, { type: "button", "data-slot": "mode-toggle", variant: "ghost", size: size === 'sm' ? 'sm' : 'default', "aria-label": label, onClick: toggleMode, className: cn('shrink-0', className), ...props, children: mode === 'dark' ? (_jsx(Sun, { "aria-hidden": "true", className: "size-4" })) : (_jsx(Moon, { "aria-hidden": "true", className: "size-4" })) }));
|
|
82
|
+
}
|
|
83
|
+
export { ModeToggle };
|