bitboss-ui 0.1.2 → 0.1.4

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 (284) hide show
  1. package/dist/components/BaseDatePicker/BaseDatePicker.vue.d.ts +1 -0
  2. package/dist/components/BbAvatar/BbAvatar.vue.d.ts +151 -0
  3. package/dist/components/BbPopover/BbPopover.vue.d.ts +96 -0
  4. package/dist/components/BbRatio/BbRatio.vue.d.ts +12 -0
  5. package/dist/components/BbSpinner/BbSpinner.vue.d.ts +1 -1
  6. package/dist/index.d.ts +4 -0
  7. package/dist/index.js +104 -98
  8. package/dist/index.js.map +1 -1
  9. package/dist/index10.js +123 -95
  10. package/dist/index10.js.map +1 -1
  11. package/dist/index100.js +43 -3
  12. package/dist/index100.js.map +1 -1
  13. package/dist/index101.js +2 -2
  14. package/dist/index102.js +2 -2
  15. package/dist/index103.js +2 -2
  16. package/dist/index104.js +2 -2
  17. package/dist/index105.js +2 -2
  18. package/dist/index106.js +2 -2
  19. package/dist/index107.js +2 -2
  20. package/dist/index108.js +2 -2
  21. package/dist/index109.js +2 -2
  22. package/dist/index110.js +2 -2
  23. package/dist/index111.js +2 -2
  24. package/dist/index112.js +2 -2
  25. package/dist/index113.js +2 -2
  26. package/dist/index114.js +2 -2
  27. package/dist/index115.js +2 -2
  28. package/dist/index116.js +2 -2
  29. package/dist/index117.js +2 -2
  30. package/dist/index118.js +2 -2
  31. package/dist/index119.js +3 -2
  32. package/dist/index119.js.map +1 -1
  33. package/dist/index12.js +4 -4
  34. package/dist/index120.js +2 -2
  35. package/dist/index121.js +3 -2
  36. package/dist/index121.js.map +1 -1
  37. package/dist/index123.js +2 -2
  38. package/dist/index124.js +2 -3
  39. package/dist/index124.js.map +1 -1
  40. package/dist/index125.js +2 -2
  41. package/dist/index126.js +2 -3
  42. package/dist/index126.js.map +1 -1
  43. package/dist/index127.js +2 -2
  44. package/dist/index128.js +2 -2
  45. package/dist/index129.js +3 -2
  46. package/dist/index129.js.map +1 -1
  47. package/dist/index130.js +2 -2
  48. package/dist/index131.js +2 -2
  49. package/dist/index132.js +2 -2
  50. package/dist/index133.js +2 -2
  51. package/dist/index134.js +2 -3
  52. package/dist/index134.js.map +1 -1
  53. package/dist/index135.js +2 -2
  54. package/dist/index136.js +2 -2
  55. package/dist/index137.js +2 -2
  56. package/dist/index138.js +2 -2
  57. package/dist/index139.js +2 -2
  58. package/dist/index14.js +6 -6
  59. package/dist/index140.js +3 -2
  60. package/dist/index140.js.map +1 -1
  61. package/dist/index141.js +2 -2
  62. package/dist/index142.js +3 -2
  63. package/dist/index142.js.map +1 -1
  64. package/dist/index145.js +2 -2
  65. package/dist/index146.js +2 -3
  66. package/dist/index146.js.map +1 -1
  67. package/dist/index147.js +2 -2
  68. package/dist/index148.js +2 -3
  69. package/dist/index148.js.map +1 -1
  70. package/dist/index149.js +2 -2
  71. package/dist/index150.js +2 -2
  72. package/dist/index151.js +3 -2
  73. package/dist/index151.js.map +1 -1
  74. package/dist/index152.js +3 -4
  75. package/dist/index152.js.map +1 -1
  76. package/dist/index153.js +3 -8
  77. package/dist/index153.js.map +1 -1
  78. package/dist/index154.js +3 -2
  79. package/dist/index154.js.map +1 -1
  80. package/dist/index155.js +3 -2
  81. package/dist/index155.js.map +1 -1
  82. package/dist/index156.js +3 -5
  83. package/dist/index156.js.map +1 -1
  84. package/dist/index157.js +348 -17
  85. package/dist/index157.js.map +1 -1
  86. package/dist/index158.js +131 -17
  87. package/dist/index158.js.map +1 -1
  88. package/dist/index159.js +5 -29
  89. package/dist/index159.js.map +1 -1
  90. package/dist/index16.js +1 -1
  91. package/dist/index160.js +19 -2
  92. package/dist/index160.js.map +1 -1
  93. package/dist/index162.js +2 -2
  94. package/dist/index162.js.map +1 -1
  95. package/dist/index163.js +184 -14
  96. package/dist/index163.js.map +1 -1
  97. package/dist/index164.js +2 -13
  98. package/dist/index164.js.map +1 -1
  99. package/dist/index165.js +23 -2
  100. package/dist/index165.js.map +1 -1
  101. package/dist/index166.js +328 -3
  102. package/dist/index166.js.map +1 -1
  103. package/dist/index167.js +16 -2
  104. package/dist/index167.js.map +1 -1
  105. package/dist/index168.js +12 -5
  106. package/dist/index168.js.map +1 -1
  107. package/dist/index169.js +2 -350
  108. package/dist/index169.js.map +1 -1
  109. package/dist/index170.js +2 -134
  110. package/dist/index170.js.map +1 -1
  111. package/dist/index171.js +2 -186
  112. package/dist/index171.js.map +1 -1
  113. package/dist/index172.js +4 -23
  114. package/dist/index172.js.map +1 -1
  115. package/dist/index173.js +8 -328
  116. package/dist/index173.js.map +1 -1
  117. package/dist/index174.js +20 -2
  118. package/dist/index174.js.map +1 -1
  119. package/dist/index175.js +29 -21
  120. package/dist/index175.js.map +1 -1
  121. package/dist/index176.js +2 -3
  122. package/dist/index176.js.map +1 -1
  123. package/dist/index177.js +3 -3
  124. package/dist/index177.js.map +1 -1
  125. package/dist/index178.js +6 -38
  126. package/dist/index178.js.map +1 -1
  127. package/dist/index179.js +2 -28
  128. package/dist/index179.js.map +1 -1
  129. package/dist/index18.js +2 -2
  130. package/dist/index180.js +2 -13
  131. package/dist/index180.js.map +1 -1
  132. package/dist/index181.js +20 -8
  133. package/dist/index181.js.map +1 -1
  134. package/dist/index182.js +3 -96
  135. package/dist/index182.js.map +1 -1
  136. package/dist/index183.js +3 -4
  137. package/dist/index183.js.map +1 -1
  138. package/dist/index184.js +38 -295
  139. package/dist/index184.js.map +1 -1
  140. package/dist/index185.js +9 -6
  141. package/dist/index185.js.map +1 -1
  142. package/dist/index186.js +96 -2
  143. package/dist/index186.js.map +1 -1
  144. package/dist/index187.js +28 -2
  145. package/dist/index187.js.map +1 -1
  146. package/dist/index188.js +13 -2
  147. package/dist/index188.js.map +1 -1
  148. package/dist/index189.js +6 -2
  149. package/dist/index189.js.map +1 -1
  150. package/dist/index190.js +2 -235
  151. package/dist/index190.js.map +1 -1
  152. package/dist/index191.js +294 -88
  153. package/dist/index191.js.map +1 -1
  154. package/dist/index192.js +2 -2
  155. package/dist/index193.js +2 -117
  156. package/dist/index193.js.map +1 -1
  157. package/dist/index194.js +111 -100
  158. package/dist/index194.js.map +1 -1
  159. package/dist/index195.js +105 -78
  160. package/dist/index195.js.map +1 -1
  161. package/dist/index196.js +4 -224
  162. package/dist/index196.js.map +1 -1
  163. package/dist/index197.js +226 -249
  164. package/dist/index197.js.map +1 -1
  165. package/dist/index198.js +2 -38
  166. package/dist/index198.js.map +1 -1
  167. package/dist/index199.js +2 -2
  168. package/dist/index199.js.map +1 -1
  169. package/dist/index20.js +4 -4
  170. package/dist/index200.js +89 -2
  171. package/dist/index200.js.map +1 -1
  172. package/dist/index201.js +79 -2
  173. package/dist/index201.js.map +1 -1
  174. package/dist/index202.js +49 -8
  175. package/dist/index202.js.map +1 -1
  176. package/dist/index203.js +223 -5
  177. package/dist/index203.js.map +1 -1
  178. package/dist/index204.js +261 -0
  179. package/dist/index204.js.map +1 -0
  180. package/dist/index205.js +41 -0
  181. package/dist/index205.js.map +1 -0
  182. package/dist/index206.js +5 -0
  183. package/dist/index206.js.map +1 -0
  184. package/dist/index207.js +5 -0
  185. package/dist/index207.js.map +1 -0
  186. package/dist/index208.js +12 -0
  187. package/dist/index208.js.map +1 -0
  188. package/dist/index209.js +9 -0
  189. package/dist/index209.js.map +1 -0
  190. package/dist/index210.js +5 -0
  191. package/dist/index210.js.map +1 -0
  192. package/dist/index211.js +14 -0
  193. package/dist/index211.js.map +1 -0
  194. package/dist/index212.js +434 -0
  195. package/dist/index212.js.map +1 -0
  196. package/dist/index213.js +12 -0
  197. package/dist/index213.js.map +1 -0
  198. package/dist/index214.js +203 -0
  199. package/dist/index214.js.map +1 -0
  200. package/dist/index22.js +14 -14
  201. package/dist/index24.js +4 -4
  202. package/dist/index26.js +2 -2
  203. package/dist/index28.js +4 -4
  204. package/dist/index34.js +2 -2
  205. package/dist/index36.js +50 -37
  206. package/dist/index36.js.map +1 -1
  207. package/dist/index38.js +39 -39
  208. package/dist/index38.js.map +1 -1
  209. package/dist/index4.js +2 -2
  210. package/dist/index40.js +36 -82
  211. package/dist/index40.js.map +1 -1
  212. package/dist/index42.js +44 -57
  213. package/dist/index42.js.map +1 -1
  214. package/dist/index44.js +98 -79
  215. package/dist/index44.js.map +1 -1
  216. package/dist/index46.js +79 -81
  217. package/dist/index46.js.map +1 -1
  218. package/dist/index48.js +80 -40
  219. package/dist/index48.js.map +1 -1
  220. package/dist/index50.js +40 -283
  221. package/dist/index50.js.map +1 -1
  222. package/dist/index52.js +279 -95
  223. package/dist/index52.js.map +1 -1
  224. package/dist/index54.js +98 -212
  225. package/dist/index54.js.map +1 -1
  226. package/dist/index56.js +213 -44
  227. package/dist/index56.js.map +1 -1
  228. package/dist/index58.js +45 -40
  229. package/dist/index58.js.map +1 -1
  230. package/dist/index59.js +2 -96
  231. package/dist/index59.js.map +1 -1
  232. package/dist/index6.js +4 -4
  233. package/dist/index60.js +44 -2
  234. package/dist/index60.js.map +1 -1
  235. package/dist/index61.js +89 -211
  236. package/dist/index61.js.map +1 -1
  237. package/dist/index63.js +210 -130
  238. package/dist/index63.js.map +1 -1
  239. package/dist/index65.js +134 -18
  240. package/dist/index65.js.map +1 -1
  241. package/dist/index67.js +145 -74
  242. package/dist/index67.js.map +1 -1
  243. package/dist/index69.js +18 -98
  244. package/dist/index69.js.map +1 -1
  245. package/dist/index71.js +77 -17
  246. package/dist/index71.js.map +1 -1
  247. package/dist/index73.js +48 -66
  248. package/dist/index73.js.map +1 -1
  249. package/dist/index75.js +21 -78
  250. package/dist/index75.js.map +1 -1
  251. package/dist/index77.js +77 -46
  252. package/dist/index77.js.map +1 -1
  253. package/dist/index79.js +44 -61
  254. package/dist/index79.js.map +1 -1
  255. package/dist/index8.js +188 -181
  256. package/dist/index8.js.map +1 -1
  257. package/dist/index81.js +82 -106
  258. package/dist/index81.js.map +1 -1
  259. package/dist/index83.js +88 -370
  260. package/dist/index83.js.map +1 -1
  261. package/dist/index85.js +106 -74
  262. package/dist/index85.js.map +1 -1
  263. package/dist/index87.js +371 -68
  264. package/dist/index87.js.map +1 -1
  265. package/dist/index89.js +75 -111
  266. package/dist/index89.js.map +1 -1
  267. package/dist/index91.js +76 -87
  268. package/dist/index91.js.map +1 -1
  269. package/dist/index93.js +111 -32
  270. package/dist/index93.js.map +1 -1
  271. package/dist/index94.js +2 -37
  272. package/dist/index94.js.map +1 -1
  273. package/dist/index95.js +87 -42
  274. package/dist/index95.js.map +1 -1
  275. package/dist/index96.js +2 -43
  276. package/dist/index96.js.map +1 -1
  277. package/dist/index97.js +38 -3
  278. package/dist/index97.js.map +1 -1
  279. package/dist/index98.js +37 -3
  280. package/dist/index98.js.map +1 -1
  281. package/dist/index99.js +47 -3
  282. package/dist/index99.js.map +1 -1
  283. package/dist/style.css +1 -1
  284. package/package.json +1 -1
package/dist/index52.js CHANGED
@@ -1,107 +1,291 @@
1
- import { defineComponent as f, openBlock as _, createElementBlock as B, normalizeClass as k, createVNode as i, unref as e, withCtx as s, renderSlot as d, createTextVNode as v, toDisplayString as h, createSlots as C, mergeProps as $, createElementVNode as l, renderList as D, normalizeProps as g, guardReactiveProps as y } from "vue";
2
- import w from "./index2.js";
1
+ import { defineComponent as G, computed as I, ref as h, openBlock as D, createElementBlock as M, mergeProps as J, createElementVNode as $, renderSlot as w, normalizeProps as Q, guardReactiveProps as W, unref as b, createBlock as X, Teleport as Y, normalizeClass as q, normalizeStyle as K, Fragment as A, renderList as Z, createVNode as x, withCtx as ee, createTextVNode as oe, toDisplayString as ne } from "vue";
2
+ import { findRightIndex as S } from "./index185.js";
3
+ import { nanoid as te } from "./index176.js";
4
+ import { useFloating as le } from "./index186.js";
5
+ import { wait as B } from "./index164.js";
6
+ import ae from "./index2.js";
3
7
  import "./index3.js";
4
- import L from "./index50.js";
5
- import "./index51.js";
6
- const N = { class: "bb-dropdown-button__dropdown-label" }, P = /* @__PURE__ */ l("svg", {
7
- class: "bb-dropdown-button__dropdown-chevron",
8
- xmlns: "http://www.w3.org/2000/svg",
9
- viewBox: "0 0 24 24"
10
- }, [
11
- /* @__PURE__ */ l("path", {
12
- fill: "currentColor",
13
- d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6l1.41 1.41Z"
14
- })
15
- ], -1), T = /* @__PURE__ */ f({
16
- __name: "BbDropdownButton",
8
+ import O from "./index165.js";
9
+ import { autoUpdate as se } from "./index157.js";
10
+ import { flip as ie, shift as re } from "./index166.js";
11
+ const de = ["id"], ue = /* @__PURE__ */ $("span", { class: "bb-dropdown__arrow" }, null, -1), ce = { class: "bb-dropdown__items-container" }, _e = /* @__PURE__ */ G({
12
+ __name: "BbDropdown",
17
13
  props: {
18
14
  block: { type: Boolean },
19
15
  disabled: { type: Boolean },
20
16
  items: {},
21
- placement: {},
22
- theme: { default: "dropdown-btn" },
23
- transitionDuration: {},
24
- width: {}
17
+ placement: { default: "bottom" },
18
+ theme: { default: "default" },
19
+ transitionDuration: { default: 150 },
20
+ width: { default: 200 }
25
21
  },
26
- setup(c) {
27
- const o = c.items[0];
28
- return (t, V) => (_(), B("span", {
29
- class: k(["bb-dropdown-button", { "bb-dropdown-button--block": t.block }])
30
- }, [
31
- i(w, {
32
- disabled: e(o).disabled || t.disabled,
33
- href: e(o).href,
34
- to: e(o).to,
35
- onClick: e(o).handler,
36
- class: "bb-dropdown-button__main-btn"
37
- }, {
38
- default: s(() => [
39
- d(t.$slots, "left-btn", {
40
- disabled: e(o).disabled || t.disabled,
41
- text: e(o).text
42
- }, () => [
43
- v(h(e(o).text), 1)
44
- ])
45
- ]),
46
- _: 3
47
- }, 8, ["disabled", "href", "to", "onClick"]),
48
- i(L, {
49
- disabled: t.disabled,
50
- items: t.items,
51
- placement: t.placement,
52
- theme: t.theme,
53
- transitionDuration: t.transitionDuration,
54
- width: t.width
55
- }, C({
56
- activator: s(({
57
- props: a,
58
- opening: n,
59
- open: r,
60
- closed: b,
61
- closing: p,
62
- disabled: m,
63
- placement: u
64
- }) => [
65
- d(t.$slots, "activator", {
66
- props: a,
67
- opening: n,
68
- open: r,
69
- closed: b,
70
- closing: p,
71
- disabled: m,
72
- placement: u
73
- }, () => [
74
- i(w, $(a, { class: "bb-dropdown-button__dropdown-btn" }), {
75
- default: s(() => [
76
- l("span", N, h(r || n ? "Chiudi" : "Apri") + " il menu", 1),
77
- d(t.$slots, "right-btn", {
78
- opening: n,
79
- open: r,
80
- closed: b,
81
- closing: p,
82
- disabled: m,
83
- placement: u
84
- }, () => [
85
- P
86
- ])
87
- ]),
88
- _: 2
89
- }, 1040)
90
- ])
91
- ]),
92
- _: 2
22
+ setup(P) {
23
+ const u = P, p = `bb_${te()}`, v = I(() => {
24
+ let o = u.items.findIndex((e) => !e.disabled), t = S(
25
+ u.items,
26
+ (e) => !e.disabled
27
+ );
28
+ return u.items.map((e, n) => {
29
+ const d = `${p}-item-${e.key}`, j = async () => {
30
+ await g();
31
+ const a = document.querySelector(`#${p}`);
32
+ if (a)
33
+ a instanceof HTMLElement && a.focus();
34
+ else
35
+ return;
36
+ e.handler && e.handler();
37
+ }, R = (a) => {
38
+ if (a.target instanceof HTMLElement && a.target.dataset.dropdownItem) {
39
+ if (!l.value)
40
+ return;
41
+ if (a.key === "ArrowDown") {
42
+ if (a.preventDefault(), l.value && n !== t) {
43
+ const f = l.value.querySelector(
44
+ O.map((k) => `#${d} ~ ${k}`).join(",")
45
+ );
46
+ f && f instanceof HTMLElement && f.focus();
47
+ }
48
+ } else if (a.key === "ArrowUp") {
49
+ if (a.preventDefault(), l.value && n !== o) {
50
+ const f = S(u.items, (E, T) => T < n && !E.disabled), _ = Array.from(
51
+ l.value.querySelectorAll(".bb-dropdown__item")
52
+ )[f];
53
+ _ && _ instanceof HTMLElement && _.focus();
54
+ }
55
+ } else if (a.key === "Tab") {
56
+ if (n === t && !a.shiftKey) {
57
+ const f = O.join(","), k = Array.from(
58
+ document.querySelectorAll(f)
59
+ ), _ = k.findIndex(
60
+ (T) => T.id === p
61
+ ), E = k[_ + 1];
62
+ if (E)
63
+ E instanceof HTMLElement && (a.preventDefault(), g(), E.focus());
64
+ else
65
+ return;
66
+ } else if (n === o && a.shiftKey) {
67
+ const f = document.querySelector(`#${p}`);
68
+ if (f)
69
+ f instanceof HTMLElement && (a.preventDefault(), f.focus());
70
+ else
71
+ return;
72
+ }
73
+ }
74
+ }
75
+ };
76
+ return {
77
+ disabled: e.disabled,
78
+ href: e.href,
79
+ id: d,
80
+ key: e.key,
81
+ onClick: j,
82
+ onKeydown: R,
83
+ text: e.text,
84
+ to: e.to
85
+ };
86
+ });
87
+ }), y = h(), l = h(), { floatingStyles: z, placement: m } = le(y, l, {
88
+ placement: u.placement,
89
+ whileElementsMounted: se,
90
+ middleware: [ie(), re({ padding: 6 })]
91
+ }), s = h(!1), i = h(!1), r = h(!1), c = h(!0), N = () => {
92
+ s.value || r.value || (i.value ? g() : L());
93
+ }, U = async (o) => {
94
+ let t = u.items.findIndex((n) => !n.disabled), e = S(
95
+ u.items,
96
+ (n) => !n.disabled
97
+ );
98
+ if (o.key === "ArrowDown") {
99
+ if (o.preventDefault(), r.value || s.value)
100
+ return;
101
+ if (c.value && await L(), l.value && v.value.length && t !== -1) {
102
+ const n = v.value[t].id, d = l.value.querySelector(`#${n}`);
103
+ d && d instanceof HTMLElement && d.focus();
104
+ }
105
+ } else if (o.key === "ArrowUp") {
106
+ if (o.preventDefault(), r.value || s.value)
107
+ return;
108
+ if (c.value && await L(), l.value && v.value.length && e !== -1) {
109
+ const n = v.value[e].id, d = l.value.querySelector(`#${n}`);
110
+ d && d instanceof HTMLElement && d.focus();
111
+ }
112
+ } else if (o.key === "Tab" && i.value && !o.shiftKey && (o.preventDefault(), l.value && v.value.length && t !== -1)) {
113
+ const n = v.value[t].id, d = l.value.querySelector(`#${n}`);
114
+ d && d instanceof HTMLElement && d.focus();
115
+ }
116
+ }, H = (o) => {
117
+ const t = o.target;
118
+ if (t && t instanceof HTMLElement) {
119
+ let e = !0;
120
+ y.value && y.value.contains(t) && (e = !1), l.value && l.value.contains(t) && (e = !1), e && g();
121
+ }
122
+ }, C = (o) => {
123
+ const t = o.target;
124
+ if (t && t instanceof HTMLElement) {
125
+ let e = !0;
126
+ y.value && y.value.contains(t) && (e = !1), l.value && l.value.contains(t) && (e = !1), e && g();
127
+ }
128
+ }, F = (o) => {
129
+ var t;
130
+ if (i.value && o.key === "Escape") {
131
+ if (((t = document.activeElement) == null ? void 0 : t.id) !== p) {
132
+ const e = document.querySelector(`#${p}`);
133
+ e instanceof HTMLElement && e.focus();
134
+ }
135
+ g();
136
+ }
137
+ }, L = async () => {
138
+ c.value = !1, r.value = !1, s.value = !0, await B(50), i.value = !0, s.value = !1, document.addEventListener("click", H, { passive: !0 }), document.addEventListener("focusin", C, { passive: !0 }), document.addEventListener("keydown", F, { passive: !0 });
139
+ }, g = async () => {
140
+ i.value = !1, s.value = !1, r.value = !0, await B(u.transitionDuration), r.value = !1, c.value = !0, document.removeEventListener("click", H), document.removeEventListener("focusin", C), document.removeEventListener("keydown", F);
141
+ }, V = I(() => ({
142
+ class: {
143
+ "bb-dropdown--block": u.block,
144
+ [`bb-dropdown--theme-${u.theme}`]: u.theme
145
+ }
146
+ }));
147
+ return (o, t) => (D(), M("span", J({ class: "bb-dropdown" }, V.value), [
148
+ $("span", {
149
+ class: "bb-dropdown__wrapper",
150
+ ref_key: "wrapper",
151
+ ref: y
93
152
  }, [
94
- D(t.$slots, (a, n) => ({
95
- name: n,
96
- fn: s((r) => [
97
- d(t.$slots, n, g(y(r)))
98
- ])
99
- }))
100
- ]), 1032, ["disabled", "items", "placement", "theme", "transitionDuration", "width"])
101
- ], 2));
153
+ w(o.$slots, "activator", Q(W({
154
+ props: {
155
+ "aria-expanded": i.value,
156
+ "aria-controls": `menu_${p}`,
157
+ id: p,
158
+ onClick: N,
159
+ onKeydown: U,
160
+ disabled: o.disabled
161
+ },
162
+ closed: c.value,
163
+ closing: r.value,
164
+ disabled: o.disabled,
165
+ open: i.value,
166
+ opening: s.value,
167
+ placement: b(m)
168
+ })))
169
+ ], 512),
170
+ (D(), X(Y, { to: "body" }, [
171
+ $("span", {
172
+ class: q(["bb-dropdown__bubble-container", {
173
+ [`bb-dropdown__bubble-container--${b(m)}`]: !0,
174
+ [`bb-dropdown__bubble-container--${o.theme}`]: o.theme,
175
+ "bb-dropdown__bubble-container--hidden": c.value,
176
+ "bb-dropdown__bubble-container--closing": r.value,
177
+ "bb-dropdown__bubble-container--opening": s.value,
178
+ "bb-dropdown__bubble-container--open": i.value
179
+ }]),
180
+ ref_key: "content",
181
+ ref: l,
182
+ style: K({
183
+ ...b(z),
184
+ transitionDuration: `${u.transitionDuration}ms`
185
+ }),
186
+ "aria-labelledby": p,
187
+ "aria-role": "menu",
188
+ id: `menu_${p}`
189
+ }, [
190
+ ue,
191
+ $("span", {
192
+ class: "bb-dropdown__bubble",
193
+ style: K({ width: `${o.width}px` })
194
+ }, [
195
+ w(o.$slots, "prepend", {
196
+ closed: c.value,
197
+ closing: r.value,
198
+ disabled: o.disabled,
199
+ open: i.value,
200
+ opening: s.value,
201
+ placement: b(m)
202
+ }),
203
+ $("span", ce, [
204
+ (D(!0), M(A, null, Z(v.value, (e, n) => (D(), M(A, {
205
+ key: e.key
206
+ }, [
207
+ w(o.$slots, "item:prepend", {
208
+ closed: c.value,
209
+ closing: r.value,
210
+ disabled: o.disabled || e.disabled,
211
+ index: n,
212
+ item: o.items[n],
213
+ open: i.value,
214
+ opening: s.value,
215
+ placement: b(m),
216
+ text: e.text
217
+ }),
218
+ x(ae, {
219
+ class: q(["bb-dropdown__item", {
220
+ "bb-dropdown__item--first": n === 0,
221
+ "bb-dropdown__item--last": n === o.items.length - 1
222
+ }]),
223
+ "aria-role": "menuitem",
224
+ "data-dropdown-item": !0,
225
+ disabled: e.disabled,
226
+ href: e.href,
227
+ id: e.id,
228
+ to: e.to,
229
+ onClick: e.onClick,
230
+ onKeydown: e.onKeydown
231
+ }, {
232
+ default: ee(() => [
233
+ w(o.$slots, e.key, {
234
+ closed: c.value,
235
+ closing: r.value,
236
+ disabled: o.disabled || e.disabled,
237
+ index: n,
238
+ item: e,
239
+ open: i.value,
240
+ opening: s.value,
241
+ placement: b(m),
242
+ text: e.text
243
+ }, () => [
244
+ w(o.$slots, "item", {
245
+ closed: c.value,
246
+ closing: r.value,
247
+ disabled: o.disabled || e.disabled,
248
+ index: n,
249
+ item: e,
250
+ open: i.value,
251
+ opening: s.value,
252
+ placement: b(m),
253
+ text: e.text
254
+ }, () => [
255
+ oe(ne(e.text), 1)
256
+ ])
257
+ ])
258
+ ]),
259
+ _: 2
260
+ }, 1032, ["class", "disabled", "href", "id", "to", "onClick", "onKeydown"]),
261
+ w(o.$slots, "item:append", {
262
+ closed: c.value,
263
+ closing: r.value,
264
+ disabled: o.disabled || e.disabled,
265
+ index: n,
266
+ item: o.items[n],
267
+ open: i.value,
268
+ opening: s.value,
269
+ placement: b(m),
270
+ text: e.text
271
+ })
272
+ ], 64))), 128))
273
+ ]),
274
+ w(o.$slots, "append", {
275
+ disabled: o.disabled,
276
+ placement: b(m),
277
+ open: i.value,
278
+ opening: s.value,
279
+ closing: r.value,
280
+ closed: c.value
281
+ })
282
+ ], 4)
283
+ ], 14, de)
284
+ ]))
285
+ ], 16));
102
286
  }
103
287
  });
104
288
  export {
105
- T as default
289
+ _e as default
106
290
  };
107
291
  //# sourceMappingURL=index52.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index52.js","sources":["../src/components/BbDropdownButton/BbDropdownButton.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderList as _renderList, createSlots as _createSlots, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bb-dropdown-button__dropdown-label\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"bb-dropdown-button__dropdown-chevron\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 24 24\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n fill: \"currentColor\",\n d: \"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6l1.41 1.41Z\"\n })\n], -1)\n\nimport BaseButton from \"../BaseButton/BaseButton.vue\";\nimport type { Item } from \"../BbDropdown/BbDropdown.vue\";\nimport BbDropdown from \"../BbDropdown/BbDropdown.vue\";\n\nexport type BbDropdownButtonProps = {\n block?: boolean;\n disabled?: boolean;\n items: Item[];\n placement?:\n | \"top\"\n | \"top-start\"\n | \"top-end\"\n | \"right\"\n | \"right-start\"\n | \"right-end\"\n | \"bottom\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"left\"\n | \"left-start\"\n | \"left-end\";\n theme?: string;\n transitionDuration?: number;\n width?: number;\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbDropdownButton',\n props: {\n block: { type: Boolean },\n disabled: { type: Boolean },\n items: {},\n placement: {},\n theme: { default: \"dropdown-btn\" },\n transitionDuration: {},\n width: {}\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\n\nconst mainBtn = props.items[0];\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: _normalizeClass([\"bb-dropdown-button\", { 'bb-dropdown-button--block': _ctx.block }])\n }, [\n _createVNode(BaseButton, {\n disabled: _unref(mainBtn).disabled || _ctx.disabled,\n href: _unref(mainBtn).href,\n to: _unref(mainBtn).to,\n onClick: _unref(mainBtn).handler,\n class: \"bb-dropdown-button__main-btn\"\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"left-btn\", {\n disabled: _unref(mainBtn).disabled || _ctx.disabled,\n text: _unref(mainBtn).text\n }, () => [\n _createTextVNode(_toDisplayString(_unref(mainBtn).text), 1)\n ])\n ]),\n _: 3\n }, 8, [\"disabled\", \"href\", \"to\", \"onClick\"]),\n _createVNode(BbDropdown, {\n disabled: _ctx.disabled,\n items: _ctx.items,\n placement: _ctx.placement,\n theme: _ctx.theme,\n transitionDuration: _ctx.transitionDuration,\n width: _ctx.width\n }, _createSlots({\n activator: _withCtx(({\n props,\n opening,\n open,\n closed,\n closing,\n disabled,\n placement,\n }) => [\n _renderSlot(_ctx.$slots, \"activator\", {\n props: props,\n opening: opening,\n open: open,\n closed: closed,\n closing: closing,\n disabled: disabled,\n placement: placement\n }, () => [\n _createVNode(BaseButton, _mergeProps(props, { class: \"bb-dropdown-button__dropdown-btn\" }), {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, _toDisplayString(open || opening ? \"Chiudi\" : \"Apri\") + \" il menu\", 1),\n _renderSlot(_ctx.$slots, \"right-btn\", {\n opening: opening,\n open: open,\n closed: closed,\n closing: closing,\n disabled: disabled,\n placement: placement\n }, () => [\n _hoisted_2\n ])\n ]),\n _: 2\n }, 1040)\n ])\n ]),\n _: 2\n }, [\n _renderList(_ctx.$slots, (_, name) => {\n return {\n name: name,\n fn: _withCtx((data) => [\n _renderSlot(_ctx.$slots, name, _normalizeProps(_guardReactiveProps(data)))\n ])\n }\n })\n ]), 1032, [\"disabled\", \"items\", \"placement\", \"theme\", \"transitionDuration\", \"width\"])\n ], 2))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_sfc_main","_defineComponent","__props","mainBtn","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_createVNode","BaseButton","_unref","_withCtx","_renderSlot","_createTextVNode","_toDisplayString","BbDropdown","_createSlots","props","opening","open","closed","closing","disabled","placement","_mergeProps","_createElementVNode","_renderList","_","name","data","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
1
+ {"version":3,"file":"index52.js","sources":["../src/components/BbDropdown/BbDropdown.vue?vue&type=script&setup=true&lang.ts"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeProps as _normalizeProps, guardReactiveProps as _guardReactiveProps, renderSlot as _renderSlot, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, normalizeStyle as _normalizeStyle, Teleport as _Teleport, createBlock as _createBlock, mergeProps as _mergeProps } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"bb-dropdown__arrow\" }, null, -1)\nconst _hoisted_3 = { class: \"bb-dropdown__items-container\" }\n\nimport { computed, ref } from \"vue\";\nimport { findRightIndex } from \"@/utilities/functions/findRightIndex\";\nimport { nanoid } from \"nanoid\";\nimport { useFloating, autoUpdate, flip, shift } from \"@floating-ui/vue\";\nimport { wait } from \"@/utilities/functions/wait\";\nimport BaseButton from \"../BaseButton/BaseButton.vue\";\nimport selectors from \"focusable-selectors\";\nimport type { RouteLocationRaw } from \"vue-router\";\n\nexport type BbDropdownProps = {\n block?: boolean;\n disabled?: boolean;\n items: Item[];\n placement?:\n | \"top\"\n | \"top-start\"\n | \"top-end\"\n | \"right\"\n | \"right-start\"\n | \"right-end\"\n | \"bottom\"\n | \"bottom-start\"\n | \"bottom-end\"\n | \"left\"\n | \"left-start\"\n | \"left-end\";\n theme?: string;\n transitionDuration?: number;\n width?: number;\n};\n\nexport type Item = {\n disabled?: boolean;\n handler?: (...args: any[]) => any;\n href?: string;\n key: string;\n text: string;\n to?: RouteLocationRaw;\n};\n\ntype MappedItem = {\n disabled: Item[\"disabled\"];\n href: Item[\"href\"];\n id: string;\n key: Item[\"key\"];\n onClick: (...args: any[]) => any;\n onKeydown: (event: KeyboardEvent) => void;\n text: Item[\"text\"];\n to: Item[\"to\"];\n};\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'BbDropdown',\n props: {\n block: { type: Boolean },\n disabled: { type: Boolean },\n items: {},\n placement: { default: \"bottom\" },\n theme: { default: \"default\" },\n transitionDuration: { default: 150 },\n width: { default: 200 }\n },\n setup(__props: any) {\n\nconst props = __props;\n\n\n\nconst id = `bb_${nanoid()}`;\n\nconst mappedItems = computed<MappedItem[]>(() => {\n let firstFocusableIndex: number = props.items.findIndex((el) => !el.disabled);\n let lastFocusableIndex: number = findRightIndex(\n props.items,\n (item) => !item.disabled\n );\n\n return props.items.map((item, index) => {\n const itemid = `${id}-item-${item.key}`;\n\n /* Id a click handler has been passed close the dropdown\n * return focus and run the handler\n */\n const onClick = async () => {\n await closeDropdown();\n const nextElement = document.querySelector(`#${id}`);\n if (!nextElement) return;\n else if (nextElement instanceof HTMLElement) {\n nextElement.focus();\n }\n if (item.handler) item.handler();\n };\n\n /**\n * On keydown\n * arrow down move to the next focusable element if it's not the last\n * arrow up move to the previous focusable element if it's not the first\n * on tab search the next focusable element after the button that opens the dropdown\n * if an element is found focus on that\n * (the menu is attached to body so it's not in order)\n */\n const onKeydown = (event: KeyboardEvent) => {\n if (\n event.target instanceof HTMLElement &&\n event.target.dataset[\"dropdownItem\"]\n ) {\n if (!content.value) return;\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n if (content.value && index !== lastFocusableIndex) {\n const option = content.value.querySelector(\n selectors.map((selector) => `#${itemid} ~ ${selector}`).join(\",\")\n );\n if (option && option instanceof HTMLElement) {\n option.focus();\n }\n }\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n if (content.value && index !== firstFocusableIndex) {\n const indexOfPrevious = findRightIndex(props.items, (item, i) => {\n return i < index && !item.disabled;\n });\n\n const options = Array.from(\n content.value.querySelectorAll(`.bb-dropdown__item`)\n );\n\n const option = options[indexOfPrevious];\n\n if (option && option instanceof HTMLElement) {\n option.focus();\n }\n }\n } else if (event.key === \"Tab\") {\n if (index === lastFocusableIndex && !event.shiftKey) {\n const selector = selectors.join(\",\");\n const focusableElements = Array.from(\n document.querySelectorAll(selector)\n );\n const indexOfButton = focusableElements.findIndex(\n (el) => el.id === id\n );\n const nextElement = focusableElements[indexOfButton + 1];\n if (!nextElement) return;\n else if (nextElement instanceof HTMLElement) {\n event.preventDefault();\n closeDropdown();\n nextElement.focus();\n }\n } else if (index === firstFocusableIndex && event.shiftKey) {\n const nextElement = document.querySelector(`#${id}`);\n if (!nextElement) return;\n else if (nextElement instanceof HTMLElement) {\n event.preventDefault();\n nextElement.focus();\n }\n }\n }\n }\n };\n\n return {\n disabled: item.disabled,\n href: item.href,\n id: itemid,\n key: item.key,\n onClick,\n onKeydown,\n text: item.text,\n to: item.to,\n };\n });\n});\n\nconst wrapper = ref<HTMLElement>();\nconst content = ref<HTMLElement>();\n\nconst { floatingStyles, placement } = useFloating(wrapper, content, {\n placement: props.placement,\n whileElementsMounted: autoUpdate,\n middleware: [flip(), shift({ padding: 6 })],\n});\n\nconst opening = ref(false);\nconst open = ref(false);\nconst closing = ref(false);\nconst closed = ref(true);\n\n/* On click of the trigger attach elements */\nconst onClick = () => {\n if (opening.value || closing.value) return;\n if (open.value) {\n closeDropdown();\n } else {\n openDropdown();\n }\n};\n\nconst onKeydown = async (event: KeyboardEvent) => {\n let firstFocusableIndex: number = props.items.findIndex((el) => !el.disabled);\n let lastFocusableIndex: number = findRightIndex(\n props.items,\n (item) => !item.disabled\n );\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n if (closing.value || opening.value) return;\n if (closed.value) {\n await openDropdown();\n }\n if (\n content.value &&\n mappedItems.value.length &&\n firstFocusableIndex !== -1\n ) {\n const idToFocus = mappedItems.value[firstFocusableIndex].id;\n const option = content.value.querySelector(`#${idToFocus}`);\n if (option && option instanceof HTMLElement) {\n option.focus();\n }\n }\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n if (closing.value || opening.value) return;\n if (closed.value) {\n await openDropdown();\n }\n if (\n content.value &&\n mappedItems.value.length &&\n lastFocusableIndex !== -1\n ) {\n const idToFocus = mappedItems.value[lastFocusableIndex].id;\n const option = content.value.querySelector(`#${idToFocus}`);\n if (option && option instanceof HTMLElement) {\n option.focus();\n }\n }\n } else if (event.key === \"Tab\") {\n if (open.value && !event.shiftKey) {\n event.preventDefault();\n if (\n content.value &&\n mappedItems.value.length &&\n firstFocusableIndex !== -1\n ) {\n const idToFocus = mappedItems.value[firstFocusableIndex].id;\n const option = content.value.querySelector(`#${idToFocus}`);\n if (option && option instanceof HTMLElement) {\n option.focus();\n }\n }\n }\n }\n};\n\nconst onClickDocument = (event: Event) => {\n const target = event.target;\n if (!target) return;\n if (target instanceof HTMLElement) {\n let isOutside = true;\n\n if (wrapper.value) {\n if (wrapper.value.contains(target)) {\n isOutside = false;\n }\n }\n if (content.value) {\n if (content.value.contains(target)) {\n isOutside = false;\n }\n }\n\n if (isOutside) {\n closeDropdown();\n }\n }\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n const target = event.target;\n if (!target) return;\n if (target instanceof HTMLElement) {\n let isOutside = true;\n\n if (wrapper.value) {\n if (wrapper.value.contains(target)) {\n isOutside = false;\n }\n }\n if (content.value) {\n if (content.value.contains(target)) {\n isOutside = false;\n }\n }\n\n if (isOutside) {\n closeDropdown();\n }\n }\n};\n\nconst onEsc = (event: KeyboardEvent) => {\n if (open.value) {\n if (event.key === \"Escape\") {\n if (document.activeElement?.id !== id) {\n const button = document.querySelector(`#${id}`);\n if (button instanceof HTMLElement) {\n button.focus();\n }\n }\n closeDropdown();\n }\n }\n};\n\nconst openDropdown = async () => {\n closed.value = false;\n closing.value = false;\n opening.value = true;\n await wait(50);\n open.value = true;\n opening.value = false;\n /* Attach listeners to document so we don't have to track them one by one */\n document.addEventListener(\"click\", onClickDocument, { passive: true });\n document.addEventListener(\"focusin\", onDocumentFocus, { passive: true });\n document.addEventListener(\"keydown\", onEsc, { passive: true });\n};\n\nconst closeDropdown = async () => {\n open.value = false;\n opening.value = false;\n closing.value = true;\n await wait(props.transitionDuration);\n closing.value = false;\n closed.value = true;\n document.removeEventListener(\"click\", onClickDocument);\n document.removeEventListener(\"focusin\", onDocumentFocus);\n document.removeEventListener(\"keydown\", onEsc);\n};\n\nconst attributes = computed(() => {\n const classes = {\n \"bb-dropdown--block\": props.block,\n [`bb-dropdown--theme-${props.theme}`]: props.theme,\n };\n return {\n class: classes,\n };\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", _mergeProps({ class: \"bb-dropdown\" }, attributes.value), [\n _createElementVNode(\"span\", {\n class: \"bb-dropdown__wrapper\",\n ref_key: \"wrapper\",\n ref: wrapper\n }, [\n _renderSlot(_ctx.$slots, \"activator\", _normalizeProps(_guardReactiveProps({\n props: {\n 'aria-expanded': open.value,\n 'aria-controls': `menu_${id}`,\n id: id,\n onClick: onClick,\n onKeydown: onKeydown,\n disabled: _ctx.disabled,\n },\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled,\n open: open.value,\n opening: opening.value,\n placement: _unref(placement),\n })))\n ], 512),\n (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"bb-dropdown__bubble-container\", {\n [`bb-dropdown__bubble-container--${_unref(placement)}`]: true,\n [`bb-dropdown__bubble-container--${_ctx.theme}`]: _ctx.theme,\n 'bb-dropdown__bubble-container--hidden': closed.value,\n 'bb-dropdown__bubble-container--closing': closing.value,\n 'bb-dropdown__bubble-container--opening': opening.value,\n 'bb-dropdown__bubble-container--open': open.value,\n }]),\n ref_key: \"content\",\n ref: content,\n style: _normalizeStyle({\n ..._unref(floatingStyles),\n transitionDuration: `${props.transitionDuration}ms`,\n }),\n \"aria-labelledby\": id,\n \"aria-role\": \"menu\",\n id: `menu_${id}`\n }, [\n _hoisted_2,\n _createElementVNode(\"span\", {\n class: \"bb-dropdown__bubble\",\n style: _normalizeStyle({ width: `${_ctx.width}px` })\n }, [\n _renderSlot(_ctx.$slots, \"prepend\", {\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled,\n open: open.value,\n opening: opening.value,\n placement: _unref(placement)\n }),\n _createElementVNode(\"span\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(mappedItems.value, (item, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, {\n key: item.key\n }, [\n _renderSlot(_ctx.$slots, `item:prepend`, {\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled || item.disabled,\n index: index,\n item: _ctx.items[index],\n open: open.value,\n opening: opening.value,\n placement: _unref(placement),\n text: item.text\n }),\n _createVNode(BaseButton, {\n class: _normalizeClass([\"bb-dropdown__item\", {\n 'bb-dropdown__item--first': index === 0,\n 'bb-dropdown__item--last': index === _ctx.items.length - 1,\n }]),\n \"aria-role\": 'menuitem',\n \"data-dropdown-item\": true,\n disabled: item.disabled,\n href: item.href,\n id: item.id,\n to: item.to,\n onClick: item.onClick,\n onKeydown: item.onKeydown\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, item.key, {\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled || item.disabled,\n index: index,\n item: item,\n open: open.value,\n opening: opening.value,\n placement: _unref(placement),\n text: item.text\n }, () => [\n _renderSlot(_ctx.$slots, \"item\", {\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled || item.disabled,\n index: index,\n item: item,\n open: open.value,\n opening: opening.value,\n placement: _unref(placement),\n text: item.text\n }, () => [\n _createTextVNode(_toDisplayString(item.text), 1)\n ])\n ])\n ]),\n _: 2\n }, 1032, [\"class\", \"disabled\", \"href\", \"id\", \"to\", \"onClick\", \"onKeydown\"]),\n _renderSlot(_ctx.$slots, `item:append`, {\n closed: closed.value,\n closing: closing.value,\n disabled: _ctx.disabled || item.disabled,\n index: index,\n item: _ctx.items[index],\n open: open.value,\n opening: opening.value,\n placement: _unref(placement),\n text: item.text\n })\n ], 64))\n }), 128))\n ]),\n _renderSlot(_ctx.$slots, \"append\", {\n disabled: _ctx.disabled,\n placement: _unref(placement),\n open: open.value,\n opening: opening.value,\n closing: closing.value,\n closed: closed.value\n })\n ], 4)\n ], 14, _hoisted_1)\n ]))\n ], 16))\n}\n}\n\n})"],"names":["_hoisted_1","_hoisted_2","_hoisted_3","_sfc_main","_defineComponent","__props","props","id","nanoid","mappedItems","computed","firstFocusableIndex","el","lastFocusableIndex","findRightIndex","item","index","itemid","onClick","closeDropdown","nextElement","onKeydown","event","content","option","selectors","selector","indexOfPrevious","i","focusableElements","indexOfButton","wrapper","ref","floatingStyles","placement","useFloating","autoUpdate","flip","shift","opening","open","closing","closed","openDropdown","idToFocus","onClickDocument","target","isOutside","onDocumentFocus","onEsc","_a","button","wait","attributes","_ctx","_cache","_openBlock","_createElementBlock","_mergeProps","_createElementVNode","_renderSlot","_normalizeProps","_guardReactiveProps","_unref","_createBlock","_Teleport","_normalizeClass","_normalizeStyle","_Fragment","_renderList","_createVNode","BaseButton","_withCtx","_createTextVNode","_toDisplayString"],"mappings":"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"}