@igne-agency/react-web-ui 0.0.0-stage → 0.3.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/LICENSE +21 -0
- package/README.md +239 -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-group-context.d.ts +21 -0
- package/dist/components/field/field-group-context.js +38 -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 +69 -0
- package/dist/components/field/field.d.ts +186 -0
- package/dist/components/field/field.js +477 -0
- package/dist/components/field/field.module.js +22 -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/fieldset/field-group.d.ts +31 -0
- package/dist/components/fieldset/field-group.js +102 -0
- package/dist/components/fieldset/fieldset-root.d.ts +60 -0
- package/dist/components/fieldset/fieldset-root.js +285 -0
- package/dist/components/fieldset/fieldset.css +21 -0
- package/dist/components/fieldset/fieldset.d.ts +37 -0
- package/dist/components/fieldset/fieldset.js +127 -0
- package/dist/components/fieldset/fieldset.module.js +8 -0
- package/dist/components/fieldset/index.d.ts +4 -0
- package/dist/components/fieldset/index.js +4 -0
- package/dist/components/fieldset/tsf-field-group.d.ts +21 -0
- package/dist/components/fieldset/tsf-field-group.js +58 -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 +171 -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 +70 -0
- package/dist/index.js +136 -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 +33 -0
- package/dist/lib/forms/create-app-form.js +45 -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 +4 -0
- package/dist/lib/forms/index.js +5 -0
- package/dist/lib/forms/use-connected-field.d.ts +30 -0
- package/dist/lib/forms/use-connected-field.js +74 -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 +456 -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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How far the options of a select or combobox have loaded. A failure that
|
|
3
|
+
* trying again can clear carries a `retry`.
|
|
4
|
+
*/
|
|
5
|
+
export type OptionsLoad = Readonly<{
|
|
6
|
+
status: "pending" | "success";
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
status: "error";
|
|
9
|
+
retry?: () => void;
|
|
10
|
+
}>;
|
|
11
|
+
/** The copy a select's or combobox's popup shows about its options. */
|
|
12
|
+
export type OptionsLoadLabels = Readonly<{
|
|
13
|
+
/** Said while the options load, such as "Loading options…". */
|
|
14
|
+
loadingLabel: string;
|
|
15
|
+
/** Said when the options failed to load and a retry can help. */
|
|
16
|
+
loadFailedLabel: string;
|
|
17
|
+
/** Said when the options failed to load and trying again won't help. */
|
|
18
|
+
loadBrokenLabel: string;
|
|
19
|
+
/** The retry button's text, such as "Try again". */
|
|
20
|
+
retryLabel: string;
|
|
21
|
+
/** Said when there are no options at all. */
|
|
22
|
+
noOptionsLabel: string;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* What a popup says about a load that is pending or failed; nothing once the
|
|
26
|
+
* options are there.
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* optionsLoadMessage({ status: "pending" }, labels); // labels.loadingLabel
|
|
30
|
+
*/
|
|
31
|
+
export declare const optionsLoadMessage: (load: OptionsLoad, labels: OptionsLoadLabels) => string | undefined;
|
|
32
|
+
/**
|
|
33
|
+
* The load of options that are all there from the start.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* const load = source ?? itemsLoad ?? OPTIONS_LOADED;
|
|
37
|
+
*/
|
|
38
|
+
export declare const OPTIONS_LOADED: OptionsLoad;
|
|
39
|
+
/** The part of a query `optionsLoad` reads, such as a TanStack Query result. */
|
|
40
|
+
export type OptionsQuery = Readonly<{
|
|
41
|
+
data: unknown;
|
|
42
|
+
error: unknown;
|
|
43
|
+
isFetching: boolean;
|
|
44
|
+
refetch: () => Promise<unknown>;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* The options load of a query: loaded once it holds data, pending while it
|
|
48
|
+
* fetches without any, failed otherwise. A failure offers a retry when
|
|
49
|
+
* `retryable` says trying again can help, which by default is always.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* <SelectField options={options} load={optionsLoad(query, isRetryable)} … />
|
|
53
|
+
*/
|
|
54
|
+
export declare const optionsLoad: (query: OptionsQuery, retryable?: (error: unknown) => boolean) => OptionsLoad;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// src/components/field/options-load.ts
|
|
2
|
+
/**
|
|
3
|
+
* What a popup says about a load that is pending or failed; nothing once the
|
|
4
|
+
* options are there.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* optionsLoadMessage({ status: "pending" }, labels); // labels.loadingLabel
|
|
8
|
+
*/
|
|
9
|
+
var optionsLoadMessage = (load, labels) => {
|
|
10
|
+
if (load.status === "pending") return labels.loadingLabel;
|
|
11
|
+
if (load.status === "error") return load.retry === void 0 ? labels.loadBrokenLabel : labels.loadFailedLabel;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The load of options that are all there from the start.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* const load = source ?? itemsLoad ?? OPTIONS_LOADED;
|
|
18
|
+
*/
|
|
19
|
+
var OPTIONS_LOADED = { status: "success" };
|
|
20
|
+
/**
|
|
21
|
+
* The options load of a query: loaded once it holds data, pending while it
|
|
22
|
+
* fetches without any, failed otherwise. A failure offers a retry when
|
|
23
|
+
* `retryable` says trying again can help, which by default is always.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* <SelectField options={options} load={optionsLoad(query, isRetryable)} … />
|
|
27
|
+
*/
|
|
28
|
+
var optionsLoad = (query, retryable = () => true) => {
|
|
29
|
+
if (query.data !== void 0) return { status: "success" };
|
|
30
|
+
if (query.isFetching || query.error === null) return { status: "pending" };
|
|
31
|
+
return retryable(query.error) ? {
|
|
32
|
+
status: "error",
|
|
33
|
+
retry: () => {
|
|
34
|
+
query.refetch();
|
|
35
|
+
}
|
|
36
|
+
} : { status: "error" };
|
|
37
|
+
};
|
|
38
|
+
export { OPTIONS_LOADED, optionsLoad, optionsLoadMessage };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { MouseEvent } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Focuses a field group's control when the press lands on the group's own box —
|
|
4
|
+
* its padding, or an inlay that takes no pointer events. Presses that reach the
|
|
5
|
+
* control, an `inlay-action` or any other interactive part are left alone.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <div className={style.group} onMouseDown={focusControlOnRim} />
|
|
9
|
+
*/
|
|
10
|
+
export declare const focusControlOnRim: (event: MouseEvent<HTMLElement>) => void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// src/components/field/rim-focus.ts
|
|
2
|
+
var CONTROL_SELECTOR = [
|
|
3
|
+
"input:not([type=\"hidden\"])",
|
|
4
|
+
"textarea",
|
|
5
|
+
"[role=\"spinbutton\"]",
|
|
6
|
+
"[contenteditable=\"true\"]"
|
|
7
|
+
].join(",");
|
|
8
|
+
/**
|
|
9
|
+
* Focuses a field group's control when the press lands on the group's own box —
|
|
10
|
+
* its padding, or an inlay that takes no pointer events. Presses that reach the
|
|
11
|
+
* control, an `inlay-action` or any other interactive part are left alone.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <div className={style.group} onMouseDown={focusControlOnRim} />
|
|
15
|
+
*/
|
|
16
|
+
var focusControlOnRim = (event) => {
|
|
17
|
+
if (event.target !== event.currentTarget) return;
|
|
18
|
+
const control = event.currentTarget.querySelector(CONTROL_SELECTOR);
|
|
19
|
+
if (control === null || control.matches(":disabled")) return;
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
control.focus();
|
|
22
|
+
};
|
|
23
|
+
export { focusControlOnRim };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type FocusEvent } from "react";
|
|
2
|
+
import type { FieldState } from "./field-state.ts";
|
|
3
|
+
export type FieldFocusHandlers<TEvent extends FocusEvent<HTMLElement>> = Readonly<{
|
|
4
|
+
onFocus?: (event: TEvent) => void;
|
|
5
|
+
onBlur?: (event: TEvent) => void;
|
|
6
|
+
}>;
|
|
7
|
+
export type FieldFocus<TEvent extends FocusEvent<HTMLElement> = FocusEvent<HTMLElement>> = Readonly<{
|
|
8
|
+
/** Focus is on this element or inside it, however it got there. */
|
|
9
|
+
focused: boolean;
|
|
10
|
+
/** That focus is the keyboard's, so it has earned a ring. */
|
|
11
|
+
focusVisible: boolean;
|
|
12
|
+
/** Spread onto the element whose focus is being tracked, after its own props. */
|
|
13
|
+
props: Readonly<{
|
|
14
|
+
onFocus: (event: TEvent) => void;
|
|
15
|
+
onBlur: (event: TEvent) => void;
|
|
16
|
+
}>;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Live focus laid over a projected field state. A caller can add focus that
|
|
20
|
+
* lands elsewhere in the field, such as a popup this element does not contain;
|
|
21
|
+
* the ring stays the element's own.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* fieldStateAttributes(withFieldFocus(state, useFieldFocus(props)));
|
|
25
|
+
*/
|
|
26
|
+
export declare const withFieldFocus: (state: FieldState, focus: Pick<FieldFocus, "focused" | "focusVisible">) => FieldState;
|
|
27
|
+
/**
|
|
28
|
+
* Tracks focus for a control that has to publish it as `data-focused` and
|
|
29
|
+
* `data-focus-visible` rather than leave it to a selector. React's focus events
|
|
30
|
+
* bubble, so this reads focus inside a group as well as on a bare control. The
|
|
31
|
+
* handlers passed in still run, so `props` is spread last.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* const focus = useFieldFocus(props);
|
|
35
|
+
* <div {...props} {...focus.props} />
|
|
36
|
+
*/
|
|
37
|
+
export declare const useFieldFocus: <TEvent extends FocusEvent<HTMLElement> = FocusEvent<HTMLElement>>(handlers?: FieldFocusHandlers<TEvent>) => FieldFocus<TEvent>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { c } from "react/compiler-runtime";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
// src/components/field/use-field-focus.ts
|
|
4
|
+
/**
|
|
5
|
+
* Live focus laid over a projected field state. A caller can add focus that
|
|
6
|
+
* lands elsewhere in the field, such as a popup this element does not contain;
|
|
7
|
+
* the ring stays the element's own.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* fieldStateAttributes(withFieldFocus(state, useFieldFocus(props)));
|
|
11
|
+
*/
|
|
12
|
+
var withFieldFocus = (state, focus) => ({
|
|
13
|
+
...state,
|
|
14
|
+
focused: state.focused === true || focus.focused,
|
|
15
|
+
focusVisible: focus.focusVisible
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Tracks focus for a control that has to publish it as `data-focused` and
|
|
19
|
+
* `data-focus-visible` rather than leave it to a selector. React's focus events
|
|
20
|
+
* bubble, so this reads focus inside a group as well as on a bare control. The
|
|
21
|
+
* handlers passed in still run, so `props` is spread last.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* const focus = useFieldFocus(props);
|
|
25
|
+
* <div {...props} {...focus.props} />
|
|
26
|
+
*/
|
|
27
|
+
var useFieldFocus = (handlers) => {
|
|
28
|
+
const $ = c(6);
|
|
29
|
+
let t0;
|
|
30
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
31
|
+
t0 = {
|
|
32
|
+
focused: false,
|
|
33
|
+
focusVisible: false
|
|
34
|
+
};
|
|
35
|
+
$[0] = t0;
|
|
36
|
+
} else t0 = $[0];
|
|
37
|
+
const [focus, setFocus] = useState(t0);
|
|
38
|
+
let t1;
|
|
39
|
+
if ($[1] !== handlers) {
|
|
40
|
+
t1 = {
|
|
41
|
+
onFocus: (event) => {
|
|
42
|
+
setFocus({
|
|
43
|
+
focused: true,
|
|
44
|
+
focusVisible: event.target.matches(":focus-visible")
|
|
45
|
+
});
|
|
46
|
+
handlers?.onFocus?.(event);
|
|
47
|
+
},
|
|
48
|
+
onBlur: (event_0) => {
|
|
49
|
+
if (!(event_0.relatedTarget instanceof Node && event_0.currentTarget.contains(event_0.relatedTarget))) setFocus({
|
|
50
|
+
focused: false,
|
|
51
|
+
focusVisible: false
|
|
52
|
+
});
|
|
53
|
+
handlers?.onBlur?.(event_0);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
$[1] = handlers;
|
|
57
|
+
$[2] = t1;
|
|
58
|
+
} else t1 = $[2];
|
|
59
|
+
let t2;
|
|
60
|
+
if ($[3] !== focus || $[4] !== t1) {
|
|
61
|
+
t2 = {
|
|
62
|
+
...focus,
|
|
63
|
+
props: t1
|
|
64
|
+
};
|
|
65
|
+
$[3] = focus;
|
|
66
|
+
$[4] = t1;
|
|
67
|
+
$[5] = t2;
|
|
68
|
+
} else t2 = $[5];
|
|
69
|
+
return t2;
|
|
70
|
+
};
|
|
71
|
+
export { useFieldFocus, withFieldFocus };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type BusyPhase } from "../../lib/hooks/use-busy-phase.ts";
|
|
2
|
+
import type { FieldProps } from "./field.tsx";
|
|
3
|
+
import type { FieldState } from "./field-state.ts";
|
|
4
|
+
/** What `useFieldState` reads a field's states from. */
|
|
5
|
+
export type FieldStateOptions = Pick<FieldProps, "errors" | "requiredness" | "dirty" | "touched" | "pending"> & Readonly<{
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
readOnly?: boolean;
|
|
8
|
+
/** The control holds a value. */
|
|
9
|
+
filled?: boolean;
|
|
10
|
+
/** States no option here owns, projected over the ones that do. */
|
|
11
|
+
state?: FieldState;
|
|
12
|
+
}>;
|
|
13
|
+
/** A field's states, read from their owners. */
|
|
14
|
+
export type FieldStateProjection = Readonly<{
|
|
15
|
+
/** Every state the field projects, for `fieldStateAttributes` and its parts. */
|
|
16
|
+
state: FieldState;
|
|
17
|
+
/** The field has an error to show. */
|
|
18
|
+
invalid: boolean;
|
|
19
|
+
/** Disabled by its own prop or by a busy `Form.Root`. */
|
|
20
|
+
disabled: boolean;
|
|
21
|
+
/** How long `pending` has lasted; a `Pending` part mounts once it leaves `fresh`. */
|
|
22
|
+
phase: BusyPhase;
|
|
23
|
+
}>;
|
|
24
|
+
/**
|
|
25
|
+
* A field's states, each from its owner: invalid from its errors, disabled
|
|
26
|
+
* by its own prop or a busy `Form.Root`, and pending once the wait has lasted
|
|
27
|
+
* long enough to show.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const { state, invalid, disabled, phase } = useFieldState({ errors, pending, disabled, filled: value !== "" });
|
|
31
|
+
*/
|
|
32
|
+
export declare const useFieldState: ({ errors, requiredness, dirty, touched, pending, disabled: ownDisabled, readOnly, filled, state, }: FieldStateOptions) => FieldStateProjection;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { normalizeFieldErrors } from "../../lib/forms/errors.js";
|
|
2
|
+
import { useBusyPhase } from "../../lib/hooks/use-busy-phase.js";
|
|
3
|
+
import { useFormDisabled } from "../form/form-context.js";
|
|
4
|
+
import { c } from "react/compiler-runtime";
|
|
5
|
+
// src/components/field/use-field-state.ts
|
|
6
|
+
/**
|
|
7
|
+
* A field's states, each from its owner: invalid from its errors, disabled
|
|
8
|
+
* by its own prop or a busy `Form.Root`, and pending once the wait has lasted
|
|
9
|
+
* long enough to show.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* const { state, invalid, disabled, phase } = useFieldState({ errors, pending, disabled, filled: value !== "" });
|
|
13
|
+
*/
|
|
14
|
+
var useFieldState = (t0) => {
|
|
15
|
+
const $ = c(19);
|
|
16
|
+
const { errors, requiredness, dirty, touched, pending: t1, disabled: t2, readOnly, filled, state } = t0;
|
|
17
|
+
const pending = t1 === void 0 ? false : t1;
|
|
18
|
+
const ownDisabled = t2 === void 0 ? false : t2;
|
|
19
|
+
const formDisabled = useFormDisabled();
|
|
20
|
+
let t3;
|
|
21
|
+
if ($[0] !== pending) {
|
|
22
|
+
t3 = { busy: pending };
|
|
23
|
+
$[0] = pending;
|
|
24
|
+
$[1] = t3;
|
|
25
|
+
} else t3 = $[1];
|
|
26
|
+
const phase = useBusyPhase(t3);
|
|
27
|
+
let t4;
|
|
28
|
+
if ($[2] !== errors) {
|
|
29
|
+
t4 = normalizeFieldErrors(errors);
|
|
30
|
+
$[2] = errors;
|
|
31
|
+
$[3] = t4;
|
|
32
|
+
} else t4 = $[3];
|
|
33
|
+
const invalid = t4.length > 0;
|
|
34
|
+
const disabled = ownDisabled || formDisabled;
|
|
35
|
+
const t5 = invalid ? "invalid" : void 0;
|
|
36
|
+
const t6 = phase !== "fresh";
|
|
37
|
+
let t7;
|
|
38
|
+
if ($[4] !== dirty || $[5] !== disabled || $[6] !== filled || $[7] !== readOnly || $[8] !== requiredness || $[9] !== state || $[10] !== t5 || $[11] !== t6 || $[12] !== touched) {
|
|
39
|
+
t7 = {
|
|
40
|
+
disabled,
|
|
41
|
+
readonly: readOnly,
|
|
42
|
+
requiredness,
|
|
43
|
+
validity: t5,
|
|
44
|
+
dirty,
|
|
45
|
+
touched,
|
|
46
|
+
filled,
|
|
47
|
+
pending: t6,
|
|
48
|
+
...state
|
|
49
|
+
};
|
|
50
|
+
$[4] = dirty;
|
|
51
|
+
$[5] = disabled;
|
|
52
|
+
$[6] = filled;
|
|
53
|
+
$[7] = readOnly;
|
|
54
|
+
$[8] = requiredness;
|
|
55
|
+
$[9] = state;
|
|
56
|
+
$[10] = t5;
|
|
57
|
+
$[11] = t6;
|
|
58
|
+
$[12] = touched;
|
|
59
|
+
$[13] = t7;
|
|
60
|
+
} else t7 = $[13];
|
|
61
|
+
let t8;
|
|
62
|
+
if ($[14] !== disabled || $[15] !== invalid || $[16] !== phase || $[17] !== t7) {
|
|
63
|
+
t8 = {
|
|
64
|
+
state: t7,
|
|
65
|
+
invalid,
|
|
66
|
+
disabled,
|
|
67
|
+
phase
|
|
68
|
+
};
|
|
69
|
+
$[14] = disabled;
|
|
70
|
+
$[15] = invalid;
|
|
71
|
+
$[16] = phase;
|
|
72
|
+
$[17] = t7;
|
|
73
|
+
$[18] = t8;
|
|
74
|
+
} else t8 = $[18];
|
|
75
|
+
return t8;
|
|
76
|
+
};
|
|
77
|
+
export { useFieldState };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@layer kit.reset, kit.base, kit.components;
|
|
2
|
+
@layer kit.components {
|
|
3
|
+
._placeholder_ayddm_3 {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
gap: var(--field-gap, var(--sys-unit-4));
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
}
|
|
9
|
+
._label_ayddm_9 {
|
|
10
|
+
inline-size: var(--field-placeholder-label-size, var(--sys-unit-56));
|
|
11
|
+
block-size: 1lh;
|
|
12
|
+
}
|
|
13
|
+
._controls_ayddm_13 {
|
|
14
|
+
display: flex;
|
|
15
|
+
gap: var(--sys-unit-4);
|
|
16
|
+
inline-size: 100%;
|
|
17
|
+
}
|
|
18
|
+
._control_ayddm_13 {
|
|
19
|
+
flex: 1;
|
|
20
|
+
block-size: calc(1lh + 2 * var(--sys-unit-6) + 2 * 1px);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* A field-shaped placeholder, standing in for a control whose code is still on
|
|
4
|
+
* its way. Holds the label and control heights so the form does not jump when
|
|
5
|
+
* the real field arrives.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <Suspense fallback={<FieldPlaceholder />}>{field}</Suspense>
|
|
9
|
+
*/
|
|
10
|
+
export declare const FieldPlaceholder: () => ReactNode;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Skeleton } from "../skeleton/skeleton.js";
|
|
2
|
+
import field_placeholder_module_default from "./field-placeholder.module.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
// src/components/field-placeholder/field-placeholder.tsx
|
|
7
|
+
var SHAPES = ["single", "split"];
|
|
8
|
+
var shapeIndex = (seed, count) => {
|
|
9
|
+
let hash = 0;
|
|
10
|
+
for (const character of seed) hash = (hash * 31 + character.charCodeAt(0)) % 1000003;
|
|
11
|
+
return hash % count;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* A field-shaped placeholder, standing in for a control whose code is still on
|
|
15
|
+
* its way. Holds the label and control heights so the form does not jump when
|
|
16
|
+
* the real field arrives.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <Suspense fallback={<FieldPlaceholder />}>{field}</Suspense>
|
|
20
|
+
*/
|
|
21
|
+
var FieldPlaceholder = () => {
|
|
22
|
+
const $ = c(6);
|
|
23
|
+
const shape = SHAPES[shapeIndex(useId(), SHAPES.length)] ?? "single";
|
|
24
|
+
let t0;
|
|
25
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
26
|
+
t0 = /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.label });
|
|
27
|
+
$[0] = t0;
|
|
28
|
+
} else t0 = $[0];
|
|
29
|
+
let t1;
|
|
30
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
31
|
+
t1 = /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.control });
|
|
32
|
+
$[1] = t1;
|
|
33
|
+
} else t1 = $[1];
|
|
34
|
+
let t2;
|
|
35
|
+
if ($[2] !== shape) {
|
|
36
|
+
t2 = shape === "split" && /* @__PURE__ */ jsx(Skeleton, { className: field_placeholder_module_default.control });
|
|
37
|
+
$[2] = shape;
|
|
38
|
+
$[3] = t2;
|
|
39
|
+
} else t2 = $[3];
|
|
40
|
+
let t3;
|
|
41
|
+
if ($[4] !== t2) {
|
|
42
|
+
t3 = /* @__PURE__ */ jsxs("div", {
|
|
43
|
+
className: field_placeholder_module_default.placeholder,
|
|
44
|
+
children: [t0, /* @__PURE__ */ jsxs("div", {
|
|
45
|
+
className: field_placeholder_module_default.controls,
|
|
46
|
+
children: [t1, t2]
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
$[4] = t2;
|
|
50
|
+
$[5] = t3;
|
|
51
|
+
} else t3 = $[5];
|
|
52
|
+
return t3;
|
|
53
|
+
};
|
|
54
|
+
export { FieldPlaceholder };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './field-placeholder.css';// src/components/field-placeholder/field-placeholder.module.scss
|
|
2
|
+
var placeholder = "_placeholder_ayddm_3";
|
|
3
|
+
var label = "_label_ayddm_9";
|
|
4
|
+
var controls = "_controls_ayddm_13";
|
|
5
|
+
var control = "_control_ayddm_13";
|
|
6
|
+
var field_placeholder_module_default = {
|
|
7
|
+
placeholder,
|
|
8
|
+
label,
|
|
9
|
+
controls,
|
|
10
|
+
control
|
|
11
|
+
};
|
|
12
|
+
export { control, controls, field_placeholder_module_default as default, label, placeholder };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./field-placeholder.tsx";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FieldPlaceholder } from "./field-placeholder.js";
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import type { FieldProps } from "../field/index.ts";
|
|
3
|
+
import type { FieldsetErrorFormat, FieldsetMember } from "./fieldset-root.tsx";
|
|
4
|
+
export type FieldGroupProps = Pick<FieldProps, "requiredness" | "optionalLabel"> & Readonly<{
|
|
5
|
+
/** The visible name of the group, such as "Address". */
|
|
6
|
+
legend: string;
|
|
7
|
+
/** Help about the group as a whole, under its legend. */
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
/** Errors about the group as a whole, such as a failed address lookup, in any shape `normalizeFieldErrors` accepts. */
|
|
10
|
+
errors?: unknown;
|
|
11
|
+
/** The fields whose errors the group shows in its own error instead of under each field. */
|
|
12
|
+
members?: readonly FieldsetMember[];
|
|
13
|
+
/** Turns a member's message into its line. Left out, the line is the message. */
|
|
14
|
+
formatError?: FieldsetErrorFormat;
|
|
15
|
+
className?: string;
|
|
16
|
+
/** The fields, laid out side by side. */
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Related fields side by side under one legend, with one error for all of
|
|
21
|
+
* them: the lines of its `members`, each tied to its field's control, then its
|
|
22
|
+
* own `errors`. Every field's label, control, description and error line up
|
|
23
|
+
* with its neighbours'. The `--field-group-columns` knob sets the columns.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* <FieldGroup legend="Address" optionalLabel="optional" members={members}>
|
|
27
|
+
* <TextField label="Postal code" … />
|
|
28
|
+
* <TextField label="House number" … />
|
|
29
|
+
* </FieldGroup>
|
|
30
|
+
*/
|
|
31
|
+
export declare const FieldGroup: ({ legend, description, errors, requiredness, optionalLabel, members, formatError, className, children, }: FieldGroupProps) => ReactNode;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { normalizeFieldErrors } from "../../lib/forms/errors.js";
|
|
2
|
+
import { Fieldset } from "./fieldset.js";
|
|
3
|
+
import { c } from "react/compiler-runtime";
|
|
4
|
+
import { useId } from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
// src/components/fieldset/field-group.tsx
|
|
7
|
+
/**
|
|
8
|
+
* Related fields side by side under one legend, with one error for all of
|
|
9
|
+
* them: the lines of its `members`, each tied to its field's control, then its
|
|
10
|
+
* own `errors`. Every field's label, control, description and error line up
|
|
11
|
+
* with its neighbours'. The `--field-group-columns` knob sets the columns.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* <FieldGroup legend="Address" optionalLabel="optional" members={members}>
|
|
15
|
+
* <TextField label="Postal code" … />
|
|
16
|
+
* <TextField label="House number" … />
|
|
17
|
+
* </FieldGroup>
|
|
18
|
+
*/
|
|
19
|
+
var FieldGroup = (t0) => {
|
|
20
|
+
const $ = c(27);
|
|
21
|
+
const { legend, description, errors, requiredness, optionalLabel, members, formatError, className, children } = t0;
|
|
22
|
+
const id = useId();
|
|
23
|
+
const descriptionId = `${id}description`;
|
|
24
|
+
const errorId = `${id}error`;
|
|
25
|
+
let t1;
|
|
26
|
+
if ($[0] !== description || $[1] !== descriptionId || $[2] !== errorId || $[3] !== errors) {
|
|
27
|
+
t1 = [description === void 0 ? "" : descriptionId, normalizeFieldErrors(errors).length === 0 ? "" : errorId].filter(_temp).join(" ") || void 0;
|
|
28
|
+
$[0] = description;
|
|
29
|
+
$[1] = descriptionId;
|
|
30
|
+
$[2] = errorId;
|
|
31
|
+
$[3] = errors;
|
|
32
|
+
$[4] = t1;
|
|
33
|
+
} else t1 = $[4];
|
|
34
|
+
const describedBy = t1;
|
|
35
|
+
let t2;
|
|
36
|
+
if ($[5] !== legend || $[6] !== optionalLabel || $[7] !== requiredness) {
|
|
37
|
+
t2 = /* @__PURE__ */ jsx(Fieldset.Legend, {
|
|
38
|
+
requiredness,
|
|
39
|
+
optionalLabel,
|
|
40
|
+
children: legend
|
|
41
|
+
});
|
|
42
|
+
$[5] = legend;
|
|
43
|
+
$[6] = optionalLabel;
|
|
44
|
+
$[7] = requiredness;
|
|
45
|
+
$[8] = t2;
|
|
46
|
+
} else t2 = $[8];
|
|
47
|
+
let t3;
|
|
48
|
+
if ($[9] !== description || $[10] !== descriptionId) {
|
|
49
|
+
t3 = /* @__PURE__ */ jsx(Fieldset.Description, {
|
|
50
|
+
id: descriptionId,
|
|
51
|
+
children: description
|
|
52
|
+
});
|
|
53
|
+
$[9] = description;
|
|
54
|
+
$[10] = descriptionId;
|
|
55
|
+
$[11] = t3;
|
|
56
|
+
} else t3 = $[11];
|
|
57
|
+
let t4;
|
|
58
|
+
if ($[12] !== children) {
|
|
59
|
+
t4 = /* @__PURE__ */ jsx(Fieldset.Fields, { children });
|
|
60
|
+
$[12] = children;
|
|
61
|
+
$[13] = t4;
|
|
62
|
+
} else t4 = $[13];
|
|
63
|
+
let t5;
|
|
64
|
+
if ($[14] !== errorId) {
|
|
65
|
+
t5 = /* @__PURE__ */ jsx(Fieldset.Error, { id: errorId });
|
|
66
|
+
$[14] = errorId;
|
|
67
|
+
$[15] = t5;
|
|
68
|
+
} else t5 = $[15];
|
|
69
|
+
let t6;
|
|
70
|
+
if ($[16] !== className || $[17] !== describedBy || $[18] !== errors || $[19] !== formatError || $[20] !== members || $[21] !== requiredness || $[22] !== t2 || $[23] !== t3 || $[24] !== t4 || $[25] !== t5) {
|
|
71
|
+
t6 = /* @__PURE__ */ jsxs(Fieldset.Root, {
|
|
72
|
+
errors,
|
|
73
|
+
requiredness,
|
|
74
|
+
members,
|
|
75
|
+
formatError,
|
|
76
|
+
"aria-describedby": describedBy,
|
|
77
|
+
className,
|
|
78
|
+
children: [
|
|
79
|
+
t2,
|
|
80
|
+
t3,
|
|
81
|
+
t4,
|
|
82
|
+
t5
|
|
83
|
+
]
|
|
84
|
+
});
|
|
85
|
+
$[16] = className;
|
|
86
|
+
$[17] = describedBy;
|
|
87
|
+
$[18] = errors;
|
|
88
|
+
$[19] = formatError;
|
|
89
|
+
$[20] = members;
|
|
90
|
+
$[21] = requiredness;
|
|
91
|
+
$[22] = t2;
|
|
92
|
+
$[23] = t3;
|
|
93
|
+
$[24] = t4;
|
|
94
|
+
$[25] = t5;
|
|
95
|
+
$[26] = t6;
|
|
96
|
+
} else t6 = $[26];
|
|
97
|
+
return t6;
|
|
98
|
+
};
|
|
99
|
+
function _temp(part) {
|
|
100
|
+
return part !== "";
|
|
101
|
+
}
|
|
102
|
+
export { FieldGroup };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type FieldLabelProps, type FieldProps, type FieldRootProps } from "../field/field.tsx";
|
|
3
|
+
/** A field whose errors a fieldset collects, by the name of the TanStack Form field it renders in. */
|
|
4
|
+
export type FieldsetMember = Readonly<{
|
|
5
|
+
name: string;
|
|
6
|
+
/** Errors in any shape `normalizeFieldErrors` accepts. */
|
|
7
|
+
errors: unknown;
|
|
8
|
+
}>;
|
|
9
|
+
/** The field a collected line belongs to, as `formatError` receives it. */
|
|
10
|
+
export type FieldsetMemberField = Readonly<{
|
|
11
|
+
name: string;
|
|
12
|
+
/** The field's label, once the field has told the group. */
|
|
13
|
+
label: string | undefined;
|
|
14
|
+
}>;
|
|
15
|
+
/** Turns one of a member's messages into the line the group shows for it. */
|
|
16
|
+
export type FieldsetErrorFormat = (field: FieldsetMemberField, message: string) => ReactNode;
|
|
17
|
+
/** One line of a fieldset's error. */
|
|
18
|
+
export type FieldsetLine = Readonly<{
|
|
19
|
+
id: string;
|
|
20
|
+
/** The member the line belongs to, or `undefined` for a line about the group. */
|
|
21
|
+
name: string | undefined;
|
|
22
|
+
content: ReactNode;
|
|
23
|
+
}>;
|
|
24
|
+
/** What a fieldset's root hands its parts. */
|
|
25
|
+
export type FieldsetContextValue = Readonly<{
|
|
26
|
+
/** The members' lines in member order, then the group's own. */
|
|
27
|
+
lines: readonly FieldsetLine[];
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* The lines of the surrounding fieldset's error.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const { lines } = useFieldsetContext();
|
|
34
|
+
*/
|
|
35
|
+
export declare const useFieldsetContext: () => FieldsetContextValue;
|
|
36
|
+
/** What the root of a fieldset takes, for a group of choices or a group of fields. */
|
|
37
|
+
export type FieldsetRootProps = FieldRootProps & Pick<FieldProps, "errors" | "requiredness" | "dirty" | "touched" | "pending"> & Readonly<{
|
|
38
|
+
/** A choice is made. */
|
|
39
|
+
filled?: boolean;
|
|
40
|
+
readOnly?: boolean;
|
|
41
|
+
/** The fields whose errors the group shows in its own error instead of under each field. */
|
|
42
|
+
members?: readonly FieldsetMember[];
|
|
43
|
+
/** Turns a member's message into its line. Left out, the line is the message. */
|
|
44
|
+
formatError?: FieldsetErrorFormat;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* A field rendered as a fieldset, named by its legend: a group of choices, or a
|
|
48
|
+
* group of fields that shows the errors of its `members` in one place.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* <FieldsetRoot filled={kind !== null}>…</FieldsetRoot>
|
|
52
|
+
*/
|
|
53
|
+
export declare const FieldsetRoot: ({ errors, requiredness, dirty, touched, pending, filled, readOnly, disabled, members, formatError, children, ...props }: FieldsetRootProps) => ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* The legend that names a {@link FieldsetRoot}.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* <FieldsetLegend optionalLabel="optional">Kind</FieldsetLegend>
|
|
59
|
+
*/
|
|
60
|
+
export declare const FieldsetLegend: (props: FieldLabelProps) => ReactNode;
|