@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,345 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type TableSortDirection } from './table-sort.js';
|
|
3
|
+
/**
|
|
4
|
+
* Which way a column is ordered, and how to leave that order.
|
|
5
|
+
*
|
|
6
|
+
* `TableSort`'s own union, taken rather than restated, because two Components that
|
|
7
|
+
* each declared a direction would be two lists to keep in step and the sort
|
|
8
|
+
* header's whole reason for existing is that it agrees with whatever reorders the
|
|
9
|
+
* rows.
|
|
10
|
+
*/
|
|
11
|
+
export type StatefulTableDirection = TableSortDirection;
|
|
12
|
+
/**
|
|
13
|
+
* One column of a StatefulTable that cannot be ordered.
|
|
14
|
+
*
|
|
15
|
+
* A separate arm rather than an optional `accessor` beside an optional `sortable`,
|
|
16
|
+
* and the split is the argument. A sortable column needs a value to sort *by*, and
|
|
17
|
+
* the value is not always the cell's text: a status column orders `critical,
|
|
18
|
+
* degraded, healthy` rather than alphabetically, and a column of charts orders on
|
|
19
|
+
* the number the chart reports. So the accessor is required in the sortable arm and
|
|
20
|
+
* the `sortable` boolean is absent from this one, and two optionals would be a
|
|
21
|
+
* combination that type-checks and then cannot sort anything.
|
|
22
|
+
*/
|
|
23
|
+
export type StatefulTableColumn<TRow> = {
|
|
24
|
+
/** The column's stable key, and what a sort names. */
|
|
25
|
+
id: string;
|
|
26
|
+
/** The column's visible name. */
|
|
27
|
+
header: ReactNode;
|
|
28
|
+
/** The cell's content for one row. */
|
|
29
|
+
cell: (row: TRow) => ReactNode;
|
|
30
|
+
/** Whether this column can be ordered. */
|
|
31
|
+
sortable?: false;
|
|
32
|
+
};
|
|
33
|
+
/** One column of a StatefulTable that can be ordered, and by what. */
|
|
34
|
+
export type StatefulTableSortableColumn<TRow> = {
|
|
35
|
+
/** The column's stable key, and what a sort names. */
|
|
36
|
+
id: string;
|
|
37
|
+
/** The column's visible name. */
|
|
38
|
+
header: ReactNode;
|
|
39
|
+
/** The cell's content for one row. */
|
|
40
|
+
cell: (row: TRow) => ReactNode;
|
|
41
|
+
/** This column can be ordered, and the value it orders on. */
|
|
42
|
+
sortable: true;
|
|
43
|
+
/**
|
|
44
|
+
* The value this column orders on, for one row.
|
|
45
|
+
*
|
|
46
|
+
* Required, and it is the whole of this Component's authority over the caller's
|
|
47
|
+
* data: the value sorted on is the caller's and never the cell's text, because a
|
|
48
|
+
* Component that inferred an accessor from a rendered cell would be deciding the
|
|
49
|
+
* order of records it cannot read.
|
|
50
|
+
*/
|
|
51
|
+
accessor: (row: TRow) => string | number;
|
|
52
|
+
};
|
|
53
|
+
/** One column, sortable or not. */
|
|
54
|
+
export type StatefulTableColumnUnion<TRow> = StatefulTableColumn<TRow> | StatefulTableSortableColumn<TRow>;
|
|
55
|
+
/**
|
|
56
|
+
* Which column is ordered, and which way.
|
|
57
|
+
*
|
|
58
|
+
* A single value rather than a per-column record, and the reason is the one
|
|
59
|
+
* `table-sort` gives for putting `aria-sort` on exactly one header: two columns
|
|
60
|
+
* both reporting an order is a table claiming to be sorted two ways at once, and a
|
|
61
|
+
* reader comparing the two hears a contradiction. One column, one direction.
|
|
62
|
+
*/
|
|
63
|
+
export type StatefulTableSort = {
|
|
64
|
+
/** The id of the column that is ordered. */
|
|
65
|
+
column: string;
|
|
66
|
+
/** The way it is ordered. */
|
|
67
|
+
direction: StatefulTableDirection;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* The state a StatefulTable owns and the caller reads.
|
|
71
|
+
*
|
|
72
|
+
* One value rather than four props, and the reason is that these four are not
|
|
73
|
+
* independent. Which page is showing is a function of the order and the set in every
|
|
74
|
+
* implementation anyone writes, and four props let a caller hold a page number that
|
|
75
|
+
* contradicts the sort they have just set, which is a table showing rows that are
|
|
76
|
+
* not in the order its own header claims. One value is also one place to put, so a
|
|
77
|
+
* caller can hold it in a reducer, in a store, or in an address query and this
|
|
78
|
+
* Component does not care which.
|
|
79
|
+
*/
|
|
80
|
+
export type StatefulTableState = {
|
|
81
|
+
/**
|
|
82
|
+
* Which column is ordered and which way, or `null` for the caller's own order.
|
|
83
|
+
*
|
|
84
|
+
* `null` is the order of the array as it was handed over, and it is reachable from
|
|
85
|
+
* the control rather than only at mount, because a reader who sorted a column to
|
|
86
|
+
* find the extreme and no longer cares has to be able to get the original back
|
|
87
|
+
* from the header they already know. That is `table-sort`'s three-state cycle and
|
|
88
|
+
* this is where the third state is spent.
|
|
89
|
+
*/
|
|
90
|
+
sort: StatefulTableSort | null;
|
|
91
|
+
/** The keys of the rows the reader has selected. */
|
|
92
|
+
selection: readonly string[];
|
|
93
|
+
/**
|
|
94
|
+
* The ids of the columns the reader has hidden.
|
|
95
|
+
*
|
|
96
|
+
* Kept beside `selection` rather than folded into the column list for the reason
|
|
97
|
+
* the sort is a value and not a column field: a column marked hidden in the list
|
|
98
|
+
* would be undone by every fetch that rebuilds the list, and a caller's columns
|
|
99
|
+
* say which columns exist rather than which are on screen right now.
|
|
100
|
+
*/
|
|
101
|
+
hiddenColumns: readonly string[];
|
|
102
|
+
/**
|
|
103
|
+
* The page being shown, counting from zero.
|
|
104
|
+
*
|
|
105
|
+
* Clamped on the way out rather than refused on the way in, for the reason `Steps`
|
|
106
|
+
* clamps `current`: an out-of-range page after the caller narrows the set is an
|
|
107
|
+
* ordinary event, and the reader should land on the last page that has rows on it
|
|
108
|
+
* rather than on an empty table with an error beside it.
|
|
109
|
+
*/
|
|
110
|
+
page: number;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* One state change, and which of the four facts it moved.
|
|
114
|
+
*
|
|
115
|
+
* `changed` is there so a caller can persist one thing rather than four: a table in
|
|
116
|
+
* an address wants the sort and the page and not the selection, and a change report
|
|
117
|
+
* with no field for that makes every caller diff the object themselves. It is called
|
|
118
|
+
* `visibility` rather than `hiddenColumns` because it names the fact that changed
|
|
119
|
+
* rather than the field that holds it, and a caller reading a persisted event log is
|
|
120
|
+
* better served by the former.
|
|
121
|
+
*/
|
|
122
|
+
export type StatefulTableChange = {
|
|
123
|
+
/** The state to move to. */
|
|
124
|
+
state: StatefulTableState;
|
|
125
|
+
/** Which of the four facts changed. */
|
|
126
|
+
changed: 'sort' | 'selection' | 'visibility' | 'page';
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* The props a StatefulTable accepts.
|
|
130
|
+
*
|
|
131
|
+
* A declared interface rather than one extended from `Table`'s, and the reason is
|
|
132
|
+
* this Component: `Table` is presentational and forwards every native table prop, so
|
|
133
|
+
* extending it would hand this Component a `children` that is a body, a `className`
|
|
134
|
+
* that is a table's, and no place at all for the four state props that are the
|
|
135
|
+
* reason it exists.
|
|
136
|
+
*/
|
|
137
|
+
export interface StatefulTableProps<TRow> {
|
|
138
|
+
/**
|
|
139
|
+
* The rows, in the order the caller wants them before this Component has reordered
|
|
140
|
+
* anything.
|
|
141
|
+
*
|
|
142
|
+
* Required, and the caller's order is what `sort: null` means. A caller with a
|
|
143
|
+
* server-side order hands over rows already in that order and a reader who sorts
|
|
144
|
+
* and then unsorts gets the caller's order back rather than an arbitrary one.
|
|
145
|
+
*/
|
|
146
|
+
rows: readonly TRow[];
|
|
147
|
+
/**
|
|
148
|
+
* The caller's key for a row.
|
|
149
|
+
*
|
|
150
|
+
* Required, because selection is a set of keys and reordering maps positions to
|
|
151
|
+
* rows, and a Component that read identity off a position would select the wrong
|
|
152
|
+
* row the instant the order changed.
|
|
153
|
+
*/
|
|
154
|
+
getRowId: (row: TRow) => string;
|
|
155
|
+
/** The columns, in the order they are shown. */
|
|
156
|
+
columns: readonly StatefulTableColumnUnion<TRow>[];
|
|
157
|
+
/**
|
|
158
|
+
* The state, controlled.
|
|
159
|
+
*
|
|
160
|
+
* Required and never defaulted, because a table that kept its own sort and
|
|
161
|
+
* selection could not be read back by the caller, and a caller who cannot read the
|
|
162
|
+
* sort cannot put it in an address, cannot restore it, and cannot tell a server
|
|
163
|
+
* which page to send. Controlled is the decision; an uncontrolled sibling would be
|
|
164
|
+
* a second way to say the same four facts and the two would disagree within a
|
|
165
|
+
* release.
|
|
166
|
+
*/
|
|
167
|
+
state: StatefulTableState;
|
|
168
|
+
/** Called when any of the four facts changes. */
|
|
169
|
+
onChange: (change: StatefulTableChange) => void;
|
|
170
|
+
/**
|
|
171
|
+
* The table's caption, drawn by `TableCaption` where a caption belongs.
|
|
172
|
+
*
|
|
173
|
+
* Optional rather than required because `label` already names the table, and a
|
|
174
|
+
* caption that repeats the accessible name is a sentence read twice. Pass one
|
|
175
|
+
* where it says something the name does not: what the set is a slice of, or what
|
|
176
|
+
* a row means.
|
|
177
|
+
*/
|
|
178
|
+
caption?: ReactNode;
|
|
179
|
+
/**
|
|
180
|
+
* The table's accessible name.
|
|
181
|
+
*
|
|
182
|
+
* Required, and a `string` because it goes into `aria-label` and an accessible
|
|
183
|
+
* name is a string. A table with no name is announced as "table" and a page with
|
|
184
|
+
* two of them is a page where a reader cannot tell which is which.
|
|
185
|
+
*/
|
|
186
|
+
label: string;
|
|
187
|
+
/**
|
|
188
|
+
* The words read for what pressing a sortable header will do.
|
|
189
|
+
*
|
|
190
|
+
* Required, and a function of the *next* direction for the reason `table-sort`
|
|
191
|
+
* gives at length: a header that announces "sorted ascending" when it is already
|
|
192
|
+
* ascending tells a reader nothing about the press they are about to make.
|
|
193
|
+
*/
|
|
194
|
+
announceSort: (column: string, direction: StatefulTableDirection) => string;
|
|
195
|
+
/**
|
|
196
|
+
* The label of the control that selects every row on the page.
|
|
197
|
+
*
|
|
198
|
+
* Required, and a `string` because it is written into `aria-label` and an
|
|
199
|
+
* accessible name is a string. It is expected to carry the count, because a
|
|
200
|
+
* control labelled "Select all" beside twenty rows a reader has not seen is a
|
|
201
|
+
* claim about the whole set when it means the page.
|
|
202
|
+
*/
|
|
203
|
+
selectAllLabel: string;
|
|
204
|
+
/** The accessible name of one row's selection control, given the row's key. */
|
|
205
|
+
selectRowLabel: (rowKey: string) => string;
|
|
206
|
+
/**
|
|
207
|
+
* The label of the control that shows and hides columns.
|
|
208
|
+
*
|
|
209
|
+
* Required, and it opens a disclosure rather than sitting as a row of checkboxes
|
|
210
|
+
* because which columns exist is a fact about the caller's data and the screen it
|
|
211
|
+
* is on, and a control that is a row of boxes beside the header on a phone has
|
|
212
|
+
* taken the table's whole width to describe itself.
|
|
213
|
+
*/
|
|
214
|
+
columnsLabel: ReactNode;
|
|
215
|
+
/**
|
|
216
|
+
* The words shown when the set has no rows.
|
|
217
|
+
*
|
|
218
|
+
* Required, and required because an empty `<tbody>` is a table with a shape and
|
|
219
|
+
* nothing in it, which reads as a rendering failure. A sentence is the caller's,
|
|
220
|
+
* because a set that is empty because it is loading and a set that is empty
|
|
221
|
+
* because there is nothing are two different sentences and only the caller knows
|
|
222
|
+
* which one applies.
|
|
223
|
+
*/
|
|
224
|
+
emptyLabel: ReactNode;
|
|
225
|
+
/**
|
|
226
|
+
* The words on the control that goes to the previous page.
|
|
227
|
+
*
|
|
228
|
+
* Required, and required as a pair with `nextPageLabel` because the two are the
|
|
229
|
+
* same control in two positions: a caller who localises one and not the other has
|
|
230
|
+
* a control that looks localised and is half of it, which is the state
|
|
231
|
+
* `PaginationPrevious` exists to prevent.
|
|
232
|
+
*/
|
|
233
|
+
previousPageLabel: string;
|
|
234
|
+
/** The words on the control that goes to the next page. */
|
|
235
|
+
nextPageLabel: string;
|
|
236
|
+
/**
|
|
237
|
+
* The words for where the reader is in the set, given the page and how many there
|
|
238
|
+
* are.
|
|
239
|
+
*
|
|
240
|
+
* Required, and a function because "Page 2 of 9" is false in a language that puts
|
|
241
|
+
* the total first, and a pager that assembled the sentence would have assembled it
|
|
242
|
+
* in one of them. It is also the accessible name of the pager, so a reader who
|
|
243
|
+
* arrives at that row is told where they are before they touch either control.
|
|
244
|
+
*/
|
|
245
|
+
pageLabel: (page: number, pages: number) => string;
|
|
246
|
+
/**
|
|
247
|
+
* How many rows a page holds.
|
|
248
|
+
*
|
|
249
|
+
* A number and not a class, because the bound is data: the same table is forty rows
|
|
250
|
+
* in a sidebar and eight on a full page, and a caller who could only say
|
|
251
|
+
* `max-h-80` would be picking one of those for the other. It has no effect on a
|
|
252
|
+
* set smaller than it.
|
|
253
|
+
*
|
|
254
|
+
* @defaultValue 10
|
|
255
|
+
*/
|
|
256
|
+
pageSize?: number;
|
|
257
|
+
/** Layout only. Changing a Prism-owned visual property from here is prohibited. */
|
|
258
|
+
className?: string;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* A row set that owns its sort, its selection, its column visibility and its page,
|
|
262
|
+
* and hands all four to the caller as one value.
|
|
263
|
+
*
|
|
264
|
+
* **Prism's `table` is presentational and `table-sort` is a header cell, and this
|
|
265
|
+
* is the thing neither of them is.** `Table` forwards every native table prop and
|
|
266
|
+
* holds nothing; `TableSort` reports a direction and leaves the reordering to the
|
|
267
|
+
* caller. Between them is the half every consumer writes again: the row order, which
|
|
268
|
+
* rows are selected, which columns are on screen and which page is showing, and the
|
|
269
|
+
* four have to agree with each other after every change. That agreement is the
|
|
270
|
+
* Component. A caller holding them as four independent props gets a page number that
|
|
271
|
+
* does not match the sort they have just set, which is a table whose rows are not in
|
|
272
|
+
* the order its own header claims.
|
|
273
|
+
*
|
|
274
|
+
* **One state value rather than four props, for the same reason.** The four are not
|
|
275
|
+
* independent: which page is showing is a function of the order and the set in every
|
|
276
|
+
* implementation anyone writes, and four props let a caller hold a contradiction. One
|
|
277
|
+
* value is also one place to hold it, so a caller can put it in a reducer, in their
|
|
278
|
+
* store, or in an address query and this Component does not care which. The cost is
|
|
279
|
+
* that a caller changing one fact spreads the rest, which is one line and is the
|
|
280
|
+
* price of the four being unable to disagree.
|
|
281
|
+
*
|
|
282
|
+
* **It owns the order, and the accessor is how.** This is the one place a Component
|
|
283
|
+
* in this package decides something about the caller's data, and the refusal to do
|
|
284
|
+
* it any other way is the design. A column is sortable only when it carries an
|
|
285
|
+
* `accessor`, so the value sorted on is the caller's and never the cell's text: a
|
|
286
|
+
* status column that orders `critical, degraded, healthy` and a column of charts that
|
|
287
|
+
* orders on the number the chart reports are both expressible here, and neither is
|
|
288
|
+
* guessable from a cell. That is why the column type is a union of a sortable arm and
|
|
289
|
+
* a plain one rather than two optionals: an optional accessor beside a `sortable`
|
|
290
|
+
* boolean is a combination that type-checks and then cannot sort anything.
|
|
291
|
+
*
|
|
292
|
+
* **Numbers compare as numbers and everything else goes through the platform's own
|
|
293
|
+
* collator.** The `Intl.Collator` half is not a nicety: a name column ordered with
|
|
294
|
+
* `<` puts every uppercase name before every lowercase one in half the languages a
|
|
295
|
+
* product is sold in, and the comparator that fixes that belongs to the platform
|
|
296
|
+
* rather than to this package. The locale is the runtime's own, which is right on a
|
|
297
|
+
* server and wrong on a multilingual page, so it is stated here rather than guessed.
|
|
298
|
+
* `numeric` is on so a column of identifiers orders 2 before 10, which is the one
|
|
299
|
+
* case a reader always notices.
|
|
300
|
+
*
|
|
301
|
+
* **A server-ordered set is the original order, and that is what `sort: null` means.**
|
|
302
|
+
* A caller with a server-side order hands over rows already in it, and a reader who
|
|
303
|
+
* sorts and then unsorts gets the caller's order back. The three-state cycle on the
|
|
304
|
+
* header is `table-sort`'s and it is spent here, in the third state: one route back
|
|
305
|
+
* to the original, and it is the header they already know.
|
|
306
|
+
*
|
|
307
|
+
* **Selection is a set of the caller's keys, and the header's control covers the
|
|
308
|
+
* page rather than the set.** The two differ whenever the caller pages, and
|
|
309
|
+
* conflating them is the defect this Component exists to prevent: a "select all"
|
|
310
|
+
* that selected every row on the server when twenty are on screen acted on four
|
|
311
|
+
* hundred rows a reader never saw. So the header's checkbox covers the rows on the
|
|
312
|
+
* current page, it is `indeterminate` when some of them are selected, and the words
|
|
313
|
+
* are the caller's.
|
|
314
|
+
*
|
|
315
|
+
* **Column visibility is the reader's preference and lives beside the columns rather
|
|
316
|
+
* than inside them.** A column marked hidden in the caller's array would be undone by
|
|
317
|
+
* every fetch that rebuilds the array, and a caller's columns say which columns exist
|
|
318
|
+
* rather than which are on screen right now. Nothing is hidden on width alone: a
|
|
319
|
+
* table with eleven columns on a phone is a hard problem, and pruning columns by
|
|
320
|
+
* guessing at a width takes away a column the reader needed without telling them,
|
|
321
|
+
* which is a worse failure than a scroll.
|
|
322
|
+
*
|
|
323
|
+
* **The header is a real `<tr>` of `<th scope="col">` cells and the sortable ones are
|
|
324
|
+
* `TableSort`, composed.** Neither is this Component's decision: a header row of
|
|
325
|
+
* `div`s is a grid with no column names in it, and a screen reader moving across a
|
|
326
|
+
* table announces a column rather than a button. `TableSort` carries the direction,
|
|
327
|
+
* the mark and the announcement, and the caller's `announceSort` is passed straight
|
|
328
|
+
* through to it, so the sentence a reader hears about a press is the caller's.
|
|
329
|
+
*
|
|
330
|
+
* **The pager is drawn only when there is more than one page**, because a pager on a
|
|
331
|
+
* set of four rows is a row of controls describing a choice the reader does not have.
|
|
332
|
+
* Its controls are `aria-disabled` rather than natively disabled on the end pages,
|
|
333
|
+
* for the reason `FormWizard` gives on its back control: a control that leaves the
|
|
334
|
+
* tab order answers a press with silence.
|
|
335
|
+
*
|
|
336
|
+
* **It is a client Component**, because every one of the four changes happens after
|
|
337
|
+
* the reader acts, and because `state`, `onChange` and the row and column accessors
|
|
338
|
+
* are functions the caller hands it, which is a client-to-client boundary wherever it
|
|
339
|
+
* is written. What that costs is the price of every client control: a server
|
|
340
|
+
* Component may render one page of rows once with the state already in place, and
|
|
341
|
+
* what it may not do is let the reader change any of the four facts.
|
|
342
|
+
*/
|
|
343
|
+
declare function StatefulTable({ rows, getRowId, columns, state, onChange, caption, label, announceSort, selectAllLabel, selectRowLabel, columnsLabel, emptyLabel, previousPageLabel, nextPageLabel, pageLabel, pageSize, className, }: StatefulTableProps<any>): import("react").JSX.Element;
|
|
344
|
+
export { StatefulTable };
|
|
345
|
+
//# sourceMappingURL=stateful-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateful-table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/stateful-table.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAavD,OAAO,EAAa,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGjE;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,CAAA;AAEvD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,CAAC,IAAI,IAAI;IACtC,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,MAAM,EAAE,SAAS,CAAA;IACjB,sCAAsC;IACtC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAA;IAC9B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CAAA;AAED,sEAAsE;AACtE,MAAM,MAAM,2BAA2B,CAAC,IAAI,IAAI;IAC9C,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAA;IACV,iCAAiC;IACjC,MAAM,EAAE,SAAS,CAAA;IACjB,sCAAsC;IACtC,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,SAAS,CAAA;IAC9B,8DAA8D;IAC9D,QAAQ,EAAE,IAAI,CAAA;IACd;;;;;;;OAOG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,GAAG,MAAM,CAAA;CACzC,CAAA;AAED,mCAAmC;AACnC,MAAM,MAAM,wBAAwB,CAAC,IAAI,IACrC,mBAAmB,CAAC,IAAI,CAAC,GACzB,2BAA2B,CAAC,IAAI,CAAC,CAAA;AAErC;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,6BAA6B;IAC7B,SAAS,EAAE,sBAAsB,CAAA;CAClC,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;;;;OAQG;IACH,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAAA;IAC9B,oDAAoD;IACpD,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B;;;;;;;OAOG;IACH,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,4BAA4B;IAC5B,KAAK,EAAE,kBAAkB,CAAA;IACzB,uCAAuC;IACvC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAA;CACtD,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB,CAAC,IAAI;IACtC;;;;;;;OAOG;IACH,IAAI,EAAE,SAAS,IAAI,EAAE,CAAA;IACrB;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,KAAK,MAAM,CAAA;IAC/B,gDAAgD;IAChD,OAAO,EAAE,SAAS,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAA;IAClD;;;;;;;;;OASG;IACH,KAAK,EAAE,kBAAkB,CAAA;IACzB,iDAAiD;IACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAA;IAC/C;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;OAMG;IACH,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,KAAK,MAAM,CAAA;IAC3E;;;;;;;OAOG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,+EAA+E;IAC/E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IAC1C;;;;;;;OAOG;IACH,YAAY,EAAE,SAAS,CAAA;IACvB;;;;;;;;OAQG;IACH,UAAU,EAAE,SAAS,CAAA;IACrB;;;;;;;OAOG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,iBAAS,aAAa,CAAC,EACrB,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,EACP,KAAK,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,QAAa,EACb,SAAS,GACV,EAAE,kBAAkB,CAAC,GAAG,CAAC,+BAoPzB;AA8BD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useId, useState } from 'react';
|
|
4
|
+
import { Button } from './button.js';
|
|
5
|
+
import { Checkbox } from './checkbox.js';
|
|
6
|
+
import { Table, TableBody, TableCaption, TableCell, TableHead, TableHeader, TableRow, } from './table.js';
|
|
7
|
+
import { TableSort } from './table-sort.js';
|
|
8
|
+
import { cn } from '../../lib/utils.js';
|
|
9
|
+
/**
|
|
10
|
+
* A row set that owns its sort, its selection, its column visibility and its page,
|
|
11
|
+
* and hands all four to the caller as one value.
|
|
12
|
+
*
|
|
13
|
+
* **Prism's `table` is presentational and `table-sort` is a header cell, and this
|
|
14
|
+
* is the thing neither of them is.** `Table` forwards every native table prop and
|
|
15
|
+
* holds nothing; `TableSort` reports a direction and leaves the reordering to the
|
|
16
|
+
* caller. Between them is the half every consumer writes again: the row order, which
|
|
17
|
+
* rows are selected, which columns are on screen and which page is showing, and the
|
|
18
|
+
* four have to agree with each other after every change. That agreement is the
|
|
19
|
+
* Component. A caller holding them as four independent props gets a page number that
|
|
20
|
+
* does not match the sort they have just set, which is a table whose rows are not in
|
|
21
|
+
* the order its own header claims.
|
|
22
|
+
*
|
|
23
|
+
* **One state value rather than four props, for the same reason.** The four are not
|
|
24
|
+
* independent: which page is showing is a function of the order and the set in every
|
|
25
|
+
* implementation anyone writes, and four props let a caller hold a contradiction. One
|
|
26
|
+
* value is also one place to hold it, so a caller can put it in a reducer, in their
|
|
27
|
+
* store, or in an address query and this Component does not care which. The cost is
|
|
28
|
+
* that a caller changing one fact spreads the rest, which is one line and is the
|
|
29
|
+
* price of the four being unable to disagree.
|
|
30
|
+
*
|
|
31
|
+
* **It owns the order, and the accessor is how.** This is the one place a Component
|
|
32
|
+
* in this package decides something about the caller's data, and the refusal to do
|
|
33
|
+
* it any other way is the design. A column is sortable only when it carries an
|
|
34
|
+
* `accessor`, so the value sorted on is the caller's and never the cell's text: a
|
|
35
|
+
* status column that orders `critical, degraded, healthy` and a column of charts that
|
|
36
|
+
* orders on the number the chart reports are both expressible here, and neither is
|
|
37
|
+
* guessable from a cell. That is why the column type is a union of a sortable arm and
|
|
38
|
+
* a plain one rather than two optionals: an optional accessor beside a `sortable`
|
|
39
|
+
* boolean is a combination that type-checks and then cannot sort anything.
|
|
40
|
+
*
|
|
41
|
+
* **Numbers compare as numbers and everything else goes through the platform's own
|
|
42
|
+
* collator.** The `Intl.Collator` half is not a nicety: a name column ordered with
|
|
43
|
+
* `<` puts every uppercase name before every lowercase one in half the languages a
|
|
44
|
+
* product is sold in, and the comparator that fixes that belongs to the platform
|
|
45
|
+
* rather than to this package. The locale is the runtime's own, which is right on a
|
|
46
|
+
* server and wrong on a multilingual page, so it is stated here rather than guessed.
|
|
47
|
+
* `numeric` is on so a column of identifiers orders 2 before 10, which is the one
|
|
48
|
+
* case a reader always notices.
|
|
49
|
+
*
|
|
50
|
+
* **A server-ordered set is the original order, and that is what `sort: null` means.**
|
|
51
|
+
* A caller with a server-side order hands over rows already in it, and a reader who
|
|
52
|
+
* sorts and then unsorts gets the caller's order back. The three-state cycle on the
|
|
53
|
+
* header is `table-sort`'s and it is spent here, in the third state: one route back
|
|
54
|
+
* to the original, and it is the header they already know.
|
|
55
|
+
*
|
|
56
|
+
* **Selection is a set of the caller's keys, and the header's control covers the
|
|
57
|
+
* page rather than the set.** The two differ whenever the caller pages, and
|
|
58
|
+
* conflating them is the defect this Component exists to prevent: a "select all"
|
|
59
|
+
* that selected every row on the server when twenty are on screen acted on four
|
|
60
|
+
* hundred rows a reader never saw. So the header's checkbox covers the rows on the
|
|
61
|
+
* current page, it is `indeterminate` when some of them are selected, and the words
|
|
62
|
+
* are the caller's.
|
|
63
|
+
*
|
|
64
|
+
* **Column visibility is the reader's preference and lives beside the columns rather
|
|
65
|
+
* than inside them.** A column marked hidden in the caller's array would be undone by
|
|
66
|
+
* every fetch that rebuilds the array, and a caller's columns say which columns exist
|
|
67
|
+
* rather than which are on screen right now. Nothing is hidden on width alone: a
|
|
68
|
+
* table with eleven columns on a phone is a hard problem, and pruning columns by
|
|
69
|
+
* guessing at a width takes away a column the reader needed without telling them,
|
|
70
|
+
* which is a worse failure than a scroll.
|
|
71
|
+
*
|
|
72
|
+
* **The header is a real `<tr>` of `<th scope="col">` cells and the sortable ones are
|
|
73
|
+
* `TableSort`, composed.** Neither is this Component's decision: a header row of
|
|
74
|
+
* `div`s is a grid with no column names in it, and a screen reader moving across a
|
|
75
|
+
* table announces a column rather than a button. `TableSort` carries the direction,
|
|
76
|
+
* the mark and the announcement, and the caller's `announceSort` is passed straight
|
|
77
|
+
* through to it, so the sentence a reader hears about a press is the caller's.
|
|
78
|
+
*
|
|
79
|
+
* **The pager is drawn only when there is more than one page**, because a pager on a
|
|
80
|
+
* set of four rows is a row of controls describing a choice the reader does not have.
|
|
81
|
+
* Its controls are `aria-disabled` rather than natively disabled on the end pages,
|
|
82
|
+
* for the reason `FormWizard` gives on its back control: a control that leaves the
|
|
83
|
+
* tab order answers a press with silence.
|
|
84
|
+
*
|
|
85
|
+
* **It is a client Component**, because every one of the four changes happens after
|
|
86
|
+
* the reader acts, and because `state`, `onChange` and the row and column accessors
|
|
87
|
+
* are functions the caller hands it, which is a client-to-client boundary wherever it
|
|
88
|
+
* is written. What that costs is the price of every client control: a server
|
|
89
|
+
* Component may render one page of rows once with the state already in place, and
|
|
90
|
+
* what it may not do is let the reader change any of the four facts.
|
|
91
|
+
*/
|
|
92
|
+
function StatefulTable({ rows, getRowId, columns, state, onChange, caption, label, announceSort, selectAllLabel, selectRowLabel, columnsLabel, emptyLabel, previousPageLabel, nextPageLabel, pageLabel, pageSize = 10, className, }) {
|
|
93
|
+
const generated = useId();
|
|
94
|
+
const [columnsOpen, setColumnsOpen] = useState(false);
|
|
95
|
+
const columnsId = `${generated}-columns`;
|
|
96
|
+
const shown = columns.filter((column) => !state.hiddenColumns.includes(column.id));
|
|
97
|
+
const ordered = state.sort === null ? [...rows] : [...rows].sort(comparator(state.sort, columns));
|
|
98
|
+
const pages = Math.max(1, Math.ceil(ordered.length / Math.max(1, pageSize)));
|
|
99
|
+
const page = Math.min(Math.max(Math.trunc(state.page), 0), pages - 1);
|
|
100
|
+
const visible = ordered.slice(page * pageSize, page * pageSize + pageSize);
|
|
101
|
+
const selected = new Set(state.selection);
|
|
102
|
+
const pageKeys = visible.map(getRowId);
|
|
103
|
+
const everyOnPage = pageKeys.length > 0 && pageKeys.every((key) => selected.has(key));
|
|
104
|
+
const someOnPage = pageKeys.some((key) => selected.has(key));
|
|
105
|
+
const move = (next, changed) => onChange({ state: { ...state, ...next }, changed });
|
|
106
|
+
return (_jsxs("div", { "data-slot": "stateful-table", className: cn('flex w-full flex-col gap-3', className), children: [_jsxs("div", { "data-slot": "stateful-table-toolbar", className: "flex items-center justify-end", children: [_jsx(Button, { "data-slot": "stateful-table-columns-toggle", type: "button", variant: "outline", size: "sm", "aria-expanded": columnsOpen, "aria-controls": columnsId, onClick: () => setColumnsOpen((open) => !open), children: columnsLabel }), _jsx("div", { id: columnsId, "data-slot": "stateful-table-columns", hidden: !columnsOpen, className: "border-border bg-popover text-popover-foreground absolute end-4 mt-9 flex flex-col gap-2 rounded-md border p-3 shadow-md", children: columns.map((column) => (_jsxs("label", { "data-slot": "stateful-table-column-toggle", className: "flex items-center gap-2 text-sm", children: [_jsx(Checkbox, { checked: !state.hiddenColumns.includes(column.id), onCheckedChange: (next) => move({
|
|
107
|
+
hiddenColumns: next
|
|
108
|
+
? state.hiddenColumns.filter((id) => id !== column.id)
|
|
109
|
+
: [...state.hiddenColumns, column.id],
|
|
110
|
+
}, 'visibility') }), column.header] }, column.id))) })] }), _jsxs(Table, { "data-slot": "stateful-table-frame", "aria-label": label, className: "w-full", children: [caption === undefined ? null : _jsx(TableCaption, { children: caption }), _jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { className: "w-10", children: _jsx(Checkbox, { "data-slot": "stateful-table-select-all", checked: everyOnPage, indeterminate: someOnPage && !everyOnPage, "aria-label": selectAllLabel, onCheckedChange: (next) => move({
|
|
111
|
+
// The page's rows and not the set's. A control that selected
|
|
112
|
+
// every row on the server when twenty are on screen acted on
|
|
113
|
+
// four hundred rows the reader never saw, and that is the defect
|
|
114
|
+
// this Component exists to prevent rather than to ship.
|
|
115
|
+
selection: next
|
|
116
|
+
? [...new Set([...state.selection, ...pageKeys])]
|
|
117
|
+
: state.selection.filter((key) => !pageKeys.includes(key)),
|
|
118
|
+
}, 'selection') }) }), shown.map((column) => (_jsx(TableHead, { children: column.sortable === true ? (_jsx(TableSort, { column: column.id, direction: state.sort !== null && state.sort.column === column.id
|
|
119
|
+
? state.sort.direction
|
|
120
|
+
: 'none', onDirectionChange: (direction) => move({
|
|
121
|
+
sort: direction === 'none' ? null : { column: column.id, direction },
|
|
122
|
+
// Back to the first page, because a page number chosen for
|
|
123
|
+
// one order means nothing in another and the reader who
|
|
124
|
+
// changed the order is on a page that may have nothing on
|
|
125
|
+
// it.
|
|
126
|
+
page: 0,
|
|
127
|
+
}, 'sort'), announce: (direction) => announceSort(column.id, direction), children: column.header })) : (column.header) }, column.id)))] }) }), _jsx(TableBody, { children: visible.length === 0 ? (_jsx(TableRow, { children: _jsx(TableCell, { colSpan: shown.length + 1, "data-slot": "stateful-table-empty", children: emptyLabel }) })) : (visible.map((row) => {
|
|
128
|
+
const key = getRowId(row);
|
|
129
|
+
const isSelected = selected.has(key);
|
|
130
|
+
return (_jsxs(TableRow, { "data-slot": "stateful-table-row", "data-selected": isSelected ? 'true' : undefined, "data-state": isSelected ? 'selected' : undefined, className: isSelected ? 'bg-muted' : undefined, children: [_jsx(TableCell, { className: "w-10", children: _jsx(Checkbox, { "data-slot": "stateful-table-select-row", checked: isSelected, "aria-label": selectRowLabel(key), onCheckedChange: (next) => move({
|
|
131
|
+
selection: next
|
|
132
|
+
? [...state.selection, key]
|
|
133
|
+
: state.selection.filter((held) => held !== key),
|
|
134
|
+
}, 'selection') }) }), shown.map((column) => (_jsx(TableCell, { "data-slot": "stateful-table-cell", children: column.cell(row) }, column.id)))] }, key));
|
|
135
|
+
})) })] }), pages <= 1 ? null : (_jsxs("nav", { "data-slot": "stateful-table-pager", "aria-label": pageLabel(page, pages), className: "flex items-center justify-end gap-2", children: [_jsx(Button, { "data-slot": "stateful-table-previous", type: "button", variant: "outline", size: "sm", "aria-disabled": page === 0 || undefined, onClick: () => {
|
|
136
|
+
if (page === 0)
|
|
137
|
+
return;
|
|
138
|
+
move({ page: page - 1 }, 'page');
|
|
139
|
+
}, children: previousPageLabel }), _jsx("span", { "data-slot": "stateful-table-page", "aria-hidden": "true", className: "text-muted-foreground text-sm tabular-nums", children: pageLabel(page, pages) }), _jsx(Button, { "data-slot": "stateful-table-next", type: "button", variant: "outline", size: "sm", "aria-disabled": page === pages - 1 || undefined, onClick: () => {
|
|
140
|
+
if (page === pages - 1)
|
|
141
|
+
return;
|
|
142
|
+
move({ page: page + 1 }, 'page');
|
|
143
|
+
}, children: nextPageLabel })] }))] }));
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* The comparator a sort uses, read off the caller's own accessor.
|
|
147
|
+
*
|
|
148
|
+
* A column with no accessor returns a comparator that preserves the order, and it is
|
|
149
|
+
* unreachable rather than defensive: `TableSort` is rendered only in the arm of the
|
|
150
|
+
* column union that carries one, so the type has already said the accessor is there.
|
|
151
|
+
* The guard is here because a caller can cast their columns into the union, and a
|
|
152
|
+
* silently unsorted column is the one failure this Component cannot afford.
|
|
153
|
+
*/
|
|
154
|
+
function comparator({ column, direction }, columns) {
|
|
155
|
+
const found = columns.find((candidate) => candidate.id === column);
|
|
156
|
+
const accessor = found?.accessor;
|
|
157
|
+
if (accessor === undefined)
|
|
158
|
+
return () => 0;
|
|
159
|
+
const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' });
|
|
160
|
+
const sign = direction === 'descending' ? -1 : 1;
|
|
161
|
+
return (a, b) => {
|
|
162
|
+
const left = accessor(a);
|
|
163
|
+
const right = accessor(b);
|
|
164
|
+
if (typeof left === 'number' && typeof right === 'number')
|
|
165
|
+
return (left - right) * sign;
|
|
166
|
+
return collator.compare(String(left), String(right)) * sign;
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export { StatefulTable };
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* The five tones a Status's dot can take.
|
|
4
|
+
*
|
|
5
|
+
* A tone is a judgement the caller makes, and this Component has the same reason
|
|
6
|
+
* `MeterTone` gives for holding the same judgement at arm's length: it can see
|
|
7
|
+
* the state, and it cannot see whether the state is urgent. A Status is asked
|
|
8
|
+
* for far more often than a Meter is, and for smaller things, which is exactly
|
|
9
|
+
* the case where a Component that coloured itself would be making a claim about
|
|
10
|
+
* the caller's product with the least evidence. A deploy is `info` on a status
|
|
11
|
+
* page and `success` in a release note; a disk is `warning` at 80 percent and
|
|
12
|
+
* `destructive` at 95, and the number does not know which of the two the
|
|
13
|
+
* consumer is looking at.
|
|
14
|
+
*
|
|
15
|
+
* **The set is the semantic contract's, and the JSDoc has to say what that
|
|
16
|
+
* costs.** The contract publishes three state roles, `success`, `warning` and
|
|
17
|
+
* `destructive`, and it publishes no informational one, so `info` here borrows
|
|
18
|
+
* `brand-ink`, which is the only cool role in the contract that means "not an
|
|
19
|
+
* alarm". The cost is named rather than hidden: in a pack whose brand hue is also
|
|
20
|
+
* its emphasis hue, an `info` dot and an emphasised mark are the same colour. The
|
|
21
|
+
* alternative was a fourth state role in the token contract, which is a
|
|
22
|
+
* decision about the tokens rather than about a Component, and a Component that
|
|
23
|
+
* invented the role would have had a second source of truth for colour. The
|
|
24
|
+
* other alternative, dropping `info` from the set, would have made the ordinary
|
|
25
|
+
* states of a product, in progress, scheduled, degraded, unreachable, expressible
|
|
26
|
+
* only as `neutral` and `warning`, which are both wrong.
|
|
27
|
+
*
|
|
28
|
+
* `neutral` is the tone for a state with nothing to alarm about, and it is drawn
|
|
29
|
+
* in the muted foreground rather than the full ink. A dot in the foreground
|
|
30
|
+
* colour reads as an emphasis mark rather than as a state, and a row of neutral
|
|
31
|
+
* states is a row of things the reader should look at.
|
|
32
|
+
*/
|
|
33
|
+
export type StatusTone = 'neutral' | 'info' | 'success' | 'warning' | 'destructive';
|
|
34
|
+
/**
|
|
35
|
+
* A dot in one of five tones, and the caller's words beside it.
|
|
36
|
+
*
|
|
37
|
+
* **The dot is the tone and the label is the caller's.** The split is the whole
|
|
38
|
+
* design. A Component that knew what the words were would be a Component making
|
|
39
|
+
* a claim about a product it knows nothing about, so it takes the tone and the
|
|
40
|
+
* caller takes the sentence, and neither one can be derived from the other
|
|
41
|
+
* without a lie.
|
|
42
|
+
*
|
|
43
|
+
* **The label is required, and the reason is the colour.** A status with no words
|
|
44
|
+
* is a coloured dot, and a coloured dot is invisible to a reader who cannot
|
|
45
|
+
* separate the tones and unreadable to a screen reader whatever the tones are.
|
|
46
|
+
* There is a Component for the other half of that idea, an indicator that is
|
|
47
|
+
* decorative beside a state the surrounding sentence already names, and it is a
|
|
48
|
+
* different Item because a name it did not receive is a name the consumer has to
|
|
49
|
+
* supply. This one refuses to render unlabelled rather than rendering something
|
|
50
|
+
* every consumer inherits.
|
|
51
|
+
*
|
|
52
|
+
* **The tone is required rather than defaulted.** There is no `neutral` default
|
|
53
|
+
* for the same reason `MeterTone` states, and this Component inherits that
|
|
54
|
+
* argument in full: a tone is a judgement about urgency that only the caller can
|
|
55
|
+
* make, and a Component that picked one would be picking it for four products at
|
|
56
|
+
* once. A default here is the quietest way to ship a claim, because it looks
|
|
57
|
+
* like a convenience and behaves like an opinion.
|
|
58
|
+
*
|
|
59
|
+
* **The tone is never the only signal.** Every dot here is `aria-hidden` and the
|
|
60
|
+
* label carries the meaning, so a reader who cannot separate `warning` from
|
|
61
|
+
* `destructive` still reads which is which. That is also why the tone list can
|
|
62
|
+
* stay as small as it is: a wider list would be a wider set of colours a reader
|
|
63
|
+
* has to learn and a maintainer has to keep true, and the words are what make
|
|
64
|
+
* each one legible. The cost is stated rather than hidden: `warning` is amber and
|
|
65
|
+
* measures about 2.1:1 against the default pack's light background, so on a light
|
|
66
|
+
* surface that one dot is a tint rather than a mark. The label beside it is what
|
|
67
|
+
* carries the state, which is the trade this design makes everywhere.
|
|
68
|
+
*
|
|
69
|
+
* It is a server Component: no hook, no state, and a status that changes is
|
|
70
|
+
* something the surrounding surface re-renders, not something this Component
|
|
71
|
+
* animates.
|
|
72
|
+
*/
|
|
73
|
+
declare function Status({ className, tone, label, size, ...props }: {
|
|
74
|
+
/**
|
|
75
|
+
* Which of the five tones the dot takes. Required rather than defaulted, for
|
|
76
|
+
* the reason `StatusTone` states in full.
|
|
77
|
+
*/
|
|
78
|
+
tone: StatusTone;
|
|
79
|
+
/**
|
|
80
|
+
* The words naming the state, in the product's own vocabulary.
|
|
81
|
+
*
|
|
82
|
+
* Required, and deliberately not derived from `tone`: a product that says
|
|
83
|
+
* "Degraded" and a product that says "Partially unavailable" are both
|
|
84
|
+
* describing the same tone, and neither word is Prism's to choose.
|
|
85
|
+
*/
|
|
86
|
+
label: ReactNode;
|
|
87
|
+
/**
|
|
88
|
+
* The size of the dot and of the label together. @defaultValue 'md'
|
|
89
|
+
*
|
|
90
|
+
* Two steps and not one, because a status appears at two scales in practice: in
|
|
91
|
+
* a dense table row, where a `md` dot competes with the numbers beside it, and
|
|
92
|
+
* beside a heading, where `sm` is hard to find. Sizing the pair together is
|
|
93
|
+
* deliberate, because a small dot beside a large label is a status the reader
|
|
94
|
+
* is meant to read rather than one they are meant to spot.
|
|
95
|
+
*/
|
|
96
|
+
size?: 'sm' | 'md';
|
|
97
|
+
} & Omit<ComponentProps<'span'>, 'children'>): import("react").JSX.Element;
|
|
98
|
+
export { Status };
|
|
99
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/components/ui/status.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAA;AAuBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,IAAI,EACJ,KAAK,EACL,IAAW,EACX,GAAG,KAAK,EACT,EAAE;IACD;;;OAGG;IACH,IAAI,EAAE,UAAU,CAAA;IAChB;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CACnB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,+BAiB3C;AAED,OAAO,EAAE,MAAM,EAAE,CAAA"}
|