@igne-agency/react-web-ui 0.0.0-stage → 0.2.1
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/LICENSE +21 -0
- package/README.md +200 -2
- package/dist/assets/spinner.js +28 -0
- package/dist/base.css +171 -0
- package/dist/components/accordion/accordion.css +93 -0
- package/dist/components/accordion/accordion.d.ts +46 -0
- package/dist/components/accordion/accordion.js +184 -0
- package/dist/components/accordion/accordion.module.js +16 -0
- package/dist/components/accordion/index.d.ts +1 -0
- package/dist/components/accordion/index.js +1 -0
- package/dist/components/active-filters/active-filter-describers.d.ts +62 -0
- package/dist/components/active-filters/active-filter-describers.js +48 -0
- package/dist/components/active-filters/active-filters.d.ts +27 -0
- package/dist/components/active-filters/active-filters.js +96 -0
- package/dist/components/active-filters/index.d.ts +2 -0
- package/dist/components/active-filters/index.js +3 -0
- package/dist/components/attachment-tile/attachment-preview.d.ts +33 -0
- package/dist/components/attachment-tile/attachment-preview.js +181 -0
- package/dist/components/attachment-tile/attachment-tile.css +92 -0
- package/dist/components/attachment-tile/attachment-tile.d.ts +51 -0
- package/dist/components/attachment-tile/attachment-tile.js +126 -0
- package/dist/components/attachment-tile/attachment-tile.module.js +20 -0
- package/dist/components/attachment-tile/index.d.ts +2 -0
- package/dist/components/attachment-tile/index.js +3 -0
- package/dist/components/avatar/avatar.css +48 -0
- package/dist/components/avatar/avatar.d.ts +19 -0
- package/dist/components/avatar/avatar.js +98 -0
- package/dist/components/avatar/avatar.module.js +10 -0
- package/dist/components/avatar/index.d.ts +1 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/avatar-group/avatar-group-context.d.ts +15 -0
- package/dist/components/avatar-group/avatar-group-context.js +14 -0
- package/dist/components/avatar-group/avatar-group.css +62 -0
- package/dist/components/avatar-group/avatar-group.d.ts +96 -0
- package/dist/components/avatar-group/avatar-group.js +519 -0
- package/dist/components/avatar-group/avatar-group.module.js +20 -0
- package/dist/components/avatar-group/index.d.ts +1 -0
- package/dist/components/avatar-group/index.js +1 -0
- package/dist/components/badge/badge.css +101 -0
- package/dist/components/badge/badge.d.ts +17 -0
- package/dist/components/badge/badge.js +61 -0
- package/dist/components/badge/badge.module.js +4 -0
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.css +57 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +105 -0
- package/dist/components/breadcrumbs/breadcrumbs.js +710 -0
- package/dist/components/breadcrumbs/breadcrumbs.module.js +20 -0
- package/dist/components/breadcrumbs/index.d.ts +2 -0
- package/dist/components/breadcrumbs/index.js +3 -0
- package/dist/components/breadcrumbs/use-fold.d.ts +34 -0
- package/dist/components/breadcrumbs/use-fold.js +73 -0
- package/dist/components/button/button-attributes.d.ts +23 -0
- package/dist/components/button/button-attributes.js +17 -0
- package/dist/components/button/button.css +111 -0
- package/dist/components/button/button.d.ts +47 -0
- package/dist/components/button/button.js +210 -0
- package/dist/components/button/button.module.js +4 -0
- package/dist/components/button/close-button.d.ts +14 -0
- package/dist/components/button/close-button.js +30 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/checkbox-field/checkbox-field.d.ts +21 -0
- package/dist/components/checkbox-field/checkbox-field.js +181 -0
- package/dist/components/checkbox-field/checkbox-glyph.d.ts +12 -0
- package/dist/components/checkbox-field/checkbox-glyph.js +38 -0
- package/dist/components/checkbox-field/checkbox.css +128 -0
- package/dist/components/checkbox-field/checkbox.d.ts +14 -0
- package/dist/components/checkbox-field/checkbox.js +91 -0
- package/dist/components/checkbox-field/checkbox.module.js +14 -0
- package/dist/components/checkbox-field/index.d.ts +4 -0
- package/dist/components/checkbox-field/index.js +5 -0
- package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +14 -0
- package/dist/components/checkbox-field/tsf-checkbox-field.js +40 -0
- package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +33 -0
- package/dist/components/checkbox-group-field/checkbox-group-field.js +128 -0
- package/dist/components/checkbox-group-field/checkbox-group.css +31 -0
- package/dist/components/checkbox-group-field/checkbox-group.d.ts +38 -0
- package/dist/components/checkbox-group-field/checkbox-group.js +102 -0
- package/dist/components/checkbox-group-field/checkbox-group.module.js +8 -0
- package/dist/components/checkbox-group-field/index.d.ts +3 -0
- package/dist/components/checkbox-group-field/index.js +4 -0
- package/dist/components/checkbox-group-field/tsf-checkbox-group-field.d.ts +15 -0
- package/dist/components/checkbox-group-field/tsf-checkbox-group-field.js +41 -0
- package/dist/components/collapsible/collapsible.css +88 -0
- package/dist/components/collapsible/collapsible.d.ts +33 -0
- package/dist/components/collapsible/collapsible.js +146 -0
- package/dist/components/collapsible/collapsible.module.js +14 -0
- package/dist/components/collapsible/index.d.ts +1 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/combobox-field/combobox-field.d.ts +66 -0
- package/dist/components/combobox-field/combobox-field.js +527 -0
- package/dist/components/combobox-field/combobox-items.d.ts +80 -0
- package/dist/components/combobox-field/combobox-items.js +27 -0
- package/dist/components/combobox-field/combobox-popup-body.d.ts +34 -0
- package/dist/components/combobox-field/combobox-popup-body.js +142 -0
- package/dist/components/combobox-field/combobox.css +535 -0
- package/dist/components/combobox-field/combobox.d.ts +105 -0
- package/dist/components/combobox-field/combobox.js +642 -0
- package/dist/components/combobox-field/combobox.module.js +46 -0
- package/dist/components/combobox-field/index.d.ts +7 -0
- package/dist/components/combobox-field/index.js +4 -0
- package/dist/components/combobox-field/item-lookups.d.ts +18 -0
- package/dist/components/combobox-field/item-lookups.js +8 -0
- package/dist/components/combobox-field/react-query.d.ts +15 -0
- package/dist/components/combobox-field/react-query.js +78 -0
- package/dist/components/combobox-field/selection.d.ts +50 -0
- package/dist/components/combobox-field/selection.js +38 -0
- package/dist/components/combobox-field/tsf-combobox-field.d.ts +33 -0
- package/dist/components/combobox-field/tsf-combobox-field.js +88 -0
- package/dist/components/combobox-field/value-state-view.css +21 -0
- package/dist/components/combobox-field/value-state-view.d.ts +35 -0
- package/dist/components/combobox-field/value-state-view.js +107 -0
- package/dist/components/combobox-field/value-state-view.module.js +10 -0
- package/dist/components/combobox-field/value-state.d.ts +49 -0
- package/dist/components/combobox-field/value-state.js +38 -0
- package/dist/components/composer/composer-attachments.d.ts +31 -0
- package/dist/components/composer/composer-attachments.js +158 -0
- package/dist/components/composer/composer-editor.css +104 -0
- package/dist/components/composer/composer-editor.d.ts +15 -0
- package/dist/components/composer/composer-editor.js +165 -0
- package/dist/components/composer/composer-editor.module.js +14 -0
- package/dist/components/composer/composer-mentions.d.ts +10 -0
- package/dist/components/composer/composer-mentions.js +294 -0
- package/dist/components/composer/composer.context.d.ts +56 -0
- package/dist/components/composer/composer.context.js +14 -0
- package/dist/components/composer/composer.css +81 -0
- package/dist/components/composer/composer.d.ts +77 -0
- package/dist/components/composer/composer.handle.d.ts +31 -0
- package/dist/components/composer/composer.handle.js +41 -0
- package/dist/components/composer/composer.js +428 -0
- package/dist/components/composer/composer.module.js +14 -0
- package/dist/components/composer/editor-behavior.d.ts +2 -0
- package/dist/components/composer/editor-behavior.js +99 -0
- package/dist/components/composer/index.d.ts +8 -0
- package/dist/components/composer/index.js +3 -0
- package/dist/components/composer/mention-node.d.ts +44 -0
- package/dist/components/composer/mention-node.js +71 -0
- package/dist/components/composer/mention-sources.d.ts +14 -0
- package/dist/components/composer/mention-text.css +14 -0
- package/dist/components/composer/mention-text.d.ts +66 -0
- package/dist/components/composer/mention-text.js +95 -0
- package/dist/components/composer/mention-text.module.js +4 -0
- package/dist/components/confirm-dialog/confirm-dialog.css +68 -0
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +75 -0
- package/dist/components/confirm-dialog/confirm-dialog.js +399 -0
- package/dist/components/confirm-dialog/confirm-dialog.module.js +14 -0
- package/dist/components/confirm-dialog/index.d.ts +1 -0
- package/dist/components/confirm-dialog/index.js +1 -0
- package/dist/components/conversation/conversation.context.d.ts +9 -0
- package/dist/components/conversation/conversation.context.js +4 -0
- package/dist/components/conversation/conversation.css +143 -0
- package/dist/components/conversation/conversation.d.ts +126 -0
- package/dist/components/conversation/conversation.js +761 -0
- package/dist/components/conversation/conversation.module.js +34 -0
- package/dist/components/conversation/group-messages.d.ts +34 -0
- package/dist/components/conversation/group-messages.js +64 -0
- package/dist/components/conversation/index.d.ts +4 -0
- package/dist/components/conversation/index.js +3 -0
- package/dist/components/conversation/moment.d.ts +11 -0
- package/dist/components/conversation/moment.js +15 -0
- package/dist/components/date-field/date-field.d.ts +45 -0
- package/dist/components/date-field/date-field.js +162 -0
- package/dist/components/date-field/date-input.d.ts +46 -0
- package/dist/components/date-field/date-input.js +109 -0
- package/dist/components/date-field/index.d.ts +4 -0
- package/dist/components/date-field/index.js +4 -0
- package/dist/components/date-field/tsf-date-field.d.ts +14 -0
- package/dist/components/date-field/tsf-date-field.js +40 -0
- package/dist/components/date-range-field/date-range-field.d.ts +53 -0
- package/dist/components/date-range-field/date-range-field.js +167 -0
- package/dist/components/date-range-field/date-range-input.d.ts +51 -0
- package/dist/components/date-range-field/date-range-input.js +109 -0
- package/dist/components/date-range-field/index.d.ts +4 -0
- package/dist/components/date-range-field/index.js +5 -0
- package/dist/components/date-range-field/tsf-date-range-field.d.ts +15 -0
- package/dist/components/date-range-field/tsf-date-range-field.js +58 -0
- package/dist/components/detail-list/detail-list.css +32 -0
- package/dist/components/detail-list/detail-list.d.ts +41 -0
- package/dist/components/detail-list/detail-list.js +163 -0
- package/dist/components/detail-list/detail-list.module.js +14 -0
- package/dist/components/detail-list/index.d.ts +1 -0
- package/dist/components/detail-list/index.js +1 -0
- package/dist/components/dialog/dialog.css +78 -0
- package/dist/components/dialog/dialog.d.ts +59 -0
- package/dist/components/dialog/dialog.js +245 -0
- package/dist/components/dialog/dialog.module.js +16 -0
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/divider/divider.css +16 -0
- package/dist/components/divider/divider.d.ts +13 -0
- package/dist/components/divider/divider.js +47 -0
- package/dist/components/divider/divider.module.js +10 -0
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/divider/index.js +1 -0
- package/dist/components/drawer/drawer.css +168 -0
- package/dist/components/drawer/drawer.d.ts +65 -0
- package/dist/components/drawer/drawer.js +219 -0
- package/dist/components/drawer/drawer.module.js +16 -0
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/email-field/email-field.d.ts +11 -0
- package/dist/components/email-field/email-field.js +45 -0
- package/dist/components/email-field/index.d.ts +2 -0
- package/dist/components/email-field/index.js +3 -0
- package/dist/components/email-field/tsf-email-field.d.ts +13 -0
- package/dist/components/email-field/tsf-email-field.js +14 -0
- package/dist/components/empty-message/empty-message.d.ts +16 -0
- package/dist/components/empty-message/empty-message.js +31 -0
- package/dist/components/empty-message/index.d.ts +1 -0
- package/dist/components/empty-message/index.js +1 -0
- package/dist/components/error-boundary/error-boundary.d.ts +43 -0
- package/dist/components/error-boundary/error-boundary.js +60 -0
- package/dist/components/error-boundary/index.d.ts +1 -0
- package/dist/components/error-boundary/index.js +1 -0
- package/dist/components/error-message/error-message.d.ts +15 -0
- package/dist/components/error-message/error-message.js +30 -0
- package/dist/components/error-message/index.d.ts +1 -0
- package/dist/components/error-message/index.js +1 -0
- package/dist/components/error-text/error-cascade.d.ts +32 -0
- package/dist/components/error-text/error-cascade.js +49 -0
- package/dist/components/error-text/error-text.css +27 -0
- package/dist/components/error-text/error-text.d.ts +22 -0
- package/dist/components/error-text/error-text.js +139 -0
- package/dist/components/error-text/error-text.module.js +11 -0
- package/dist/components/error-text/index.d.ts +1 -0
- package/dist/components/error-text/index.js +1 -0
- package/dist/components/field/choice-option.d.ts +11 -0
- package/dist/components/field/field-state.d.ts +51 -0
- package/dist/components/field/field-state.js +28 -0
- package/dist/components/field/field.css +50 -0
- package/dist/components/field/field.d.ts +183 -0
- package/dist/components/field/field.js +434 -0
- package/dist/components/field/field.module.js +20 -0
- package/dist/components/field/fieldset.d.ts +22 -0
- package/dist/components/field/fieldset.js +130 -0
- package/dist/components/field/hidden-input.d.ts +8 -0
- package/dist/components/field/hidden-input.js +12 -0
- package/dist/components/field/index.d.ts +6 -0
- package/dist/components/field/index.js +6 -0
- package/dist/components/field/input-parts.d.ts +49 -0
- package/dist/components/field/input-parts.js +94 -0
- package/dist/components/field/options-load.d.ts +54 -0
- package/dist/components/field/options-load.js +38 -0
- package/dist/components/field/rim-focus.d.ts +10 -0
- package/dist/components/field/rim-focus.js +23 -0
- package/dist/components/field/use-field-focus.d.ts +37 -0
- package/dist/components/field/use-field-focus.js +71 -0
- package/dist/components/field/use-field-state.d.ts +32 -0
- package/dist/components/field/use-field-state.js +77 -0
- package/dist/components/field-placeholder/field-placeholder.css +22 -0
- package/dist/components/field-placeholder/field-placeholder.d.ts +10 -0
- package/dist/components/field-placeholder/field-placeholder.js +54 -0
- package/dist/components/field-placeholder/field-placeholder.module.js +12 -0
- package/dist/components/field-placeholder/index.d.ts +1 -0
- package/dist/components/field-placeholder/index.js +1 -0
- package/dist/components/file-field/file-field.css +101 -0
- package/dist/components/file-field/file-field.d.ts +59 -0
- package/dist/components/file-field/file-field.js +296 -0
- package/dist/components/file-field/file-field.module.js +10 -0
- package/dist/components/file-field/file-input.d.ts +85 -0
- package/dist/components/file-field/file-input.js +334 -0
- package/dist/components/file-field/file-size.d.ts +21 -0
- package/dist/components/file-field/file-size.js +18 -0
- package/dist/components/file-field/file-type.d.ts +21 -0
- package/dist/components/file-field/file-type.js +28 -0
- package/dist/components/file-field/index.d.ts +3 -0
- package/dist/components/file-field/index.js +4 -0
- package/dist/components/file-field/tsf-file-field.d.ts +14 -0
- package/dist/components/file-field/tsf-file-field.js +48 -0
- package/dist/components/filter-bar/filter-bar.css +34 -0
- package/dist/components/filter-bar/filter-bar.d.ts +87 -0
- package/dist/components/filter-bar/filter-bar.js +311 -0
- package/dist/components/filter-bar/filter-bar.module.js +14 -0
- package/dist/components/filter-bar/index.d.ts +2 -0
- package/dist/components/filter-bar/index.js +3 -0
- package/dist/components/filter-bar/use-filter-view.d.ts +86 -0
- package/dist/components/filter-bar/use-filter-view.js +219 -0
- package/dist/components/form/first-invalid.d.ts +10 -0
- package/dist/components/form/first-invalid.js +31 -0
- package/dist/components/form/form-context.d.ts +23 -0
- package/dist/components/form/form-context.js +28 -0
- package/dist/components/form/form.css +14 -0
- package/dist/components/form/form.d.ts +68 -0
- package/dist/components/form/form.js +317 -0
- package/dist/components/form/form.module.js +8 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.js +3 -0
- package/dist/components/icon/icon.css +9 -0
- package/dist/components/icon/icon.d.ts +31 -0
- package/dist/components/icon/icon.js +61 -0
- package/dist/components/icon/icon.module.js +4 -0
- package/dist/components/icon/index.d.ts +1 -0
- package/dist/components/icon/index.js +1 -0
- package/dist/components/link/index.d.ts +1 -0
- package/dist/components/link/index.js +1 -0
- package/dist/components/link/link.css +18 -0
- package/dist/components/link/link.d.ts +11 -0
- package/dist/components/link/link.js +45 -0
- package/dist/components/link/link.module.js +4 -0
- package/dist/components/link-button/index.d.ts +1 -0
- package/dist/components/link-button/index.js +1 -0
- package/dist/components/link-button/link-button.d.ts +23 -0
- package/dist/components/link-button/link-button.js +80 -0
- package/dist/components/loading-message/index.d.ts +1 -0
- package/dist/components/loading-message/index.js +1 -0
- package/dist/components/loading-message/loading-message.d.ts +22 -0
- package/dist/components/loading-message/loading-message.js +55 -0
- package/dist/components/locale-provider/index.d.ts +1 -0
- package/dist/components/locale-provider/index.js +1 -0
- package/dist/components/locale-provider/locale-provider.d.ts +22 -0
- package/dist/components/locale-provider/locale-provider.js +50 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/menu.css +122 -0
- package/dist/components/menu/menu.d.ts +78 -0
- package/dist/components/menu/menu.js +382 -0
- package/dist/components/menu/menu.module.js +20 -0
- package/dist/components/nav/index.d.ts +3 -0
- package/dist/components/nav/index.js +3 -0
- package/dist/components/nav/nav-context.d.ts +17 -0
- package/dist/components/nav/nav-context.js +5 -0
- package/dist/components/nav/nav-item-view.d.ts +63 -0
- package/dist/components/nav/nav-item-view.js +243 -0
- package/dist/components/nav/nav.css +310 -0
- package/dist/components/nav/nav.d.ts +87 -0
- package/dist/components/nav/nav.js +481 -0
- package/dist/components/nav/nav.module.js +32 -0
- package/dist/components/number-field/index.d.ts +4 -0
- package/dist/components/number-field/index.js +5 -0
- package/dist/components/number-field/number-field-formats.d.ts +24 -0
- package/dist/components/number-field/number-field-formats.js +43 -0
- package/dist/components/number-field/number-field.css +116 -0
- package/dist/components/number-field/number-field.d.ts +34 -0
- package/dist/components/number-field/number-field.js +168 -0
- package/dist/components/number-field/number-field.module.js +16 -0
- package/dist/components/number-field/number-input.d.ts +76 -0
- package/dist/components/number-field/number-input.js +383 -0
- package/dist/components/number-field/tsf-number-field.d.ts +14 -0
- package/dist/components/number-field/tsf-number-field.js +34 -0
- package/dist/components/otp-field/index.d.ts +3 -0
- package/dist/components/otp-field/index.js +4 -0
- package/dist/components/otp-field/otp-field.css +97 -0
- package/dist/components/otp-field/otp-field.d.ts +22 -0
- package/dist/components/otp-field/otp-field.js +91 -0
- package/dist/components/otp-field/otp-field.module.js +12 -0
- package/dist/components/otp-field/otp-input-context.d.ts +27 -0
- package/dist/components/otp-field/otp-input-context.js +15 -0
- package/dist/components/otp-field/otp-input.d.ts +76 -0
- package/dist/components/otp-field/otp-input.js +341 -0
- package/dist/components/otp-field/tsf-otp-field.d.ts +14 -0
- package/dist/components/otp-field/tsf-otp-field.js +34 -0
- package/dist/components/pagination/index.d.ts +1 -0
- package/dist/components/pagination/index.js +1 -0
- package/dist/components/pagination/pagination-context.d.ts +23 -0
- package/dist/components/pagination/pagination-context.js +14 -0
- package/dist/components/pagination/pagination.css +24 -0
- package/dist/components/pagination/pagination.d.ts +60 -0
- package/dist/components/pagination/pagination.js +341 -0
- package/dist/components/pagination/pagination.module.js +12 -0
- package/dist/components/password-field/index.d.ts +4 -0
- package/dist/components/password-field/index.js +4 -0
- package/dist/components/password-field/password-field.css +66 -0
- package/dist/components/password-field/password-field.d.ts +44 -0
- package/dist/components/password-field/password-field.js +227 -0
- package/dist/components/password-field/password-field.module.js +20 -0
- package/dist/components/password-field/password-strength.d.ts +27 -0
- package/dist/components/password-field/password-strength.js +124 -0
- package/dist/components/password-field/tsf-password-field.d.ts +14 -0
- package/dist/components/password-field/tsf-password-field.js +34 -0
- package/dist/components/phone-field/index.d.ts +2 -0
- package/dist/components/phone-field/index.js +3 -0
- package/dist/components/phone-field/phone-field.d.ts +14 -0
- package/dist/components/phone-field/phone-field.js +29 -0
- package/dist/components/phone-field/tsf-phone-field.d.ts +14 -0
- package/dist/components/phone-field/tsf-phone-field.js +14 -0
- package/dist/components/photo-field/index.d.ts +3 -0
- package/dist/components/photo-field/index.js +4 -0
- package/dist/components/photo-field/photo-field.d.ts +29 -0
- package/dist/components/photo-field/photo-field.js +183 -0
- package/dist/components/photo-field/photo-input.css +113 -0
- package/dist/components/photo-field/photo-input.d.ts +63 -0
- package/dist/components/photo-field/photo-input.js +327 -0
- package/dist/components/photo-field/photo-input.module.js +18 -0
- package/dist/components/photo-field/tsf-photo-field.d.ts +19 -0
- package/dist/components/photo-field/tsf-photo-field.js +56 -0
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover.css +120 -0
- package/dist/components/popover/popover.d.ts +72 -0
- package/dist/components/popover/popover.js +434 -0
- package/dist/components/popover/popover.module.js +34 -0
- package/dist/components/radio-group-field/index.d.ts +3 -0
- package/dist/components/radio-group-field/index.js +4 -0
- package/dist/components/radio-group-field/radio-group-field.d.ts +26 -0
- package/dist/components/radio-group-field/radio-group-field.js +128 -0
- package/dist/components/radio-group-field/radio-group.css +116 -0
- package/dist/components/radio-group-field/radio-group.d.ts +38 -0
- package/dist/components/radio-group-field/radio-group.js +158 -0
- package/dist/components/radio-group-field/radio-group.module.js +12 -0
- package/dist/components/radio-group-field/tsf-radio-group-field.d.ts +15 -0
- package/dist/components/radio-group-field/tsf-radio-group-field.js +41 -0
- package/dist/components/search-field/index.d.ts +2 -0
- package/dist/components/search-field/index.js +3 -0
- package/dist/components/search-field/search-field.d.ts +17 -0
- package/dist/components/search-field/search-field.js +45 -0
- package/dist/components/search-field/tsf-search-field.d.ts +14 -0
- package/dist/components/search-field/tsf-search-field.js +14 -0
- package/dist/components/segmented-control-field/index.d.ts +3 -0
- package/dist/components/segmented-control-field/index.js +4 -0
- package/dist/components/segmented-control-field/segmented-control-field.d.ts +32 -0
- package/dist/components/segmented-control-field/segmented-control-field.js +166 -0
- package/dist/components/segmented-control-field/segmented-control.css +203 -0
- package/dist/components/segmented-control-field/segmented-control.d.ts +58 -0
- package/dist/components/segmented-control-field/segmented-control.js +209 -0
- package/dist/components/segmented-control-field/segmented-control.module.js +12 -0
- package/dist/components/segmented-control-field/tsf-segmented-control-field.d.ts +15 -0
- package/dist/components/segmented-control-field/tsf-segmented-control-field.js +41 -0
- package/dist/components/select-field/index.d.ts +3 -0
- package/dist/components/select-field/index.js +4 -0
- package/dist/components/select-field/select-context.d.ts +20 -0
- package/dist/components/select-field/select-context.js +15 -0
- package/dist/components/select-field/select-field.d.ts +32 -0
- package/dist/components/select-field/select-field.js +312 -0
- package/dist/components/select-field/select.css +233 -0
- package/dist/components/select-field/select.d.ts +78 -0
- package/dist/components/select-field/select.js +529 -0
- package/dist/components/select-field/select.module.js +30 -0
- package/dist/components/select-field/tsf-select-field.d.ts +15 -0
- package/dist/components/select-field/tsf-select-field.js +41 -0
- package/dist/components/skeleton/index.d.ts +1 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/skeleton/skeleton.css +16 -0
- package/dist/components/skeleton/skeleton.d.ts +13 -0
- package/dist/components/skeleton/skeleton.js +34 -0
- package/dist/components/skeleton/skeleton.module.js +9 -0
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/spinner/spinner.css +7 -0
- package/dist/components/spinner/spinner.d.ts +15 -0
- package/dist/components/spinner/spinner.js +50 -0
- package/dist/components/spinner/spinner.module.js +4 -0
- package/dist/components/stale/index.d.ts +1 -0
- package/dist/components/stale/index.js +1 -0
- package/dist/components/stale/stale.css +60 -0
- package/dist/components/stale/stale.d.ts +68 -0
- package/dist/components/stale/stale.js +231 -0
- package/dist/components/stale/stale.module.js +16 -0
- package/dist/components/status-message/index.d.ts +1 -0
- package/dist/components/status-message/index.js +1 -0
- package/dist/components/status-message/status-message.css +122 -0
- package/dist/components/status-message/status-message.d.ts +72 -0
- package/dist/components/status-message/status-message.js +182 -0
- package/dist/components/status-message/status-message.module.js +16 -0
- package/dist/components/status-message/status-preset.d.ts +26 -0
- package/dist/components/status-message/status-preset.js +64 -0
- package/dist/components/switch-field/index.d.ts +3 -0
- package/dist/components/switch-field/index.js +4 -0
- package/dist/components/switch-field/switch-field.d.ts +23 -0
- package/dist/components/switch-field/switch-field.js +142 -0
- package/dist/components/switch-field/switch.css +145 -0
- package/dist/components/switch-field/switch.d.ts +35 -0
- package/dist/components/switch-field/switch.js +207 -0
- package/dist/components/switch-field/switch.module.js +12 -0
- package/dist/components/switch-field/tsf-switch-field.d.ts +14 -0
- package/dist/components/switch-field/tsf-switch-field.js +40 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/tabs.css +122 -0
- package/dist/components/tabs/tabs.d.ts +57 -0
- package/dist/components/tabs/tabs.js +194 -0
- package/dist/components/tabs/tabs.module.js +18 -0
- package/dist/components/tag/index.d.ts +1 -0
- package/dist/components/tag/index.js +1 -0
- package/dist/components/tag/tag.css +120 -0
- package/dist/components/tag/tag.d.ts +36 -0
- package/dist/components/tag/tag.js +124 -0
- package/dist/components/tag/tag.module.js +10 -0
- package/dist/components/tag-group/index.d.ts +1 -0
- package/dist/components/tag-group/index.js +1 -0
- package/dist/components/tag-group/tag-group.css +155 -0
- package/dist/components/tag-group/tag-group.d.ts +53 -0
- package/dist/components/tag-group/tag-group.js +182 -0
- package/dist/components/tag-group/tag-group.module.js +12 -0
- package/dist/components/text-field/connect-text-preset.d.ts +13 -0
- package/dist/components/text-field/connect-text-preset.js +34 -0
- package/dist/components/text-field/index.d.ts +5 -0
- package/dist/components/text-field/index.js +5 -0
- package/dist/components/text-field/text-field.css +170 -0
- package/dist/components/text-field/text-field.d.ts +57 -0
- package/dist/components/text-field/text-field.js +247 -0
- package/dist/components/text-field/text-field.module.js +22 -0
- package/dist/components/text-field/text-input-context.d.ts +28 -0
- package/dist/components/text-field/text-input-context.js +16 -0
- package/dist/components/text-field/text-input.d.ts +79 -0
- package/dist/components/text-field/text-input.js +588 -0
- package/dist/components/text-field/text-preset.d.ts +7 -0
- package/dist/components/text-field/tsf-text-field.d.ts +14 -0
- package/dist/components/text-field/tsf-text-field.js +34 -0
- package/dist/components/textarea-field/index.d.ts +3 -0
- package/dist/components/textarea-field/index.js +4 -0
- package/dist/components/textarea-field/textarea-field.css +12 -0
- package/dist/components/textarea-field/textarea-field.d.ts +19 -0
- package/dist/components/textarea-field/textarea-field.js +168 -0
- package/dist/components/textarea-field/textarea-field.module.js +8 -0
- package/dist/components/textarea-field/textarea.d.ts +19 -0
- package/dist/components/textarea-field/textarea.js +108 -0
- package/dist/components/textarea-field/tsf-textarea-field.d.ts +14 -0
- package/dist/components/textarea-field/tsf-textarea-field.js +34 -0
- package/dist/components/textarea-field/use-autosize.d.ts +11 -0
- package/dist/components/textarea-field/use-autosize.js +65 -0
- package/dist/components/time-field/index.d.ts +3 -0
- package/dist/components/time-field/index.js +4 -0
- package/dist/components/time-field/time-field.d.ts +25 -0
- package/dist/components/time-field/time-field.js +115 -0
- package/dist/components/time-field/time-input.d.ts +30 -0
- package/dist/components/time-field/time-input.js +66 -0
- package/dist/components/time-field/tsf-time-field.d.ts +14 -0
- package/dist/components/time-field/tsf-time-field.js +40 -0
- package/dist/components/time-zone-provider/index.d.ts +1 -0
- package/dist/components/time-zone-provider/index.js +1 -0
- package/dist/components/time-zone-provider/time-zone-provider.d.ts +22 -0
- package/dist/components/time-zone-provider/time-zone-provider.js +39 -0
- package/dist/components/toast/index.d.ts +2 -0
- package/dist/components/toast/index.js +3 -0
- package/dist/components/toast/toast-provider.css +99 -0
- package/dist/components/toast/toast-provider.d.ts +18 -0
- package/dist/components/toast/toast-provider.js +203 -0
- package/dist/components/toast/toast-provider.module.js +24 -0
- package/dist/components/toast/toast.d.ts +79 -0
- package/dist/components/toast/toast.js +68 -0
- package/dist/components/toggle-group-field/index.d.ts +3 -0
- package/dist/components/toggle-group-field/index.js +4 -0
- package/dist/components/toggle-group-field/toggle-group-field.d.ts +32 -0
- package/dist/components/toggle-group-field/toggle-group-field.js +158 -0
- package/dist/components/toggle-group-field/toggle-group.css +148 -0
- package/dist/components/toggle-group-field/toggle-group.d.ts +44 -0
- package/dist/components/toggle-group-field/toggle-group.js +156 -0
- package/dist/components/toggle-group-field/toggle-group.module.js +8 -0
- package/dist/components/toggle-group-field/tsf-toggle-group-field.d.ts +15 -0
- package/dist/components/toggle-group-field/tsf-toggle-group-field.js +41 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tooltip/tooltip.css +22 -0
- package/dist/components/tooltip/tooltip.d.ts +46 -0
- package/dist/components/tooltip/tooltip.js +175 -0
- package/dist/components/tooltip/tooltip.module.js +4 -0
- package/dist/data-table/data-table-content.d.ts +27 -0
- package/dist/data-table/data-table-content.js +311 -0
- package/dist/data-table/data-table-context.d.ts +33 -0
- package/dist/data-table/data-table-context.js +31 -0
- package/dist/data-table/data-table-selection.d.ts +42 -0
- package/dist/data-table/data-table-selection.js +299 -0
- package/dist/data-table/data-table.css +515 -0
- package/dist/data-table/data-table.d.ts +93 -0
- package/dist/data-table/data-table.js +215 -0
- package/dist/data-table/data-table.module.js +68 -0
- package/dist/data-table/index.d.ts +6 -0
- package/dist/data-table/index.js +5 -0
- package/dist/data-table/resolve-view.d.ts +31 -0
- package/dist/data-table/resolve-view.js +37 -0
- package/dist/data-table/table-features.d.ts +69 -0
- package/dist/data-table/table-features.js +41 -0
- package/dist/data-table/use-sticky-offsets.d.ts +21 -0
- package/dist/data-table/use-sticky-offsets.js +86 -0
- package/dist/data-view/index.d.ts +1 -0
- package/dist/data-view/index.js +1 -0
- package/dist/data-view/use-data-view.d.ts +83 -0
- package/dist/data-view/use-data-view.js +135 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.js +132 -0
- package/dist/lib/calendar/calendar-navigation.d.ts +19 -0
- package/dist/lib/calendar/calendar-navigation.js +216 -0
- package/dist/lib/calendar/calendar-state.d.ts +19 -0
- package/dist/lib/calendar/calendar-state.js +33 -0
- package/dist/lib/calendar/calendar-year.d.ts +20 -0
- package/dist/lib/calendar/calendar-year.js +342 -0
- package/dist/lib/calendar/temporal-value.d.ts +84 -0
- package/dist/lib/calendar/temporal-value.js +105 -0
- package/dist/lib/calendar/temporal.css +596 -0
- package/dist/lib/calendar/temporal.d.ts +134 -0
- package/dist/lib/calendar/temporal.js +783 -0
- package/dist/lib/calendar/temporal.module.js +80 -0
- package/dist/lib/format-bytes.d.ts +10 -0
- package/dist/lib/format-bytes.js +22 -0
- package/dist/lib/forms/context.d.ts +32 -0
- package/dist/lib/forms/context.js +33 -0
- package/dist/lib/forms/create-app-form.d.ts +24 -0
- package/dist/lib/forms/create-app-form.js +36 -0
- package/dist/lib/forms/errors.d.ts +23 -0
- package/dist/lib/forms/errors.js +25 -0
- package/dist/lib/forms/failed-submit.d.ts +16 -0
- package/dist/lib/forms/failed-submit.js +44 -0
- package/dist/lib/forms/index.d.ts +3 -0
- package/dist/lib/forms/index.js +4 -0
- package/dist/lib/forms/use-connected-field.d.ts +27 -0
- package/dist/lib/forms/use-connected-field.js +48 -0
- package/dist/lib/hooks/index.d.ts +5 -0
- package/dist/lib/hooks/index.js +6 -0
- package/dist/lib/hooks/use-busy-phase.d.ts +31 -0
- package/dist/lib/hooks/use-busy-phase.js +75 -0
- package/dist/lib/hooks/use-media-query.d.ts +8 -0
- package/dist/lib/hooks/use-media-query.js +34 -0
- package/dist/lib/hooks/use-presence.d.ts +25 -0
- package/dist/lib/hooks/use-presence.js +155 -0
- package/dist/lib/hooks/use-row-selection.d.ts +65 -0
- package/dist/lib/hooks/use-row-selection.js +136 -0
- package/dist/lib/hooks/use-theme.d.ts +28 -0
- package/dist/lib/hooks/use-theme.js +88 -0
- package/dist/lib/iso-zoned.d.ts +9 -0
- package/dist/lib/iso-zoned.js +19 -0
- package/dist/lib/password-strength/password-strength.d.ts +38 -0
- package/dist/lib/password-strength/password-strength.js +72 -0
- package/dist/lib/popup-edge-padding.d.ts +20 -0
- package/dist/lib/popup-edge-padding.js +41 -0
- package/dist/lib/sliding-indicator/index.d.ts +1 -0
- package/dist/lib/sliding-indicator/use-sliding-indicator.d.ts +27 -0
- package/dist/lib/sliding-indicator/use-sliding-indicator.js +84 -0
- package/dist/lib/storage.d.ts +21 -0
- package/dist/lib/storage.js +0 -0
- package/dist/lib/table-storage.d.ts +43 -0
- package/dist/lib/table-storage.js +62 -0
- package/dist/lib/text-length.d.ts +10 -0
- package/dist/lib/text-length.js +15 -0
- package/dist/lib/tone.d.ts +14 -0
- package/dist/lib/tone.js +0 -0
- package/dist/lib/unsaved-changes/before-unload.d.ts +8 -0
- package/dist/lib/unsaved-changes/before-unload.js +37 -0
- package/dist/lib/unsaved-changes/index.d.ts +4 -0
- package/dist/lib/unsaved-changes/index.js +5 -0
- package/dist/lib/unsaved-changes/leave-guard.d.ts +80 -0
- package/dist/lib/unsaved-changes/leave-guard.js +170 -0
- package/dist/lib/unsaved-changes/policy.d.ts +24 -0
- package/dist/lib/unsaved-changes/policy.js +17 -0
- package/dist/lib/unsaved-changes/registry.d.ts +36 -0
- package/dist/lib/unsaved-changes/registry.js +78 -0
- package/dist/lib/unsaved-changes/tanstack-router.d.ts +12 -0
- package/dist/lib/unsaved-changes/tanstack-router.js +50 -0
- package/dist/lib/use-infinite-scroll.d.ts +31 -0
- package/dist/lib/use-infinite-scroll.js +78 -0
- package/dist/lib/use-intent.d.ts +17 -0
- package/dist/lib/use-intent.js +77 -0
- package/dist/lib/use-required-context.d.ts +9 -0
- package/dist/lib/use-required-context.js +15 -0
- package/dist/terrazzo/index.d.ts +39 -0
- package/dist/terrazzo/index.js +93 -0
- package/dist/tokens.css +1102 -0
- package/dist/vendor/@material-design-icons/svg/outlined/add.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/block.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/check.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/close.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/description.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/download.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/error.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/info.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/mail.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/remove.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/restore.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/search.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +12 -0
- package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +12 -0
- package/package.json +452 -5
- package/tokens/dark.tokens.json +329 -0
- package/tokens/kit.resolver.json +38 -0
- package/tokens/ref.tokens.json +1436 -0
- package/tokens/sys.tokens.json +1267 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createContext } from "react";
|
|
2
|
+
// src/components/combobox-field/item-lookups.ts
|
|
3
|
+
/**
|
|
4
|
+
* The component that runs an `itemQuery`, put in place by
|
|
5
|
+
* `ComboboxItemQueries`. Empty without one.
|
|
6
|
+
*/
|
|
7
|
+
var ItemLookupsContext = createContext(null);
|
|
8
|
+
export { ItemLookupsContext };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Lets every `ComboboxField` under it run its `itemQuery` through TanStack
|
|
4
|
+
* Query. Mount it once, inside the app's `QueryClientProvider`.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* <QueryClientProvider client={queryClient}>
|
|
8
|
+
* <ComboboxItemQueries>
|
|
9
|
+
* <App />
|
|
10
|
+
* </ComboboxItemQueries>
|
|
11
|
+
* </QueryClientProvider>
|
|
12
|
+
*/
|
|
13
|
+
export declare const ComboboxItemQueries: ({ children, }: Readonly<{
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}>) => ReactNode;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { ItemLookupsContext } from "./item-lookups.js";
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { useQueries } from "@tanstack/react-query";
|
|
5
|
+
// src/components/combobox-field/react-query.tsx
|
|
6
|
+
var QueryItemLookups = (t0) => {
|
|
7
|
+
const $ = c(10);
|
|
8
|
+
const { keys, itemQuery, children } = t0;
|
|
9
|
+
let t1;
|
|
10
|
+
if ($[0] !== itemQuery || $[1] !== keys) {
|
|
11
|
+
let t2;
|
|
12
|
+
if ($[3] !== itemQuery) {
|
|
13
|
+
t2 = (key) => ({
|
|
14
|
+
...itemQuery(key),
|
|
15
|
+
placeholderData: void 0
|
|
16
|
+
});
|
|
17
|
+
$[3] = itemQuery;
|
|
18
|
+
$[4] = t2;
|
|
19
|
+
} else t2 = $[4];
|
|
20
|
+
t1 = keys.map(t2);
|
|
21
|
+
$[0] = itemQuery;
|
|
22
|
+
$[1] = keys;
|
|
23
|
+
$[2] = t1;
|
|
24
|
+
} else t1 = $[2];
|
|
25
|
+
let t2;
|
|
26
|
+
if ($[5] !== t1) {
|
|
27
|
+
t2 = {
|
|
28
|
+
queries: t1,
|
|
29
|
+
combine: _temp2
|
|
30
|
+
};
|
|
31
|
+
$[5] = t1;
|
|
32
|
+
$[6] = t2;
|
|
33
|
+
} else t2 = $[6];
|
|
34
|
+
const lookups = useQueries(t2);
|
|
35
|
+
let t3;
|
|
36
|
+
if ($[7] !== children || $[8] !== lookups) {
|
|
37
|
+
t3 = children(lookups);
|
|
38
|
+
$[7] = children;
|
|
39
|
+
$[8] = lookups;
|
|
40
|
+
$[9] = t3;
|
|
41
|
+
} else t3 = $[9];
|
|
42
|
+
return t3;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Lets every `ComboboxField` under it run its `itemQuery` through TanStack
|
|
46
|
+
* Query. Mount it once, inside the app's `QueryClientProvider`.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* <QueryClientProvider client={queryClient}>
|
|
50
|
+
* <ComboboxItemQueries>
|
|
51
|
+
* <App />
|
|
52
|
+
* </ComboboxItemQueries>
|
|
53
|
+
* </QueryClientProvider>
|
|
54
|
+
*/
|
|
55
|
+
var ComboboxItemQueries = (t0) => {
|
|
56
|
+
const $ = c(2);
|
|
57
|
+
const { children } = t0;
|
|
58
|
+
let t1;
|
|
59
|
+
if ($[0] !== children) {
|
|
60
|
+
t1 = /* @__PURE__ */ jsx(ItemLookupsContext, {
|
|
61
|
+
value: QueryItemLookups,
|
|
62
|
+
children
|
|
63
|
+
});
|
|
64
|
+
$[0] = children;
|
|
65
|
+
$[1] = t1;
|
|
66
|
+
} else t1 = $[1];
|
|
67
|
+
return t1;
|
|
68
|
+
};
|
|
69
|
+
function _temp(result) {
|
|
70
|
+
return {
|
|
71
|
+
data: result.data,
|
|
72
|
+
error: result.error
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function _temp2(results) {
|
|
76
|
+
return results.map(_temp);
|
|
77
|
+
}
|
|
78
|
+
export { ComboboxItemQueries };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** The copy a combobox shows only when it holds several values. */
|
|
2
|
+
export type ComboboxMultipleLabels = Readonly<{
|
|
3
|
+
/** Names the group of tags, such as "Selected statuses". */
|
|
4
|
+
selectedLabel: string;
|
|
5
|
+
/** The remove control's own name, which the tag's name completes, such as "Remove". */
|
|
6
|
+
removeLabel: string;
|
|
7
|
+
/** The remove control's tooltip for a value, such as "Remove Jan Jansen". */
|
|
8
|
+
removeHint: (itemLabel: string) => string;
|
|
9
|
+
}>;
|
|
10
|
+
/**
|
|
11
|
+
* One value or several. The shape of `value`, `defaultValue` and
|
|
12
|
+
* `onValueChange` follows `multiple`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const selection: ComboboxMode<User> = { value: user, onValueChange: setUser };
|
|
16
|
+
*/
|
|
17
|
+
export type ComboboxMode<TItem> = Readonly<{
|
|
18
|
+
multiple?: false;
|
|
19
|
+
value?: TItem | null;
|
|
20
|
+
defaultValue?: TItem | null;
|
|
21
|
+
onValueChange?: (value: TItem | null) => void;
|
|
22
|
+
}> | (Readonly<{
|
|
23
|
+
multiple: true;
|
|
24
|
+
value?: readonly TItem[];
|
|
25
|
+
defaultValue?: readonly TItem[];
|
|
26
|
+
onValueChange?: (value: readonly TItem[]) => void;
|
|
27
|
+
}> & ComboboxMultipleLabels);
|
|
28
|
+
/**
|
|
29
|
+
* A field's controlled value as a list, or `undefined` while it is
|
|
30
|
+
* uncontrolled.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* selectedValues({ value: user }); // [user]
|
|
34
|
+
*/
|
|
35
|
+
export declare const selectedValues: <TItem>(mode: ComboboxMode<TItem>) => readonly TItem[] | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* A field's starting value as a list, for an uncontrolled field.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* defaultValues({ defaultValue: null }); // []
|
|
41
|
+
*/
|
|
42
|
+
export declare const defaultValues: <TItem>(mode: ComboboxMode<TItem>) => readonly TItem[];
|
|
43
|
+
/**
|
|
44
|
+
* Hands a new selection to `onValueChange` in its mode's shape: the list under
|
|
45
|
+
* `multiple`, else its first value or `null`.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* emitValues({ onValueChange: setUser }, [user]); // setUser(user)
|
|
49
|
+
*/
|
|
50
|
+
export declare const emitValues: <TItem>(mode: ComboboxMode<TItem>, next: readonly TItem[]) => void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// src/components/combobox-field/selection.ts
|
|
2
|
+
/**
|
|
3
|
+
* A field's controlled value as a list, or `undefined` while it is
|
|
4
|
+
* uncontrolled.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* selectedValues({ value: user }); // [user]
|
|
8
|
+
*/
|
|
9
|
+
var selectedValues = (mode) => {
|
|
10
|
+
if (mode.multiple === true) return mode.value;
|
|
11
|
+
if (mode.value === void 0) return;
|
|
12
|
+
return mode.value === null ? [] : [mode.value];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A field's starting value as a list, for an uncontrolled field.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* defaultValues({ defaultValue: null }); // []
|
|
19
|
+
*/
|
|
20
|
+
var defaultValues = (mode) => {
|
|
21
|
+
if (mode.multiple === true) return mode.defaultValue ?? [];
|
|
22
|
+
return mode.defaultValue === void 0 || mode.defaultValue === null ? [] : [mode.defaultValue];
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Hands a new selection to `onValueChange` in its mode's shape: the list under
|
|
26
|
+
* `multiple`, else its first value or `null`.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* emitValues({ onValueChange: setUser }, [user]); // setUser(user)
|
|
30
|
+
*/
|
|
31
|
+
var emitValues = (mode, next) => {
|
|
32
|
+
if (mode.multiple === true) {
|
|
33
|
+
mode.onValueChange?.(next);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
mode.onValueChange?.(next.at(0) ?? null);
|
|
37
|
+
};
|
|
38
|
+
export { defaultValues, emitValues, selectedValues };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { QueryKey } from "@tanstack/react-query";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
import { type ConnectedFieldProps } from "../../lib/forms/use-connected-field.ts";
|
|
4
|
+
import { type ComboboxDerivations, type ComboboxFieldChrome, type ComboboxItemLookup } from "./combobox-field.tsx";
|
|
5
|
+
import type { ComboboxItems } from "./combobox-items.ts";
|
|
6
|
+
import type { ComboboxMultipleLabels } from "./selection.ts";
|
|
7
|
+
type Connected<TItem, TData, TKey extends QueryKey> = Omit<ComboboxFieldChrome, keyof ConnectedFieldProps> & ComboboxItems<TItem> & ComboboxDerivations<TItem> & ComboboxItemLookup<TItem, TData, TKey>;
|
|
8
|
+
export type TSFComboboxFieldProps<TItem, TData = TItem, TKey extends QueryKey = QueryKey> = Connected<TItem, TData, TKey> & (Readonly<{
|
|
9
|
+
multiple?: false;
|
|
10
|
+
}> | (Readonly<{
|
|
11
|
+
multiple: true;
|
|
12
|
+
}> & ComboboxMultipleLabels));
|
|
13
|
+
/**
|
|
14
|
+
* `ComboboxField` bound to the TanStack Form field it renders in: the form
|
|
15
|
+
* value is the item or `null`, or under `multiple` the list of items. Reach it
|
|
16
|
+
* as `field.ComboboxField` inside `form.AppField`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <form.AppField name="reviewer">
|
|
20
|
+
* {field => (
|
|
21
|
+
* <field.ComboboxField
|
|
22
|
+
* label="Reviewer"
|
|
23
|
+
* optionalLabel="optional"
|
|
24
|
+
* items={reviewers}
|
|
25
|
+
* itemKey={user => user.id}
|
|
26
|
+
* {...comboboxCopy}>
|
|
27
|
+
* {user => user.name}
|
|
28
|
+
* </field.ComboboxField>
|
|
29
|
+
* )}
|
|
30
|
+
* </form.AppField>
|
|
31
|
+
*/
|
|
32
|
+
export declare const TSFComboboxField: <TItem, TData = TItem, TKey extends QueryKey = QueryKey>(props: TSFComboboxFieldProps<TItem, TData, TKey>) => ReactNode;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { useConnectedField } from "../../lib/forms/use-connected-field.js";
|
|
2
|
+
import { ComboboxField } from "./combobox-field.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
// src/components/combobox-field/tsf-combobox-field.tsx
|
|
6
|
+
var SingleField = (t0) => {
|
|
7
|
+
const $ = c(7);
|
|
8
|
+
const { props } = t0;
|
|
9
|
+
const { field, props: connected } = useConnectedField();
|
|
10
|
+
let t1;
|
|
11
|
+
if ($[0] !== field) {
|
|
12
|
+
t1 = (next) => field.handleChange(next);
|
|
13
|
+
$[0] = field;
|
|
14
|
+
$[1] = t1;
|
|
15
|
+
} else t1 = $[1];
|
|
16
|
+
let t2;
|
|
17
|
+
if ($[2] !== connected || $[3] !== field.state.value || $[4] !== props || $[5] !== t1) {
|
|
18
|
+
t2 = /* @__PURE__ */ jsx(ComboboxField, {
|
|
19
|
+
...props,
|
|
20
|
+
...connected,
|
|
21
|
+
value: field.state.value,
|
|
22
|
+
onValueChange: t1
|
|
23
|
+
});
|
|
24
|
+
$[2] = connected;
|
|
25
|
+
$[3] = field.state.value;
|
|
26
|
+
$[4] = props;
|
|
27
|
+
$[5] = t1;
|
|
28
|
+
$[6] = t2;
|
|
29
|
+
} else t2 = $[6];
|
|
30
|
+
return t2;
|
|
31
|
+
};
|
|
32
|
+
var MultipleField = (t0) => {
|
|
33
|
+
const $ = c(7);
|
|
34
|
+
const { props } = t0;
|
|
35
|
+
const { field, props: connected } = useConnectedField();
|
|
36
|
+
let t1;
|
|
37
|
+
if ($[0] !== field) {
|
|
38
|
+
t1 = (next) => field.handleChange(next);
|
|
39
|
+
$[0] = field;
|
|
40
|
+
$[1] = t1;
|
|
41
|
+
} else t1 = $[1];
|
|
42
|
+
let t2;
|
|
43
|
+
if ($[2] !== connected || $[3] !== field.state.value || $[4] !== props || $[5] !== t1) {
|
|
44
|
+
t2 = /* @__PURE__ */ jsx(ComboboxField, {
|
|
45
|
+
...props,
|
|
46
|
+
...connected,
|
|
47
|
+
multiple: true,
|
|
48
|
+
value: field.state.value,
|
|
49
|
+
onValueChange: t1
|
|
50
|
+
});
|
|
51
|
+
$[2] = connected;
|
|
52
|
+
$[3] = field.state.value;
|
|
53
|
+
$[4] = props;
|
|
54
|
+
$[5] = t1;
|
|
55
|
+
$[6] = t2;
|
|
56
|
+
} else t2 = $[6];
|
|
57
|
+
return t2;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* `ComboboxField` bound to the TanStack Form field it renders in: the form
|
|
61
|
+
* value is the item or `null`, or under `multiple` the list of items. Reach it
|
|
62
|
+
* as `field.ComboboxField` inside `form.AppField`.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* <form.AppField name="reviewer">
|
|
66
|
+
* {field => (
|
|
67
|
+
* <field.ComboboxField
|
|
68
|
+
* label="Reviewer"
|
|
69
|
+
* optionalLabel="optional"
|
|
70
|
+
* items={reviewers}
|
|
71
|
+
* itemKey={user => user.id}
|
|
72
|
+
* {...comboboxCopy}>
|
|
73
|
+
* {user => user.name}
|
|
74
|
+
* </field.ComboboxField>
|
|
75
|
+
* )}
|
|
76
|
+
* </form.AppField>
|
|
77
|
+
*/
|
|
78
|
+
var TSFComboboxField = (props) => {
|
|
79
|
+
const $ = c(2);
|
|
80
|
+
let t0;
|
|
81
|
+
if ($[0] !== props) {
|
|
82
|
+
t0 = props.multiple === true ? /* @__PURE__ */ jsx(MultipleField, { props }) : /* @__PURE__ */ jsx(SingleField, { props });
|
|
83
|
+
$[0] = props;
|
|
84
|
+
$[1] = t0;
|
|
85
|
+
} else t0 = $[1];
|
|
86
|
+
return t0;
|
|
87
|
+
};
|
|
88
|
+
export { TSFComboboxField };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
@layer kit.reset, kit.base, kit.components;
|
|
2
|
+
@layer kit.components {
|
|
3
|
+
._muted_1afap_3 {
|
|
4
|
+
display: inline-flex;
|
|
5
|
+
align-items: center;
|
|
6
|
+
gap: var(--sys-unit-2);
|
|
7
|
+
min-inline-size: 0;
|
|
8
|
+
color: var(--combobox-unavailable-fg, var(--sys-color-text-muted));
|
|
9
|
+
}
|
|
10
|
+
._item_1afap_10 {
|
|
11
|
+
min-inline-size: 0;
|
|
12
|
+
}
|
|
13
|
+
._name_1afap_13 {
|
|
14
|
+
position: absolute;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
clip-path: inset(50%);
|
|
17
|
+
inline-size: 1px;
|
|
18
|
+
block-size: 1px;
|
|
19
|
+
white-space: nowrap;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ValueState, ValueStateLabels } from "./value-state.ts";
|
|
3
|
+
/**
|
|
4
|
+
* What a value is read as: its label, marked when it is no longer available.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* valueStateName(state, user => user.name, labels); // "Jan Jansen"
|
|
8
|
+
*/
|
|
9
|
+
export declare const valueStateName: <TItem>(state: ValueState<TItem>, itemLabel: (item: TItem) => string, labels: ValueStateLabels | undefined) => string;
|
|
10
|
+
type ValueStateViewProps<TItem> = Readonly<{
|
|
11
|
+
state: ValueState<TItem>;
|
|
12
|
+
renderItem: (item: TItem) => ReactNode;
|
|
13
|
+
itemLabel: (item: TItem) => string;
|
|
14
|
+
labels: ValueStateLabels | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
/**
|
|
17
|
+
* One value as it shows in a tag or a trigger: its item, or the item muted and
|
|
18
|
+
* marked unavailable, read as `valueStateName`.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* <ValueStateView state={state} renderItem={renderItem} itemLabel={itemLabel} labels={labels} />
|
|
22
|
+
*/
|
|
23
|
+
export declare const ValueStateView: <TItem>({ state, renderItem, itemLabel, labels, }: ValueStateViewProps<TItem>) => ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* The polite status that sums up a field's values that are no longer
|
|
26
|
+
* available. Mount it once per field, outside any popup.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* <ValueStatesStatus states={states} labels={labels} />
|
|
30
|
+
*/
|
|
31
|
+
export declare const ValueStatesStatus: <TItem>({ states, labels, }: Readonly<{
|
|
32
|
+
states: readonly ValueState<TItem>[];
|
|
33
|
+
labels: ValueStateLabels;
|
|
34
|
+
}>) => ReactNode;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import SvgBlock from "../../vendor/@material-design-icons/svg/outlined/block.js";
|
|
2
|
+
import { Icon } from "../icon/icon.js";
|
|
3
|
+
import value_state_view_module_default from "./value-state-view.module.js";
|
|
4
|
+
import { c } from "react/compiler-runtime";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
// src/components/combobox-field/value-state-view.tsx
|
|
7
|
+
/**
|
|
8
|
+
* What a value is read as: its label, marked when it is no longer available.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* valueStateName(state, user => user.name, labels); // "Jan Jansen"
|
|
12
|
+
*/
|
|
13
|
+
var valueStateName = (state, itemLabel, labels) => state.status === "unavailable" && labels !== void 0 ? labels.valueUnavailableName(itemLabel(state.item)) : itemLabel(state.item);
|
|
14
|
+
/**
|
|
15
|
+
* One value as it shows in a tag or a trigger: its item, or the item muted and
|
|
16
|
+
* marked unavailable, read as `valueStateName`.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <ValueStateView state={state} renderItem={renderItem} itemLabel={itemLabel} labels={labels} />
|
|
20
|
+
*/
|
|
21
|
+
var ValueStateView = (t0) => {
|
|
22
|
+
const $ = c(5);
|
|
23
|
+
const { state, renderItem, itemLabel, labels } = t0;
|
|
24
|
+
let t1;
|
|
25
|
+
if ($[0] !== itemLabel || $[1] !== labels || $[2] !== renderItem || $[3] !== state) {
|
|
26
|
+
t1 = state.status === "unavailable" && labels !== void 0 ? /* @__PURE__ */ jsxs("span", {
|
|
27
|
+
className: value_state_view_module_default.muted,
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx("span", {
|
|
30
|
+
"aria-hidden": "true",
|
|
31
|
+
className: value_state_view_module_default.item,
|
|
32
|
+
children: renderItem(state.item)
|
|
33
|
+
}),
|
|
34
|
+
/* @__PURE__ */ jsx(Icon, {
|
|
35
|
+
svg: SvgBlock,
|
|
36
|
+
label: ""
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ jsx("span", {
|
|
39
|
+
"aria-hidden": "true",
|
|
40
|
+
children: labels.valueUnavailableLabel
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ jsx("span", {
|
|
43
|
+
className: value_state_view_module_default.name,
|
|
44
|
+
children: valueStateName(state, itemLabel, labels)
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
}) : renderItem(state.item);
|
|
48
|
+
$[0] = itemLabel;
|
|
49
|
+
$[1] = labels;
|
|
50
|
+
$[2] = renderItem;
|
|
51
|
+
$[3] = state;
|
|
52
|
+
$[4] = t1;
|
|
53
|
+
} else t1 = $[4];
|
|
54
|
+
return t1;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The polite status that sums up a field's values that are no longer
|
|
58
|
+
* available. Mount it once per field, outside any popup.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* <ValueStatesStatus states={states} labels={labels} />
|
|
62
|
+
*/
|
|
63
|
+
var ValueStatesStatus = (t0) => {
|
|
64
|
+
const $ = c(11);
|
|
65
|
+
const { states, labels } = t0;
|
|
66
|
+
let t1;
|
|
67
|
+
let t2;
|
|
68
|
+
let t3;
|
|
69
|
+
let t4;
|
|
70
|
+
if ($[0] !== labels || $[1] !== states) {
|
|
71
|
+
const unavailable = states.filter(_temp).length;
|
|
72
|
+
t1 = "status";
|
|
73
|
+
t2 = "true";
|
|
74
|
+
t3 = value_state_view_module_default.name;
|
|
75
|
+
t4 = unavailable === 0 ? null : labels.valuesUnavailableLabel(unavailable);
|
|
76
|
+
$[0] = labels;
|
|
77
|
+
$[1] = states;
|
|
78
|
+
$[2] = t1;
|
|
79
|
+
$[3] = t2;
|
|
80
|
+
$[4] = t3;
|
|
81
|
+
$[5] = t4;
|
|
82
|
+
} else {
|
|
83
|
+
t1 = $[2];
|
|
84
|
+
t2 = $[3];
|
|
85
|
+
t3 = $[4];
|
|
86
|
+
t4 = $[5];
|
|
87
|
+
}
|
|
88
|
+
let t5;
|
|
89
|
+
if ($[6] !== t1 || $[7] !== t2 || $[8] !== t3 || $[9] !== t4) {
|
|
90
|
+
t5 = /* @__PURE__ */ jsx("div", {
|
|
91
|
+
role: t1,
|
|
92
|
+
"aria-atomic": t2,
|
|
93
|
+
className: t3,
|
|
94
|
+
children: t4
|
|
95
|
+
});
|
|
96
|
+
$[6] = t1;
|
|
97
|
+
$[7] = t2;
|
|
98
|
+
$[8] = t3;
|
|
99
|
+
$[9] = t4;
|
|
100
|
+
$[10] = t5;
|
|
101
|
+
} else t5 = $[10];
|
|
102
|
+
return t5;
|
|
103
|
+
};
|
|
104
|
+
function _temp(state) {
|
|
105
|
+
return state.status === "unavailable";
|
|
106
|
+
}
|
|
107
|
+
export { ValueStateView, ValueStatesStatus, valueStateName };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import './value-state-view.css';// src/components/combobox-field/value-state-view.module.scss
|
|
2
|
+
var muted = "_muted_1afap_3";
|
|
3
|
+
var item = "_item_1afap_10";
|
|
4
|
+
var name = "_name_1afap_13";
|
|
5
|
+
var value_state_view_module_default = {
|
|
6
|
+
muted,
|
|
7
|
+
item,
|
|
8
|
+
name
|
|
9
|
+
};
|
|
10
|
+
export { value_state_view_module_default as default, item, muted, name };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where a value's item lookup stands. A `useQuery` result fits.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* const lookup: ItemLookup<User> = { data: undefined, error: null };
|
|
6
|
+
*/
|
|
7
|
+
export type ItemLookup<TItem> = Readonly<{
|
|
8
|
+
data: TItem | undefined;
|
|
9
|
+
error: unknown;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* How a value shows: its item, or its item marked as no longer available.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const state: ValueState<User> = { status: "ready", key: "u1", item: user };
|
|
16
|
+
*/
|
|
17
|
+
export type ValueState<TItem> = Readonly<{
|
|
18
|
+
status: "ready" | "unavailable";
|
|
19
|
+
key: string;
|
|
20
|
+
item: TItem;
|
|
21
|
+
}>;
|
|
22
|
+
/** The copy a combobox shows for values its `itemQuery` reports gone. */
|
|
23
|
+
export type ValueStateLabels = Readonly<{
|
|
24
|
+
/** The word a value no longer available shows beside it, such as "unavailable". */
|
|
25
|
+
valueUnavailableLabel: string;
|
|
26
|
+
/** How a value no longer available is read, such as "Jan Jansen, unavailable". */
|
|
27
|
+
valueUnavailableName: (itemLabel: string) => string;
|
|
28
|
+
/** The status sentence for such values, such as "2 selected values are no longer available.". */
|
|
29
|
+
valuesUnavailableLabel: (count: number) => string;
|
|
30
|
+
}>;
|
|
31
|
+
type ValueSources<TItem> = Readonly<{
|
|
32
|
+
key: string;
|
|
33
|
+
item: TItem;
|
|
34
|
+
picked: boolean;
|
|
35
|
+
listed: TItem | undefined;
|
|
36
|
+
lookup: ItemLookup<TItem> | undefined;
|
|
37
|
+
retryable: (error: unknown) => boolean;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* The state a value shows in: a value picked here as it is, else the list's
|
|
41
|
+
* copy, else what its lookup says. A lookup that failed for good marks the
|
|
42
|
+
* value unavailable; one that may still succeed keeps the value as known.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* valueStateOf({ key: "u1", item: user, picked: false, listed: undefined, lookup: undefined, retryable: () => true });
|
|
46
|
+
* // { status: "ready", key: "u1", item: user }
|
|
47
|
+
*/
|
|
48
|
+
export declare const valueStateOf: <TItem>({ key, item, picked, listed, lookup, retryable, }: ValueSources<TItem>) => ValueState<TItem>;
|
|
49
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// src/components/combobox-field/value-state.ts
|
|
2
|
+
/**
|
|
3
|
+
* The state a value shows in: a value picked here as it is, else the list's
|
|
4
|
+
* copy, else what its lookup says. A lookup that failed for good marks the
|
|
5
|
+
* value unavailable; one that may still succeed keeps the value as known.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* valueStateOf({ key: "u1", item: user, picked: false, listed: undefined, lookup: undefined, retryable: () => true });
|
|
9
|
+
* // { status: "ready", key: "u1", item: user }
|
|
10
|
+
*/
|
|
11
|
+
var valueStateOf = ({ key, item, picked, listed, lookup, retryable }) => {
|
|
12
|
+
if (picked) return {
|
|
13
|
+
status: "ready",
|
|
14
|
+
key,
|
|
15
|
+
item
|
|
16
|
+
};
|
|
17
|
+
if (listed !== void 0) return {
|
|
18
|
+
status: "ready",
|
|
19
|
+
key,
|
|
20
|
+
item: listed
|
|
21
|
+
};
|
|
22
|
+
if (lookup === void 0) return {
|
|
23
|
+
status: "ready",
|
|
24
|
+
key,
|
|
25
|
+
item
|
|
26
|
+
};
|
|
27
|
+
const known = lookup.data ?? item;
|
|
28
|
+
return lookup.error !== null && lookup.error !== void 0 && !retryable(lookup.error) ? {
|
|
29
|
+
status: "unavailable",
|
|
30
|
+
key,
|
|
31
|
+
item: known
|
|
32
|
+
} : {
|
|
33
|
+
status: "ready",
|
|
34
|
+
key,
|
|
35
|
+
item: known
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export { valueStateOf };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export type ComposerAttachButtonProps = Readonly<{
|
|
3
|
+
/** The button's accessible name and tooltip, such as "Add attachment". */
|
|
4
|
+
label: string;
|
|
5
|
+
/** The MIME types and extensions the file picker offers. */
|
|
6
|
+
accept?: readonly string[];
|
|
7
|
+
}>;
|
|
8
|
+
/** An icon button that opens the file picker and stages what is picked. */
|
|
9
|
+
export declare const ComposerAttachButton: ({ label, accept, }: ComposerAttachButtonProps) => ReactNode;
|
|
10
|
+
export type ComposerAttachmentsProps = Readonly<{
|
|
11
|
+
/** The tile list's accessible name, such as "Attachments". */
|
|
12
|
+
label: string;
|
|
13
|
+
/** Each tile's remove button's accessible name, such as "Remove". */
|
|
14
|
+
removeLabel: string;
|
|
15
|
+
/** A tile's tooltip, from the file's name and formatted size. */
|
|
16
|
+
fileHint: (name: string, size: string) => string;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* The staged files as removable tiles. Removing the last one returns focus to
|
|
20
|
+
* the editor. Renders nothing while no file is staged.
|
|
21
|
+
*/
|
|
22
|
+
export declare const ComposerAttachments: ({ label, removeLabel, fileHint, }: ComposerAttachmentsProps) => ReactNode;
|
|
23
|
+
export type ComposerAttachmentsErrorProps = Readonly<{
|
|
24
|
+
/** The alert, from the formatted `maxFileSize`, such as "Files over 5 MB must be removed before sending." */
|
|
25
|
+
tooLargeError: (maxSize: string) => string;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* An alert while any staged file is over `maxFileSize`. Renders nothing while
|
|
29
|
+
* every file fits.
|
|
30
|
+
*/
|
|
31
|
+
export declare const ComposerAttachmentsError: ({ tooLargeError, }: ComposerAttachmentsErrorProps) => ReactNode;
|