@lucasbernardosn/react-ui 0.3.0 → 0.5.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/README.md +2 -1
- package/dist/components/buttons/button/button-variants.d.ts +1 -1
- package/dist/components/buttons/button/button-variants.js +119 -119
- package/dist/components/buttons/button/button-variants.js.map +1 -1
- package/dist/components/buttons/button/button.d.ts +1 -1
- package/dist/components/buttons/button/button.js +1 -1
- package/dist/components/buttons/button/button.js.map +1 -1
- package/dist/components/buttons/icon-button/icon-button-variants.d.ts +3 -0
- package/dist/components/buttons/icon-button/icon-button-variants.js +3 -0
- package/dist/components/buttons/icon-button/icon-button-variants.js.map +1 -1
- package/dist/components/buttons/responsive-button/responsive-button.d.ts +2 -1
- package/dist/components/buttons/responsive-button/responsive-button.js +2 -1
- package/dist/components/buttons/responsive-button/responsive-button.js.map +1 -1
- package/dist/components/buttons/toggle/index.d.ts +3 -0
- package/dist/components/buttons/toggle/index.js +2 -0
- package/dist/components/buttons/toggle/toggle-variants.d.ts +47 -0
- package/dist/components/buttons/toggle/toggle-variants.js +97 -0
- package/dist/components/buttons/toggle/toggle-variants.js.map +1 -0
- package/dist/components/buttons/toggle/toggle.d.ts +61 -0
- package/dist/components/buttons/toggle/toggle.js +69 -0
- package/dist/components/buttons/toggle/toggle.js.map +1 -0
- package/dist/components/collections/async-select/async-select-variants.js +7 -8
- package/dist/components/collections/async-select/async-select-variants.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-backdrop.d.ts +1 -2
- package/dist/components/collections/autocomplete/autocomplete-backdrop.js +1 -2
- package/dist/components/collections/autocomplete/autocomplete-backdrop.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.d.ts +4 -4
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js +4 -4
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-input-variants.d.ts +5 -5
- package/dist/components/collections/autocomplete/autocomplete-input-variants.js +8 -8
- package/dist/components/collections/autocomplete/autocomplete-input-variants.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-item-variants.d.ts +1 -1
- package/dist/components/collections/autocomplete/autocomplete-item-variants.js +1 -1
- package/dist/components/collections/autocomplete/autocomplete-item-variants.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.d.ts +4 -2
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.js +4 -2
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.js.map +1 -1
- package/dist/components/collections/autocomplete/autocomplete-separator.d.ts +1 -2
- package/dist/components/collections/autocomplete/autocomplete-separator.js +1 -2
- package/dist/components/collections/autocomplete/autocomplete-separator.js.map +1 -1
- package/dist/components/collections/command/command-collection.d.ts +14 -0
- package/dist/components/collections/command/command-collection.js +15 -0
- package/dist/components/collections/command/command-collection.js.map +1 -0
- package/dist/components/collections/command/command-empty.d.ts +14 -0
- package/dist/components/collections/command/command-empty.js +28 -0
- package/dist/components/collections/command/command-empty.js.map +1 -0
- package/dist/components/collections/command/command-footer.d.ts +12 -0
- package/dist/components/collections/command/command-footer.js +33 -0
- package/dist/components/collections/command/command-footer.js.map +1 -0
- package/dist/components/collections/command/command-group-label.d.ts +15 -0
- package/dist/components/collections/command/command-group-label.js +31 -0
- package/dist/components/collections/command/command-group-label.js.map +1 -0
- package/dist/components/collections/command/command-group.d.ts +15 -0
- package/dist/components/collections/command/command-group.js +19 -0
- package/dist/components/collections/command/command-group.js.map +1 -0
- package/dist/components/collections/command/command-input.d.ts +20 -0
- package/dist/components/collections/command/command-input.js +75 -0
- package/dist/components/collections/command/command-input.js.map +1 -0
- package/dist/components/collections/command/command-item-text.d.ts +19 -0
- package/dist/components/collections/command/command-item-text.js +32 -0
- package/dist/components/collections/command/command-item-text.js.map +1 -0
- package/dist/components/collections/command/command-item-variants.d.ts +12 -0
- package/dist/components/collections/command/command-item-variants.js +39 -0
- package/dist/components/collections/command/command-item-variants.js.map +1 -0
- package/dist/components/collections/command/command-item.d.ts +17 -0
- package/dist/components/collections/command/command-item.js +25 -0
- package/dist/components/collections/command/command-item.js.map +1 -0
- package/dist/components/collections/command/command-list.d.ts +14 -0
- package/dist/components/collections/command/command-list.js +31 -0
- package/dist/components/collections/command/command-list.js.map +1 -0
- package/dist/components/collections/command/command-loading.d.ts +17 -0
- package/dist/components/collections/command/command-loading.js +30 -0
- package/dist/components/collections/command/command-loading.js.map +1 -0
- package/dist/components/collections/command/command-root.d.ts +91 -0
- package/dist/components/collections/command/command-root.js +50 -0
- package/dist/components/collections/command/command-root.js.map +1 -0
- package/dist/components/collections/command/command-separator.d.ts +15 -0
- package/dist/components/collections/command/command-separator.js +27 -0
- package/dist/components/collections/command/command-separator.js.map +1 -0
- package/dist/components/collections/command/index.d.ts +2 -0
- package/dist/components/collections/command/index.js +2 -0
- package/dist/components/collections/command/index.parts.d.ts +19 -0
- package/dist/components/collections/command/index.parts.js +35 -0
- package/dist/components/collections/command/index.parts.js.map +1 -0
- package/dist/components/collections/command/use-command-context.d.ts +10 -0
- package/dist/components/collections/command/use-command-context.js +10 -0
- package/dist/components/collections/command/use-command-context.js.map +1 -0
- package/dist/components/collections/command/use-command-filter.d.ts +27 -0
- package/dist/components/collections/command/use-command-filter.js +32 -0
- package/dist/components/collections/command/use-command-filter.js.map +1 -0
- package/dist/components/collections/select/select-backdrop.d.ts +1 -2
- package/dist/components/collections/select/select-backdrop.js +1 -2
- package/dist/components/collections/select/select-backdrop.js.map +1 -1
- package/dist/components/collections/select/select-group-label-variants.d.ts +2 -2
- package/dist/components/collections/select/select-group-label-variants.js +2 -2
- package/dist/components/collections/select/select-group-label-variants.js.map +1 -1
- package/dist/components/collections/select/select-item-variants.d.ts +3 -2
- package/dist/components/collections/select/select-item-variants.js +3 -2
- package/dist/components/collections/select/select-item-variants.js.map +1 -1
- package/dist/components/collections/select/select-popup-variants.d.ts +1 -1
- package/dist/components/collections/select/select-popup-variants.js +1 -1
- package/dist/components/collections/select/select-popup-variants.js.map +1 -1
- package/dist/components/collections/select/select-separator.d.ts +1 -1
- package/dist/components/collections/select/select-separator.js +1 -1
- package/dist/components/collections/select/select-separator.js.map +1 -1
- package/dist/components/collections/select/select-trigger-variants.d.ts +2 -2
- package/dist/components/collections/select/select-trigger-variants.js +5 -5
- package/dist/components/collections/select/select-trigger-variants.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-node-checkbox.js +1 -1
- package/dist/components/collections/tree-view/tree-view-node-checkbox.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-node-variants.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-node-variants.js +6 -6
- package/dist/components/collections/tree-view/tree-view-node-variants.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-root.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-root.js +1 -1
- package/dist/components/collections/tree-view/tree-view-root.js.map +1 -1
- package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +5 -0
- package/dist/components/disclosure/tabs/tabs-indicator-variants.js +7 -2
- package/dist/components/disclosure/tabs/tabs-indicator-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +5 -0
- package/dist/components/disclosure/tabs/tabs-list-variants.js +7 -2
- package/dist/components/disclosure/tabs/tabs-list-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-root-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-root-variants.js +10 -8
- package/dist/components/disclosure/tabs/tabs-root-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-root.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-root.js +1 -1
- package/dist/components/disclosure/tabs/tabs-root.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +4 -0
- package/dist/components/disclosure/tabs/tabs-tab-variants.js +6 -2
- package/dist/components/disclosure/tabs/tabs-tab-variants.js.map +1 -1
- package/dist/components/display/avatar/avatar-root-variants.d.ts +1 -1
- package/dist/components/display/avatar/avatar-root-variants.js +162 -162
- package/dist/components/display/avatar/avatar-root-variants.js.map +1 -1
- package/dist/components/display/badge/badge-variants.d.ts +8 -5
- package/dist/components/display/badge/badge-variants.js +171 -166
- package/dist/components/display/badge/badge-variants.js.map +1 -1
- package/dist/components/display/badge/badge.d.ts +10 -1
- package/dist/components/display/badge/badge.js +40 -2
- package/dist/components/display/badge/badge.js.map +1 -1
- package/dist/components/display/card/card-body.d.ts +2 -2
- package/dist/components/display/card/card-body.js +3 -2
- package/dist/components/display/card/card-body.js.map +1 -1
- package/dist/components/display/card/card-description.d.ts +1 -2
- package/dist/components/display/card/card-description.js +1 -2
- package/dist/components/display/card/card-description.js.map +1 -1
- package/dist/components/display/card/card-footer.d.ts +1 -1
- package/dist/components/display/card/card-footer.js +1 -1
- package/dist/components/display/card/card-footer.js.map +1 -1
- package/dist/components/display/card/card-header.d.ts +1 -2
- package/dist/components/display/card/card-header.js +1 -2
- package/dist/components/display/card/card-header.js.map +1 -1
- package/dist/components/display/card/card-title.d.ts +1 -2
- package/dist/components/display/card/card-title.js +1 -2
- package/dist/components/display/card/card-title.js.map +1 -1
- package/dist/components/display/clipboard/clipboard-indicator.js +2 -2
- package/dist/components/display/clipboard/clipboard-indicator.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-label-variants.d.ts +7 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js +27 -0
- package/dist/components/display/data-list/data-list-item-label-variants.js.map +1 -0
- package/dist/components/display/data-list/data-list-item-label.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-label.js +9 -2
- package/dist/components/display/data-list/data-list-item-label.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.d.ts +1 -1
- package/dist/components/display/data-list/data-list-item-value-variants.js +9 -5
- package/dist/components/display/data-list/data-list-item-value-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-value.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item-value.js +4 -3
- package/dist/components/display/data-list/data-list-item-value.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-variants.d.ts +2 -6
- package/dist/components/display/data-list/data-list-item-variants.js +24 -26
- package/dist/components/display/data-list/data-list-item-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item.d.ts +2 -1
- package/dist/components/display/data-list/data-list-item.js +7 -3
- package/dist/components/display/data-list/data-list-item.js.map +1 -1
- package/dist/components/display/data-list/data-list-root-variants.d.ts +1 -2
- package/dist/components/display/data-list/data-list-root-variants.js +7 -24
- package/dist/components/display/data-list/data-list-root-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-root.d.ts +3 -2
- package/dist/components/display/data-list/data-list-root.js +8 -3
- package/dist/components/display/data-list/data-list-root.js.map +1 -1
- package/dist/components/display/data-list/use-data-list-context.d.ts +18 -7
- package/dist/components/display/data-list/use-data-list-context.js +3 -2
- package/dist/components/display/data-list/use-data-list-context.js.map +1 -1
- package/dist/components/display/status/status-variants.d.ts +2 -2
- package/dist/components/display/status/status-variants.js +6 -6
- package/dist/components/display/status/status-variants.js.map +1 -1
- package/dist/components/display/tag/tag-root-variants.d.ts +2 -3
- package/dist/components/display/tag/tag-root-variants.js +163 -164
- package/dist/components/display/tag/tag-root-variants.js.map +1 -1
- package/dist/components/feedback/alert/alert-description.d.ts +1 -2
- package/dist/components/feedback/alert/alert-description.js +2 -3
- package/dist/components/feedback/alert/alert-description.js.map +1 -1
- package/dist/components/feedback/alert/alert-indicator.d.ts +2 -2
- package/dist/components/feedback/alert/alert-indicator.js +2 -2
- package/dist/components/feedback/alert/alert-indicator.js.map +1 -1
- package/dist/components/feedback/alert/alert-root-variants.d.ts +3 -3
- package/dist/components/feedback/alert/alert-root-variants.js +28 -28
- package/dist/components/feedback/alert/alert-root-variants.js.map +1 -1
- package/dist/components/feedback/alert/alert-title.d.ts +1 -2
- package/dist/components/feedback/alert/alert-title.js +2 -3
- package/dist/components/feedback/alert/alert-title.js.map +1 -1
- package/dist/components/feedback/meter/index.d.ts +2 -0
- package/dist/components/feedback/meter/index.js +2 -0
- package/dist/components/feedback/meter/index.parts.d.ts +12 -0
- package/dist/components/feedback/meter/index.parts.js +18 -0
- package/dist/components/feedback/meter/index.parts.js.map +1 -0
- package/dist/components/feedback/meter/meter-indicator.d.ts +17 -0
- package/dist/components/feedback/meter/meter-indicator.js +31 -0
- package/dist/components/feedback/meter/meter-indicator.js.map +1 -0
- package/dist/components/feedback/meter/meter-label.d.ts +13 -0
- package/dist/components/feedback/meter/meter-label.js +20 -0
- package/dist/components/feedback/meter/meter-label.js.map +1 -0
- package/dist/components/feedback/meter/meter-root-variants.d.ts +14 -0
- package/dist/components/feedback/meter/meter-root-variants.js +42 -0
- package/dist/components/feedback/meter/meter-root-variants.js.map +1 -0
- package/dist/components/feedback/meter/meter-root.d.ts +37 -0
- package/dist/components/feedback/meter/meter-root.js +51 -0
- package/dist/components/feedback/meter/meter-root.js.map +1 -0
- package/dist/components/feedback/meter/meter-track-variants.d.ts +6 -0
- package/dist/components/feedback/meter/meter-track-variants.js +22 -0
- package/dist/components/feedback/meter/meter-track-variants.js.map +1 -0
- package/dist/components/feedback/meter/meter-track.d.ts +13 -0
- package/dist/components/feedback/meter/meter-track.js +23 -0
- package/dist/components/feedback/meter/meter-track.js.map +1 -0
- package/dist/components/feedback/meter/meter-value.d.ts +14 -0
- package/dist/components/feedback/meter/meter-value.js +25 -0
- package/dist/components/feedback/meter/meter-value.js.map +1 -0
- package/dist/components/feedback/meter/use-meter-context.d.ts +23 -0
- package/dist/components/feedback/meter/use-meter-context.js +14 -0
- package/dist/components/feedback/meter/use-meter-context.js.map +1 -0
- package/dist/components/feedback/progress/index.d.ts +2 -0
- package/dist/components/feedback/progress/index.js +2 -0
- package/dist/components/feedback/progress/index.parts.d.ts +12 -0
- package/dist/components/feedback/progress/index.parts.js +18 -0
- package/dist/components/feedback/progress/index.parts.js.map +1 -0
- package/dist/components/feedback/progress/progress-indicator.d.ts +16 -0
- package/dist/components/feedback/progress/progress-indicator.js +34 -0
- package/dist/components/feedback/progress/progress-indicator.js.map +1 -0
- package/dist/components/feedback/progress/progress-label.d.ts +13 -0
- package/dist/components/feedback/progress/progress-label.js +20 -0
- package/dist/components/feedback/progress/progress-label.js.map +1 -0
- package/dist/components/feedback/progress/progress-root-variants.d.ts +15 -0
- package/dist/components/feedback/progress/progress-root-variants.js +43 -0
- package/dist/components/feedback/progress/progress-root-variants.js.map +1 -0
- package/dist/components/feedback/progress/progress-root.d.ts +34 -0
- package/dist/components/feedback/progress/progress-root.js +48 -0
- package/dist/components/feedback/progress/progress-root.js.map +1 -0
- package/dist/components/feedback/progress/progress-track-variants.d.ts +6 -0
- package/dist/components/feedback/progress/progress-track-variants.js +22 -0
- package/dist/components/feedback/progress/progress-track-variants.js.map +1 -0
- package/dist/components/feedback/progress/progress-track.d.ts +13 -0
- package/dist/components/feedback/progress/progress-track.js +23 -0
- package/dist/components/feedback/progress/progress-track.js.map +1 -0
- package/dist/components/feedback/progress/progress-value.d.ts +14 -0
- package/dist/components/feedback/progress/progress-value.js +25 -0
- package/dist/components/feedback/progress/progress-value.js.map +1 -0
- package/dist/components/feedback/progress/use-progress-context.d.ts +23 -0
- package/dist/components/feedback/progress/use-progress-context.js +14 -0
- package/dist/components/feedback/progress/use-progress-context.js.map +1 -0
- package/dist/components/feedback/spinner/spinner-variants.d.ts +1 -1
- package/dist/components/feedback/spinner/spinner-variants.js +1 -1
- package/dist/components/feedback/spinner/spinner-variants.js.map +1 -1
- package/dist/components/feedback/spinner/spinner.d.ts +1 -1
- package/dist/components/feedback/spinner/spinner.js +1 -1
- package/dist/components/feedback/spinner/spinner.js.map +1 -1
- package/dist/components/feedback/toast/toast-description.d.ts +2 -2
- package/dist/components/feedback/toast/toast-description.js +3 -3
- package/dist/components/feedback/toast/toast-description.js.map +1 -1
- package/dist/components/feedback/toast/toast-indicator.d.ts +4 -4
- package/dist/components/feedback/toast/toast-indicator.js +4 -4
- package/dist/components/feedback/toast/toast-indicator.js.map +1 -1
- package/dist/components/feedback/toast/toast-root-variants.d.ts +1 -1
- package/dist/components/feedback/toast/toast-root-variants.js +15 -15
- package/dist/components/feedback/toast/toast-root-variants.js.map +1 -1
- package/dist/components/feedback/toast/toast-title.d.ts +3 -3
- package/dist/components/feedback/toast/toast-title.js +4 -4
- package/dist/components/feedback/toast/toast-title.js.map +1 -1
- package/dist/components/feedback/toast/toast-viewport-variants.d.ts +1 -1
- package/dist/components/fields/checkbox/checkbox-root-variants.d.ts +3 -1
- package/dist/components/fields/checkbox/checkbox-root-variants.js +11 -9
- package/dist/components/fields/checkbox/checkbox-root-variants.js.map +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js +3 -3
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js.map +1 -1
- package/dist/components/fields/field/field-root.d.ts +2 -1
- package/dist/components/fields/field/field-root.js +2 -1
- package/dist/components/fields/field/field-root.js.map +1 -1
- package/dist/components/fields/input/input-variants.d.ts +4 -3
- package/dist/components/fields/input/input-variants.js +7 -6
- package/dist/components/fields/input/input-variants.js.map +1 -1
- package/dist/components/fields/input-group/index.d.ts +3 -0
- package/dist/components/fields/input-group/index.js +2 -0
- package/dist/components/fields/input-group/input-group-variants.d.ts +81 -0
- package/dist/components/fields/input-group/input-group-variants.js +212 -0
- package/dist/components/fields/input-group/input-group-variants.js.map +1 -0
- package/dist/components/fields/input-group/input-group.d.ts +88 -0
- package/dist/components/fields/input-group/input-group.js +164 -0
- package/dist/components/fields/input-group/input-group.js.map +1 -0
- package/dist/components/fields/number-input/number-input-variants.js +3 -3
- package/dist/components/fields/number-input/number-input-variants.js.map +1 -1
- package/dist/components/fields/pattern-input/pattern-input-variants.js +3 -3
- package/dist/components/fields/pattern-input/pattern-input-variants.js.map +1 -1
- package/dist/components/fields/radio/index.d.ts +2 -0
- package/dist/components/fields/radio/index.js +2 -0
- package/dist/components/fields/radio/index.parts.d.ts +10 -0
- package/dist/components/fields/radio/index.parts.js +14 -0
- package/dist/components/fields/radio/index.parts.js.map +1 -0
- package/dist/components/fields/radio/radio-group.d.ts +40 -0
- package/dist/components/fields/radio/radio-group.js +45 -0
- package/dist/components/fields/radio/radio-group.js.map +1 -0
- package/dist/components/fields/radio/radio-indicator.d.ts +14 -0
- package/dist/components/fields/radio/radio-indicator.js +33 -0
- package/dist/components/fields/radio/radio-indicator.js.map +1 -0
- package/dist/components/fields/radio/radio-root-variants.d.ts +41 -0
- package/dist/components/fields/radio/radio-root-variants.js +93 -0
- package/dist/components/fields/radio/radio-root-variants.js.map +1 -0
- package/dist/components/fields/radio/radio-root.d.ts +27 -0
- package/dist/components/fields/radio/radio-root.js +40 -0
- package/dist/components/fields/radio/radio-root.js.map +1 -0
- package/dist/components/fields/radio-card/index.d.ts +2 -0
- package/dist/components/fields/radio-card/index.js +2 -0
- package/dist/components/fields/radio-card/index.parts.d.ts +12 -0
- package/dist/components/fields/radio-card/index.parts.js +18 -0
- package/dist/components/fields/radio-card/index.parts.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-description.d.ts +14 -0
- package/dist/components/fields/radio-card/radio-card-description.js +34 -0
- package/dist/components/fields/radio-card/radio-card-description.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-group.d.ts +41 -0
- package/dist/components/fields/radio-card/radio-card-group.js +51 -0
- package/dist/components/fields/radio-card/radio-card-group.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-indicator.d.ts +24 -0
- package/dist/components/fields/radio-card/radio-card-indicator.js +67 -0
- package/dist/components/fields/radio-card/radio-card-indicator.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-item-variants.d.ts +25 -0
- package/dist/components/fields/radio-card/radio-card-item-variants.js +83 -0
- package/dist/components/fields/radio-card/radio-card-item-variants.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-item.d.ts +33 -0
- package/dist/components/fields/radio-card/radio-card-item.js +60 -0
- package/dist/components/fields/radio-card/radio-card-item.js.map +1 -0
- package/dist/components/fields/radio-card/radio-card-title.d.ts +14 -0
- package/dist/components/fields/radio-card/radio-card-title.js +34 -0
- package/dist/components/fields/radio-card/radio-card-title.js.map +1 -0
- package/dist/components/fields/radio-card/use-radio-card-context.d.ts +25 -0
- package/dist/components/fields/radio-card/use-radio-card-context.js +14 -0
- package/dist/components/fields/radio-card/use-radio-card-context.js.map +1 -0
- package/dist/components/fields/radio-card/use-radio-card-item-context.d.ts +12 -0
- package/dist/components/fields/radio-card/use-radio-card-item-context.js +10 -0
- package/dist/components/fields/radio-card/use-radio-card-item-context.js.map +1 -0
- package/dist/components/fields/segmented-control/index.d.ts +2 -0
- package/dist/components/fields/segmented-control/index.js +2 -0
- package/dist/components/fields/segmented-control/index.parts.d.ts +10 -0
- package/dist/components/fields/segmented-control/index.parts.js +14 -0
- package/dist/components/fields/segmented-control/index.parts.js.map +1 -0
- package/dist/components/fields/segmented-control/segmented-control-indicator.d.ts +21 -0
- package/dist/components/fields/segmented-control/segmented-control-indicator.js +50 -0
- package/dist/components/fields/segmented-control/segmented-control-indicator.js.map +1 -0
- package/dist/components/fields/segmented-control/segmented-control-item-variants.d.ts +16 -0
- package/dist/components/fields/segmented-control/segmented-control-item-variants.js +72 -0
- package/dist/components/fields/segmented-control/segmented-control-item-variants.js.map +1 -0
- package/dist/components/fields/segmented-control/segmented-control-item.d.ts +17 -0
- package/dist/components/fields/segmented-control/segmented-control-item.js +29 -0
- package/dist/components/fields/segmented-control/segmented-control-item.js.map +1 -0
- package/dist/components/fields/segmented-control/segmented-control-root-variants.d.ts +21 -0
- package/dist/components/fields/segmented-control/segmented-control-root-variants.js +66 -0
- package/dist/components/fields/segmented-control/segmented-control-root-variants.js.map +1 -0
- package/dist/components/fields/segmented-control/segmented-control-root.d.ts +41 -0
- package/dist/components/fields/segmented-control/segmented-control-root.js +65 -0
- package/dist/components/fields/segmented-control/segmented-control-root.js.map +1 -0
- package/dist/components/fields/segmented-control/use-segmented-control-context.d.ts +33 -0
- package/dist/components/fields/segmented-control/use-segmented-control-context.js +15 -0
- package/dist/components/fields/segmented-control/use-segmented-control-context.js.map +1 -0
- package/dist/components/fields/segmented-control/use-segmented-control-indicator.d.ts +22 -0
- package/dist/components/fields/segmented-control/use-segmented-control-indicator.js +67 -0
- package/dist/components/fields/segmented-control/use-segmented-control-indicator.js.map +1 -0
- package/dist/components/fields/switch/switch-root-variants.d.ts +1 -1
- package/dist/components/fields/switch/switch-root-variants.js +3 -3
- package/dist/components/fields/switch/switch-root-variants.js.map +1 -1
- package/dist/components/fields/textarea/textarea-variants.js +3 -3
- package/dist/components/fields/textarea/textarea-variants.js.map +1 -1
- package/dist/components/layout/center-absolute/center-absolute-variants.d.ts +1 -1
- package/dist/components/layout/group/group-variants.d.ts +43 -0
- package/dist/components/layout/group/group-variants.js +72 -0
- package/dist/components/layout/group/group-variants.js.map +1 -0
- package/dist/components/layout/group/group.d.ts +38 -0
- package/dist/components/layout/group/group.js +55 -0
- package/dist/components/layout/group/group.js.map +1 -0
- package/dist/components/layout/group/index.d.ts +3 -0
- package/dist/components/layout/group/index.js +2 -0
- package/dist/components/layout/scroll-area/scroll-area-root.d.ts +16 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js +6 -3
- package/dist/components/layout/scroll-area/scroll-area-root.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts +3 -0
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js +9 -2
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts +5 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.js +15 -5
- package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts +1 -1
- package/dist/components/layout/separator/separator-variants.d.ts +1 -1
- package/dist/components/layout/separator/separator-variants.js +1 -1
- package/dist/components/layout/separator/separator-variants.js.map +1 -1
- package/dist/components/overlays/action-bar/action-bar-selection-trigger.js +2 -2
- package/dist/components/overlays/action-bar/action-bar-selection-trigger.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.d.ts +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts +5 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js +8 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-description.d.ts +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-description.js +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-description.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts +6 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +9 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +9 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js +19 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +87 -28
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +120 -55
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts +24 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js +31 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator-variants.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +25 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +51 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +4 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +13 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +7 -6
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js +2 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -4
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js +48 -5
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +3 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js +4 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-viewport.d.ts +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js +1 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-viewport.js.map +1 -1
- package/dist/components/overlays/alert-dialog/index.parts.d.ts +4 -3
- package/dist/components/overlays/alert-dialog/index.parts.js +3 -1
- package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-backdrop.d.ts +1 -2
- package/dist/components/overlays/dialog/dialog-backdrop.js +1 -2
- package/dist/components/overlays/dialog/dialog-backdrop.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-body.d.ts +5 -5
- package/dist/components/overlays/dialog/dialog-body.js +6 -5
- package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-description.d.ts +4 -4
- package/dist/components/overlays/dialog/dialog-description.js +4 -4
- package/dist/components/overlays/dialog/dialog-description.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-footer.d.ts +5 -6
- package/dist/components/overlays/dialog/dialog-footer.js +5 -6
- package/dist/components/overlays/dialog/dialog-footer.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-header.d.ts +5 -6
- package/dist/components/overlays/dialog/dialog-header.js +5 -6
- package/dist/components/overlays/dialog/dialog-header.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +5 -5
- package/dist/components/overlays/dialog/dialog-popup-variants.js +6 -7
- package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-title.d.ts +5 -5
- package/dist/components/overlays/dialog/dialog-title.js +5 -5
- package/dist/components/overlays/dialog/dialog-title.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-viewport.d.ts +2 -2
- package/dist/components/overlays/dialog/dialog-viewport.js +2 -2
- package/dist/components/overlays/dialog/dialog-viewport.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-backdrop.d.ts +1 -1
- package/dist/components/overlays/drawer/drawer-backdrop.js +1 -1
- package/dist/components/overlays/drawer/drawer-backdrop.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-body.d.ts +3 -3
- package/dist/components/overlays/drawer/drawer-body.js +4 -3
- package/dist/components/overlays/drawer/drawer-body.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-description.d.ts +1 -2
- package/dist/components/overlays/drawer/drawer-description.js +1 -2
- package/dist/components/overlays/drawer/drawer-description.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-footer.d.ts +1 -2
- package/dist/components/overlays/drawer/drawer-footer.js +1 -2
- package/dist/components/overlays/drawer/drawer-footer.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-header.d.ts +1 -2
- package/dist/components/overlays/drawer/drawer-header.js +1 -2
- package/dist/components/overlays/drawer/drawer-header.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-popup-variants.d.ts +1 -1
- package/dist/components/overlays/drawer/drawer-popup-variants.js +1 -2
- package/dist/components/overlays/drawer/drawer-popup-variants.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-title.d.ts +1 -2
- package/dist/components/overlays/drawer/drawer-title.js +1 -2
- package/dist/components/overlays/drawer/drawer-title.js.map +1 -1
- package/dist/components/overlays/menu/create-handle.d.ts +10 -0
- package/dist/components/overlays/menu/create-handle.js +11 -0
- package/dist/components/overlays/menu/create-handle.js.map +1 -0
- package/dist/components/overlays/menu/index.parts.d.ts +21 -3
- package/dist/components/overlays/menu/index.parts.js +38 -2
- package/dist/components/overlays/menu/index.parts.js.map +1 -1
- package/dist/components/overlays/menu/menu-arrow.d.ts +17 -0
- package/dist/components/overlays/menu/menu-arrow.js +48 -0
- package/dist/components/overlays/menu/menu-arrow.js.map +1 -0
- package/dist/components/overlays/menu/menu-backdrop.d.ts +16 -0
- package/dist/components/overlays/menu/menu-backdrop.js +36 -0
- package/dist/components/overlays/menu/menu-backdrop.js.map +1 -0
- package/dist/components/overlays/menu/menu-checkbox-item-indicator.d.ts +16 -0
- package/dist/components/overlays/menu/menu-checkbox-item-indicator.js +27 -0
- package/dist/components/overlays/menu/menu-checkbox-item-indicator.js.map +1 -0
- package/dist/components/overlays/menu/menu-checkbox-item.d.ts +24 -0
- package/dist/components/overlays/menu/menu-checkbox-item.js +31 -0
- package/dist/components/overlays/menu/menu-checkbox-item.js.map +1 -0
- package/dist/components/overlays/menu/menu-clear.d.ts +20 -0
- package/dist/components/overlays/menu/menu-clear.js +45 -0
- package/dist/components/overlays/menu/menu-clear.js.map +1 -0
- package/dist/components/overlays/menu/menu-empty.d.ts +18 -0
- package/dist/components/overlays/menu/menu-empty.js +32 -0
- package/dist/components/overlays/menu/menu-empty.js.map +1 -0
- package/dist/components/overlays/menu/menu-filter-provider.d.ts +43 -0
- package/dist/components/overlays/menu/menu-filter-provider.js +42 -0
- package/dist/components/overlays/menu/menu-filter-provider.js.map +1 -0
- package/dist/components/overlays/menu/menu-group-label.d.ts +1 -1
- package/dist/components/overlays/menu/menu-group-label.js +1 -1
- package/dist/components/overlays/menu/menu-group-label.js.map +1 -1
- package/dist/components/overlays/menu/menu-input.d.ts +22 -0
- package/dist/components/overlays/menu/menu-input.js +58 -0
- package/dist/components/overlays/menu/menu-input.js.map +1 -0
- package/dist/components/overlays/menu/menu-item-variants.d.ts +2 -2
- package/dist/components/overlays/menu/menu-item-variants.js +7 -7
- package/dist/components/overlays/menu/menu-item-variants.js.map +1 -1
- package/dist/components/overlays/menu/menu-link-item.d.ts +19 -0
- package/dist/components/overlays/menu/menu-link-item.js +28 -0
- package/dist/components/overlays/menu/menu-link-item.js.map +1 -0
- package/dist/components/overlays/menu/menu-list.d.ts +25 -0
- package/dist/components/overlays/menu/menu-list.js +43 -0
- package/dist/components/overlays/menu/menu-list.js.map +1 -0
- package/dist/components/overlays/menu/menu-popup.d.ts +7 -6
- package/dist/components/overlays/menu/menu-popup.js +9 -9
- package/dist/components/overlays/menu/menu-popup.js.map +1 -1
- package/dist/components/overlays/menu/menu-positioner.d.ts +5 -1
- package/dist/components/overlays/menu/menu-positioner.js +11 -2
- package/dist/components/overlays/menu/menu-positioner.js.map +1 -1
- package/dist/components/overlays/menu/menu-radio-group.d.ts +17 -0
- package/dist/components/overlays/menu/menu-radio-group.js +22 -0
- package/dist/components/overlays/menu/menu-radio-group.js.map +1 -0
- package/dist/components/overlays/menu/menu-radio-item-indicator.d.ts +16 -0
- package/dist/components/overlays/menu/menu-radio-item-indicator.js +34 -0
- package/dist/components/overlays/menu/menu-radio-item-indicator.js.map +1 -0
- package/dist/components/overlays/menu/menu-radio-item.d.ts +21 -0
- package/dist/components/overlays/menu/menu-radio-item.js +30 -0
- package/dist/components/overlays/menu/menu-radio-item.js.map +1 -0
- package/dist/components/overlays/menu/menu-root.d.ts +15 -6
- package/dist/components/overlays/menu/menu-root.js +15 -6
- package/dist/components/overlays/menu/menu-root.js.map +1 -1
- package/dist/components/overlays/menu/menu-separator.d.ts +6 -1
- package/dist/components/overlays/menu/menu-separator.js +6 -1
- package/dist/components/overlays/menu/menu-separator.js.map +1 -1
- package/dist/components/overlays/menu/menu-submenu-root.d.ts +39 -0
- package/dist/components/overlays/menu/menu-submenu-root.js +42 -0
- package/dist/components/overlays/menu/menu-submenu-root.js.map +1 -0
- package/dist/components/overlays/menu/menu-submenu-trigger.d.ts +21 -0
- package/dist/components/overlays/menu/menu-submenu-trigger.js +40 -0
- package/dist/components/overlays/menu/menu-submenu-trigger.js.map +1 -0
- package/dist/components/overlays/menu/menu-viewport.d.ts +19 -0
- package/dist/components/overlays/menu/menu-viewport.js +51 -0
- package/dist/components/overlays/menu/menu-viewport.js.map +1 -0
- package/dist/components/overlays/menu/use-filter.d.ts +19 -0
- package/dist/components/overlays/menu/use-filter.js +19 -0
- package/dist/components/overlays/menu/use-filter.js.map +1 -0
- package/dist/components/overlays/menu/use-menu-submenu-context.d.ts +9 -0
- package/dist/components/overlays/menu/use-menu-submenu-context.js +12 -0
- package/dist/components/overlays/menu/use-menu-submenu-context.js.map +1 -0
- package/dist/components/overlays/popover/popover-arrow.d.ts +2 -2
- package/dist/components/overlays/popover/popover-arrow.js +2 -2
- package/dist/components/overlays/popover/popover-arrow.js.map +1 -1
- package/dist/components/overlays/popover/popover-backdrop.d.ts +5 -4
- package/dist/components/overlays/popover/popover-backdrop.js +5 -4
- package/dist/components/overlays/popover/popover-backdrop.js.map +1 -1
- package/dist/components/overlays/popover/popover-popup-variants.d.ts +3 -2
- package/dist/components/overlays/popover/popover-popup-variants.js +3 -2
- package/dist/components/overlays/popover/popover-popup-variants.js.map +1 -1
- package/dist/components/overlays/popover/popover-positioner.d.ts +4 -3
- package/dist/components/overlays/popover/popover-positioner.js +4 -3
- package/dist/components/overlays/popover/popover-positioner.js.map +1 -1
- package/dist/components/overlays/popover/popover-viewport.d.ts +4 -4
- package/dist/components/overlays/popover/popover-viewport.js +4 -4
- package/dist/components/overlays/popover/popover-viewport.js.map +1 -1
- package/dist/components/typography/highlight/highlight.d.ts +35 -0
- package/dist/components/typography/highlight/highlight.js +43 -0
- package/dist/components/typography/highlight/highlight.js.map +1 -0
- package/dist/components/typography/highlight/index.d.ts +2 -0
- package/dist/components/typography/highlight/index.js +2 -0
- package/dist/components/typography/kbd/kbd-variants.d.ts +1 -1
- package/dist/components/typography/kbd/kbd-variants.js +9 -9
- package/dist/components/typography/kbd/kbd-variants.js.map +1 -1
- package/dist/components/typography/link/index.d.ts +3 -0
- package/dist/components/typography/link/index.js +2 -0
- package/dist/components/typography/link/link-variants.d.ts +33 -0
- package/dist/components/typography/link/link-variants.js +91 -0
- package/dist/components/typography/link/link-variants.js.map +1 -0
- package/dist/components/typography/link/link.d.ts +50 -0
- package/dist/components/typography/link/link.js +74 -0
- package/dist/components/typography/link/link.js.map +1 -0
- package/dist/components/typography/mark/mark-variants.d.ts +8 -2
- package/dist/components/typography/mark/mark-variants.js +25 -21
- package/dist/components/typography/mark/mark-variants.js.map +1 -1
- package/dist/components/typography/pre/pre-variants.d.ts +1 -1
- package/dist/components/typography/pre/pre-variants.js +25 -25
- package/dist/components/typography/pre/pre-variants.js.map +1 -1
- package/dist/types/color-scheme.d.ts +2 -2
- package/package.json +17 -5
- package/src/theme/theme.css +1268 -1228
|
@@ -1,64 +1,117 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../../
|
|
1
|
+
import { AlertVariants } from "../../feedback/alert/use-alert-context.js";
|
|
2
|
+
import { index_parts_d_exports } from "../../feedback/alert/index.parts.js";
|
|
3
|
+
import "../../feedback/alert/index.js";
|
|
3
4
|
import { AlertDialogVariants } from "./use-alert-dialog-context.js";
|
|
4
5
|
import React from "react";
|
|
5
6
|
//#region src/components/overlays/alert-dialog/alert-dialog-imperative.d.ts
|
|
6
|
-
/**
|
|
7
|
-
* Rótulo e visual de um botão do alerta, no vocabulário do `Button`. Clique, `loading` e
|
|
8
|
-
* `disabled` ficam com o alerta.
|
|
9
|
-
*/
|
|
10
|
-
export type AlertDialogButtonOptions = Pick<ButtonProps, 'children' | 'colorScheme' | 'variant'>;
|
|
11
7
|
export type AlertDialogAlertOptions = {
|
|
12
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* O que aconteceu, no vocabulário do `Alert`: decide a cor e o ícone padrão do indicador, e só
|
|
10
|
+
* eles.
|
|
11
|
+
*
|
|
12
|
+
* @default 'info'
|
|
13
|
+
*/
|
|
14
|
+
status?: NonNullable<AlertVariants['status']>;
|
|
15
|
+
/** Diz o que aconteceu ("Não foi possível emitir a nota"). */
|
|
13
16
|
title: React.ReactNode;
|
|
14
17
|
/**
|
|
15
|
-
*
|
|
16
|
-
* abriu, e não muda depois de aberto.
|
|
18
|
+
* O motivo ou o que fazer em seguida. Só para exibição: renderiza no `AlertDialog.Outlet`, sem
|
|
19
|
+
* o contexto de quem abriu, e não muda depois de aberto.
|
|
17
20
|
*/
|
|
18
21
|
description?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Informação técnica (código de erro, resposta do servidor), num bloco "Detalhes técnicos"
|
|
24
|
+
* recolhido abaixo da descrição.
|
|
25
|
+
*/
|
|
26
|
+
details?: React.ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Troca só o desenho do indicador; a cor continua a do `status`. Um ícone próprio entra pelo
|
|
29
|
+
* `Icon` da lib, para ter o mesmo traço (`<Icon render={<TruckIcon />} />`).
|
|
30
|
+
*/
|
|
31
|
+
icon?: React.ReactNode;
|
|
32
|
+
/**
|
|
33
|
+
* Rótulo do botão que fecha o alerta.
|
|
34
|
+
*
|
|
35
|
+
* @default 'OK'
|
|
36
|
+
*/
|
|
37
|
+
okLabel?: React.ReactNode;
|
|
19
38
|
/**
|
|
20
39
|
* Largura do popup, repassada ao `AlertDialog.Root`.
|
|
21
40
|
*
|
|
22
41
|
* @default 'md'
|
|
23
42
|
*/
|
|
24
43
|
size?: AlertDialogVariants['size'];
|
|
44
|
+
};
|
|
45
|
+
export type AlertDialogConfirmOptions = {
|
|
46
|
+
/** A pergunta ("Excluir a nota 4821?"). */
|
|
47
|
+
title: React.ReactNode;
|
|
25
48
|
/**
|
|
26
|
-
*
|
|
49
|
+
* A consequência da ação ("A exclusão não pode ser desfeita."). Quase sempre deve estar
|
|
50
|
+
* presente: sem ela, o título é a única informação para decidir. Só para exibição: renderiza no
|
|
51
|
+
* `AlertDialog.Outlet`, sem o contexto de quem abriu, e não muda depois de aberto.
|
|
52
|
+
*/
|
|
53
|
+
description?: React.ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* Ação que destrói ou não se desfaz. O botão de confirmar fica vermelho (`red`, e não `accent`) e
|
|
56
|
+
* o foco abre no "Cancelar", para um `Enter` dado sem ler não confirmar.
|
|
27
57
|
*
|
|
28
|
-
* @default
|
|
58
|
+
* @default false
|
|
29
59
|
*/
|
|
30
|
-
|
|
31
|
-
};
|
|
32
|
-
export type AlertDialogConfirmOptions = AlertDialogAlertOptions & {
|
|
60
|
+
destructive?: boolean;
|
|
33
61
|
/**
|
|
34
|
-
*
|
|
62
|
+
* Rótulo do botão de confirmar: o verbo da ação ("Excluir", "Cancelar a nota"), não
|
|
63
|
+
* "Confirmar" nem "Sim". Sem destrutiva, o foco abre nele.
|
|
64
|
+
*/
|
|
65
|
+
confirmLabel: React.ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* Rótulo do botão de cancelar, antes do de confirmar.
|
|
35
68
|
*
|
|
36
|
-
* @default
|
|
69
|
+
* @default 'Cancelar'
|
|
37
70
|
*/
|
|
38
|
-
|
|
71
|
+
cancelLabel?: React.ReactNode;
|
|
39
72
|
/**
|
|
40
73
|
* Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o
|
|
41
74
|
* alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se
|
|
42
|
-
* ela lançar, o alerta continua aberto com
|
|
43
|
-
* de novo ou cancelar. Sem ela, o alerta só pergunta.
|
|
75
|
+
* ela lançar, o alerta continua aberto, com os botões de volta ao normal e sem mensagem, para
|
|
76
|
+
* tentar de novo ou cancelar. Sem ela, o alerta só pergunta.
|
|
44
77
|
*/
|
|
45
78
|
onConfirm?: () => unknown;
|
|
79
|
+
/**
|
|
80
|
+
* Chamada com o que o `onConfirm` lançou, com o alerta ainda aberto. A lib não mostra o erro:
|
|
81
|
+
* mostrá-lo é com quem chama, por um handler global (o `onError` de um cliente de queries) ou por
|
|
82
|
+
* esta opção. Um `try/catch` dentro do `onConfirm` que não relança faz o alerta fechar como
|
|
83
|
+
* sucesso. Sem `onError` e sem handler global, a falha não aparece para o usuário.
|
|
84
|
+
*/
|
|
85
|
+
onError?: (error: unknown) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Largura do popup, repassada ao `AlertDialog.Root`.
|
|
88
|
+
*
|
|
89
|
+
* @default 'md'
|
|
90
|
+
*/
|
|
91
|
+
size?: AlertDialogVariants['size'];
|
|
46
92
|
};
|
|
47
93
|
/**
|
|
48
|
-
* Abre um alerta com um botão
|
|
49
|
-
*
|
|
50
|
-
*
|
|
94
|
+
* Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele
|
|
95
|
+
* fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os
|
|
96
|
+
* "Detalhes técnicos" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,
|
|
97
|
+
* mas só aparece com um `AlertDialog.Outlet` montado.
|
|
51
98
|
*
|
|
52
99
|
* @example
|
|
53
100
|
* ```ts
|
|
54
|
-
* await AlertDialog.alert({
|
|
101
|
+
* await AlertDialog.alert({
|
|
102
|
+
* status: 'error',
|
|
103
|
+
* title: 'Não foi possível emitir a nota',
|
|
104
|
+
* description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',
|
|
105
|
+
* details: 'Rejeição 108: serviço paralisado momentaneamente.',
|
|
106
|
+
* });
|
|
55
107
|
* ```
|
|
56
108
|
*/
|
|
57
109
|
export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Promise<void>;
|
|
58
110
|
/**
|
|
59
|
-
* Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se
|
|
60
|
-
* fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar.
|
|
61
|
-
*
|
|
111
|
+
* Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se
|
|
112
|
+
* cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na
|
|
113
|
+
* ação; com `destructive`, abre no "Cancelar". Pode ser chamado de qualquer lugar, inclusive de
|
|
114
|
+
* fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
|
|
62
115
|
*
|
|
63
116
|
* Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o
|
|
64
117
|
* AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.
|
|
@@ -68,8 +121,14 @@ export declare const alertDialogAlert: (options: AlertDialogAlertOptions) => Pro
|
|
|
68
121
|
* const confirmed = await AlertDialog.confirm({
|
|
69
122
|
* title: 'Excluir a nota 4821?',
|
|
70
123
|
* description: 'A exclusão não pode ser desfeita.',
|
|
71
|
-
*
|
|
124
|
+
* confirmLabel: 'Excluir',
|
|
125
|
+
* destructive: true,
|
|
72
126
|
* onConfirm: () => deleteInvoice(4821),
|
|
127
|
+
* onError: () =>
|
|
128
|
+
* AlertDialog.alert({
|
|
129
|
+
* status: 'error',
|
|
130
|
+
* title: 'Não foi possível excluir a nota',
|
|
131
|
+
* }),
|
|
73
132
|
* });
|
|
74
133
|
* ```
|
|
75
134
|
*/
|
|
@@ -1,48 +1,58 @@
|
|
|
1
|
+
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
1
2
|
import { Button } from "../../buttons/button/button.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { AlertTitle } from "../../feedback/alert/alert-title.js";
|
|
3
|
+
import { CollapsibleIndicator } from "../../disclosure/collapsible/collapsible-indicator.js";
|
|
4
|
+
import { CollapsiblePanel } from "../../disclosure/collapsible/collapsible-panel.js";
|
|
5
|
+
import { CollapsibleRoot } from "../../disclosure/collapsible/collapsible-root.js";
|
|
6
|
+
import { CollapsibleTrigger } from "../../disclosure/collapsible/collapsible-trigger.js";
|
|
7
7
|
import { AlertDialogBackdrop } from "./alert-dialog-backdrop.js";
|
|
8
8
|
import { AlertDialogBody } from "./alert-dialog-body.js";
|
|
9
9
|
import { AlertDialogClose } from "./alert-dialog-close.js";
|
|
10
10
|
import { AlertDialogDescription } from "./alert-dialog-description.js";
|
|
11
11
|
import { AlertDialogFooter } from "./alert-dialog-footer.js";
|
|
12
12
|
import { AlertDialogHeader } from "./alert-dialog-header.js";
|
|
13
|
+
import { AlertDialogIndicator } from "./alert-dialog-indicator.js";
|
|
13
14
|
import { AlertDialogPopup } from "./alert-dialog-popup.js";
|
|
14
15
|
import { AlertDialogPortal } from "./alert-dialog-portal.js";
|
|
15
16
|
import { AlertDialogRoot } from "./alert-dialog-root.js";
|
|
16
17
|
import { alertDialogStore } from "./alert-dialog-store.js";
|
|
17
18
|
import { AlertDialogTitle } from "./alert-dialog-title.js";
|
|
18
19
|
import { AlertDialogViewport } from "./alert-dialog-viewport.js";
|
|
19
|
-
import { useState } from "react";
|
|
20
|
+
import { useRef, useState } from "react";
|
|
20
21
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
21
22
|
import { useIsoLayoutEffect } from "@base-ui/utils/useIsoLayoutEffect";
|
|
22
23
|
//#region src/components/overlays/alert-dialog/alert-dialog-imperative.tsx
|
|
23
24
|
/**
|
|
24
|
-
* Abre um alerta com um botão
|
|
25
|
-
*
|
|
26
|
-
*
|
|
25
|
+
* Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele
|
|
26
|
+
* fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os
|
|
27
|
+
* "Detalhes técnicos" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,
|
|
28
|
+
* mas só aparece com um `AlertDialog.Outlet` montado.
|
|
27
29
|
*
|
|
28
30
|
* @example
|
|
29
31
|
* ```ts
|
|
30
|
-
* await AlertDialog.alert({
|
|
32
|
+
* await AlertDialog.alert({
|
|
33
|
+
* status: 'error',
|
|
34
|
+
* title: 'Não foi possível emitir a nota',
|
|
35
|
+
* description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',
|
|
36
|
+
* details: 'Rejeição 108: serviço paralisado momentaneamente.',
|
|
37
|
+
* });
|
|
31
38
|
* ```
|
|
32
39
|
*/
|
|
33
40
|
const alertDialogAlert = (options) => {
|
|
34
41
|
const { promise, resolve } = Promise.withResolvers();
|
|
35
42
|
open({
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
request: {
|
|
44
|
+
type: "alert",
|
|
45
|
+
options
|
|
46
|
+
},
|
|
38
47
|
onSettle: () => resolve()
|
|
39
48
|
});
|
|
40
49
|
return promise;
|
|
41
50
|
};
|
|
42
51
|
/**
|
|
43
|
-
* Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se
|
|
44
|
-
* fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar.
|
|
45
|
-
*
|
|
52
|
+
* Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se
|
|
53
|
+
* cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na
|
|
54
|
+
* ação; com `destructive`, abre no "Cancelar". Pode ser chamado de qualquer lugar, inclusive de
|
|
55
|
+
* fora do React, mas só aparece com um `AlertDialog.Outlet` montado.
|
|
46
56
|
*
|
|
47
57
|
* Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o
|
|
48
58
|
* AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.
|
|
@@ -52,16 +62,24 @@ const alertDialogAlert = (options) => {
|
|
|
52
62
|
* const confirmed = await AlertDialog.confirm({
|
|
53
63
|
* title: 'Excluir a nota 4821?',
|
|
54
64
|
* description: 'A exclusão não pode ser desfeita.',
|
|
55
|
-
*
|
|
65
|
+
* confirmLabel: 'Excluir',
|
|
66
|
+
* destructive: true,
|
|
56
67
|
* onConfirm: () => deleteInvoice(4821),
|
|
68
|
+
* onError: () =>
|
|
69
|
+
* AlertDialog.alert({
|
|
70
|
+
* status: 'error',
|
|
71
|
+
* title: 'Não foi possível excluir a nota',
|
|
72
|
+
* }),
|
|
57
73
|
* });
|
|
58
74
|
* ```
|
|
59
75
|
*/
|
|
60
76
|
const alertDialogConfirm = (options) => {
|
|
61
77
|
const { promise, resolve } = Promise.withResolvers();
|
|
62
78
|
open({
|
|
63
|
-
|
|
64
|
-
|
|
79
|
+
request: {
|
|
80
|
+
type: "confirm",
|
|
81
|
+
options
|
|
82
|
+
},
|
|
65
83
|
onSettle: resolve
|
|
66
84
|
});
|
|
67
85
|
return promise;
|
|
@@ -71,7 +89,7 @@ const alertDialogConfirm = (options) => {
|
|
|
71
89
|
* alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.
|
|
72
90
|
*/
|
|
73
91
|
const open = (args) => {
|
|
74
|
-
const {
|
|
92
|
+
const { request, onSettle } = args;
|
|
75
93
|
const id = alertDialogStore.createId();
|
|
76
94
|
let isSettled = false;
|
|
77
95
|
const settle = (confirmed) => {
|
|
@@ -81,24 +99,30 @@ const open = (args) => {
|
|
|
81
99
|
};
|
|
82
100
|
alertDialogStore.add({
|
|
83
101
|
id,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
102
|
+
render: (nested, isParentOpen) => /* @__PURE__ */ jsx(ImperativeAlertDialog, {
|
|
103
|
+
request,
|
|
104
|
+
isParentOpen,
|
|
87
105
|
onSettle: settle,
|
|
88
|
-
|
|
89
|
-
|
|
106
|
+
onClosing: () => alertDialogStore.markClosing(id),
|
|
107
|
+
onExited: () => alertDialogStore.remove(id),
|
|
108
|
+
children: nested
|
|
109
|
+
}),
|
|
90
110
|
dismiss: () => settle(false)
|
|
91
111
|
});
|
|
92
112
|
};
|
|
93
113
|
const ImperativeAlertDialog = (props) => {
|
|
94
|
-
const {
|
|
95
|
-
const {
|
|
96
|
-
const
|
|
97
|
-
const
|
|
114
|
+
const { request, children, isParentOpen, onSettle, onClosing, onExited } = props;
|
|
115
|
+
const { size } = request.options;
|
|
116
|
+
const onConfirm = request.type === "confirm" ? request.options.onConfirm : void 0;
|
|
117
|
+
const onError = request.type === "confirm" ? request.options.onError : void 0;
|
|
118
|
+
/**
|
|
119
|
+
* O Base UI foca o primeiro elemento focável ao abrir, e no `alert` ele seria o "Detalhes
|
|
120
|
+
* técnicos". O botão que deve receber o `Enter` (o OK, a ação ou, na destrutiva, o Cancelar)
|
|
121
|
+
* leva este ref, e o `initialFocus` do `Popup` aponta para ele.
|
|
122
|
+
*/
|
|
123
|
+
const initialFocusRef = useRef(null);
|
|
98
124
|
const [isOpen, setIsOpen] = useState(false);
|
|
99
125
|
const [isPending, setIsPending] = useState(false);
|
|
100
|
-
const [hasFailed, setHasFailed] = useState(false);
|
|
101
|
-
const [errorMessage, setErrorMessage] = useState();
|
|
102
126
|
/**
|
|
103
127
|
* Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar
|
|
104
128
|
* de `false` para `true`, e montar já aberto pularia a transição.
|
|
@@ -108,6 +132,7 @@ const ImperativeAlertDialog = (props) => {
|
|
|
108
132
|
}, []);
|
|
109
133
|
const close = (confirmed) => {
|
|
110
134
|
onSettle(confirmed);
|
|
135
|
+
onClosing();
|
|
111
136
|
setIsOpen(false);
|
|
112
137
|
};
|
|
113
138
|
const handleOpenChange = (open, eventDetails) => {
|
|
@@ -126,44 +151,84 @@ const ImperativeAlertDialog = (props) => {
|
|
|
126
151
|
close(true);
|
|
127
152
|
return;
|
|
128
153
|
}
|
|
129
|
-
setHasFailed(false);
|
|
130
154
|
setIsPending(true);
|
|
131
155
|
try {
|
|
132
156
|
await onConfirm();
|
|
133
157
|
close(true);
|
|
134
158
|
} catch (caught) {
|
|
135
|
-
|
|
136
|
-
setErrorMessage(caught instanceof Error && caught.message !== "" ? caught.message : void 0);
|
|
159
|
+
onError?.(caught);
|
|
137
160
|
} finally {
|
|
138
161
|
setIsPending(false);
|
|
139
162
|
}
|
|
140
163
|
};
|
|
141
|
-
return /* @__PURE__ */
|
|
164
|
+
return /* @__PURE__ */ jsxs(AlertDialogRoot, {
|
|
142
165
|
open: isOpen,
|
|
143
166
|
onOpenChange: handleOpenChange,
|
|
144
167
|
onOpenChangeComplete: handleOpenChangeComplete,
|
|
145
168
|
size,
|
|
146
|
-
children: /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogBackdrop, {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
children:
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
children: [/* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogBackdrop, {
|
|
170
|
+
forceRender: !isParentOpen,
|
|
171
|
+
className: isParentOpen ? void 0 : "starting:opacity-0"
|
|
172
|
+
}), /* @__PURE__ */ jsx(AlertDialogViewport, { children: /* @__PURE__ */ jsxs(AlertDialogPopup, {
|
|
173
|
+
initialFocus: initialFocusRef,
|
|
174
|
+
children: [
|
|
175
|
+
request.type === "alert" ? /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [
|
|
176
|
+
/* @__PURE__ */ jsx(AlertDialogIndicator, {
|
|
177
|
+
status: request.options.status ?? "info",
|
|
178
|
+
children: request.options.icon
|
|
179
|
+
}),
|
|
180
|
+
/* @__PURE__ */ jsx(AlertDialogTitle, { children: request.options.title }),
|
|
181
|
+
request.options.description !== void 0 && /* @__PURE__ */ jsx(AlertDialogDescription, { children: request.options.description })
|
|
182
|
+
] }) : /* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: request.options.title }), request.options.description !== void 0 && /* @__PURE__ */ jsx(AlertDialogDescription, { children: request.options.description })] }),
|
|
183
|
+
request.type === "alert" && request.options.details !== void 0 && /* @__PURE__ */ jsx(AlertDialogBody, { children: /* @__PURE__ */ jsxs(CollapsibleRoot, { children: [/* @__PURE__ */ jsxs(CollapsibleTrigger, {
|
|
184
|
+
className: mergeTwClassNames([
|
|
185
|
+
"w-fit",
|
|
186
|
+
"gap-1",
|
|
187
|
+
"max-sm:mx-auto",
|
|
188
|
+
"text-gray-11",
|
|
189
|
+
"text-xs"
|
|
190
|
+
]),
|
|
191
|
+
children: [/* @__PURE__ */ jsx(CollapsibleIndicator, {}), "Detalhes técnicos"]
|
|
192
|
+
}), /* @__PURE__ */ jsx(CollapsiblePanel, { children: /* @__PURE__ */ jsx("div", {
|
|
193
|
+
className: mergeTwClassNames(["pt-2"]),
|
|
194
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
195
|
+
className: mergeTwClassNames([
|
|
196
|
+
"max-h-48",
|
|
197
|
+
"overflow-y-auto",
|
|
198
|
+
"px-3",
|
|
199
|
+
"py-2",
|
|
200
|
+
"rounded-md",
|
|
201
|
+
"border",
|
|
202
|
+
"border-gray-5",
|
|
203
|
+
"bg-gray-2",
|
|
204
|
+
"font-mono",
|
|
205
|
+
"text-gray-11",
|
|
206
|
+
"text-xs/4",
|
|
207
|
+
"wrap-break-word"
|
|
208
|
+
]),
|
|
209
|
+
children: request.options.details
|
|
210
|
+
})
|
|
211
|
+
}) })] }) }),
|
|
212
|
+
request.type === "alert" ? /* @__PURE__ */ jsx(AlertDialogFooter, { children: /* @__PURE__ */ jsx(AlertDialogClose, {
|
|
213
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
214
|
+
ref: initialFocusRef,
|
|
215
|
+
variant: "outline"
|
|
216
|
+
}),
|
|
217
|
+
children: request.options.okLabel ?? "OK"
|
|
218
|
+
}) }) : /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogClose, {
|
|
219
|
+
ref: request.options.destructive ? initialFocusRef : void 0,
|
|
220
|
+
disabled: isPending,
|
|
221
|
+
render: /* @__PURE__ */ jsx(Button, { variant: "outline" }),
|
|
222
|
+
children: request.options.cancelLabel ?? "Cancelar"
|
|
223
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
224
|
+
ref: request.options.destructive ? void 0 : initialFocusRef,
|
|
225
|
+
colorScheme: request.options.destructive ? "red" : "accent",
|
|
226
|
+
loading: isPending,
|
|
227
|
+
onClick: handleConfirm,
|
|
228
|
+
children: request.options.confirmLabel
|
|
229
|
+
})] })
|
|
230
|
+
]
|
|
231
|
+
}) })] }), children]
|
|
167
232
|
});
|
|
168
233
|
};
|
|
169
234
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog-imperative.js","names":["Alert.Root","Alert.Indicator","Alert.Content","Alert.Title","Alert.Description"],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-imperative.tsx"],"sourcesContent":["import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport type React from 'react';\nimport { useState } from 'react';\nimport { Button, type ButtonProps } from '#components/buttons/button';\nimport { Alert } from '#components/feedback/alert';\nimport { AlertDialogBackdrop } from './alert-dialog-backdrop';\nimport { AlertDialogBody } from './alert-dialog-body';\nimport { AlertDialogClose } from './alert-dialog-close';\nimport { AlertDialogDescription } from './alert-dialog-description';\nimport { AlertDialogFooter } from './alert-dialog-footer';\nimport { AlertDialogHeader } from './alert-dialog-header';\nimport { AlertDialogPopup } from './alert-dialog-popup';\nimport { AlertDialogPortal } from './alert-dialog-portal';\nimport {\n AlertDialogRoot,\n type AlertDialogRootChangeEventDetails,\n} from './alert-dialog-root';\nimport { alertDialogStore } from './alert-dialog-store';\nimport { AlertDialogTitle } from './alert-dialog-title';\nimport { AlertDialogViewport } from './alert-dialog-viewport';\nimport type { AlertDialogVariants } from './use-alert-dialog-context';\n\n/**\n * Rótulo e visual de um botão do alerta, no vocabulário do `Button`. Clique, `loading` e\n * `disabled` ficam com o alerta.\n */\nexport type AlertDialogButtonOptions = Pick<\n ButtonProps,\n 'children' | 'colorScheme' | 'variant'\n>;\n\nexport type AlertDialogAlertOptions = {\n /** Título do alerta. */\n title: React.ReactNode;\n /**\n * Texto de apoio. Só para exibição: renderiza no `AlertDialog.Outlet`, sem o contexto de quem\n * abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n /**\n * Botão que fecha o alerta: no `alert`, o único; no `confirm`, o de confirmar.\n *\n * @default { children: 'OK' } no `alert`, { children: 'Confirmar' } no `confirm`\n */\n confirmButton?: AlertDialogButtonOptions;\n};\n\nexport type AlertDialogConfirmOptions = AlertDialogAlertOptions & {\n /**\n * Botão de cancelar, antes do de confirmar: é o que recebe o foco ao abrir.\n *\n * @default { children: 'Cancelar', variant: 'outline' }\n */\n cancelButton?: AlertDialogButtonOptions;\n /**\n * Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o\n * alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se\n * ela lançar, o alerta continua aberto com o erro (o `message`, quando é um `Error`), para tentar\n * de novo ou cancelar. Sem ela, o alerta só pergunta.\n */\n onConfirm?: () => unknown;\n};\n\n/**\n * Abre um alerta com um botão só e resolve quando ele fecha, por esse botão ou pelo `Esc`. Pode\n * ser chamado de qualquer lugar, inclusive de fora do React, mas só aparece com um\n * `AlertDialog.Outlet` montado.\n *\n * @example\n * ```ts\n * await AlertDialog.alert({ title: 'Sessão expirada', description: 'Entre de novo para continuar.' });\n * ```\n */\nexport const alertDialogAlert = (\n options: AlertDialogAlertOptions,\n): Promise<void> => {\n const { promise, resolve } = Promise.withResolvers<void>();\n\n open({\n options,\n hasCancel: false,\n onSettle: () => resolve(),\n });\n\n return promise;\n};\n\n/**\n * Abre um alerta de confirmação e resolve `true` se o usuário confirmar, `false` se cancelar ou\n * fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. Pode ser chamado de qualquer\n * lugar, inclusive de fora do React, mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o\n * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.\n *\n * @example\n * ```ts\n * const confirmed = await AlertDialog.confirm({\n * title: 'Excluir a nota 4821?',\n * description: 'A exclusão não pode ser desfeita.',\n * confirmButton: { children: 'Excluir', colorScheme: 'red' },\n * onConfirm: () => deleteInvoice(4821),\n * });\n * ```\n */\nexport const alertDialogConfirm = (\n options: AlertDialogConfirmOptions,\n): Promise<boolean> => {\n const { promise, resolve } = Promise.withResolvers<boolean>();\n\n open({\n options,\n hasCancel: true,\n onSettle: resolve,\n });\n\n return promise;\n};\n\ntype OpenArgs = {\n options: AlertDialogConfirmOptions;\n hasCancel: boolean;\n onSettle: (confirmed: boolean) => void;\n};\n\n/**\n * Põe o alerta no store. A resolução passa por `settle`, que só vale na primeira chamada: o\n * alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.\n */\nconst open = (args: OpenArgs) => {\n const { options, hasCancel, onSettle } = args;\n\n const id = alertDialogStore.createId();\n\n let isSettled = false;\n\n const settle = (confirmed: boolean) => {\n if (isSettled) {\n return;\n }\n\n isSettled = true;\n onSettle(confirmed);\n };\n\n alertDialogStore.add({\n id,\n element: (\n <ImperativeAlertDialog\n key={id}\n options={options}\n hasCancel={hasCancel}\n onSettle={settle}\n onExited={() => alertDialogStore.remove(id)}\n />\n ),\n dismiss: () => settle(false),\n });\n};\n\ntype ImperativeAlertDialogProps = {\n options: AlertDialogConfirmOptions;\n hasCancel: boolean;\n onSettle: (confirmed: boolean) => void;\n onExited: () => void;\n};\n\nconst ImperativeAlertDialog = (props: ImperativeAlertDialogProps) => {\n const { options, hasCancel, onSettle, onExited } = props;\n\n const { title, description, size, confirmButton, cancelButton, onConfirm } =\n options;\n\n const { children: confirmLabel, ...confirmButtonProps } = confirmButton ?? {};\n const { children: cancelLabel = 'Cancelar', ...cancelButtonProps } =\n cancelButton ?? {};\n\n const [isOpen, setIsOpen] = useState(false);\n const [isPending, setIsPending] = useState(false);\n const [hasFailed, setHasFailed] = useState(false);\n const [errorMessage, setErrorMessage] = useState<string>();\n\n /**\n * Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar\n * de `false` para `true`, e montar já aberto pularia a transição.\n */\n useIsoLayoutEffect(() => {\n setIsOpen(true);\n }, []);\n\n const close = (confirmed: boolean) => {\n onSettle(confirmed);\n setIsOpen(false);\n };\n\n const handleOpenChange = (\n open: boolean,\n eventDetails: AlertDialogRootChangeEventDetails,\n ) => {\n if (open) {\n return;\n }\n\n if (isPending) {\n eventDetails.cancel();\n return;\n }\n\n close(false);\n };\n\n const handleOpenChangeComplete = (open: boolean) => {\n if (!open) {\n onExited();\n }\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) {\n close(true);\n return;\n }\n\n setHasFailed(false);\n setIsPending(true);\n\n try {\n await onConfirm();\n close(true);\n } catch (caught) {\n setHasFailed(true);\n setErrorMessage(\n caught instanceof Error && caught.message !== ''\n ? caught.message\n : undefined,\n );\n } finally {\n setIsPending(false);\n }\n };\n\n return (\n <AlertDialogRoot\n open={isOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n size={size}\n >\n <AlertDialogPortal>\n <AlertDialogBackdrop />\n <AlertDialogViewport>\n <AlertDialogPopup>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description !== undefined && (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n\n {hasFailed && (\n <AlertDialogBody>\n <Alert.Root\n status=\"error\"\n role=\"alert\"\n >\n <Alert.Indicator />\n <Alert.Content>\n <Alert.Title>Não foi possível concluir a ação.</Alert.Title>\n {errorMessage !== undefined && (\n <Alert.Description>{errorMessage}</Alert.Description>\n )}\n </Alert.Content>\n </Alert.Root>\n </AlertDialogBody>\n )}\n\n <AlertDialogFooter>\n {hasCancel && (\n <AlertDialogClose\n disabled={isPending}\n render={\n <Button\n variant=\"outline\"\n {...cancelButtonProps}\n />\n }\n >\n {cancelLabel}\n </AlertDialogClose>\n )}\n\n <Button\n loading={isPending}\n onClick={handleConfirm}\n {...confirmButtonProps}\n >\n {confirmLabel ?? (hasCancel ? 'Confirmar' : 'OK')}\n </Button>\n </AlertDialogFooter>\n </AlertDialogPopup>\n </AlertDialogViewport>\n </AlertDialogPortal>\n </AlertDialogRoot>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alert-dialog-imperative.js","names":["Collapsible.Root","Collapsible.Trigger","Collapsible.Indicator","Collapsible.Panel"],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-imperative.tsx"],"sourcesContent":["import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport type React from 'react';\nimport { useRef, useState } from 'react';\nimport { Button } from '#components/buttons/button';\nimport { Collapsible } from '#components/disclosure/collapsible';\nimport type { Alert } from '#components/feedback/alert';\nimport { mergeTwClassNames } from '#utils';\nimport { AlertDialogBackdrop } from './alert-dialog-backdrop';\nimport { AlertDialogBody } from './alert-dialog-body';\nimport { AlertDialogClose } from './alert-dialog-close';\nimport { AlertDialogDescription } from './alert-dialog-description';\nimport { AlertDialogFooter } from './alert-dialog-footer';\nimport { AlertDialogHeader } from './alert-dialog-header';\nimport { AlertDialogIndicator } from './alert-dialog-indicator';\nimport { AlertDialogPopup } from './alert-dialog-popup';\nimport { AlertDialogPortal } from './alert-dialog-portal';\nimport {\n AlertDialogRoot,\n type AlertDialogRootChangeEventDetails,\n} from './alert-dialog-root';\nimport { alertDialogStore } from './alert-dialog-store';\nimport { AlertDialogTitle } from './alert-dialog-title';\nimport { AlertDialogViewport } from './alert-dialog-viewport';\nimport type { AlertDialogVariants } from './use-alert-dialog-context';\n\nexport type AlertDialogAlertOptions = {\n /**\n * O que aconteceu, no vocabulário do `Alert`: decide a cor e o ícone padrão do indicador, e só\n * eles.\n *\n * @default 'info'\n */\n status?: NonNullable<Alert.Variants['status']>;\n /** Diz o que aconteceu (\"Não foi possível emitir a nota\"). */\n title: React.ReactNode;\n /**\n * O motivo ou o que fazer em seguida. Só para exibição: renderiza no `AlertDialog.Outlet`, sem\n * o contexto de quem abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Informação técnica (código de erro, resposta do servidor), num bloco \"Detalhes técnicos\"\n * recolhido abaixo da descrição.\n */\n details?: React.ReactNode;\n /**\n * Troca só o desenho do indicador; a cor continua a do `status`. Um ícone próprio entra pelo\n * `Icon` da lib, para ter o mesmo traço (`<Icon render={<TruckIcon />} />`).\n */\n icon?: React.ReactNode;\n /**\n * Rótulo do botão que fecha o alerta.\n *\n * @default 'OK'\n */\n okLabel?: React.ReactNode;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n};\n\nexport type AlertDialogConfirmOptions = {\n /** A pergunta (\"Excluir a nota 4821?\"). */\n title: React.ReactNode;\n /**\n * A consequência da ação (\"A exclusão não pode ser desfeita.\"). Quase sempre deve estar\n * presente: sem ela, o título é a única informação para decidir. Só para exibição: renderiza no\n * `AlertDialog.Outlet`, sem o contexto de quem abriu, e não muda depois de aberto.\n */\n description?: React.ReactNode;\n /**\n * Ação que destrói ou não se desfaz. O botão de confirmar fica vermelho (`red`, e não `accent`) e\n * o foco abre no \"Cancelar\", para um `Enter` dado sem ler não confirmar.\n *\n * @default false\n */\n destructive?: boolean;\n /**\n * Rótulo do botão de confirmar: o verbo da ação (\"Excluir\", \"Cancelar a nota\"), não\n * \"Confirmar\" nem \"Sim\". Sem destrutiva, o foco abre nele.\n */\n confirmLabel: React.ReactNode;\n /**\n * Rótulo do botão de cancelar, antes do de confirmar.\n *\n * @default 'Cancelar'\n */\n cancelLabel?: React.ReactNode;\n /**\n * Ação executada ao confirmar. Enquanto ela roda, o botão de confirmar fica em `loading` e o\n * alerta não fecha (nem pelo `Esc`, nem pelo cancelar). No sucesso, fecha e resolve `true`. Se\n * ela lançar, o alerta continua aberto, com os botões de volta ao normal e sem mensagem, para\n * tentar de novo ou cancelar. Sem ela, o alerta só pergunta.\n */\n onConfirm?: () => unknown;\n /**\n * Chamada com o que o `onConfirm` lançou, com o alerta ainda aberto. A lib não mostra o erro:\n * mostrá-lo é com quem chama, por um handler global (o `onError` de um cliente de queries) ou por\n * esta opção. Um `try/catch` dentro do `onConfirm` que não relança faz o alerta fechar como\n * sucesso. Sem `onError` e sem handler global, a falha não aparece para o usuário.\n */\n onError?: (error: unknown) => void;\n /**\n * Largura do popup, repassada ao `AlertDialog.Root`.\n *\n * @default 'md'\n */\n size?: AlertDialogVariants['size'];\n};\n\n/**\n * Abre um alerta informativo, com um indicador do `status` e um botão só, e resolve quando ele\n * fecha, por esse botão ou pelo `Esc`. O foco abre no botão, para o `Enter` fechar mesmo com os\n * \"Detalhes técnicos\" antes dele. Pode ser chamado de qualquer lugar, inclusive de fora do React,\n * mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * @example\n * ```ts\n * await AlertDialog.alert({\n * status: 'error',\n * title: 'Não foi possível emitir a nota',\n * description: 'A SEFAZ está fora do ar. Tente de novo em alguns minutos.',\n * details: 'Rejeição 108: serviço paralisado momentaneamente.',\n * });\n * ```\n */\nexport const alertDialogAlert = (\n options: AlertDialogAlertOptions,\n): Promise<void> => {\n const { promise, resolve } = Promise.withResolvers<void>();\n\n open({\n request: { type: 'alert', options },\n onSettle: () => resolve(),\n });\n\n return promise;\n};\n\n/**\n * Abre um alerta de confirmação, sem ícone, e resolve `true` se o usuário confirmar, `false` se\n * cancelar ou fechar pelo `Esc`. Com `onConfirm`, executa a ação antes de fechar. O foco abre na\n * ação; com `destructive`, abre no \"Cancelar\". Pode ser chamado de qualquer lugar, inclusive de\n * fora do React, mas só aparece com um `AlertDialog.Outlet` montado.\n *\n * Para um campo, uma escolha ou um terceiro botão, que não cabem na resposta `boolean`, monte o\n * AlertDialog com as partes e abra pelo `AlertDialog.createHandle`.\n *\n * @example\n * ```ts\n * const confirmed = await AlertDialog.confirm({\n * title: 'Excluir a nota 4821?',\n * description: 'A exclusão não pode ser desfeita.',\n * confirmLabel: 'Excluir',\n * destructive: true,\n * onConfirm: () => deleteInvoice(4821),\n * onError: () =>\n * AlertDialog.alert({\n * status: 'error',\n * title: 'Não foi possível excluir a nota',\n * }),\n * });\n * ```\n */\nexport const alertDialogConfirm = (\n options: AlertDialogConfirmOptions,\n): Promise<boolean> => {\n const { promise, resolve } = Promise.withResolvers<boolean>();\n\n open({\n request: { type: 'confirm', options },\n onSettle: resolve,\n });\n\n return promise;\n};\n\ntype ImperativeRequest =\n | { type: 'alert'; options: AlertDialogAlertOptions }\n | { type: 'confirm'; options: AlertDialogConfirmOptions };\n\ntype OpenArgs = {\n request: ImperativeRequest;\n onSettle: (confirmed: boolean) => void;\n};\n\n/**\n * Põe o alerta no store. A resolução passa por `settle`, que só vale na primeira chamada: o\n * alerta pode fechar pelo botão e, depois, ser dispensado pelo `Outlet` que desmonta.\n */\nconst open = (args: OpenArgs) => {\n const { request, onSettle } = args;\n\n const id = alertDialogStore.createId();\n\n let isSettled = false;\n\n const settle = (confirmed: boolean) => {\n if (isSettled) {\n return;\n }\n\n isSettled = true;\n onSettle(confirmed);\n };\n\n alertDialogStore.add({\n id,\n render: (nested, isParentOpen) => (\n <ImperativeAlertDialog\n request={request}\n isParentOpen={isParentOpen}\n onSettle={settle}\n onClosing={() => alertDialogStore.markClosing(id)}\n onExited={() => alertDialogStore.remove(id)}\n >\n {nested}\n </ImperativeAlertDialog>\n ),\n dismiss: () => settle(false),\n });\n};\n\ntype ImperativeAlertDialogProps = {\n request: ImperativeRequest;\n /** Os alertas aninhados neste (ver o store), renderizados dentro do `Root`. */\n children: React.ReactNode;\n /** Se o alerta pai ainda está aberto; sempre `true` na raiz. */\n isParentOpen: boolean;\n onSettle: (confirmed: boolean) => void;\n /** Chamado quando o alerta começa a fechar, antes da transição de saída. */\n onClosing: () => void;\n /** Chamado quando a transição de saída termina. */\n onExited: () => void;\n};\n\nconst ImperativeAlertDialog = (props: ImperativeAlertDialogProps) => {\n const { request, children, isParentOpen, onSettle, onClosing, onExited } =\n props;\n\n const { size } = request.options;\n\n const onConfirm =\n request.type === 'confirm' ? request.options.onConfirm : undefined;\n\n const onError =\n request.type === 'confirm' ? request.options.onError : undefined;\n\n /**\n * O Base UI foca o primeiro elemento focável ao abrir, e no `alert` ele seria o \"Detalhes\n * técnicos\". O botão que deve receber o `Enter` (o OK, a ação ou, na destrutiva, o Cancelar)\n * leva este ref, e o `initialFocus` do `Popup` aponta para ele.\n */\n const initialFocusRef = useRef<HTMLButtonElement>(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const [isPending, setIsPending] = useState(false);\n\n /**\n * Monta fechado e abre no commit seguinte: o popup só anima a entrada quando vê o `open` passar\n * de `false` para `true`, e montar já aberto pularia a transição.\n */\n useIsoLayoutEffect(() => {\n setIsOpen(true);\n }, []);\n\n const close = (confirmed: boolean) => {\n onSettle(confirmed);\n onClosing();\n setIsOpen(false);\n };\n\n const handleOpenChange = (\n open: boolean,\n eventDetails: AlertDialogRootChangeEventDetails,\n ) => {\n if (open) {\n return;\n }\n\n if (isPending) {\n eventDetails.cancel();\n return;\n }\n\n close(false);\n };\n\n const handleOpenChangeComplete = (open: boolean) => {\n if (!open) {\n onExited();\n }\n };\n\n const handleConfirm = async () => {\n if (!onConfirm) {\n close(true);\n return;\n }\n\n setIsPending(true);\n\n try {\n await onConfirm();\n close(true);\n } catch (caught) {\n onError?.(caught);\n } finally {\n setIsPending(false);\n }\n };\n\n return (\n <AlertDialogRoot\n open={isOpen}\n onOpenChange={handleOpenChange}\n onOpenChangeComplete={handleOpenChangeComplete}\n size={size}\n >\n <AlertDialogPortal>\n {/**\n * O backdrop de um alerta aninhado não renderiza: o do pai já cobre a página. Com o pai\n * fechando ou já fora, `forceRender` mantém o escurecido, e o alerta não fica modal sem ele.\n */}\n {/**\n * O backdrop forçado monta com o alerta já aberto, então o `data-starting-style` do Base UI\n * não acontece. O `starting:` (`@starting-style`) faz o escurecido entrar em fade; sem ele,\n * ele surge de uma vez quando o pai fecha.\n */}\n <AlertDialogBackdrop\n forceRender={!isParentOpen}\n className={isParentOpen ? undefined : 'starting:opacity-0'}\n />\n <AlertDialogViewport>\n <AlertDialogPopup initialFocus={initialFocusRef}>\n {request.type === 'alert' ? (\n <AlertDialogHeader>\n <AlertDialogIndicator status={request.options.status ?? 'info'}>\n {request.options.icon}\n </AlertDialogIndicator>\n <AlertDialogTitle>{request.options.title}</AlertDialogTitle>\n {request.options.description !== undefined && (\n <AlertDialogDescription>\n {request.options.description}\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n ) : (\n <AlertDialogHeader>\n <AlertDialogTitle>{request.options.title}</AlertDialogTitle>\n {request.options.description !== undefined && (\n <AlertDialogDescription>\n {request.options.description}\n </AlertDialogDescription>\n )}\n </AlertDialogHeader>\n )}\n\n {request.type === 'alert' &&\n request.options.details !== undefined && (\n <AlertDialogBody>\n <Collapsible.Root>\n <Collapsible.Trigger\n className={mergeTwClassNames([\n 'w-fit',\n 'gap-1',\n\n 'max-sm:mx-auto',\n\n 'text-gray-11',\n 'text-xs',\n ])}\n >\n <Collapsible.Indicator />\n Detalhes técnicos\n </Collapsible.Trigger>\n <Collapsible.Panel>\n <div className={mergeTwClassNames(['pt-2'])}>\n <div\n className={mergeTwClassNames([\n // Com altura máxima e rolagem própria, detalhes longos não empurram o\n // rodapé para fora da tela.\n 'max-h-48',\n 'overflow-y-auto',\n\n 'px-3',\n 'py-2',\n\n 'rounded-md',\n 'border',\n 'border-gray-5',\n\n 'bg-gray-2',\n\n 'font-mono',\n 'text-gray-11',\n 'text-xs/4',\n 'wrap-break-word',\n ])}\n >\n {request.options.details}\n </div>\n </div>\n </Collapsible.Panel>\n </Collapsible.Root>\n </AlertDialogBody>\n )}\n\n {request.type === 'alert' ? (\n <AlertDialogFooter>\n <AlertDialogClose\n render={\n <Button\n ref={initialFocusRef}\n variant=\"outline\"\n />\n }\n >\n {request.options.okLabel ?? 'OK'}\n </AlertDialogClose>\n </AlertDialogFooter>\n ) : (\n <AlertDialogFooter>\n <AlertDialogClose\n ref={\n request.options.destructive ? initialFocusRef : undefined\n }\n disabled={isPending}\n render={<Button variant=\"outline\" />}\n >\n {request.options.cancelLabel ?? 'Cancelar'}\n </AlertDialogClose>\n\n <Button\n ref={\n request.options.destructive ? undefined : initialFocusRef\n }\n colorScheme={request.options.destructive ? 'red' : 'accent'}\n loading={isPending}\n onClick={handleConfirm}\n >\n {request.options.confirmLabel}\n </Button>\n </AlertDialogFooter>\n )}\n </AlertDialogPopup>\n </AlertDialogViewport>\n </AlertDialogPortal>\n\n {/**\n * Fora do `Portal`, para os aninhados sobreviverem à desmontagem do portal deste alerta\n * quando ele sai antes deles. O `Root` deles ainda acha este pelo contexto.\n */}\n {children}\n </AlertDialogRoot>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { AlertVariants } from "../../feedback/alert/use-alert-context.js";
|
|
2
|
+
import { index_parts_d_exports } from "../../feedback/alert/index.parts.js";
|
|
3
|
+
import "../../feedback/alert/index.js";
|
|
4
|
+
//#region src/components/overlays/alert-dialog/alert-dialog-indicator-variants.d.ts
|
|
5
|
+
export type AlertDialogIndicatorVariants = {
|
|
6
|
+
/**
|
|
7
|
+
* O que o alerta comunica, no vocabulário do `Alert`. Decide a cor (`neutral` gray, `info` blue,
|
|
8
|
+
* `success` green, `warning` amber, `error` red) e o ícone padrão.
|
|
9
|
+
*
|
|
10
|
+
* @default 'neutral'
|
|
11
|
+
*/
|
|
12
|
+
status?: AlertVariants['status'];
|
|
13
|
+
};
|
|
14
|
+
export declare const alertDialogIndicatorDefaultVariants: Required<AlertDialogIndicatorVariants>;
|
|
15
|
+
/**
|
|
16
|
+
* A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o
|
|
17
|
+
* único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também
|
|
18
|
+
* quando o filho troca o desenho.
|
|
19
|
+
*/
|
|
20
|
+
export declare const alertDialogIndicatorVariants: (props?: ({
|
|
21
|
+
status?: "neutral" | "info" | "success" | "warning" | "error" | null | undefined;
|
|
22
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
23
|
+
//#endregion
|
|
24
|
+
//# sourceMappingURL=alert-dialog-indicator-variants.d.ts.map
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
//#region src/components/overlays/alert-dialog/alert-dialog-indicator-variants.ts
|
|
3
|
+
const alertDialogIndicatorDefaultVariants = { status: "neutral" };
|
|
4
|
+
/**
|
|
5
|
+
* A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o
|
|
6
|
+
* único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também
|
|
7
|
+
* quando o filho troca o desenho.
|
|
8
|
+
*/
|
|
9
|
+
const alertDialogIndicatorVariants = cva([
|
|
10
|
+
"flex",
|
|
11
|
+
"items-center",
|
|
12
|
+
"justify-center",
|
|
13
|
+
"shrink-0",
|
|
14
|
+
"h-6",
|
|
15
|
+
"text-xl",
|
|
16
|
+
"leading-none",
|
|
17
|
+
"[&_svg]:size-[1em]"
|
|
18
|
+
], {
|
|
19
|
+
variants: { status: {
|
|
20
|
+
neutral: ["text-gray-11"],
|
|
21
|
+
info: ["text-blue-11"],
|
|
22
|
+
success: ["text-green-11"],
|
|
23
|
+
warning: ["text-amber-11"],
|
|
24
|
+
error: ["text-red-11"]
|
|
25
|
+
} },
|
|
26
|
+
defaultVariants: { status: alertDialogIndicatorDefaultVariants.status }
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
export { alertDialogIndicatorDefaultVariants, alertDialogIndicatorVariants };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=alert-dialog-indicator-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog-indicator-variants.js","names":[],"sources":["../../../../src/components/overlays/alert-dialog/alert-dialog-indicator-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { Alert } from '#components/feedback/alert';\n\nexport type AlertDialogIndicatorVariants = {\n /**\n * O que o alerta comunica, no vocabulário do `Alert`. Decide a cor (`neutral` gray, `info` blue,\n * `success` green, `warning` amber, `error` red) e o ícone padrão.\n *\n * @default 'neutral'\n */\n status?: Alert.Variants['status'];\n};\n\nexport const alertDialogIndicatorDefaultVariants: Required<AlertDialogIndicatorVariants> =\n {\n status: 'neutral',\n };\n\n/**\n * A cor do ícone segue o `status`, no passo 11: sobre a superfície neutra do popup, o ícone é o\n * único lugar com a cor do `status`. Ela fica no indicador, e não nos filhos, para valer também\n * quando o filho troca o desenho.\n */\nexport const alertDialogIndicatorVariants = cva(\n [\n 'flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n\n 'h-6',\n\n 'text-xl',\n // Sem entrelinha, um emoji ocuparia mais altura que o ícone.\n 'leading-none',\n\n '[&_svg]:size-[1em]',\n ],\n {\n variants: {\n status: {\n neutral: ['text-gray-11'],\n info: ['text-blue-11'],\n success: ['text-green-11'],\n warning: ['text-amber-11'],\n error: ['text-red-11'],\n },\n },\n defaultVariants: {\n status: alertDialogIndicatorDefaultVariants.status,\n },\n },\n);\n"],"mappings":";;AAaA,MAAa,sCACX,EACE,QAAQ,UACV;;;;;;AAOF,MAAa,+BAA+B,IAC1C;CACE;CACA;CACA;CACA;CAEA;CAEA;CAEA;CAEA;AACF,GACA;CACE,UAAU,EACR,QAAQ;EACN,SAAS,CAAC,cAAc;EACxB,MAAM,CAAC,cAAc;EACrB,SAAS,CAAC,eAAe;EACzB,SAAS,CAAC,eAAe;EACzB,OAAO,CAAC,aAAa;CACvB,EACF;CACA,iBAAiB,EACf,QAAQ,oCAAoC,OAC9C;AACF,CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AlertDialogIndicatorVariants } from "./alert-dialog-indicator-variants.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
4
|
+
import { useRender } from "@base-ui/react";
|
|
5
|
+
//#region src/components/overlays/alert-dialog/alert-dialog-indicator.d.ts
|
|
6
|
+
export type AlertDialogIndicatorProps = MergeOverride<useRender.ComponentProps<'div'>, AlertDialogIndicatorVariants>;
|
|
7
|
+
/**
|
|
8
|
+
* Ícone do alert dialog, na cor do `status`. Sem filhos, mostra o ícone do `status`, pelo `Icon`
|
|
9
|
+
* da lib; com filhos (outro ícone, um emoji), usa os filhos, e um ícone próprio entra pelo `Icon`
|
|
10
|
+
* para ter o mesmo traço. O `svg` mede `1em` (20px), numa caixa da altura da linha do
|
|
11
|
+
* `AlertDialog.Title`, para ficar alinhado à primeira linha.
|
|
12
|
+
*
|
|
13
|
+
* Como filho do `AlertDialog.Header`, fica à esquerda do texto; no celular, acima dele.
|
|
14
|
+
*
|
|
15
|
+
* Fica com `aria-hidden`: o ícone repete o que o texto diz, e o `status` não é anunciado por ele.
|
|
16
|
+
*
|
|
17
|
+
* Cópia do `Alert.Indicator`, a origem, com os mesmos ícones; as diferenças: o `status` é prop da
|
|
18
|
+
* parte, e não vem de um contexto, e a cor está no passo 11.
|
|
19
|
+
*/
|
|
20
|
+
export declare const AlertDialogIndicator: {
|
|
21
|
+
(props: AlertDialogIndicatorProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
22
|
+
displayName: string;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
//# sourceMappingURL=alert-dialog-indicator.d.ts.map
|