@wikicasa-dev/components 2.2.9-alpha.48 → 2.2.9-alpha.5

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.
Files changed (38) hide show
  1. package/dist/Swiper/autoplay.js +1 -1
  2. package/dist/Swiper/controller.js +1 -1
  3. package/dist/Swiper/keyboard.js +1 -1
  4. package/dist/Swiper/thumbs.js +1 -1
  5. package/dist/UIKit/AccessibleSelect.d.ts +4 -4
  6. package/dist/UIKit/AccessibleSelect.js +2 -3
  7. package/dist/UIKit/Autocomplete/ClearableAutocomplete.d.ts +3 -9
  8. package/dist/UIKit/BaseAutocomplete.d.ts +4 -4
  9. package/dist/UIKit/BaseButton.d.ts +8 -14
  10. package/dist/UIKit/BaseCard.js +3 -1
  11. package/dist/UIKit/BaseDropDown.d.ts +11 -17
  12. package/dist/UIKit/BaseFloatingLabel.js +4 -4
  13. package/dist/UIKit/BaseInput.d.ts +2 -3
  14. package/dist/UIKit/BaseInput.js +1 -1
  15. package/dist/UIKit/BaseTextarea.d.ts +2 -2
  16. package/dist/assets/BaseCard.css +1 -1
  17. package/dist/assets/BaseDropDown.css +1 -1
  18. package/dist/assets/BaseFloatingLabel.css +1 -1
  19. package/dist/assets/BaseInput.css +1 -1
  20. package/dist/assets/tailwind.css +1 -1
  21. package/dist/index.js +83 -85
  22. package/dist/packages/components/lib/UIKit/AccessibleSelect.vue.js +157 -151
  23. package/dist/packages/components/lib/UIKit/Accordion/BaseAccordionItem.vue.js +6 -4
  24. package/dist/packages/components/lib/UIKit/Autocomplete/ClearableAutocomplete.vue.js +100 -125
  25. package/dist/packages/components/lib/UIKit/BaseAutocomplete.vue.js +36 -36
  26. package/dist/packages/components/lib/UIKit/BaseButton.vue.js +24 -28
  27. package/dist/packages/components/lib/UIKit/BaseCard.vue.js +13 -13
  28. package/dist/packages/components/lib/UIKit/BaseDropDown.vue.js +105 -102
  29. package/dist/packages/components/lib/UIKit/BaseFloatingLabel.vue.js +8 -8
  30. package/dist/packages/components/lib/UIKit/BaseInput.vue.js +73 -74
  31. package/dist/packages/components/lib/UIKit/BaseModal.vue.js +36 -42
  32. package/dist/packages/components/lib/UIKit/BaseSelect/SelectItem.vue.js +17 -18
  33. package/dist/packages/components/lib/UIKit/Checkbox/CheckboxBtn.vue.js +24 -22
  34. package/package.json +5 -6
  35. package/dist/assets/AccessibleSelect.css +0 -1
  36. package/dist/composables/mock.d.ts +0 -25
  37. package/dist/composables/mock.js +0 -49
  38. /package/dist/assets/{swiper-autoplay.css → swiper-controller.css} +0 -0
@@ -1,7 +1,7 @@
1
- import { defineComponent as I, ref as n, useTemplateRef as T, onUnmounted as z, watch as H, createBlock as O, openBlock as m, Teleport as $, createElementVNode as a, normalizeClass as s, createElementBlock as y, createCommentVNode as h, renderSlot as d, withModifiers as D, createVNode as F, unref as K, nextTick as N } from "vue";
2
- import { isWindows as g, awaitableSetTimeout as S } from "@wikicasa-dev/utilities";
1
+ import { defineComponent as I, ref as n, useTemplateRef as T, onUnmounted as z, watch as H, createBlock as O, openBlock as r, Teleport as $, createElementVNode as l, normalizeClass as s, withModifiers as y, createElementBlock as h, createCommentVNode as w, renderSlot as d, createVNode as D, unref as K, nextTick as N } from "vue";
2
+ import { isWindows as C, awaitableSetTimeout as S } from "@wikicasa-dev/utilities";
3
3
  import { CloseIcon as V } from "@wikicasa-dev/svg-icons";
4
- const P = ["id", "data-cy"], U = ["innerHTML"], j = /* @__PURE__ */ I({
4
+ const F = ["id", "data-cy"], U = ["innerHTML"], R = /* @__PURE__ */ I({
5
5
  __name: "BaseModal",
6
6
  props: {
7
7
  id: { default: "base-bt-modal" },
@@ -24,25 +24,25 @@ const P = ["id", "data-cy"], U = ["innerHTML"], j = /* @__PURE__ */ I({
24
24
  titleClasses: {}
25
25
  },
26
26
  emits: ["closed", "opened", "dialogClick"],
27
- setup(e, { emit: w }) {
28
- const c = w, i = n(!1), r = n(null), l = T("modalDialog"), k = n(!1), u = n(!1), f = ({ key: t }) => {
27
+ setup(e, { emit: g }) {
28
+ const c = g, i = n(!1), m = n(null), a = T("modalDialog"), k = n(!1), u = n(!1), f = ({ key: t }) => {
29
29
  t === "Escape" && o();
30
- }, C = () => {
30
+ }, x = () => {
31
31
  document?.body.addEventListener("keydown", f);
32
32
  }, b = () => {
33
33
  document?.body.removeEventListener("keydown", f);
34
- }, x = async () => {
34
+ }, p = async () => {
35
35
  i.value = !0, N(() => {
36
- C(), g() ? document?.body.classList.add("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.add("uikit-no-scrolling");
36
+ x(), C() ? document?.body.classList.add("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.add("uikit-no-scrolling");
37
37
  }), c("opened"), e.autoClose !== void 0 && setTimeout(() => {
38
38
  o();
39
39
  }, e.autoClose);
40
- }, p = (t) => {
41
- l.value && l.value.contains(t.target) && (u.value = !0);
42
40
  }, M = (t) => {
43
- l.value && l.value.contains(t.target) && (u.value = !1);
44
- }, B = async (t) => {
45
- if (!r.value?.contains(t.target) && e.closeOnClickOut) {
41
+ a.value && a.value.contains(t.target) && (u.value = !0);
42
+ }, B = (t) => {
43
+ a.value && a.value.contains(t.target) && (u.value = !1);
44
+ }, L = async () => {
45
+ if (e.closeOnClickOut) {
46
46
  if (u.value) {
47
47
  u.value = !1;
48
48
  return;
@@ -51,25 +51,21 @@ const P = ["id", "data-cy"], U = ["innerHTML"], j = /* @__PURE__ */ I({
51
51
  }
52
52
  }, o = async () => {
53
53
  i.value = !1, b(), document?.documentElement.classList.remove("uikit-no-scrolling"), navigator.userAgent.includes("Windows") ? document?.body.classList.remove("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.remove("uikit-no-scrolling"), await S(() => {
54
- r.value?.classList.add("uikit-hidden"), c("closed");
54
+ m.value?.classList.add("uikit-hidden"), c("closed");
55
55
  }, 250);
56
56
  };
57
- z(() => {
58
- b(), document?.documentElement.classList.remove("uikit-no-scrolling"), g() ? document?.body.classList.remove("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.remove("uikit-no-scrolling");
57
+ return z(() => {
58
+ b(), document?.documentElement.classList.remove("uikit-no-scrolling"), C() ? document?.body.classList.remove("uikit-no-scrolling", "sm:uikit-pr-15px") : document?.body.classList.remove("uikit-no-scrolling");
59
59
  }), H(
60
60
  () => e.showModal,
61
61
  async (t) => {
62
- !t && !i.value ? k.value = !0 : k.value = !1, t && !i.value && await x(), !t && i.value && await o(), i.value = t;
62
+ !t && !i.value ? k.value = !0 : k.value = !1, t && !i.value && await p(), !t && i.value && await o(), i.value = t;
63
63
  },
64
64
  { immediate: !0 }
65
- );
66
- const L = (t) => {
67
- l.value === t.target && t.stopPropagation();
68
- };
69
- return (t, v) => (m(), O($, { to: "body" }, [
70
- a("div", {
65
+ ), (t, v) => (r(), O($, { to: "body" }, [
66
+ l("div", {
71
67
  ref_key: "backdropEl",
72
- ref: r,
68
+ ref: m,
73
69
  class: s(["bbt-backdrop uikit-fixed uikit-left-0 uikit-top-0 uikit-h-full uikit-w-full", [
74
70
  e.customBackdropClasses,
75
71
  {
@@ -80,11 +76,11 @@ const P = ["id", "data-cy"], U = ["innerHTML"], j = /* @__PURE__ */ I({
80
76
  { hide: k.value }
81
77
  ]]),
82
78
  style: { "z-index": "1062" },
83
- onClick: B,
84
- onMousedown: p,
85
- onMouseup: M
79
+ onClick: L,
80
+ onMousedown: M,
81
+ onMouseup: B
86
82
  }, [
87
- a("dialog", {
83
+ l("dialog", {
88
84
  id: e.id,
89
85
  ref: "modalDialog",
90
86
  "data-cy": e.dataCy,
@@ -98,52 +94,50 @@ const P = ["id", "data-cy"], U = ["innerHTML"], j = /* @__PURE__ */ I({
98
94
  `base-${e.size}`,
99
95
  e.fullHeight ? "uikit-h-[95%]" : "uikit-h-auto"
100
96
  ]]),
101
- tabindex: "-1",
102
- onClick: v[0] || (v[0] = (E) => c("dialogClick", E)),
103
- onFocusin: L
97
+ onClick: v[0] || (v[0] = y((E) => c("dialogClick", E), ["stop"]))
104
98
  }, [
105
- a("div", {
99
+ l("div", {
106
100
  class: s(["default-header uikit-sticky uikit-top-0 uikit-z-10 uikit-rounded-t uikit-border-0 uikit-bg-white uikit-px-4 uikit-pb-10px uikit-pt-20px sm:uikit-px-6", [e.customModalHeaderClasses]])
107
101
  }, [
108
- e.withCloseIcon ? (m(), y("button", {
102
+ e.withCloseIcon ? (r(), h("button", {
109
103
  key: 0,
110
104
  id: "close-icon-btn",
111
105
  "data-cy": "bbt-default-close-icon-btn",
112
106
  class: s(["uikit-absolute uikit-right-15px uikit-top-15px uikit-z-10 uikit-bg-transparent uikit-p-5px", e.closeIconBtnClasses]),
113
107
  type: "button",
114
108
  "aria-label": "Close",
115
- onClick: D(o, ["prevent", "stop"])
109
+ onClick: y(o, ["prevent", "stop"])
116
110
  }, [
117
- F(K(V), {
111
+ D(K(V), {
118
112
  class: s(["bbt-close-icon uikit-box-border", e.closeIcon?.classes]),
119
113
  width: e.closeIcon?.size || 20,
120
114
  height: e.closeIcon?.size || 20
121
115
  }, null, 8, ["class", "width", "height"])
122
- ], 2)) : h("", !0),
116
+ ], 2)) : w("", !0),
123
117
  d(t.$slots, "header", { closeModal: o }, () => [
124
- a("span", {
118
+ l("span", {
125
119
  class: s(["uikit-w-auto uikit-text-18 uikit-font-semibold sm:uikit-text-22", e.titleClasses]),
126
120
  innerHTML: e.headerTitle
127
121
  }, null, 10, U)
128
122
  ])
129
123
  ], 2),
130
- a("div", {
124
+ l("div", {
131
125
  class: s(["uikit-bbt-body uikit-flex-auto uikit-overflow-y-auto uikit-overflow-x-hidden uikit-px-4 uikit-pb-0 uikit-no-scrollbar sm:uikit-px-6 sm:uikit-pb-25px", [e.customModalBodyClasses]])
132
126
  }, [
133
127
  d(t.$slots, "body", { closeModal: o })
134
128
  ], 2),
135
- t.$slots.footer ? (m(), y("div", {
129
+ t.$slots.footer ? (r(), h("div", {
136
130
  key: 0,
137
131
  class: s(["uikit-bbt-footer uikit-sticky uikit-bottom-0 uikit-border-0 uikit-bg-white uikit-px-4 uikit-py-15px sm:uikit-px-6", e.customModalFooterClasses])
138
132
  }, [
139
133
  d(t.$slots, "footer", { closeModal: o })
140
- ], 2)) : h("", !0),
134
+ ], 2)) : w("", !0),
141
135
  d(t.$slots, "fixed-bottom")
142
- ], 42, P)
136
+ ], 10, F)
143
137
  ], 34)
144
138
  ]));
145
139
  }
146
140
  });
147
141
  export {
148
- j as default
142
+ R as default
149
143
  };
@@ -1,5 +1,5 @@
1
- import { defineComponent as u, useTemplateRef as c, watch as d, nextTick as m, createElementBlock as r, openBlock as f, normalizeClass as v, renderSlot as k, createElementVNode as x } from "vue";
2
- const b = ["data-active", "tabindex"], p = ["innerHTML"], $ = /* @__PURE__ */ u({
1
+ import { defineComponent as u, useTemplateRef as r, watch as m, nextTick as c, createElementBlock as d, openBlock as f, normalizeClass as k, renderSlot as v, createElementVNode as x } from "vue";
2
+ const p = ["tabindex"], b = ["innerHTML"], $ = /* @__PURE__ */ u({
3
3
  __name: "SelectItem",
4
4
  props: {
5
5
  label: { default: "" },
@@ -7,34 +7,33 @@ const b = ["data-active", "tabindex"], p = ["innerHTML"], $ = /* @__PURE__ */ u(
7
7
  idx: { default: -1 }
8
8
  },
9
9
  emits: ["click", "mouseover"],
10
- setup(t, { emit: o }) {
11
- const a = o, i = t, n = c("liItem");
12
- return d(
13
- () => i.active,
10
+ setup(l, { emit: a }) {
11
+ const n = a, t = l, o = r("liItem");
12
+ return m(
13
+ () => t.active,
14
14
  (e) => {
15
- e && m(() => {
16
- n.value && n.value.focus();
15
+ e && c(() => {
16
+ o.value && o.value.focus();
17
17
  });
18
18
  },
19
19
  { immediate: !0 }
20
- ), (e, l) => (f(), r("li", {
20
+ ), (e, i) => (f(), d("li", {
21
21
  ref: "liItem",
22
- class: v(["uikit-list-none uikit-text-w-black", [
23
- { "active uikit-bg-w-cultured": t.active },
22
+ class: k(["uikit-list-none uikit-text-w-black", [
23
+ { "active uikit-bg-w-cultured": l.active },
24
24
  "uikit-outline-none",
25
25
  e.$attrs.class
26
26
  ]]),
27
- "data-active": t.active,
28
27
  tabindex: e.$attrs.tabindex ?? -1,
29
- onClick: l[0] || (l[0] = (s) => a("click", i.idx)),
30
- onMouseover: l[1] || (l[1] = (s) => a("mouseover", i.idx))
28
+ onClick: i[0] || (i[0] = (s) => n("click", t.idx)),
29
+ onMouseover: i[1] || (i[1] = (s) => n("mouseover", t.idx))
31
30
  }, [
32
- k(e.$slots, "default", { itemIdx: t.idx }, () => [
31
+ v(e.$slots, "default", { itemIdx: l.idx }, () => [
33
32
  x("span", {
34
- innerHTML: i.label
35
- }, null, 8, p)
33
+ innerHTML: t.label
34
+ }, null, 8, b)
36
35
  ])
37
- ], 42, b));
36
+ ], 42, p));
38
37
  }
39
38
  });
40
39
  export {
@@ -1,7 +1,7 @@
1
- import { defineComponent as s, useId as m, watch as f, createElementBlock as h, openBlock as d, createVNode as o, renderSlot as b, unref as i, normalizeClass as C, withCtx as u, createBlock as x, createCommentVNode as y, createTextVNode as V, toDisplayString as g } from "vue";
2
- import { CheckIcon as B } from "@wikicasa-dev/svg-icons";
3
- import { CheckboxRoot as p, CheckboxIndicator as w } from "reka-ui";
4
- const z = /* @__PURE__ */ s({
1
+ import { defineComponent as m, useId as f, computed as h, watch as b, createElementBlock as C, openBlock as u, createVNode as c, renderSlot as x, unref as i, normalizeClass as y, withCtx as n, createBlock as V, createCommentVNode as g, createTextVNode as B, toDisplayString as w } from "vue";
2
+ import { CheckIcon as p } from "@wikicasa-dev/svg-icons";
3
+ import { CheckboxRoot as I, CheckboxIndicator as v } from "reka-ui";
4
+ const N = ["for"], j = /* @__PURE__ */ m({
5
5
  __name: "CheckboxBtn",
6
6
  props: {
7
7
  id: {},
@@ -15,9 +15,9 @@ const z = /* @__PURE__ */ s({
15
15
  modelValue: { type: Boolean, default: !1 }
16
16
  },
17
17
  emits: ["click", "update:modelValue", "change"],
18
- setup(e, { emit: c }) {
19
- const n = m(), a = c;
20
- f(
18
+ setup(e, { emit: r }) {
19
+ const l = f(), d = h(() => `${e.id ?? l}`), a = r;
20
+ b(
21
21
  () => e.checked,
22
22
  (t) => {
23
23
  t !== void 0 && a("update:modelValue", t);
@@ -25,20 +25,22 @@ const z = /* @__PURE__ */ s({
25
25
  );
26
26
  const k = (t) => {
27
27
  t !== "indeterminate" && (a("change", {
28
- id: e.id ?? n,
28
+ id: e.id ?? l,
29
29
  label: e.label,
30
30
  checked: t
31
31
  }), a("update:modelValue", t));
32
32
  };
33
- return (t, l) => (d(), h("label", {
33
+ return (t, o) => (u(), C("label", {
34
34
  class: "uikit-checkbox-btn uikit-flex uikit-items-center uikit-gap-[12px]",
35
- onClick: l[0] || (l[0] = (r) => a("click", r))
35
+ for: d.value,
36
+ onClick: o[0] || (o[0] = (s) => a("click", s))
36
37
  }, [
37
- o(i(p), {
38
+ c(i(I), {
39
+ id: d.value,
38
40
  "model-value": e.modelValue,
39
41
  "data-cy": e.dataCy,
40
42
  disabled: e.disabled,
41
- class: C(["uikit-inline-flex uikit-size-[20px] uikit-shrink-0 uikit-items-center uikit-justify-center uikit-rounded-[4px] uikit-p-0 data-[state='unchecked']:uikit-border data-[state='unchecked']:uikit-border-solid data-[state='unchecked']:uikit-border-w-lightgray", [
43
+ class: y(["uikit-inline-flex uikit-size-[20px] uikit-items-center uikit-justify-center uikit-rounded-[4px] uikit-p-0 data-[state='unchecked']:uikit-border data-[state='unchecked']:uikit-border-solid data-[state='unchecked']:uikit-border-w-lightgray", [
42
44
  {
43
45
  "uikit-bg-white": !e.modelValue,
44
46
  "uikit-bg-w-primary": e.modelValue
@@ -47,27 +49,27 @@ const z = /* @__PURE__ */ s({
47
49
  ]]),
48
50
  "onUpdate:modelValue": k
49
51
  }, {
50
- default: u(() => [
51
- o(i(w), { class: "uikit-flex" }, {
52
- default: u(() => [
53
- e.modelValue === !0 ? (d(), x(i(B), {
52
+ default: n(() => [
53
+ c(i(v), { class: "uikit-flex" }, {
54
+ default: n(() => [
55
+ e.modelValue === !0 ? (u(), V(i(p), {
54
56
  key: 0,
55
57
  "fill-color": "#fff",
56
58
  width: 12,
57
59
  height: 14
58
- })) : y("", !0)
60
+ })) : g("", !0)
59
61
  ]),
60
62
  _: 1
61
63
  })
62
64
  ]),
63
65
  _: 1
64
- }, 8, ["model-value", "data-cy", "disabled", "class"]),
65
- b(t.$slots, "label", {}, () => [
66
- V(g(e.label), 1)
66
+ }, 8, ["id", "model-value", "data-cy", "disabled", "class"]),
67
+ x(t.$slots, "label", {}, () => [
68
+ B(w(e.label), 1)
67
69
  ])
68
- ]));
70
+ ], 8, N));
69
71
  }
70
72
  });
71
73
  export {
72
- z as default
74
+ j as default
73
75
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wikicasa-dev/components",
3
- "version": "2.2.9-alpha.48",
3
+ "version": "2.2.9-alpha.5",
4
4
  "description": "Wikicasa frontend components",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -17,7 +17,6 @@
17
17
  "default": "./dist/index.js"
18
18
  },
19
19
  "./style": "./dist/assets/tailwind.css",
20
- "./css/*": "./dist/assets/*.css",
21
20
  "./generic/*": {
22
21
  "import": "./dist/components/*.js",
23
22
  "types": "./dist/components/*.d.ts"
@@ -44,8 +43,8 @@
44
43
  "peerDependencies": {
45
44
  "vue": "^3.5.0",
46
45
  "date-fns": "^4.0.0",
47
- "@wikicasa-dev/svg-icons": "^1.2.28-alpha.1",
48
- "@wikicasa-dev/vue-composables": "0.0.33-alpha.2",
46
+ "@wikicasa-dev/svg-icons": "^1.2.24",
47
+ "@wikicasa-dev/vue-composables": "^0.0.29",
49
48
  "@wikicasa-dev/types": "^2.4.0",
50
49
  "@wikicasa-dev/utilities": "^1.2.0"
51
50
  },
@@ -64,8 +63,8 @@
64
63
  "@vitejs/plugin-vue": "^6.0.2",
65
64
  "@vue/eslint-config-prettier": "^10.2.0",
66
65
  "@vue/eslint-config-typescript": "^14.6.0",
67
- "@wikicasa-dev/svg-icons": "1.2.28-alpha.1",
68
- "@wikicasa-dev/vue-composables": "0.0.33-alpha.2",
66
+ "@wikicasa-dev/svg-icons": "1.2.24",
67
+ "@wikicasa-dev/vue-composables": "0.0.29",
69
68
  "@wikicasa-dev/tailwind-plugins": "^0.0.3",
70
69
  "@wikicasa-dev/types": "2.4.6",
71
70
  "@wikicasa-dev/utilities": "1.2.0",
@@ -1 +0,0 @@
1
- .uikit-select-dropdown.uikit-dropdown-content{--dropdown-border-color: #B4C2F0;--dropdown-max-height: 225px;--dropdown-min-width: unset;--dropdown-margin-top: 10px;margin-top:var(--dropdown-margin-top)}.uikit-select-dropdown.uikit-dropdown-content[data-side=down]{--dropdown-border-top-width: 1px;--dropdown-border-top-left-radius: 12px;--dropdown-border-top-right-radius: 12px;--dropdown-border-bottom-left-radius: 12px;--dropdown-border-bottom-right-radius: 12px}
@@ -1,25 +0,0 @@
1
- import { Ref } from 'vue';
2
- interface KeyboardControllerProps {
3
- optionsLength: Ref<number> | number;
4
- isDropdownOpen?: Ref<boolean>;
5
- disableSpaceHandler?: boolean;
6
- activate?: boolean;
7
- /**
8
- * If true, the listener will be initialized on the document element
9
- */
10
- global?: boolean;
11
- /**
12
- * List of keys that will close the dropdown.
13
- * For the full list of keys, see
14
- * @link https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
15
- * @default "Escape" and "Enter"
16
- */
17
- closeKeys?: string[];
18
- }
19
- export declare const useKeyboardController: (props: KeyboardControllerProps) => {
20
- activeIdx: Ref<number, number>;
21
- selectedIdx: Ref<number, number>;
22
- $reset: () => void;
23
- onKeyDownHandler: (e: KeyboardEvent) => void;
24
- };
25
- export {};
@@ -1,49 +0,0 @@
1
- import { ref as _, onMounted as A, onUnmounted as D, unref as p } from "vue";
2
- const u = "ArrowUp", a = "ArrowDown", c = "Enter", i = "Escape", v = " ", d = "PageUp", K = "Home", E = "PageDown", m = "End", O = (l) => {
3
- const {
4
- isDropdownOpen: t,
5
- disableSpaceHandler: P,
6
- global: f = !0,
7
- closeKeys: Y = [i, c]
8
- } = l, n = _(-1), o = _(-1), w = l.activate === void 0 ? !0 : l.activate, y = () => {
9
- n.value = -1, o.value = -1, t && (t.value = !1);
10
- }, k = (e) => {
11
- t && Y.includes(e) && (t.value = !1);
12
- }, r = (e) => {
13
- if (!t?.value || ![
14
- u,
15
- a,
16
- c,
17
- i,
18
- v,
19
- d,
20
- K,
21
- E,
22
- m
23
- ].includes(e.key))
24
- return;
25
- const s = p(l.optionsLength);
26
- if ([u, a, d, E].includes(e.key) && e.preventDefault(), e.key === u)
27
- n.value = n.value === 0 ? s - 1 : n.value - 1;
28
- else if (e.key === a)
29
- n.value = (n.value + 1) % s;
30
- else if (e.key === c || e.key === v) {
31
- if (e.key === v && P) return;
32
- o.value = n.value, k(e.key);
33
- } else e.key === i ? (n.value = o.value, k(e.key)) : e.key === d || e.key === K ? n.value = 0 : (e.key === E || e.key === m) && (n.value = s - 1);
34
- e.stopPropagation();
35
- };
36
- return w ? (A(() => {
37
- !document || !f || document.addEventListener("keydown", r);
38
- }), D(() => {
39
- !document || !f || document.removeEventListener("keydown", r);
40
- }), {
41
- activeIdx: n,
42
- selectedIdx: o,
43
- onKeyDownHandler: r,
44
- $reset: y
45
- }) : { activeIdx: n, selectedIdx: o, $reset: y, onKeyDownHandler: r };
46
- };
47
- export {
48
- O as useKeyboardController
49
- };