@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,215 @@
|
|
|
1
|
+
import { Pagination } from "../components/pagination/pagination.js";
|
|
2
|
+
import { DataTableContent } from "./data-table-content.js";
|
|
3
|
+
import { DataTableContext, useDataTable } from "./data-table-context.js";
|
|
4
|
+
import { DataTableSelectionBar } from "./data-table-selection.js";
|
|
5
|
+
import { PAGE_SIZE_OPTIONS } from "./table-features.js";
|
|
6
|
+
import data_table_module_default from "./data-table.module.js";
|
|
7
|
+
import { c } from "react/compiler-runtime";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { clsx } from "clsx";
|
|
10
|
+
// src/data-table/data-table.tsx
|
|
11
|
+
var Root = (t0) => {
|
|
12
|
+
const $ = c(14);
|
|
13
|
+
const { table, selection, status, isFetching: t1, onRetry, children, className } = t0;
|
|
14
|
+
const isFetching = t1 === void 0 ? false : t1;
|
|
15
|
+
let t2;
|
|
16
|
+
if ($[0] !== isFetching || $[1] !== onRetry || $[2] !== selection || $[3] !== status || $[4] !== table) {
|
|
17
|
+
t2 = {
|
|
18
|
+
table,
|
|
19
|
+
selection,
|
|
20
|
+
status,
|
|
21
|
+
isFetching,
|
|
22
|
+
onRetry
|
|
23
|
+
};
|
|
24
|
+
$[0] = isFetching;
|
|
25
|
+
$[1] = onRetry;
|
|
26
|
+
$[2] = selection;
|
|
27
|
+
$[3] = status;
|
|
28
|
+
$[4] = table;
|
|
29
|
+
$[5] = t2;
|
|
30
|
+
} else t2 = $[5];
|
|
31
|
+
let t3;
|
|
32
|
+
if ($[6] !== className) {
|
|
33
|
+
t3 = clsx(data_table_module_default.root, className);
|
|
34
|
+
$[6] = className;
|
|
35
|
+
$[7] = t3;
|
|
36
|
+
} else t3 = $[7];
|
|
37
|
+
let t4;
|
|
38
|
+
if ($[8] !== children || $[9] !== t3) {
|
|
39
|
+
t4 = /* @__PURE__ */ jsx("div", {
|
|
40
|
+
className: t3,
|
|
41
|
+
children
|
|
42
|
+
});
|
|
43
|
+
$[8] = children;
|
|
44
|
+
$[9] = t3;
|
|
45
|
+
$[10] = t4;
|
|
46
|
+
} else t4 = $[10];
|
|
47
|
+
let t5;
|
|
48
|
+
if ($[11] !== t2 || $[12] !== t4) {
|
|
49
|
+
t5 = /* @__PURE__ */ jsx(DataTableContext, {
|
|
50
|
+
value: t2,
|
|
51
|
+
children: t4
|
|
52
|
+
});
|
|
53
|
+
$[11] = t2;
|
|
54
|
+
$[12] = t4;
|
|
55
|
+
$[13] = t5;
|
|
56
|
+
} else t5 = $[13];
|
|
57
|
+
return t5;
|
|
58
|
+
};
|
|
59
|
+
/** Layout slot above the table for search, filters and actions. */
|
|
60
|
+
var Toolbar = (t0) => {
|
|
61
|
+
const $ = c(5);
|
|
62
|
+
const { children, className } = t0;
|
|
63
|
+
let t1;
|
|
64
|
+
if ($[0] !== className) {
|
|
65
|
+
t1 = clsx(data_table_module_default.toolbar, className);
|
|
66
|
+
$[0] = className;
|
|
67
|
+
$[1] = t1;
|
|
68
|
+
} else t1 = $[1];
|
|
69
|
+
let t2;
|
|
70
|
+
if ($[2] !== children || $[3] !== t1) {
|
|
71
|
+
t2 = /* @__PURE__ */ jsx("div", {
|
|
72
|
+
className: t1,
|
|
73
|
+
children
|
|
74
|
+
});
|
|
75
|
+
$[2] = children;
|
|
76
|
+
$[3] = t1;
|
|
77
|
+
$[4] = t2;
|
|
78
|
+
} else t2 = $[4];
|
|
79
|
+
return t2;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* The kit's `Pagination`, driven by the instance's pagination API (built with
|
|
83
|
+
* `manualPagination` + server `rowCount`). The page sizes come from the
|
|
84
|
+
* table's `meta.pageSizeOptions`, and picking one returns to the first page.
|
|
85
|
+
*/
|
|
86
|
+
var DataTablePagination = (t0) => {
|
|
87
|
+
const $ = c(27);
|
|
88
|
+
const { pageSizeLabel, indexLabel, firstLabel, previousLabel, nextLabel, lastLabel, className } = t0;
|
|
89
|
+
const { table } = useDataTable();
|
|
90
|
+
const { pageIndex, pageSize } = table.state.pagination;
|
|
91
|
+
let t1;
|
|
92
|
+
if ($[0] !== className) {
|
|
93
|
+
t1 = clsx(data_table_module_default.pagination, className);
|
|
94
|
+
$[0] = className;
|
|
95
|
+
$[1] = t1;
|
|
96
|
+
} else t1 = $[1];
|
|
97
|
+
let t2;
|
|
98
|
+
if ($[2] !== table) {
|
|
99
|
+
t2 = table.getPageCount();
|
|
100
|
+
$[2] = table;
|
|
101
|
+
$[3] = t2;
|
|
102
|
+
} else t2 = $[3];
|
|
103
|
+
const t3 = Math.max(t2, 1);
|
|
104
|
+
const t4 = table.options.meta?.pageSizeOptions ?? PAGE_SIZE_OPTIONS;
|
|
105
|
+
let t5;
|
|
106
|
+
let t6;
|
|
107
|
+
if ($[4] !== table) {
|
|
108
|
+
t5 = (next) => {
|
|
109
|
+
table.setPageIndex(next);
|
|
110
|
+
};
|
|
111
|
+
t6 = (next_0) => {
|
|
112
|
+
table.setPagination({
|
|
113
|
+
pageIndex: 0,
|
|
114
|
+
pageSize: next_0
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
$[4] = table;
|
|
118
|
+
$[5] = t5;
|
|
119
|
+
$[6] = t6;
|
|
120
|
+
} else {
|
|
121
|
+
t5 = $[5];
|
|
122
|
+
t6 = $[6];
|
|
123
|
+
}
|
|
124
|
+
let t7;
|
|
125
|
+
if ($[7] !== pageSizeLabel) {
|
|
126
|
+
t7 = /* @__PURE__ */ jsx(Pagination.PageSize, { label: pageSizeLabel });
|
|
127
|
+
$[7] = pageSizeLabel;
|
|
128
|
+
$[8] = t7;
|
|
129
|
+
} else t7 = $[8];
|
|
130
|
+
let t8;
|
|
131
|
+
if ($[9] !== indexLabel) {
|
|
132
|
+
t8 = /* @__PURE__ */ jsx(Pagination.Index, { label: indexLabel });
|
|
133
|
+
$[9] = indexLabel;
|
|
134
|
+
$[10] = t8;
|
|
135
|
+
} else t8 = $[10];
|
|
136
|
+
let t9;
|
|
137
|
+
if ($[11] !== firstLabel || $[12] !== lastLabel || $[13] !== nextLabel || $[14] !== previousLabel) {
|
|
138
|
+
t9 = /* @__PURE__ */ jsx(Pagination.Controls, {
|
|
139
|
+
firstLabel,
|
|
140
|
+
previousLabel,
|
|
141
|
+
nextLabel,
|
|
142
|
+
lastLabel
|
|
143
|
+
});
|
|
144
|
+
$[11] = firstLabel;
|
|
145
|
+
$[12] = lastLabel;
|
|
146
|
+
$[13] = nextLabel;
|
|
147
|
+
$[14] = previousLabel;
|
|
148
|
+
$[15] = t9;
|
|
149
|
+
} else t9 = $[15];
|
|
150
|
+
let t10;
|
|
151
|
+
if ($[16] !== pageIndex || $[17] !== pageSize || $[18] !== t1 || $[19] !== t3 || $[20] !== t4 || $[21] !== t5 || $[22] !== t6 || $[23] !== t7 || $[24] !== t8 || $[25] !== t9) {
|
|
152
|
+
t10 = /* @__PURE__ */ jsxs(Pagination.Root, {
|
|
153
|
+
className: t1,
|
|
154
|
+
pageIndex,
|
|
155
|
+
pageCount: t3,
|
|
156
|
+
pageSize,
|
|
157
|
+
pageSizes: t4,
|
|
158
|
+
onPageIndexChange: t5,
|
|
159
|
+
onPageSizeChange: t6,
|
|
160
|
+
children: [
|
|
161
|
+
t7,
|
|
162
|
+
t8,
|
|
163
|
+
t9
|
|
164
|
+
]
|
|
165
|
+
});
|
|
166
|
+
$[16] = pageIndex;
|
|
167
|
+
$[17] = pageSize;
|
|
168
|
+
$[18] = t1;
|
|
169
|
+
$[19] = t3;
|
|
170
|
+
$[20] = t4;
|
|
171
|
+
$[21] = t5;
|
|
172
|
+
$[22] = t6;
|
|
173
|
+
$[23] = t7;
|
|
174
|
+
$[24] = t8;
|
|
175
|
+
$[25] = t9;
|
|
176
|
+
$[26] = t10;
|
|
177
|
+
} else t10 = $[26];
|
|
178
|
+
return t10;
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* Composite data table over a TanStack Table instance. `Root` holds the
|
|
182
|
+
* instance and the injected query state in context; the parts lay it out:
|
|
183
|
+
* `Toolbar`, `SelectionBar`, `Content` and `Pagination`. A nested sub-table
|
|
184
|
+
* gets its own `DataTable.Root`, with its own instance and context.
|
|
185
|
+
*
|
|
186
|
+
* @example
|
|
187
|
+
* <DataTable.Root table={table} status={query.status} isFetching={query.isFetching}>
|
|
188
|
+
* <DataTable.Toolbar>
|
|
189
|
+
* <FilterBar.Root filters={filters}>…</FilterBar.Root>
|
|
190
|
+
* </DataTable.Toolbar>
|
|
191
|
+
* <DataTable.Content
|
|
192
|
+
* emptyState="No declarations yet."
|
|
193
|
+
* errorLabel="The declarations could not be loaded."
|
|
194
|
+
* loadingLabel="Loading declarations"
|
|
195
|
+
* slowLabel="This is taking longer than usual."
|
|
196
|
+
* retryLabel="Try again"
|
|
197
|
+
* />
|
|
198
|
+
* <DataTable.Pagination
|
|
199
|
+
* pageSizeLabel="Rows per page"
|
|
200
|
+
* indexLabel={page => `Page ${page.pageIndex + 1} of ${page.pageCount}`}
|
|
201
|
+
* firstLabel="First page"
|
|
202
|
+
* previousLabel="Previous page"
|
|
203
|
+
* nextLabel="Next page"
|
|
204
|
+
* lastLabel="Last page"
|
|
205
|
+
* />
|
|
206
|
+
* </DataTable.Root>
|
|
207
|
+
*/
|
|
208
|
+
var DataTable = {
|
|
209
|
+
Root,
|
|
210
|
+
Toolbar,
|
|
211
|
+
Content: DataTableContent,
|
|
212
|
+
Pagination: DataTablePagination,
|
|
213
|
+
SelectionBar: DataTableSelectionBar
|
|
214
|
+
};
|
|
215
|
+
export { DataTable };
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import './data-table.css';// src/data-table/data-table.module.scss
|
|
2
|
+
var root = "_root_i4wmq_3";
|
|
3
|
+
var toolbar = "_toolbar_i4wmq_77";
|
|
4
|
+
var scrollFrame = "_scrollFrame_i4wmq_84";
|
|
5
|
+
var stale = "_stale_i4wmq_92";
|
|
6
|
+
var staleOverlay = "_staleOverlay_i4wmq_98";
|
|
7
|
+
var contentWrap = "_contentWrap_i4wmq_101";
|
|
8
|
+
var th = "_th_i4wmq_132";
|
|
9
|
+
var edgeStart = "_edgeStart_i4wmq_1";
|
|
10
|
+
var edgeEnd = "_edgeEnd_i4wmq_1";
|
|
11
|
+
var refreshFailed = "_refreshFailed_i4wmq_165";
|
|
12
|
+
var table = "_table_i4wmq_177";
|
|
13
|
+
var thead = "_thead_i4wmq_185";
|
|
14
|
+
var sortToggle = "_sortToggle_i4wmq_200";
|
|
15
|
+
var sortIconIdle = "_sortIconIdle_i4wmq_251";
|
|
16
|
+
var td = "_td_i4wmq_255";
|
|
17
|
+
var row = "_row_i4wmq_280";
|
|
18
|
+
var subRow = "_subRow_i4wmq_302";
|
|
19
|
+
var skeletonBar = "_skeletonBar_i4wmq_311";
|
|
20
|
+
var busyCaption = "_busyCaption_i4wmq_314";
|
|
21
|
+
var stateCell = "_stateCell_i4wmq_322";
|
|
22
|
+
var errorState = "_errorState_i4wmq_327";
|
|
23
|
+
var pagination = "_pagination_i4wmq_330";
|
|
24
|
+
var selectionContainer = "_selectionContainer_i4wmq_334";
|
|
25
|
+
var selectionBar = "_selectionBar_i4wmq_338";
|
|
26
|
+
var selectionSummary = "_selectionSummary_i4wmq_408";
|
|
27
|
+
var selectionTotal = "_selectionTotal_i4wmq_423";
|
|
28
|
+
var selectionCount = "_selectionCount_i4wmq_424";
|
|
29
|
+
var selectionMeasure = "_selectionMeasure_i4wmq_425";
|
|
30
|
+
var selectionStatus = "_selectionStatus_i4wmq_457";
|
|
31
|
+
var selectionActions = "_selectionActions_i4wmq_465";
|
|
32
|
+
var selectionSelectAll = "_selectionSelectAll_i4wmq_495";
|
|
33
|
+
var selectionBulk = "_selectionBulk_i4wmq_498";
|
|
34
|
+
var data_table_module_default = {
|
|
35
|
+
root,
|
|
36
|
+
toolbar,
|
|
37
|
+
scrollFrame,
|
|
38
|
+
stale,
|
|
39
|
+
staleOverlay,
|
|
40
|
+
contentWrap,
|
|
41
|
+
th,
|
|
42
|
+
edgeStart,
|
|
43
|
+
edgeEnd,
|
|
44
|
+
refreshFailed,
|
|
45
|
+
table,
|
|
46
|
+
thead,
|
|
47
|
+
sortToggle,
|
|
48
|
+
sortIconIdle,
|
|
49
|
+
td,
|
|
50
|
+
row,
|
|
51
|
+
subRow,
|
|
52
|
+
skeletonBar,
|
|
53
|
+
busyCaption,
|
|
54
|
+
stateCell,
|
|
55
|
+
errorState,
|
|
56
|
+
pagination,
|
|
57
|
+
selectionContainer,
|
|
58
|
+
selectionBar,
|
|
59
|
+
selectionSummary,
|
|
60
|
+
selectionTotal,
|
|
61
|
+
selectionCount,
|
|
62
|
+
selectionMeasure,
|
|
63
|
+
selectionStatus,
|
|
64
|
+
selectionActions,
|
|
65
|
+
selectionSelectAll,
|
|
66
|
+
selectionBulk
|
|
67
|
+
};
|
|
68
|
+
export { busyCaption, contentWrap, data_table_module_default as default, edgeEnd, edgeStart, errorState, pagination, refreshFailed, root, row, scrollFrame, selectionActions, selectionBar, selectionBulk, selectionContainer, selectionCount, selectionMeasure, selectionSelectAll, selectionStatus, selectionSummary, selectionTotal, skeletonBar, sortIconIdle, sortToggle, stale, staleOverlay, stateCell, subRow, table, td, th, thead, toolbar };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./data-table.tsx";
|
|
2
|
+
export type { DataTableContentProps } from "./data-table-content.tsx";
|
|
3
|
+
export { type DataTableState, useDataTable, } from "./data-table-context.tsx";
|
|
4
|
+
export { type DataTableSelectionBarProps, type SelectionColumnOptions, selectionColumn, } from "./data-table-selection.tsx";
|
|
5
|
+
export type { DataTableStatus } from "./resolve-view.ts";
|
|
6
|
+
export * from "./table-features.ts";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DataTable } from "./data-table.js";
|
|
2
|
+
import { useDataTable } from "./data-table-context.js";
|
|
3
|
+
import { selectionColumn } from "./data-table-selection.js";
|
|
4
|
+
import { EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures } from "./table-features.js";
|
|
5
|
+
export { DataTable, EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures, selectionColumn, useDataTable };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/** The lifecycle status of the query a `DataTable` shows, as TanStack Query reports it. */
|
|
2
|
+
export type DataTableStatus = "pending" | "error" | "success";
|
|
3
|
+
/** Which body state `DataTable.Content` should render. */
|
|
4
|
+
export type TableView = "loading" | "error" | "empty" | "ready";
|
|
5
|
+
export type ResolvedView = Readonly<{
|
|
6
|
+
view: TableView;
|
|
7
|
+
/**
|
|
8
|
+
* True when rendered rows are from a previous successful fetch while a
|
|
9
|
+
* background refetch is in flight. Drives the subtle "stale" affordance.
|
|
10
|
+
*/
|
|
11
|
+
stale: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* True when the fetch failed but earlier rows are still on screen, so the
|
|
14
|
+
* failure is reported alongside them instead of replacing the body.
|
|
15
|
+
*/
|
|
16
|
+
refreshFailed: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Maps an injected query state to the single body view `DataTable.Content`
|
|
20
|
+
* renders. Rows never unmount once they are on screen: a failure with rows
|
|
21
|
+
* still present stays on the `"ready"` body and reports `refreshFailed`.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* resolveView({ status: "success", isFetching: true, hasRows: true });
|
|
25
|
+
* // => { view: "ready", stale: true, refreshFailed: false }
|
|
26
|
+
*/
|
|
27
|
+
export declare const resolveView: ({ status, isFetching, hasRows, }: Readonly<{
|
|
28
|
+
status: DataTableStatus;
|
|
29
|
+
isFetching: boolean;
|
|
30
|
+
hasRows: boolean;
|
|
31
|
+
}>) => ResolvedView;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// src/data-table/resolve-view.ts
|
|
2
|
+
/**
|
|
3
|
+
* Maps an injected query state to the single body view `DataTable.Content`
|
|
4
|
+
* renders. Rows never unmount once they are on screen: a failure with rows
|
|
5
|
+
* still present stays on the `"ready"` body and reports `refreshFailed`.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* resolveView({ status: "success", isFetching: true, hasRows: true });
|
|
9
|
+
* // => { view: "ready", stale: true, refreshFailed: false }
|
|
10
|
+
*/
|
|
11
|
+
var resolveView = ({ status, isFetching, hasRows }) => {
|
|
12
|
+
if (status === "error") return hasRows ? {
|
|
13
|
+
view: "ready",
|
|
14
|
+
stale: false,
|
|
15
|
+
refreshFailed: true
|
|
16
|
+
} : {
|
|
17
|
+
view: "error",
|
|
18
|
+
stale: false,
|
|
19
|
+
refreshFailed: false
|
|
20
|
+
};
|
|
21
|
+
if (status === "pending") return {
|
|
22
|
+
view: "loading",
|
|
23
|
+
stale: false,
|
|
24
|
+
refreshFailed: false
|
|
25
|
+
};
|
|
26
|
+
if (!hasRows) return {
|
|
27
|
+
view: "empty",
|
|
28
|
+
stale: false,
|
|
29
|
+
refreshFailed: false
|
|
30
|
+
};
|
|
31
|
+
return {
|
|
32
|
+
view: "ready",
|
|
33
|
+
stale: isFetching,
|
|
34
|
+
refreshFailed: false
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
export { resolveView };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature } from "@tanstack/react-table";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
/** Per-column options a `DataTable` reads from a column definition's `meta`. */
|
|
4
|
+
export type DataTableColumnMeta = Readonly<{
|
|
5
|
+
/**
|
|
6
|
+
* Collapse the column to its content width rather than letting it take a
|
|
7
|
+
* share of the free space. For icon-button and control columns.
|
|
8
|
+
*/
|
|
9
|
+
fit?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* This column holds quantities — amounts, counts, measures — and is
|
|
12
|
+
* end-aligned, with its unit named in the header. Not for codes or dates.
|
|
13
|
+
*/
|
|
14
|
+
numeric?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Pin this column to an edge of the scroll container, so it stays put while
|
|
17
|
+
* the rest of the table scrolls sideways. At most two per edge, and each
|
|
18
|
+
* edge's columns must be adjacent and sit at that edge of the column list.
|
|
19
|
+
*/
|
|
20
|
+
sticky?: "start" | "end";
|
|
21
|
+
/**
|
|
22
|
+
* What this column draws in a placeholder row while the first page loads.
|
|
23
|
+
* Every other column falls back to a skeleton bar.
|
|
24
|
+
*/
|
|
25
|
+
placeholderCell?: () => ReactNode;
|
|
26
|
+
}>;
|
|
27
|
+
/** The page sizes a table offers, as a list that is never empty. */
|
|
28
|
+
export type PageSizeOptions = readonly [
|
|
29
|
+
number,
|
|
30
|
+
...number[]
|
|
31
|
+
];
|
|
32
|
+
/**
|
|
33
|
+
* The page sizes a table offers when it names none of its own.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* pageSizeOptions: PAGE_SIZE_OPTIONS, // 10, 25, 50, 100
|
|
37
|
+
*/
|
|
38
|
+
export declare const PAGE_SIZE_OPTIONS: PageSizeOptions;
|
|
39
|
+
/** Per-table options a `DataTable` reads from a table's `meta`. */
|
|
40
|
+
export type DataTableMeta = Readonly<{
|
|
41
|
+
/** The page sizes the pagination control offers. */
|
|
42
|
+
pageSizeOptions?: PageSizeOptions;
|
|
43
|
+
}>;
|
|
44
|
+
/** The TanStack Table features a `DataTable` instance registers. */
|
|
45
|
+
export type DataTableFeatures = Readonly<{
|
|
46
|
+
rowSortingFeature: typeof rowSortingFeature;
|
|
47
|
+
rowPaginationFeature: typeof rowPaginationFeature;
|
|
48
|
+
rowExpandingFeature: typeof rowExpandingFeature;
|
|
49
|
+
rowSelectionFeature: typeof rowSelectionFeature;
|
|
50
|
+
tableMeta: DataTableMeta;
|
|
51
|
+
columnMeta: DataTableColumnMeta;
|
|
52
|
+
}>;
|
|
53
|
+
/**
|
|
54
|
+
* The feature set a `DataTable` instance registers. No row-model slots:
|
|
55
|
+
* sorting and pagination are server-owned and expansion drives the table's
|
|
56
|
+
* own sub-row rendering.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* const table = useTable<DataTableFeatures, Row>({ features: dataTableFeatures, columns, data });
|
|
60
|
+
*/
|
|
61
|
+
export declare const dataTableFeatures: DataTableFeatures;
|
|
62
|
+
/**
|
|
63
|
+
* A frozen empty rows array. Pass it as the `data` default when building the
|
|
64
|
+
* table instance, so an undefined query result never mints a new array.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* data: query.data?.items ?? EMPTY_ROWS,
|
|
68
|
+
*/
|
|
69
|
+
export declare const EMPTY_ROWS: never[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { metaHelper, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, tableFeatures } from "@tanstack/react-table";
|
|
2
|
+
// src/data-table/table-features.ts
|
|
3
|
+
/**
|
|
4
|
+
* The page sizes a table offers when it names none of its own.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* pageSizeOptions: PAGE_SIZE_OPTIONS, // 10, 25, 50, 100
|
|
8
|
+
*/
|
|
9
|
+
var PAGE_SIZE_OPTIONS = [
|
|
10
|
+
10,
|
|
11
|
+
25,
|
|
12
|
+
50,
|
|
13
|
+
100
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* The feature set a `DataTable` instance registers. No row-model slots:
|
|
17
|
+
* sorting and pagination are server-owned and expansion drives the table's
|
|
18
|
+
* own sub-row rendering.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const table = useTable<DataTableFeatures, Row>({ features: dataTableFeatures, columns, data });
|
|
22
|
+
*/
|
|
23
|
+
var dataTableFeatures = tableFeatures({
|
|
24
|
+
rowSortingFeature,
|
|
25
|
+
rowPaginationFeature,
|
|
26
|
+
rowExpandingFeature,
|
|
27
|
+
rowSelectionFeature,
|
|
28
|
+
tableMeta: metaHelper(),
|
|
29
|
+
columnMeta: metaHelper()
|
|
30
|
+
});
|
|
31
|
+
var emptyRows = [];
|
|
32
|
+
Object.freeze(emptyRows);
|
|
33
|
+
/**
|
|
34
|
+
* A frozen empty rows array. Pass it as the `data` default when building the
|
|
35
|
+
* table instance, so an undefined query result never mints a new array.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* data: query.data?.items ?? EMPTY_ROWS,
|
|
39
|
+
*/
|
|
40
|
+
var EMPTY_ROWS = emptyRows;
|
|
41
|
+
export { EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Publishes the measured geometry of a table's pinned columns as custom
|
|
4
|
+
* properties on the element the returned ref is attached to: one
|
|
5
|
+
* `--table-sticky-inset-{n}` per column pinned to the start and one
|
|
6
|
+
* `--table-sticky-end-{n}` per column pinned to the end, each holding
|
|
7
|
+
* everything between it and its edge, plus `--table-sticky-total` and
|
|
8
|
+
* `--table-sticky-end-total` for each group as a whole, and
|
|
9
|
+
* `--table-scrollbar-block` / `--table-scrollbar-inline` for the space the
|
|
10
|
+
* scroller's own scrollbars take. Widths are measured off the header cells of
|
|
11
|
+
* the frame's own table and re-measured on resize.
|
|
12
|
+
*
|
|
13
|
+
* @param pinnedColumnKey - The pinned column ids joined into one string; a
|
|
14
|
+
* changed pinned set re-runs the measurement.
|
|
15
|
+
* @returns Ref for the non-scrolling frame around the table.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const frameRef = useStickyOffsets(pinnedIds.join(","));
|
|
19
|
+
* // <div ref={frameRef}> … <td style={{ insetInlineStart: "var(--table-sticky-inset-0)" }} />
|
|
20
|
+
*/
|
|
21
|
+
export declare const useStickyOffsets: (pinnedColumnKey: string) => RefObject<HTMLDivElement | null>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { c } from "react/compiler-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef } from "react";
|
|
3
|
+
// src/data-table/use-sticky-offsets.ts
|
|
4
|
+
var START_PROPERTY = "--table-sticky-inset";
|
|
5
|
+
var END_PROPERTY = "--table-sticky-end";
|
|
6
|
+
var TOTAL_PROPERTY = "--table-sticky-total";
|
|
7
|
+
var END_TOTAL_PROPERTY = "--table-sticky-end-total";
|
|
8
|
+
var SCROLLBAR_BLOCK_PROPERTY = "--table-scrollbar-block";
|
|
9
|
+
var SCROLLBAR_INLINE_PROPERTY = "--table-scrollbar-inline";
|
|
10
|
+
/**
|
|
11
|
+
* Publishes the measured geometry of a table's pinned columns as custom
|
|
12
|
+
* properties on the element the returned ref is attached to: one
|
|
13
|
+
* `--table-sticky-inset-{n}` per column pinned to the start and one
|
|
14
|
+
* `--table-sticky-end-{n}` per column pinned to the end, each holding
|
|
15
|
+
* everything between it and its edge, plus `--table-sticky-total` and
|
|
16
|
+
* `--table-sticky-end-total` for each group as a whole, and
|
|
17
|
+
* `--table-scrollbar-block` / `--table-scrollbar-inline` for the space the
|
|
18
|
+
* scroller's own scrollbars take. Widths are measured off the header cells of
|
|
19
|
+
* the frame's own table and re-measured on resize.
|
|
20
|
+
*
|
|
21
|
+
* @param pinnedColumnKey - The pinned column ids joined into one string; a
|
|
22
|
+
* changed pinned set re-runs the measurement.
|
|
23
|
+
* @returns Ref for the non-scrolling frame around the table.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* const frameRef = useStickyOffsets(pinnedIds.join(","));
|
|
27
|
+
* // <div ref={frameRef}> … <td style={{ insetInlineStart: "var(--table-sticky-inset-0)" }} />
|
|
28
|
+
*/
|
|
29
|
+
var useStickyOffsets = (pinnedColumnKey) => {
|
|
30
|
+
const $ = c(3);
|
|
31
|
+
const frameRef = useRef(null);
|
|
32
|
+
let t0;
|
|
33
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
34
|
+
t0 = () => {
|
|
35
|
+
const frame = frameRef.current;
|
|
36
|
+
if (!frame) return;
|
|
37
|
+
const scroller = frame.querySelector("[data-scroller]");
|
|
38
|
+
const table = frame.querySelector("table");
|
|
39
|
+
const headerCells = (side) => Array.from(table?.querySelectorAll(`:scope > thead [data-sticky="${side}"]`) ?? []);
|
|
40
|
+
const startCells = headerCells("start");
|
|
41
|
+
const endCells = headerCells("end");
|
|
42
|
+
const publish = () => {
|
|
43
|
+
const total = startCells.reduce((offset, cell, index) => {
|
|
44
|
+
frame.style.setProperty(`${START_PROPERTY}-${index}`, `${offset}px`);
|
|
45
|
+
return offset + cell.getBoundingClientRect().width;
|
|
46
|
+
}, 0);
|
|
47
|
+
frame.style.setProperty(TOTAL_PROPERTY, `${total}px`);
|
|
48
|
+
const endTotal = endCells.reduceRight((offset_0, cell_0, index_0) => {
|
|
49
|
+
frame.style.setProperty(`${END_PROPERTY}-${index_0}`, `${offset_0}px`);
|
|
50
|
+
return offset_0 + cell_0.getBoundingClientRect().width;
|
|
51
|
+
}, 0);
|
|
52
|
+
frame.style.setProperty(END_TOTAL_PROPERTY, `${endTotal}px`);
|
|
53
|
+
if (scroller) {
|
|
54
|
+
frame.style.setProperty(SCROLLBAR_BLOCK_PROPERTY, `${scroller.offsetHeight - scroller.clientHeight}px`);
|
|
55
|
+
frame.style.setProperty(SCROLLBAR_INLINE_PROPERTY, `${scroller.offsetWidth - scroller.clientWidth}px`);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
publish();
|
|
59
|
+
const observer = new ResizeObserver(publish);
|
|
60
|
+
for (const cell_1 of [
|
|
61
|
+
...startCells,
|
|
62
|
+
...endCells,
|
|
63
|
+
...scroller ? [scroller] : []
|
|
64
|
+
]) observer.observe(cell_1);
|
|
65
|
+
return () => {
|
|
66
|
+
observer.disconnect();
|
|
67
|
+
for (const index_1 of startCells.keys()) frame.style.removeProperty(`${START_PROPERTY}-${index_1}`);
|
|
68
|
+
for (const index_2 of endCells.keys()) frame.style.removeProperty(`${END_PROPERTY}-${index_2}`);
|
|
69
|
+
frame.style.removeProperty(TOTAL_PROPERTY);
|
|
70
|
+
frame.style.removeProperty(END_TOTAL_PROPERTY);
|
|
71
|
+
frame.style.removeProperty(SCROLLBAR_BLOCK_PROPERTY);
|
|
72
|
+
frame.style.removeProperty(SCROLLBAR_INLINE_PROPERTY);
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
$[0] = t0;
|
|
76
|
+
} else t0 = $[0];
|
|
77
|
+
let t1;
|
|
78
|
+
if ($[1] !== pinnedColumnKey) {
|
|
79
|
+
t1 = [pinnedColumnKey];
|
|
80
|
+
$[1] = pinnedColumnKey;
|
|
81
|
+
$[2] = t1;
|
|
82
|
+
} else t1 = $[2];
|
|
83
|
+
useLayoutEffect(t0, t1);
|
|
84
|
+
return frameRef;
|
|
85
|
+
};
|
|
86
|
+
export { useStickyOffsets };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./use-data-view.ts";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useDataView } from "./use-data-view.js";
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { type DefaultError, type QueryKey, type UseQueryOptions, type UseQueryResult } from "@tanstack/react-query";
|
|
2
|
+
import { type ColumnDef, type PaginationState, type ReactTable, type Row, type RowData, type SortingState } from "@tanstack/react-table";
|
|
3
|
+
import { type FilterView } from "../components/filter-bar/use-filter-view.ts";
|
|
4
|
+
import { type RowSelectionView } from "../lib/hooks/use-row-selection.ts";
|
|
5
|
+
import type { StorageAdapter } from "../lib/storage.ts";
|
|
6
|
+
import { type StoredValue } from "../lib/table-storage.ts";
|
|
7
|
+
import { type DataTableFeatures, type PageSizeOptions } from "../data-table/table-features.ts";
|
|
8
|
+
/**
|
|
9
|
+
* The current view parameters handed to the caller's `queryOptions` factory:
|
|
10
|
+
* committed filters, the debounced search, and table pagination + sorting.
|
|
11
|
+
*/
|
|
12
|
+
export type DataViewQueryParams<TFilters> = Readonly<{
|
|
13
|
+
filters: TFilters;
|
|
14
|
+
search: string;
|
|
15
|
+
pagination: PaginationState;
|
|
16
|
+
sorting: SortingState;
|
|
17
|
+
}>;
|
|
18
|
+
export type UseDataViewConfig<TFilters extends object, TRow extends RowData, TQueryData, TError, TQueryKey extends QueryKey> = Readonly<{
|
|
19
|
+
/**
|
|
20
|
+
* Stable id of this table instance, unique in the app. What the table
|
|
21
|
+
* remembers across reloads, such as its page size, is stored under it.
|
|
22
|
+
*/
|
|
23
|
+
tableId: string;
|
|
24
|
+
initialFilters: TFilters;
|
|
25
|
+
/**
|
|
26
|
+
* Where the committed filters persist, usually
|
|
27
|
+
* `tableStoredValue(tableId, "filters", shape, storage)`. The table opens on
|
|
28
|
+
* them and writes them back on every commit.
|
|
29
|
+
*/
|
|
30
|
+
storedFilters?: StoredValue<TFilters>;
|
|
31
|
+
/** The columns; a column is sortable when it sets `enableSorting`. */
|
|
32
|
+
columns: readonly ColumnDef<DataTableFeatures, TRow>[];
|
|
33
|
+
/**
|
|
34
|
+
* Query-options factory, parameterized by the committed filters, debounced
|
|
35
|
+
* search, pagination and sorting.
|
|
36
|
+
*/
|
|
37
|
+
queryOptions: (params: DataViewQueryParams<TFilters>) => UseQueryOptions<TQueryData, TError, TQueryData, TQueryKey>;
|
|
38
|
+
/** Stable application id for a row. Required for selection. */
|
|
39
|
+
getRowId: (row: TRow) => string;
|
|
40
|
+
/** Whether a row offers to expand. @default never */
|
|
41
|
+
getRowCanExpand?: (row: Row<DataTableFeatures, TRow>) => boolean;
|
|
42
|
+
/** Extracts the current page's rows from the query data. */
|
|
43
|
+
getRows: (data: TQueryData) => readonly TRow[];
|
|
44
|
+
/** Extracts the server-side total row count from the query data. */
|
|
45
|
+
getRowCount: (data: TQueryData) => number;
|
|
46
|
+
initialPagination?: PaginationState;
|
|
47
|
+
/** The page sizes the user can pick from. @default PAGE_SIZE_OPTIONS */
|
|
48
|
+
pageSizeOptions?: PageSizeOptions;
|
|
49
|
+
initialSorting?: SortingState;
|
|
50
|
+
/** Debounce for the live search, in ms. @default 300 */
|
|
51
|
+
searchDelay?: number;
|
|
52
|
+
/** Where the picked page size persists, under `tableId`. Without it, nothing persists. */
|
|
53
|
+
storage?: StorageAdapter;
|
|
54
|
+
}>;
|
|
55
|
+
export type DataView<TFilters extends object, TRow extends RowData, TQueryData, TError> = Readonly<{
|
|
56
|
+
filters: FilterView<TFilters>;
|
|
57
|
+
table: ReactTable<DataTableFeatures, TRow>;
|
|
58
|
+
query: UseQueryResult<TQueryData, TError>;
|
|
59
|
+
selection: RowSelectionView;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Orchestrates a server-driven, filterable table: `useFilterView`, a TanStack
|
|
63
|
+
* Query and a TanStack Table instance with manual pagination and sorting, plus
|
|
64
|
+
* a row selection. Pagination, sorting, expansion and selection live in the
|
|
65
|
+
* instance's own state: read `table.state`, never mirror it back through
|
|
66
|
+
* `options.state`. A new filter or search returns to the first page and clears
|
|
67
|
+
* the selection, and rows from the last settled page stay on screen when a
|
|
68
|
+
* fetch fails.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* const { filters, table, query, selection } = useDataView({
|
|
72
|
+
* tableId: "declarations",
|
|
73
|
+
* initialFilters: {},
|
|
74
|
+
* columns,
|
|
75
|
+
* queryOptions: ({ filters, search, pagination, sorting }) =>
|
|
76
|
+
* declarationsQuery({ filters, search, pagination, sorting }),
|
|
77
|
+
* getRowId: row => row.id,
|
|
78
|
+
* getRows: data => data.rows,
|
|
79
|
+
* getRowCount: data => data.totalCount,
|
|
80
|
+
* storage: localStorageAdapter,
|
|
81
|
+
* });
|
|
82
|
+
*/
|
|
83
|
+
export declare const useDataView: <TFilters extends object, TRow extends RowData, TQueryData, TError = DefaultError, TQueryKey extends QueryKey = QueryKey>({ tableId, initialFilters, storedFilters, columns, queryOptions, getRowId, getRowCanExpand, getRows, getRowCount, initialPagination, pageSizeOptions, initialSorting, searchDelay, storage, }: UseDataViewConfig<TFilters, TRow, TQueryData, TError, TQueryKey>) => DataView<TFilters, TRow, TQueryData, TError>;
|