@lucasbernardosn/react-ui 0.4.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/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/tabs/tabs-indicator-variants.d.ts +6 -1
- 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 +6 -1
- 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 +5 -1
- 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 +5 -5
- package/dist/components/display/badge/badge-variants.js +166 -166
- package/dist/components/display/badge/badge-variants.js.map +1 -1
- package/dist/components/display/card/card-body.d.ts +2 -2
- package/dist/components/display/card/card-body.js +2 -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/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 -2
- package/dist/components/display/tag/tag-root-variants.js +163 -163
- 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/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-thumb.js +3 -3
- package/dist/components/layout/scroll-area/scroll-area-thumb.js.map +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 +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-body.js +1 -1
- 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 +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.d.ts +2 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js +2 -2
- package/dist/components/overlays/alert-dialog/alert-dialog-indicator.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts +4 -4
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js +4 -4
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.js +1 -1
- 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/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 +5 -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 +4 -4
- package/dist/components/overlays/dialog/dialog-popup-variants.js +4 -4
- 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 +3 -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/link-variants.d.ts +2 -2
- package/dist/components/typography/link/link-variants.js +24 -24
- package/dist/components/typography/link/link-variants.js.map +1 -1
- package/dist/components/typography/mark/mark-variants.d.ts +9 -3
- 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
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
|
+
import { Group } from "../../layout/group/group.js";
|
|
3
|
+
import { inputGroupAddonVariants, inputGroupElementVariants, inputGroupPaddingVariants, inputGroupVariants } from "./input-group-variants.js";
|
|
4
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/fields/input-group/input-group.tsx
|
|
7
|
+
const splitVariantProps = createSplitProps();
|
|
8
|
+
/**
|
|
9
|
+
* Um campo com ícone, texto ou botão junto dele. O elemento (`startElement`, `endElement`) fica
|
|
10
|
+
* dentro da borda do campo, como a lupa de uma busca ou a unidade de uma medida; o addon
|
|
11
|
+
* (`startAddon`, `endAddon`) é um bloco colado ao campo, com a borda própria, como o `https://` de
|
|
12
|
+
* uma URL.
|
|
13
|
+
*
|
|
14
|
+
* - O grupo desenha a borda, o fundo e o anel de foco do campo, e o `<input>` de dentro fica sem
|
|
15
|
+
* caixa. O foco, o inválido e o desabilitado vêm do campo: ele se liga ao `Field` como sempre,
|
|
16
|
+
* e o grupo reflete o estado dele. No addon, só a caixa do campo muda de cor; o desabilitado
|
|
17
|
+
* esmaece os dois.
|
|
18
|
+
* - O `size` dá a altura: passe o mesmo `size` ao campo, para o texto dele bater com o do elemento
|
|
19
|
+
* e do addon. O `variant` fica só no grupo: o campo é transparente e o fundo vem dele.
|
|
20
|
+
* - Um clique no elemento foca o campo, como no clique de um rótulo; um clique em `button`, `a`,
|
|
21
|
+
* `input`, `select` ou `textarea` dentro dele segue o próprio caminho.
|
|
22
|
+
* - Um botão entra por composição, um `IconButton` com `variant="ghost"` no elemento, um ou dois
|
|
23
|
+
* passos de `size` abaixo do grupo para sobrar folga até a borda (`3xs` num grupo `2xs`, `2xs`
|
|
24
|
+
* num `sm`, `xs` num `md`, `sm` num `lg`, `md` num `xl`, `xl` num `2xl`).
|
|
25
|
+
* - Com addon, o grupo é um `Group` com `attached` por fora, e a `className` e as demais props
|
|
26
|
+
* vão nele; sem addon, no `div` da caixa. Sem `role="group"`: o nome e a descrição acessíveis
|
|
27
|
+
* vêm do `Field` ligado ao `<input>`, e um grupo com nome próprio o anunciaria duas vezes.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* <InputGroup startElement={<Icon render={<MagnifyingGlassIcon />} />}>
|
|
32
|
+
* <Input
|
|
33
|
+
* aria-label="Buscar"
|
|
34
|
+
* placeholder="Buscar pedido"
|
|
35
|
+
* />
|
|
36
|
+
* </InputGroup>
|
|
37
|
+
*
|
|
38
|
+
* <InputGroup endElement="kg">
|
|
39
|
+
* <NumberInput aria-label="Peso" />
|
|
40
|
+
* </InputGroup>
|
|
41
|
+
*
|
|
42
|
+
* <InputGroup
|
|
43
|
+
* startAddon="https://"
|
|
44
|
+
* endAddon=".com.br"
|
|
45
|
+
* >
|
|
46
|
+
* <Input aria-label="Subdomínio" />
|
|
47
|
+
* </InputGroup>
|
|
48
|
+
*
|
|
49
|
+
* <InputGroup
|
|
50
|
+
* endElement={
|
|
51
|
+
* <IconButton
|
|
52
|
+
* aria-label="Limpar"
|
|
53
|
+
* icon={<XIcon />}
|
|
54
|
+
* variant="ghost"
|
|
55
|
+
* size="2xs"
|
|
56
|
+
* />
|
|
57
|
+
* }
|
|
58
|
+
* >
|
|
59
|
+
* <Input aria-label="Endereço" />
|
|
60
|
+
* </InputGroup>
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
const InputGroup = (props) => {
|
|
64
|
+
const [variantProps, elementProps] = splitVariantProps(props, ["size", "variant"]);
|
|
65
|
+
const { children, startElement, endElement, startAddon, endAddon, className, ...rest } = elementProps;
|
|
66
|
+
const { size, variant } = variantProps;
|
|
67
|
+
const hasAddon = hasContent(startAddon) || hasContent(endAddon);
|
|
68
|
+
/**
|
|
69
|
+
* Sem addon, a caixa é o elemento de fora e leva a `className`, o resto das props e o padding
|
|
70
|
+
* por `size`. Com addon, ela divide a linha com os addons e fica com a largura que sobra.
|
|
71
|
+
*/
|
|
72
|
+
const control = /* @__PURE__ */ jsxs("div", {
|
|
73
|
+
"data-slot": "control",
|
|
74
|
+
"data-component": hasAddon ? void 0 : "InputGroup",
|
|
75
|
+
className: mergeTwClassNames(inputGroupVariants(variantProps), hasAddon ? ["flex-1", "min-w-0"] : [inputGroupPaddingVariants({ size }), className]),
|
|
76
|
+
...hasAddon ? void 0 : rest,
|
|
77
|
+
children: [
|
|
78
|
+
hasContent(startElement) && /* @__PURE__ */ jsx(InputGroupElement, {
|
|
79
|
+
placement: "start",
|
|
80
|
+
size,
|
|
81
|
+
children: startElement
|
|
82
|
+
}),
|
|
83
|
+
children,
|
|
84
|
+
hasContent(endElement) && /* @__PURE__ */ jsx(InputGroupElement, {
|
|
85
|
+
placement: "end",
|
|
86
|
+
size,
|
|
87
|
+
children: endElement
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
if (!hasAddon) return control;
|
|
92
|
+
return /* @__PURE__ */ jsxs(Group, {
|
|
93
|
+
attached: true,
|
|
94
|
+
"data-component": "InputGroup",
|
|
95
|
+
className: mergeTwClassNames([
|
|
96
|
+
"flex",
|
|
97
|
+
"w-full",
|
|
98
|
+
inputGroupPaddingVariants({ size }),
|
|
99
|
+
"has-[input:disabled]:[&>[data-slot=addon]]:opacity-50",
|
|
100
|
+
"has-[input:disabled]:[&>[data-slot=addon]]:cursor-not-allowed",
|
|
101
|
+
"has-[input[data-disabled]]:[&>[data-slot=addon]]:opacity-50",
|
|
102
|
+
"has-[input[data-disabled]]:[&>[data-slot=addon]]:cursor-not-allowed"
|
|
103
|
+
], className),
|
|
104
|
+
...rest,
|
|
105
|
+
children: [
|
|
106
|
+
hasContent(startAddon) && /* @__PURE__ */ jsx("div", {
|
|
107
|
+
"data-slot": "addon",
|
|
108
|
+
"data-placement": "start",
|
|
109
|
+
className: inputGroupAddonVariants({
|
|
110
|
+
variant,
|
|
111
|
+
size
|
|
112
|
+
}),
|
|
113
|
+
children: startAddon
|
|
114
|
+
}),
|
|
115
|
+
control,
|
|
116
|
+
hasContent(endAddon) && /* @__PURE__ */ jsx("div", {
|
|
117
|
+
"data-slot": "addon",
|
|
118
|
+
"data-placement": "end",
|
|
119
|
+
className: inputGroupAddonVariants({
|
|
120
|
+
variant,
|
|
121
|
+
size
|
|
122
|
+
}),
|
|
123
|
+
children: endAddon
|
|
124
|
+
})
|
|
125
|
+
]
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
InputGroup.displayName = "InputGroup";
|
|
129
|
+
/** Se o nó renderiza algo: `null`, `undefined`, booleano e texto vazio não contam. */
|
|
130
|
+
const hasContent = (node) => node !== null && node !== void 0 && typeof node !== "boolean" && node !== "";
|
|
131
|
+
/**
|
|
132
|
+
* Foca o campo da caixa no clique do elemento. O `preventDefault` impede o navegador de tirar o
|
|
133
|
+
* foco do campo que já o tem; sem ele, clicar no ícone fecharia o teclado do celular. Um alvo
|
|
134
|
+
* interativo do próprio elemento fica de fora, para o botão receber o foco e o clique dele.
|
|
135
|
+
*/
|
|
136
|
+
const handleElementMouseDown = (event) => {
|
|
137
|
+
const { target, currentTarget } = event;
|
|
138
|
+
if (!(target instanceof Element)) return;
|
|
139
|
+
const interactive = target.closest("button, a, input, select, textarea");
|
|
140
|
+
if (interactive && currentTarget.contains(interactive)) return;
|
|
141
|
+
event.preventDefault();
|
|
142
|
+
currentTarget.closest("[data-slot=\"control\"]")?.querySelector(":scope > input")?.focus();
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* O elemento dentro da caixa. O `data-placement` é lido pela caixa para reduzir o padding do campo
|
|
146
|
+
* daquele lado (ver `inputGroupVariants`).
|
|
147
|
+
*/
|
|
148
|
+
const InputGroupElement = (props) => {
|
|
149
|
+
const { placement, size, children } = props;
|
|
150
|
+
return /* @__PURE__ */ jsx("div", {
|
|
151
|
+
"data-slot": "element",
|
|
152
|
+
"data-placement": placement,
|
|
153
|
+
className: inputGroupElementVariants({
|
|
154
|
+
placement,
|
|
155
|
+
size
|
|
156
|
+
}),
|
|
157
|
+
onMouseDown: handleElementMouseDown,
|
|
158
|
+
children
|
|
159
|
+
});
|
|
160
|
+
};
|
|
161
|
+
//#endregion
|
|
162
|
+
export { InputGroup };
|
|
163
|
+
|
|
164
|
+
//# sourceMappingURL=input-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-group.js","names":[],"sources":["../../../../src/components/fields/input-group/input-group.tsx"],"sourcesContent":["import {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport type React from 'react';\nimport { Group } from '#components/layout/group';\nimport { mergeTwClassNames } from '#utils';\nimport {\n type InputGroupVariants,\n inputGroupAddonVariants,\n inputGroupElementVariants,\n inputGroupPaddingVariants,\n inputGroupVariants,\n} from './input-group-variants';\n\nexport type InputGroupProps = MergeOverride<\n React.ComponentProps<'div'>,\n InputGroupVariants & {\n /**\n * O campo: qualquer componente da lib que renderiza um `<input>` direto (`Input`,\n * `NumberInput`, `PatternInput`, `CurrencyBrlInput`).\n */\n children: React.ReactNode;\n /**\n * Ícone, texto ou botão dentro da borda, antes do campo.\n */\n startElement?: React.ReactNode;\n /**\n * Ícone, texto ou botão dentro da borda, depois do campo.\n */\n endElement?: React.ReactNode;\n /**\n * Bloco colado ao campo, fora da borda dele, antes do campo.\n */\n startAddon?: React.ReactNode;\n /**\n * Bloco colado ao campo, fora da borda dele, depois do campo.\n */\n endAddon?: React.ReactNode;\n }\n>;\n\nconst splitVariantProps = createSplitProps<InputGroupVariants>();\n\n/**\n * Um campo com ícone, texto ou botão junto dele. O elemento (`startElement`, `endElement`) fica\n * dentro da borda do campo, como a lupa de uma busca ou a unidade de uma medida; o addon\n * (`startAddon`, `endAddon`) é um bloco colado ao campo, com a borda própria, como o `https://` de\n * uma URL.\n *\n * - O grupo desenha a borda, o fundo e o anel de foco do campo, e o `<input>` de dentro fica sem\n * caixa. O foco, o inválido e o desabilitado vêm do campo: ele se liga ao `Field` como sempre,\n * e o grupo reflete o estado dele. No addon, só a caixa do campo muda de cor; o desabilitado\n * esmaece os dois.\n * - O `size` dá a altura: passe o mesmo `size` ao campo, para o texto dele bater com o do elemento\n * e do addon. O `variant` fica só no grupo: o campo é transparente e o fundo vem dele.\n * - Um clique no elemento foca o campo, como no clique de um rótulo; um clique em `button`, `a`,\n * `input`, `select` ou `textarea` dentro dele segue o próprio caminho.\n * - Um botão entra por composição, um `IconButton` com `variant=\"ghost\"` no elemento, um ou dois\n * passos de `size` abaixo do grupo para sobrar folga até a borda (`3xs` num grupo `2xs`, `2xs`\n * num `sm`, `xs` num `md`, `sm` num `lg`, `md` num `xl`, `xl` num `2xl`).\n * - Com addon, o grupo é um `Group` com `attached` por fora, e a `className` e as demais props\n * vão nele; sem addon, no `div` da caixa. Sem `role=\"group\"`: o nome e a descrição acessíveis\n * vêm do `Field` ligado ao `<input>`, e um grupo com nome próprio o anunciaria duas vezes.\n *\n * @example\n * ```tsx\n * <InputGroup startElement={<Icon render={<MagnifyingGlassIcon />} />}>\n * <Input\n * aria-label=\"Buscar\"\n * placeholder=\"Buscar pedido\"\n * />\n * </InputGroup>\n *\n * <InputGroup endElement=\"kg\">\n * <NumberInput aria-label=\"Peso\" />\n * </InputGroup>\n *\n * <InputGroup\n * startAddon=\"https://\"\n * endAddon=\".com.br\"\n * >\n * <Input aria-label=\"Subdomínio\" />\n * </InputGroup>\n *\n * <InputGroup\n * endElement={\n * <IconButton\n * aria-label=\"Limpar\"\n * icon={<XIcon />}\n * variant=\"ghost\"\n * size=\"2xs\"\n * />\n * }\n * >\n * <Input aria-label=\"Endereço\" />\n * </InputGroup>\n * ```\n */\nexport const InputGroup = (props: InputGroupProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const {\n children,\n startElement,\n endElement,\n startAddon,\n endAddon,\n className,\n ...rest\n } = elementProps;\n\n const { size, variant } = variantProps;\n\n const hasAddon = hasContent(startAddon) || hasContent(endAddon);\n\n /**\n * Sem addon, a caixa é o elemento de fora e leva a `className`, o resto das props e o padding\n * por `size`. Com addon, ela divide a linha com os addons e fica com a largura que sobra.\n */\n const control = (\n <div\n data-slot=\"control\"\n data-component={hasAddon ? undefined : 'InputGroup'}\n className={mergeTwClassNames(\n inputGroupVariants(variantProps),\n hasAddon\n ? ['flex-1', 'min-w-0']\n : [inputGroupPaddingVariants({ size }), className],\n )}\n {...(hasAddon ? undefined : rest)}\n >\n {hasContent(startElement) && (\n <InputGroupElement\n placement=\"start\"\n size={size}\n >\n {startElement}\n </InputGroupElement>\n )}\n\n {children}\n\n {hasContent(endElement) && (\n <InputGroupElement\n placement=\"end\"\n size={size}\n >\n {endElement}\n </InputGroupElement>\n )}\n </div>\n );\n\n if (!hasAddon) {\n return control;\n }\n\n return (\n <Group\n attached={true}\n data-component=\"InputGroup\"\n className={mergeTwClassNames(\n [\n 'flex',\n 'w-full',\n\n inputGroupPaddingVariants({ size }),\n\n // O addon esmaece junto com a caixa; a opacidade do campo desabilitado é da caixa\n 'has-[input:disabled]:[&>[data-slot=addon]]:opacity-50',\n 'has-[input:disabled]:[&>[data-slot=addon]]:cursor-not-allowed',\n 'has-[input[data-disabled]]:[&>[data-slot=addon]]:opacity-50',\n 'has-[input[data-disabled]]:[&>[data-slot=addon]]:cursor-not-allowed',\n ],\n className,\n )}\n {...rest}\n >\n {hasContent(startAddon) && (\n <div\n data-slot=\"addon\"\n data-placement=\"start\"\n className={inputGroupAddonVariants({ variant, size })}\n >\n {startAddon}\n </div>\n )}\n\n {control}\n\n {hasContent(endAddon) && (\n <div\n data-slot=\"addon\"\n data-placement=\"end\"\n className={inputGroupAddonVariants({ variant, size })}\n >\n {endAddon}\n </div>\n )}\n </Group>\n );\n};\n\nInputGroup.displayName = 'InputGroup';\n\n/** Se o nó renderiza algo: `null`, `undefined`, booleano e texto vazio não contam. */\nconst hasContent = (node: React.ReactNode) =>\n node !== null &&\n node !== undefined &&\n typeof node !== 'boolean' &&\n node !== '';\n\n/**\n * Foca o campo da caixa no clique do elemento. O `preventDefault` impede o navegador de tirar o\n * foco do campo que já o tem; sem ele, clicar no ícone fecharia o teclado do celular. Um alvo\n * interativo do próprio elemento fica de fora, para o botão receber o foco e o clique dele.\n */\nconst handleElementMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n const { target, currentTarget } = event;\n\n if (!(target instanceof Element)) {\n return;\n }\n\n const interactive = target.closest('button, a, input, select, textarea');\n\n if (interactive && currentTarget.contains(interactive)) {\n return;\n }\n\n event.preventDefault();\n\n currentTarget\n .closest('[data-slot=\"control\"]')\n ?.querySelector<HTMLInputElement>(':scope > input')\n ?.focus();\n};\n\ntype InputGroupElementProps = {\n placement: 'start' | 'end';\n size: InputGroupVariants['size'];\n children: React.ReactNode;\n};\n\n/**\n * O elemento dentro da caixa. O `data-placement` é lido pela caixa para reduzir o padding do campo\n * daquele lado (ver `inputGroupVariants`).\n */\nconst InputGroupElement = (props: InputGroupElementProps) => {\n const { placement, size, children } = props;\n\n return (\n // O clique só repassa o foco ao campo, que já é alcançável pelo teclado: o elemento não é\n // um controle e não ganha `role` nem `tabIndex`.\n // biome-ignore lint/a11y/noStaticElementInteractions: ver o comentário acima\n // biome-ignore lint/a11y/noNoninteractiveElementInteractions: ver o comentário acima\n <div\n data-slot=\"element\"\n data-placement={placement}\n className={inputGroupElementVariants({ placement, size })}\n onMouseDown={handleElementMouseDown}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;;;AA0CA,MAAM,oBAAoB,iBAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyD/D,MAAa,cAAc,UAA2B;CACpD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,EACJ,UACA,cACA,YACA,YACA,UACA,WACA,GAAG,SACD;CAEJ,MAAM,EAAE,MAAM,YAAY;CAE1B,MAAM,WAAW,WAAW,UAAU,KAAK,WAAW,QAAQ;;;;;CAM9D,MAAM,UACJ,qBAAC,OAAD;EACE,aAAU;EACV,kBAAgB,WAAW,KAAA,IAAY;EACvC,WAAW,kBACT,mBAAmB,YAAY,GAC/B,WACI,CAAC,UAAU,SAAS,IACpB,CAAC,0BAA0B,EAAE,KAAK,CAAC,GAAG,SAAS,CACrD;EACA,GAAK,WAAW,KAAA,IAAY;EAT9B,UAAA;GAWG,WAAW,YAAY,KACtB,oBAAC,mBAAD;IACE,WAAU;IACJ;IAEL,UAAA;GACgB,CAAA;GAGpB;GAEA,WAAW,UAAU,KACpB,oBAAC,mBAAD;IACE,WAAU;IACJ;IAEL,UAAA;GACgB,CAAA;EAElB;;CAGP,IAAI,CAAC,UACH,OAAO;CAGT,OACE,qBAAC,OAAD;EACE,UAAU;EACV,kBAAe;EACf,WAAW,kBACT;GACE;GACA;GAEA,0BAA0B,EAAE,KAAK,CAAC;GAGlC;GACA;GACA;GACA;EACF,GACA,SACF;EACA,GAAI;EAlBN,UAAA;GAoBG,WAAW,UAAU,KACpB,oBAAC,OAAD;IACE,aAAU;IACV,kBAAe;IACf,WAAW,wBAAwB;KAAE;KAAS;IAAK,CAAC;IAEnD,UAAA;GACE,CAAA;GAGN;GAEA,WAAW,QAAQ,KAClB,oBAAC,OAAD;IACE,aAAU;IACV,kBAAe;IACf,WAAW,wBAAwB;KAAE;KAAS;IAAK,CAAC;IAEnD,UAAA;GACE,CAAA;EAEF;;AAEX;AAEA,WAAW,cAAc;;AAGzB,MAAM,cAAc,SAClB,SAAS,QACT,SAAS,KAAA,KACT,OAAO,SAAS,aAChB,SAAS;;;;;;AAOX,MAAM,0BAA0B,UAAyC;CACvE,MAAM,EAAE,QAAQ,kBAAkB;CAElC,IAAI,EAAE,kBAAkB,UACtB;CAGF,MAAM,cAAc,OAAO,QAAQ,oCAAoC;CAEvE,IAAI,eAAe,cAAc,SAAS,WAAW,GACnD;CAGF,MAAM,eAAe;CAErB,cACG,QAAQ,yBAAuB,CAAC,EAC/B,cAAgC,gBAAgB,CAAC,EACjD,MAAM;AACZ;;;;;AAYA,MAAM,qBAAqB,UAAkC;CAC3D,MAAM,EAAE,WAAW,MAAM,aAAa;CAEtC,OAKE,oBAAC,OAAD;EACE,aAAU;EACV,kBAAgB;EAChB,WAAW,0BAA0B;GAAE;GAAW;EAAK,CAAC;EACxD,aAAa;EAEZ;CACE,CAAA;AAET"}
|
|
@@ -41,16 +41,16 @@ const numberInputVariants = cva([
|
|
|
41
41
|
"data-disabled:opacity-50",
|
|
42
42
|
"data-disabled:cursor-not-allowed",
|
|
43
43
|
"data-invalid:border-red-9",
|
|
44
|
-
"data-invalid:[--number-input-focus-color:var(--
|
|
44
|
+
"data-invalid:[--number-input-focus-color:var(--red-9)]",
|
|
45
45
|
"aria-invalid:border-red-9",
|
|
46
|
-
"aria-invalid:[--number-input-focus-color:var(--
|
|
46
|
+
"aria-invalid:[--number-input-focus-color:var(--red-9)]"
|
|
47
47
|
], {
|
|
48
48
|
variants: {
|
|
49
49
|
variant: {
|
|
50
50
|
outline: [
|
|
51
51
|
"bg-white/90",
|
|
52
52
|
"dark:bg-black/90",
|
|
53
|
-
"border-gray-
|
|
53
|
+
"border-gray-7"
|
|
54
54
|
],
|
|
55
55
|
subtle: ["bg-gray-4", "border-transparent"]
|
|
56
56
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input-variants.js","names":[],"sources":["../../../../src/components/fields/number-input/number-input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type NumberInputVariants = {\n /**\n * Altura, padding e tamanho do texto, os mesmos do `Input`. Substitui o atributo nativo `size`:\n * a largura vem do CSS. Em tela de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone\n * não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const numberInputDefaultVariants: Required<NumberInputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do\n * mesmo jeito, explicados lá. As diferenças:\n * - sem `data-placeholder`;\n * - `tabular-nums`, que dá a mesma largura a todos os dígitos: o número não muda de largura a cada\n * tecla nem quando o separador de milhar entra.\n */\nexport const numberInputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'tabular-nums',\n\n 'placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--number-input-focus-color:var(--color-black)]',\n 'dark:[--number-input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--number-input-focus-color)',\n 'focus-visible:border-(--number-input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--number-input-focus-color)',\n 'data-focused:border-(--number-input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--number-input-focus-color:var(--
|
|
1
|
+
{"version":3,"file":"number-input-variants.js","names":[],"sources":["../../../../src/components/fields/number-input/number-input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type NumberInputVariants = {\n /**\n * Altura, padding e tamanho do texto, os mesmos do `Input`. Substitui o atributo nativo `size`:\n * a largura vem do CSS. Em tela de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone\n * não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const numberInputDefaultVariants: Required<NumberInputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do\n * mesmo jeito, explicados lá. As diferenças:\n * - sem `data-placeholder`;\n * - `tabular-nums`, que dá a mesma largura a todos os dígitos: o número não muda de largura a cada\n * tecla nem quando o separador de milhar entra.\n */\nexport const numberInputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'tabular-nums',\n\n 'placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--number-input-focus-color:var(--color-black)]',\n 'dark:[--number-input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--number-input-focus-color)',\n 'focus-visible:border-(--number-input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--number-input-focus-color)',\n 'data-focused:border-(--number-input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--number-input-focus-color:var(--red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--number-input-focus-color:var(--red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': [\n 'h-7',\n 'min-w-7',\n\n 'px-2',\n\n 'text-xs',\n // Em tela de toque, 16px: abaixo disso o Safari do iPhone dá zoom ao focar o campo.\n 'any-pointer-coarse:text-base',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'px-2',\n\n 'text-xs',\n 'any-pointer-coarse:text-base',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'px-2.5',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'px-3',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'px-4',\n\n 'text-base',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'px-4.5',\n\n 'text-base',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'px-5',\n\n 'text-lg',\n ],\n },\n },\n defaultVariants: {\n size: numberInputDefaultVariants.size,\n variant: numberInputDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAmBA,MAAa,6BAA4D;CACvE,MAAM;CACN,SAAS;AACX;;;;;;;;AASA,MAAa,sBAAsB,IACjC;CACE;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CAEA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;IACP;IACA;IAEA;GACF;GACA,QAAQ,CACN,aAEA,oBACF;EACF;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;GACF;EACF;CACF;CACA,iBAAiB;EACf,MAAM,2BAA2B;EACjC,SAAS,2BAA2B;CACtC;AACF,CACF"}
|
|
@@ -41,16 +41,16 @@ const patternInputVariants = cva([
|
|
|
41
41
|
"data-disabled:opacity-50",
|
|
42
42
|
"data-disabled:cursor-not-allowed",
|
|
43
43
|
"data-invalid:border-red-9",
|
|
44
|
-
"data-invalid:[--pattern-input-focus-color:var(--
|
|
44
|
+
"data-invalid:[--pattern-input-focus-color:var(--red-9)]",
|
|
45
45
|
"aria-invalid:border-red-9",
|
|
46
|
-
"aria-invalid:[--pattern-input-focus-color:var(--
|
|
46
|
+
"aria-invalid:[--pattern-input-focus-color:var(--red-9)]"
|
|
47
47
|
], {
|
|
48
48
|
variants: {
|
|
49
49
|
variant: {
|
|
50
50
|
outline: [
|
|
51
51
|
"bg-white/90",
|
|
52
52
|
"dark:bg-black/90",
|
|
53
|
-
"border-gray-
|
|
53
|
+
"border-gray-7"
|
|
54
54
|
],
|
|
55
55
|
subtle: ["bg-gray-4", "border-transparent"]
|
|
56
56
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-input-variants.js","names":[],"sources":["../../../../src/components/fields/pattern-input/pattern-input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type PatternInputVariants = {\n /**\n * Altura, padding e tamanho do texto, os mesmos do `Input`. Substitui o atributo nativo `size`:\n * a largura vem do CSS. Em tela de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone\n * não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const patternInputDefaultVariants: Required<PatternInputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do\n * mesmo jeito, explicados lá. As diferenças:\n * - sem `data-placeholder`;\n * - `font-mono`, que dá a mesma largura a todos os caracteres (dígitos, letras, marcador e\n * literais): o texto não se mexe quando uma posição vazia é preenchida.\n */\nexport const patternInputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'font-mono',\n\n 'placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--pattern-input-focus-color:var(--color-black)]',\n 'dark:[--pattern-input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--pattern-input-focus-color)',\n 'focus-visible:border-(--pattern-input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--pattern-input-focus-color)',\n 'data-focused:border-(--pattern-input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--pattern-input-focus-color:var(--
|
|
1
|
+
{"version":3,"file":"pattern-input-variants.js","names":[],"sources":["../../../../src/components/fields/pattern-input/pattern-input-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type PatternInputVariants = {\n /**\n * Altura, padding e tamanho do texto, os mesmos do `Input`. Substitui o atributo nativo `size`:\n * a largura vem do CSS. Em tela de toque, do `2xs` ao `md` o texto sobe para 16px, para o iPhone\n * não dar zoom no foco.\n *\n * @default 'sm'\n */\n size?: '2xs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n /**\n * Fundo e borda do campo.\n *\n * @default 'outline'\n */\n variant?: 'outline' | 'subtle';\n};\n\nexport const patternInputDefaultVariants: Required<PatternInputVariants> = {\n size: 'sm',\n variant: 'outline',\n};\n\n/**\n * Cópia de `inputVariants`, a origem do visual dos campos: o anel de foco e o inválido funcionam do\n * mesmo jeito, explicados lá. As diferenças:\n * - sem `data-placeholder`;\n * - `font-mono`, que dá a mesma largura a todos os caracteres (dígitos, letras, marcador e\n * literais): o texto não se mexe quando uma posição vazia é preenchida.\n */\nexport const patternInputVariants = cva(\n [\n 'relative',\n 'w-full',\n\n 'appearance-none',\n 'outline-none',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'font-mono',\n\n 'placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--pattern-input-focus-color:var(--color-black)]',\n 'dark:[--pattern-input-focus-color:var(--color-white)]',\n\n 'focus-visible:outline-1',\n 'focus-visible:outline-solid',\n 'focus-visible:-outline-offset-2', // Offset = borda + anel: o campo não cresce no foco\n 'focus-visible:outline-(--pattern-input-focus-color)',\n 'focus-visible:border-(--pattern-input-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--pattern-input-focus-color)',\n 'data-focused:border-(--pattern-input-focus-color)',\n\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-invalid:border-red-9',\n 'data-invalid:[--pattern-input-focus-color:var(--red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--pattern-input-focus-color:var(--red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': [\n 'h-7',\n 'min-w-7',\n\n 'px-2',\n\n 'text-xs',\n // Em tela de toque, 16px: abaixo disso o Safari do iPhone dá zoom ao focar o campo.\n 'any-pointer-coarse:text-base',\n ],\n xs: [\n 'h-8',\n 'min-w-8',\n\n 'px-2',\n\n 'text-xs',\n 'any-pointer-coarse:text-base',\n ],\n sm: [\n 'h-9',\n 'min-w-9',\n\n 'px-2.5',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n md: [\n 'h-10',\n 'min-w-10',\n\n 'px-3',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n lg: [\n 'h-11',\n 'min-w-11',\n\n 'px-4',\n\n 'text-base',\n ],\n xl: [\n 'h-12',\n 'min-w-12',\n\n 'px-4.5',\n\n 'text-base',\n ],\n '2xl': [\n 'h-16',\n 'min-w-16',\n\n 'px-5',\n\n 'text-lg',\n ],\n },\n },\n defaultVariants: {\n size: patternInputDefaultVariants.size,\n variant: patternInputDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAmBA,MAAa,8BAA8D;CACzE,MAAM;CACN,SAAS;AACX;;;;;;;;AASA,MAAa,uBAAuB,IAClC;CACE;CACA;CAEA;CACA;CAEA;CACA;CACA;CAEA;CAEA;CAEA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU;EACR,SAAS;GACP,SAAS;IACP;IACA;IAEA;GACF;GACA,QAAQ,CACN,aAEA,oBACF;EACF;EACA,MAAM;GACJ,OAAO;IACL;IACA;IAEA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;IAEA;GACF;EACF;CACF;CACA,iBAAiB;EACf,MAAM,4BAA4B;EAClC,SAAS,4BAA4B;CACvC;AACF,CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RadioGroup, RadioGroupChangeEventDetails, RadioGroupChangeEventReason, RadioGroupProps, RadioGroupState } from "./radio-group.js";
|
|
2
|
+
import { RadioIndicator, RadioIndicatorProps, RadioIndicatorState } from "./radio-indicator.js";
|
|
3
|
+
import { RadioRootVariants } from "./radio-root-variants.js";
|
|
4
|
+
import { RadioRoot, RadioRootProps, RadioRootState } from "./radio-root.js";
|
|
5
|
+
declare namespace index_parts_d_exports {
|
|
6
|
+
export { RadioGroup as Group, RadioGroupChangeEventDetails as GroupChangeEventDetails, RadioGroupChangeEventReason as GroupChangeEventReason, RadioGroupProps as GroupProps, RadioGroupState as GroupState, RadioIndicator as Indicator, RadioIndicatorProps as IndicatorProps, RadioIndicatorState as IndicatorState, RadioRoot as Root, RadioRootProps as RootProps, RadioRootState as RootState, RadioRootVariants as RootVariants };
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { RadioGroup as Group, type RadioGroupChangeEventDetails as GroupChangeEventDetails, type RadioGroupChangeEventReason as GroupChangeEventReason, type RadioGroupProps as GroupProps, type RadioGroupState as GroupState, RadioIndicator as Indicator, type RadioIndicatorProps as IndicatorProps, type RadioIndicatorState as IndicatorState, RadioRoot as Root, type RadioRootProps as RootProps, type RadioRootState as RootState, type RadioRootVariants as RootVariants, index_parts_d_exports };
|
|
10
|
+
//# sourceMappingURL=index.parts.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __exportAll } from "../../../_virtual/_rolldown/runtime.js";
|
|
2
|
+
import { RadioGroup } from "./radio-group.js";
|
|
3
|
+
import { RadioIndicator } from "./radio-indicator.js";
|
|
4
|
+
import { RadioRoot } from "./radio-root.js";
|
|
5
|
+
//#region src/components/fields/radio/index.parts.ts
|
|
6
|
+
var index_parts_exports = /* @__PURE__ */ __exportAll({
|
|
7
|
+
Group: () => RadioGroup,
|
|
8
|
+
Indicator: () => RadioIndicator,
|
|
9
|
+
Root: () => RadioRoot
|
|
10
|
+
});
|
|
11
|
+
//#endregion
|
|
12
|
+
export { RadioGroup as Group, RadioIndicator as Indicator, RadioRoot as Root, index_parts_exports };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=index.parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.parts.js","names":[],"sources":["../../../../src/components/fields/radio/index.parts.ts"],"sourcesContent":["export { RadioGroup as Group } from './radio-group';\nexport { RadioIndicator as Indicator } from './radio-indicator';\nexport { RadioRoot as Root } from './radio-root';\n\n/* types */\n\nexport type {\n RadioGroupChangeEventDetails as GroupChangeEventDetails,\n RadioGroupChangeEventReason as GroupChangeEventReason,\n RadioGroupProps as GroupProps,\n RadioGroupState as GroupState,\n} from './radio-group';\n\nexport type {\n RadioIndicatorProps as IndicatorProps,\n RadioIndicatorState as IndicatorState,\n} from './radio-indicator';\nexport type {\n RadioRootProps as RootProps,\n RadioRootState as RootState,\n} from './radio-root';\nexport type { RadioRootVariants as RootVariants } from './radio-root-variants';\n"],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
|
|
2
|
+
//#region src/components/fields/radio/radio-group.d.ts
|
|
3
|
+
export type RadioGroupProps = RadioGroup$1.Props;
|
|
4
|
+
export type RadioGroupState = RadioGroup$1.State;
|
|
5
|
+
export type RadioGroupChangeEventDetails = RadioGroup$1.ChangeEventDetails;
|
|
6
|
+
export type RadioGroupChangeEventReason = RadioGroup$1.ChangeEventReason;
|
|
7
|
+
/**
|
|
8
|
+
* Guarda o `value` do `Radio.Root` marcado dentro dele: só um fica marcado por vez. Sem estilo de
|
|
9
|
+
* layout: a disposição vem por `className`.
|
|
10
|
+
*
|
|
11
|
+
* O Base UI não tem orientação: as setas andam entre as opções nas duas direções, qualquer que
|
|
12
|
+
* seja a disposição. Dê o nome ao grupo com `aria-labelledby` ou `aria-label`, ou, num formulário,
|
|
13
|
+
* pelo `Fieldset.Root` (`<Fieldset.Root render={<Radio.Group />}>`, dentro de um `Field.Root`
|
|
14
|
+
* com `name`).
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* <Radio.Group
|
|
19
|
+
* aria-labelledby="storage-label"
|
|
20
|
+
* defaultValue="ssd"
|
|
21
|
+
* className="flex flex-col gap-3"
|
|
22
|
+
* >
|
|
23
|
+
* <span id="storage-label">Armazenamento</span>
|
|
24
|
+
*
|
|
25
|
+
* <label>
|
|
26
|
+
* <Radio.Root value="ssd">
|
|
27
|
+
* <Radio.Indicator />
|
|
28
|
+
* </Radio.Root>
|
|
29
|
+
* SSD
|
|
30
|
+
* </label>
|
|
31
|
+
* …
|
|
32
|
+
* </Radio.Group>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const RadioGroup: {
|
|
36
|
+
(props: RadioGroupProps): import("react").JSX.Element;
|
|
37
|
+
displayName: string;
|
|
38
|
+
};
|
|
39
|
+
//#endregion
|
|
40
|
+
//# sourceMappingURL=radio-group.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { RadioGroup as RadioGroup$1 } from "@base-ui/react/radio-group";
|
|
4
|
+
//#region src/components/fields/radio/radio-group.tsx
|
|
5
|
+
/**
|
|
6
|
+
* Guarda o `value` do `Radio.Root` marcado dentro dele: só um fica marcado por vez. Sem estilo de
|
|
7
|
+
* layout: a disposição vem por `className`.
|
|
8
|
+
*
|
|
9
|
+
* O Base UI não tem orientação: as setas andam entre as opções nas duas direções, qualquer que
|
|
10
|
+
* seja a disposição. Dê o nome ao grupo com `aria-labelledby` ou `aria-label`, ou, num formulário,
|
|
11
|
+
* pelo `Fieldset.Root` (`<Fieldset.Root render={<Radio.Group />}>`, dentro de um `Field.Root`
|
|
12
|
+
* com `name`).
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* <Radio.Group
|
|
17
|
+
* aria-labelledby="storage-label"
|
|
18
|
+
* defaultValue="ssd"
|
|
19
|
+
* className="flex flex-col gap-3"
|
|
20
|
+
* >
|
|
21
|
+
* <span id="storage-label">Armazenamento</span>
|
|
22
|
+
*
|
|
23
|
+
* <label>
|
|
24
|
+
* <Radio.Root value="ssd">
|
|
25
|
+
* <Radio.Indicator />
|
|
26
|
+
* </Radio.Root>
|
|
27
|
+
* SSD
|
|
28
|
+
* </label>
|
|
29
|
+
* …
|
|
30
|
+
* </Radio.Group>
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
const RadioGroup = (props) => {
|
|
34
|
+
const { className, ...rest } = props;
|
|
35
|
+
return /* @__PURE__ */ jsx(RadioGroup$1, {
|
|
36
|
+
"data-component": "Radio.Group",
|
|
37
|
+
className: mergeStateClassNames([], className),
|
|
38
|
+
...rest
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
RadioGroup.displayName = "Radio.Group";
|
|
42
|
+
//#endregion
|
|
43
|
+
export { RadioGroup };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=radio-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-group.js","names":["BaseRadioGroup"],"sources":["../../../../src/components/fields/radio/radio-group.tsx"],"sourcesContent":["import { RadioGroup as BaseRadioGroup } from '@base-ui/react/radio-group';\nimport { mergeStateClassNames } from '#utils';\n\nexport type RadioGroupProps = BaseRadioGroup.Props;\n\nexport type RadioGroupState = BaseRadioGroup.State;\n\nexport type RadioGroupChangeEventDetails = BaseRadioGroup.ChangeEventDetails;\n\nexport type RadioGroupChangeEventReason = BaseRadioGroup.ChangeEventReason;\n\n/**\n * Guarda o `value` do `Radio.Root` marcado dentro dele: só um fica marcado por vez. Sem estilo de\n * layout: a disposição vem por `className`.\n *\n * O Base UI não tem orientação: as setas andam entre as opções nas duas direções, qualquer que\n * seja a disposição. Dê o nome ao grupo com `aria-labelledby` ou `aria-label`, ou, num formulário,\n * pelo `Fieldset.Root` (`<Fieldset.Root render={<Radio.Group />}>`, dentro de um `Field.Root`\n * com `name`).\n *\n * @example\n * ```tsx\n * <Radio.Group\n * aria-labelledby=\"storage-label\"\n * defaultValue=\"ssd\"\n * className=\"flex flex-col gap-3\"\n * >\n * <span id=\"storage-label\">Armazenamento</span>\n *\n * <label>\n * <Radio.Root value=\"ssd\">\n * <Radio.Indicator />\n * </Radio.Root>\n * SSD\n * </label>\n * …\n * </Radio.Group>\n * ```\n */\nexport const RadioGroup = (props: RadioGroupProps) => {\n const { className, ...rest } = props;\n\n return (\n <BaseRadioGroup\n data-component=\"Radio.Group\"\n className={mergeStateClassNames([], className)}\n {...rest}\n />\n );\n};\n\nRadioGroup.displayName = 'Radio.Group';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAa,cAAc,UAA2B;CACpD,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,cAAD;EACE,kBAAe;EACf,WAAW,qBAAqB,CAAC,GAAG,SAAS;EAC7C,GAAI;CACL,CAAA;AAEL;AAEA,WAAW,cAAc"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Radio } from "@base-ui/react/radio";
|
|
2
|
+
//#region src/components/fields/radio/radio-indicator.d.ts
|
|
3
|
+
export type RadioIndicatorProps = Radio.Indicator.Props;
|
|
4
|
+
export type RadioIndicatorState = Radio.Indicator.State;
|
|
5
|
+
/**
|
|
6
|
+
* O ponto dentro do círculo, na cor do texto do `Radio.Root`. Só existe no DOM marcado (ou com
|
|
7
|
+
* `keepMounted`). O `Radio.Root` define o tamanho do ponto pelo `size`, em `--radio-dot-size`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const RadioIndicator: {
|
|
10
|
+
(props: RadioIndicatorProps): import("react").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
//#endregion
|
|
14
|
+
//# sourceMappingURL=radio-indicator.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Radio } from "@base-ui/react/radio";
|
|
4
|
+
//#region src/components/fields/radio/radio-indicator.tsx
|
|
5
|
+
/**
|
|
6
|
+
* O ponto dentro do círculo, na cor do texto do `Radio.Root`. Só existe no DOM marcado (ou com
|
|
7
|
+
* `keepMounted`). O `Radio.Root` define o tamanho do ponto pelo `size`, em `--radio-dot-size`.
|
|
8
|
+
*/
|
|
9
|
+
const RadioIndicator = (props) => {
|
|
10
|
+
const { className, ...rest } = props;
|
|
11
|
+
return /* @__PURE__ */ jsx(Radio.Indicator, {
|
|
12
|
+
"data-component": "Radio.Indicator",
|
|
13
|
+
className: mergeStateClassNames([
|
|
14
|
+
"block",
|
|
15
|
+
"size-(--radio-dot-size)",
|
|
16
|
+
"rounded-full",
|
|
17
|
+
"bg-current",
|
|
18
|
+
"not-motion-reduced:transition-transform",
|
|
19
|
+
"not-motion-reduced:ease-enter",
|
|
20
|
+
"not-motion-reduced:duration-150",
|
|
21
|
+
"not-motion-reduced:data-starting-style:scale-0",
|
|
22
|
+
"not-motion-reduced:data-ending-style:scale-0",
|
|
23
|
+
"not-motion-reduced:data-ending-style:ease-exit",
|
|
24
|
+
"not-motion-reduced:data-ending-style:duration-100"
|
|
25
|
+
], className),
|
|
26
|
+
...rest
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
RadioIndicator.displayName = "Radio.Indicator";
|
|
30
|
+
//#endregion
|
|
31
|
+
export { RadioIndicator };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=radio-indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-indicator.js","names":["BaseRadio"],"sources":["../../../../src/components/fields/radio/radio-indicator.tsx"],"sourcesContent":["import { Radio as BaseRadio } from '@base-ui/react/radio';\nimport { mergeStateClassNames } from '#utils';\n\nexport type RadioIndicatorProps = BaseRadio.Indicator.Props;\n\nexport type RadioIndicatorState = BaseRadio.Indicator.State;\n\n/**\n * O ponto dentro do círculo, na cor do texto do `Radio.Root`. Só existe no DOM marcado (ou com\n * `keepMounted`). O `Radio.Root` define o tamanho do ponto pelo `size`, em `--radio-dot-size`.\n */\nexport const RadioIndicator = (props: RadioIndicatorProps) => {\n const { className, ...rest } = props;\n\n return (\n <BaseRadio.Indicator\n data-component=\"Radio.Indicator\"\n className={mergeStateClassNames(\n [\n 'block',\n 'size-(--radio-dot-size)',\n 'rounded-full',\n 'bg-current',\n\n // O ponto cresce de 0 ao marcar e sai mais curto ao desmarcar.\n 'not-motion-reduced:transition-transform',\n 'not-motion-reduced:ease-enter',\n 'not-motion-reduced:duration-150',\n 'not-motion-reduced:data-starting-style:scale-0',\n 'not-motion-reduced:data-ending-style:scale-0',\n 'not-motion-reduced:data-ending-style:ease-exit',\n 'not-motion-reduced:data-ending-style:duration-100',\n ],\n className,\n )}\n {...rest}\n />\n );\n};\n\nRadioIndicator.displayName = 'Radio.Indicator';\n"],"mappings":";;;;;;;;AAWA,MAAa,kBAAkB,UAA+B;CAC5D,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,MAAU,WAAX;EACE,kBAAe;EACf,WAAW,qBACT;GACE;GACA;GACA;GACA;GAGA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,GACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,eAAe,cAAc"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ColorSchemeCore } from "../../../types/color-scheme.js";
|
|
2
|
+
//#region src/components/fields/radio/radio-root-variants.d.ts
|
|
3
|
+
export type RadioRootVariants = {
|
|
4
|
+
/**
|
|
5
|
+
* Cor do círculo marcado, do ponto e do anel de foco.
|
|
6
|
+
*
|
|
7
|
+
* @default 'gray'
|
|
8
|
+
*/
|
|
9
|
+
colorScheme?: ColorSchemeCore;
|
|
10
|
+
/**
|
|
11
|
+
* Tamanho do círculo. O ponto do `Radio.Indicator` acompanha.
|
|
12
|
+
*
|
|
13
|
+
* @default 'sm'
|
|
14
|
+
*/
|
|
15
|
+
size?: 'xs' | 'sm' | 'md' | 'lg';
|
|
16
|
+
/**
|
|
17
|
+
* Desenho do círculo marcado.
|
|
18
|
+
*
|
|
19
|
+
* @default 'solid'
|
|
20
|
+
*/
|
|
21
|
+
variant?: 'solid' | 'outline' | 'subtle';
|
|
22
|
+
};
|
|
23
|
+
export declare const radioRootDefaultVariants: Required<RadioRootVariants>;
|
|
24
|
+
/**
|
|
25
|
+
* O `RadioCard.Indicator` copia o círculo e o ponto (`solid`, `size="sm"`), e o
|
|
26
|
+
* `RadioCard.Item` copia as classes de estado (foco, desabilitado, somente leitura e inválido).
|
|
27
|
+
*
|
|
28
|
+
* Copia o `checkboxRootVariants`, com as variáveis `--radio-*`. Diferenças:
|
|
29
|
+
*
|
|
30
|
+
* - o círculo é `rounded-full`, sem `corner-squircle`;
|
|
31
|
+
* - não há `indeterminate`;
|
|
32
|
+
* - o `size` declara `--radio-dot-size`, que o `Radio.Indicator` lê para dimensionar o ponto,
|
|
33
|
+
* em vez de dimensionar um svg.
|
|
34
|
+
*/
|
|
35
|
+
export declare const radioRootVariants: (props?: ({
|
|
36
|
+
colorScheme?: "gray" | "accent" | null | undefined;
|
|
37
|
+
size?: "xs" | "sm" | "md" | "lg" | null | undefined;
|
|
38
|
+
variant?: "solid" | "subtle" | "outline" | null | undefined;
|
|
39
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
40
|
+
//#endregion
|
|
41
|
+
//# sourceMappingURL=radio-root-variants.d.ts.map
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
//#region src/components/fields/radio/radio-root-variants.ts
|
|
3
|
+
const radioRootDefaultVariants = {
|
|
4
|
+
colorScheme: "gray",
|
|
5
|
+
size: "sm",
|
|
6
|
+
variant: "solid"
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* O `RadioCard.Indicator` copia o círculo e o ponto (`solid`, `size="sm"`), e o
|
|
10
|
+
* `RadioCard.Item` copia as classes de estado (foco, desabilitado, somente leitura e inválido).
|
|
11
|
+
*
|
|
12
|
+
* Copia o `checkboxRootVariants`, com as variáveis `--radio-*`. Diferenças:
|
|
13
|
+
*
|
|
14
|
+
* - o círculo é `rounded-full`, sem `corner-squircle`;
|
|
15
|
+
* - não há `indeterminate`;
|
|
16
|
+
* - o `size` declara `--radio-dot-size`, que o `Radio.Indicator` lê para dimensionar o ponto,
|
|
17
|
+
* em vez de dimensionar um svg.
|
|
18
|
+
*/
|
|
19
|
+
const radioRootVariants = cva([
|
|
20
|
+
"inline-flex",
|
|
21
|
+
"items-center",
|
|
22
|
+
"justify-center",
|
|
23
|
+
"shrink-0",
|
|
24
|
+
"align-middle",
|
|
25
|
+
"border",
|
|
26
|
+
"rounded-full",
|
|
27
|
+
"cursor-pointer",
|
|
28
|
+
"select-none",
|
|
29
|
+
"focus-ring-outside",
|
|
30
|
+
"data-disabled:opacity-50",
|
|
31
|
+
"data-disabled:cursor-not-allowed",
|
|
32
|
+
"data-readonly:cursor-default",
|
|
33
|
+
"data-invalid:not-data-checked:border-red-9",
|
|
34
|
+
"aria-invalid:not-data-checked:border-red-9",
|
|
35
|
+
"data-invalid:ring-red-9",
|
|
36
|
+
"aria-invalid:ring-red-9"
|
|
37
|
+
], {
|
|
38
|
+
variants: {
|
|
39
|
+
colorScheme: {
|
|
40
|
+
gray: [
|
|
41
|
+
"[--radio-solid-bg:var(--color-black)]",
|
|
42
|
+
"dark:[--radio-solid-bg:var(--color-white)]",
|
|
43
|
+
"[--radio-subtle-bg:var(--gray-4)]",
|
|
44
|
+
"[--radio-fg:var(--gray-12)]",
|
|
45
|
+
"ring-gray-9"
|
|
46
|
+
],
|
|
47
|
+
accent: [
|
|
48
|
+
"[--radio-solid-bg:var(--accent-9)]",
|
|
49
|
+
"[--radio-subtle-bg:var(--accent-4)]",
|
|
50
|
+
"[--radio-fg:var(--accent-11)]",
|
|
51
|
+
"ring-accent-9"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
size: {
|
|
55
|
+
xs: ["size-3", "[--radio-dot-size:--spacing(1)]"],
|
|
56
|
+
sm: ["size-4", "[--radio-dot-size:--spacing(1.5)]"],
|
|
57
|
+
md: ["size-5", "[--radio-dot-size:--spacing(2)]"],
|
|
58
|
+
lg: ["size-6", "[--radio-dot-size:--spacing(2.5)]"]
|
|
59
|
+
},
|
|
60
|
+
variant: {
|
|
61
|
+
solid: [
|
|
62
|
+
"border-gray-7",
|
|
63
|
+
"data-checked:border-(--radio-solid-bg)",
|
|
64
|
+
"data-checked:bg-(--radio-solid-bg)",
|
|
65
|
+
"text-white"
|
|
66
|
+
],
|
|
67
|
+
outline: [
|
|
68
|
+
"border-gray-7",
|
|
69
|
+
"data-checked:border-(--radio-solid-bg)",
|
|
70
|
+
"text-(--radio-fg)"
|
|
71
|
+
],
|
|
72
|
+
subtle: [
|
|
73
|
+
"border-(--radio-subtle-bg)",
|
|
74
|
+
"bg-(--radio-subtle-bg)",
|
|
75
|
+
"text-(--radio-fg)"
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
compoundVariants: [{
|
|
80
|
+
variant: "solid",
|
|
81
|
+
colorScheme: "gray",
|
|
82
|
+
className: ["text-white", "dark:text-black"]
|
|
83
|
+
}],
|
|
84
|
+
defaultVariants: {
|
|
85
|
+
colorScheme: radioRootDefaultVariants.colorScheme,
|
|
86
|
+
size: radioRootDefaultVariants.size,
|
|
87
|
+
variant: radioRootDefaultVariants.variant
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
//#endregion
|
|
91
|
+
export { radioRootDefaultVariants, radioRootVariants };
|
|
92
|
+
|
|
93
|
+
//# sourceMappingURL=radio-root-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-root-variants.js","names":[],"sources":["../../../../src/components/fields/radio/radio-root-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport type { ColorSchemeCore } from '#types';\n\nexport type RadioRootVariants = {\n /**\n * Cor do círculo marcado, do ponto e do anel de foco.\n *\n * @default 'gray'\n */\n colorScheme?: ColorSchemeCore;\n /**\n * Tamanho do círculo. O ponto do `Radio.Indicator` acompanha.\n *\n * @default 'sm'\n */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n /**\n * Desenho do círculo marcado.\n *\n * @default 'solid'\n */\n variant?: 'solid' | 'outline' | 'subtle';\n};\n\nexport const radioRootDefaultVariants: Required<RadioRootVariants> = {\n colorScheme: 'gray',\n size: 'sm',\n variant: 'solid',\n};\n\n/**\n * O `RadioCard.Indicator` copia o círculo e o ponto (`solid`, `size=\"sm\"`), e o\n * `RadioCard.Item` copia as classes de estado (foco, desabilitado, somente leitura e inválido).\n *\n * Copia o `checkboxRootVariants`, com as variáveis `--radio-*`. Diferenças:\n *\n * - o círculo é `rounded-full`, sem `corner-squircle`;\n * - não há `indeterminate`;\n * - o `size` declara `--radio-dot-size`, que o `Radio.Indicator` lê para dimensionar o ponto,\n * em vez de dimensionar um svg.\n */\nexport const radioRootVariants = cva(\n [\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n 'align-middle',\n\n 'border',\n 'rounded-full',\n\n 'cursor-pointer',\n 'select-none',\n\n 'focus-ring-outside',\n\n 'data-disabled:opacity-50',\n 'data-disabled:cursor-not-allowed',\n\n 'data-readonly:cursor-default',\n\n // Só o círculo desmarcado muda: o erro de um radio quase sempre é \"não marcado\".\n 'data-invalid:not-data-checked:border-red-9',\n 'aria-invalid:not-data-checked:border-red-9',\n 'data-invalid:ring-red-9',\n 'aria-invalid:ring-red-9',\n ],\n {\n variants: {\n colorScheme: {\n gray: [\n '[--radio-solid-bg:var(--color-black)]',\n 'dark:[--radio-solid-bg:var(--color-white)]',\n '[--radio-subtle-bg:var(--gray-4)]',\n '[--radio-fg:var(--gray-12)]',\n 'ring-gray-9',\n ],\n accent: [\n '[--radio-solid-bg:var(--accent-9)]',\n '[--radio-subtle-bg:var(--accent-4)]',\n '[--radio-fg:var(--accent-11)]',\n 'ring-accent-9',\n ],\n },\n size: {\n xs: ['size-3', '[--radio-dot-size:--spacing(1)]'],\n sm: ['size-4', '[--radio-dot-size:--spacing(1.5)]'],\n md: ['size-5', '[--radio-dot-size:--spacing(2)]'],\n lg: ['size-6', '[--radio-dot-size:--spacing(2.5)]'],\n },\n variant: {\n // Borda neutra desmarcado; marcado, o círculo inteiro na cor.\n solid: [\n 'border-gray-7',\n\n 'data-checked:border-(--radio-solid-bg)',\n 'data-checked:bg-(--radio-solid-bg)',\n\n 'text-white',\n ],\n // Borda neutra desmarcado; marcado, só a borda e o ponto na cor.\n outline: [\n 'border-gray-7',\n\n 'data-checked:border-(--radio-solid-bg)',\n\n 'text-(--radio-fg)',\n ],\n // Fundo claro da cor nos dois estados; marcado, o ponto na cor.\n subtle: [\n 'border-(--radio-subtle-bg)',\n 'bg-(--radio-subtle-bg)',\n\n 'text-(--radio-fg)',\n ],\n },\n },\n compoundVariants: [\n {\n variant: 'solid',\n colorScheme: 'gray',\n className: ['text-white', 'dark:text-black'],\n },\n ],\n defaultVariants: {\n colorScheme: radioRootDefaultVariants.colorScheme,\n size: radioRootDefaultVariants.size,\n variant: radioRootDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAwBA,MAAa,2BAAwD;CACnE,aAAa;CACb,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;AAaA,MAAa,oBAAoB,IAC/B;CACE;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CAEA;CACA;CAEA;CAGA;CACA;CACA;CACA;AACF,GACA;CACE,UAAU;EACR,aAAa;GACX,MAAM;IACJ;IACA;IACA;IACA;IACA;GACF;GACA,QAAQ;IACN;IACA;IACA;IACA;GACF;EACF;EACA,MAAM;GACJ,IAAI,CAAC,UAAU,iCAAiC;GAChD,IAAI,CAAC,UAAU,mCAAmC;GAClD,IAAI,CAAC,UAAU,iCAAiC;GAChD,IAAI,CAAC,UAAU,mCAAmC;EACpD;EACA,SAAS;GAEP,OAAO;IACL;IAEA;IACA;IAEA;GACF;GAEA,SAAS;IACP;IAEA;IAEA;GACF;GAEA,QAAQ;IACN;IACA;IAEA;GACF;EACF;CACF;CACA,kBAAkB,CAChB;EACE,SAAS;EACT,aAAa;EACb,WAAW,CAAC,cAAc,iBAAiB;CAC7C,CACF;CACA,iBAAiB;EACf,aAAa,yBAAyB;EACtC,MAAM,yBAAyB;EAC/B,SAAS,yBAAyB;CACpC;AACF,CACF"}
|