@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,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
/** The dot each tone is drawn in, from the semantic roles and no other. */
|
|
4
|
+
const TONE_DOT = {
|
|
5
|
+
neutral: 'bg-muted-foreground',
|
|
6
|
+
info: 'bg-brand-ink',
|
|
7
|
+
success: 'bg-success',
|
|
8
|
+
warning: 'bg-warning',
|
|
9
|
+
destructive: 'bg-destructive',
|
|
10
|
+
};
|
|
11
|
+
/** The dot's diameter, per size, as an authored `size-*` step. */
|
|
12
|
+
const SIZE_DOT = {
|
|
13
|
+
sm: 'size-1.5',
|
|
14
|
+
md: 'size-2',
|
|
15
|
+
};
|
|
16
|
+
/** The label's type-scale step, per size, because the pair is sized together. */
|
|
17
|
+
const SIZE_LABEL = {
|
|
18
|
+
sm: 'text-xs',
|
|
19
|
+
md: 'text-sm',
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* A dot in one of five tones, and the caller's words beside it.
|
|
23
|
+
*
|
|
24
|
+
* **The dot is the tone and the label is the caller's.** The split is the whole
|
|
25
|
+
* design. A Component that knew what the words were would be a Component making
|
|
26
|
+
* a claim about a product it knows nothing about, so it takes the tone and the
|
|
27
|
+
* caller takes the sentence, and neither one can be derived from the other
|
|
28
|
+
* without a lie.
|
|
29
|
+
*
|
|
30
|
+
* **The label is required, and the reason is the colour.** A status with no words
|
|
31
|
+
* is a coloured dot, and a coloured dot is invisible to a reader who cannot
|
|
32
|
+
* separate the tones and unreadable to a screen reader whatever the tones are.
|
|
33
|
+
* There is a Component for the other half of that idea, an indicator that is
|
|
34
|
+
* decorative beside a state the surrounding sentence already names, and it is a
|
|
35
|
+
* different Item because a name it did not receive is a name the consumer has to
|
|
36
|
+
* supply. This one refuses to render unlabelled rather than rendering something
|
|
37
|
+
* every consumer inherits.
|
|
38
|
+
*
|
|
39
|
+
* **The tone is required rather than defaulted.** There is no `neutral` default
|
|
40
|
+
* for the same reason `MeterTone` states, and this Component inherits that
|
|
41
|
+
* argument in full: a tone is a judgement about urgency that only the caller can
|
|
42
|
+
* make, and a Component that picked one would be picking it for four products at
|
|
43
|
+
* once. A default here is the quietest way to ship a claim, because it looks
|
|
44
|
+
* like a convenience and behaves like an opinion.
|
|
45
|
+
*
|
|
46
|
+
* **The tone is never the only signal.** Every dot here is `aria-hidden` and the
|
|
47
|
+
* label carries the meaning, so a reader who cannot separate `warning` from
|
|
48
|
+
* `destructive` still reads which is which. That is also why the tone list can
|
|
49
|
+
* stay as small as it is: a wider list would be a wider set of colours a reader
|
|
50
|
+
* has to learn and a maintainer has to keep true, and the words are what make
|
|
51
|
+
* each one legible. The cost is stated rather than hidden: `warning` is amber and
|
|
52
|
+
* measures about 2.1:1 against the default pack's light background, so on a light
|
|
53
|
+
* surface that one dot is a tint rather than a mark. The label beside it is what
|
|
54
|
+
* carries the state, which is the trade this design makes everywhere.
|
|
55
|
+
*
|
|
56
|
+
* It is a server Component: no hook, no state, and a status that changes is
|
|
57
|
+
* something the surrounding surface re-renders, not something this Component
|
|
58
|
+
* animates.
|
|
59
|
+
*/
|
|
60
|
+
function Status({ className, tone, label, size = 'md', ...props }) {
|
|
61
|
+
return (_jsxs("span", { "data-slot": "status", className: cn('inline-flex max-w-full items-center gap-1.5', className), ...props, children: [_jsx("span", { "data-slot": "status-dot", "aria-hidden": "true", className: cn('shrink-0 rounded-full', SIZE_DOT[size], TONE_DOT[tone]) }), _jsx("span", { "data-slot": "status-label", className: SIZE_LABEL[size], children: label })] }));
|
|
62
|
+
}
|
|
63
|
+
export { Status };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The props the Stepper accepts.
|
|
3
|
+
*
|
|
4
|
+
* A declared interface rather than a forwarded native one. There is no element
|
|
5
|
+
* here to forward to, because the Component draws a group of two controls and
|
|
6
|
+
* owns the bounds both of them read, and a forwarded `onChange` would be a second
|
|
7
|
+
* way to say what a press does.
|
|
8
|
+
*/
|
|
9
|
+
export interface StepperProps {
|
|
10
|
+
/**
|
|
11
|
+
* The value both controls move.
|
|
12
|
+
*
|
|
13
|
+
* Required, and a number rather than `number | null`. An empty value is a value
|
|
14
|
+
* `NumberField` reports, because a typed scalar has to be able to say "nothing
|
|
15
|
+
* yet". A pair of controls has nothing to step from: pressing a control on an
|
|
16
|
+
* empty field would have to invent the first value, and a Component that
|
|
17
|
+
* invents one is a Component that has guessed the caller's unit. A caller whose
|
|
18
|
+
* quantity starts empty holds nothing, and reaches for `NumberField`.
|
|
19
|
+
*/
|
|
20
|
+
value: number;
|
|
21
|
+
/**
|
|
22
|
+
* Called with the value a press produced.
|
|
23
|
+
*
|
|
24
|
+
* Required, and controlled: the Component holds no value of its own, because a
|
|
25
|
+
* value held inside a control and a value held by the caller are two numbers
|
|
26
|
+
* that disagree the moment a second control reads the same one. The pair here
|
|
27
|
+
* and the `NumberField` beside it are the ordinary case of exactly that.
|
|
28
|
+
*/
|
|
29
|
+
onValueChange: (value: number) => void;
|
|
30
|
+
/**
|
|
31
|
+
* The accessible name of the joined pair.
|
|
32
|
+
*
|
|
33
|
+
* Required, and it names the pair rather than either half: a screen reader
|
|
34
|
+
* announces the group first, so "Quantity" is what tells the reader which of the
|
|
35
|
+
* two controls they are in before either of them speaks.
|
|
36
|
+
*/
|
|
37
|
+
label: string;
|
|
38
|
+
/**
|
|
39
|
+
* The accessible names of the two controls.
|
|
40
|
+
*
|
|
41
|
+
* Required as a pair, and the words are the caller's because a stepper's
|
|
42
|
+
* controls are icons and an icon has no name. "Increase the number of seats",
|
|
43
|
+
* "Decrease the monthly budget". Prism would get "increase" right for a
|
|
44
|
+
* quantity and wrong for at least one of every four products that install it.
|
|
45
|
+
*/
|
|
46
|
+
labels: {
|
|
47
|
+
increment: string;
|
|
48
|
+
decrement: string;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* The smallest value the pair will hold.
|
|
52
|
+
*
|
|
53
|
+
* A press below it is refused and the decrement draws itself unavailable, which
|
|
54
|
+
* are two answers to one question: the value never leaves the range, and the
|
|
55
|
+
* reader is told where the range is rather than discovering it by pressing.
|
|
56
|
+
* Without a minimum there is no boundary for the pair to report, so this and
|
|
57
|
+
* `max` are what turn two buttons into a control over a range.
|
|
58
|
+
*/
|
|
59
|
+
min?: number;
|
|
60
|
+
/** The largest value the pair will hold. The same contract as `min`. */
|
|
61
|
+
max?: number;
|
|
62
|
+
/**
|
|
63
|
+
* The amount one press changes the value by. @defaultValue 1
|
|
64
|
+
*
|
|
65
|
+
* A step of zero is refused by being a no-op rather than by a diagnostic,
|
|
66
|
+
* because a zero step is a caller's arithmetic mistake rather than a claim this
|
|
67
|
+
* Component would be making on the caller's behalf, and a control that does
|
|
68
|
+
* nothing is already the answer to it.
|
|
69
|
+
*/
|
|
70
|
+
step?: number;
|
|
71
|
+
/**
|
|
72
|
+
* Whether the pair ignores interaction.
|
|
73
|
+
*
|
|
74
|
+
* Set natively on both controls, and the reason is the frame rather than a
|
|
75
|
+
* preference. `ButtonGroup` draws the joined shape by suppressing each child's
|
|
76
|
+
* own ring and squaring each child's corners, which leaves no place between the
|
|
77
|
+
* group and the control to put a wrapper that could draw an unavailable state
|
|
78
|
+
* without breaking the join. So the state is the native one, and the cost of
|
|
79
|
+
* that choice is stated on the Component.
|
|
80
|
+
*/
|
|
81
|
+
disabled?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Whether the value may be read but not moved.
|
|
84
|
+
*
|
|
85
|
+
* Refuses both controls rather than one, because a half-stepper over a value
|
|
86
|
+
* nobody may change is a control with a live half and a dead half, and the
|
|
87
|
+
* reader has no way to tell which half is the wrong one.
|
|
88
|
+
*/
|
|
89
|
+
readOnly?: boolean;
|
|
90
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
91
|
+
className?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* An increment and a decrement joined as one control, both of them holding the
|
|
95
|
+
* same range.
|
|
96
|
+
*
|
|
97
|
+
* **Two controls that must agree, and the agreement is the Component.** A caller
|
|
98
|
+
* who composes two `Button`s gets two controls that know nothing about each other:
|
|
99
|
+
* one clamps and one does not, or both clamp against different bounds, or the
|
|
100
|
+
* increment is drawn as available one render after the value reaches the maximum.
|
|
101
|
+
* The bounds here are two props read once by both controls and by the handler
|
|
102
|
+
* that computes the next value, so the two halves cannot drift: there is no
|
|
103
|
+
* second place for a bound to be written.
|
|
104
|
+
*
|
|
105
|
+
* **At a boundary the control draws itself unavailable rather than doing nothing
|
|
106
|
+
* silently, and that is the difference between a stepper and two buttons.** A
|
|
107
|
+
* press that quietly fails is the worst outcome available to a control: the
|
|
108
|
+
* reader has pressed something, the page has not changed, and nothing has said
|
|
109
|
+
* why. So the half that has reached its bound is visibly dimmed and is no longer
|
|
110
|
+
* in the tab order, and the reader learns the range from the shape of the control
|
|
111
|
+
* rather than from an error. **The cost is stated rather than smoothed over: a
|
|
112
|
+
* natively disabled control leaves the tab order**, so a stepper sitting at its
|
|
113
|
+
* maximum is one tab stop rather than two. Here that is the right trade and not a
|
|
114
|
+
* compromise, because the only way the value moves is the other half or the
|
|
115
|
+
* caller's own field, so a tab stop on the spent half could tell a reader
|
|
116
|
+
* something and could not let them do anything with it.
|
|
117
|
+
*
|
|
118
|
+
* **The wrapper that would let the pair draw an unavailable state does not exist,
|
|
119
|
+
* and the reason is the composition.** `TextFormatToolbar` dims a command by
|
|
120
|
+
* putting the surface on a wrapper span it owns, because that Component draws its
|
|
121
|
+
* own frame and has room for one. `ButtonGroup` draws this frame instead, and it
|
|
122
|
+
* draws it by suppressing each child's own ring and squaring each child's corners,
|
|
123
|
+
* so anything placed between the group and a control would either lose the join or
|
|
124
|
+
* clip the corners Prism just squared. That is why `disabled` goes to the native
|
|
125
|
+
* attribute here and the JSDoc on `disabled` says so: the state had to be the
|
|
126
|
+
* native one or the shape would have gone.
|
|
127
|
+
*
|
|
128
|
+
* **The pair clamps and does not snap to the step grid, and that is a decision
|
|
129
|
+
* about whose number it is.** A value that is already off the grid, `7` against a
|
|
130
|
+
* `min` of `0` and a `step` of `5`, moves to `10` and not to `5`. Snapping would
|
|
131
|
+
* mean the first press rewrites a number the reader did not touch, which is the
|
|
132
|
+
* same defect `NumberField` avoids by moving from wherever the value is. The cost
|
|
133
|
+
* is that a value can sit off the grid indefinitely, and a caller who needs the
|
|
134
|
+
* grid enforced validates it in their own submit handler.
|
|
135
|
+
*
|
|
136
|
+
* **It is `number-field`'s pair and not `number-field`, and the difference is
|
|
137
|
+
* where the value is typed.** `NumberField` is a typed scalar: it holds the
|
|
138
|
+
* value in an input, the reader can write it, and its two steppers are a
|
|
139
|
+
* secondary route to a number they are not the only way to reach. This is the
|
|
140
|
+
* paired affordance on its own, for a value the caller displays in its own terms:
|
|
141
|
+
* a quantity in a cart line, a count in a table cell, an amount whose unit only
|
|
142
|
+
* the caller knows. The honest cost of that split is that this Component cannot
|
|
143
|
+
* show the value it is changing, because a number without a unit is a guess, so a
|
|
144
|
+
* caller who wants the figure beside the pair draws it themselves. A caller who
|
|
145
|
+
* wants one control to hold the figure and the pair composes `NumberField`, whose
|
|
146
|
+
* steppers are already inside its own frame.
|
|
147
|
+
*
|
|
148
|
+
* **It is a client Component** because both controls call back and the clamps run
|
|
149
|
+
* in the press. What that costs is the price of every interactive control: a
|
|
150
|
+
* static page cannot render a stepper at all, which is correct, because a stepper
|
|
151
|
+
* is a control and a control that cannot be pressed is a picture of one.
|
|
152
|
+
*/
|
|
153
|
+
declare function Stepper({ value, onValueChange, label, labels, min, max, step, disabled, readOnly, className, }: StepperProps): import("react").JSX.Element;
|
|
154
|
+
export { Stepper };
|
|
155
|
+
//# sourceMappingURL=stepper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stepper.d.ts","sourceRoot":"","sources":["../../../src/components/ui/stepper.tsx"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;OASG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;IAChD;;;;;;;;OAQG;IACH,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,iBAAS,OAAO,CAAC,EACf,KAAK,EACL,aAAa,EACb,KAAK,EACL,MAAM,EACN,GAAG,EACH,GAAG,EACH,IAAQ,EACR,QAAgB,EAChB,QAAgB,EAChB,SAAS,GACV,EAAE,YAAY,+BA2Cd;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { MinusIcon, PlusIcon } from 'lucide-react';
|
|
4
|
+
import { Button } from './button.js';
|
|
5
|
+
import { ButtonGroup } from './button-group.js';
|
|
6
|
+
/**
|
|
7
|
+
* An increment and a decrement joined as one control, both of them holding the
|
|
8
|
+
* same range.
|
|
9
|
+
*
|
|
10
|
+
* **Two controls that must agree, and the agreement is the Component.** A caller
|
|
11
|
+
* who composes two `Button`s gets two controls that know nothing about each other:
|
|
12
|
+
* one clamps and one does not, or both clamp against different bounds, or the
|
|
13
|
+
* increment is drawn as available one render after the value reaches the maximum.
|
|
14
|
+
* The bounds here are two props read once by both controls and by the handler
|
|
15
|
+
* that computes the next value, so the two halves cannot drift: there is no
|
|
16
|
+
* second place for a bound to be written.
|
|
17
|
+
*
|
|
18
|
+
* **At a boundary the control draws itself unavailable rather than doing nothing
|
|
19
|
+
* silently, and that is the difference between a stepper and two buttons.** A
|
|
20
|
+
* press that quietly fails is the worst outcome available to a control: the
|
|
21
|
+
* reader has pressed something, the page has not changed, and nothing has said
|
|
22
|
+
* why. So the half that has reached its bound is visibly dimmed and is no longer
|
|
23
|
+
* in the tab order, and the reader learns the range from the shape of the control
|
|
24
|
+
* rather than from an error. **The cost is stated rather than smoothed over: a
|
|
25
|
+
* natively disabled control leaves the tab order**, so a stepper sitting at its
|
|
26
|
+
* maximum is one tab stop rather than two. Here that is the right trade and not a
|
|
27
|
+
* compromise, because the only way the value moves is the other half or the
|
|
28
|
+
* caller's own field, so a tab stop on the spent half could tell a reader
|
|
29
|
+
* something and could not let them do anything with it.
|
|
30
|
+
*
|
|
31
|
+
* **The wrapper that would let the pair draw an unavailable state does not exist,
|
|
32
|
+
* and the reason is the composition.** `TextFormatToolbar` dims a command by
|
|
33
|
+
* putting the surface on a wrapper span it owns, because that Component draws its
|
|
34
|
+
* own frame and has room for one. `ButtonGroup` draws this frame instead, and it
|
|
35
|
+
* draws it by suppressing each child's own ring and squaring each child's corners,
|
|
36
|
+
* so anything placed between the group and a control would either lose the join or
|
|
37
|
+
* clip the corners Prism just squared. That is why `disabled` goes to the native
|
|
38
|
+
* attribute here and the JSDoc on `disabled` says so: the state had to be the
|
|
39
|
+
* native one or the shape would have gone.
|
|
40
|
+
*
|
|
41
|
+
* **The pair clamps and does not snap to the step grid, and that is a decision
|
|
42
|
+
* about whose number it is.** A value that is already off the grid, `7` against a
|
|
43
|
+
* `min` of `0` and a `step` of `5`, moves to `10` and not to `5`. Snapping would
|
|
44
|
+
* mean the first press rewrites a number the reader did not touch, which is the
|
|
45
|
+
* same defect `NumberField` avoids by moving from wherever the value is. The cost
|
|
46
|
+
* is that a value can sit off the grid indefinitely, and a caller who needs the
|
|
47
|
+
* grid enforced validates it in their own submit handler.
|
|
48
|
+
*
|
|
49
|
+
* **It is `number-field`'s pair and not `number-field`, and the difference is
|
|
50
|
+
* where the value is typed.** `NumberField` is a typed scalar: it holds the
|
|
51
|
+
* value in an input, the reader can write it, and its two steppers are a
|
|
52
|
+
* secondary route to a number they are not the only way to reach. This is the
|
|
53
|
+
* paired affordance on its own, for a value the caller displays in its own terms:
|
|
54
|
+
* a quantity in a cart line, a count in a table cell, an amount whose unit only
|
|
55
|
+
* the caller knows. The honest cost of that split is that this Component cannot
|
|
56
|
+
* show the value it is changing, because a number without a unit is a guess, so a
|
|
57
|
+
* caller who wants the figure beside the pair draws it themselves. A caller who
|
|
58
|
+
* wants one control to hold the figure and the pair composes `NumberField`, whose
|
|
59
|
+
* steppers are already inside its own frame.
|
|
60
|
+
*
|
|
61
|
+
* **It is a client Component** because both controls call back and the clamps run
|
|
62
|
+
* in the press. What that costs is the price of every interactive control: a
|
|
63
|
+
* static page cannot render a stepper at all, which is correct, because a stepper
|
|
64
|
+
* is a control and a control that cannot be pressed is a picture of one.
|
|
65
|
+
*/
|
|
66
|
+
function Stepper({ value, onValueChange, label, labels, min, max, step = 1, disabled = false, readOnly = false, className, }) {
|
|
67
|
+
const atMin = typeof min === 'number' && value <= min;
|
|
68
|
+
const atMax = typeof max === 'number' && value >= max;
|
|
69
|
+
// One clamp, read by both halves. A pair with two clamps is a pair with two
|
|
70
|
+
// answers, and which of them ran is invisible to the reader and to the caller.
|
|
71
|
+
const move = (direction) => {
|
|
72
|
+
const next = value + step * direction;
|
|
73
|
+
let out = next;
|
|
74
|
+
if (typeof min === 'number' && out < min)
|
|
75
|
+
out = min;
|
|
76
|
+
if (typeof max === 'number' && out > max)
|
|
77
|
+
out = max;
|
|
78
|
+
onValueChange(out);
|
|
79
|
+
};
|
|
80
|
+
const unavailable = disabled || readOnly;
|
|
81
|
+
return (_jsxs(ButtonGroup, { className: className, label: label, children: [_jsx(Button, { "data-slot": "stepper-decrement", type: "button", variant: "outline", size: "icon", disabled: unavailable || atMin, onClick: () => move(-1), "aria-label": labels.decrement, children: _jsx(MinusIcon, { "aria-hidden": "true" }) }), _jsx(Button, { "data-slot": "stepper-increment", type: "button", variant: "outline", size: "icon", disabled: unavailable || atMax, onClick: () => move(1), "aria-label": labels.increment, children: _jsx(PlusIcon, { "aria-hidden": "true" }) })] }));
|
|
82
|
+
}
|
|
83
|
+
export { Stepper };
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/** Where a step stands relative to the one the reader is on. */
|
|
2
|
+
type StepState = 'complete' | 'current' | 'upcoming';
|
|
3
|
+
/**
|
|
4
|
+
* One step in a sequence.
|
|
5
|
+
*
|
|
6
|
+
* `label` is the step, in the caller's words: a short noun or verb phrase, the
|
|
7
|
+
* thing that is either done or not. `description` is the qualifier, and it is a
|
|
8
|
+
* separate field because the two answer different questions and have different
|
|
9
|
+
* readers. A label is what a reader scanning the rail is looking for, and it has
|
|
10
|
+
* to survive at the width a step gets in a six step row. A description is what a
|
|
11
|
+
* reader who has arrived at this step wants, and it can be a sentence. Putting
|
|
12
|
+
* both in one field means one of the two is truncated, and the one that is
|
|
13
|
+
* truncated is chosen by the width of the container rather than by the reader.
|
|
14
|
+
*/
|
|
15
|
+
export type Step = {
|
|
16
|
+
/** The step, in the caller's words. */
|
|
17
|
+
label: string;
|
|
18
|
+
/** The qualifier under the label, for a reader who has arrived here. */
|
|
19
|
+
description?: string;
|
|
20
|
+
/**
|
|
21
|
+
* This step's state, overriding the one derived from its index and `current`.
|
|
22
|
+
*
|
|
23
|
+
* Derived is the default and the override is the exception, in that order,
|
|
24
|
+
* because the derived answer is the one that cannot disagree with `current`.
|
|
25
|
+
* Read the reasoning on `Steps` before passing one; the short version is that
|
|
26
|
+
* an override is a second source of truth about a position, and a second
|
|
27
|
+
* source of truth is what the rest of this package is organised to avoid.
|
|
28
|
+
*/
|
|
29
|
+
state?: StepState;
|
|
30
|
+
};
|
|
31
|
+
/** The props the Steps accepts. */
|
|
32
|
+
export interface StepsProps {
|
|
33
|
+
/**
|
|
34
|
+
* The sequence, in order. The order is the claim: a reader who is told these
|
|
35
|
+
* are steps is told there is a route through them, so a list passed in an
|
|
36
|
+
* order the process does not have is a wrong diagram rather than a layout
|
|
37
|
+
* problem.
|
|
38
|
+
*/
|
|
39
|
+
steps: readonly Step[];
|
|
40
|
+
/**
|
|
41
|
+
* The index of the step the reader is on, zero based.
|
|
42
|
+
*
|
|
43
|
+
* Required and clamped rather than optional, because a sequence with no
|
|
44
|
+
* position is a list and a list is a different Component. The clamp is what
|
|
45
|
+
* makes a caller's off-by-one harmless: a `current` past the end or below zero
|
|
46
|
+
* lands on the nearest real step rather than on nothing, and the alternative
|
|
47
|
+
* was a throw on a value that is only wrong by one.
|
|
48
|
+
*/
|
|
49
|
+
current: number;
|
|
50
|
+
/**
|
|
51
|
+
* The name of the sequence, read over the rail.
|
|
52
|
+
*
|
|
53
|
+
* Optional, and the reason it is optional rather than required is that this
|
|
54
|
+
* Component's whole job is the position: `steps` and `current` are the two
|
|
55
|
+
* facts it cannot do without, and a rail that is one list among many on a
|
|
56
|
+
* page takes its name from the heading the caller has already put above it.
|
|
57
|
+
* A page with two rails that look alike is a page where a reader cannot tell
|
|
58
|
+
* which process they are in, and a checkout and an import both have four
|
|
59
|
+
* steps, so a caller with more than one on a page should pass it. A prop the
|
|
60
|
+
* rail cannot function without would have been the wrong shape here; a prop
|
|
61
|
+
* that removes a genuine ambiguity is the right one, so it is there and
|
|
62
|
+
* nothing on it depends.
|
|
63
|
+
*/
|
|
64
|
+
label?: string;
|
|
65
|
+
/** Layout only, exactly as on every Component. */
|
|
66
|
+
className?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* An ordered indicator of where a reader is in a sequence.
|
|
70
|
+
*
|
|
71
|
+
* **The state is derived from the index and `current`, and the derivation is the
|
|
72
|
+
* answer that cannot disagree.** A caller's `current` is one number and the
|
|
73
|
+
* states before and after it are consequences of it, so the three can never
|
|
74
|
+
* drift: move `current` and every mark moves with it, and there is no
|
|
75
|
+
* combination of `current` and `state` a caller can pass that says step one is
|
|
76
|
+
* behind them and step two is also behind them. That is not a convenience. The
|
|
77
|
+
* failure is invisible in review and visible only in use, on the screen where
|
|
78
|
+
* the reader is looking at a rail that says they have finished the thing they
|
|
79
|
+
* are doing, and there is no way for a reader to tell which of the two marks is
|
|
80
|
+
* the one to believe.
|
|
81
|
+
*
|
|
82
|
+
* **The override exists for a sequence that is not the process.** A checkout
|
|
83
|
+
* where a reviewer approved a line out of band, a migration where one stage was
|
|
84
|
+
* completed by hand last night, a form where the reader has already answered
|
|
85
|
+
* the question that step two would have asked. In those cases the position and
|
|
86
|
+
* the state are two different facts, and a derived mark would draw a claim the
|
|
87
|
+
* data contradicts. So `state` is a prop, and the cost of it is named: it is a
|
|
88
|
+
* second source of truth about a position, which is the thing this package is
|
|
89
|
+
* organised to avoid, so it is an override per step rather than a mode, and the
|
|
90
|
+
* derivation still decides every step the caller said nothing about. A caller
|
|
91
|
+
* that overrides everything has replaced the rule with their own and gained
|
|
92
|
+
* nothing but the type.
|
|
93
|
+
*
|
|
94
|
+
* **Exactly one step is current, and it is enforced rather than described.** Two
|
|
95
|
+
* steps marked current is a rail with two answers to "where am I", and no step
|
|
96
|
+
* marked current is a rail with none, which is the state a reader cannot act on
|
|
97
|
+
* at all. Both are checked against the resolved list rather than against the
|
|
98
|
+
* declaration, because the interesting case is neither of them directly: a
|
|
99
|
+
* caller who marks the step `current` points at as something else has removed
|
|
100
|
+
* the only mark that said where they were, and no declaration in the data
|
|
101
|
+
* mentions a current step at all. So the resolved states are counted and a count
|
|
102
|
+
* that is not one is a thrown diagnostic rather than a drawing. A derivation
|
|
103
|
+
* alone can never produce that count, so the diagnostic only ever fires on a
|
|
104
|
+
* caller's own declarations, which is the arrangement that keeps it a real
|
|
105
|
+
* signal rather than a nuisance.
|
|
106
|
+
*
|
|
107
|
+
* **The rule between the steps is the honest indicator, and the reason is that
|
|
108
|
+
* the alternatives restate the same fact.** A filled bar under every completed
|
|
109
|
+
* step says "this one is done" once per step, so a reader looking at a
|
|
110
|
+
* six step rail is given the same sentence six times and has to combine them
|
|
111
|
+
* themselves to learn the one thing they came for, which is how much is behind
|
|
112
|
+
* them. The connector carries that fact once and carries something the bars
|
|
113
|
+
* cannot: it measures the space between two stages, so it is the only element
|
|
114
|
+
* that shows the sequence has a length at all. It is filled up to the step the
|
|
115
|
+
* reader is on and empty after it, which is also why it is the element that
|
|
116
|
+
* makes a long sequence readable at a glance. A bar per step was rejected on
|
|
117
|
+
* that ground, and a number per step was rejected earlier, because a number is
|
|
118
|
+
* a count of where the reader is and not a measure of how far they have come.
|
|
119
|
+
*
|
|
120
|
+
* **`aria-current` goes on the current step and nowhere else, because a colour
|
|
121
|
+
* is not a position in a sequence.** It is the only attribute on the rail that
|
|
122
|
+
* states the position to a reader who cannot see the rail, and putting it
|
|
123
|
+
* anywhere else is a claim about a step that is not the one the reader is on.
|
|
124
|
+
* The three states are not announced, and that is deliberate rather than an
|
|
125
|
+
* omission: they are consequences of the position, so a reader moving by list
|
|
126
|
+
* item is already told "item two of six" and then "current", and from those two
|
|
127
|
+
* the states of the other five follow. Announcing them would mean this
|
|
128
|
+
* Component shipping the words "complete" and "upcoming" into every consumer's
|
|
129
|
+
* product, which is the same defect the copy gate holds the close button of a
|
|
130
|
+
* dialog for. The ordinal on each disc is the one thing that is hidden, and for
|
|
131
|
+
* the mirror of that reason: the list semantics already say which item this is,
|
|
132
|
+
* and a spoken number in front of every label is noise to a reader who is
|
|
133
|
+
* reading the steps rather than counting them.
|
|
134
|
+
*
|
|
135
|
+
* **It is a server Component.** No hook, no state, no effect, and the rail is
|
|
136
|
+
* arithmetic over props, so it costs a consumer nothing in client JavaScript and
|
|
137
|
+
* renders identically with scripting off, in a print stylesheet and to a crawler.
|
|
138
|
+
*/
|
|
139
|
+
declare function Steps({ steps, current, label, className }: StepsProps): import("react").JSX.Element;
|
|
140
|
+
export { Steps };
|
|
141
|
+
//# sourceMappingURL=steps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../../src/components/ui/steps.tsx"],"names":[],"mappings":"AAEA,gEAAgE;AAChE,KAAK,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAA;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB;;;;;;;;OAQG;IACH,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,iBAAS,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,+BA4G9D;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from '../../lib/utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* The disc a step's mark is drawn in, one per state.
|
|
5
|
+
*
|
|
6
|
+
* The three states differ by shape before they differ by colour: a filled disc
|
|
7
|
+
* for a step that is done, an outlined one for the step the reader is on, and a
|
|
8
|
+
* filled muted one for a step ahead. That is the whole discipline behind a
|
|
9
|
+
* component that is read as feedback, and it is why the state is not a colour
|
|
10
|
+
* here either: a filled mint disc and a mint outline are the same picture
|
|
11
|
+
* narrowed to one channel, and a reader who cannot separate them is being told
|
|
12
|
+
* the same thing about two different steps.
|
|
13
|
+
*/
|
|
14
|
+
const MARKER = {
|
|
15
|
+
complete: 'bg-primary text-primary-foreground border-primary',
|
|
16
|
+
current: 'bg-background text-foreground border-primary',
|
|
17
|
+
upcoming: 'bg-muted text-muted-foreground border-border',
|
|
18
|
+
};
|
|
19
|
+
/** An index held inside the sequence, so a `current` past either end lands on a real step. */
|
|
20
|
+
function clamp(value, total) {
|
|
21
|
+
if (total <= 0)
|
|
22
|
+
return 0;
|
|
23
|
+
return Math.min(Math.max(Math.trunc(value), 0), total - 1);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* An ordered indicator of where a reader is in a sequence.
|
|
27
|
+
*
|
|
28
|
+
* **The state is derived from the index and `current`, and the derivation is the
|
|
29
|
+
* answer that cannot disagree.** A caller's `current` is one number and the
|
|
30
|
+
* states before and after it are consequences of it, so the three can never
|
|
31
|
+
* drift: move `current` and every mark moves with it, and there is no
|
|
32
|
+
* combination of `current` and `state` a caller can pass that says step one is
|
|
33
|
+
* behind them and step two is also behind them. That is not a convenience. The
|
|
34
|
+
* failure is invisible in review and visible only in use, on the screen where
|
|
35
|
+
* the reader is looking at a rail that says they have finished the thing they
|
|
36
|
+
* are doing, and there is no way for a reader to tell which of the two marks is
|
|
37
|
+
* the one to believe.
|
|
38
|
+
*
|
|
39
|
+
* **The override exists for a sequence that is not the process.** A checkout
|
|
40
|
+
* where a reviewer approved a line out of band, a migration where one stage was
|
|
41
|
+
* completed by hand last night, a form where the reader has already answered
|
|
42
|
+
* the question that step two would have asked. In those cases the position and
|
|
43
|
+
* the state are two different facts, and a derived mark would draw a claim the
|
|
44
|
+
* data contradicts. So `state` is a prop, and the cost of it is named: it is a
|
|
45
|
+
* second source of truth about a position, which is the thing this package is
|
|
46
|
+
* organised to avoid, so it is an override per step rather than a mode, and the
|
|
47
|
+
* derivation still decides every step the caller said nothing about. A caller
|
|
48
|
+
* that overrides everything has replaced the rule with their own and gained
|
|
49
|
+
* nothing but the type.
|
|
50
|
+
*
|
|
51
|
+
* **Exactly one step is current, and it is enforced rather than described.** Two
|
|
52
|
+
* steps marked current is a rail with two answers to "where am I", and no step
|
|
53
|
+
* marked current is a rail with none, which is the state a reader cannot act on
|
|
54
|
+
* at all. Both are checked against the resolved list rather than against the
|
|
55
|
+
* declaration, because the interesting case is neither of them directly: a
|
|
56
|
+
* caller who marks the step `current` points at as something else has removed
|
|
57
|
+
* the only mark that said where they were, and no declaration in the data
|
|
58
|
+
* mentions a current step at all. So the resolved states are counted and a count
|
|
59
|
+
* that is not one is a thrown diagnostic rather than a drawing. A derivation
|
|
60
|
+
* alone can never produce that count, so the diagnostic only ever fires on a
|
|
61
|
+
* caller's own declarations, which is the arrangement that keeps it a real
|
|
62
|
+
* signal rather than a nuisance.
|
|
63
|
+
*
|
|
64
|
+
* **The rule between the steps is the honest indicator, and the reason is that
|
|
65
|
+
* the alternatives restate the same fact.** A filled bar under every completed
|
|
66
|
+
* step says "this one is done" once per step, so a reader looking at a
|
|
67
|
+
* six step rail is given the same sentence six times and has to combine them
|
|
68
|
+
* themselves to learn the one thing they came for, which is how much is behind
|
|
69
|
+
* them. The connector carries that fact once and carries something the bars
|
|
70
|
+
* cannot: it measures the space between two stages, so it is the only element
|
|
71
|
+
* that shows the sequence has a length at all. It is filled up to the step the
|
|
72
|
+
* reader is on and empty after it, which is also why it is the element that
|
|
73
|
+
* makes a long sequence readable at a glance. A bar per step was rejected on
|
|
74
|
+
* that ground, and a number per step was rejected earlier, because a number is
|
|
75
|
+
* a count of where the reader is and not a measure of how far they have come.
|
|
76
|
+
*
|
|
77
|
+
* **`aria-current` goes on the current step and nowhere else, because a colour
|
|
78
|
+
* is not a position in a sequence.** It is the only attribute on the rail that
|
|
79
|
+
* states the position to a reader who cannot see the rail, and putting it
|
|
80
|
+
* anywhere else is a claim about a step that is not the one the reader is on.
|
|
81
|
+
* The three states are not announced, and that is deliberate rather than an
|
|
82
|
+
* omission: they are consequences of the position, so a reader moving by list
|
|
83
|
+
* item is already told "item two of six" and then "current", and from those two
|
|
84
|
+
* the states of the other five follow. Announcing them would mean this
|
|
85
|
+
* Component shipping the words "complete" and "upcoming" into every consumer's
|
|
86
|
+
* product, which is the same defect the copy gate holds the close button of a
|
|
87
|
+
* dialog for. The ordinal on each disc is the one thing that is hidden, and for
|
|
88
|
+
* the mirror of that reason: the list semantics already say which item this is,
|
|
89
|
+
* and a spoken number in front of every label is noise to a reader who is
|
|
90
|
+
* reading the steps rather than counting them.
|
|
91
|
+
*
|
|
92
|
+
* **It is a server Component.** No hook, no state, no effect, and the rail is
|
|
93
|
+
* arithmetic over props, so it costs a consumer nothing in client JavaScript and
|
|
94
|
+
* renders identically with scripting off, in a print stylesheet and to a crawler.
|
|
95
|
+
*/
|
|
96
|
+
function Steps({ steps, current, label, className }) {
|
|
97
|
+
// An empty sequence is an empty list rather than a throw. The invariant below
|
|
98
|
+
// is about a rail with a position, and a caller with no steps has no position
|
|
99
|
+
// to disagree about; the cost is an empty rail, which is what was asked for.
|
|
100
|
+
if (steps.length === 0) {
|
|
101
|
+
return _jsx("ol", { "data-slot": "steps", "aria-label": label, className: cn('flex w-full', className) });
|
|
102
|
+
}
|
|
103
|
+
const at = clamp(current, steps.length);
|
|
104
|
+
const resolved = steps.map((step, index) => step.state ?? (index < at ? 'complete' : index === at ? 'current' : 'upcoming'));
|
|
105
|
+
const placed = resolved.filter((state) => state === 'current').length;
|
|
106
|
+
if (placed !== 1) {
|
|
107
|
+
// The message reaches a developer in a console and is never rendered, which
|
|
108
|
+
// is why it is a sentence and why the copy gate exempts it. It names both
|
|
109
|
+
// halves of the failure because they have different fixes: two currents is a
|
|
110
|
+
// caller who marked two steps, and none is a caller who marked the step
|
|
111
|
+
// `current` points at as something else.
|
|
112
|
+
throw new Error(`Steps: ${placed} step(s) resolved to the current state, and exactly one must. ` +
|
|
113
|
+
'Set `current` to the index of the step the reader is on, and pass `state` only ' +
|
|
114
|
+
'on a step that was reached out of band.');
|
|
115
|
+
}
|
|
116
|
+
const last = steps.length - 1;
|
|
117
|
+
return (_jsx("ol", { "data-slot": "steps", "data-current": at, "aria-label": label, className: cn('flex w-full flex-col gap-4 sm:flex-row sm:gap-0', className), children: steps.map((step, index) => {
|
|
118
|
+
const state = resolved[index];
|
|
119
|
+
const here = index === at;
|
|
120
|
+
return (_jsxs("li", { "data-slot": "step", "data-state": state, "aria-current": here ? 'step' : undefined, className: cn('flex items-start', index === last ? 'flex-none' : 'flex-1'), children: [_jsxs("div", { "data-slot": "step-marker-row", className: "flex w-full items-center gap-2", children: [_jsx("span", { "data-slot": "step-marker", className: cn('inline-flex size-8 shrink-0 items-center justify-center rounded-full border-2 text-sm font-medium tabular-nums', MARKER[state]), children: _jsx("span", { "aria-hidden": "true", children: index + 1 }) }), index === last ? null : (_jsx("span", { "data-slot": "step-rule", "data-filled": state === 'upcoming' ? undefined : 'true', "aria-hidden": "true", className: cn('h-0.5 flex-1 rounded-full',
|
|
121
|
+
// Filled up to the step the reader is on and empty after it,
|
|
122
|
+
// which is the whole indicator: one element saying how far
|
|
123
|
+
// through they are, where a filled bar per step says "done"
|
|
124
|
+
// once per step and leaves the arithmetic to the reader.
|
|
125
|
+
state === 'upcoming' ? 'bg-border' : 'bg-primary') }))] }), _jsxs("div", { "data-slot": "step-text", className: "mt-2 min-w-0 sm:pr-4", children: [_jsx("p", { "data-slot": "step-label", className: cn('text-sm font-medium', state === 'upcoming' ? 'text-muted-foreground' : 'text-foreground'), children: step.label }), step.description === undefined ? null : (_jsx("p", { "data-slot": "step-description", className: "text-muted-foreground mt-0.5 text-sm", children: step.description }))] })] }, index));
|
|
126
|
+
}) }));
|
|
127
|
+
}
|
|
128
|
+
export { Steps };
|
|
@@ -36,6 +36,14 @@ export interface SwitchProps extends Omit<ComponentProps<'span'>, 'onChange'> {
|
|
|
36
36
|
* step: enabling notifications, turning a feature on. The control renders a
|
|
37
37
|
* hidden native input, so it submits with a form, and Space toggles it while
|
|
38
38
|
* focused. When the change needs an explicit save, use a Checkbox instead.
|
|
39
|
+
*
|
|
40
|
+
* **A coarse pointer gets the 44px floor as a band, and the pill is untouched.** The
|
|
41
|
+
* pill is 20 by 36 and the only control in this package whose shape does not suit a
|
|
42
|
+
* step: `h-11 w-11` would be a 44px switch, which is a switch nobody draws, and
|
|
43
|
+
* growing only the width would move the thumb's `translate-x-4` travel with the box.
|
|
44
|
+
* A band reaches the same 44px around the pill as drawn, and a switch sits alone in a
|
|
45
|
+
* settings row with empty space above and below it, so the fourteen pixels the band
|
|
46
|
+
* adds in each direction land on nothing a reader was aiming at.
|
|
39
47
|
*/
|
|
40
48
|
declare function Switch({ className, ...props }: SwitchProps): import("react").JSX.Element;
|
|
41
49
|
export { Switch };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/switch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC3E,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7C;AAED
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/switch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C;;;;;GAKG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAC3E,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,4CAA4C;IAC5C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7C;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BA4BnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -9,8 +9,19 @@ import { cn } from '../../lib/utils.js';
|
|
|
9
9
|
* step: enabling notifications, turning a feature on. The control renders a
|
|
10
10
|
* hidden native input, so it submits with a form, and Space toggles it while
|
|
11
11
|
* focused. When the change needs an explicit save, use a Checkbox instead.
|
|
12
|
+
*
|
|
13
|
+
* **A coarse pointer gets the 44px floor as a band, and the pill is untouched.** The
|
|
14
|
+
* pill is 20 by 36 and the only control in this package whose shape does not suit a
|
|
15
|
+
* step: `h-11 w-11` would be a 44px switch, which is a switch nobody draws, and
|
|
16
|
+
* growing only the width would move the thumb's `translate-x-4` travel with the box.
|
|
17
|
+
* A band reaches the same 44px around the pill as drawn, and a switch sits alone in a
|
|
18
|
+
* settings row with empty space above and below it, so the fourteen pixels the band
|
|
19
|
+
* adds in each direction land on nothing a reader was aiming at.
|
|
12
20
|
*/
|
|
13
21
|
function Switch({ className, ...props }) {
|
|
14
|
-
return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn('border-transparent bg-input shadow-xs inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 outline-none', 'transition-[color,box-shadow,background-color] duration-fast ease-out', 'data-[checked]:bg-primary data-[unchecked]:bg-input', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20', 'disabled:cursor-not-allowed disabled:opacity-50',
|
|
22
|
+
return (_jsx(SwitchPrimitive.Root, { "data-slot": "switch", className: cn('border-transparent bg-input shadow-xs relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 outline-none', 'transition-[color,box-shadow,background-color] duration-fast ease-out', 'data-[checked]:bg-primary data-[unchecked]:bg-input', 'focus-visible:border-ring focus-visible:ring-ring focus-visible:ring-[3px]', 'aria-invalid:border-destructive aria-invalid:ring-destructive/20', 'disabled:cursor-not-allowed disabled:opacity-50',
|
|
23
|
+
// `relative` is here only to give the band a containing block. The pill has no
|
|
24
|
+
// positioned ancestor and none of its own offsets, so this moves nothing.
|
|
25
|
+
'pointer-coarse:before:absolute pointer-coarse:before:left-1/2 pointer-coarse:before:top-1/2 pointer-coarse:before:h-11 pointer-coarse:before:w-11 pointer-coarse:before:-translate-x-1/2 pointer-coarse:before:-translate-y-1/2 pointer-coarse:before:content-[""]', className), ...props, children: _jsx(SwitchPrimitive.Thumb, { "data-slot": "switch-thumb", className: cn('bg-background pointer-events-none block size-4 rounded-full shadow-xs', 'transition-transform duration-base ease-out', 'data-[checked]:translate-x-4 data-[unchecked]:translate-x-0') }) }));
|
|
15
26
|
}
|
|
16
27
|
export { Switch };
|