@lucasbernardosn/react-ui 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +141 -0
- package/dist/components/buttons/button/button-variants.d.ts +1 -1
- package/dist/components/buttons/button/button-variants.js +15 -21
- 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/clipboard-button/clipboard-button.d.ts +1 -1
- package/dist/components/buttons/clipboard-button/clipboard-button.js +1 -1
- package/dist/components/buttons/clipboard-button/clipboard-button.js.map +1 -1
- package/dist/components/buttons/close-button/close-button.d.ts +1 -1
- package/dist/components/buttons/close-button/close-button.js.map +1 -1
- package/dist/components/buttons/icon-button/icon-button.d.ts +1 -1
- package/dist/components/buttons/icon-button/icon-button.js +1 -1
- package/dist/components/buttons/icon-button/icon-button.js.map +1 -1
- package/dist/components/buttons/responsive-button/responsive-button.d.ts +1 -1
- package/dist/components/buttons/responsive-button/responsive-button.js.map +1 -1
- package/dist/components/collections/async-select/async-select-aria-messages.d.ts +15 -0
- package/dist/components/collections/async-select/async-select-aria-messages.js +51 -0
- package/dist/components/collections/async-select/async-select-aria-messages.js.map +1 -0
- package/dist/components/collections/async-select/async-select-components.d.ts +5 -0
- package/dist/components/collections/async-select/async-select-components.js +67 -0
- package/dist/components/collections/async-select/async-select-components.js.map +1 -0
- package/dist/components/collections/async-select/async-select-variants.d.ts +23 -0
- package/dist/components/collections/async-select/async-select-variants.js +378 -0
- package/dist/components/collections/async-select/async-select-variants.js.map +1 -0
- package/dist/components/collections/async-select/async-select.d.ts +62 -0
- package/dist/components/collections/async-select/async-select.js +121 -0
- package/dist/components/collections/async-select/async-select.js.map +1 -0
- package/dist/components/collections/async-select/index.d.ts +3 -0
- package/dist/components/collections/async-select/index.js +2 -0
- package/dist/components/collections/async-select/use-async-select-load.d.ts +26 -0
- package/dist/components/collections/async-select/use-async-select-load.js +76 -0
- package/dist/components/collections/async-select/use-async-select-load.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-arrow.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-arrow.js +43 -0
- package/dist/components/collections/autocomplete/autocomplete-arrow.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-backdrop.d.ts +16 -0
- package/dist/components/collections/autocomplete/autocomplete-backdrop.js +36 -0
- package/dist/components/collections/autocomplete/autocomplete-backdrop.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-clear.d.ts +17 -0
- package/dist/components/collections/autocomplete/autocomplete-clear.js +47 -0
- package/dist/components/collections/autocomplete/autocomplete-clear.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-collection.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-collection.js +15 -0
- package/dist/components/collections/autocomplete/autocomplete-collection.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-empty.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-empty.js +24 -0
- package/dist/components/collections/autocomplete/autocomplete-empty.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.d.ts +12 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js +65 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label.d.ts +13 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label.js +23 -0
- package/dist/components/collections/autocomplete/autocomplete-group-label.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-group.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-group.js +18 -0
- package/dist/components/collections/autocomplete/autocomplete-group.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-icon.d.ts +13 -0
- package/dist/components/collections/autocomplete/autocomplete-icon.js +23 -0
- package/dist/components/collections/autocomplete/autocomplete-icon.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group-variants.d.ts +18 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group-variants.js +38 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group.d.ts +15 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group.js +25 -0
- package/dist/components/collections/autocomplete/autocomplete-input-group.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-input-variants.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-input-variants.js +123 -0
- package/dist/components/collections/autocomplete/autocomplete-input-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-input.d.ts +16 -0
- package/dist/components/collections/autocomplete/autocomplete-input.js +29 -0
- package/dist/components/collections/autocomplete/autocomplete-input.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-item-variants.d.ts +12 -0
- package/dist/components/collections/autocomplete/autocomplete-item-variants.js +85 -0
- package/dist/components/collections/autocomplete/autocomplete-item-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-item.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-item.js +24 -0
- package/dist/components/collections/autocomplete/autocomplete-item.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-list.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-list.js +31 -0
- package/dist/components/collections/autocomplete/autocomplete-list.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-message-variants.d.ts +13 -0
- package/dist/components/collections/autocomplete/autocomplete-message-variants.js +54 -0
- package/dist/components/collections/autocomplete/autocomplete-message-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.d.ts +13 -0
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.js +43 -0
- package/dist/components/collections/autocomplete/autocomplete-popup-variants.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-popup.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-popup.js +22 -0
- package/dist/components/collections/autocomplete/autocomplete-popup.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-portal.d.ts +13 -0
- package/dist/components/collections/autocomplete/autocomplete-portal.js +17 -0
- package/dist/components/collections/autocomplete/autocomplete-portal.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-positioner.d.ts +16 -0
- package/dist/components/collections/autocomplete/autocomplete-positioner.js +28 -0
- package/dist/components/collections/autocomplete/autocomplete-positioner.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-root.d.ts +66 -0
- package/dist/components/collections/autocomplete/autocomplete-root.js +18 -0
- package/dist/components/collections/autocomplete/autocomplete-root.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-row.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-row.js +18 -0
- package/dist/components/collections/autocomplete/autocomplete-row.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-separator.d.ts +16 -0
- package/dist/components/collections/autocomplete/autocomplete-separator.js +28 -0
- package/dist/components/collections/autocomplete/autocomplete-separator.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-status.d.ts +17 -0
- package/dist/components/collections/autocomplete/autocomplete-status.js +27 -0
- package/dist/components/collections/autocomplete/autocomplete-status.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-trigger.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-trigger.js +37 -0
- package/dist/components/collections/autocomplete/autocomplete-trigger.js.map +1 -0
- package/dist/components/collections/autocomplete/autocomplete-value.d.ts +14 -0
- package/dist/components/collections/autocomplete/autocomplete-value.js +15 -0
- package/dist/components/collections/autocomplete/autocomplete-value.js.map +1 -0
- package/dist/components/collections/autocomplete/index.d.ts +2 -0
- package/dist/components/collections/autocomplete/index.js +2 -0
- package/dist/components/collections/autocomplete/index.parts.d.ts +29 -0
- package/dist/components/collections/autocomplete/index.parts.js +53 -0
- package/dist/components/collections/autocomplete/index.parts.js.map +1 -0
- package/dist/components/collections/autocomplete/use-autocomplete-context.d.ts +24 -0
- package/dist/components/collections/autocomplete/use-autocomplete-context.js +14 -0
- package/dist/components/collections/autocomplete/use-autocomplete-context.js.map +1 -0
- package/dist/components/collections/autocomplete/use-autocomplete-filter.d.ts +22 -0
- package/dist/components/collections/autocomplete/use-autocomplete-filter.js +22 -0
- package/dist/components/collections/autocomplete/use-autocomplete-filter.js.map +1 -0
- package/dist/components/collections/select/select-group-label-variants.d.ts +2 -2
- package/dist/components/collections/select/select-group-label-variants.js +3 -3
- package/dist/components/collections/select/select-group-label-variants.js.map +1 -1
- package/dist/components/collections/select/select-item-variants.d.ts +2 -2
- package/dist/components/collections/select/select-item-variants.js +7 -7
- package/dist/components/collections/select/select-item-variants.js.map +1 -1
- package/dist/components/collections/select/select-root.d.ts +1 -1
- package/dist/components/collections/select/select-root.js +1 -1
- package/dist/components/collections/select/select-root.js.map +1 -1
- package/dist/components/collections/select/select-separator.d.ts +2 -2
- package/dist/components/collections/select/select-separator.js +2 -2
- package/dist/components/collections/select/select-separator.js.map +1 -1
- package/dist/components/collections/select/select-trigger-variants.d.ts +3 -3
- package/dist/components/collections/select/select-trigger-variants.js +2 -2
- package/dist/components/collections/select/select-trigger-variants.js.map +1 -1
- package/dist/components/collections/select/select-value.js +1 -1
- package/dist/components/collections/select/select-value.js.map +1 -1
- package/dist/components/collections/tree-view/index.parts.d.ts +3 -3
- package/dist/components/collections/tree-view/index.parts.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-branch-content.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-branch-content.js +1 -1
- package/dist/components/collections/tree-view/tree-view-branch-content.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-branch.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-branch.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-node-provider.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-node-provider.js +1 -1
- package/dist/components/collections/tree-view/tree-view-node-provider.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-node-rename-input.js +2 -1
- package/dist/components/collections/tree-view/tree-view-node-rename-input.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.js +5 -0
- package/dist/components/collections/tree-view/tree-view-node.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-root-provider.d.ts +1 -1
- package/dist/components/collections/tree-view/tree-view-root-provider.js +2 -6
- package/dist/components/collections/tree-view/tree-view-root-provider.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-root.d.ts +2 -2
- package/dist/components/collections/tree-view/tree-view-root.js +3 -7
- package/dist/components/collections/tree-view/tree-view-root.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-tree-variants.d.ts +2 -4
- package/dist/components/collections/tree-view/tree-view-tree-variants.js +7 -35
- package/dist/components/collections/tree-view/tree-view-tree-variants.js.map +1 -1
- package/dist/components/collections/tree-view/tree-view-tree.d.ts +2 -3
- package/dist/components/collections/tree-view/tree-view-tree.js +4 -8
- package/dist/components/collections/tree-view/tree-view-tree.js.map +1 -1
- package/dist/components/collections/tree-view/use-tree-view-variants-context.d.ts +0 -7
- package/dist/components/collections/tree-view/use-tree-view-variants-context.js +0 -1
- package/dist/components/collections/tree-view/use-tree-view-variants-context.js.map +1 -1
- package/dist/components/collections/tree-view/use-tree-view.d.ts +1 -1
- package/dist/components/collections/tree-view/use-tree-view.js.map +1 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.d.ts +27 -0
- package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.js +59 -0
- package/dist/components/disclosure/breadcrumb/breadcrumb-ellipsis.js.map +1 -0
- package/dist/components/disclosure/breadcrumb/breadcrumb-link.js +2 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-link.js.map +1 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-list.js +1 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-list.js.map +1 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-separator.d.ts +2 -2
- package/dist/components/disclosure/breadcrumb/breadcrumb-separator.js +4 -3
- package/dist/components/disclosure/breadcrumb/breadcrumb-separator.js.map +1 -1
- package/dist/components/disclosure/breadcrumb/index.parts.d.ts +3 -2
- package/dist/components/disclosure/breadcrumb/index.parts.js +3 -1
- package/dist/components/disclosure/breadcrumb/index.parts.js.map +1 -1
- package/dist/components/disclosure/collapsible/collapsible-panel.d.ts +1 -1
- package/dist/components/disclosure/collapsible/collapsible-panel.js +1 -1
- package/dist/components/disclosure/collapsible/collapsible-panel.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.d.ts +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.js +1 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-root-variants.d.ts +0 -1
- package/dist/components/disclosure/tabs/tabs-root-variants.js +15 -23
- package/dist/components/disclosure/tabs/tabs-root-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-root.d.ts +4 -4
- package/dist/components/disclosure/tabs/tabs-root.js +4 -5
- package/dist/components/disclosure/tabs/tabs-root.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts +1 -2
- package/dist/components/disclosure/tabs/tabs-tab-variants.js +2 -6
- package/dist/components/disclosure/tabs/tabs-tab-variants.js.map +1 -1
- package/dist/components/disclosure/tabs/tabs-tab.js +1 -2
- package/dist/components/disclosure/tabs/tabs-tab.js.map +1 -1
- package/dist/components/disclosure/tabs/use-tabs-context.d.ts +0 -6
- package/dist/components/disclosure/tabs/use-tabs-context.js +0 -1
- package/dist/components/disclosure/tabs/use-tabs-context.js.map +1 -1
- package/dist/components/display/avatar/avatar-fallback.d.ts +17 -0
- package/dist/components/display/avatar/avatar-fallback.js +44 -0
- package/dist/components/display/avatar/avatar-fallback.js.map +1 -0
- package/dist/components/display/avatar/avatar-image.d.ts +18 -0
- package/dist/components/display/avatar/avatar-image.js +33 -0
- package/dist/components/display/avatar/avatar-image.js.map +1 -0
- package/dist/components/display/avatar/avatar-root-variants.d.ts +39 -0
- package/dist/components/display/avatar/avatar-root-variants.js +315 -0
- package/dist/components/display/avatar/avatar-root-variants.js.map +1 -0
- package/dist/components/display/avatar/avatar-root.d.ts +31 -0
- package/dist/components/display/avatar/avatar-root.js +52 -0
- package/dist/components/display/avatar/avatar-root.js.map +1 -0
- package/dist/components/display/avatar/get-avatar-color-scheme.d.ts +10 -0
- package/dist/components/display/avatar/get-avatar-color-scheme.js +45 -0
- package/dist/components/display/avatar/get-avatar-color-scheme.js.map +1 -0
- package/dist/components/display/avatar/index.d.ts +2 -0
- package/dist/components/display/avatar/index.js +2 -0
- package/dist/components/display/avatar/index.parts.d.ts +10 -0
- package/dist/components/display/avatar/index.parts.js +14 -0
- package/dist/components/display/avatar/index.parts.js.map +1 -0
- package/dist/components/display/avatar/use-avatar-context.d.ts +8 -0
- package/dist/components/display/avatar/use-avatar-context.js +10 -0
- package/dist/components/display/avatar/use-avatar-context.js.map +1 -0
- package/dist/components/display/badge/badge-variants.d.ts +41 -0
- package/dist/components/display/badge/badge-variants.js +330 -0
- package/dist/components/display/badge/badge-variants.js.map +1 -0
- package/dist/components/display/badge/badge.d.ts +23 -0
- package/dist/components/display/badge/badge.js +40 -0
- package/dist/components/display/badge/badge.js.map +1 -0
- package/dist/components/display/badge/index.d.ts +3 -0
- package/dist/components/display/badge/index.js +2 -0
- package/dist/components/display/card/card-description.d.ts +3 -4
- package/dist/components/display/card/card-description.js +5 -6
- package/dist/components/display/card/card-description.js.map +1 -1
- package/dist/components/display/card/card-header.d.ts +2 -2
- package/dist/components/display/card/card-header.js +3 -3
- package/dist/components/display/card/card-header.js.map +1 -1
- package/dist/components/display/card/card-root-variants.d.ts +3 -17
- package/dist/components/display/card/card-root-variants.js +27 -74
- package/dist/components/display/card/card-root-variants.js.map +1 -1
- package/dist/components/display/card/card-root.d.ts +1 -1
- package/dist/components/display/card/card-root.js +2 -2
- package/dist/components/display/card/card-root.js.map +1 -1
- package/dist/components/display/card/card-title.d.ts +6 -7
- package/dist/components/display/card/card-title.js +6 -7
- package/dist/components/display/card/card-title.js.map +1 -1
- package/dist/components/display/clipboard/clipboard-indicator.d.ts +1 -1
- package/dist/components/display/clipboard/clipboard-indicator.js.map +1 -1
- package/dist/components/display/clipboard/clipboard-root-provider.d.ts +1 -1
- package/dist/components/display/clipboard/clipboard-root-provider.js.map +1 -1
- package/dist/components/display/clipboard/clipboard-root.d.ts +1 -1
- package/dist/components/display/clipboard/clipboard-root.js +1 -1
- package/dist/components/display/clipboard/clipboard-root.js.map +1 -1
- package/dist/components/display/clipboard/use-clipboard.d.ts +1 -1
- package/dist/components/display/clipboard/use-clipboard.js.map +1 -1
- package/dist/components/display/data-list/data-list-item-variants.d.ts +2 -3
- package/dist/components/display/data-list/data-list-item-variants.js +22 -60
- package/dist/components/display/data-list/data-list-item-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-item.js +2 -5
- package/dist/components/display/data-list/data-list-item.js.map +1 -1
- package/dist/components/display/data-list/data-list-root-variants.d.ts +0 -1
- package/dist/components/display/data-list/data-list-root-variants.js +2 -8
- package/dist/components/display/data-list/data-list-root-variants.js.map +1 -1
- package/dist/components/display/data-list/data-list-root.d.ts +1 -1
- package/dist/components/display/data-list/data-list-root.js +2 -6
- package/dist/components/display/data-list/data-list-root.js.map +1 -1
- package/dist/components/display/data-list/use-data-list-context.d.ts +0 -6
- package/dist/components/display/data-list/use-data-list-context.js +1 -2
- package/dist/components/display/data-list/use-data-list-context.js.map +1 -1
- package/dist/components/display/status/index.d.ts +3 -0
- package/dist/components/display/status/index.js +2 -0
- package/dist/components/display/status/status-variants.d.ts +31 -0
- package/dist/components/display/status/status-variants.js +46 -0
- package/dist/components/display/status/status-variants.js.map +1 -0
- package/dist/components/display/status/status.d.ts +23 -0
- package/dist/components/display/status/status.js +36 -0
- package/dist/components/display/status/status.js.map +1 -0
- package/dist/components/display/tag/index.d.ts +2 -0
- package/dist/components/display/tag/index.js +2 -0
- package/dist/components/display/tag/index.parts.d.ts +10 -0
- package/dist/components/display/tag/index.parts.js +14 -0
- package/dist/components/display/tag/index.parts.js.map +1 -0
- package/dist/components/display/tag/tag-close.d.ts +16 -0
- package/dist/components/display/tag/tag-close.js +44 -0
- package/dist/components/display/tag/tag-close.js.map +1 -0
- package/dist/components/display/tag/tag-label.d.ts +12 -0
- package/dist/components/display/tag/tag-label.js +23 -0
- package/dist/components/display/tag/tag-label.js.map +1 -0
- package/dist/components/display/tag/tag-root-variants.d.ts +39 -0
- package/dist/components/display/tag/tag-root-variants.js +333 -0
- package/dist/components/display/tag/tag-root-variants.js.map +1 -0
- package/dist/components/display/tag/tag-root.d.ts +29 -0
- package/dist/components/display/tag/tag-root.js +46 -0
- package/dist/components/display/tag/tag-root.js.map +1 -0
- package/dist/components/feedback/alert/alert-content.d.ts +13 -0
- package/dist/components/feedback/alert/alert-content.js +30 -0
- package/dist/components/feedback/alert/alert-content.js.map +1 -0
- package/dist/components/feedback/alert/alert-description.d.ts +17 -0
- package/dist/components/feedback/alert/alert-description.js +33 -0
- package/dist/components/feedback/alert/alert-description.js.map +1 -0
- package/dist/components/feedback/alert/alert-indicator.d.ts +21 -0
- package/dist/components/feedback/alert/alert-indicator.js +56 -0
- package/dist/components/feedback/alert/alert-indicator.js.map +1 -0
- package/dist/components/feedback/alert/alert-root-variants.d.ts +13 -0
- package/dist/components/feedback/alert/alert-root-variants.js +75 -0
- package/dist/components/feedback/alert/alert-root-variants.js.map +1 -0
- package/dist/components/feedback/alert/alert-root.d.ts +33 -0
- package/dist/components/feedback/alert/alert-root.js +52 -0
- package/dist/components/feedback/alert/alert-root.js.map +1 -0
- package/dist/components/feedback/alert/alert-title.d.ts +22 -0
- package/dist/components/feedback/alert/alert-title.js +39 -0
- package/dist/components/feedback/alert/alert-title.js.map +1 -0
- package/dist/components/feedback/alert/index.d.ts +2 -0
- package/dist/components/feedback/alert/index.js +2 -0
- package/dist/components/feedback/alert/index.parts.d.ts +12 -0
- package/dist/components/feedback/alert/index.parts.js +18 -0
- package/dist/components/feedback/alert/index.parts.js.map +1 -0
- package/dist/components/feedback/alert/use-alert-context.d.ts +23 -0
- package/dist/components/feedback/alert/use-alert-context.js +14 -0
- package/dist/components/feedback/alert/use-alert-context.js.map +1 -0
- package/dist/components/feedback/empty-state/empty-state-content.d.ts +1 -2
- package/dist/components/feedback/empty-state/empty-state-content.js +2 -3
- package/dist/components/feedback/empty-state/empty-state-content.js.map +1 -1
- package/dist/components/feedback/empty-state/empty-state-description.d.ts +2 -2
- package/dist/components/feedback/empty-state/empty-state-description.js +4 -4
- package/dist/components/feedback/empty-state/empty-state-description.js.map +1 -1
- package/dist/components/feedback/empty-state/empty-state-indicator.d.ts +4 -3
- package/dist/components/feedback/empty-state/empty-state-indicator.js +5 -4
- package/dist/components/feedback/empty-state/empty-state-indicator.js.map +1 -1
- package/dist/components/feedback/empty-state/empty-state-root-variants.d.ts +2 -16
- package/dist/components/feedback/empty-state/empty-state-root-variants.js +16 -72
- package/dist/components/feedback/empty-state/empty-state-root-variants.js.map +1 -1
- package/dist/components/feedback/empty-state/empty-state-root.d.ts +3 -4
- package/dist/components/feedback/empty-state/empty-state-root.js +4 -5
- package/dist/components/feedback/empty-state/empty-state-root.js.map +1 -1
- package/dist/components/feedback/empty-state/empty-state-title.d.ts +4 -4
- package/dist/components/feedback/empty-state/empty-state-title.js +4 -4
- package/dist/components/feedback/empty-state/empty-state-title.js.map +1 -1
- package/dist/components/feedback/skeleton/skeleton-text.d.ts +1 -1
- package/dist/components/feedback/skeleton/skeleton-text.js +1 -1
- package/dist/components/feedback/skeleton/skeleton-text.js.map +1 -1
- package/dist/components/feedback/skeleton/skeleton.d.ts +1 -1
- package/dist/components/feedback/skeleton/skeleton.js +1 -1
- package/dist/components/feedback/skeleton/skeleton.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/index.d.ts +2 -0
- package/dist/components/feedback/toast/index.js +2 -0
- package/dist/components/feedback/toast/index.parts.d.ts +20 -0
- package/dist/components/feedback/toast/index.parts.js +37 -0
- package/dist/components/feedback/toast/index.parts.js.map +1 -0
- package/dist/components/feedback/toast/toast-action.d.ts +14 -0
- package/dist/components/feedback/toast/toast-action.js +21 -0
- package/dist/components/feedback/toast/toast-action.js.map +1 -0
- package/dist/components/feedback/toast/toast-close.d.ts +13 -0
- package/dist/components/feedback/toast/toast-close.js +20 -0
- package/dist/components/feedback/toast/toast-close.js.map +1 -0
- package/dist/components/feedback/toast/toast-content.d.ts +18 -0
- package/dist/components/feedback/toast/toast-content.js +35 -0
- package/dist/components/feedback/toast/toast-content.js.map +1 -0
- package/dist/components/feedback/toast/toast-description.d.ts +17 -0
- package/dist/components/feedback/toast/toast-description.js +29 -0
- package/dist/components/feedback/toast/toast-description.js.map +1 -0
- package/dist/components/feedback/toast/toast-indicator-variants.d.ts +10 -0
- package/dist/components/feedback/toast/toast-indicator-variants.js +27 -0
- package/dist/components/feedback/toast/toast-indicator-variants.js.map +1 -0
- package/dist/components/feedback/toast/toast-indicator.d.ts +18 -0
- package/dist/components/feedback/toast/toast-indicator.js +45 -0
- package/dist/components/feedback/toast/toast-indicator.js.map +1 -0
- package/dist/components/feedback/toast/toast-manager.d.ts +80 -0
- package/dist/components/feedback/toast/toast-manager.js +138 -0
- package/dist/components/feedback/toast/toast-manager.js.map +1 -0
- package/dist/components/feedback/toast/toast-outlet.d.ts +28 -0
- package/dist/components/feedback/toast/toast-outlet.js +108 -0
- package/dist/components/feedback/toast/toast-outlet.js.map +1 -0
- package/dist/components/feedback/toast/toast-placement.d.ts +20 -0
- package/dist/components/feedback/toast/toast-placement.js +51 -0
- package/dist/components/feedback/toast/toast-placement.js.map +1 -0
- package/dist/components/feedback/toast/toast-portal.d.ts +13 -0
- package/dist/components/feedback/toast/toast-portal.js +17 -0
- package/dist/components/feedback/toast/toast-portal.js.map +1 -0
- package/dist/components/feedback/toast/toast-provider.d.ts +15 -0
- package/dist/components/feedback/toast/toast-provider.js +17 -0
- package/dist/components/feedback/toast/toast-provider.js.map +1 -0
- package/dist/components/feedback/toast/toast-root-variants.d.ts +47 -0
- package/dist/components/feedback/toast/toast-root-variants.js +142 -0
- package/dist/components/feedback/toast/toast-root-variants.js.map +1 -0
- package/dist/components/feedback/toast/toast-root.d.ts +34 -0
- package/dist/components/feedback/toast/toast-root.js +67 -0
- package/dist/components/feedback/toast/toast-root.js.map +1 -0
- package/dist/components/feedback/toast/toast-title.d.ts +18 -0
- package/dist/components/feedback/toast/toast-title.js +31 -0
- package/dist/components/feedback/toast/toast-title.js.map +1 -0
- package/dist/components/feedback/toast/toast-viewport-variants.d.ts +17 -0
- package/dist/components/feedback/toast/toast-viewport-variants.js +33 -0
- package/dist/components/feedback/toast/toast-viewport-variants.js.map +1 -0
- package/dist/components/feedback/toast/toast-viewport.d.ts +19 -0
- package/dist/components/feedback/toast/toast-viewport.js +39 -0
- package/dist/components/feedback/toast/toast-viewport.js.map +1 -0
- package/dist/components/feedback/toast/use-toast-context.d.ts +18 -0
- package/dist/components/feedback/toast/use-toast-context.js +11 -0
- package/dist/components/feedback/toast/use-toast-context.js.map +1 -0
- package/dist/components/feedback/toast/use-toast-manager.d.ts +10 -0
- package/dist/components/feedback/toast/use-toast-manager.js +12 -0
- package/dist/components/feedback/toast/use-toast-manager.js.map +1 -0
- package/dist/components/feedback/toast/use-toast-root-context.d.ts +9 -0
- package/dist/components/feedback/toast/use-toast-root-context.js +10 -0
- package/dist/components/feedback/toast/use-toast-root-context.js.map +1 -0
- package/dist/components/fields/checkbox/checkbox-root-variants.d.ts +1 -1
- package/dist/components/fields/checkbox/checkbox-root.d.ts +1 -1
- package/dist/components/fields/checkbox/checkbox-root.js +1 -1
- package/dist/components/fields/checkbox/checkbox-root.js.map +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.d.ts +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js +2 -4
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.js.map +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input.d.ts +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input.js +1 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input.js.map +1 -1
- package/dist/components/fields/field/field-root.d.ts +1 -1
- package/dist/components/fields/field/field-root.js +1 -1
- package/dist/components/fields/field/field-root.js.map +1 -1
- package/dist/components/fields/fieldset/fieldset-legend.d.ts +8 -8
- package/dist/components/fields/fieldset/fieldset-legend.js +11 -10
- package/dist/components/fields/fieldset/fieldset-legend.js.map +1 -1
- package/dist/components/fields/form/form.d.ts +1 -1
- package/dist/components/fields/form/form.js.map +1 -1
- package/dist/components/fields/input/input-variants.d.ts +6 -5
- package/dist/components/fields/input/input-variants.js +8 -9
- package/dist/components/fields/input/input-variants.js.map +1 -1
- package/dist/components/fields/input/input.d.ts +1 -1
- package/dist/components/fields/input/input.js +1 -1
- package/dist/components/fields/input/input.js.map +1 -1
- package/dist/components/fields/number-input/number-input-variants.d.ts +1 -1
- package/dist/components/fields/number-input/number-input-variants.js +2 -4
- package/dist/components/fields/number-input/number-input-variants.js.map +1 -1
- package/dist/components/fields/number-input/number-input.d.ts +1 -1
- package/dist/components/fields/number-input/number-input.js +1 -1
- package/dist/components/fields/number-input/number-input.js.map +1 -1
- package/dist/components/fields/password-input/password-input.d.ts +1 -1
- package/dist/components/fields/password-input/password-input.js +1 -1
- package/dist/components/fields/password-input/password-input.js.map +1 -1
- package/dist/components/fields/pattern-input/pattern-input-variants.d.ts +1 -1
- package/dist/components/fields/pattern-input/pattern-input-variants.js +2 -4
- package/dist/components/fields/pattern-input/pattern-input-variants.js.map +1 -1
- package/dist/components/fields/pattern-input/pattern-input.d.ts +1 -1
- package/dist/components/fields/pattern-input/pattern-input.js +1 -1
- package/dist/components/fields/pattern-input/pattern-input.js.map +1 -1
- package/dist/components/fields/switch/switch-root.d.ts +1 -1
- package/dist/components/fields/switch/switch-root.js +1 -1
- package/dist/components/fields/switch/switch-root.js.map +1 -1
- package/dist/components/fields/textarea/textarea-variants.d.ts +1 -1
- package/dist/components/fields/textarea/textarea-variants.js +4 -6
- package/dist/components/fields/textarea/textarea-variants.js.map +1 -1
- package/dist/components/fields/textarea/textarea.d.ts +1 -1
- package/dist/components/fields/textarea/textarea.js +1 -1
- package/dist/components/fields/textarea/textarea.js.map +1 -1
- package/dist/components/layout/center-absolute/center-absolute.d.ts +1 -1
- package/dist/components/layout/center-absolute/center-absolute.js +1 -1
- package/dist/components/layout/center-absolute/center-absolute.js.map +1 -1
- package/dist/components/layout/float/float-variants.d.ts +1 -1
- package/dist/components/layout/float/float.d.ts +1 -1
- package/dist/components/layout/float/float.js +1 -1
- package/dist/components/layout/float/float.js.map +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport.d.ts +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport.js +1 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport.js.map +1 -1
- package/dist/components/layout/separator/separator.d.ts +1 -1
- package/dist/components/layout/separator/separator.js +1 -1
- package/dist/components/layout/separator/separator.js.map +1 -1
- package/dist/components/layout/splitter/splitter-panel.d.ts +1 -1
- package/dist/components/layout/splitter/splitter-panel.js +1 -1
- package/dist/components/layout/splitter/splitter-panel.js.map +1 -1
- package/dist/components/layout/splitter/splitter-resize-trigger.d.ts +1 -1
- package/dist/components/layout/splitter/splitter-resize-trigger.js +1 -1
- package/dist/components/layout/splitter/splitter-resize-trigger.js.map +1 -1
- package/dist/components/layout/splitter/splitter-root-provider.d.ts +1 -1
- package/dist/components/layout/splitter/splitter-root-provider.js.map +1 -1
- package/dist/components/layout/splitter/splitter-root.d.ts +1 -1
- package/dist/components/layout/splitter/splitter-root.js +1 -1
- package/dist/components/layout/splitter/splitter-root.js.map +1 -1
- package/dist/components/layout/splitter/use-splitter.d.ts +1 -1
- package/dist/components/layout/splitter/use-splitter.js.map +1 -1
- package/dist/components/layout/stack/stack.d.ts +1 -1
- package/dist/components/layout/stack/stack.js +1 -1
- package/dist/components/layout/stack/stack.js.map +1 -1
- package/dist/components/overlays/action-bar/action-bar-popup-variants.d.ts +1 -1
- package/dist/components/overlays/action-bar/action-bar-popup-variants.js +4 -4
- package/dist/components/overlays/action-bar/action-bar-popup-variants.js.map +1 -1
- package/dist/components/overlays/action-bar/action-bar-root.d.ts +1 -1
- package/dist/components/overlays/action-bar/action-bar-root.js +1 -1
- package/dist/components/overlays/action-bar/action-bar-root.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js +2 -3
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.js.map +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 +78 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js +172 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-imperative.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.d.ts +23 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js +28 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-outlet.js.map +1 -0
- 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-root.d.ts +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-root.js +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-root.js.map +1 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-store.d.ts +20 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js +75 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-store.js.map +1 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-trigger.js.map +1 -1
- package/dist/components/overlays/alert-dialog/index.parts.d.ts +5 -3
- package/dist/components/overlays/alert-dialog/index.parts.js +7 -2
- package/dist/components/overlays/alert-dialog/index.parts.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-body.d.ts +2 -2
- package/dist/components/overlays/dialog/dialog-body.js +2 -2
- package/dist/components/overlays/dialog/dialog-body.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-description.d.ts +1 -2
- package/dist/components/overlays/dialog/dialog-description.js +1 -2
- package/dist/components/overlays/dialog/dialog-description.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-footer.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog-footer.js +3 -4
- package/dist/components/overlays/dialog/dialog-footer.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-header.d.ts +3 -4
- package/dist/components/overlays/dialog/dialog-header.js +4 -5
- package/dist/components/overlays/dialog/dialog-header.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.d.ts +3 -4
- package/dist/components/overlays/dialog/dialog-popup-variants.js +5 -6
- package/dist/components/overlays/dialog/dialog-popup-variants.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-root.d.ts +1 -1
- package/dist/components/overlays/dialog/dialog-root.js +1 -1
- package/dist/components/overlays/dialog/dialog-root.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-title.d.ts +2 -3
- package/dist/components/overlays/dialog/dialog-title.js +4 -5
- package/dist/components/overlays/dialog/dialog-title.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-trigger.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-backdrop.js +2 -3
- package/dist/components/overlays/drawer/drawer-backdrop.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-footer.js +2 -3
- package/dist/components/overlays/drawer/drawer-footer.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-header.js +1 -1
- package/dist/components/overlays/drawer/drawer-header.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-indent-background.d.ts +17 -0
- package/dist/components/overlays/drawer/drawer-indent-background.js +28 -0
- package/dist/components/overlays/drawer/drawer-indent-background.js.map +1 -0
- package/dist/components/overlays/drawer/drawer-indent.d.ts +31 -0
- package/dist/components/overlays/drawer/drawer-indent.js +49 -0
- package/dist/components/overlays/drawer/drawer-indent.js.map +1 -0
- package/dist/components/overlays/drawer/drawer-popup-variants.d.ts +2 -26
- package/dist/components/overlays/drawer/drawer-popup-variants.js +102 -34
- package/dist/components/overlays/drawer/drawer-popup-variants.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-popup.js +3 -2
- package/dist/components/overlays/drawer/drawer-popup.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-provider.d.ts +17 -0
- package/dist/components/overlays/drawer/drawer-provider.js +18 -0
- package/dist/components/overlays/drawer/drawer-provider.js.map +1 -0
- package/dist/components/overlays/drawer/drawer-root.d.ts +1 -1
- package/dist/components/overlays/drawer/drawer-root.js +5 -2
- package/dist/components/overlays/drawer/drawer-root.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-swipe-area.d.ts +27 -0
- package/dist/components/overlays/drawer/drawer-swipe-area.js +46 -0
- package/dist/components/overlays/drawer/drawer-swipe-area.js.map +1 -0
- package/dist/components/overlays/drawer/drawer-title.js +2 -2
- package/dist/components/overlays/drawer/drawer-title.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-trigger.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-viewport.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-viewport.js +13 -1
- package/dist/components/overlays/drawer/drawer-viewport.js.map +1 -1
- package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.d.ts +34 -0
- package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.js +35 -0
- package/dist/components/overlays/drawer/drawer-virtual-keyboard-provider.js.map +1 -0
- package/dist/components/overlays/drawer/index.parts.d.ts +7 -2
- package/dist/components/overlays/drawer/index.parts.js +11 -1
- package/dist/components/overlays/drawer/index.parts.js.map +1 -1
- package/dist/components/overlays/drawer/use-drawer-context.d.ts +8 -1
- package/dist/components/overlays/drawer/use-drawer-context.js.map +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-item.d.ts +2 -2
- package/dist/components/overlays/menu/menu-item.js +2 -2
- package/dist/components/overlays/menu/menu-item.js.map +1 -1
- package/dist/components/overlays/menu/menu-root.js.map +1 -1
- package/dist/components/overlays/menu/menu-trigger.js.map +1 -1
- package/dist/components/overlays/popover/popover-backdrop.d.ts +1 -1
- package/dist/components/overlays/popover/popover-backdrop.js +1 -1
- package/dist/components/overlays/popover/popover-backdrop.js.map +1 -1
- package/dist/components/overlays/popover/popover-description.js +1 -0
- package/dist/components/overlays/popover/popover-description.js.map +1 -1
- package/dist/components/overlays/popover/popover-popup-variants.d.ts +5 -5
- package/dist/components/overlays/popover/popover-popup-variants.js +5 -5
- package/dist/components/overlays/popover/popover-popup-variants.js.map +1 -1
- package/dist/components/overlays/popover/popover-root.js.map +1 -1
- package/dist/components/overlays/popover/popover-title.d.ts +2 -3
- package/dist/components/overlays/popover/popover-title.js +6 -5
- package/dist/components/overlays/popover/popover-title.js.map +1 -1
- package/dist/components/overlays/popover/popover-trigger.js.map +1 -1
- package/dist/components/overlays/tooltip/simple-tooltip.d.ts +1 -1
- package/dist/components/overlays/tooltip/simple-tooltip.js +1 -1
- package/dist/components/overlays/tooltip/simple-tooltip.js.map +1 -1
- package/dist/components/overlays/tooltip/tooltip-popup.js +1 -1
- package/dist/components/overlays/tooltip/tooltip-popup.js.map +1 -1
- package/dist/components/overlays/tooltip/tooltip-root.js.map +1 -1
- package/dist/components/overlays/tooltip/tooltip-trigger.js.map +1 -1
- package/dist/components/typography/heading/heading.d.ts +1 -1
- package/dist/components/typography/heading/heading.js +1 -1
- package/dist/components/typography/heading/heading.js.map +1 -1
- package/dist/components/typography/kbd/kbd-variants.d.ts +1 -1
- package/dist/components/typography/kbd/kbd-variants.js +2 -2
- package/dist/components/typography/kbd/kbd-variants.js.map +1 -1
- package/dist/components/typography/kbd/kbd.d.ts +1 -1
- package/dist/components/typography/kbd/kbd.js +1 -1
- package/dist/components/typography/kbd/kbd.js.map +1 -1
- package/dist/components/typography/mark/mark-variants.d.ts +1 -1
- package/dist/components/typography/mark/mark-variants.js +2 -0
- package/dist/components/typography/mark/mark-variants.js.map +1 -1
- package/dist/components/typography/mark/mark.d.ts +1 -1
- package/dist/components/typography/mark/mark.js +1 -1
- package/dist/components/typography/mark/mark.js.map +1 -1
- package/dist/components/typography/pre/pre-variants.d.ts +1 -8
- package/dist/components/typography/pre/pre-variants.js +6 -23
- package/dist/components/typography/pre/pre-variants.js.map +1 -1
- package/dist/components/typography/pre/pre.d.ts +1 -1
- package/dist/components/typography/pre/pre.js +2 -6
- package/dist/components/typography/pre/pre.js.map +1 -1
- package/dist/components/utilities/for/for.d.ts +1 -1
- package/dist/components/utilities/for/for.js.map +1 -1
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +2 -2
- package/dist/hooks/use-breakpoint.d.ts +25 -12
- package/dist/hooks/use-breakpoint.js +44 -28
- package/dist/hooks/use-breakpoint.js.map +1 -1
- package/dist/hooks/use-pointer-type.d.ts +2 -6
- package/dist/hooks/use-pointer-type.js +4 -22
- package/dist/hooks/use-pointer-type.js.map +1 -1
- package/dist/types/color-scheme.d.ts +1 -1
- package/package.json +14 -13
- package/src/theme/theme.css +9 -0
- package/dist/components/buttons/button/button-variants.d.ts.map +0 -1
- package/dist/components/buttons/button/button.d.ts.map +0 -1
- package/dist/components/buttons/clipboard-button/clipboard-button.d.ts.map +0 -1
- package/dist/components/buttons/close-button/close-button.d.ts.map +0 -1
- package/dist/components/buttons/icon-button/icon-button-variants.d.ts.map +0 -1
- package/dist/components/buttons/icon-button/icon-button.d.ts.map +0 -1
- package/dist/components/buttons/responsive-button/responsive-button.d.ts.map +0 -1
- package/dist/components/collections/select/index.parts.d.ts.map +0 -1
- package/dist/components/collections/select/select-arrow.d.ts.map +0 -1
- package/dist/components/collections/select/select-backdrop.d.ts.map +0 -1
- package/dist/components/collections/select/select-context.d.ts.map +0 -1
- package/dist/components/collections/select/select-group-label-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-group-label.d.ts.map +0 -1
- package/dist/components/collections/select/select-group.d.ts.map +0 -1
- package/dist/components/collections/select/select-icon.d.ts.map +0 -1
- package/dist/components/collections/select/select-item-indicator.d.ts.map +0 -1
- package/dist/components/collections/select/select-item-text.d.ts.map +0 -1
- package/dist/components/collections/select/select-item-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-item.d.ts.map +0 -1
- package/dist/components/collections/select/select-label-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-label.d.ts.map +0 -1
- package/dist/components/collections/select/select-list.d.ts.map +0 -1
- package/dist/components/collections/select/select-popup-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-popup.d.ts.map +0 -1
- package/dist/components/collections/select/select-portal.d.ts.map +0 -1
- package/dist/components/collections/select/select-positioner.d.ts.map +0 -1
- package/dist/components/collections/select/select-root.d.ts.map +0 -1
- package/dist/components/collections/select/select-scroll-down-arrow-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-scroll-down-arrow.d.ts.map +0 -1
- package/dist/components/collections/select/select-scroll-up-arrow-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-scroll-up-arrow.d.ts.map +0 -1
- package/dist/components/collections/select/select-separator.d.ts.map +0 -1
- package/dist/components/collections/select/select-trigger-variants.d.ts.map +0 -1
- package/dist/components/collections/select/select-trigger.d.ts.map +0 -1
- package/dist/components/collections/select/select-value.d.ts.map +0 -1
- package/dist/components/collections/select/use-select-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/index.parts.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-collection.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-content.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-control.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-indent-guide.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-indicator.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-text.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch-trigger.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-branch.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-item-indicator.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-item-text.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-item.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-label.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-checkbox-indicator.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-checkbox.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-provider.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-rename-input.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node-variants.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-node.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-root-provider.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-root.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-text-class-names.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-tree-variants.d.ts.map +0 -1
- package/dist/components/collections/tree-view/tree-view-tree.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view-node-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view-node-props-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view-render-strategy-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view-variants-context.d.ts.map +0 -1
- package/dist/components/collections/tree-view/use-tree-view.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-current.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-item.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-link.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-list.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-root.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/breadcrumb-separator.d.ts.map +0 -1
- package/dist/components/disclosure/breadcrumb/index.parts.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/collapsible-indicator.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/collapsible-panel-variants.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/collapsible-panel.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/collapsible-root.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/collapsible-trigger.d.ts.map +0 -1
- package/dist/components/disclosure/collapsible/index.parts.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/index.parts.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-indicator-variants.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-indicator.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-list-variants.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-list.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-panel.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-root-variants.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-root.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-tab-variants.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/tabs-tab.d.ts.map +0 -1
- package/dist/components/disclosure/tabs/use-tabs-context.d.ts.map +0 -1
- package/dist/components/display/card/card-body.d.ts.map +0 -1
- package/dist/components/display/card/card-description.d.ts.map +0 -1
- package/dist/components/display/card/card-footer.d.ts.map +0 -1
- package/dist/components/display/card/card-header.d.ts.map +0 -1
- package/dist/components/display/card/card-root-variants.d.ts.map +0 -1
- package/dist/components/display/card/card-root.d.ts.map +0 -1
- package/dist/components/display/card/card-title.d.ts.map +0 -1
- package/dist/components/display/card/index.parts.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-announcer.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-context.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-control.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-copy-text.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-indicator.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-input.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-label.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-root-provider.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-root.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-trigger.d.ts.map +0 -1
- package/dist/components/display/clipboard/clipboard-value-text.d.ts.map +0 -1
- package/dist/components/display/clipboard/index.parts.d.ts.map +0 -1
- package/dist/components/display/clipboard/use-clipboard-context.d.ts.map +0 -1
- package/dist/components/display/clipboard/use-clipboard.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-item-label.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-item-value-variants.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-item-value.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-item-variants.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-item.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-root-variants.d.ts.map +0 -1
- package/dist/components/display/data-list/data-list-root.d.ts.map +0 -1
- package/dist/components/display/data-list/index.parts.d.ts.map +0 -1
- package/dist/components/display/data-list/use-data-list-context.d.ts.map +0 -1
- package/dist/components/display/icon/icon.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-content.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-description.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-indicator.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-root-variants.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-root.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/empty-state-title.d.ts.map +0 -1
- package/dist/components/feedback/empty-state/index.parts.d.ts.map +0 -1
- package/dist/components/feedback/skeleton/skeleton-text.d.ts.map +0 -1
- package/dist/components/feedback/skeleton/skeleton-variants.d.ts.map +0 -1
- package/dist/components/feedback/skeleton/skeleton.d.ts.map +0 -1
- package/dist/components/feedback/spinner/spinner-variants.d.ts.map +0 -1
- package/dist/components/feedback/spinner/spinner.d.ts.map +0 -1
- package/dist/components/fields/checkbox/checkbox-group.d.ts.map +0 -1
- package/dist/components/fields/checkbox/checkbox-indicator.d.ts.map +0 -1
- package/dist/components/fields/checkbox/checkbox-root-variants.d.ts.map +0 -1
- package/dist/components/fields/checkbox/checkbox-root.d.ts.map +0 -1
- package/dist/components/fields/checkbox/index.parts.d.ts.map +0 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input-variants.d.ts.map +0 -1
- package/dist/components/fields/currency-brl-input/currency-brl-input.d.ts.map +0 -1
- package/dist/components/fields/field/field-description.d.ts.map +0 -1
- package/dist/components/fields/field/field-error.d.ts.map +0 -1
- package/dist/components/fields/field/field-header.d.ts.map +0 -1
- package/dist/components/fields/field/field-item.d.ts.map +0 -1
- package/dist/components/fields/field/field-label.d.ts.map +0 -1
- package/dist/components/fields/field/field-required-indicator.d.ts.map +0 -1
- package/dist/components/fields/field/field-root-variants.d.ts.map +0 -1
- package/dist/components/fields/field/field-root.d.ts.map +0 -1
- package/dist/components/fields/field/field-validity.d.ts.map +0 -1
- package/dist/components/fields/field/index.parts.d.ts.map +0 -1
- package/dist/components/fields/fieldset/fieldset-legend.d.ts.map +0 -1
- package/dist/components/fields/fieldset/fieldset-root.d.ts.map +0 -1
- package/dist/components/fields/fieldset/index.parts.d.ts.map +0 -1
- package/dist/components/fields/form/form.d.ts.map +0 -1
- package/dist/components/fields/input/input-variants.d.ts.map +0 -1
- package/dist/components/fields/input/input.d.ts.map +0 -1
- package/dist/components/fields/number-input/number-input-variants.d.ts.map +0 -1
- package/dist/components/fields/number-input/number-input.d.ts.map +0 -1
- package/dist/components/fields/password-input/password-input-variants.d.ts.map +0 -1
- package/dist/components/fields/password-input/password-input.d.ts.map +0 -1
- package/dist/components/fields/pattern-input/pattern-input-masks.d.ts.map +0 -1
- package/dist/components/fields/pattern-input/pattern-input-variants.d.ts.map +0 -1
- package/dist/components/fields/pattern-input/pattern-input.d.ts.map +0 -1
- package/dist/components/fields/switch/index.parts.d.ts.map +0 -1
- package/dist/components/fields/switch/switch-root-variants.d.ts.map +0 -1
- package/dist/components/fields/switch/switch-root.d.ts.map +0 -1
- package/dist/components/fields/switch/switch-thumb.d.ts.map +0 -1
- package/dist/components/fields/textarea/textarea-variants.d.ts.map +0 -1
- package/dist/components/fields/textarea/textarea.d.ts.map +0 -1
- package/dist/components/layout/box/box.d.ts.map +0 -1
- package/dist/components/layout/center/center.d.ts.map +0 -1
- package/dist/components/layout/center-absolute/center-absolute-variants.d.ts.map +0 -1
- package/dist/components/layout/center-absolute/center-absolute.d.ts.map +0 -1
- package/dist/components/layout/circle/circle.d.ts.map +0 -1
- package/dist/components/layout/flex/flex.d.ts.map +0 -1
- package/dist/components/layout/float/float-variants.d.ts.map +0 -1
- package/dist/components/layout/float/float.d.ts.map +0 -1
- package/dist/components/layout/grid/grid.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/index.parts.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-bars.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-content.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-corner.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-root.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-scrollbar.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-thumb.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport-variants.d.ts.map +0 -1
- package/dist/components/layout/scroll-area/scroll-area-viewport.d.ts.map +0 -1
- package/dist/components/layout/separator/separator-variants.d.ts.map +0 -1
- package/dist/components/layout/separator/separator.d.ts.map +0 -1
- package/dist/components/layout/splitter/index.parts.d.ts.map +0 -1
- package/dist/components/layout/splitter/splitter-context.d.ts.map +0 -1
- package/dist/components/layout/splitter/splitter-panel.d.ts.map +0 -1
- package/dist/components/layout/splitter/splitter-resize-trigger.d.ts.map +0 -1
- package/dist/components/layout/splitter/splitter-root-provider.d.ts.map +0 -1
- package/dist/components/layout/splitter/splitter-root.d.ts.map +0 -1
- package/dist/components/layout/splitter/use-splitter-context.d.ts.map +0 -1
- package/dist/components/layout/splitter/use-splitter.d.ts.map +0 -1
- package/dist/components/layout/stack/h-stack.d.ts.map +0 -1
- package/dist/components/layout/stack/stack-variants.d.ts.map +0 -1
- package/dist/components/layout/stack/stack.d.ts.map +0 -1
- package/dist/components/layout/stack/v-stack.d.ts.map +0 -1
- package/dist/components/layout/wrap/wrap.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-close.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-popup-variants.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-popup.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-portal.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-root.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-selection-trigger.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/action-bar-separator.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/action-bar/use-action-bar-context.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-backdrop.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-body.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-close.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-description.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-header.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup-variants.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-popup.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-portal.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-root.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-title.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-trigger.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/alert-dialog-viewport.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/create-handle.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/alert-dialog/use-alert-dialog-context.d.ts.map +0 -1
- package/dist/components/overlays/dialog/create-handle.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-backdrop.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-body.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-close.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-description.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-footer.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-header.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-popup-variants.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-popup.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-portal.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-root.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-title.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-trigger.d.ts.map +0 -1
- package/dist/components/overlays/dialog/dialog-viewport.d.ts.map +0 -1
- package/dist/components/overlays/dialog/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/dialog/use-dialog-context.d.ts.map +0 -1
- package/dist/components/overlays/drawer/create-handle.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-backdrop.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-body.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-close.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-description.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-footer.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-header.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-popup-variants.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-popup.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-portal.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-root.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-title.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-trigger.d.ts.map +0 -1
- package/dist/components/overlays/drawer/drawer-viewport.d.ts.map +0 -1
- package/dist/components/overlays/drawer/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/drawer/use-drawer-context.d.ts.map +0 -1
- package/dist/components/overlays/menu/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-group-label.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-group.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-item-variants.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-item.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-popup.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-portal.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-positioner.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-root.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-separator.d.ts.map +0 -1
- package/dist/components/overlays/menu/menu-trigger.d.ts.map +0 -1
- package/dist/components/overlays/overlay-manager/index.d.ts +0 -2
- package/dist/components/overlays/overlay-manager/index.js +0 -2
- package/dist/components/overlays/overlay-manager/overlay-manager.d.ts +0 -49
- package/dist/components/overlays/overlay-manager/overlay-manager.d.ts.map +0 -1
- package/dist/components/overlays/overlay-manager/overlay-manager.js +0 -182
- package/dist/components/overlays/overlay-manager/overlay-manager.js.map +0 -1
- package/dist/components/overlays/popover/create-handle.d.ts.map +0 -1
- package/dist/components/overlays/popover/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-arrow.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-backdrop.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-body.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-close.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-description.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-footer.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-header.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-popup-variants.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-popup.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-portal.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-positioner.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-root.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-title.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-trigger.d.ts.map +0 -1
- package/dist/components/overlays/popover/popover-viewport.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/create-handle.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/index.parts.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/simple-tooltip.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-arrow.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-popup.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-portal.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-positioner.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-provider.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-root.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-trigger.d.ts.map +0 -1
- package/dist/components/overlays/tooltip/tooltip-viewport.d.ts.map +0 -1
- package/dist/components/typography/heading/heading.d.ts.map +0 -1
- package/dist/components/typography/kbd/kbd-group.d.ts.map +0 -1
- package/dist/components/typography/kbd/kbd-variants.d.ts.map +0 -1
- package/dist/components/typography/kbd/kbd.d.ts.map +0 -1
- package/dist/components/typography/list/index.parts.d.ts.map +0 -1
- package/dist/components/typography/list/list-item.d.ts.map +0 -1
- package/dist/components/typography/list/list-ordered.d.ts.map +0 -1
- package/dist/components/typography/list/list-unordered.d.ts.map +0 -1
- package/dist/components/typography/list/list-unstyled.d.ts.map +0 -1
- package/dist/components/typography/mark/mark-variants.d.ts.map +0 -1
- package/dist/components/typography/mark/mark.d.ts.map +0 -1
- package/dist/components/typography/paragraph/paragraph.d.ts.map +0 -1
- package/dist/components/typography/pre/pre-variants.d.ts.map +0 -1
- package/dist/components/typography/pre/pre.d.ts.map +0 -1
- package/dist/components/typography/text/text.d.ts.map +0 -1
- package/dist/components/typography/truncate/truncate.d.ts.map +0 -1
- package/dist/components/utilities/for/for.d.ts.map +0 -1
- package/dist/components/utilities/interaction-shield/interaction-shield.d.ts.map +0 -1
- package/dist/components/utilities/show/show.d.ts.map +0 -1
- package/dist/hooks/use-breakpoint.d.ts.map +0 -1
- package/dist/hooks/use-pointer-type.d.ts.map +0 -1
- package/dist/hooks/use-responsive-breakpoint.d.ts +0 -18
- package/dist/hooks/use-responsive-breakpoint.d.ts.map +0 -1
- package/dist/hooks/use-responsive-breakpoint.js +0 -56
- package/dist/hooks/use-responsive-breakpoint.js.map +0 -1
- package/dist/types/color-scheme.d.ts.map +0 -1
- package/dist/utils/merge-class-names.d.ts.map +0 -1
- package/dist/utils/merge-state-class-names.d.ts.map +0 -1
- package/dist/utils/normalize-data-attr.d.ts.map +0 -1
- package/src/theme/tailwindcss-default-theme.css +0 -448
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-input.js","names":["BaseInput"],"sources":["../../../../src/components/fields/number-input/number-input.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport {
|
|
1
|
+
{"version":3,"file":"number-input.js","names":["BaseInput"],"sources":["../../../../src/components/fields/number-input/number-input.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport type React from 'react';\nimport { NumericFormat, type NumericFormatProps } from 'react-number-format';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type NumberInputVariants,\n numberInputVariants,\n} from './number-input-variants';\n\nexport type NumberInputProps = MergeOverride<\n Omit<\n NumericFormatProps<BaseInput.Props>,\n | 'customInput'\n | 'displayType'\n | 'getInputRef'\n | 'renderText'\n | 'valueIsNumericString'\n >,\n NumberInputVariants & {\n /**\n * O valor numérico, para o modo controlado. `null` deixa o campo vazio.\n */\n value?: number | null;\n /**\n * O valor numérico inicial, para o modo não controlado.\n */\n defaultValue?: number | null;\n /**\n * Chamado a cada mudança feita pelo usuário, com o número já convertido, ou `null` com o campo\n * vazio. Mudar uma prop (o `value`, o `decimalScale`) não o chama.\n */\n onValueChange?: (\n value: number | null,\n details: NumberInputChangeEventDetails,\n ) => void;\n ref?: React.Ref<HTMLInputElement>;\n }\n>;\n\nexport type NumberInputState = BaseInput.State;\n\nexport type NumberInputChangeEventDetails = {\n /**\n * O texto como aparece no campo, com separadores, prefixo e sufixo (`\"1.234,50\"`).\n */\n formattedValue: string;\n /**\n * O evento da digitação.\n */\n event: React.SyntheticEvent<HTMLInputElement> | undefined;\n};\n\nconst splitVariantProps = createSplitProps<NumberInputVariants>();\n\n/**\n * Campo numérico que formata enquanto se digita, com o `react-number-format` sobre o `Input` do\n * Base UI: liga-se sozinho ao `Field` quando está dentro de um, como o `Input` da lib.\n *\n * Sai em pt-BR: `.` no milhar e `,` no decimal, com o `.` digitado aceito como vírgula. O\n * `decimalScale` limita as casas já na digitação (sem ele, não há limite), e o\n * `fixedDecimalScale` completa com zeros. Com `decimalScale={0}`, a vírgula é ignorada: \"12,7\"\n * vira 127.\n *\n * O número sai pelo `onValueChange`. O campo guarda o texto formatado (`\"1.234,50\"`), e é ele que\n * vai no `FormData`, no `onFormSubmit` do `Form` e no `validate` do `Field`.\n *\n * O `inputMode` abre o teclado numérico no celular: `decimal`, ou `numeric` sem casas. No iPhone,\n * nenhum dos dois tem o sinal de menos; para digitar negativo lá, `inputMode=\"text\"`.\n *\n * @example\n * ```tsx\n * <NumberInput\n * aria-label=\"Peso (kg)\"\n * decimalScale={3}\n * onValueChange={(value) => setWeight(value)}\n * />\n * ```\n */\nexport const NumberInput = (props: NumberInputProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const {\n className,\n value,\n defaultValue,\n onValueChange,\n ref,\n decimalScale,\n ...rest\n } = elementProps;\n\n return (\n <NumericFormat\n data-component=\"NumberInput\"\n customInput={BaseInput}\n getInputRef={ref}\n thousandSeparator=\".\"\n decimalSeparator=\",\"\n allowedDecimalSeparators={[',', '.']}\n inputMode={decimalScale === 0 ? 'numeric' : 'decimal'}\n decimalScale={decimalScale}\n // O `react-number-format` trata `null` como não controlado; `''` é o campo vazio controlado.\n value={value === null ? '' : value}\n defaultValue={defaultValue ?? undefined}\n onValueChange={(values, sourceInfo) => {\n /** O pacote também avisa quando uma prop muda; aqui, só a mudança do usuário. */\n if (sourceInfo.source !== 'event') {\n return;\n }\n\n onValueChange?.(values.floatValue ?? null, {\n formattedValue: values.formattedValue,\n event: sourceInfo.event,\n });\n }}\n className={mergeStateClassNames(\n numberInputVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nNumberInput.displayName = 'NumberInput';\n"],"mappings":";;;;;;;AAwDA,MAAM,oBAAoB,iBAAsC;;;;;;;;;;;;;;;;;;;;;;;;;AA0BhE,MAAa,eAAe,UAA4B;CACtD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,EACJ,WACA,OACA,cACA,eACA,KACA,cACA,GAAG,SACD;CAEJ,OACE,oBAAC,eAAD;EACE,kBAAe;EACf,aAAaA;EACb,aAAa;EACb,mBAAkB;EAClB,kBAAiB;EACjB,0BAA0B,CAAC,KAAK,GAAG;EACnC,WAAW,iBAAiB,IAAI,YAAY;EAC9B;EAEd,OAAO,UAAU,OAAO,KAAK;EAC7B,cAAc,gBAAgB,KAAA;EAC9B,gBAAgB,QAAQ,eAAe;;GAErC,IAAI,WAAW,WAAW,SACxB;GAGF,gBAAgB,OAAO,cAAc,MAAM;IACzC,gBAAgB,OAAO;IACvB,OAAO,WAAW;GACpB,CAAC;EACH;EACA,WAAW,qBACT,oBAAoB,YAAY,GAChC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,YAAY,cAAc"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InputProps } from "../input/input.js";
|
|
2
2
|
import "../input/index.js";
|
|
3
3
|
import { PasswordInputVariants } from "./password-input-variants.js";
|
|
4
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
4
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
5
5
|
import * as ZagPasswordInput from "@zag-js/password-input";
|
|
6
6
|
//#region src/components/fields/password-input/password-input.d.ts
|
|
7
7
|
/**
|
|
@@ -3,7 +3,7 @@ import { Icon } from "../../display/icon/icon.js";
|
|
|
3
3
|
import { Input } from "../input/input.js";
|
|
4
4
|
import { passwordInputVariants } from "./password-input-variants.js";
|
|
5
5
|
import { useId } from "react";
|
|
6
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
6
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { EyeIcon, EyeSlashIcon } from "@phosphor-icons/react";
|
|
9
9
|
import { normalizeProps, useMachine } from "@zag-js/react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"password-input.js","names":[],"sources":["../../../../src/components/fields/password-input/password-input.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"password-input.js","names":[],"sources":["../../../../src/components/fields/password-input/password-input.tsx"],"sourcesContent":["import {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { EyeIcon, EyeSlashIcon } from '@phosphor-icons/react';\nimport * as ZagPasswordInput from '@zag-js/password-input';\nimport { normalizeProps, useMachine } from '@zag-js/react';\nimport { useId } from 'react';\nimport { Icon } from '#components/display/icon';\nimport { Input, type InputProps } from '#components/fields/input';\nimport { mergeTwClassNames } from '#utils';\nimport {\n type PasswordInputVariants,\n passwordInputVariants,\n} from './password-input-variants';\n\n/**\n * As opções da máquina do Zag que o componente aceita. O `id` fica de fora: aqui ele é o `id` do\n * `<input>`, como no `Input`, e a máquina ganha um próprio.\n */\ntype PasswordInputMachineProps = Omit<\n ZagPasswordInput.Props,\n 'id' | 'dir' | 'getRootNode'\n>;\n\nexport type PasswordInputProps = MergeOverride<\n Omit<InputProps, 'type'>,\n PasswordInputVariants & PasswordInputMachineProps\n>;\n\n/**\n * Textos acessíveis padrão do botão, em pt-BR. Um `translations` passado por prop sobrescreve só\n * as chaves informadas.\n */\nconst passwordInputTranslations: ZagPasswordInput.IntlTranslations = {\n visibilityTrigger: (visible) => (visible ? 'Ocultar senha' : 'Mostrar senha'),\n};\n\nconst splitVariantProps = createSplitProps<PasswordInputVariants>();\n\nconst splitMachineProps = createSplitProps<PasswordInputMachineProps>();\n\n/**\n * Campo de senha com o botão de mostrar e ocultar, sobre a máquina `password-input` do Zag e o\n * `Input` da lib: liga-se sozinho ao `Field` quando está dentro de um.\n *\n * - O botão fica fora do Tab, como no Zag: no clique, a senha aparece ou some e o foco continua\n * no campo. Ele some quando o campo está desabilitado, venha o `disabled` da prop ou do `Field`.\n * - A senha volta a ficar oculta no envio e no reset do formulário, para o campo ir como\n * `type=\"password\"`, que é o que os gerenciadores de senha reconhecem.\n * - `autoComplete` é `current-password` por padrão; num cadastro, `new-password`.\n *\n * Componente único, e não composto como os outros componentes sobre o Zag: a máquina é criada aqui\n * dentro, sem hook, contexto nem `RootProvider`. O `className` vai para o contêiner, que dá a\n * largura e a posição no layout; o `<input>` ocupa a largura dele.\n *\n * @example\n * ```tsx\n * <Field.Root>\n * <Field.Label>Senha</Field.Label>\n * <PasswordInput />\n * </Field.Root>\n * ```\n */\nexport const PasswordInput = (props: PasswordInputProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const [machineProps, inputProps] = splitMachineProps(elementProps, [\n 'autoComplete',\n 'defaultVisible',\n 'disabled',\n 'ids',\n 'ignorePasswordManagers',\n 'invalid',\n 'name',\n 'onVisibilityChange',\n 'readOnly',\n 'required',\n 'translations',\n 'visible',\n ]);\n\n const { className, id, ...rest } = inputProps;\n\n const machineId = useId();\n\n const service = useMachine(ZagPasswordInput.machine, {\n ...machineProps,\n id: machineId,\n // O `id` de quem usa é o do `<input>`; sem ele, vale o que o Zag gera.\n ids: { ...machineProps.ids, input: id ?? machineProps.ids?.input },\n // Mescladas por chave, para um `translations` parcial não derrubar os outros textos.\n translations: {\n ...passwordInputTranslations,\n ...machineProps.translations,\n },\n });\n\n const passwordInput = ZagPasswordInput.connect(service, normalizeProps);\n\n /**\n * As props do campo sem as chaves `undefined`: o Zag manda `data-invalid`, `data-disabled` e\n * `data-readonly` vazios quando o estado não vale, e eles apagariam os que o `Input` escreve a\n * partir do `Field`.\n */\n const zagInputProps = Object.fromEntries(\n Object.entries(passwordInput.getInputProps()).filter(\n ([, value]) => value !== undefined,\n ),\n );\n\n return (\n <div\n {...passwordInput.getRootProps()}\n data-component=\"PasswordInput\"\n className={mergeTwClassNames(\n passwordInputVariants({ size: variantProps.size }),\n className,\n )}\n >\n <Input\n {...zagInputProps}\n size={variantProps.size}\n variant={variantProps.variant}\n className={mergeTwClassNames([\n // Marca o campo para o botão ler o `disabled` dele\n 'peer',\n // A folga dos dois lados do ícone mais o ícone: o texto não passa por baixo do botão\n 'pe-[calc(var(--password-input-px)*2+var(--password-input-icon-size))]',\n ])}\n {...rest}\n />\n\n <button\n {...passwordInput.getVisibilityTriggerProps()}\n data-component=\"PasswordInput.VisibilityTrigger\"\n className={mergeTwClassNames([\n 'absolute',\n 'inset-y-0',\n 'inset-e-0',\n\n 'flex',\n 'items-center',\n\n 'px-(--password-input-px)',\n '[&_svg]:size-(--password-input-icon-size)',\n\n 'text-gray-11',\n 'hover:text-gray-12',\n\n 'cursor-pointer',\n\n // `disabled` do campo, da prop ou do `Field`\n 'peer-disabled:hidden',\n ])}\n >\n <span\n {...passwordInput.getIndicatorProps()}\n className=\"flex\"\n >\n <Icon\n render={passwordInput.visible ? <EyeIcon /> : <EyeSlashIcon />}\n />\n </span>\n </button>\n </div>\n );\n};\n\nPasswordInput.displayName = 'PasswordInput';\n"],"mappings":";;;;;;;;;;;;;;;AAkCA,MAAM,4BAA+D,EACnE,oBAAoB,YAAa,UAAU,kBAAkB,gBAC/D;AAEA,MAAM,oBAAoB,iBAAwC;AAElE,MAAM,oBAAoB,iBAA4C;;;;;;;;;;;;;;;;;;;;;;;AAwBtE,MAAa,iBAAiB,UAA8B;CAC1D,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,CAAC,cAAc,cAAc,kBAAkB,cAAc;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC;CAED,MAAM,EAAE,WAAW,IAAI,GAAG,SAAS;CAEnC,MAAM,YAAY,MAAM;CAExB,MAAM,UAAU,WAAW,iBAAiB,SAAS;EACnD,GAAG;EACH,IAAI;EAEJ,KAAK;GAAE,GAAG,aAAa;GAAK,OAAO,MAAM,aAAa,KAAK;EAAM;EAEjE,cAAc;GACZ,GAAG;GACH,GAAG,aAAa;EAClB;CACF,CAAC;CAED,MAAM,gBAAgB,iBAAiB,QAAQ,SAAS,cAAc;;;;;;CAOtE,MAAM,gBAAgB,OAAO,YAC3B,OAAO,QAAQ,cAAc,cAAc,CAAC,CAAC,CAAC,QAC3C,GAAG,WAAW,UAAU,KAAA,CAC3B,CACF;CAEA,OACE,qBAAC,OAAD;EACE,GAAI,cAAc,aAAa;EAC/B,kBAAe;EACf,WAAW,kBACT,sBAAsB,EAAE,MAAM,aAAa,KAAK,CAAC,GACjD,SACF;EANF,UAAA,CAQE,oBAAC,OAAD;GACE,GAAI;GACJ,MAAM,aAAa;GACnB,SAAS,aAAa;GACtB,WAAW,kBAAkB,CAE3B,QAEA,uEACF,CAAC;GACD,GAAI;EACL,CAAA,GAED,oBAAC,UAAD;GACE,GAAI,cAAc,0BAA0B;GAC5C,kBAAe;GACf,WAAW,kBAAkB;IAC3B;IACA;IACA;IAEA;IACA;IAEA;IACA;IAEA;IACA;IAEA;IAGA;GACF,CAAC;GAED,UAAA,oBAAC,QAAD;IACE,GAAI,cAAc,kBAAkB;IACpC,WAAU;IAEV,UAAA,oBAAC,MAAD,EACE,QAAQ,cAAc,UAAU,oBAAC,SAAD,CAAU,CAAA,IAAI,oBAAC,cAAD,CAAe,CAAA,EAC9D,CAAA;GACG,CAAA;EACA,CAAA,CACL;;AAET;AAEA,cAAc,cAAc"}
|
|
@@ -24,7 +24,7 @@ export declare const patternInputDefaultVariants: Required<PatternInputVariants>
|
|
|
24
24
|
* literais): o texto não se mexe quando uma posição vazia é preenchida.
|
|
25
25
|
*/
|
|
26
26
|
export declare const patternInputVariants: (props?: ({
|
|
27
|
-
variant?: "
|
|
27
|
+
variant?: "subtle" | "outline" | null | undefined;
|
|
28
28
|
size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
|
|
29
29
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
30
30
|
//#endregion
|
|
@@ -20,7 +20,7 @@ const patternInputVariants = cva([
|
|
|
20
20
|
"font-normal",
|
|
21
21
|
"text-gray-12",
|
|
22
22
|
"font-mono",
|
|
23
|
-
"placeholder:text-gray-
|
|
23
|
+
"placeholder:text-gray-11/80",
|
|
24
24
|
"border",
|
|
25
25
|
"rounded-md",
|
|
26
26
|
"corner-squircle",
|
|
@@ -43,9 +43,7 @@ const patternInputVariants = cva([
|
|
|
43
43
|
"data-invalid:border-red-9",
|
|
44
44
|
"data-invalid:[--pattern-input-focus-color:var(--color-red-9)]",
|
|
45
45
|
"aria-invalid:border-red-9",
|
|
46
|
-
"aria-invalid:[--pattern-input-focus-color:var(--color-red-9)]"
|
|
47
|
-
"user-invalid:border-red-9",
|
|
48
|
-
"user-invalid:[--pattern-input-focus-color:var(--color-red-9)]"
|
|
46
|
+
"aria-invalid:[--pattern-input-focus-color:var(--color-red-9)]"
|
|
49
47
|
], {
|
|
50
48
|
variants: {
|
|
51
49
|
variant: {
|
|
@@ -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-
|
|
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(--color-red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--pattern-input-focus-color:var(--color-red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-alpha-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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PatternInputVariants } from "./pattern-input-variants.js";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
3
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { Input } from "@base-ui/react/input";
|
|
5
5
|
import { NumberFormatBaseProps } from "react-number-format";
|
|
6
6
|
//#region src/components/fields/pattern-input/pattern-input.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
2
|
import { patternInputVariants } from "./pattern-input-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Input } from "@base-ui/react/input";
|
|
6
6
|
import { NumberFormatBase } from "react-number-format";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-input.js","names":["BaseInput"],"sources":["../../../../src/components/fields/pattern-input/pattern-input.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport { createSplitProps, type MergeOverride } from '@lucasbernardosn/utils';\nimport type React from 'react';\nimport {\n type ChangeMeta,\n NumberFormatBase,\n type NumberFormatBaseProps,\n} from 'react-number-format';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type PatternInputVariants,\n patternInputVariants,\n} from './pattern-input-variants';\n\nexport type PatternInputProps = MergeOverride<\n Omit<\n NumberFormatBaseProps<BaseInput.Props>,\n | 'customInput'\n | 'displayType'\n | 'format'\n | 'getCaretBoundary'\n | 'getInputRef'\n | 'isCharacterSame'\n | 'isValidInputCharacter'\n | 'removeFormatting'\n | 'renderText'\n | 'valueIsNumericString'\n >,\n PatternInputVariants & {\n /**\n * A máscara: `#` é dígito, `*` é letra ou dígito, e o resto é literal (que não pode ser letra\n * nem dígito). Numa lista, o campo usa a primeira máscara que aceita o que foi digitado. As\n * prontas estão em `patternInputMasks`.\n */\n mask: string | readonly string[];\n /**\n * O valor sem os literais (`\"12345678901\"`), para o modo controlado. `null` deixa o campo\n * vazio.\n */\n value?: string | null;\n /**\n * O valor inicial sem os literais, para o modo não controlado.\n */\n defaultValue?: string | null;\n /**\n * Chamado a cada mudança feita pelo usuário, com o valor sem os literais, ou `null` com o campo\n * vazio. Mudar o `value` por prop não o chama.\n */\n onValueChange?: (\n value: string | null,\n details: PatternInputChangeEventDetails,\n ) => void;\n ref?: React.Ref<HTMLInputElement>;\n }\n>;\n\nexport type PatternInputState = BaseInput.State;\n\nexport type PatternInputChangeEventDetails = {\n /**\n * O texto como aparece no campo, com os literais e o marcador (`\"123.456.7__-__\"`).\n */\n formattedValue: string;\n /**\n * Se todas as posições da máscara em uso estão preenchidas.\n */\n isComplete: boolean;\n /**\n * O evento da digitação.\n */\n event: React.SyntheticEvent<HTMLInputElement> | undefined;\n};\n\n/**\n * Separa as variantes (`size`, `variant`) das props do campo: elas vão para o cva e não chegam ao\n * `<input>`, onde `size` seria o atributo nativo de largura.\n */\nconst splitVariantProps = createSplitProps<PatternInputVariants>();\n\n/**\n * Campo com máscara (CPF, CNPJ, CEP, telefone), sobre o `NumberFormatBase` do `react-number-format`\n * e o `Input` do Base UI: liga-se sozinho ao `Field` quando está dentro de um, como o `Input` da\n * lib.\n *\n * - Com algo digitado, o campo mostra a máscara inteira, com `_` nas posições vazias. Vazio, ele\n * fica vazio, e o placeholder padrão é a primeira máscara com o marcador.\n * - Numa lista de máscaras, o campo troca de máscara conforme o que foi digitado: no telefone, o\n * 11º dígito passa para celular.\n * - Letras viram maiúsculas. Uma tecla que nenhuma máscara aceita é ignorada; o texto colado é\n * cortado no que couber.\n *\n * O valor sai pelo `onValueChange`, sem os literais, com `isComplete` dizendo se a máscara foi\n * preenchida. O campo guarda o texto formatado, e é ele que vai no `FormData`, no `onFormSubmit` do\n * `Form` e no `validate` do `Field`.\n *\n * @example\n * ```tsx\n * <PatternInput\n * aria-label=\"Telefone\"\n * mask={patternInputMasks.phone}\n * onValueChange={(value) => setPhone(value)}\n * />\n * ```\n */\nexport const PatternInput = (props: PatternInputProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const {\n className,\n mask,\n value,\n defaultValue,\n onValueChange,\n onKeyDown,\n ref,\n ...rest\n } = elementProps;\n\n /** Uma máscara só vira lista de um item: o resto do código trata sempre a lista. */\n const masks = typeof mask === 'string' ? [mask] : mask;\n\n /** Se alguma máscara tem `*`: decide o teclado do celular e a maiúscula automática. */\n const acceptsLetters = masks.some((item) => item.includes('*'));\n\n return (\n <NumberFormatBase\n data-component=\"PatternInput\"\n customInput={BaseInput}\n getInputRef={ref}\n // O teclado `numeric` do celular não tem letras\n inputMode={acceptsLetters ? 'text' : 'numeric'}\n // O teclado do celular já abre em maiúscula; no desktop, não muda nada\n autoCapitalize={acceptsLetters ? 'characters' : undefined}\n // A primeira máscara só com o marcador; uma prop `placeholder` substitui\n placeholder={formatPattern('', masks[0] ?? '')}\n // Vazio, o texto fica vazio, sem a máscara: o `required` e o placeholder continuam valendo\n format={(rawValue) =>\n rawValue === ''\n ? ''\n : formatPattern(rawValue, selectMask(masks, rawValue) ?? '')\n }\n removeFormatting={(inputValue, changeMeta) =>\n removePatternFormatting(inputValue, changeMeta, masks)\n }\n getCaretBoundary={(formattedValue) =>\n getCaretBoundary(formattedValue, masks)\n }\n isValidInputCharacter={isValidInputCharacter}\n // O pacote chama este `onKeyDown` dentro do dele, antes de guardar a posição do cursor\n onKeyDown={(event) => {\n moveCaretPastLiterals(event);\n\n onKeyDown?.(event);\n }}\n // O pacote liga cada caractere digitado ao do texto formatado para devolver o cursor ao\n // lugar; a letra digitada em minúscula volta em maiúscula e precisa contar como a mesma\n isCharacterSame={({\n currentValue,\n formattedValue,\n currentValueIndex,\n formattedValueIndex,\n }) =>\n currentValue[currentValueIndex]?.toUpperCase() ===\n formattedValue[formattedValueIndex]\n }\n // O `react-number-format` trata `null` como não controlado; `''` é o campo vazio controlado.\n value={value === null ? '' : value}\n defaultValue={defaultValue ?? undefined}\n onValueChange={(values, sourceInfo) => {\n /** O pacote também avisa quando uma prop muda; aqui, só a mudança do usuário. */\n if (sourceInfo.source !== 'event') {\n return;\n }\n\n /** A máscara em uso, para saber se o valor preencheu todas as posições dela. */\n const selectedMask = selectMask(masks, values.value);\n\n onValueChange?.(values.value === '' ? null : values.value, {\n formattedValue: values.formattedValue,\n isComplete:\n selectedMask !== undefined &&\n values.value.length === countSlots(selectedMask),\n event: sourceInfo.event,\n });\n }}\n className={mergeStateClassNames(\n patternInputVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nPatternInput.displayName = 'PatternInput';\n\n/**\n * Marca as posições ainda vazias da máscara. Faz parte do texto do campo, então aparece no\n * `FormData` e no `validate` do `Field` (`\"123.4__.___-__\"`), e é por ele que o `getCaretBoundary`\n * acha a primeira posição vazia. Não pode ser letra nem dígito, para o `readRawValue` descartá-lo.\n */\nconst placeholderChar = '_';\n\n/**\n * Os tokens da máscara e o caractere que cada um aceita; o resto da máscara é literal. O `*` só\n * testa maiúscula porque o valor já chega convertido pelo `readRawValue`.\n */\nconst tokenPatterns: Record<string, RegExp> = {\n '#': /^\\d$/,\n '*': /^[0-9A-Z]$/,\n};\n\n/**\n * Tudo que não é letra sem acento nem dígito: os literais, o marcador e o que vier num texto\n * colado (espaço, `ç`, `á`). Tem a flag `g` para o `replace` trocar todas as ocorrências; com ela,\n * o `test` guarda a posição entre chamadas, então esta fica só para o `replace`.\n */\nconst nonAlphanumericPattern = /[^0-9a-z]/gi;\n\n/**\n * Uma letra sem acento ou um dígito. Aceita minúscula porque a tecla digitada chega como foi\n * digitada: a conversão para maiúscula vem depois, no `readRawValue`.\n */\nconst alphanumericPattern = /^[0-9a-z]$/i;\n\n/**\n * Se o caractere da máscara é um token (`#` ou `*`). Aceita `undefined` para ler uma posição fora da\n * máscara (antes do início ou depois do fim), que conta como não token.\n */\nconst isToken = (char: string | undefined) =>\n char !== undefined && char in tokenPatterns;\n\n/**\n * Quantas posições a máscara tem para preencher: o tamanho do valor completo, que decide o\n * `isComplete`.\n */\nconst countSlots = (mask: string) => [...mask].filter(isToken).length;\n\n/**\n * Letras e dígitos do texto, com as letras em maiúscula: os literais e o marcador ficam de fora. Lê\n * tanto o texto do campo quanto o `value` por prop, que pode chegar com literais ou em minúscula.\n */\nconst readRawValue = (text: string) =>\n text.replace(nonAlphanumericPattern, '').toUpperCase();\n\n/**\n * O que o `NumberFormatBase` trata como caractere do valor (o resto é formatação). Ele usa isso para\n * devolver o cursor ao lugar depois de formatar e para pular a formatação no Backspace e no Delete.\n * O padrão do pacote é só dígito; aqui é qualquer letra ou dígito, e quem decide se a posição aceita\n * o caractere é o `removePatternFormatting`.\n */\nconst isValidInputCharacter = (char: string) => alphanumericPattern.test(char);\n\n/**\n * Se a máscara aceita o valor: cabe nas posições, e cada caractere passa no token da sua posição.\n * Vale para valor parcial, que só confere as posições já preenchidas: é o que deixa a lista trocar\n * de máscara no meio da digitação.\n */\nconst fitsMask = (mask: string, rawValue: string) => {\n const tokens = [...mask].filter(isToken);\n\n return (\n rawValue.length <= tokens.length &&\n [...rawValue].every((char, index) =>\n tokenPatterns[tokens[index] ?? '']?.test(char),\n )\n );\n};\n\n/**\n * A primeira máscara da lista que aceita o valor, ou `undefined` se nenhuma aceita. A ordem decide:\n * no telefone, até 10 dígitos as duas aceitam e vale a do fixo, e o 11º só cabe na do celular. Por\n * isso a mais curta vem antes; com a do celular primeiro, a do fixo nunca seria usada.\n */\nconst selectMask = (masks: readonly string[], rawValue: string) =>\n masks.find((mask) => fitsMask(mask, rawValue));\n\n/**\n * O valor na máscara inteira, com o marcador nas posições que sobram. Com o valor vazio, sai a\n * máscara só com o marcador, que é o placeholder. O que passar das posições da máscara é\n * descartado.\n */\nconst formatPattern = (rawValue: string, mask: string) => {\n let index = 0;\n\n return [...mask]\n .map((char) => {\n if (!isToken(char)) {\n return char;\n }\n\n const valueChar = rawValue[index] ?? placeholderChar;\n\n index += 1;\n\n return valueChar;\n })\n .join('');\n};\n\n/**\n * O texto do campo no valor sem os literais, que o `NumberFormatBase` repassa ao `format`. Quando\n * nenhuma máscara aceita o resultado, uma tecla é ignorada (fica o valor anterior), e o resto (o\n * texto colado, o `value` por prop) é cortado no maior começo que alguma máscara aceita.\n *\n * O `changeMeta` vem na digitação e na colagem: `to` é o trecho inserido no texto novo, e\n * `lastValue` o texto antes da mudança. Ele vem `undefined` quando o pacote lê o `value` por prop e\n * quando relê o texto que o `format` acabou de montar.\n */\nconst removePatternFormatting = (\n inputValue: string,\n changeMeta: ChangeMeta | undefined,\n masks: readonly string[],\n): string => {\n const rawValue = readRawValue(inputValue);\n\n if (selectMask(masks, rawValue) !== undefined) {\n return rawValue;\n }\n\n /** Quantos caracteres a mudança inseriu: um numa tecla, nenhum ao apagar, mais numa colagem. */\n const insertedLength = changeMeta\n ? changeMeta.to.end - changeMeta.to.start\n : 0;\n\n if (changeMeta && insertedLength <= 1) {\n return readRawValue(changeMeta.lastValue);\n }\n\n /** Do maior para o menor, o primeiro começo do valor que alguma máscara aceita. */\n for (let length = rawValue.length - 1; length > 0; length--) {\n const prefix = rawValue.slice(0, length);\n\n if (selectMask(masks, prefix) !== undefined) {\n return prefix;\n }\n }\n\n return '';\n};\n\n/**\n * No Backspace logo depois de um literal (ou no Delete logo antes), o cursor pula os literais e o\n * marcador antes de a tecla agir: sem isso, ela apagaria só o literal, que o valor ignora, e nada\n * mudaria. Sem letra nem dígito na direção da tecla, o cursor fica onde está. Com texto\n * selecionado, a tecla apaga a seleção, e a função não faz nada.\n *\n * Funciona porque o `keydown` vem antes de o navegador apagar, e o `NumberFormatBase` chama o\n * `onKeyDown` antes de guardar a posição do cursor que usa para medir a mudança.\n */\nconst moveCaretPastLiterals = (\n event: React.KeyboardEvent<HTMLInputElement>,\n) => {\n const input = event.currentTarget;\n\n const { selectionStart, selectionEnd, value } = input;\n\n if (selectionStart === null || selectionStart !== selectionEnd) {\n return;\n }\n\n let position = selectionStart;\n\n if (event.key === 'Backspace') {\n while (position > 0 && !isValidInputCharacter(value[position - 1] ?? '')) {\n position -= 1;\n }\n\n if (position === 0) {\n return;\n }\n } else if (event.key === 'Delete') {\n while (\n position < value.length &&\n !isValidInputCharacter(value[position] ?? '')\n ) {\n position += 1;\n }\n\n if (position === value.length) {\n return;\n }\n }\n\n if (position !== selectionStart) {\n input.setSelectionRange(position, position);\n }\n};\n\n/**\n * Onde o cursor pode ficar: junto de uma posição preenchida e na primeira posição vazia. Ele não\n * entra no marcador além dela, nem no meio dos literais.\n *\n * Devolve uma entrada por posição do cursor, do início ao fim do texto (por isso `length + 1`), com\n * `true` onde ele pode ficar. O `NumberFormatBase` leva o cursor para a posição permitida mais\n * próxima no clique, no foco, nas setas e depois de cada mudança.\n */\nconst getCaretBoundary = (formattedValue: string, masks: readonly string[]) => {\n const mask = selectMask(masks, readRawValue(formattedValue));\n\n /** Vazio, ou sem máscara que aceite o valor, o cursor pode ficar em qualquer posição. */\n if (formattedValue === '' || mask === undefined) {\n return Array.from({ length: formattedValue.length + 1 }, () => true);\n }\n\n /** Se a posição é um token já preenchido, e não o marcador. */\n const isFilledSlot = (position: number) =>\n isToken(mask[position]) && formattedValue[position] !== placeholderChar;\n\n /** Onde entra o próximo caractere; `-1` com a máscara cheia. */\n const firstEmptySlot = [...mask].findIndex(\n (char, position) =>\n isToken(char) && formattedValue[position] === placeholderChar,\n );\n\n /** Permitida: a primeira posição vazia, antes de uma preenchida ou logo depois de uma. */\n return Array.from(\n { length: formattedValue.length + 1 },\n (_, position) =>\n position === firstEmptySlot ||\n isFilledSlot(position) ||\n isFilledSlot(position - 1),\n );\n};\n"],"mappings":";;;;;;;;;;;AA6EA,MAAM,oBAAoB,iBAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BjE,MAAa,gBAAgB,UAA6B;CACxD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,EACJ,WACA,MACA,OACA,cACA,eACA,WACA,KACA,GAAG,SACD;;CAGJ,MAAM,QAAQ,OAAO,SAAS,WAAW,CAAC,IAAI,IAAI;;CAGlD,MAAM,iBAAiB,MAAM,MAAM,SAAS,KAAK,SAAS,GAAG,CAAC;CAE9D,OACE,oBAAC,kBAAD;EACE,kBAAe;EACf,aAAaA;EACb,aAAa;EAEb,WAAW,iBAAiB,SAAS;EAErC,gBAAgB,iBAAiB,eAAe,KAAA;EAEhD,aAAa,cAAc,IAAI,MAAM,MAAM,EAAE;EAE7C,SAAS,aACP,aAAa,KACT,KACA,cAAc,UAAU,WAAW,OAAO,QAAQ,KAAK,EAAE;EAE/D,mBAAmB,YAAY,eAC7B,wBAAwB,YAAY,YAAY,KAAK;EAEvD,mBAAmB,mBACjB,iBAAiB,gBAAgB,KAAK;EAEjB;EAEvB,YAAY,UAAU;GACpB,sBAAsB,KAAK;GAE3B,YAAY,KAAK;EACnB;EAGA,kBAAkB,EAChB,cACA,gBACA,mBACA,0BAEA,aAAa,kBAAkB,EAAE,YAAY,MAC7C,eAAe;EAGjB,OAAO,UAAU,OAAO,KAAK;EAC7B,cAAc,gBAAgB,KAAA;EAC9B,gBAAgB,QAAQ,eAAe;;GAErC,IAAI,WAAW,WAAW,SACxB;;GAIF,MAAM,eAAe,WAAW,OAAO,OAAO,KAAK;GAEnD,gBAAgB,OAAO,UAAU,KAAK,OAAO,OAAO,OAAO;IACzD,gBAAgB,OAAO;IACvB,YACE,iBAAiB,KAAA,KACjB,OAAO,MAAM,WAAW,WAAW,YAAY;IACjD,OAAO,WAAW;GACpB,CAAC;EACH;EACA,WAAW,qBACT,qBAAqB,YAAY,GACjC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,aAAa,cAAc;;;;;;AAO3B,MAAM,kBAAkB;;;;;AAMxB,MAAM,gBAAwC;CAC5C,KAAK;CACL,KAAK;AACP;;;;;;AAOA,MAAM,yBAAyB;;;;;AAM/B,MAAM,sBAAsB;;;;;AAM5B,MAAM,WAAW,SACf,SAAS,KAAA,KAAa,QAAQ;;;;;AAMhC,MAAM,cAAc,SAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC;;;;;AAM/D,MAAM,gBAAgB,SACpB,KAAK,QAAQ,wBAAwB,EAAE,CAAC,CAAC,YAAY;;;;;;;AAQvD,MAAM,yBAAyB,SAAiB,oBAAoB,KAAK,IAAI;;;;;;AAO7E,MAAM,YAAY,MAAc,aAAqB;CACnD,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,OAAO;CAEvC,OACE,SAAS,UAAU,OAAO,UAC1B,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,MAAM,UACzB,cAAc,OAAO,UAAU,GAAG,EAAE,KAAK,IAAI,CAC/C;AAEJ;;;;;;AAOA,MAAM,cAAc,OAA0B,aAC5C,MAAM,MAAM,SAAS,SAAS,MAAM,QAAQ,CAAC;;;;;;AAO/C,MAAM,iBAAiB,UAAkB,SAAiB;CACxD,IAAI,QAAQ;CAEZ,OAAO,CAAC,GAAG,IAAI,CAAC,CACb,KAAK,SAAS;EACb,IAAI,CAAC,QAAQ,IAAI,GACf,OAAO;EAGT,MAAM,YAAY,SAAS,UAAU;EAErC,SAAS;EAET,OAAO;CACT,CAAC,CAAC,CACD,KAAK,EAAE;AACZ;;;;;;;;;;AAWA,MAAM,2BACJ,YACA,YACA,UACW;CACX,MAAM,WAAW,aAAa,UAAU;CAExC,IAAI,WAAW,OAAO,QAAQ,MAAM,KAAA,GAClC,OAAO;;CAIT,MAAM,iBAAiB,aACnB,WAAW,GAAG,MAAM,WAAW,GAAG,QAClC;CAEJ,IAAI,cAAc,kBAAkB,GAClC,OAAO,aAAa,WAAW,SAAS;;CAI1C,KAAK,IAAI,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,UAAU;EAC3D,MAAM,SAAS,SAAS,MAAM,GAAG,MAAM;EAEvC,IAAI,WAAW,OAAO,MAAM,MAAM,KAAA,GAChC,OAAO;CAEX;CAEA,OAAO;AACT;;;;;;;;;;AAWA,MAAM,yBACJ,UACG;CACH,MAAM,QAAQ,MAAM;CAEpB,MAAM,EAAE,gBAAgB,cAAc,UAAU;CAEhD,IAAI,mBAAmB,QAAQ,mBAAmB,cAChD;CAGF,IAAI,WAAW;CAEf,IAAI,MAAM,QAAQ,aAAa;EAC7B,OAAO,WAAW,KAAK,CAAC,sBAAsB,MAAM,WAAW,MAAM,EAAE,GACrE,YAAY;EAGd,IAAI,aAAa,GACf;CAEJ,OAAO,IAAI,MAAM,QAAQ,UAAU;EACjC,OACE,WAAW,MAAM,UACjB,CAAC,sBAAsB,MAAM,aAAa,EAAE,GAE5C,YAAY;EAGd,IAAI,aAAa,MAAM,QACrB;CAEJ;CAEA,IAAI,aAAa,gBACf,MAAM,kBAAkB,UAAU,QAAQ;AAE9C;;;;;;;;;AAUA,MAAM,oBAAoB,gBAAwB,UAA6B;CAC7E,MAAM,OAAO,WAAW,OAAO,aAAa,cAAc,CAAC;;CAG3D,IAAI,mBAAmB,MAAM,SAAS,KAAA,GACpC,OAAO,MAAM,KAAK,EAAE,QAAQ,eAAe,SAAS,EAAE,SAAS,IAAI;;CAIrE,MAAM,gBAAgB,aACpB,QAAQ,KAAK,SAAS,KAAK,eAAe,cAAc;;CAG1D,MAAM,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,WAC9B,MAAM,aACL,QAAQ,IAAI,KAAK,eAAe,cAAc,eAClD;;CAGA,OAAO,MAAM,KACX,EAAE,QAAQ,eAAe,SAAS,EAAE,IACnC,GAAG,aACF,aAAa,kBACb,aAAa,QAAQ,KACrB,aAAa,WAAW,CAAC,CAC7B;AACF"}
|
|
1
|
+
{"version":3,"file":"pattern-input.js","names":["BaseInput"],"sources":["../../../../src/components/fields/pattern-input/pattern-input.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport type React from 'react';\nimport {\n type ChangeMeta,\n NumberFormatBase,\n type NumberFormatBaseProps,\n} from 'react-number-format';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type PatternInputVariants,\n patternInputVariants,\n} from './pattern-input-variants';\n\nexport type PatternInputProps = MergeOverride<\n Omit<\n NumberFormatBaseProps<BaseInput.Props>,\n | 'customInput'\n | 'displayType'\n | 'format'\n | 'getCaretBoundary'\n | 'getInputRef'\n | 'isCharacterSame'\n | 'isValidInputCharacter'\n | 'removeFormatting'\n | 'renderText'\n | 'valueIsNumericString'\n >,\n PatternInputVariants & {\n /**\n * A máscara: `#` é dígito, `*` é letra ou dígito, e o resto é literal (que não pode ser letra\n * nem dígito). Numa lista, o campo usa a primeira máscara que aceita o que foi digitado. As\n * prontas estão em `patternInputMasks`.\n */\n mask: string | readonly string[];\n /**\n * O valor sem os literais (`\"12345678901\"`), para o modo controlado. `null` deixa o campo\n * vazio.\n */\n value?: string | null;\n /**\n * O valor inicial sem os literais, para o modo não controlado.\n */\n defaultValue?: string | null;\n /**\n * Chamado a cada mudança feita pelo usuário, com o valor sem os literais, ou `null` com o campo\n * vazio. Mudar o `value` por prop não o chama.\n */\n onValueChange?: (\n value: string | null,\n details: PatternInputChangeEventDetails,\n ) => void;\n ref?: React.Ref<HTMLInputElement>;\n }\n>;\n\nexport type PatternInputState = BaseInput.State;\n\nexport type PatternInputChangeEventDetails = {\n /**\n * O texto como aparece no campo, com os literais e o marcador (`\"123.456.7__-__\"`).\n */\n formattedValue: string;\n /**\n * Se todas as posições da máscara em uso estão preenchidas.\n */\n isComplete: boolean;\n /**\n * O evento da digitação.\n */\n event: React.SyntheticEvent<HTMLInputElement> | undefined;\n};\n\n/**\n * Separa as variantes (`size`, `variant`) das props do campo: elas vão para o cva e não chegam ao\n * `<input>`, onde `size` seria o atributo nativo de largura.\n */\nconst splitVariantProps = createSplitProps<PatternInputVariants>();\n\n/**\n * Campo com máscara (CPF, CNPJ, CEP, telefone), sobre o `NumberFormatBase` do `react-number-format`\n * e o `Input` do Base UI: liga-se sozinho ao `Field` quando está dentro de um, como o `Input` da\n * lib.\n *\n * - Com algo digitado, o campo mostra a máscara inteira, com `_` nas posições vazias. Vazio, ele\n * fica vazio, e o placeholder padrão é a primeira máscara com o marcador.\n * - Numa lista de máscaras, o campo troca de máscara conforme o que foi digitado: no telefone, o\n * 11º dígito passa para celular.\n * - Letras viram maiúsculas. Uma tecla que nenhuma máscara aceita é ignorada; o texto colado é\n * cortado no que couber.\n *\n * O valor sai pelo `onValueChange`, sem os literais, com `isComplete` dizendo se a máscara foi\n * preenchida. O campo guarda o texto formatado, e é ele que vai no `FormData`, no `onFormSubmit` do\n * `Form` e no `validate` do `Field`.\n *\n * @example\n * ```tsx\n * <PatternInput\n * aria-label=\"Telefone\"\n * mask={patternInputMasks.phone}\n * onValueChange={(value) => setPhone(value)}\n * />\n * ```\n */\nexport const PatternInput = (props: PatternInputProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const {\n className,\n mask,\n value,\n defaultValue,\n onValueChange,\n onKeyDown,\n ref,\n ...rest\n } = elementProps;\n\n /** Uma máscara só vira lista de um item: o resto do código trata sempre a lista. */\n const masks = typeof mask === 'string' ? [mask] : mask;\n\n /** Se alguma máscara tem `*`: decide o teclado do celular e a maiúscula automática. */\n const acceptsLetters = masks.some((item) => item.includes('*'));\n\n return (\n <NumberFormatBase\n data-component=\"PatternInput\"\n customInput={BaseInput}\n getInputRef={ref}\n // O teclado `numeric` do celular não tem letras\n inputMode={acceptsLetters ? 'text' : 'numeric'}\n // O teclado do celular já abre em maiúscula; no desktop, não muda nada\n autoCapitalize={acceptsLetters ? 'characters' : undefined}\n // A primeira máscara só com o marcador; uma prop `placeholder` substitui\n placeholder={formatPattern('', masks[0] ?? '')}\n // Vazio, o texto fica vazio, sem a máscara: o `required` e o placeholder continuam valendo\n format={(rawValue) =>\n rawValue === ''\n ? ''\n : formatPattern(rawValue, selectMask(masks, rawValue) ?? '')\n }\n removeFormatting={(inputValue, changeMeta) =>\n removePatternFormatting(inputValue, changeMeta, masks)\n }\n getCaretBoundary={(formattedValue) =>\n getCaretBoundary(formattedValue, masks)\n }\n isValidInputCharacter={isValidInputCharacter}\n // O pacote chama este `onKeyDown` dentro do dele, antes de guardar a posição do cursor\n onKeyDown={(event) => {\n moveCaretPastLiterals(event);\n\n onKeyDown?.(event);\n }}\n // O pacote liga cada caractere digitado ao do texto formatado para devolver o cursor ao\n // lugar; a letra digitada em minúscula volta em maiúscula e precisa contar como a mesma\n isCharacterSame={({\n currentValue,\n formattedValue,\n currentValueIndex,\n formattedValueIndex,\n }) =>\n currentValue[currentValueIndex]?.toUpperCase() ===\n formattedValue[formattedValueIndex]\n }\n // O `react-number-format` trata `null` como não controlado; `''` é o campo vazio controlado.\n value={value === null ? '' : value}\n defaultValue={defaultValue ?? undefined}\n onValueChange={(values, sourceInfo) => {\n /** O pacote também avisa quando uma prop muda; aqui, só a mudança do usuário. */\n if (sourceInfo.source !== 'event') {\n return;\n }\n\n /** A máscara em uso, para saber se o valor preencheu todas as posições dela. */\n const selectedMask = selectMask(masks, values.value);\n\n onValueChange?.(values.value === '' ? null : values.value, {\n formattedValue: values.formattedValue,\n isComplete:\n selectedMask !== undefined &&\n values.value.length === countSlots(selectedMask),\n event: sourceInfo.event,\n });\n }}\n className={mergeStateClassNames(\n patternInputVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nPatternInput.displayName = 'PatternInput';\n\n/**\n * Marca as posições ainda vazias da máscara. Faz parte do texto do campo, então aparece no\n * `FormData` e no `validate` do `Field` (`\"123.4__.___-__\"`), e é por ele que o `getCaretBoundary`\n * acha a primeira posição vazia. Não pode ser letra nem dígito, para o `readRawValue` descartá-lo.\n */\nconst placeholderChar = '_';\n\n/**\n * Os tokens da máscara e o caractere que cada um aceita; o resto da máscara é literal. O `*` só\n * testa maiúscula porque o valor já chega convertido pelo `readRawValue`.\n */\nconst tokenPatterns: Record<string, RegExp> = {\n '#': /^\\d$/,\n '*': /^[0-9A-Z]$/,\n};\n\n/**\n * Tudo que não é letra sem acento nem dígito: os literais, o marcador e o que vier num texto\n * colado (espaço, `ç`, `á`). Tem a flag `g` para o `replace` trocar todas as ocorrências; com ela,\n * o `test` guarda a posição entre chamadas, então esta fica só para o `replace`.\n */\nconst nonAlphanumericPattern = /[^0-9a-z]/gi;\n\n/**\n * Uma letra sem acento ou um dígito. Aceita minúscula porque a tecla digitada chega como foi\n * digitada: a conversão para maiúscula vem depois, no `readRawValue`.\n */\nconst alphanumericPattern = /^[0-9a-z]$/i;\n\n/**\n * Se o caractere da máscara é um token (`#` ou `*`). Aceita `undefined` para ler uma posição fora da\n * máscara (antes do início ou depois do fim), que conta como não token.\n */\nconst isToken = (char: string | undefined) =>\n char !== undefined && char in tokenPatterns;\n\n/**\n * Quantas posições a máscara tem para preencher: o tamanho do valor completo, que decide o\n * `isComplete`.\n */\nconst countSlots = (mask: string) => [...mask].filter(isToken).length;\n\n/**\n * Letras e dígitos do texto, com as letras em maiúscula: os literais e o marcador ficam de fora. Lê\n * tanto o texto do campo quanto o `value` por prop, que pode chegar com literais ou em minúscula.\n */\nconst readRawValue = (text: string) =>\n text.replace(nonAlphanumericPattern, '').toUpperCase();\n\n/**\n * O que o `NumberFormatBase` trata como caractere do valor (o resto é formatação). Ele usa isso para\n * devolver o cursor ao lugar depois de formatar e para pular a formatação no Backspace e no Delete.\n * O padrão do pacote é só dígito; aqui é qualquer letra ou dígito, e quem decide se a posição aceita\n * o caractere é o `removePatternFormatting`.\n */\nconst isValidInputCharacter = (char: string) => alphanumericPattern.test(char);\n\n/**\n * Se a máscara aceita o valor: cabe nas posições, e cada caractere passa no token da sua posição.\n * Vale para valor parcial, que só confere as posições já preenchidas: é o que deixa a lista trocar\n * de máscara no meio da digitação.\n */\nconst fitsMask = (mask: string, rawValue: string) => {\n const tokens = [...mask].filter(isToken);\n\n return (\n rawValue.length <= tokens.length &&\n [...rawValue].every((char, index) =>\n tokenPatterns[tokens[index] ?? '']?.test(char),\n )\n );\n};\n\n/**\n * A primeira máscara da lista que aceita o valor, ou `undefined` se nenhuma aceita. A ordem decide:\n * no telefone, até 10 dígitos as duas aceitam e vale a do fixo, e o 11º só cabe na do celular. Por\n * isso a mais curta vem antes; com a do celular primeiro, a do fixo nunca seria usada.\n */\nconst selectMask = (masks: readonly string[], rawValue: string) =>\n masks.find((mask) => fitsMask(mask, rawValue));\n\n/**\n * O valor na máscara inteira, com o marcador nas posições que sobram. Com o valor vazio, sai a\n * máscara só com o marcador, que é o placeholder. O que passar das posições da máscara é\n * descartado.\n */\nconst formatPattern = (rawValue: string, mask: string) => {\n let index = 0;\n\n return [...mask]\n .map((char) => {\n if (!isToken(char)) {\n return char;\n }\n\n const valueChar = rawValue[index] ?? placeholderChar;\n\n index += 1;\n\n return valueChar;\n })\n .join('');\n};\n\n/**\n * O texto do campo no valor sem os literais, que o `NumberFormatBase` repassa ao `format`. Quando\n * nenhuma máscara aceita o resultado, uma tecla é ignorada (fica o valor anterior), e o resto (o\n * texto colado, o `value` por prop) é cortado no maior começo que alguma máscara aceita.\n *\n * O `changeMeta` vem na digitação e na colagem: `to` é o trecho inserido no texto novo, e\n * `lastValue` o texto antes da mudança. Ele vem `undefined` quando o pacote lê o `value` por prop e\n * quando relê o texto que o `format` acabou de montar.\n */\nconst removePatternFormatting = (\n inputValue: string,\n changeMeta: ChangeMeta | undefined,\n masks: readonly string[],\n): string => {\n const rawValue = readRawValue(inputValue);\n\n if (selectMask(masks, rawValue) !== undefined) {\n return rawValue;\n }\n\n /** Quantos caracteres a mudança inseriu: um numa tecla, nenhum ao apagar, mais numa colagem. */\n const insertedLength = changeMeta\n ? changeMeta.to.end - changeMeta.to.start\n : 0;\n\n if (changeMeta && insertedLength <= 1) {\n return readRawValue(changeMeta.lastValue);\n }\n\n /** Do maior para o menor, o primeiro começo do valor que alguma máscara aceita. */\n for (let length = rawValue.length - 1; length > 0; length--) {\n const prefix = rawValue.slice(0, length);\n\n if (selectMask(masks, prefix) !== undefined) {\n return prefix;\n }\n }\n\n return '';\n};\n\n/**\n * No Backspace logo depois de um literal (ou no Delete logo antes), o cursor pula os literais e o\n * marcador antes de a tecla agir: sem isso, ela apagaria só o literal, que o valor ignora, e nada\n * mudaria. Sem letra nem dígito na direção da tecla, o cursor fica onde está. Com texto\n * selecionado, a tecla apaga a seleção, e a função não faz nada.\n *\n * Funciona porque o `keydown` vem antes de o navegador apagar, e o `NumberFormatBase` chama o\n * `onKeyDown` antes de guardar a posição do cursor que usa para medir a mudança.\n */\nconst moveCaretPastLiterals = (\n event: React.KeyboardEvent<HTMLInputElement>,\n) => {\n const input = event.currentTarget;\n\n const { selectionStart, selectionEnd, value } = input;\n\n if (selectionStart === null || selectionStart !== selectionEnd) {\n return;\n }\n\n let position = selectionStart;\n\n if (event.key === 'Backspace') {\n while (position > 0 && !isValidInputCharacter(value[position - 1] ?? '')) {\n position -= 1;\n }\n\n if (position === 0) {\n return;\n }\n } else if (event.key === 'Delete') {\n while (\n position < value.length &&\n !isValidInputCharacter(value[position] ?? '')\n ) {\n position += 1;\n }\n\n if (position === value.length) {\n return;\n }\n }\n\n if (position !== selectionStart) {\n input.setSelectionRange(position, position);\n }\n};\n\n/**\n * Onde o cursor pode ficar: junto de uma posição preenchida e na primeira posição vazia. Ele não\n * entra no marcador além dela, nem no meio dos literais.\n *\n * Devolve uma entrada por posição do cursor, do início ao fim do texto (por isso `length + 1`), com\n * `true` onde ele pode ficar. O `NumberFormatBase` leva o cursor para a posição permitida mais\n * próxima no clique, no foco, nas setas e depois de cada mudança.\n */\nconst getCaretBoundary = (formattedValue: string, masks: readonly string[]) => {\n const mask = selectMask(masks, readRawValue(formattedValue));\n\n /** Vazio, ou sem máscara que aceite o valor, o cursor pode ficar em qualquer posição. */\n if (formattedValue === '' || mask === undefined) {\n return Array.from({ length: formattedValue.length + 1 }, () => true);\n }\n\n /** Se a posição é um token já preenchido, e não o marcador. */\n const isFilledSlot = (position: number) =>\n isToken(mask[position]) && formattedValue[position] !== placeholderChar;\n\n /** Onde entra o próximo caractere; `-1` com a máscara cheia. */\n const firstEmptySlot = [...mask].findIndex(\n (char, position) =>\n isToken(char) && formattedValue[position] === placeholderChar,\n );\n\n /** Permitida: a primeira posição vazia, antes de uma preenchida ou logo depois de uma. */\n return Array.from(\n { length: formattedValue.length + 1 },\n (_, position) =>\n position === firstEmptySlot ||\n isFilledSlot(position) ||\n isFilledSlot(position - 1),\n );\n};\n"],"mappings":";;;;;;;;;;;AAgFA,MAAM,oBAAoB,iBAAuC;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BjE,MAAa,gBAAgB,UAA6B;CACxD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,EACJ,WACA,MACA,OACA,cACA,eACA,WACA,KACA,GAAG,SACD;;CAGJ,MAAM,QAAQ,OAAO,SAAS,WAAW,CAAC,IAAI,IAAI;;CAGlD,MAAM,iBAAiB,MAAM,MAAM,SAAS,KAAK,SAAS,GAAG,CAAC;CAE9D,OACE,oBAAC,kBAAD;EACE,kBAAe;EACf,aAAaA;EACb,aAAa;EAEb,WAAW,iBAAiB,SAAS;EAErC,gBAAgB,iBAAiB,eAAe,KAAA;EAEhD,aAAa,cAAc,IAAI,MAAM,MAAM,EAAE;EAE7C,SAAS,aACP,aAAa,KACT,KACA,cAAc,UAAU,WAAW,OAAO,QAAQ,KAAK,EAAE;EAE/D,mBAAmB,YAAY,eAC7B,wBAAwB,YAAY,YAAY,KAAK;EAEvD,mBAAmB,mBACjB,iBAAiB,gBAAgB,KAAK;EAEjB;EAEvB,YAAY,UAAU;GACpB,sBAAsB,KAAK;GAE3B,YAAY,KAAK;EACnB;EAGA,kBAAkB,EAChB,cACA,gBACA,mBACA,0BAEA,aAAa,kBAAkB,EAAE,YAAY,MAC7C,eAAe;EAGjB,OAAO,UAAU,OAAO,KAAK;EAC7B,cAAc,gBAAgB,KAAA;EAC9B,gBAAgB,QAAQ,eAAe;;GAErC,IAAI,WAAW,WAAW,SACxB;;GAIF,MAAM,eAAe,WAAW,OAAO,OAAO,KAAK;GAEnD,gBAAgB,OAAO,UAAU,KAAK,OAAO,OAAO,OAAO;IACzD,gBAAgB,OAAO;IACvB,YACE,iBAAiB,KAAA,KACjB,OAAO,MAAM,WAAW,WAAW,YAAY;IACjD,OAAO,WAAW;GACpB,CAAC;EACH;EACA,WAAW,qBACT,qBAAqB,YAAY,GACjC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,aAAa,cAAc;;;;;;AAO3B,MAAM,kBAAkB;;;;;AAMxB,MAAM,gBAAwC;CAC5C,KAAK;CACL,KAAK;AACP;;;;;;AAOA,MAAM,yBAAyB;;;;;AAM/B,MAAM,sBAAsB;;;;;AAM5B,MAAM,WAAW,SACf,SAAS,KAAA,KAAa,QAAQ;;;;;AAMhC,MAAM,cAAc,SAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC;;;;;AAM/D,MAAM,gBAAgB,SACpB,KAAK,QAAQ,wBAAwB,EAAE,CAAC,CAAC,YAAY;;;;;;;AAQvD,MAAM,yBAAyB,SAAiB,oBAAoB,KAAK,IAAI;;;;;;AAO7E,MAAM,YAAY,MAAc,aAAqB;CACnD,MAAM,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,OAAO;CAEvC,OACE,SAAS,UAAU,OAAO,UAC1B,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,MAAM,UACzB,cAAc,OAAO,UAAU,GAAG,EAAE,KAAK,IAAI,CAC/C;AAEJ;;;;;;AAOA,MAAM,cAAc,OAA0B,aAC5C,MAAM,MAAM,SAAS,SAAS,MAAM,QAAQ,CAAC;;;;;;AAO/C,MAAM,iBAAiB,UAAkB,SAAiB;CACxD,IAAI,QAAQ;CAEZ,OAAO,CAAC,GAAG,IAAI,CAAC,CACb,KAAK,SAAS;EACb,IAAI,CAAC,QAAQ,IAAI,GACf,OAAO;EAGT,MAAM,YAAY,SAAS,UAAU;EAErC,SAAS;EAET,OAAO;CACT,CAAC,CAAC,CACD,KAAK,EAAE;AACZ;;;;;;;;;;AAWA,MAAM,2BACJ,YACA,YACA,UACW;CACX,MAAM,WAAW,aAAa,UAAU;CAExC,IAAI,WAAW,OAAO,QAAQ,MAAM,KAAA,GAClC,OAAO;;CAIT,MAAM,iBAAiB,aACnB,WAAW,GAAG,MAAM,WAAW,GAAG,QAClC;CAEJ,IAAI,cAAc,kBAAkB,GAClC,OAAO,aAAa,WAAW,SAAS;;CAI1C,KAAK,IAAI,SAAS,SAAS,SAAS,GAAG,SAAS,GAAG,UAAU;EAC3D,MAAM,SAAS,SAAS,MAAM,GAAG,MAAM;EAEvC,IAAI,WAAW,OAAO,MAAM,MAAM,KAAA,GAChC,OAAO;CAEX;CAEA,OAAO;AACT;;;;;;;;;;AAWA,MAAM,yBACJ,UACG;CACH,MAAM,QAAQ,MAAM;CAEpB,MAAM,EAAE,gBAAgB,cAAc,UAAU;CAEhD,IAAI,mBAAmB,QAAQ,mBAAmB,cAChD;CAGF,IAAI,WAAW;CAEf,IAAI,MAAM,QAAQ,aAAa;EAC7B,OAAO,WAAW,KAAK,CAAC,sBAAsB,MAAM,WAAW,MAAM,EAAE,GACrE,YAAY;EAGd,IAAI,aAAa,GACf;CAEJ,OAAO,IAAI,MAAM,QAAQ,UAAU;EACjC,OACE,WAAW,MAAM,UACjB,CAAC,sBAAsB,MAAM,aAAa,EAAE,GAE5C,YAAY;EAGd,IAAI,aAAa,MAAM,QACrB;CAEJ;CAEA,IAAI,aAAa,gBACf,MAAM,kBAAkB,UAAU,QAAQ;AAE9C;;;;;;;;;AAUA,MAAM,oBAAoB,gBAAwB,UAA6B;CAC7E,MAAM,OAAO,WAAW,OAAO,aAAa,cAAc,CAAC;;CAG3D,IAAI,mBAAmB,MAAM,SAAS,KAAA,GACpC,OAAO,MAAM,KAAK,EAAE,QAAQ,eAAe,SAAS,EAAE,SAAS,IAAI;;CAIrE,MAAM,gBAAgB,aACpB,QAAQ,KAAK,SAAS,KAAK,eAAe,cAAc;;CAG1D,MAAM,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC,WAC9B,MAAM,aACL,QAAQ,IAAI,KAAK,eAAe,cAAc,eAClD;;CAGA,OAAO,MAAM,KACX,EAAE,QAAQ,eAAe,SAAS,EAAE,IACnC,GAAG,aACF,aAAa,kBACb,aAAa,QAAQ,KACrB,aAAa,WAAW,CAAC,CAC7B;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SwitchRootVariants } from "./switch-root-variants.js";
|
|
2
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
2
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
3
|
import { Switch } from "@base-ui/react/switch";
|
|
4
4
|
//#region src/components/fields/switch/switch-root.d.ts
|
|
5
5
|
export type SwitchRootProps = MergeOverride<Switch.Root.Props, SwitchRootVariants>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
2
|
import { switchRootVariants } from "./switch-root-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Switch } from "@base-ui/react/switch";
|
|
6
6
|
//#region src/components/fields/switch/switch-root.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch-root.js","names":["BaseSwitch"],"sources":["../../../../src/components/fields/switch/switch-root.tsx"],"sourcesContent":["import { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport {
|
|
1
|
+
{"version":3,"file":"switch-root.js","names":["BaseSwitch"],"sources":["../../../../src/components/fields/switch/switch-root.tsx"],"sourcesContent":["import { Switch as BaseSwitch } from '@base-ui/react/switch';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type SwitchRootVariants,\n switchRootVariants,\n} from './switch-root-variants';\n\nexport type SwitchRootProps = MergeOverride<\n BaseSwitch.Root.Props,\n SwitchRootVariants\n>;\n\nexport type SwitchRootState = BaseSwitch.Root.State;\n\nexport type SwitchRootChangeEventDetails = BaseSwitch.Root.ChangeEventDetails;\n\nexport type SwitchRootChangeEventReason = BaseSwitch.Root.ChangeEventReason;\n\nconst splitVariantProps = createSplitProps<SwitchRootVariants>();\n\n/**\n * O trilho do switch, com um `<input>` escondido ao lado para o formulário. Renderiza um `<span>`,\n * para caber dentro de um `<label>`: é o jeito mais simples de dar nome acessível. Sem rótulo\n * visível, use `aria-label`.\n *\n * O `size` e o `colorScheme` chegam à bolinha por CSS variables declaradas aqui: o\n * `Switch.Thumb` não recebe variantes.\n *\n * @example\n * ```tsx\n * <label>\n * <Switch.Root>\n * <Switch.Thumb />\n * </Switch.Root>\n * Receber notificações por e-mail\n * </label>\n * ```\n */\nexport const SwitchRoot = (props: SwitchRootProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n ]);\n\n const { className, ...rest } = elementProps;\n\n return (\n <BaseSwitch.Root\n data-component=\"Switch.Root\"\n className={mergeStateClassNames(\n switchRootVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nSwitchRoot.displayName = 'Switch.Root';\n"],"mappings":";;;;;;AAsBA,MAAM,oBAAoB,iBAAqC;;;;;;;;;;;;;;;;;;;AAoB/D,MAAa,cAAc,UAA2B;CACpD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,eACA,MACF,CAAC;CAED,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,OAAW,MAAZ;EACE,kBAAe;EACf,WAAW,qBACT,mBAAmB,YAAY,GAC/B,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,WAAW,cAAc"}
|
|
@@ -31,7 +31,7 @@ export declare const textareaDefaultVariants: Required<TextareaVariants>;
|
|
|
31
31
|
* a borda. Arrastando a alça, o campo não encolhe a ponto de cortar o texto.
|
|
32
32
|
*/
|
|
33
33
|
export declare const textareaVariants: (props?: ({
|
|
34
|
-
variant?: "
|
|
34
|
+
variant?: "subtle" | "outline" | null | undefined;
|
|
35
35
|
size?: "2xs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | null | undefined;
|
|
36
36
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
37
37
|
//#endregion
|
|
@@ -31,7 +31,7 @@ const textareaVariants = cva([
|
|
|
31
31
|
"text-start",
|
|
32
32
|
"font-normal",
|
|
33
33
|
"text-gray-12",
|
|
34
|
-
"placeholder:text-gray-
|
|
34
|
+
"placeholder:text-gray-11/80",
|
|
35
35
|
"border",
|
|
36
36
|
"rounded-md",
|
|
37
37
|
"corner-squircle",
|
|
@@ -54,9 +54,7 @@ const textareaVariants = cva([
|
|
|
54
54
|
"data-invalid:border-red-9",
|
|
55
55
|
"data-invalid:[--textarea-focus-color:var(--color-red-9)]",
|
|
56
56
|
"aria-invalid:border-red-9",
|
|
57
|
-
"aria-invalid:[--textarea-focus-color:var(--color-red-9)]"
|
|
58
|
-
"user-invalid:border-red-9",
|
|
59
|
-
"user-invalid:[--textarea-focus-color:var(--color-red-9)]"
|
|
57
|
+
"aria-invalid:[--textarea-focus-color:var(--color-red-9)]"
|
|
60
58
|
], {
|
|
61
59
|
variants: {
|
|
62
60
|
variant: {
|
|
@@ -76,7 +74,7 @@ const textareaVariants = cva([
|
|
|
76
74
|
],
|
|
77
75
|
xs: [
|
|
78
76
|
"px-2",
|
|
79
|
-
"[--textarea-py:--spacing(
|
|
77
|
+
"[--textarea-py:--spacing(2)]",
|
|
80
78
|
"text-xs",
|
|
81
79
|
"any-pointer-coarse:text-base"
|
|
82
80
|
],
|
|
@@ -99,7 +97,7 @@ const textareaVariants = cva([
|
|
|
99
97
|
],
|
|
100
98
|
xl: [
|
|
101
99
|
"px-4.5",
|
|
102
|
-
"[--textarea-py:--spacing(
|
|
100
|
+
"[--textarea-py:--spacing(4)]",
|
|
103
101
|
"text-base"
|
|
104
102
|
],
|
|
105
103
|
"2xl": [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-variants.js","names":[],"sources":["../../../../src/components/fields/textarea/textarea-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type TextareaVariants = {\n /**\n * Padding e tamanho do texto, com os nomes do `Input`. Sem altura fixa: ela vem de `rows` ou,\n * com `field-sizing-content`, do conteúdo. Em tela de toque, do `2xs` ao `md` o texto sobe para\n * 16px, para o iPhone 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 textareaDefaultVariants: Required<TextareaVariants> = {\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` nem altura fixa: a altura vem de `rows` ou, com `field-sizing-content`,\n * do conteúdo;\n * - `block`, `resize-y` e o padding vertical em `--textarea-py`.\n *\n * Cada tamanho declara o padding vertical em `--textarea-py`, que três classes da base leem:\n * - `py`;\n * - `scroll-pb`: ao digitar na última linha de um textarea com rolagem, o navegador rola até o\n * cursor; sem ele, a linha fica colada na borda de baixo, sem o padding;\n * - `min-h`: uma linha (`1lh`, que acompanha o texto, inclusive em tela de toque), mais o padding e\n * a borda. Arrastando a alça, o campo não encolhe a ponto de cortar o texto.\n */\nexport const textareaVariants = cva(\n [\n 'relative',\n 'block', // Como `inline-block`, o padrão, deixa um vão embaixo, na linha de base do texto em volta\n 'w-full',\n 'min-h-[calc(1lh+var(--textarea-py)*2+2px)]',\n\n 'py-(--textarea-py)',\n 'scroll-pb-(--textarea-py)',\n\n 'appearance-none',\n 'outline-none',\n\n 'resize-y',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'placeholder:text-gray-
|
|
1
|
+
{"version":3,"file":"textarea-variants.js","names":[],"sources":["../../../../src/components/fields/textarea/textarea-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\n\nexport type TextareaVariants = {\n /**\n * Padding e tamanho do texto, com os nomes do `Input`. Sem altura fixa: ela vem de `rows` ou,\n * com `field-sizing-content`, do conteúdo. Em tela de toque, do `2xs` ao `md` o texto sobe para\n * 16px, para o iPhone 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 textareaDefaultVariants: Required<TextareaVariants> = {\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` nem altura fixa: a altura vem de `rows` ou, com `field-sizing-content`,\n * do conteúdo;\n * - `block`, `resize-y` e o padding vertical em `--textarea-py`.\n *\n * Cada tamanho declara o padding vertical em `--textarea-py`, que três classes da base leem:\n * - `py`;\n * - `scroll-pb`: ao digitar na última linha de um textarea com rolagem, o navegador rola até o\n * cursor; sem ele, a linha fica colada na borda de baixo, sem o padding;\n * - `min-h`: uma linha (`1lh`, que acompanha o texto, inclusive em tela de toque), mais o padding e\n * a borda. Arrastando a alça, o campo não encolhe a ponto de cortar o texto.\n */\nexport const textareaVariants = cva(\n [\n 'relative',\n 'block', // Como `inline-block`, o padrão, deixa um vão embaixo, na linha de base do texto em volta\n 'w-full',\n 'min-h-[calc(1lh+var(--textarea-py)*2+2px)]',\n\n 'py-(--textarea-py)',\n 'scroll-pb-(--textarea-py)',\n\n 'appearance-none',\n 'outline-none',\n\n 'resize-y',\n\n 'text-start',\n 'font-normal', // Sem isto, herda o peso do `<label>` em volta\n 'text-gray-12',\n\n 'placeholder:text-gray-11/80',\n\n 'border',\n 'rounded-md',\n 'corner-squircle',\n\n '[--textarea-focus-color:var(--color-black)]',\n 'dark:[--textarea-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-(--textarea-focus-color)',\n 'focus-visible:border-(--textarea-focus-color)',\n\n 'data-focused:outline-1',\n 'data-focused:outline-solid',\n 'data-focused:-outline-offset-2',\n 'data-focused:outline-(--textarea-focus-color)',\n 'data-focused:border-(--textarea-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:[--textarea-focus-color:var(--color-red-9)]',\n 'aria-invalid:border-red-9',\n 'aria-invalid:[--textarea-focus-color:var(--color-red-9)]',\n ],\n {\n variants: {\n variant: {\n outline: [\n 'bg-white/90',\n 'dark:bg-black/90',\n\n 'border-gray-alpha-7',\n ],\n subtle: [\n 'bg-gray-4',\n\n 'border-transparent',\n ],\n },\n size: {\n '2xs': [\n 'px-2',\n '[--textarea-py:--spacing(1)]',\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 'px-2',\n '[--textarea-py:--spacing(2)]',\n\n 'text-xs',\n 'any-pointer-coarse:text-base',\n ],\n sm: [\n 'px-2.5',\n '[--textarea-py:--spacing(2)]',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n md: [\n 'px-3',\n '[--textarea-py:--spacing(2)]',\n\n 'text-sm',\n 'any-pointer-coarse:text-base',\n ],\n lg: [\n 'px-4',\n '[--textarea-py:--spacing(3)]',\n\n 'text-base',\n ],\n xl: [\n 'px-4.5',\n '[--textarea-py:--spacing(4)]',\n\n 'text-base',\n ],\n '2xl': [\n 'px-5',\n '[--textarea-py:--spacing(4)]',\n\n 'text-lg',\n ],\n },\n },\n defaultVariants: {\n size: textareaDefaultVariants.size,\n variant: textareaDefaultVariants.variant,\n },\n },\n);\n"],"mappings":";;AAmBA,MAAa,0BAAsD;CACjE,MAAM;CACN,SAAS;AACX;;;;;;;;;;;;;;;AAgBA,MAAa,mBAAmB,IAC9B;CACE;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CAEA;CAEA;CACA;CACA;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;GACF;GACA,IAAI;IACF;IACA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;IACA;GACF;GACA,IAAI;IACF;IACA;IAEA;GACF;GACA,IAAI;IACF;IACA;IAEA;GACF;GACA,OAAO;IACL;IACA;IAEA;GACF;EACF;CACF;CACA,iBAAiB;EACf,MAAM,wBAAwB;EAC9B,SAAS,wBAAwB;CACnC;AACF,CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TextareaVariants } from "./textarea-variants.js";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
3
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { Input } from "@base-ui/react/input";
|
|
5
5
|
//#region src/components/fields/textarea/textarea.d.ts
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
2
|
import { textareaVariants } from "./textarea-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Input } from "@base-ui/react/input";
|
|
6
6
|
//#region src/components/fields/textarea/textarea.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","names":["BaseInput"],"sources":["../../../../src/components/fields/textarea/textarea.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport {
|
|
1
|
+
{"version":3,"file":"textarea.js","names":["BaseInput"],"sources":["../../../../src/components/fields/textarea/textarea.tsx"],"sourcesContent":["import { Input as BaseInput } from '@base-ui/react/input';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport type React from 'react';\nimport { mergeStateClassNames } from '#utils';\nimport { type TextareaVariants, textareaVariants } from './textarea-variants';\n\n/**\n * As props do `<textarea>`, com as do Base UI por cima: o `Input` do Base UI tipa as props como as\n * de um `<input>`, sem `rows`, `cols` e `wrap`.\n */\nexport type TextareaProps = MergeOverride<\n React.ComponentPropsWithRef<'textarea'>,\n Pick<BaseInput.Props, 'className' | 'style' | 'render' | 'onValueChange'> &\n TextareaVariants\n>;\n\nexport type TextareaState = BaseInput.State;\n\nexport type TextareaChangeEventDetails = BaseInput.ChangeEventDetails;\n\nexport type TextareaChangeEventReason = BaseInput.ChangeEventReason;\n\nconst splitVariantProps = createSplitProps<TextareaVariants>();\n\n/**\n * O `Input` do Base UI renderizando um `<textarea>`: liga-se sozinho ao `Field` quando está dentro\n * de um, como o `Input` da lib. Fora dele, o nome acessível vem de um `<label>` (em volta ou por\n * `htmlFor`) ou de `aria-label`.\n *\n * O Enter quebra a linha: o Base UI só trata o Enter como envio num `<input>`.\n *\n * A altura vem de `rows`, com o mínimo de uma linha. Para crescer com o conteúdo,\n * `field-sizing-content` com um `min-h-*` e um `max-h-*` na `className`: com ele, o `rows` deixa\n * de valer. O redimensionamento manual é vertical (`resize-y`); `resize-none` desliga.\n *\n * @example\n * ```tsx\n * <Textarea\n * aria-label=\"Observações\"\n * rows={4}\n * />\n * ```\n */\nexport const Textarea = (props: TextareaProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'size',\n 'variant',\n ]);\n\n const { className, ...rest } = elementProps;\n\n return (\n <BaseInput\n data-component=\"Textarea\"\n render={<textarea />}\n className={mergeStateClassNames(\n textareaVariants(variantProps),\n className,\n )}\n // O Base UI tipa os handlers com eventos de `<input>`, mas só repassa o evento do elemento que\n // renderiza: aqui, o do `<textarea>`. O cast fica porque a saída sem ele (o `render` como\n // função, com as props divididas entre o Base UI e o `<textarea>`) arriscaria a ligação\n // com o `Field`, que lê o valor pelas props do Base UI.\n // biome-ignore lint/nursery/noUnsafeTypeAssertion: ver o comentário acima\n {...(rest as BaseInput.Props)}\n />\n );\n};\n\nTextarea.displayName = 'Textarea';\n"],"mappings":";;;;;;AAyBA,MAAM,oBAAoB,iBAAmC;;;;;;;;;;;;;;;;;;;;AAqB7D,MAAa,YAAY,UAAyB;CAChD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAC5D,QACA,SACF,CAAC;CAED,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,OAAD;EACE,kBAAe;EACf,QAAQ,oBAAC,YAAD,CAAW,CAAA;EACnB,WAAW,qBACT,iBAAiB,YAAY,GAC7B,SACF;EAMA,GAAK;CACN,CAAA;AAEL;AAEA,SAAS,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CenterAbsoluteVariants } from "./center-absolute-variants.js";
|
|
2
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
2
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
3
|
import { useRender } from "@base-ui/react";
|
|
4
4
|
//#region src/components/layout/center-absolute/center-absolute.d.ts
|
|
5
5
|
export type CenterAbsoluteProps = MergeOverride<useRender.ComponentProps<'div'>, CenterAbsoluteVariants>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
2
|
import { centerAbsoluteVariants } from "./center-absolute-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
5
5
|
//#region src/components/layout/center-absolute/center-absolute.tsx
|
|
6
6
|
const splitVariantProps = createSplitProps();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"center-absolute.js","names":[],"sources":["../../../../src/components/layout/center-absolute/center-absolute.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {
|
|
1
|
+
{"version":3,"file":"center-absolute.js","names":[],"sources":["../../../../src/components/layout/center-absolute/center-absolute.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeTwClassNames } from '#utils';\nimport {\n type CenterAbsoluteVariants,\n centerAbsoluteVariants,\n} from './center-absolute-variants';\n\nexport type CenterAbsoluteProps = MergeOverride<\n useRender.ComponentProps<'div'>,\n CenterAbsoluteVariants\n>;\n\nconst splitVariantProps = createSplitProps<CenterAbsoluteVariants>();\n\n/**\n * Centraliza o elemento com `position: absolute` sobre o ancestral posicionado mais próximo,\n * que precisa ter `relative` (ou outro `position`) para servir de referência.\n */\nexport const CenterAbsolute = (props: CenterAbsoluteProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, ['axis']);\n\n const { render, className, ...rest } = elementProps;\n\n const baseProps = {\n 'data-component': 'CenterAbsolute',\n className: mergeTwClassNames(\n centerAbsoluteVariants(variantProps),\n className,\n ),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nCenterAbsolute.displayName = 'CenterAbsolute';\n"],"mappings":";;;;;AAgBA,MAAM,oBAAoB,iBAAyC;;;;;AAMnE,MAAa,kBAAkB,UAA+B;CAC5D,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAAC,MAAM,CAAC;CAEtE,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBACT,uBAAuB,YAAY,GACnC,SACF;CACF;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,eAAe,cAAc"}
|
|
@@ -13,7 +13,7 @@ export declare const floatDefaultVariants: Required<FloatVariants>;
|
|
|
13
13
|
* de sinal (`rtl:`), para o elemento continuar metade dentro e metade fora do canto.
|
|
14
14
|
*/
|
|
15
15
|
export declare const floatVariants: (props?: ({
|
|
16
|
-
placement?: "
|
|
16
|
+
placement?: "top-center" | "bottom-center" | "top-start" | "top-end" | "middle-start" | "middle-center" | "middle-end" | "bottom-start" | "bottom-end" | null | undefined;
|
|
17
17
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
18
18
|
//#endregion
|
|
19
19
|
//# sourceMappingURL=float-variants.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FloatVariants } from "./float-variants.js";
|
|
2
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
2
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
3
|
import { useRender } from "@base-ui/react";
|
|
4
4
|
//#region src/components/layout/float/float.d.ts
|
|
5
5
|
export type FloatProps = MergeOverride<useRender.ComponentProps<'div'>, FloatVariants>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
2
|
import { floatVariants } from "./float-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
5
5
|
//#region src/components/layout/float/float.tsx
|
|
6
6
|
const splitVariantProps = createSplitProps();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"float.js","names":[],"sources":["../../../../src/components/layout/float/float.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {
|
|
1
|
+
{"version":3,"file":"float.js","names":[],"sources":["../../../../src/components/layout/float/float.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeTwClassNames } from '#utils';\nimport { type FloatVariants, floatVariants } from './float-variants';\n\nexport type FloatProps = MergeOverride<\n useRender.ComponentProps<'div'>,\n FloatVariants\n>;\n\nconst splitVariantProps = createSplitProps<FloatVariants>();\n\n/**\n * Prende o elemento num canto ou borda do ancestral posicionado mais próximo (badge sobre um\n * avatar, por exemplo). O ancestral precisa ter `relative` para servir de referência.\n */\nexport const Float = (props: FloatProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, ['placement']);\n\n const { render, className, ...rest } = elementProps;\n\n const baseProps = {\n 'data-component': 'Float',\n className: mergeTwClassNames(floatVariants(variantProps), className),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, rest),\n });\n};\n\nFloat.displayName = 'Float';\n"],"mappings":";;;;;AAaA,MAAM,oBAAoB,iBAAgC;;;;;AAM1D,MAAa,SAAS,UAAsB;CAC1C,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAAC,WAAW,CAAC;CAE3E,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAEvC,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBAAkB,cAAc,YAAY,GAAG,SAAS;CACrE;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,IAAI;CACnC,CAAC;AACH;AAEA,MAAM,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ScrollAreaViewportVariants } from "./scroll-area-viewport-variants.js";
|
|
2
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
2
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
3
|
import { ScrollArea } from "@base-ui/react/scroll-area";
|
|
4
4
|
//#region src/components/layout/scroll-area/scroll-area-viewport.d.ts
|
|
5
5
|
export type ScrollAreaViewportProps = MergeOverride<ScrollArea.Viewport.Props, ScrollAreaViewportVariants & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
2
|
import { scrollAreaViewportVariants } from "./scroll-area-viewport-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { ScrollArea } from "@base-ui/react/scroll-area";
|
|
6
6
|
//#region src/components/layout/scroll-area/scroll-area-viewport.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area-viewport.js","names":["BaseScrollArea"],"sources":["../../../../src/components/layout/scroll-area/scroll-area-viewport.tsx"],"sourcesContent":["import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';\nimport {
|
|
1
|
+
{"version":3,"file":"scroll-area-viewport.js","names":["BaseScrollArea"],"sources":["../../../../src/components/layout/scroll-area/scroll-area-viewport.tsx"],"sourcesContent":["import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type ScrollAreaViewportVariants,\n scrollAreaViewportVariants,\n} from './scroll-area-viewport-variants';\n\nexport type ScrollAreaViewportProps = MergeOverride<\n BaseScrollArea.Viewport.Props,\n ScrollAreaViewportVariants & {\n /**\n * Mostra o anel de foco do tema quando o viewport recebe foco pelo teclado.\n *\n * O Base UI coloca o viewport na ordem de tabulação sempre que há transbordamento, para que\n * dê para rolar pelo teclado. Desligado, **nenhuma** indicação de foco aparece — nem o\n * contorno padrão do navegador —, mas o viewport continua focável: só desligue quando outra\n * coisa já mostrar onde está o foco.\n *\n * O anel é pintado pelo `Root` (`focus-ring-inside`), não por este elemento: com `fade`, a\n * máscara apagaria qualquer coisa que o viewport pintasse. É o arranjo da demo oficial de\n * fade. O viewport só se marca com `data-focus-ring`.\n *\n * @default true\n */\n focusRing?: boolean;\n }\n>;\n\nexport type ScrollAreaViewportState = BaseScrollArea.Viewport.State;\n\nconst splitVariantProps = createSplitProps<ScrollAreaViewportVariants>();\n\n/**\n * O elemento que de fato rola. O Base UI aplica `overflow: scroll` inline, esconde a barra\n * nativa e põe o elemento na ordem de tabulação quando há transbordamento.\n *\n * Segue a altura do `Root`. Para crescer até um limite e rolar a partir dele, o `max-h-*` vai\n * **aqui**, não no `Root`: percentual não resolve contra `max-height`.\n *\n * Sem `overscroll-behavior` de propósito: `contain` cortaria o gesto antes da página, e é ele\n * que dispara o pull-to-refresh quando esta área é o conteúdo principal. Scroller sobreposto\n * (drawer, popover) declara `overscroll-contain` por conta própria.\n */\nexport const ScrollAreaViewport = (props: ScrollAreaViewportProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, ['fade']);\n\n const { className, focusRing = true, ...rest } = elementProps;\n\n return (\n <BaseScrollArea.Viewport\n data-component=\"ScrollArea.Viewport\"\n data-focus-ring={focusRing ? '' : undefined}\n className={mergeStateClassNames(\n scrollAreaViewportVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nScrollAreaViewport.displayName = 'ScrollArea.Viewport';\n"],"mappings":";;;;;;AAkCA,MAAM,oBAAoB,iBAA6C;;;;;;;;;;;;AAavE,MAAa,sBAAsB,UAAmC;CACpE,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO,CAAC,MAAM,CAAC;CAEtE,MAAM,EAAE,WAAW,YAAY,MAAM,GAAG,SAAS;CAEjD,OACE,oBAACA,WAAe,UAAhB;EACE,kBAAe;EACf,mBAAiB,YAAY,KAAK,KAAA;EAClC,WAAW,qBACT,2BAA2B,YAAY,GACvC,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,mBAAmB,cAAc"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SeparatorVariants } from "./separator-variants.js";
|
|
2
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
2
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
3
3
|
import { Separator as Separator$1 } from "@base-ui/react/separator";
|
|
4
4
|
//#region src/components/layout/separator/separator.d.ts
|
|
5
5
|
export type SeparatorProps = MergeOverride<Separator$1.Props, SeparatorVariants>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeStateClassNames } from "../../../utils/merge-state-class-names.js";
|
|
2
2
|
import { separatorVariants } from "./separator-variants.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { Separator as Separator$1 } from "@base-ui/react/separator";
|
|
6
6
|
//#region src/components/layout/separator/separator.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.js","names":["BaseSeparator"],"sources":["../../../../src/components/layout/separator/separator.tsx"],"sourcesContent":["import { Separator as BaseSeparator } from '@base-ui/react/separator';\nimport {
|
|
1
|
+
{"version":3,"file":"separator.js","names":["BaseSeparator"],"sources":["../../../../src/components/layout/separator/separator.tsx"],"sourcesContent":["import { Separator as BaseSeparator } from '@base-ui/react/separator';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport { mergeStateClassNames } from '#utils';\nimport {\n type SeparatorVariants,\n separatorVariants,\n} from './separator-variants';\n\nexport type SeparatorProps = MergeOverride<\n BaseSeparator.Props,\n SeparatorVariants\n>;\n\nexport type SeparatorState = BaseSeparator.State;\n\nconst splitVariantProps = createSplitProps<SeparatorVariants>();\n\n/**\n * Linha que divide conteúdo. O Base UI escreve `role=\"separator\"` e `aria-orientation`.\n *\n * `orientation` (padrão `horizontal`) é prop do Base UI e chega às classes pelo\n * `data-orientation`. Na vertical, a linha estica pela altura do pai flex (`self-stretch`);\n * fora de um flex, a altura fica com quem usa.\n */\nexport const Separator = (props: SeparatorProps) => {\n const [variantProps, elementProps] = splitVariantProps(props, [\n 'colorScheme',\n 'size',\n 'variant',\n ]);\n const { className, ...rest } = elementProps;\n\n return (\n <BaseSeparator\n data-component=\"Separator\"\n className={mergeStateClassNames(\n separatorVariants(variantProps),\n className,\n )}\n {...rest}\n />\n );\n};\n\nSeparator.displayName = 'Separator';\n"],"mappings":";;;;;;AAkBA,MAAM,oBAAoB,iBAAoC;;;;;;;;AAS9D,MAAa,aAAa,UAA0B;CAClD,MAAM,CAAC,cAAc,gBAAgB,kBAAkB,OAAO;EAC5D;EACA;EACA;CACF,CAAC;CACD,MAAM,EAAE,WAAW,GAAG,SAAS;CAE/B,OACE,oBAACA,aAAD;EACE,kBAAe;EACf,WAAW,qBACT,kBAAkB,YAAY,GAC9B,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,UAAU,cAAc"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MergeOverride } from "@lucasbernardosn/utils";
|
|
1
|
+
import { MergeOverride } from "@lucasbernardosn/ts-utils";
|
|
2
2
|
import { useRender } from "@base-ui/react";
|
|
3
3
|
import * as ZagSplitter from "@zag-js/splitter";
|
|
4
4
|
//#region src/components/layout/splitter/splitter-panel.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeTwClassNames } from "../../../utils/merge-class-names.js";
|
|
2
2
|
import { useSplitterContext } from "./use-splitter-context.js";
|
|
3
|
-
import { createSplitProps } from "@lucasbernardosn/utils";
|
|
3
|
+
import { createSplitProps } from "@lucasbernardosn/ts-utils";
|
|
4
4
|
import { mergeProps, useRender } from "@base-ui/react";
|
|
5
5
|
import * as ZagSplitter from "@zag-js/splitter";
|
|
6
6
|
//#region src/components/layout/splitter/splitter-panel.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitter-panel.js","names":[],"sources":["../../../../src/components/layout/splitter/splitter-panel.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {
|
|
1
|
+
{"version":3,"file":"splitter-panel.js","names":[],"sources":["../../../../src/components/layout/splitter/splitter-panel.tsx"],"sourcesContent":["import { mergeProps, useRender } from '@base-ui/react';\nimport {\n createSplitProps,\n type MergeOverride,\n} from '@lucasbernardosn/ts-utils';\nimport * as ZagSplitter from '@zag-js/splitter';\nimport { mergeTwClassNames } from '#utils';\nimport { useSplitterContext } from './use-splitter-context';\n\n/**\n * Props do `Splitter.Panel`: o `id` do painel e as props do elemento\n * renderizado.\n */\nexport type SplitterPanelProps = MergeOverride<\n useRender.ComponentProps<'div'>,\n ZagSplitter.PanelProps\n>;\n\nconst splitPanelProps = createSplitProps<ZagSplitter.PanelProps>();\n\n/**\n * Painel redimensionável.\n *\n * O `id` liga o painel à entrada de mesmo `id` em `panels`, no `Splitter.Root`\n * — não é o `id` do elemento, que o Zag gera.\n *\n * O Zag escreve inline o tamanho (`flex-grow` em %, `flex-basis: 0`) e\n * `overflow: hidden`: conteúdo que rola precisa de uma área de rolagem dentro.\n * Um `style` passado aqui sobrescreve o do Zag chave a chave.\n *\n * O painel não declara `display`, então `hidden` o esconde, e os visíveis\n * dividem o espaço na proporção dos próprios tamanhos. O Zag continua contando\n * o escondido: esconda junto o puxador vizinho.\n */\nexport const SplitterPanel = (props: SplitterPanelProps) => {\n const [panelProps, elementProps] = splitPanelProps(\n props,\n ZagSplitter.panelProps,\n );\n\n const { render, className, ...rest } = elementProps;\n\n const splitter = useSplitterContext();\n\n const zagProps = splitter.getPanelProps(panelProps);\n\n const baseProps = {\n 'data-component': 'Splitter.Panel',\n className: mergeTwClassNames([], className),\n };\n\n return useRender({\n render,\n defaultTagName: 'div',\n props: mergeProps(baseProps, zagProps, rest),\n });\n};\n\nSplitterPanel.displayName = 'Splitter.Panel';\n"],"mappings":";;;;;;AAkBA,MAAM,kBAAkB,iBAAyC;;;;;;;;;;;;;;;AAgBjE,MAAa,iBAAiB,UAA8B;CAC1D,MAAM,CAAC,YAAY,gBAAgB,gBACjC,OACA,YAAY,UACd;CAEA,MAAM,EAAE,QAAQ,WAAW,GAAG,SAAS;CAIvC,MAAM,WAFW,mBAEO,CAAC,CAAC,cAAc,UAAU;CAElD,MAAM,YAAY;EAChB,kBAAkB;EAClB,WAAW,kBAAkB,CAAC,GAAG,SAAS;CAC5C;CAEA,OAAO,UAAU;EACf;EACA,gBAAgB;EAChB,OAAO,WAAW,WAAW,UAAU,IAAI;CAC7C,CAAC;AACH;AAEA,cAAc,cAAc"}
|