@sit-onyx/headless 1.0.0-beta.15 → 1.0.0-beta.17

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 CHANGED
@@ -1,9 +1,5 @@
1
1
  <div align="center" style="text-align: center">
2
- <picture>
3
- <source media="(prefers-color-scheme: dark)" type="image/svg+xml" srcset="https://raw.githubusercontent.com/SchwarzIT/onyx/main/.github/onyx-logo-light.svg">
4
- <source media="(prefers-color-scheme: light)" type="image/svg+xml" srcset="https://raw.githubusercontent.com/SchwarzIT/onyx/main/.github/onyx-logo-dark.svg">
5
- <img alt="onyx logo" src="https://raw.githubusercontent.com/SchwarzIT/onyx/main/.github/onyx-logo-dark.svg" width="160px">
6
- </picture>
2
+ <img alt="onyx logo" src="https://raw.githubusercontent.com/SchwarzIT/onyx/main/.github/onyx-logo.svg" height="96px">
7
3
  </div>
8
4
 
9
5
  <br>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sit-onyx/headless",
3
3
  "description": "Headless composables for Vue",
4
- "version": "1.0.0-beta.15",
4
+ "version": "1.0.0-beta.17",
5
5
  "type": "module",
6
6
  "author": "Schwarz IT KG",
7
7
  "license": "Apache-2.0",
@@ -29,7 +29,7 @@
29
29
  "devDependencies": {
30
30
  "@vue/compiler-dom": "3.5.13",
31
31
  "vue": "3.5.13",
32
- "@sit-onyx/shared": "^0.0.1-beta.0"
32
+ "@sit-onyx/shared": "^1.0.0-beta.2"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "vue-tsc --build --force",
@@ -1,13 +1,12 @@
1
- import type { Arrayable } from "vitest";
2
- import { toValue, type Ref } from "vue";
3
- import type { MaybeReactiveSource } from "../../utils/types";
1
+ import type { Arrayable } from "vitest"; // For an unknown reason removing this import will break the build of "demo-app" and "playground"
2
+ import { toValue, type MaybeRefOrGetter, type Ref } from "vue";
4
3
  import { useGlobalEventListener } from "./useGlobalListener";
5
4
 
6
5
  export type UseOutsideClickOptions = {
7
6
  /**
8
7
  * HTML element of the component where clicks should be ignored
9
8
  */
10
- inside: MaybeReactiveSource<Arrayable<HTMLElement | undefined>>;
9
+ inside: MaybeRefOrGetter<Arrayable<HTMLElement | undefined>>;
11
10
  /**
12
11
  * Callback when an outside click occurred.
13
12
  */
@@ -107,11 +107,7 @@ export const createMenuButton = createBuilder((options: CreateMenuButtonOptions)
107
107
  };
108
108
 
109
109
  const triggerEvents = () => {
110
- if (options.trigger.value === "click") {
111
- return {
112
- onClick: () => setExpanded(true),
113
- };
114
- } else {
110
+ if (options.trigger.value === "hover") {
115
111
  return {
116
112
  onMouseenter: () => setExpanded(true),
117
113
  onMouseleave: () => setExpanded(false, true),
@@ -142,7 +138,9 @@ export const createMenuButton = createBuilder((options: CreateMenuButtonOptions)
142
138
  "aria-controls": menuId,
143
139
  "aria-expanded": options.isExpanded.value,
144
140
  "aria-haspopup": true,
145
- onFocus: () => setExpanded(true),
141
+ onFocus: () => setExpanded(true, true),
142
+ onClick: () =>
143
+ options.trigger.value == "click" ? setExpanded(!options.isExpanded.value) : undefined,
146
144
  id: buttonId,
147
145
  }) as const,
148
146
  ),
@@ -1,5 +1,3 @@
1
- import type { ComputedRef, MaybeRefOrGetter } from "vue";
2
-
3
1
  /**
4
2
  * Adds the entry with the key `Key` and the value of type `TValue` to a record when it is defined.
5
3
  * Then the entry is either undefined or exists without being optional.
@@ -25,6 +23,6 @@ export type IsArray<TValue, TMultiple extends boolean = false> = TMultiple exten
25
23
  : TValue;
26
24
 
27
25
  /**
28
- * Type for any kind of ref source. Preferably used in combination with vue's `toValue` method
26
+ * A type that can be wrapped in an array.
29
27
  */
30
- export type MaybeReactiveSource<T> = MaybeRefOrGetter<T> | ComputedRef<T>;
28
+ export type Arrayable<T> = T | Array<T>;