@vertz/ui-primitives 0.2.41 → 0.2.43

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 (232) hide show
  1. package/dist/shared/chunk-06m8prfg.js +52 -0
  2. package/dist/shared/chunk-0n9jj8xr.js +24 -0
  3. package/dist/shared/chunk-1ben27xq.js +317 -0
  4. package/dist/shared/chunk-1j2mj0sa.js +45 -0
  5. package/dist/shared/chunk-250hj18f.js +243 -0
  6. package/dist/shared/chunk-2h4m9c71.js +38 -0
  7. package/dist/shared/chunk-2sbx20hv.js +128 -0
  8. package/dist/shared/chunk-2ye674gr.js +70 -0
  9. package/dist/shared/chunk-34d8385y.js +15 -0
  10. package/dist/shared/chunk-4d7bm8h0.js +113 -0
  11. package/dist/shared/chunk-4zjgxr7x.js +157 -0
  12. package/dist/shared/chunk-5c150wvr.js +140 -0
  13. package/dist/shared/chunk-5gycdypd.js +58 -0
  14. package/dist/shared/chunk-6mm7fhp8.js +105 -0
  15. package/dist/shared/chunk-6zmnqvh6.js +109 -0
  16. package/dist/shared/{chunk-yy3ft5mb.js → chunk-7amn5d71.js} +2 -2
  17. package/dist/shared/chunk-7pbff2hg.js +118 -0
  18. package/dist/shared/chunk-7zpjshwz.js +194 -0
  19. package/dist/shared/chunk-993ff51d.js +155 -0
  20. package/dist/shared/chunk-9pdt5aw7.js +24 -0
  21. package/dist/shared/chunk-a71m4xkv.js +106 -0
  22. package/dist/shared/chunk-aj8m39pk.js +127 -0
  23. package/dist/shared/chunk-ajawpc05.js +305 -0
  24. package/dist/shared/chunk-b7mzwqhj.js +125 -0
  25. package/dist/shared/chunk-bb887de4.js +200 -0
  26. package/dist/shared/chunk-bfsmbrxc.js +111 -0
  27. package/dist/shared/chunk-c2f63m5n.js +56 -0
  28. package/dist/shared/chunk-c5r3s5km.js +263 -0
  29. package/dist/shared/chunk-caba5bhd.js +427 -0
  30. package/dist/shared/chunk-crym07yc.js +264 -0
  31. package/dist/shared/{chunk-5964gmv0.js → chunk-csjtyvam.js} +62 -88
  32. package/dist/shared/chunk-d6rtejz3.js +128 -0
  33. package/dist/shared/chunk-dvaf0bmq.js +140 -0
  34. package/dist/shared/chunk-dwkv9ya6.js +22 -0
  35. package/dist/shared/chunk-e0ckxrjg.js +41 -0
  36. package/dist/shared/chunk-ennxcymj.js +225 -0
  37. package/dist/shared/{chunk-1jd1n0dt.js → chunk-ey38de46.js} +19 -47
  38. package/dist/shared/chunk-f0v1gs5e.js +52 -0
  39. package/dist/shared/chunk-f86rsf84.js +231 -0
  40. package/dist/shared/{chunk-3sahbk4d.js → chunk-fdse46x5.js} +6 -1
  41. package/dist/shared/chunk-gj4hrssn.js +135 -0
  42. package/dist/shared/chunk-gyvq4gk9.js +24 -0
  43. package/dist/shared/chunk-hbnps9sq.js +229 -0
  44. package/dist/shared/{chunk-fhss32ya.js → chunk-hdmpyeq9.js} +43 -132
  45. package/dist/shared/chunk-hgnkd4he.js +256 -0
  46. package/dist/shared/chunk-hpcyffm7.js +185 -0
  47. package/dist/shared/chunk-hpmvwx0h.js +99 -0
  48. package/dist/shared/chunk-hz0e504p.js +69 -0
  49. package/dist/shared/chunk-hzk4wfq9.js +43 -0
  50. package/dist/shared/chunk-j7znzkpa.js +48 -0
  51. package/dist/shared/chunk-j9kxgrnn.js +167 -0
  52. package/dist/shared/chunk-jetwnv0w.js +130 -0
  53. package/dist/shared/chunk-jjdg26c1.js +155 -0
  54. package/dist/shared/chunk-k0m4yh86.js +123 -0
  55. package/dist/shared/chunk-k43q9cjr.js +82 -0
  56. package/dist/shared/chunk-k9k8tbr5.js +119 -0
  57. package/dist/shared/chunk-meaj7br1.js +232 -0
  58. package/dist/shared/chunk-mgj0n08k.js +34 -0
  59. package/dist/shared/chunk-mjz4rp6c.js +46 -0
  60. package/dist/shared/chunk-n4rr5gme.js +239 -0
  61. package/dist/shared/chunk-nk55etpp.js +65 -0
  62. package/dist/shared/chunk-nkh1ks3k.js +264 -0
  63. package/dist/shared/chunk-pgvpvbpe.js +26 -0
  64. package/dist/shared/chunk-pma8gnv7.js +178 -0
  65. package/dist/shared/chunk-q7xv6xze.js +131 -0
  66. package/dist/shared/chunk-qey801nq.js +22 -0
  67. package/dist/shared/chunk-s6b4c3tj.js +58 -0
  68. package/dist/shared/chunk-sq27a4h0.js +36 -0
  69. package/dist/shared/chunk-taa5pj15.js +103 -0
  70. package/dist/shared/chunk-tc5rpvyx.js +127 -0
  71. package/dist/shared/chunk-tescm0b3.js +192 -0
  72. package/dist/shared/chunk-tkftdwnq.js +71 -0
  73. package/dist/shared/chunk-tqhnjcfp.js +116 -0
  74. package/dist/shared/chunk-vfknb5ht.js +183 -0
  75. package/dist/shared/chunk-vsc369w3.js +185 -0
  76. package/dist/shared/chunk-whq9s8v5.js +301 -0
  77. package/dist/shared/{chunk-hze1f32t.js → chunk-wrqddgaj.js} +1 -1
  78. package/dist/shared/chunk-yzbmkx4r.js +155 -0
  79. package/dist/shared/chunk-zaen0ajc.js +347 -0
  80. package/dist/src/accordion/accordion-composed.js +1 -1
  81. package/dist/src/accordion/accordion.js +1 -1
  82. package/dist/src/alert/alert-composed.js +1 -1
  83. package/dist/src/alert-dialog/alert-dialog-composed.js +1 -1
  84. package/dist/src/alert-dialog/alert-dialog.js +1 -1
  85. package/dist/src/avatar/avatar-composed.js +1 -1
  86. package/dist/src/badge/badge-composed.js +1 -1
  87. package/dist/src/badge/badge.js +1 -1
  88. package/dist/src/breadcrumb/breadcrumb-composed.js +1 -1
  89. package/dist/src/button/button-composed.js +1 -1
  90. package/dist/src/button/button.js +1 -1
  91. package/dist/src/calendar/calendar-composed.js +1 -1
  92. package/dist/src/calendar/calendar.js +1 -1
  93. package/dist/src/card/card-composed.js +1 -1
  94. package/dist/src/carousel/carousel-composed.js +1 -1
  95. package/dist/src/carousel/carousel.js +1 -1
  96. package/dist/src/checkbox/checkbox-composed.js +1 -1
  97. package/dist/src/checkbox/checkbox.js +1 -1
  98. package/dist/src/collapsible/collapsible-composed.js +1 -1
  99. package/dist/src/collapsible/collapsible.js +1 -1
  100. package/dist/src/combobox/combobox-composed.js +1 -1
  101. package/dist/src/combobox/combobox.js +1 -1
  102. package/dist/src/command/command-composed.js +1 -1
  103. package/dist/src/command/command.js +1 -1
  104. package/dist/src/composed/with-styles.js +1 -1
  105. package/dist/src/context-menu/context-menu-composed.js +1 -1
  106. package/dist/src/context-menu/context-menu.js +1 -1
  107. package/dist/src/date-picker/date-picker-composed.js +1 -1
  108. package/dist/src/date-picker/date-picker.js +1 -1
  109. package/dist/src/dialog/dialog-composed.js +1 -1
  110. package/dist/src/dialog/dialog-stack-parts.js +1 -1
  111. package/dist/src/dialog/dialog.js +1 -1
  112. package/dist/src/dropdown-menu/dropdown-menu-composed.js +1 -1
  113. package/dist/src/dropdown-menu/dropdown-menu.js +1 -1
  114. package/dist/src/empty-state/empty-state-composed.js +1 -1
  115. package/dist/src/form-group/form-group-composed.js +1 -1
  116. package/dist/src/hover-card/hover-card-composed.js +1 -1
  117. package/dist/src/hover-card/hover-card.js +1 -1
  118. package/dist/src/input/input-composed.js +1 -1
  119. package/dist/src/label/label-composed.js +1 -1
  120. package/dist/src/list/list-composed.js +1 -1
  121. package/dist/src/menu/menu-composed.js +1 -1
  122. package/dist/src/menu/menu.js +1 -1
  123. package/dist/src/menubar/menubar-composed.js +1 -1
  124. package/dist/src/menubar/menubar.js +1 -1
  125. package/dist/src/navigation-menu/navigation-menu-composed.js +1 -1
  126. package/dist/src/navigation-menu/navigation-menu.js +1 -1
  127. package/dist/src/pagination/pagination-composed.js +1 -1
  128. package/dist/src/popover/popover-composed.js +1 -1
  129. package/dist/src/popover/popover.js +1 -1
  130. package/dist/src/progress/progress-composed.js +1 -1
  131. package/dist/src/progress/progress.js +1 -1
  132. package/dist/src/radio/radio-composed.js +1 -1
  133. package/dist/src/radio/radio.js +1 -1
  134. package/dist/src/resizable-panel/resizable-panel-composed.js +1 -1
  135. package/dist/src/resizable-panel/resizable-panel.js +1 -1
  136. package/dist/src/scroll-area/scroll-area-composed.js +1 -1
  137. package/dist/src/scroll-area/scroll-area.js +1 -1
  138. package/dist/src/select/select-composed.js +1 -1
  139. package/dist/src/select/select.js +1 -1
  140. package/dist/src/separator/separator-composed.js +1 -1
  141. package/dist/src/sheet/sheet-composed.js +1 -1
  142. package/dist/src/sheet/sheet.js +1 -1
  143. package/dist/src/skeleton/skeleton-composed.js +1 -1
  144. package/dist/src/slider/slider-composed.js +1 -1
  145. package/dist/src/slider/slider.js +1 -1
  146. package/dist/src/switch/switch-composed.js +1 -1
  147. package/dist/src/switch/switch.js +1 -1
  148. package/dist/src/table/table-composed.js +1 -1
  149. package/dist/src/tabs/tabs-composed.js +1 -1
  150. package/dist/src/tabs/tabs.js +1 -1
  151. package/dist/src/textarea/textarea-composed.js +1 -1
  152. package/dist/src/toast/toast.js +1 -1
  153. package/dist/src/toggle/toggle-composed.js +1 -1
  154. package/dist/src/toggle/toggle.js +1 -1
  155. package/dist/src/toggle-group/toggle-group-composed.js +1 -1
  156. package/dist/src/toggle-group/toggle-group.js +1 -1
  157. package/dist/src/tooltip/tooltip-composed.js +1 -1
  158. package/dist/src/tooltip/tooltip.js +1 -1
  159. package/package.json +3 -3
  160. package/dist/shared/chunk-144kbnmx.js +0 -95
  161. package/dist/shared/chunk-1ewxfgsa.js +0 -167
  162. package/dist/shared/chunk-1hm0mbke.js +0 -258
  163. package/dist/shared/chunk-22rt6ws9.js +0 -69
  164. package/dist/shared/chunk-2ssqz188.js +0 -162
  165. package/dist/shared/chunk-33he7ay9.js +0 -218
  166. package/dist/shared/chunk-3jack97k.js +0 -509
  167. package/dist/shared/chunk-75pegjs7.js +0 -26
  168. package/dist/shared/chunk-862x7dja.js +0 -398
  169. package/dist/shared/chunk-8pk1pn5h.js +0 -215
  170. package/dist/shared/chunk-8t0nm721.js +0 -152
  171. package/dist/shared/chunk-94twh4s4.js +0 -28
  172. package/dist/shared/chunk-9yb26c0w.js +0 -232
  173. package/dist/shared/chunk-a82r2pnq.js +0 -67
  174. package/dist/shared/chunk-axpbdpgx.js +0 -177
  175. package/dist/shared/chunk-b3j6mym6.js +0 -203
  176. package/dist/shared/chunk-b4zzg457.js +0 -410
  177. package/dist/shared/chunk-b9qxfcsy.js +0 -60
  178. package/dist/shared/chunk-bc2qqkhr.js +0 -194
  179. package/dist/shared/chunk-bv12nkdm.js +0 -149
  180. package/dist/shared/chunk-bvxc1ww4.js +0 -164
  181. package/dist/shared/chunk-czv0kqj4.js +0 -107
  182. package/dist/shared/chunk-d83ag07h.js +0 -189
  183. package/dist/shared/chunk-de18ashk.js +0 -134
  184. package/dist/shared/chunk-dvk4h36t.js +0 -140
  185. package/dist/shared/chunk-dxvnerw2.js +0 -353
  186. package/dist/shared/chunk-e399pzdq.js +0 -241
  187. package/dist/shared/chunk-e4qha9as.js +0 -180
  188. package/dist/shared/chunk-eb2d9v6k.js +0 -68
  189. package/dist/shared/chunk-ect26sp5.js +0 -353
  190. package/dist/shared/chunk-ev367pq3.js +0 -102
  191. package/dist/shared/chunk-fjykbv0v.js +0 -214
  192. package/dist/shared/chunk-gdddk6nh.js +0 -96
  193. package/dist/shared/chunk-ghkw5bjq.js +0 -55
  194. package/dist/shared/chunk-hfjtkytb.js +0 -310
  195. package/dist/shared/chunk-hpvjfj0j.js +0 -31
  196. package/dist/shared/chunk-jpyjk616.js +0 -52
  197. package/dist/shared/chunk-k6d53tne.js +0 -206
  198. package/dist/shared/chunk-knzg86am.js +0 -168
  199. package/dist/shared/chunk-ktbf6xrt.js +0 -179
  200. package/dist/shared/chunk-m8y2p66x.js +0 -252
  201. package/dist/shared/chunk-metxdt5x.js +0 -28
  202. package/dist/shared/chunk-mgae1d93.js +0 -157
  203. package/dist/shared/chunk-mtx2cfbx.js +0 -175
  204. package/dist/shared/chunk-n436p5cb.js +0 -260
  205. package/dist/shared/chunk-nj420k31.js +0 -54
  206. package/dist/shared/chunk-nsmvdxgp.js +0 -213
  207. package/dist/shared/chunk-pcms04vq.js +0 -162
  208. package/dist/shared/chunk-pqskzq8t.js +0 -79
  209. package/dist/shared/chunk-pwr60kyd.js +0 -321
  210. package/dist/shared/chunk-pzknpa1y.js +0 -327
  211. package/dist/shared/chunk-q77y3rg4.js +0 -189
  212. package/dist/shared/chunk-qhnany7w.js +0 -179
  213. package/dist/shared/chunk-rdr0rtpr.js +0 -131
  214. package/dist/shared/chunk-rj52ty6r.js +0 -147
  215. package/dist/shared/chunk-rnqc7735.js +0 -125
  216. package/dist/shared/chunk-rtk30950.js +0 -202
  217. package/dist/shared/chunk-s0xgd8vg.js +0 -266
  218. package/dist/shared/chunk-s415735j.js +0 -357
  219. package/dist/shared/chunk-s62e7jf4.js +0 -30
  220. package/dist/shared/chunk-snd8e6r8.js +0 -418
  221. package/dist/shared/chunk-spng4yb9.js +0 -73
  222. package/dist/shared/chunk-t887wwjc.js +0 -168
  223. package/dist/shared/chunk-tn0m98j8.js +0 -42
  224. package/dist/shared/chunk-v0b5pkcq.js +0 -30
  225. package/dist/shared/chunk-v5tj7veh.js +0 -284
  226. package/dist/shared/chunk-vkscwzpr.js +0 -294
  227. package/dist/shared/chunk-vv187snj.js +0 -112
  228. package/dist/shared/chunk-xv4wd0kf.js +0 -293
  229. package/dist/shared/chunk-y1hpsqzy.js +0 -185
  230. package/dist/shared/chunk-yfzddvxc.js +0 -71
  231. package/dist/shared/chunk-yzgzx2dh.js +0 -311
  232. package/dist/shared/chunk-z5j7ztf2.js +0 -467
@@ -1,162 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-q7xbcj9q.js";
4
- import {
5
- uniqueId
6
- } from "./chunk-8y1jf6xr.js";
7
- import {
8
- Keys,
9
- isKey
10
- } from "./chunk-7867pr13.js";
11
-
12
- // src/radio/radio-composed.tsx
13
- import { computed, signal } from "@vertz/ui";
14
- import { __append, __attr, __child, __conditional, __discardMountFrame, __element, __enterChildren, __exitChildren, __flushMountFrame, __on, __pushMountFrame, __styleStr } from "@vertz/ui/internals";
15
- import { createContext, useContext } from "@vertz/ui";
16
- var RadioGroupContext = createContext(undefined, "@vertz/ui-primitives::RadioGroupContext");
17
- function RadioGroupItem(__props) {
18
- const __mfDepth = __pushMountFrame();
19
- try {
20
- const ctx = useContext(RadioGroupContext);
21
- if (!ctx) {
22
- throw new Error("<RadioGroup.Item> must be used inside <RadioGroup>. " + "Ensure it is a direct or nested child of the RadioGroup root component.");
23
- }
24
- const isDisabled = computed(() => __props.disabled ?? false);
25
- const isChecked = computed(() => ctx.isSelected(__props.value));
26
- const __mfResult0 = (() => {
27
- const __el0 = __element("div");
28
- {
29
- const __v = { display: "flex", alignItems: "center", gap: "0.5rem", cursor: "pointer" };
30
- if (__v != null && __v !== false)
31
- __el0.setAttribute("style", typeof __v === "object" ? __styleStr(__v) : __v === true ? "" : String(__v));
32
- }
33
- __el0.setAttribute("data-radiogroup-item", "");
34
- __on(__el0, "click", () => {
35
- if (!isDisabled.value)
36
- ctx.select(__props.value);
37
- });
38
- __enterChildren(__el0);
39
- __append(__el0, (() => {
40
- const __el1 = __element("div");
41
- __el1.setAttribute("role", "radio");
42
- __attr(__el1, "data-value", () => __props.value);
43
- __attr(__el1, "aria-checked", () => isChecked.value ? "true" : "false");
44
- __attr(__el1, "data-state", () => isChecked.value ? "checked" : "unchecked");
45
- __attr(__el1, "tabindex", () => isChecked.value ? "0" : "-1");
46
- __attr(__el1, "aria-disabled", () => isDisabled.value ? "true" : undefined);
47
- __attr(__el1, "class", () => cn(ctx.classes?.item));
48
- __attr(__el1, "style", () => ({ pointerEvents: isDisabled.value ? "none" : undefined, position: "relative" }));
49
- __enterChildren(__el1);
50
- __append(__el1, (() => {
51
- const __el2 = __element("span");
52
- __el2.setAttribute("data-part", "indicator");
53
- __attr(__el2, "data-state", () => isChecked.value ? "checked" : "unchecked");
54
- __attr(__el2, "class", () => cn(ctx.classes?.indicator));
55
- __enterChildren(__el2);
56
- __append(__el2, (() => {
57
- const __el3 = __element("span");
58
- __el3.setAttribute("data-part", "indicator-icon");
59
- __attr(__el3, "class", () => cn(ctx.classes?.indicatorIcon));
60
- return __el3;
61
- })());
62
- __exitChildren();
63
- return __el2;
64
- })());
65
- __exitChildren();
66
- return __el1;
67
- })());
68
- __append(__el0, __conditional(() => __props.children, () => (() => {
69
- const __el4 = __element("span");
70
- __enterChildren(__el4);
71
- __append(__el4, __child(() => __props.children));
72
- __exitChildren();
73
- return __el4;
74
- })(), () => null));
75
- __exitChildren();
76
- return __el0;
77
- })();
78
- __flushMountFrame();
79
- return __mfResult0;
80
- } catch (__mfErr) {
81
- __discardMountFrame(__mfDepth);
82
- throw __mfErr;
83
- }
84
- }
85
- function ComposedRadioGroupRoot(__props) {
86
- const __mfDepth = __pushMountFrame();
87
- try {
88
- let select = function(value) {
89
- selectedValue.value = value;
90
- __props.onValueChange?.(value);
91
- };
92
- const selectedValue = signal(__props.defaultValue ?? "", "selectedValue");
93
- const ctx = {
94
- isSelected: (value) => selectedValue.value === value,
95
- classes: __props.classes,
96
- select
97
- };
98
- const __mfResult0 = RadioGroupContext.Provider({ get value() {
99
- return ctx;
100
- }, children: () => (() => {
101
- const __el0 = __element("div");
102
- __el0.setAttribute("role", "radiogroup");
103
- {
104
- const __v = uniqueId("radiogroup");
105
- if (__v != null && __v !== false)
106
- __el0.setAttribute("id", __v === true ? "" : __v);
107
- }
108
- __attr(__el0, "class", () => cn(__props.classes?.root));
109
- __el0.setAttribute("data-radiogroup-root", "");
110
- __on(__el0, "keydown", (event) => {
111
- const root = event.currentTarget;
112
- const items = [...root.querySelectorAll('[role="radio"]')];
113
- const currentIdx = items.indexOf(document.activeElement);
114
- if (currentIdx < 0)
115
- return;
116
- const len = items.length;
117
- let nextIdx = -1;
118
- if (isKey(event, Keys.ArrowDown, Keys.ArrowRight)) {
119
- event.preventDefault();
120
- nextIdx = (currentIdx + 1) % len;
121
- } else if (isKey(event, Keys.ArrowUp, Keys.ArrowLeft)) {
122
- event.preventDefault();
123
- nextIdx = (currentIdx - 1 + len) % len;
124
- } else if (isKey(event, Keys.Home)) {
125
- event.preventDefault();
126
- nextIdx = 0;
127
- } else if (isKey(event, Keys.End)) {
128
- event.preventDefault();
129
- nextIdx = len - 1;
130
- }
131
- if (nextIdx < 0)
132
- return;
133
- const direction = isKey(event, Keys.End, Keys.ArrowUp, Keys.ArrowLeft) ? -1 : 1;
134
- const startIdx = nextIdx;
135
- while (items[nextIdx]?.getAttribute("aria-disabled") === "true") {
136
- nextIdx = (nextIdx + direction + len) % len;
137
- if (nextIdx === startIdx)
138
- return;
139
- }
140
- const nextValue = items[nextIdx]?.getAttribute("data-value");
141
- if (nextValue != null) {
142
- select(nextValue);
143
- items[nextIdx]?.focus();
144
- }
145
- });
146
- __enterChildren(__el0);
147
- __append(__el0, __child(() => __props.children));
148
- __exitChildren();
149
- return __el0;
150
- })() });
151
- __flushMountFrame();
152
- return __mfResult0;
153
- } catch (__mfErr) {
154
- __discardMountFrame(__mfDepth);
155
- throw __mfErr;
156
- }
157
- }
158
- var ComposedRadioGroup = Object.assign(ComposedRadioGroupRoot, {
159
- Item: RadioGroupItem
160
- });
161
-
162
- export { ComposedRadioGroup };
@@ -1,218 +0,0 @@
1
- import {
2
- createDismiss
3
- } from "./chunk-a6wp8c32.js";
4
- import {
5
- createFloatingPosition,
6
- virtualElement
7
- } from "./chunk-vef3sepw.js";
8
- import {
9
- uniqueId
10
- } from "./chunk-8y1jf6xr.js";
11
- import {
12
- Keys,
13
- handleListNavigation,
14
- isKey
15
- } from "./chunk-7867pr13.js";
16
- import {
17
- setDataState,
18
- setHidden,
19
- setHiddenAnimated
20
- } from "./chunk-vevfhpc9.js";
21
- import {
22
- applyAttrs
23
- } from "./chunk-2db2dnp3.js";
24
-
25
- // src/context-menu/context-menu.tsx
26
- import { __discardMountFrame, __element, __enterChildren, __exitChildren, __flushMountFrame, __insert, __on, __pushMountFrame, __styleStr } from "@vertz/ui/internals";
27
- import { signal } from "@vertz/ui";
28
- function ContextMenuRoot(options = {}) {
29
- const __mfDepth = __pushMountFrame();
30
- try {
31
- let handleClickOutside = function(event) {
32
- const target = event.target;
33
- if (!trigger.contains(target) && !content.contains(target)) {
34
- close();
35
- }
36
- }, updateActiveItem = function(index) {
37
- for (let i = 0;i < items.length; i++) {
38
- items[i]?.setAttribute("tabindex", i === index ? "0" : "-1");
39
- }
40
- }, openMenu = function(x, y) {
41
- state.open.value = true;
42
- setHidden(content, false);
43
- setDataState(content, "open");
44
- if (positioning) {
45
- const result = createFloatingPosition(virtualElement(x, y), content, {
46
- strategy: "fixed",
47
- ...positioning
48
- });
49
- floatingCleanup = result.cleanup;
50
- dismissCleanup = createDismiss({
51
- onDismiss: close,
52
- insideElements: [trigger, content],
53
- escapeKey: false
54
- });
55
- } else {
56
- content.style.left = `${x}px`;
57
- content.style.top = `${y}px`;
58
- document.addEventListener("mousedown", handleClickOutside);
59
- }
60
- state.activeIndex.value = 0;
61
- updateActiveItem(0);
62
- items[0]?.focus();
63
- }, close = function() {
64
- state.open.value = false;
65
- setDataState(content, "closed");
66
- setHiddenAnimated(content, true);
67
- if (positioning) {
68
- floatingCleanup?.();
69
- floatingCleanup = null;
70
- dismissCleanup?.();
71
- dismissCleanup = null;
72
- } else {
73
- document.removeEventListener("mousedown", handleClickOutside);
74
- }
75
- }, createItem = function(value, label) {
76
- const item = (() => {
77
- const __el2 = __element("div");
78
- __el2.setAttribute("role", "menuitem");
79
- {
80
- const __v = value;
81
- if (__v != null && __v !== false)
82
- __el2.setAttribute("data-value", __v === true ? "" : __v);
83
- }
84
- __el2.setAttribute("tabindex", "-1");
85
- __on(__el2, "click", () => {
86
- onSelect?.(value);
87
- close();
88
- });
89
- __enterChildren(__el2);
90
- __insert(__el2, label ?? value);
91
- __exitChildren();
92
- return __el2;
93
- })();
94
- items.push(item);
95
- return item;
96
- }, Item = function(value, label) {
97
- return createItem(value, label);
98
- }, Group = function(label) {
99
- const el = (() => {
100
- const __el3 = __element("div");
101
- __el3.setAttribute("role", "group");
102
- {
103
- const __v = label;
104
- if (__v != null && __v !== false)
105
- __el3.setAttribute("aria-label", __v === true ? "" : __v);
106
- }
107
- return __el3;
108
- })();
109
- return {
110
- el,
111
- Item: (value, itemLabel) => createItem(value, itemLabel)
112
- };
113
- }, Separator = function() {
114
- return (() => {
115
- const __el4 = __element("hr");
116
- __el4.setAttribute("data-v-id", "ContextMenuRoot");
117
- __el4.setAttribute("role", "separator");
118
- return __el4;
119
- })();
120
- }, Label = function(text) {
121
- return (() => {
122
- const __el5 = __element("div");
123
- __el5.setAttribute("role", "none");
124
- __enterChildren(__el5);
125
- __insert(__el5, text);
126
- __exitChildren();
127
- return __el5;
128
- })();
129
- };
130
- const { onSelect, positioning, ...attrs } = options;
131
- const state = {
132
- open: signal(false),
133
- activeIndex: signal(-1)
134
- };
135
- const items = [];
136
- let floatingCleanup = null;
137
- let dismissCleanup = null;
138
- const trigger = (() => {
139
- const __el0 = __element("div");
140
- __on(__el0, "contextmenu", (event) => {
141
- event.preventDefault();
142
- if (state.open.peek()) {
143
- close();
144
- }
145
- openMenu(event.clientX, event.clientY);
146
- });
147
- return __el0;
148
- })();
149
- const contentId = uniqueId("ctx-menu");
150
- const content = (() => {
151
- const __el1 = __element("div");
152
- __el1.setAttribute("role", "menu");
153
- {
154
- const __v = contentId;
155
- if (__v != null && __v !== false)
156
- __el1.setAttribute("id", __v === true ? "" : __v);
157
- }
158
- {
159
- const __v = { position: "fixed", display: "none" };
160
- if (__v != null && __v !== false)
161
- __el1.setAttribute("style", typeof __v === "object" ? __styleStr(__v) : __v === true ? "" : String(__v));
162
- }
163
- __el1.setAttribute("aria-hidden", "true");
164
- __el1.setAttribute("data-state", "closed");
165
- __on(__el1, "keydown", (event) => {
166
- if (isKey(event, Keys.Escape)) {
167
- event.preventDefault();
168
- close();
169
- return;
170
- }
171
- if (isKey(event, Keys.Enter, Keys.Space)) {
172
- event.preventDefault();
173
- const active = items[state.activeIndex.peek()];
174
- if (active) {
175
- const val = active.getAttribute("data-value");
176
- if (val !== null) {
177
- onSelect?.(val);
178
- close();
179
- }
180
- }
181
- return;
182
- }
183
- const result = handleListNavigation(event, items, { orientation: "vertical" });
184
- if (result) {
185
- const idx = items.indexOf(result);
186
- if (idx >= 0) {
187
- state.activeIndex.value = idx;
188
- updateActiveItem(idx);
189
- }
190
- return;
191
- }
192
- if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
193
- const char = event.key.toLowerCase();
194
- const match = items.find((item) => item.textContent?.toLowerCase().startsWith(char));
195
- if (match) {
196
- const idx = items.indexOf(match);
197
- state.activeIndex.value = idx;
198
- updateActiveItem(idx);
199
- match.focus();
200
- }
201
- }
202
- });
203
- return __el1;
204
- })();
205
- applyAttrs(trigger, attrs);
206
- const __mfResult0 = { trigger, content, state, Item, Group, Separator, Label };
207
- __flushMountFrame();
208
- return __mfResult0;
209
- } catch (__mfErr) {
210
- __discardMountFrame(__mfDepth);
211
- throw __mfErr;
212
- }
213
- }
214
- var ContextMenu = {
215
- Root: ContextMenuRoot
216
- };
217
-
218
- export { ContextMenu };