base-ui-vue 0.1.0 → 0.2.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 +41 -1
- package/dist/button/Button.cjs +53 -12
- package/dist/button/Button.cjs.map +1 -1
- package/dist/button/Button.js +26 -15
- package/dist/button/Button.js.map +1 -1
- package/dist/button/ToolbarButton.cjs +367 -0
- package/dist/button/ToolbarButton.cjs.map +1 -0
- package/dist/button/ToolbarButton.js +320 -0
- package/dist/button/ToolbarButton.js.map +1 -0
- package/dist/button/ToolbarButtonDataAttributes.cjs +27 -0
- package/dist/button/ToolbarButtonDataAttributes.cjs.map +1 -0
- package/dist/button/ToolbarButtonDataAttributes.js +21 -0
- package/dist/button/ToolbarButtonDataAttributes.js.map +1 -0
- package/dist/checkbox/index.cjs +1173 -0
- package/dist/checkbox/index.cjs.map +1 -0
- package/dist/checkbox/index.js +1048 -0
- package/dist/checkbox/index.js.map +1 -0
- package/dist/checkbox-group/CheckboxGroup.cjs +629 -0
- package/dist/checkbox-group/CheckboxGroup.cjs.map +1 -0
- package/dist/checkbox-group/CheckboxGroup.js +540 -0
- package/dist/checkbox-group/CheckboxGroup.js.map +1 -0
- package/dist/checkbox-group/CheckboxGroupDataAttributes.cjs +18 -0
- package/dist/checkbox-group/CheckboxGroupDataAttributes.cjs.map +1 -0
- package/dist/checkbox-group/CheckboxGroupDataAttributes.js +12 -0
- package/dist/checkbox-group/CheckboxGroupDataAttributes.js.map +1 -0
- package/dist/composite/composite.cjs +167 -0
- package/dist/composite/composite.cjs.map +1 -1
- package/dist/composite/composite.js +96 -1
- package/dist/composite/composite.js.map +1 -1
- package/dist/composite/constants.cjs +12 -0
- package/dist/composite/constants.cjs.map +1 -0
- package/dist/composite/constants.js +6 -0
- package/dist/composite/constants.js.map +1 -0
- package/dist/control/FieldControl.cjs +18 -343
- package/dist/control/FieldControl.cjs.map +1 -1
- package/dist/control/FieldControl.js +14 -285
- package/dist/control/FieldControl.js.map +1 -1
- package/dist/control/SliderControl.cjs +636 -0
- package/dist/control/SliderControl.cjs.map +1 -0
- package/dist/control/SliderControl.js +553 -0
- package/dist/control/SliderControl.js.map +1 -0
- package/dist/control/SliderControlDataAttributes.cjs +47 -0
- package/dist/control/SliderControlDataAttributes.cjs.map +1 -0
- package/dist/control/SliderControlDataAttributes.js +41 -0
- package/dist/control/SliderControlDataAttributes.js.map +1 -0
- package/dist/csp-provider/CSPContext.cjs +32 -0
- package/dist/csp-provider/CSPContext.cjs.map +1 -0
- package/dist/csp-provider/CSPContext.js +21 -0
- package/dist/csp-provider/CSPContext.js.map +1 -0
- package/dist/csp-provider/CSPProvider.cjs +46 -0
- package/dist/csp-provider/CSPProvider.cjs.map +1 -0
- package/dist/csp-provider/CSPProvider.js +41 -0
- package/dist/csp-provider/CSPProvider.js.map +1 -0
- package/dist/description/FieldDescription.cjs +5 -5
- package/dist/description/FieldDescription.cjs.map +1 -1
- package/dist/description/FieldDescription.js +1 -1
- package/dist/direction-provider/DirectionProvider.cjs +2 -2
- package/dist/direction-provider/DirectionProvider.cjs.map +1 -1
- package/dist/direction-provider/DirectionProvider.js +1 -1
- package/dist/error/FieldError.cjs +10 -288
- package/dist/error/FieldError.cjs.map +1 -1
- package/dist/error/FieldError.js +4 -246
- package/dist/error/FieldError.js.map +1 -1
- package/dist/form/Form.cjs +5 -4
- package/dist/form/Form.cjs.map +1 -1
- package/dist/form/Form.js +5 -4
- package/dist/form/Form.js.map +1 -1
- package/dist/group/ToolbarGroup.cjs +92 -0
- package/dist/group/ToolbarGroup.cjs.map +1 -0
- package/dist/group/ToolbarGroup.js +87 -0
- package/dist/group/ToolbarGroup.js.map +1 -0
- package/dist/group/ToolbarGroupDataAttributes.cjs +23 -0
- package/dist/group/ToolbarGroupDataAttributes.cjs.map +1 -0
- package/dist/group/ToolbarGroupDataAttributes.js +17 -0
- package/dist/group/ToolbarGroupDataAttributes.js.map +1 -0
- package/dist/header/AccordionHeader.cjs +2 -2
- package/dist/header/AccordionHeader.js +1 -1
- package/dist/image/AvatarImage.cjs +4 -4
- package/dist/image/AvatarImage.cjs.map +1 -1
- package/dist/image/AvatarImage.js +1 -1
- package/dist/index.cjs +80 -10
- package/dist/index.d.cts +2751 -612
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +2751 -612
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5
- package/dist/index2.cjs +3651 -370
- package/dist/index2.cjs.map +1 -1
- package/dist/index2.js +3365 -270
- package/dist/index2.js.map +1 -1
- package/package.json +8 -4
- package/src/accordion/root/AccordionRoot.vue +2 -1
- package/src/checkbox/index.ts +23 -0
- package/src/checkbox/indicator/CheckboxIndicator.vue +102 -0
- package/src/checkbox/indicator/CheckboxIndicatorDataAttributes.ts +61 -0
- package/src/checkbox/root/CheckboxRoot.vue +632 -0
- package/src/checkbox/root/CheckboxRootContext.ts +22 -0
- package/src/checkbox/root/CheckboxRootDataAttributes.ts +54 -0
- package/src/checkbox/utils/useStateAttributesMapping.ts +30 -0
- package/src/checkbox-group/CheckboxGroup.vue +241 -0
- package/src/checkbox-group/CheckboxGroupContext.ts +39 -0
- package/src/checkbox-group/CheckboxGroupDataAttributes.ts +6 -0
- package/src/checkbox-group/index.ts +11 -0
- package/src/checkbox-group/useCheckboxGroupParent.ts +173 -0
- package/src/collapsible/panel/useCollapsiblePanel.ts +2 -1
- package/src/collapsible/root/useCollapsibleRoot.ts +3 -1
- package/src/composite/composite.ts +2 -0
- package/src/composite/item/CompositeItem.vue +7 -8
- package/src/composite/root/CompositeRoot.vue +12 -1
- package/src/csp-provider/CSPContext.ts +26 -0
- package/src/csp-provider/CSPProvider.vue +40 -0
- package/src/csp-provider/index.ts +5 -0
- package/src/field/item/FieldItem.vue +6 -1
- package/src/field/label/FieldLabel.vue +10 -51
- package/src/field/root/FieldRoot.vue +16 -3
- package/src/floating-ui-vue/types.ts +1 -4
- package/src/floating-ui-vue/utils/element.ts +12 -0
- package/src/floating-ui-vue/utils/shadowDom.ts +44 -0
- package/src/floating-ui-vue/utils.ts +3 -0
- package/src/form/Form.vue +5 -3
- package/src/index.ts +9 -0
- package/src/labelable-provider/LabelableContext.ts +2 -2
- package/src/labelable-provider/LabelableProvider.vue +21 -4
- package/src/labelable-provider/index.ts +2 -0
- package/src/labelable-provider/useAriaLabelledBy.ts +9 -9
- package/src/labelable-provider/useLabel.ts +115 -0
- package/src/labelable-provider/useLabelableId.ts +12 -10
- package/src/separator/Separator.vue +65 -0
- package/src/separator/SeparatorDataAttributes.ts +7 -0
- package/src/separator/index.ts +3 -0
- package/src/slider/control/SliderControl.vue +497 -0
- package/src/slider/control/SliderControlDataAttributes.ts +35 -0
- package/src/slider/index.ts +35 -0
- package/src/slider/indicator/SliderIndicator.vue +144 -0
- package/src/slider/indicator/SliderIndicatorDataAttributes.ts +35 -0
- package/src/slider/label/SliderLabel.vue +75 -0
- package/src/slider/root/SliderRoot.vue +557 -0
- package/src/slider/root/SliderRootContext.ts +126 -0
- package/src/slider/root/SliderRootDataAttributes.ts +35 -0
- package/src/slider/root/stateAttributesMapping.ts +13 -0
- package/src/slider/thumb/SliderThumb.vue +601 -0
- package/src/slider/thumb/SliderThumbDataAttributes.ts +39 -0
- package/src/slider/thumb/prehydrationScript.min.ts +5 -0
- package/src/slider/thumb/prehydrationScript.template.js +69 -0
- package/src/slider/track/SliderTrack.vue +48 -0
- package/src/slider/track/SliderTrackDataAttributes.ts +10 -0
- package/src/slider/utils/asc.ts +3 -0
- package/src/slider/utils/getMidpoint.ts +9 -0
- package/src/slider/utils/getPushedThumbValues.ts +68 -0
- package/src/slider/utils/getSliderValue.ts +25 -0
- package/src/slider/utils/replaceArrayItemAtIndex.ts +15 -0
- package/src/slider/utils/resolveThumbCollision.ts +177 -0
- package/src/slider/utils/roundValueToStep.ts +19 -0
- package/src/slider/utils/test-utils.ts +25 -0
- package/src/slider/utils/validateMinimumDistance.ts +20 -0
- package/src/slider/utils/valueArrayToPercentages.ts +10 -0
- package/src/slider/value/SliderValue.vue +90 -0
- package/src/slider/value/SliderValueDataAttributes.ts +35 -0
- package/src/switch/index.ts +14 -0
- package/src/switch/root/SwitchRoot.vue +448 -0
- package/src/switch/root/SwitchRootContext.ts +22 -0
- package/src/switch/root/SwitchRootDataAttributes.ts +46 -0
- package/src/switch/stateAttributesMapping.ts +23 -0
- package/src/switch/thumb/SwitchThumb.vue +59 -0
- package/src/switch/thumb/SwitchThumbDataAttributes.ts +46 -0
- package/src/toggle/Toggle.vue +211 -0
- package/src/toggle/ToggleDataAttributes.ts +6 -0
- package/src/toggle/index.ts +3 -0
- package/src/toggle-group/ToggleGroup.vue +224 -0
- package/src/toggle-group/ToggleGroupContext.ts +45 -0
- package/src/toggle-group/ToggleGroupDataAttributes.ts +15 -0
- package/src/toggle-group/index.ts +5 -0
- package/src/toolbar/button/ToolbarButton.vue +99 -0
- package/src/toolbar/button/ToolbarButtonDataAttributes.ts +15 -0
- package/src/toolbar/group/ToolbarGroup.vue +70 -0
- package/src/toolbar/group/ToolbarGroupContext.ts +23 -0
- package/src/toolbar/group/ToolbarGroupDataAttributes.ts +11 -0
- package/src/toolbar/index.ts +27 -0
- package/src/toolbar/input/ToolbarInput.vue +114 -0
- package/src/toolbar/input/ToolbarInputDataAttributes.ts +15 -0
- package/src/toolbar/link/ToolbarLink.vue +54 -0
- package/src/toolbar/link/ToolbarLinkDataAttributes.ts +7 -0
- package/src/toolbar/root/ToolbarRoot.vue +144 -0
- package/src/toolbar/root/ToolbarRootContext.ts +29 -0
- package/src/toolbar/root/ToolbarRootDataAttributes.ts +11 -0
- package/src/toolbar/separator/ToolbarSeparator.vue +41 -0
- package/src/toolbar/separator/ToolbarSeparatorDataAttributes.ts +7 -0
- package/src/use-button/useButton.ts +2 -1
- package/src/utils/areArraysEqual.ts +12 -0
- package/src/utils/clamp.ts +7 -0
- package/src/utils/createBaseUIEventDetails.ts +9 -0
- package/src/utils/formatNumber.ts +7 -0
- package/src/utils/owner.ts +5 -0
- package/src/utils/resolveAriaLabelledBy.ts +10 -0
- package/src/utils/useControllableState.ts +78 -14
- package/src/utils/useFocusableWhenDisabled.ts +6 -1
- package/src/utils/useMergedRefs.ts +26 -2
- package/src/utils/useRegisteredLabelId.ts +21 -0
- package/src/utils/valueToPercent.ts +7 -0
- package/src/utils/visuallyHidden.ts +24 -0
- package/dist/direction-provider/DirectionContext.cjs +0 -26
- package/dist/direction-provider/DirectionContext.cjs.map +0 -1
- package/dist/direction-provider/DirectionContext.js +0 -15
- package/dist/direction-provider/DirectionContext.js.map +0 -1
package/README.md
CHANGED
|
@@ -1 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- [](https://pkg.pr.new/~/vuepont/base-ui-vue) -->
|
|
2
|
+
|
|
3
|
+
# Base UI Vue
|
|
4
|
+
|
|
5
|
+
Base UI Vue is an unstyled UI component library for building accessible user interfaces.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Documentation
|
|
10
|
+
|
|
11
|
+
To get started, check out the [Base UI Vue documentation](https://baseui-vue.com/docs/overview/quick-start).
|
|
12
|
+
|
|
13
|
+
## Contributing
|
|
14
|
+
|
|
15
|
+
Read our [contributing guide](/CONTRIBUTING.md) to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes.
|
|
16
|
+
|
|
17
|
+
## Releases
|
|
18
|
+
|
|
19
|
+
To see the latest updates, check out the [releases page](https://github.com/vuepont/base-ui-vue/releases).
|
|
20
|
+
|
|
21
|
+
## Community
|
|
22
|
+
|
|
23
|
+
- **Discord** For community support, questions, and tips, join our [Discord](https://discord.gg/SWzhwGMxsZ).
|
|
24
|
+
- **X** To stay up-to-date on new releases and announcements, follow [Raymond on X](https://x.com/peoray_) and [Charlie on X](https://x.com/cwandev).
|
|
25
|
+
|
|
26
|
+
## Sponsors
|
|
27
|
+
|
|
28
|
+
Base UI Vue is an open-source project supported by our sponsors. If you'd like to support its development, consider becoming a sponsor, supporting us on [GitHub Sponsors](https://github.com/sponsors/vuepont), or contributing through [Open Collective](https://opencollective.com/vuepont).
|
|
29
|
+
|
|
30
|
+
<a href="https://immitranslate.com/" target="_blank" rel="noopener noreferrer">
|
|
31
|
+
<img src="https://baseui-vue.com/sponsors/immitranslate.svg" alt="ImmiTranslate" width="180" />
|
|
32
|
+
</a>
|
|
33
|
+
|
|
34
|
+
## Team
|
|
35
|
+
|
|
36
|
+
- **Charlie Wang** [@cwandev](https://x.com/cwandev)
|
|
37
|
+
- **Emmanuel Raymond** [@peoray](https://x.com/peoray_)
|
|
38
|
+
|
|
39
|
+
## License
|
|
40
|
+
|
|
41
|
+
This project is licensed under the terms of the [MIT license](/LICENSE).
|
package/dist/button/Button.cjs
CHANGED
|
@@ -163,7 +163,7 @@ function useMergedRefs(...refs) {
|
|
|
163
163
|
if (refs.every((ref) => ref == null)) return;
|
|
164
164
|
const cleanupCallbacks = Array.from({ length: refs.length }, () => null);
|
|
165
165
|
return (el) => {
|
|
166
|
-
const instance = el
|
|
166
|
+
const instance = resolveRefTarget(el);
|
|
167
167
|
if (instance != null) for (let i = 0; i < refs.length; i += 1) {
|
|
168
168
|
const ref = refs[i];
|
|
169
169
|
if (ref == null) continue;
|
|
@@ -185,6 +185,16 @@ function useMergedRefs(...refs) {
|
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
function resolveRefTarget(el) {
|
|
189
|
+
if (el == null) return null;
|
|
190
|
+
if (el instanceof Element) return el;
|
|
191
|
+
if (typeof el === "object" && "element" in el) {
|
|
192
|
+
const exposedElement = (0, vue.unref)(el.element);
|
|
193
|
+
if (exposedElement instanceof Element) return exposedElement;
|
|
194
|
+
}
|
|
195
|
+
if ("$el" in el) return el.$el;
|
|
196
|
+
return el;
|
|
197
|
+
}
|
|
188
198
|
|
|
189
199
|
//#endregion
|
|
190
200
|
//#region src/utils/useRenderElement.ts
|
|
@@ -237,15 +247,6 @@ function isPlainObject(value) {
|
|
|
237
247
|
return value != null && typeof value === "object" && !Array.isArray(value);
|
|
238
248
|
}
|
|
239
249
|
|
|
240
|
-
//#endregion
|
|
241
|
-
//#region src/composite/root/CompositeRootContext.ts
|
|
242
|
-
const compositeRootContextKey = Symbol("CompositeRootContext");
|
|
243
|
-
function useCompositeRootContext(optional = false) {
|
|
244
|
-
const context = (0, vue.inject)(compositeRootContextKey, void 0);
|
|
245
|
-
if (context === void 0 && !optional) throw new Error("Base UI Vue: CompositeRootContext is missing. Composite parts must be placed within <CompositeRoot>.");
|
|
246
|
-
return context;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
250
|
//#endregion
|
|
250
251
|
//#region src/utils/error.ts
|
|
251
252
|
let set;
|
|
@@ -260,6 +261,15 @@ function error(...messages) {
|
|
|
260
261
|
}
|
|
261
262
|
}
|
|
262
263
|
|
|
264
|
+
//#endregion
|
|
265
|
+
//#region src/composite/root/CompositeRootContext.ts
|
|
266
|
+
const compositeRootContextKey = Symbol("CompositeRootContext");
|
|
267
|
+
function useCompositeRootContext(optional = false) {
|
|
268
|
+
const context = (0, vue.inject)(compositeRootContextKey, void 0);
|
|
269
|
+
if (context === void 0 && !optional) throw new Error("Base UI Vue: CompositeRootContext is missing. Composite parts must be placed within <CompositeRoot>.");
|
|
270
|
+
return context;
|
|
271
|
+
}
|
|
272
|
+
|
|
263
273
|
//#endregion
|
|
264
274
|
//#region src/utils/useFocusableWhenDisabled.ts
|
|
265
275
|
function useFocusableWhenDisabled(params) {
|
|
@@ -272,7 +282,7 @@ function useFocusableWhenDisabled(params) {
|
|
|
272
282
|
const isFocusableComposite = composite && focusableWhenDisabled !== false;
|
|
273
283
|
const isNonFocusableComposite = composite && focusableWhenDisabled === false;
|
|
274
284
|
const additionalProps = { onKeydown(event) {
|
|
275
|
-
if (disabled && focusableWhenDisabled && event.key !== "Tab") event.preventDefault();
|
|
285
|
+
if (disabled && focusableWhenDisabled && !composite && event.key !== "Tab") event.preventDefault();
|
|
276
286
|
} };
|
|
277
287
|
if (!composite) {
|
|
278
288
|
additionalProps.tabIndex = tabIndexProp;
|
|
@@ -288,9 +298,11 @@ function useFocusableWhenDisabled(params) {
|
|
|
288
298
|
//#region src/use-button/useButton.ts
|
|
289
299
|
function useButton(parameters = {}) {
|
|
290
300
|
const buttonRef = (0, vue.ref)(null);
|
|
301
|
+
const isCompositeItem = useCompositeRootContext(true) !== void 0;
|
|
291
302
|
const { props: focusableWhenDisabledProps } = useFocusableWhenDisabled({
|
|
292
303
|
focusableWhenDisabled: () => (0, vue.toValue)(parameters.focusableWhenDisabled) ?? false,
|
|
293
304
|
disabled: () => (0, vue.toValue)(parameters.disabled) ?? false,
|
|
305
|
+
composite: () => isCompositeItem,
|
|
294
306
|
isNativeButton: () => (0, vue.toValue)(parameters.native) ?? true,
|
|
295
307
|
tabIndex: () => (0, vue.toValue)(parameters.tabIndex) ?? 0
|
|
296
308
|
});
|
|
@@ -301,7 +313,6 @@ function useButton(parameters = {}) {
|
|
|
301
313
|
if (!isButtonTag) error("A component that acts as a button expected a native <button> because the `nativeButton` prop is true. Rendering a non-<button> removes native button semantics, which can impact forms and accessibility. Use a real <button> in the `as` prop, or set `nativeButton` to `false`.");
|
|
302
314
|
} else if (isButtonTag) error("A component that acts as a button expected a non-<button> because the `nativeButton` prop is false. Rendering a <button> keeps native behavior while Base UI Vue applies non-native attributes and handlers, which can add unintended extra attributes (such as `role` or `aria-disabled`). Use a non-<button> in the `as` prop, or set `nativeButton` to `true`.");
|
|
303
315
|
});
|
|
304
|
-
const isCompositeItem = useCompositeRootContext(true) !== void 0;
|
|
305
316
|
const updateDisabled = () => {
|
|
306
317
|
const element = buttonRef.value;
|
|
307
318
|
if (!isButtonElement(element)) return;
|
|
@@ -455,6 +466,12 @@ Object.defineProperty(exports, 'Button_default', {
|
|
|
455
466
|
return Button_default;
|
|
456
467
|
}
|
|
457
468
|
});
|
|
469
|
+
Object.defineProperty(exports, 'EMPTY_ARRAY', {
|
|
470
|
+
enumerable: true,
|
|
471
|
+
get: function () {
|
|
472
|
+
return EMPTY_ARRAY;
|
|
473
|
+
}
|
|
474
|
+
});
|
|
458
475
|
Object.defineProperty(exports, 'EMPTY_OBJECT', {
|
|
459
476
|
enumerable: true,
|
|
460
477
|
get: function () {
|
|
@@ -473,6 +490,18 @@ Object.defineProperty(exports, 'Slot', {
|
|
|
473
490
|
return Slot;
|
|
474
491
|
}
|
|
475
492
|
});
|
|
493
|
+
Object.defineProperty(exports, 'compositeRootContextKey', {
|
|
494
|
+
enumerable: true,
|
|
495
|
+
get: function () {
|
|
496
|
+
return compositeRootContextKey;
|
|
497
|
+
}
|
|
498
|
+
});
|
|
499
|
+
Object.defineProperty(exports, 'error', {
|
|
500
|
+
enumerable: true,
|
|
501
|
+
get: function () {
|
|
502
|
+
return error;
|
|
503
|
+
}
|
|
504
|
+
});
|
|
476
505
|
Object.defineProperty(exports, 'makeEventPreventable', {
|
|
477
506
|
enumerable: true,
|
|
478
507
|
get: function () {
|
|
@@ -509,6 +538,18 @@ Object.defineProperty(exports, 'useButton', {
|
|
|
509
538
|
return useButton;
|
|
510
539
|
}
|
|
511
540
|
});
|
|
541
|
+
Object.defineProperty(exports, 'useCompositeRootContext', {
|
|
542
|
+
enumerable: true,
|
|
543
|
+
get: function () {
|
|
544
|
+
return useCompositeRootContext;
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
Object.defineProperty(exports, 'useFocusableWhenDisabled', {
|
|
548
|
+
enumerable: true,
|
|
549
|
+
get: function () {
|
|
550
|
+
return useFocusableWhenDisabled;
|
|
551
|
+
}
|
|
552
|
+
});
|
|
512
553
|
Object.defineProperty(exports, 'useMergedRefs', {
|
|
513
554
|
enumerable: true,
|
|
514
555
|
get: function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.cjs","names":[],"sources":["../../src/merge-props/mergeProps.ts","../../src/utils/empty.ts","../../src/utils/getStateAttributesProps.ts","../../src/utils/slot.ts","../../src/utils/useMergedRefs.ts","../../src/utils/useRenderElement.ts","../../src/
|
|
1
|
+
{"version":3,"file":"Button.cjs","names":[],"sources":["../../src/merge-props/mergeProps.ts","../../src/utils/empty.ts","../../src/utils/getStateAttributesProps.ts","../../src/utils/slot.ts","../../src/utils/useMergedRefs.ts","../../src/utils/useRenderElement.ts","../../src/utils/error.ts","../../src/composite/root/CompositeRootContext.ts","../../src/utils/useFocusableWhenDisabled.ts","../../src/use-button/useButton.ts","../../src/button/Button.vue","../../src/button/Button.vue"],"sourcesContent":[],"mappings":"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"}
|
package/dist/button/Button.js
CHANGED
|
@@ -163,7 +163,7 @@ function useMergedRefs(...refs) {
|
|
|
163
163
|
if (refs.every((ref) => ref == null)) return;
|
|
164
164
|
const cleanupCallbacks = Array.from({ length: refs.length }, () => null);
|
|
165
165
|
return (el) => {
|
|
166
|
-
const instance = el
|
|
166
|
+
const instance = resolveRefTarget(el);
|
|
167
167
|
if (instance != null) for (let i = 0; i < refs.length; i += 1) {
|
|
168
168
|
const ref = refs[i];
|
|
169
169
|
if (ref == null) continue;
|
|
@@ -185,6 +185,16 @@ function useMergedRefs(...refs) {
|
|
|
185
185
|
}
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
|
+
function resolveRefTarget(el) {
|
|
189
|
+
if (el == null) return null;
|
|
190
|
+
if (el instanceof Element) return el;
|
|
191
|
+
if (typeof el === "object" && "element" in el) {
|
|
192
|
+
const exposedElement = unref(el.element);
|
|
193
|
+
if (exposedElement instanceof Element) return exposedElement;
|
|
194
|
+
}
|
|
195
|
+
if ("$el" in el) return el.$el;
|
|
196
|
+
return el;
|
|
197
|
+
}
|
|
188
198
|
|
|
189
199
|
//#endregion
|
|
190
200
|
//#region src/utils/useRenderElement.ts
|
|
@@ -213,7 +223,7 @@ function useRenderElement(params) {
|
|
|
213
223
|
const resolvedClass = typeof params.componentProps.class === "function" ? params.componentProps.class(state) : params.componentProps.class;
|
|
214
224
|
const resolvedStyle = typeof params.componentProps.style === "function" ? params.componentProps.style(state) : params.componentProps.style;
|
|
215
225
|
if (resolvedClass !== void 0) merged.class = normalizeClass$1(merged.class, resolvedClass);
|
|
216
|
-
if (resolvedStyle !== void 0) merged.style = normalizeStyle(merged.style, resolvedStyle);
|
|
226
|
+
if (resolvedStyle !== void 0) merged.style = normalizeStyle$1(merged.style, resolvedStyle);
|
|
217
227
|
return merged;
|
|
218
228
|
}),
|
|
219
229
|
renderless,
|
|
@@ -227,7 +237,7 @@ function normalizeClass$1(currentValue, nextValue) {
|
|
|
227
237
|
if (typeof currentValue === "string" && typeof nextValue === "string") return mergeClasses(currentValue, nextValue);
|
|
228
238
|
return [currentValue, nextValue];
|
|
229
239
|
}
|
|
230
|
-
function normalizeStyle(currentValue, nextValue) {
|
|
240
|
+
function normalizeStyle$1(currentValue, nextValue) {
|
|
231
241
|
if (currentValue == null) return nextValue;
|
|
232
242
|
if (nextValue == null) return currentValue;
|
|
233
243
|
if (isPlainObject(currentValue) && isPlainObject(nextValue)) return mergeObjects(currentValue, nextValue);
|
|
@@ -237,15 +247,6 @@ function isPlainObject(value) {
|
|
|
237
247
|
return value != null && typeof value === "object" && !Array.isArray(value);
|
|
238
248
|
}
|
|
239
249
|
|
|
240
|
-
//#endregion
|
|
241
|
-
//#region src/composite/root/CompositeRootContext.ts
|
|
242
|
-
const compositeRootContextKey = Symbol("CompositeRootContext");
|
|
243
|
-
function useCompositeRootContext(optional = false) {
|
|
244
|
-
const context = inject(compositeRootContextKey, void 0);
|
|
245
|
-
if (context === void 0 && !optional) throw new Error("Base UI Vue: CompositeRootContext is missing. Composite parts must be placed within <CompositeRoot>.");
|
|
246
|
-
return context;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
250
|
//#endregion
|
|
250
251
|
//#region src/utils/error.ts
|
|
251
252
|
let set;
|
|
@@ -260,6 +261,15 @@ function error(...messages) {
|
|
|
260
261
|
}
|
|
261
262
|
}
|
|
262
263
|
|
|
264
|
+
//#endregion
|
|
265
|
+
//#region src/composite/root/CompositeRootContext.ts
|
|
266
|
+
const compositeRootContextKey = Symbol("CompositeRootContext");
|
|
267
|
+
function useCompositeRootContext(optional = false) {
|
|
268
|
+
const context = inject(compositeRootContextKey, void 0);
|
|
269
|
+
if (context === void 0 && !optional) throw new Error("Base UI Vue: CompositeRootContext is missing. Composite parts must be placed within <CompositeRoot>.");
|
|
270
|
+
return context;
|
|
271
|
+
}
|
|
272
|
+
|
|
263
273
|
//#endregion
|
|
264
274
|
//#region src/utils/useFocusableWhenDisabled.ts
|
|
265
275
|
function useFocusableWhenDisabled(params) {
|
|
@@ -272,7 +282,7 @@ function useFocusableWhenDisabled(params) {
|
|
|
272
282
|
const isFocusableComposite = composite && focusableWhenDisabled !== false;
|
|
273
283
|
const isNonFocusableComposite = composite && focusableWhenDisabled === false;
|
|
274
284
|
const additionalProps = { onKeydown(event) {
|
|
275
|
-
if (disabled && focusableWhenDisabled && event.key !== "Tab") event.preventDefault();
|
|
285
|
+
if (disabled && focusableWhenDisabled && !composite && event.key !== "Tab") event.preventDefault();
|
|
276
286
|
} };
|
|
277
287
|
if (!composite) {
|
|
278
288
|
additionalProps.tabIndex = tabIndexProp;
|
|
@@ -288,9 +298,11 @@ function useFocusableWhenDisabled(params) {
|
|
|
288
298
|
//#region src/use-button/useButton.ts
|
|
289
299
|
function useButton(parameters = {}) {
|
|
290
300
|
const buttonRef = ref(null);
|
|
301
|
+
const isCompositeItem = useCompositeRootContext(true) !== void 0;
|
|
291
302
|
const { props: focusableWhenDisabledProps } = useFocusableWhenDisabled({
|
|
292
303
|
focusableWhenDisabled: () => toValue(parameters.focusableWhenDisabled) ?? false,
|
|
293
304
|
disabled: () => toValue(parameters.disabled) ?? false,
|
|
305
|
+
composite: () => isCompositeItem,
|
|
294
306
|
isNativeButton: () => toValue(parameters.native) ?? true,
|
|
295
307
|
tabIndex: () => toValue(parameters.tabIndex) ?? 0
|
|
296
308
|
});
|
|
@@ -301,7 +313,6 @@ function useButton(parameters = {}) {
|
|
|
301
313
|
if (!isButtonTag) error("A component that acts as a button expected a native <button> because the `nativeButton` prop is true. Rendering a non-<button> removes native button semantics, which can impact forms and accessibility. Use a real <button> in the `as` prop, or set `nativeButton` to `false`.");
|
|
302
314
|
} else if (isButtonTag) error("A component that acts as a button expected a non-<button> because the `nativeButton` prop is false. Rendering a <button> keeps native behavior while Base UI Vue applies non-native attributes and handlers, which can add unintended extra attributes (such as `role` or `aria-disabled`). Use a non-<button> in the `as` prop, or set `nativeButton` to `true`.");
|
|
303
315
|
});
|
|
304
|
-
const isCompositeItem = useCompositeRootContext(true) !== void 0;
|
|
305
316
|
const updateDisabled = () => {
|
|
306
317
|
const element = buttonRef.value;
|
|
307
318
|
if (!isButtonElement(element)) return;
|
|
@@ -449,5 +460,5 @@ var Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
|
|
|
449
460
|
var Button_default = Button_vue_vue_type_script_setup_true_lang_default;
|
|
450
461
|
|
|
451
462
|
//#endregion
|
|
452
|
-
export { Button_default, EMPTY_OBJECT, NOOP, Slot, makeEventPreventable, mergeClasses, mergeObjects, mergeProps$1 as mergeProps, mergePropsN, useButton, useMergedRefs, useRenderElement };
|
|
463
|
+
export { Button_default, EMPTY_ARRAY, EMPTY_OBJECT, NOOP, Slot, compositeRootContextKey, error, makeEventPreventable, mergeClasses, mergeObjects, mergeProps$1 as mergeProps, mergePropsN, useButton, useCompositeRootContext, useFocusableWhenDisabled, useMergedRefs, useRenderElement };
|
|
453
464
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","names":["mergeProps","vueMergeProps","normalizeClass","mergeProps"],"sources":["../../src/merge-props/mergeProps.ts","../../src/utils/empty.ts","../../src/utils/getStateAttributesProps.ts","../../src/utils/slot.ts","../../src/utils/useMergedRefs.ts","../../src/utils/useRenderElement.ts","../../src/
|
|
1
|
+
{"version":3,"file":"Button.js","names":["mergeProps","vueMergeProps","normalizeClass","normalizeStyle","mergeProps"],"sources":["../../src/merge-props/mergeProps.ts","../../src/utils/empty.ts","../../src/utils/getStateAttributesProps.ts","../../src/utils/slot.ts","../../src/utils/useMergedRefs.ts","../../src/utils/useRenderElement.ts","../../src/utils/error.ts","../../src/composite/root/CompositeRootContext.ts","../../src/utils/useFocusableWhenDisabled.ts","../../src/use-button/useButton.ts","../../src/button/Button.vue","../../src/button/Button.vue"],"sourcesContent":[],"mappings":"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"}
|