@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,317 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type HeadingLevel } from '../../components/ui/section.js';
|
|
3
|
+
/**
|
|
4
|
+
* The address field, and the caller's own sentence about what is wrong with it.
|
|
5
|
+
*
|
|
6
|
+
* **There is no `type` here and that is the decision.** An invitation goes to an
|
|
7
|
+
* address and an address is an address, but a product that invites by handle or by
|
|
8
|
+
* staff number needs the same labelled control with a different platform hint, and a
|
|
9
|
+
* `type` prop on an invitation field would be a Block claiming to know which. The
|
|
10
|
+
* caller composes a different control beside this one if that is what their product
|
|
11
|
+
* does.
|
|
12
|
+
*/
|
|
13
|
+
export type InviteUser01Identifier = {
|
|
14
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
15
|
+
label: string;
|
|
16
|
+
/** The address as the caller holds it. Refused without `onValueChange`. */
|
|
17
|
+
value?: string;
|
|
18
|
+
/** Called with the address as the reader changes it. */
|
|
19
|
+
onValueChange?: (value: string) => void;
|
|
20
|
+
/** A line under the control, announced with it rather than printed under the row. */
|
|
21
|
+
description?: ReactNode;
|
|
22
|
+
/** What is wrong with the entry, in the destructive token and announced as it appears. */
|
|
23
|
+
error?: ReactNode;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* One role an invitation can grant, as the caller names it.
|
|
27
|
+
*
|
|
28
|
+
* Two fields and no state, which is the whole of the argument a design system can
|
|
29
|
+
* make about somebody else's permission model: the set of roles a workspace has is
|
|
30
|
+
* that workspace's own fact, it changes with its plan and with its commercial
|
|
31
|
+
* agreements, and a Block that shipped a list would install a permission model into
|
|
32
|
+
* every consumer's settings page.
|
|
33
|
+
*/
|
|
34
|
+
export type InviteUser01Option = {
|
|
35
|
+
/** The value handed to `onSubmit` and to `role.onValueChange`. */
|
|
36
|
+
id: string;
|
|
37
|
+
/** The role's own name, in the product's own language. */
|
|
38
|
+
label: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* The role the invitation will grant.
|
|
42
|
+
*
|
|
43
|
+
* **`options` is a `readonly` array and that is not decoration.** A caller writes
|
|
44
|
+
* `const ROLES = [{ id: 'reader', label: 'Reader' }] as const` because it keeps the
|
|
45
|
+
* role list beside its own type definitions, and a mutable prop type rejects that
|
|
46
|
+
* fixture with an error about `readonly`, which is a compile error whose message
|
|
47
|
+
* names nothing about the caller. Two Blocks in this package shipped that class of
|
|
48
|
+
* error before the list was written as `readonly`, so the type here is the fix rather
|
|
49
|
+
* than a preference.
|
|
50
|
+
*/
|
|
51
|
+
export type InviteUser01Role = {
|
|
52
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
53
|
+
label: string;
|
|
54
|
+
/**
|
|
55
|
+
* The roles, in the order a reader should meet them.
|
|
56
|
+
*
|
|
57
|
+
* The Block draws a `NativeSelect` rather than the Base UI one because a role is a
|
|
58
|
+
* plain string with a plain name, and a native select is one element with the
|
|
59
|
+
* platform's own picker behind it. A role that needs a description beside it or a
|
|
60
|
+
* count in it is a control the platform cannot render, and the honest answer to
|
|
61
|
+
* that is a caller who composes their own.
|
|
62
|
+
*/
|
|
63
|
+
options: readonly InviteUser01Option[];
|
|
64
|
+
/** The role as the caller holds it. Falls back to the first option. */
|
|
65
|
+
value?: string;
|
|
66
|
+
/** Called with the role as the reader changes it. */
|
|
67
|
+
onValueChange?: (value: string) => void;
|
|
68
|
+
/** A line under the control, announced with it. */
|
|
69
|
+
description?: ReactNode;
|
|
70
|
+
};
|
|
71
|
+
/** What the caller writes to the person they are inviting, and the two numbers around it. */
|
|
72
|
+
type InviteUser01MessageBase = {
|
|
73
|
+
/** The field's visible name, and the accessible name its control announces. */
|
|
74
|
+
label: string;
|
|
75
|
+
/** The message as the caller holds it. Refused without `onValueChange`. */
|
|
76
|
+
value?: string;
|
|
77
|
+
/** Called with the message as the reader changes it. */
|
|
78
|
+
onValueChange?: (value: string) => void;
|
|
79
|
+
/** A line under the control, announced with it. */
|
|
80
|
+
description?: ReactNode;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* The note that travels with the invitation.
|
|
84
|
+
*
|
|
85
|
+
* **The counter is a union rather than an optional boolean because a count with no
|
|
86
|
+
* limit beside it is not a counter.** A reader who is told there are 400 characters
|
|
87
|
+
* written and not what the limit is has been given a number to act on with nothing to
|
|
88
|
+
* act against, so `maxLength` is required in the arm that draws the count and the two
|
|
89
|
+
* are drawn together. The cost is stated rather than hidden: a caller that wants a
|
|
90
|
+
* live count and an enforced limit has to set both, which is the arrangement it
|
|
91
|
+
* wanted.
|
|
92
|
+
*/
|
|
93
|
+
export type InviteUser01Message = InviteUser01MessageBase & ({
|
|
94
|
+
/** Draws the count beside the control. */
|
|
95
|
+
counter: true;
|
|
96
|
+
/** The limit, enforced by the control and printed beside the count. */
|
|
97
|
+
maxLength: number;
|
|
98
|
+
} | {
|
|
99
|
+
/** No count is drawn. */
|
|
100
|
+
counter?: false;
|
|
101
|
+
/** The limit, enforced by the control and printed by the platform. */
|
|
102
|
+
maxLength?: number;
|
|
103
|
+
});
|
|
104
|
+
/**
|
|
105
|
+
* The three things the caller's own invitation request can be doing, named after what
|
|
106
|
+
* they select rather than after the field they fill.
|
|
107
|
+
*/
|
|
108
|
+
export type InviteUser01Outcome = 'idle' | 'sent' | 'error';
|
|
109
|
+
/**
|
|
110
|
+
* The outcome of the caller's request, as this Block draws it.
|
|
111
|
+
*
|
|
112
|
+
* A prop and never a state this Block writes, for the reason every Block in this
|
|
113
|
+
* family states: an invitation has more outcomes than any other form here, from a
|
|
114
|
+
* delivered message to a spam folder to a domain that cannot receive mail to a
|
|
115
|
+
* workspace with no room for another person, and one sentence cannot be true of all
|
|
116
|
+
* of them.
|
|
117
|
+
*/
|
|
118
|
+
export type InviteUser01Status = {
|
|
119
|
+
/** Which of the three the request is in. Read by the Block for two things only. */
|
|
120
|
+
state: InviteUser01Outcome;
|
|
121
|
+
/** The words for that state, in the product's own voice. */
|
|
122
|
+
message: ReactNode;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* One invitation that has been sent and not yet taken up.
|
|
126
|
+
*
|
|
127
|
+
* Four words and no state, which is the decision this Block's JSDoc defends: the only
|
|
128
|
+
* signal that an invitation has gone stale is that the caller passed `expiresLabel`,
|
|
129
|
+
* because the Block holds no clock and a design system that guessed would be guessing
|
|
130
|
+
* about somebody else's deadline.
|
|
131
|
+
*/
|
|
132
|
+
export type InviteUser01Invitation = {
|
|
133
|
+
/** A stable key for the row, carried on the markup as `data-invitation`. */
|
|
134
|
+
id: string;
|
|
135
|
+
/** The address the invitation went to, and the row's identity. */
|
|
136
|
+
identifier: string;
|
|
137
|
+
/** The words for when it went, given in the caller's own reading. */
|
|
138
|
+
sentLabel?: ReactNode;
|
|
139
|
+
/**
|
|
140
|
+
* The words for an invitation that has gone stale.
|
|
141
|
+
*
|
|
142
|
+
* Its presence is the mark: the row is dimmed, the words are read beside the
|
|
143
|
+
* address, and the invitation is not removed from the list. See the Block's JSDoc
|
|
144
|
+
* for why a list that shrinks is worse than a list with a faded row.
|
|
145
|
+
*/
|
|
146
|
+
expiresLabel?: ReactNode;
|
|
147
|
+
} & ({
|
|
148
|
+
/** The words on the control that calls the invitation back. */
|
|
149
|
+
revokeLabel: string;
|
|
150
|
+
/** Called when the reader calls this invitation back. */
|
|
151
|
+
onRevoke: () => void;
|
|
152
|
+
} | {
|
|
153
|
+
/** A revoke control with no words is a button nobody can find. */
|
|
154
|
+
revokeLabel?: never;
|
|
155
|
+
/** A handler with no control is a call the caller cannot make. */
|
|
156
|
+
onRevoke?: never;
|
|
157
|
+
});
|
|
158
|
+
/**
|
|
159
|
+
* The invitations already sent, under a name of the caller's.
|
|
160
|
+
*
|
|
161
|
+
* `empty` is required in practice and its absence is a thrown diagnostic rather than
|
|
162
|
+
* a quiet panel, for the reason `SettingsMembers01` gives for the same prop: a group
|
|
163
|
+
* with no rows and no sentence reads as a fault, and the reader who is trying to work
|
|
164
|
+
* out whether an invitation they sent is still pending is exactly the reader who
|
|
165
|
+
* needs to be able to see that the list is not broken.
|
|
166
|
+
*/
|
|
167
|
+
export type InviteUser01Pending = {
|
|
168
|
+
/** The name of the group, drawn as a heading one level below the section's own. */
|
|
169
|
+
title: ReactNode;
|
|
170
|
+
/**
|
|
171
|
+
* The invitations, in the order a reader should meet them.
|
|
172
|
+
*
|
|
173
|
+
* The Block does not sort them: which invitations a reader should see first is a
|
|
174
|
+
* fact about the caller's product, and a designer sorting a list on their behalf is
|
|
175
|
+
* an opinion about somebody else's workspace.
|
|
176
|
+
*/
|
|
177
|
+
items: readonly InviteUser01Invitation[];
|
|
178
|
+
/** What the group shows when there are no invitations. */
|
|
179
|
+
empty?: ReactNode;
|
|
180
|
+
};
|
|
181
|
+
/**
|
|
182
|
+
* The props an InviteUser01 takes. Every string in this Block is one of them.
|
|
183
|
+
*
|
|
184
|
+
* Two groups and one control between them, and the second group is the reason this
|
|
185
|
+
* is a Block rather than a row in somebody's settings form.
|
|
186
|
+
*/
|
|
187
|
+
export type InviteUser01Props = {
|
|
188
|
+
/** The short line above the title, usually which workspace this is. */
|
|
189
|
+
eyebrow?: ReactNode;
|
|
190
|
+
/** The heading. Required, because an invitation surface with no heading is a form in a page. */
|
|
191
|
+
title: ReactNode;
|
|
192
|
+
/** One supporting line under the heading, for the part the title cannot carry. */
|
|
193
|
+
description?: ReactNode;
|
|
194
|
+
/**
|
|
195
|
+
* Called with the three values, and the only thing this Block does with them.
|
|
196
|
+
*
|
|
197
|
+
* **Required, and the requirement is the whole of the Block's neutrality.** There is
|
|
198
|
+
* no transport, no route, no membership store and no role resolver here, because
|
|
199
|
+
* each of those is a decision about the caller's product and its data.
|
|
200
|
+
*/
|
|
201
|
+
onSubmit: (value: {
|
|
202
|
+
identifier: string;
|
|
203
|
+
role: string;
|
|
204
|
+
message?: string;
|
|
205
|
+
}) => void;
|
|
206
|
+
/** The address field. */
|
|
207
|
+
identifier: InviteUser01Identifier;
|
|
208
|
+
/** The role the invitation will grant, from the caller's own list. */
|
|
209
|
+
role: InviteUser01Role;
|
|
210
|
+
/**
|
|
211
|
+
* The note that travels with the invitation.
|
|
212
|
+
*
|
|
213
|
+
* Omit it and the note is not asked for, which is a real answer for a product that
|
|
214
|
+
* sends its own boilerplate and a poor one for a product whose invitations are read
|
|
215
|
+
* by the people who receive them.
|
|
216
|
+
*/
|
|
217
|
+
message?: InviteUser01Message;
|
|
218
|
+
/** The words on the one control that sends. */
|
|
219
|
+
submitLabel: string;
|
|
220
|
+
/**
|
|
221
|
+
* Whether the caller's request is in flight.
|
|
222
|
+
*
|
|
223
|
+
* A prop and not read from `status`, because the two answer different questions:
|
|
224
|
+
* `submitting` is the control and `status.state` is the outcome.
|
|
225
|
+
*/
|
|
226
|
+
submitting?: boolean;
|
|
227
|
+
/** The outcome of the caller's request, drawn in a live region and announced. */
|
|
228
|
+
status?: InviteUser01Status;
|
|
229
|
+
/**
|
|
230
|
+
* The invitations already sent, in a second group beside the form.
|
|
231
|
+
*
|
|
232
|
+
* See the Block's JSDoc for why this is a group and not a second form.
|
|
233
|
+
*/
|
|
234
|
+
pending?: InviteUser01Pending;
|
|
235
|
+
/** Heading level for the section heading. @defaultValue 'h2' */
|
|
236
|
+
headingLevel?: HeadingLevel;
|
|
237
|
+
/**
|
|
238
|
+
* Layout only, exactly as on every Block. Changing a Prism-owned visual property
|
|
239
|
+
* from here is prohibited.
|
|
240
|
+
*/
|
|
241
|
+
className?: string;
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* An address, a role and a note, sent as an invitation, beside the invitations already
|
|
245
|
+
* sent.
|
|
246
|
+
*
|
|
247
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
248
|
+
* storefront publishes an invite-a-friend panel: an address field, a dropdown, a
|
|
249
|
+
* message box and a button, and its purpose is to put a shopper's own contact into a
|
|
250
|
+
* marketing list. Prism's products observe a pipeline, capture a market, watch an
|
|
251
|
+
* estate and run agents, and a machine acting on behalf of a person is the whole
|
|
252
|
+
* subject, so this is the screen where a person authorises a machine on somebody
|
|
253
|
+
* else's behalf: the machine is the workspace, the estate or the agent, and the person
|
|
254
|
+
* answering the invitation is about to decide what it is allowed to do. The
|
|
255
|
+
* composition is the storefront's and is unchanged: the field, the dropdown, the note,
|
|
256
|
+
* the control. What is different is the second group, and that is the next paragraph.
|
|
257
|
+
*
|
|
258
|
+
* **What it assumes about the reader in front of it.** It assumes they are already
|
|
259
|
+
* authorised themselves, that they know what the thing they are admitting to is, and
|
|
260
|
+
* that they may not know what the roles in the dropdown are called. It refuses to
|
|
261
|
+
* assume they will remember what they sent, and it refuses to assume they have sent
|
|
262
|
+
* it at all, which is the assumption the pending group exists to remove.
|
|
263
|
+
*
|
|
264
|
+
* **The pending list is a second group and not a second form, and the reason is a
|
|
265
|
+
* support ticket.** A reader who has just sent an invitation and cannot see it will
|
|
266
|
+
* send another, and a second invitation is not a harmless duplicate: it is a second
|
|
267
|
+
* message, a second row in the caller's own audit trail, and a second thing for the
|
|
268
|
+
* person receiving it to work out. So the invitations already sent are drawn, named,
|
|
269
|
+
* and given their own heading rather than being summarised in a sentence under the
|
|
270
|
+
* submit control, and a list that shrank silently is a list a reader stops trusting.
|
|
271
|
+
*
|
|
272
|
+
* **A stale invitation is dimmed and not removed, and the only signal is the caller's
|
|
273
|
+
* own `expiresLabel`.** The Block holds no clock and a design system that guessed
|
|
274
|
+
* would be guessing about somebody else's deadline. The reason for keeping the row is
|
|
275
|
+
* the reason `SettingsMembers01` gives for a closed role: a reader who sent an
|
|
276
|
+
* invitation and finds it gone learns nothing at all, because the absence is
|
|
277
|
+
* indistinguishable from a fault and from a product that quietly discards invitations.
|
|
278
|
+
*
|
|
279
|
+
* **The role list is the caller's, and the `readonly` on it is the fix for a compile
|
|
280
|
+
* error rather than a preference.** A caller writes its roles as `as const` beside its
|
|
281
|
+
* own types, and a mutable prop type rejects that fixture with a message about
|
|
282
|
+
* `readonly` that names nothing about the caller. What the Block refuses to do is
|
|
283
|
+
* ship the list, because the set of roles a workspace has is that workspace's own fact
|
|
284
|
+
* and it changes with its plan and with its commercial agreements.
|
|
285
|
+
*
|
|
286
|
+
* **The select starts on the caller's first option when no value is passed, and the
|
|
287
|
+
* Block does not reorder the list to pick a safer one.** Reordering somebody's roles
|
|
288
|
+
* would be a claim about their permission model, and the alternative, requiring
|
|
289
|
+
* `value`, would put a prop on the type that most callers do not have and would want
|
|
290
|
+
* anyway. A product whose least privileged role is not first passes it first. The cost
|
|
291
|
+
* is that a caller who forgets `value` grants whatever is at the top of their own
|
|
292
|
+
* list, and the honest place to catch that is their own handler, which already has to
|
|
293
|
+
* validate the address.
|
|
294
|
+
*
|
|
295
|
+
* **The counter is not a live region, and that is a decision about a reader typing.**
|
|
296
|
+
* A count that announces itself on every keystroke interrupts a screen reader
|
|
297
|
+
* mid-sentence four hundred times, and the limit is already enforced by the control's
|
|
298
|
+
* own `maxLength` and described by the platform. So the count is drawn and hidden from
|
|
299
|
+
* assistive technology, and a reader who wants it announced as they type reads it.
|
|
300
|
+
*
|
|
301
|
+
* **Nothing here validates anything.** There is no address format check, no rule about
|
|
302
|
+
* whether the address is already a member, no check that the role exists any more and
|
|
303
|
+
* no decision about whether the workspace has room. Each of those is a fact about the
|
|
304
|
+
* caller's product, and a Block that guessed one would refuse a reader on the
|
|
305
|
+
* caller's behalf. What the Block does with the request is the one thing that is
|
|
306
|
+
* rendering rather than policy: it refuses a second press while `submitting` is true,
|
|
307
|
+
* because a second press is a second invitation queued into somebody's inbox.
|
|
308
|
+
*
|
|
309
|
+
* It is a client Component, and the directive is unconditional. `onSubmit` is a
|
|
310
|
+
* function, a function is a piece of state, and state is a client module: a server
|
|
311
|
+
* Component cannot hand an event handler to a `<form>`, so a caller rendering this
|
|
312
|
+
* from a server Component gets a form that submits and calls nothing and a list whose
|
|
313
|
+
* revoke controls press and do nothing.
|
|
314
|
+
*/
|
|
315
|
+
export declare function InviteUser01({ eyebrow, title, description, onSubmit, identifier, role, message, submitLabel, submitting, status, pending, headingLevel, className, }: InviteUser01Props): import("react").JSX.Element;
|
|
316
|
+
export default InviteUser01;
|
|
317
|
+
//# sourceMappingURL=invite-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invite-user.d.ts","sourceRoot":"","sources":["../../../src/blocks/invite-user-01/invite-user.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAcvE,OAAO,EAAuC,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAIpG;;;;;;;;;GASG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,qFAAqF;IACrF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb;;;;;;;;OAQG;IACH,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACtC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,qDAAqD;IACrD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,mDAAmD;IACnD,WAAW,CAAC,EAAE,SAAS,CAAA;CACxB,CAAA;AAED,6FAA6F;AAC7F,KAAK,uBAAuB,GAAG;IAC7B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,mDAAmD;IACnD,WAAW,CAAC,EAAE,SAAS,CAAA;CACxB,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,GACvD,CACI;IACE,0CAA0C;IAC1C,OAAO,EAAE,IAAI,CAAA;IACb,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAA;CAClB,GACD;IACE,yBAAyB;IACzB,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CACJ,CAAA;AAEH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAE3D;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,mFAAmF;IACnF,KAAK,EAAE,mBAAmB,CAAA;IAC1B,4DAA4D;IAC5D,OAAO,EAAE,SAAS,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,4EAA4E;IAC5E,EAAE,EAAE,MAAM,CAAA;IACV,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAA;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,SAAS,CAAA;CACzB,GAAG,CACA;IACE,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAA;IACnB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAA;CACrB,GACD;IACE,kEAAkE;IAClE,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,KAAK,CAAA;CACjB,CACJ,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,mFAAmF;IACnF,KAAK,EAAE,SAAS,CAAA;IAChB;;;;;;OAMG;IACH,KAAK,EAAE,SAAS,sBAAsB,EAAE,CAAA;IACxC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,uEAAuE;IACvE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,gGAAgG;IAChG,KAAK,EAAE,SAAS,CAAA;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACjF,yBAAyB;IACzB,UAAU,EAAE,sBAAsB,CAAA;IAClC,sEAAsE;IACtE,IAAI,EAAE,gBAAgB,CAAA;IACtB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,iFAAiF;IACjF,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAA;IAC7B,gEAAgE;IAChE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAyGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,OAAO,EACP,WAAW,EACX,UAAkB,EAClB,MAAM,EACN,OAAO,EACP,YAAmB,EACnB,SAAS,GACV,EAAE,iBAAiB,+BAgTnB;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -0,0 +1,228 @@
|
|
|
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 '../../components/ui/button.js';
|
|
5
|
+
import { Card } from '../../components/ui/card.js';
|
|
6
|
+
import { Field, FieldDescription, FieldError, FieldLabel, } from '../../components/ui/field.js';
|
|
7
|
+
import { Input } from '../../components/ui/input.js';
|
|
8
|
+
import { ListPanel } from '../../components/ui/list-panel.js';
|
|
9
|
+
import { LiveRegion } from '../../components/ui/live-region.js';
|
|
10
|
+
import { NativeSelect } from '../../components/ui/native-select.js';
|
|
11
|
+
import { Section, SectionHeading, childLevel } from '../../components/ui/section.js';
|
|
12
|
+
import { Textarea } from '../../components/ui/textarea.js';
|
|
13
|
+
import { cn } from '../../lib/utils.js';
|
|
14
|
+
/** Whether a caller passed a word that is not there. Read about the value, not the type. */
|
|
15
|
+
function blank(value) {
|
|
16
|
+
return value === undefined || value.trim() === '';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The six refusals, checked before anything is drawn so a caller's mistake is one
|
|
20
|
+
* diagnostic in a console rather than a nameless control on a screen where a reader
|
|
21
|
+
* is about to give a colleague access to an instrument.
|
|
22
|
+
*/
|
|
23
|
+
function assertInvite(input) {
|
|
24
|
+
const { identifier, role, message, pending } = input;
|
|
25
|
+
if (blank(identifier.label)) {
|
|
26
|
+
throw new Error('InviteUser01: the identifier field declares no label, so its control would be announced as a text field, ' +
|
|
27
|
+
'which is the same name every other field on this screen is announced by. Pass the words your product uses ' +
|
|
28
|
+
'for the person being invited.');
|
|
29
|
+
}
|
|
30
|
+
if (identifier.value !== undefined && identifier.onValueChange === undefined) {
|
|
31
|
+
throw new Error('InviteUser01: identifier.value was passed with no onValueChange, so the field would show the value once ' +
|
|
32
|
+
'and then stop telling the caller what is in it, which is an address the caller cannot clear when a ' +
|
|
33
|
+
'reader changes their mind. Pass the pair, or neither.');
|
|
34
|
+
}
|
|
35
|
+
if (blank(role.label)) {
|
|
36
|
+
throw new Error('InviteUser01: the role field declares no label, so its control would be announced as a button, which is ' +
|
|
37
|
+
'the one control on this screen that grants access. Pass the words your product uses for the set of ' +
|
|
38
|
+
'roles.');
|
|
39
|
+
}
|
|
40
|
+
if (role.options.length === 0) {
|
|
41
|
+
throw new Error('InviteUser01: the role field passes no options, so it would render a control with nothing in it, which ' +
|
|
42
|
+
'is a question no reader can answer and looks answered only because the control is there and focusable. ' +
|
|
43
|
+
'Pass the roles, or drop the field and grant your own default in the handler.');
|
|
44
|
+
}
|
|
45
|
+
if (role.options.some((option) => blank(option.label))) {
|
|
46
|
+
throw new Error('InviteUser01: one of the role options declares no label, so the select would show a bare machine value ' +
|
|
47
|
+
'where a reader is choosing what access they are about to grant. Pass the words your product uses.');
|
|
48
|
+
}
|
|
49
|
+
if (message !== undefined) {
|
|
50
|
+
if (blank(message.label)) {
|
|
51
|
+
throw new Error('InviteUser01: a message field was passed with no label, so its control would be announced as a text ' +
|
|
52
|
+
'area with no name. Pass the words your product uses for the note.');
|
|
53
|
+
}
|
|
54
|
+
if (message.value !== undefined && message.onValueChange === undefined) {
|
|
55
|
+
throw new Error('InviteUser01: message.value was passed with no onValueChange, so the Block would hold a note the ' +
|
|
56
|
+
'caller has lost track of and cannot clear. Pass the pair, or neither.');
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (pending === undefined)
|
|
60
|
+
return;
|
|
61
|
+
if (pending.items.length === 0 && pending.empty === undefined) {
|
|
62
|
+
throw new Error('InviteUser01: the pending group was passed with no items and no sentence for the empty case, so the ' +
|
|
63
|
+
'screen would show a named panel with nothing in it, which reads as a fault rather than as an answer. ' +
|
|
64
|
+
'Pass the sentence your product uses when nobody is invited.');
|
|
65
|
+
}
|
|
66
|
+
for (const item of pending.items) {
|
|
67
|
+
if (blank(item.identifier)) {
|
|
68
|
+
throw new Error(`InviteUser01: the pending invitation ${JSON.stringify(item.id)} declares no address, so the row would ` +
|
|
69
|
+
'be an empty line in a list a reader is scanning to find their own invitation. Pass the address it ' +
|
|
70
|
+
'went to.');
|
|
71
|
+
}
|
|
72
|
+
if ((item.revokeLabel === undefined) !== (item.onRevoke === undefined) ||
|
|
73
|
+
(item.onRevoke !== undefined && blank(item.revokeLabel))) {
|
|
74
|
+
throw new Error(`InviteUser01: the pending invitation ${JSON.stringify(item.id)} was passed one half of its revoke ` +
|
|
75
|
+
'control, so the row would either offer a button that does nothing or call a handler no control can ' +
|
|
76
|
+
'reach. Pass revokeLabel and onRevoke together, or neither.');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* An address, a role and a note, sent as an invitation, beside the invitations already
|
|
82
|
+
* sent.
|
|
83
|
+
*
|
|
84
|
+
* **The translation, because the pattern is not ours and the framing is.** A
|
|
85
|
+
* storefront publishes an invite-a-friend panel: an address field, a dropdown, a
|
|
86
|
+
* message box and a button, and its purpose is to put a shopper's own contact into a
|
|
87
|
+
* marketing list. Prism's products observe a pipeline, capture a market, watch an
|
|
88
|
+
* estate and run agents, and a machine acting on behalf of a person is the whole
|
|
89
|
+
* subject, so this is the screen where a person authorises a machine on somebody
|
|
90
|
+
* else's behalf: the machine is the workspace, the estate or the agent, and the person
|
|
91
|
+
* answering the invitation is about to decide what it is allowed to do. The
|
|
92
|
+
* composition is the storefront's and is unchanged: the field, the dropdown, the note,
|
|
93
|
+
* the control. What is different is the second group, and that is the next paragraph.
|
|
94
|
+
*
|
|
95
|
+
* **What it assumes about the reader in front of it.** It assumes they are already
|
|
96
|
+
* authorised themselves, that they know what the thing they are admitting to is, and
|
|
97
|
+
* that they may not know what the roles in the dropdown are called. It refuses to
|
|
98
|
+
* assume they will remember what they sent, and it refuses to assume they have sent
|
|
99
|
+
* it at all, which is the assumption the pending group exists to remove.
|
|
100
|
+
*
|
|
101
|
+
* **The pending list is a second group and not a second form, and the reason is a
|
|
102
|
+
* support ticket.** A reader who has just sent an invitation and cannot see it will
|
|
103
|
+
* send another, and a second invitation is not a harmless duplicate: it is a second
|
|
104
|
+
* message, a second row in the caller's own audit trail, and a second thing for the
|
|
105
|
+
* person receiving it to work out. So the invitations already sent are drawn, named,
|
|
106
|
+
* and given their own heading rather than being summarised in a sentence under the
|
|
107
|
+
* submit control, and a list that shrank silently is a list a reader stops trusting.
|
|
108
|
+
*
|
|
109
|
+
* **A stale invitation is dimmed and not removed, and the only signal is the caller's
|
|
110
|
+
* own `expiresLabel`.** The Block holds no clock and a design system that guessed
|
|
111
|
+
* would be guessing about somebody else's deadline. The reason for keeping the row is
|
|
112
|
+
* the reason `SettingsMembers01` gives for a closed role: a reader who sent an
|
|
113
|
+
* invitation and finds it gone learns nothing at all, because the absence is
|
|
114
|
+
* indistinguishable from a fault and from a product that quietly discards invitations.
|
|
115
|
+
*
|
|
116
|
+
* **The role list is the caller's, and the `readonly` on it is the fix for a compile
|
|
117
|
+
* error rather than a preference.** A caller writes its roles as `as const` beside its
|
|
118
|
+
* own types, and a mutable prop type rejects that fixture with a message about
|
|
119
|
+
* `readonly` that names nothing about the caller. What the Block refuses to do is
|
|
120
|
+
* ship the list, because the set of roles a workspace has is that workspace's own fact
|
|
121
|
+
* and it changes with its plan and with its commercial agreements.
|
|
122
|
+
*
|
|
123
|
+
* **The select starts on the caller's first option when no value is passed, and the
|
|
124
|
+
* Block does not reorder the list to pick a safer one.** Reordering somebody's roles
|
|
125
|
+
* would be a claim about their permission model, and the alternative, requiring
|
|
126
|
+
* `value`, would put a prop on the type that most callers do not have and would want
|
|
127
|
+
* anyway. A product whose least privileged role is not first passes it first. The cost
|
|
128
|
+
* is that a caller who forgets `value` grants whatever is at the top of their own
|
|
129
|
+
* list, and the honest place to catch that is their own handler, which already has to
|
|
130
|
+
* validate the address.
|
|
131
|
+
*
|
|
132
|
+
* **The counter is not a live region, and that is a decision about a reader typing.**
|
|
133
|
+
* A count that announces itself on every keystroke interrupts a screen reader
|
|
134
|
+
* mid-sentence four hundred times, and the limit is already enforced by the control's
|
|
135
|
+
* own `maxLength` and described by the platform. So the count is drawn and hidden from
|
|
136
|
+
* assistive technology, and a reader who wants it announced as they type reads it.
|
|
137
|
+
*
|
|
138
|
+
* **Nothing here validates anything.** There is no address format check, no rule about
|
|
139
|
+
* whether the address is already a member, no check that the role exists any more and
|
|
140
|
+
* no decision about whether the workspace has room. Each of those is a fact about the
|
|
141
|
+
* caller's product, and a Block that guessed one would refuse a reader on the
|
|
142
|
+
* caller's behalf. What the Block does with the request is the one thing that is
|
|
143
|
+
* rendering rather than policy: it refuses a second press while `submitting` is true,
|
|
144
|
+
* because a second press is a second invitation queued into somebody's inbox.
|
|
145
|
+
*
|
|
146
|
+
* It is a client Component, and the directive is unconditional. `onSubmit` is a
|
|
147
|
+
* function, a function is a piece of state, and state is a client module: a server
|
|
148
|
+
* Component cannot hand an event handler to a `<form>`, so a caller rendering this
|
|
149
|
+
* from a server Component gets a form that submits and calls nothing and a list whose
|
|
150
|
+
* revoke controls press and do nothing.
|
|
151
|
+
*/
|
|
152
|
+
export function InviteUser01({ eyebrow, title, description, onSubmit, identifier, role, message, submitLabel, submitting = false, status, pending, headingLevel = 'h2', className, }) {
|
|
153
|
+
assertInvite({ identifier, role, message, pending });
|
|
154
|
+
const generated = useId();
|
|
155
|
+
const identifierId = `${generated}-identifier`;
|
|
156
|
+
const identifierErrorId = `${generated}-identifier-error`;
|
|
157
|
+
const identifierDescriptionId = `${generated}-identifier-description`;
|
|
158
|
+
const roleId = `${generated}-role`;
|
|
159
|
+
const roleDescriptionId = `${generated}-role-description`;
|
|
160
|
+
const messageId = `${generated}-message`;
|
|
161
|
+
const messageDescriptionId = `${generated}-message-description`;
|
|
162
|
+
// The group holding the invitations already sent is a group inside the section, so
|
|
163
|
+
// its title is one level below the section's own and travels with it.
|
|
164
|
+
const GroupTitle = childLevel(headingLevel);
|
|
165
|
+
/*
|
|
166
|
+
* The three entries live here rather than only in the caller, for the same reason
|
|
167
|
+
* the rest of this family holds its values: a field the caller cannot reach is a
|
|
168
|
+
* field the caller cannot clear, and a reader who has just discovered they
|
|
169
|
+
* addressed the invitation to the wrong person should not have to reload the page to
|
|
170
|
+
* correct it. The Block reports every change to the caller when one was asked for
|
|
171
|
+
* and adopts a `value` prop the moment it changes, which is the arrangement React
|
|
172
|
+
* documents for a prop that can change under a stateful child.
|
|
173
|
+
*/
|
|
174
|
+
const [entries, setEntries] = useState({
|
|
175
|
+
identifier: identifier.value ?? '',
|
|
176
|
+
role: role.value ?? role.options[0]?.id ?? '',
|
|
177
|
+
message: message?.value ?? '',
|
|
178
|
+
});
|
|
179
|
+
const [seen, setSeen] = useState({
|
|
180
|
+
identifier: identifier.value,
|
|
181
|
+
role: role.value,
|
|
182
|
+
message: message?.value,
|
|
183
|
+
});
|
|
184
|
+
if (seen.identifier !== identifier.value ||
|
|
185
|
+
seen.role !== role.value ||
|
|
186
|
+
seen.message !== message?.value) {
|
|
187
|
+
setSeen({ identifier: identifier.value, role: role.value, message: message?.value });
|
|
188
|
+
setEntries({
|
|
189
|
+
identifier: identifier.value ?? '',
|
|
190
|
+
role: role.value ?? role.options[0]?.id ?? '',
|
|
191
|
+
message: message?.value ?? '',
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
const setIdentifier = (value) => {
|
|
195
|
+
setEntries((was) => ({ ...was, identifier: value }));
|
|
196
|
+
identifier.onValueChange?.(value);
|
|
197
|
+
};
|
|
198
|
+
const setRole = (value) => {
|
|
199
|
+
setEntries((was) => ({ ...was, role: value }));
|
|
200
|
+
role.onValueChange?.(value);
|
|
201
|
+
};
|
|
202
|
+
const setMessage = (value) => {
|
|
203
|
+
setEntries((was) => ({ ...was, message: value }));
|
|
204
|
+
message?.onValueChange?.(value);
|
|
205
|
+
};
|
|
206
|
+
const handleSubmit = (event) => {
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
onSubmit({
|
|
209
|
+
identifier: entries.identifier,
|
|
210
|
+
role: entries.role,
|
|
211
|
+
...(message === undefined ? null : { message: entries.message }),
|
|
212
|
+
});
|
|
213
|
+
};
|
|
214
|
+
return (_jsx(Section, { "data-slot": "invite-user-01", className: cn(className), children: _jsxs("div", { "data-slot": "invite-user-01-body", className: "flex flex-col gap-10", children: [_jsx(SectionHeading, { as: headingLevel, align: "left", eyebrow: eyebrow, title: title, description: description }), _jsxs("div", { "data-slot": "invite-user-01-columns", className: "grid items-start gap-10 lg:grid-cols-[minmax(0,3fr)_minmax(0,2fr)] lg:gap-14", children: [_jsx(Card, { "data-slot": "invite-user-01-card", className: "w-full max-w-measure-narrow gap-0 px-6", children: _jsxs("form", { "data-slot": "invite-user-01-form", onSubmit: handleSubmit, className: "flex w-full flex-col gap-5", children: [_jsxs(Field, { "data-slot": "invite-user-01-identifier", "data-field": "identifier", children: [_jsx(FieldLabel, { htmlFor: identifierId, children: identifier.label }), _jsx(Input, { id: identifierId, type: "email", autoComplete: "off", value: entries.identifier, onChange: (event) => setIdentifier(event.target.value), required: true, "aria-invalid": identifier.error === undefined ? undefined : true, "aria-describedby": identifier.error === undefined
|
|
215
|
+
? identifier.description === undefined
|
|
216
|
+
? undefined
|
|
217
|
+
: identifierDescriptionId
|
|
218
|
+
: identifierErrorId }), identifier.error === undefined ? null : (_jsx(FieldError, { id: identifierErrorId, children: identifier.error })), identifier.description === undefined ? null : (_jsx(FieldDescription, { id: identifierDescriptionId, children: identifier.description }))] }), _jsxs(Field, { "data-slot": "invite-user-01-role", "data-field": "role", children: [_jsx(FieldLabel, { htmlFor: roleId, children: role.label }), _jsx(NativeSelect, { id: roleId, value: entries.role, onChange: (event) => setRole(event.target.value), required: true, "aria-describedby": role.description === undefined ? undefined : roleDescriptionId, children: role.options.map((option) => (_jsx("option", { value: option.id, children: option.label }, option.id))) }), role.description === undefined ? null : (_jsx(FieldDescription, { id: roleDescriptionId, children: role.description }))] }), message === undefined ? null : (
|
|
219
|
+
/*
|
|
220
|
+
The note, and the count is drawn beside the control rather than under
|
|
221
|
+
it so a reader watching the limit sees it next to the thing they are
|
|
222
|
+
typing against.
|
|
223
|
+
*/
|
|
224
|
+
_jsxs(Field, { "data-slot": "invite-user-01-message", "data-field": "message", children: [_jsx(FieldLabel, { htmlFor: messageId, children: message.label }), _jsx(Textarea, { id: messageId, rows: 4, value: entries.message, onChange: (event) => setMessage(event.target.value), maxLength: message.maxLength, "aria-describedby": message.description === undefined ? undefined : messageDescriptionId }), message.counter !== true ? null : (_jsxs("span", { "data-slot": "invite-user-01-counter", "aria-hidden": "true", className: "text-muted-foreground self-end text-xs tabular-nums", children: [entries.message.length, " / ", message.maxLength] })), message.description === undefined ? null : (_jsx(FieldDescription, { id: messageDescriptionId, children: message.description }))] })), _jsxs("div", { "data-slot": "invite-user-01-actions", className: "flex flex-col gap-3", children: [_jsx(Button, { "data-slot": "invite-user-01-submit", type: "submit", disabled: submitting, className: "w-full", children: submitLabel }), _jsx(LiveRegion, { "data-slot": "invite-user-01-status", politeness: status?.state === 'error' ? 'assertive' : 'polite', busy: submitting, className: cn('text-sm', status?.state === 'error'
|
|
225
|
+
? 'text-destructive font-medium'
|
|
226
|
+
: 'text-muted-foreground'), children: status?.message })] })] }) }), pending === undefined ? null : (_jsx(ListPanel, { "data-slot": "invite-user-01-pending", scroll: false, title: _jsx(GroupTitle, { "data-slot": "invite-user-01-pending-title", className: "text-sm font-semibold", children: pending.title }), children: pending.items.length === 0 ? (_jsx("p", { "data-slot": "invite-user-01-pending-empty", className: "text-muted-foreground px-4 py-3 text-pretty text-sm", children: pending.empty })) : (_jsx("ul", { "data-slot": "invite-user-01-pending-list", className: "flex flex-col", children: pending.items.map((item) => (_jsxs("li", { "data-slot": "invite-user-01-invitation", "data-invitation": item.id, "data-expired": item.expiresLabel === undefined ? undefined : 'true', className: "border-border flex flex-wrap items-center gap-x-4 gap-y-1 border-b px-4 py-3 last:border-b-0", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-sm", children: item.identifier }), item.sentLabel === undefined ? null : (_jsx("span", { className: "text-muted-foreground shrink-0 text-xs", children: item.sentLabel })), item.expiresLabel === undefined ? null : (_jsx("span", { "data-slot": "invite-user-01-invitation-expired", className: "text-muted-foreground shrink-0 text-xs", children: item.expiresLabel })), item.revokeLabel === undefined ? null : (_jsx(Button, { "data-slot": "invite-user-01-revoke", type: "button", variant: "ghost", size: "sm", onClick: () => item.onRevoke?.(), className: "shrink-0", children: item.revokeLabel }))] }, item.id))) })) }))] })] }) }));
|
|
227
|
+
}
|
|
228
|
+
export default InviteUser01;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/issue-detail-01/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAKvD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,gBAAgB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IssueDetail01, default } from './issue-detail.js';
|