@vertz/ui-primitives 0.2.22 → 0.2.24

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 (236) hide show
  1. package/dist/shared/chunk-00fqgnq1.js +218 -0
  2. package/dist/shared/chunk-1hm0mbke.js +258 -0
  3. package/dist/shared/chunk-20kwns82.js +293 -0
  4. package/dist/shared/chunk-3jack97k.js +509 -0
  5. package/dist/shared/chunk-455p0jbk.js +241 -0
  6. package/dist/shared/chunk-4gyg71bn.js +178 -0
  7. package/dist/shared/chunk-4z006v1j.js +467 -0
  8. package/dist/shared/chunk-585ysr70.js +149 -0
  9. package/dist/shared/chunk-67sn29eh.js +125 -0
  10. package/dist/shared/chunk-75pegjs7.js +26 -0
  11. package/dist/shared/chunk-7a2nqmeh.js +167 -0
  12. package/dist/shared/chunk-7wem1bhb.js +252 -0
  13. package/dist/shared/chunk-8evj43jn.js +284 -0
  14. package/dist/shared/chunk-8t0nm721.js +152 -0
  15. package/dist/shared/chunk-94twh4s4.js +28 -0
  16. package/dist/shared/chunk-98y1sw9y.js +398 -0
  17. package/dist/shared/chunk-99tk72t3.js +69 -0
  18. package/dist/shared/chunk-9eedsnnk.js +164 -0
  19. package/dist/shared/chunk-9hv3vc72.js +215 -0
  20. package/dist/shared/chunk-aa3w85hn.js +321 -0
  21. package/dist/shared/chunk-axpbdpgx.js +177 -0
  22. package/dist/shared/chunk-b4zzg457.js +410 -0
  23. package/dist/shared/chunk-brk0drrk.js +202 -0
  24. package/dist/shared/chunk-czv0kqj4.js +107 -0
  25. package/dist/shared/chunk-d83ag07h.js +189 -0
  26. package/dist/shared/chunk-de18ashk.js +134 -0
  27. package/dist/shared/chunk-dvk4h36t.js +140 -0
  28. package/dist/shared/chunk-e1jcf22s.js +79 -0
  29. package/dist/shared/chunk-e3h0ddmx.js +168 -0
  30. package/dist/shared/chunk-e6660g7e.js +179 -0
  31. package/dist/shared/chunk-eq4d9b0w.js +147 -0
  32. package/dist/shared/chunk-ev367pq3.js +102 -0
  33. package/dist/shared/chunk-f0wy7k56.js +183 -0
  34. package/dist/shared/chunk-fjykbv0v.js +214 -0
  35. package/dist/shared/chunk-ghkw5bjq.js +55 -0
  36. package/dist/shared/chunk-gqb1n1hj.js +60 -0
  37. package/dist/shared/chunk-hdvdfd1c.js +96 -0
  38. package/dist/shared/chunk-hfjtkytb.js +310 -0
  39. package/dist/shared/chunk-hpvjfj0j.js +31 -0
  40. package/dist/shared/chunk-hxmxvp56.js +67 -0
  41. package/dist/shared/chunk-j9m2f0rd.js +162 -0
  42. package/dist/shared/chunk-jdygp28a.js +260 -0
  43. package/dist/shared/chunk-jpyjk616.js +52 -0
  44. package/dist/shared/chunk-jqre4qtw.js +180 -0
  45. package/dist/shared/{chunk-myq79qew.js → chunk-jsa3byag.js} +48 -28
  46. package/dist/shared/chunk-jzy1bkdk.js +203 -0
  47. package/dist/shared/chunk-knzg86am.js +168 -0
  48. package/dist/shared/chunk-kskxxc2q.js +228 -0
  49. package/dist/shared/chunk-metxdt5x.js +28 -0
  50. package/dist/shared/chunk-mhn2aazf.js +353 -0
  51. package/dist/shared/chunk-mtx2cfbx.js +175 -0
  52. package/dist/shared/chunk-nj420k31.js +54 -0
  53. package/dist/shared/chunk-nsmvdxgp.js +213 -0
  54. package/dist/shared/{chunk-w9dag6ce.js → chunk-pdzmg245.js} +133 -85
  55. package/dist/shared/chunk-pzknpa1y.js +327 -0
  56. package/dist/shared/chunk-q1ff3xp3.js +95 -0
  57. package/dist/shared/chunk-q7xbcj9q.js +7 -0
  58. package/dist/shared/chunk-qhnany7w.js +179 -0
  59. package/dist/shared/chunk-qrm43tr3.js +357 -0
  60. package/dist/shared/{chunk-jda3v59q.js → chunk-qsp7sfhp.js} +2 -2
  61. package/dist/shared/{chunk-dhyr0s9n.js → chunk-qwqnjjg8.js} +1 -1
  62. package/dist/shared/chunk-r0rz7z03.js +266 -0
  63. package/dist/shared/chunk-r3ngaa64.js +418 -0
  64. package/dist/shared/chunk-r3pffzss.js +13 -0
  65. package/dist/shared/chunk-rrt62bp0.js +353 -0
  66. package/dist/shared/chunk-s24gkmna.js +131 -0
  67. package/dist/shared/chunk-s62e7jf4.js +30 -0
  68. package/dist/shared/chunk-spng4yb9.js +73 -0
  69. package/dist/shared/chunk-tn0m98j8.js +42 -0
  70. package/dist/shared/chunk-v0b5pkcq.js +30 -0
  71. package/dist/shared/chunk-v11kd39k.js +162 -0
  72. package/dist/shared/{chunk-0mcr52hc.js → chunk-vef3sepw.js} +17 -1
  73. package/dist/shared/chunk-vkscwzpr.js +294 -0
  74. package/dist/shared/chunk-vv187snj.js +112 -0
  75. package/dist/shared/chunk-vy874zxe.js +68 -0
  76. package/dist/shared/chunk-wqsek87j.js +311 -0
  77. package/dist/shared/chunk-wtkxz2te.js +157 -0
  78. package/dist/shared/chunk-y1hpsqzy.js +185 -0
  79. package/dist/shared/chunk-y4mmmayp.js +206 -0
  80. package/dist/shared/chunk-yfzddvxc.js +71 -0
  81. package/dist/src/accordion/accordion-composed.d.ts +30 -0
  82. package/dist/src/accordion/accordion-composed.js +6 -0
  83. package/dist/src/accordion/accordion.js +1 -1
  84. package/dist/src/alert/alert-composed.d.ts +26 -0
  85. package/dist/src/alert/alert-composed.js +6 -0
  86. package/dist/src/alert-dialog/alert-dialog-composed.d.ts +40 -0
  87. package/dist/src/alert-dialog/alert-dialog-composed.js +6 -0
  88. package/dist/src/alert-dialog/alert-dialog.js +1 -1
  89. package/dist/src/avatar/avatar-composed.d.ts +33 -0
  90. package/dist/src/avatar/avatar-composed.js +6 -0
  91. package/dist/src/badge/badge-composed.d.ts +33 -0
  92. package/dist/src/badge/badge-composed.js +6 -0
  93. package/dist/src/badge/badge.js +1 -1
  94. package/dist/src/breadcrumb/breadcrumb-composed.d.ts +34 -0
  95. package/dist/src/breadcrumb/breadcrumb-composed.js +6 -0
  96. package/dist/src/button/button-composed.d.ts +34 -0
  97. package/dist/src/button/button-composed.js +6 -0
  98. package/dist/src/button/button.js +1 -1
  99. package/dist/src/calendar/calendar-composed.d.ts +42 -0
  100. package/dist/src/calendar/calendar-composed.js +6 -0
  101. package/dist/src/calendar/calendar.js +1 -1
  102. package/dist/src/card/card-composed.d.ts +34 -0
  103. package/dist/src/card/card-composed.js +6 -0
  104. package/dist/src/carousel/carousel-composed.d.ts +32 -0
  105. package/dist/src/carousel/carousel-composed.js +6 -0
  106. package/dist/src/carousel/carousel.js +1 -1
  107. package/dist/src/checkbox/checkbox-composed.d.ts +18 -0
  108. package/dist/src/checkbox/checkbox-composed.js +6 -0
  109. package/dist/src/checkbox/checkbox.js +1 -1
  110. package/dist/src/collapsible/collapsible-composed.d.ts +26 -0
  111. package/dist/src/collapsible/collapsible-composed.js +6 -0
  112. package/dist/src/collapsible/collapsible.js +1 -1
  113. package/dist/src/combobox/combobox-composed.d.ts +30 -0
  114. package/dist/src/combobox/combobox-composed.js +6 -0
  115. package/dist/src/combobox/combobox.js +1 -1
  116. package/dist/src/command/command-composed.d.ts +67 -0
  117. package/dist/src/command/command-composed.js +6 -0
  118. package/dist/src/command/command.js +1 -1
  119. package/dist/src/composed/with-styles.d.ts +38 -0
  120. package/dist/src/composed/with-styles.js +6 -0
  121. package/dist/src/context-menu/context-menu-composed.d.ts +51 -0
  122. package/dist/src/context-menu/context-menu-composed.js +6 -0
  123. package/dist/src/context-menu/context-menu.js +1 -1
  124. package/dist/src/date-picker/date-picker-composed.d.ts +77 -0
  125. package/dist/src/date-picker/date-picker-composed.js +6 -0
  126. package/dist/src/date-picker/date-picker.js +1 -1
  127. package/dist/src/dialog/dialog-composed.d.ts +36 -0
  128. package/dist/src/dialog/dialog-composed.js +6 -0
  129. package/dist/src/dialog/dialog-stack-parts.d.ts +16 -0
  130. package/dist/src/dialog/dialog-stack-parts.js +18 -0
  131. package/dist/src/dialog/dialog.js +1 -1
  132. package/dist/src/dropdown-menu/dropdown-menu-composed.d.ts +51 -0
  133. package/dist/src/dropdown-menu/dropdown-menu-composed.js +6 -0
  134. package/dist/src/dropdown-menu/dropdown-menu.js +1 -1
  135. package/dist/src/empty-state/empty-state-composed.d.ts +30 -0
  136. package/dist/src/empty-state/empty-state-composed.js +6 -0
  137. package/dist/src/form-group/form-group-composed.d.ts +24 -0
  138. package/dist/src/form-group/form-group-composed.js +6 -0
  139. package/dist/src/hover-card/hover-card-composed.d.ts +38 -0
  140. package/dist/src/hover-card/hover-card-composed.js +6 -0
  141. package/dist/src/hover-card/hover-card.js +1 -1
  142. package/dist/src/index.d.ts +1284 -804
  143. package/dist/src/index.js +78 -5281
  144. package/dist/src/input/input-composed.d.ts +35 -0
  145. package/dist/src/input/input-composed.js +6 -0
  146. package/dist/src/label/label-composed.d.ts +32 -0
  147. package/dist/src/label/label-composed.js +6 -0
  148. package/dist/src/menu/menu-composed.d.ts +51 -0
  149. package/dist/src/menu/menu-composed.js +6 -0
  150. package/dist/src/menu/menu.js +1 -1
  151. package/dist/src/menubar/menubar-composed.d.ts +56 -0
  152. package/dist/src/menubar/menubar-composed.js +6 -0
  153. package/dist/src/menubar/menubar.js +1 -1
  154. package/dist/src/navigation-menu/navigation-menu-composed.d.ts +56 -0
  155. package/dist/src/navigation-menu/navigation-menu-composed.js +6 -0
  156. package/dist/src/navigation-menu/navigation-menu.js +1 -1
  157. package/dist/src/pagination/pagination-composed.d.ts +30 -0
  158. package/dist/src/pagination/pagination-composed.js +6 -0
  159. package/dist/src/popover/popover-composed.d.ts +36 -0
  160. package/dist/src/popover/popover-composed.js +6 -0
  161. package/dist/src/popover/popover.js +1 -1
  162. package/dist/src/progress/progress-composed.d.ts +17 -0
  163. package/dist/src/progress/progress-composed.js +6 -0
  164. package/dist/src/progress/progress.js +1 -1
  165. package/dist/src/radio/radio-composed.d.ts +24 -0
  166. package/dist/src/radio/radio-composed.js +6 -0
  167. package/dist/src/radio/radio.js +1 -1
  168. package/dist/src/resizable-panel/resizable-panel-composed.d.ts +33 -0
  169. package/dist/src/resizable-panel/resizable-panel-composed.js +6 -0
  170. package/dist/src/resizable-panel/resizable-panel.js +1 -1
  171. package/dist/src/scroll-area/scroll-area-composed.d.ts +17 -0
  172. package/dist/src/scroll-area/scroll-area-composed.js +6 -0
  173. package/dist/src/scroll-area/scroll-area.js +1 -1
  174. package/dist/src/select/select-composed.d.ts +53 -0
  175. package/dist/src/select/select-composed.js +6 -0
  176. package/dist/src/select/select.js +1 -1
  177. package/dist/src/separator/separator-composed.d.ts +32 -0
  178. package/dist/src/separator/separator-composed.js +6 -0
  179. package/dist/src/sheet/sheet-composed.d.ts +34 -0
  180. package/dist/src/sheet/sheet-composed.js +6 -0
  181. package/dist/src/sheet/sheet.js +1 -1
  182. package/dist/src/skeleton/skeleton-composed.d.ts +65 -0
  183. package/dist/src/skeleton/skeleton-composed.js +6 -0
  184. package/dist/src/slider/slider-composed.d.ts +22 -0
  185. package/dist/src/slider/slider-composed.js +6 -0
  186. package/dist/src/slider/slider.js +1 -1
  187. package/dist/src/switch/switch-composed.d.ts +17 -0
  188. package/dist/src/switch/switch-composed.js +6 -0
  189. package/dist/src/switch/switch.js +1 -1
  190. package/dist/src/table/table-composed.d.ts +34 -0
  191. package/dist/src/table/table-composed.js +6 -0
  192. package/dist/src/tabs/tabs-composed.d.ts +33 -0
  193. package/dist/src/tabs/tabs-composed.js +6 -0
  194. package/dist/src/tabs/tabs.js +1 -1
  195. package/dist/src/textarea/textarea-composed.d.ts +35 -0
  196. package/dist/src/textarea/textarea-composed.js +6 -0
  197. package/dist/src/toast/toast.js +1 -1
  198. package/dist/src/toggle/toggle-composed.d.ts +16 -0
  199. package/dist/src/toggle/toggle-composed.js +6 -0
  200. package/dist/src/toggle/toggle.js +1 -1
  201. package/dist/src/toggle-group/toggle-group-composed.d.ts +24 -0
  202. package/dist/src/toggle-group/toggle-group-composed.js +6 -0
  203. package/dist/src/toggle-group/toggle-group.js +1 -1
  204. package/dist/src/tooltip/tooltip-composed.d.ts +36 -0
  205. package/dist/src/tooltip/tooltip-composed.js +6 -0
  206. package/dist/src/tooltip/tooltip.js +1 -1
  207. package/dist/src/utils.js +1 -1
  208. package/package.json +3 -3
  209. package/dist/shared/chunk-07yzsaaw.js +0 -165
  210. package/dist/shared/chunk-279bzynx.js +0 -132
  211. package/dist/shared/chunk-27xs9apd.js +0 -288
  212. package/dist/shared/chunk-2k8gxzdf.js +0 -151
  213. package/dist/shared/chunk-3rp73gkd.js +0 -175
  214. package/dist/shared/chunk-4rf1m34c.js +0 -267
  215. package/dist/shared/chunk-56reyd5r.js +0 -64
  216. package/dist/shared/chunk-7bxsf80c.js +0 -60
  217. package/dist/shared/chunk-8qtexw5s.js +0 -199
  218. package/dist/shared/chunk-9ezgd78r.js +0 -142
  219. package/dist/shared/chunk-ajpj10z0.js +0 -282
  220. package/dist/shared/chunk-c46v0fsw.js +0 -117
  221. package/dist/shared/chunk-e4mm5e59.js +0 -178
  222. package/dist/shared/chunk-fqa5bwn1.js +0 -128
  223. package/dist/shared/chunk-g8hnc95b.js +0 -219
  224. package/dist/shared/chunk-j2tdpxgc.js +0 -185
  225. package/dist/shared/chunk-k8nabsxm.js +0 -330
  226. package/dist/shared/chunk-kcnq15je.js +0 -175
  227. package/dist/shared/chunk-mqs4qq0b.js +0 -46
  228. package/dist/shared/chunk-pg2yjn8f.js +0 -88
  229. package/dist/shared/chunk-rb53v045.js +0 -71
  230. package/dist/shared/chunk-s6a2yph8.js +0 -239
  231. package/dist/shared/chunk-vhx3sqw6.js +0 -196
  232. package/dist/shared/chunk-w318par6.js +0 -204
  233. package/dist/shared/chunk-wcdq7bew.js +0 -133
  234. package/dist/shared/chunk-z0gwkzgp.js +0 -34
  235. package/dist/shared/chunk-z850et33.js +0 -161
  236. package/dist/shared/chunk-zyfc6cx3.js +0 -61
@@ -1,185 +0,0 @@
1
- import {
2
- setRovingTabindex
3
- } from "./chunk-e2v1c9ex.js";
4
- import {
5
- handleListNavigation
6
- } from "./chunk-7867pr13.js";
7
- import {
8
- setDataState,
9
- setHidden,
10
- setSelected
11
- } from "./chunk-vevfhpc9.js";
12
- import {
13
- uniqueId
14
- } from "./chunk-8y1jf6xr.js";
15
- import {
16
- applyAttrs
17
- } from "./chunk-2db2dnp3.js";
18
-
19
- // src/tabs/tabs.tsx
20
- import { __element, __enterChildren, __exitChildren, __insert, __on, __styleStr } from "@vertz/ui/internals";
21
- import { signal } from "@vertz/ui";
22
- function TabList(orientation, triggers, tabValues, selectTab) {
23
- return (() => {
24
- const __el0 = __element("div");
25
- __el0.setAttribute("role", "tablist");
26
- {
27
- const __v = orientation === "vertical" ? "vertical" : undefined;
28
- if (__v != null && __v !== false)
29
- __el0.setAttribute("aria-orientation", __v === true ? "" : __v);
30
- }
31
- __on(__el0, "keydown", (event) => {
32
- const result = handleListNavigation(event, triggers, {
33
- orientation
34
- });
35
- if (result) {
36
- const idx = triggers.indexOf(result);
37
- if (idx >= 0) {
38
- const val = tabValues[idx];
39
- if (val !== undefined)
40
- selectTab(val);
41
- }
42
- }
43
- });
44
- return __el0;
45
- })();
46
- }
47
- function TabTrigger(triggerId, panelId, value, label, isActive, selectTab) {
48
- return (() => {
49
- const __el0 = __element("button");
50
- __el0.setAttribute("type", "button");
51
- __el0.setAttribute("role", "tab");
52
- {
53
- const __v = triggerId;
54
- if (__v != null && __v !== false)
55
- __el0.setAttribute("id", __v === true ? "" : __v);
56
- }
57
- {
58
- const __v = panelId;
59
- if (__v != null && __v !== false)
60
- __el0.setAttribute("aria-controls", __v === true ? "" : __v);
61
- }
62
- {
63
- const __v = value;
64
- if (__v != null && __v !== false)
65
- __el0.setAttribute("data-value", __v === true ? "" : __v);
66
- }
67
- {
68
- const __v = isActive ? "true" : "false";
69
- if (__v != null && __v !== false)
70
- __el0.setAttribute("aria-selected", __v === true ? "" : __v);
71
- }
72
- {
73
- const __v = isActive ? "active" : "inactive";
74
- if (__v != null && __v !== false)
75
- __el0.setAttribute("data-state", __v === true ? "" : __v);
76
- }
77
- __on(__el0, "click", () => {
78
- selectTab(value);
79
- });
80
- __enterChildren(__el0);
81
- __insert(__el0, label ?? value);
82
- __exitChildren();
83
- return __el0;
84
- })();
85
- }
86
- function TabsContainer(list) {
87
- return (() => {
88
- const __el0 = __element("div");
89
- __enterChildren(__el0);
90
- __insert(__el0, list);
91
- __exitChildren();
92
- return __el0;
93
- })();
94
- }
95
- function TabPanel(panelId, triggerId, isActive) {
96
- return (() => {
97
- const __el0 = __element("div");
98
- __el0.setAttribute("role", "tabpanel");
99
- {
100
- const __v = panelId;
101
- if (__v != null && __v !== false)
102
- __el0.setAttribute("id", __v === true ? "" : __v);
103
- }
104
- {
105
- const __v = triggerId;
106
- if (__v != null && __v !== false)
107
- __el0.setAttribute("aria-labelledby", __v === true ? "" : __v);
108
- }
109
- __el0.setAttribute("tabindex", "0");
110
- {
111
- const __v = isActive ? "false" : "true";
112
- if (__v != null && __v !== false)
113
- __el0.setAttribute("aria-hidden", __v === true ? "" : __v);
114
- }
115
- {
116
- const __v = isActive ? "active" : "inactive";
117
- if (__v != null && __v !== false)
118
- __el0.setAttribute("data-state", __v === true ? "" : __v);
119
- }
120
- {
121
- const __v = isActive ? "" : "display: none";
122
- if (__v != null && __v !== false)
123
- __el0.setAttribute("style", typeof __v === "object" ? __styleStr(__v) : __v === true ? "" : String(__v));
124
- }
125
- return __el0;
126
- })();
127
- }
128
- function TabsRoot(options = {}) {
129
- const { defaultValue = "", orientation = "horizontal", onValueChange, ...attrs } = options;
130
- const state = { value: signal(defaultValue) };
131
- const triggers = [];
132
- const panels = [];
133
- const tabValues = [];
134
- function selectTab(value) {
135
- state.value.value = value;
136
- for (let i = 0;i < tabValues.length; i++) {
137
- const isActive = tabValues[i] === value;
138
- const trig = triggers[i];
139
- const panel = panels[i];
140
- if (!trig || !panel)
141
- continue;
142
- setSelected(trig, isActive);
143
- setDataState(trig, isActive ? "active" : "inactive");
144
- trig.setAttribute("tabindex", isActive ? "0" : "-1");
145
- setHidden(panel, !isActive);
146
- setDataState(panel, isActive ? "active" : "inactive");
147
- }
148
- onValueChange?.(value);
149
- }
150
- const list = TabList(orientation, triggers, tabValues, selectTab);
151
- const root = TabsContainer(list);
152
- const cleanups = [];
153
- function Tab(value, label) {
154
- const baseId = uniqueId("tab");
155
- const triggerId = `${baseId}-trigger`;
156
- const panelId = `${baseId}-panel`;
157
- const isActive = value === state.value.peek();
158
- const trig = TabTrigger(triggerId, panelId, value, label, isActive, selectTab);
159
- const handleClick = () => {
160
- trig.focus();
161
- };
162
- trig.addEventListener("click", handleClick);
163
- cleanups.push(() => trig.removeEventListener("click", handleClick));
164
- const panel = TabPanel(panelId, triggerId, isActive);
165
- triggers.push(trig);
166
- panels.push(panel);
167
- tabValues.push(value);
168
- list.appendChild(trig);
169
- root.appendChild(panel);
170
- setRovingTabindex(triggers, triggers.findIndex((t) => tabValues[triggers.indexOf(t)] === state.value.peek()));
171
- return { trigger: trig, panel };
172
- }
173
- function destroy() {
174
- for (const cleanup of cleanups)
175
- cleanup();
176
- cleanups.length = 0;
177
- }
178
- applyAttrs(root, attrs);
179
- return { root, list, state, Tab, destroy };
180
- }
181
- var Tabs = {
182
- Root: TabsRoot
183
- };
184
-
185
- export { Tabs };
@@ -1,330 +0,0 @@
1
- import {
2
- applyAttrs
3
- } from "./chunk-2db2dnp3.js";
4
-
5
- // src/calendar/calendar.tsx
6
- import { __element, __enterChildren, __exitChildren, __insert, __on } from "@vertz/ui/internals";
7
- import { signal } from "@vertz/ui";
8
- var MONTH_NAMES = [
9
- "January",
10
- "February",
11
- "March",
12
- "April",
13
- "May",
14
- "June",
15
- "July",
16
- "August",
17
- "September",
18
- "October",
19
- "November",
20
- "December"
21
- ];
22
- var DAY_NAMES = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
23
- function getDaysInMonth(year, month) {
24
- return new Date(year, month + 1, 0).getDate();
25
- }
26
- function isSameDay(a, b) {
27
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
28
- }
29
- function addDays(date, days) {
30
- const result = new Date(date);
31
- result.setDate(result.getDate() + days);
32
- return result;
33
- }
34
- function addMonths(date, months) {
35
- const result = new Date(date);
36
- result.setMonth(result.getMonth() + months);
37
- return result;
38
- }
39
- function CalendarTitleEl() {
40
- return (() => {
41
- const __el0 = __element("div");
42
- return __el0;
43
- })();
44
- }
45
- function CalendarNavButton(onClick) {
46
- return (() => {
47
- const __el0 = __element("button");
48
- __el0.setAttribute("type", "button");
49
- __on(__el0, "click", onClick);
50
- return __el0;
51
- })();
52
- }
53
- function CalendarHeaderEl(prevButton, title, nextButton) {
54
- return (() => {
55
- const __el0 = __element("div");
56
- __enterChildren(__el0);
57
- __insert(__el0, prevButton);
58
- __insert(__el0, title);
59
- __insert(__el0, nextButton);
60
- __exitChildren();
61
- return __el0;
62
- })();
63
- }
64
- function CalendarGridEl(onKeydown) {
65
- return (() => {
66
- const __el0 = __element("table");
67
- __el0.setAttribute("role", "grid");
68
- __on(__el0, "keydown", onKeydown);
69
- return __el0;
70
- })();
71
- }
72
- function CalendarRootEl(header, grid) {
73
- return (() => {
74
- const __el0 = __element("div");
75
- __enterChildren(__el0);
76
- __insert(__el0, header);
77
- __insert(__el0, grid);
78
- __exitChildren();
79
- return __el0;
80
- })();
81
- }
82
- function CalendarRoot(options = {}) {
83
- const {
84
- mode: modeOpt,
85
- defaultValue,
86
- defaultMonth: defaultMonthOpt,
87
- minDate,
88
- maxDate,
89
- disabled,
90
- weekStartsOn: weekStartsOnOpt,
91
- onValueChange,
92
- onMonthChange,
93
- ...attrs
94
- } = options;
95
- const now = new Date;
96
- const defaultMonth = defaultMonthOpt ?? now;
97
- const weekStartsOn = weekStartsOnOpt ?? 0;
98
- const mode = modeOpt ?? "single";
99
- const state = {
100
- value: signal(defaultValue ?? null),
101
- focusedDate: signal(defaultMonth),
102
- displayMonth: signal(defaultMonth)
103
- };
104
- function updateTitle() {
105
- const month = state.displayMonth.peek();
106
- title.textContent = `${MONTH_NAMES[month.getMonth()]} ${month.getFullYear()}`;
107
- }
108
- function isDateDisabled(date) {
109
- if (disabled?.(date))
110
- return true;
111
- if (minDate && date < minDate && !isSameDay(date, minDate)) {
112
- return true;
113
- }
114
- if (maxDate && date > maxDate && !isSameDay(date, maxDate)) {
115
- return true;
116
- }
117
- return false;
118
- }
119
- function isSelected(date) {
120
- const val = state.value.peek();
121
- if (val === null)
122
- return false;
123
- if (val instanceof Date)
124
- return isSameDay(val, date);
125
- if (Array.isArray(val))
126
- return val.some((d) => isSameDay(d, date));
127
- if ("from" in val && "to" in val) {
128
- return isSameDay(val.from, date) || isSameDay(val.to, date);
129
- }
130
- return false;
131
- }
132
- function isInRange(date) {
133
- const val = state.value.peek();
134
- if (val === null || !("from" in val))
135
- return false;
136
- const range = val;
137
- return date > range.from && date < range.to;
138
- }
139
- function selectDate(date) {
140
- if (isDateDisabled(date))
141
- return;
142
- if (mode === "single") {
143
- state.value.value = date;
144
- } else if (mode === "multiple") {
145
- const current = state.value.peek() ?? [];
146
- const existing = current.findIndex((d) => isSameDay(d, date));
147
- if (existing >= 0) {
148
- const next = [...current];
149
- next.splice(existing, 1);
150
- state.value.value = next;
151
- } else {
152
- state.value.value = [...current, date];
153
- }
154
- } else if (mode === "range") {
155
- const current = state.value.peek();
156
- if (!current || "to" in current && current.to) {
157
- state.value.value = { from: date, to: date };
158
- } else {
159
- if (date < current.from) {
160
- state.value.value = { from: date, to: current.from };
161
- } else {
162
- state.value.value = { from: current.from, to: date };
163
- }
164
- }
165
- }
166
- onValueChange?.(state.value.peek());
167
- }
168
- const gridCleanups = [];
169
- function cleanupGridListeners() {
170
- for (const cleanup of gridCleanups)
171
- cleanup();
172
- gridCleanups.length = 0;
173
- }
174
- function buildGrid() {
175
- cleanupGridListeners();
176
- grid.innerHTML = "";
177
- const display = state.displayMonth.peek();
178
- const year = display.getFullYear();
179
- const month = display.getMonth();
180
- const daysInMonth = getDaysInMonth(year, month);
181
- const thead = document.createElement("thead");
182
- const headerRow = document.createElement("tr");
183
- for (let i = 0;i < 7; i++) {
184
- const dayIndex = (weekStartsOn + i) % 7;
185
- const th = document.createElement("th");
186
- th.setAttribute("scope", "col");
187
- th.textContent = DAY_NAMES[dayIndex] ?? "";
188
- headerRow.appendChild(th);
189
- }
190
- thead.appendChild(headerRow);
191
- grid.appendChild(thead);
192
- const tbody = document.createElement("tbody");
193
- const firstDay = new Date(year, month, 1);
194
- const firstDayOfWeek = firstDay.getDay();
195
- const offset = (firstDayOfWeek - weekStartsOn + 7) % 7;
196
- const startDate = addDays(firstDay, -offset);
197
- let currentDate = startDate;
198
- const totalCells = offset + daysInMonth;
199
- const totalRows = Math.ceil(totalCells / 7);
200
- for (let row = 0;row < totalRows; row++) {
201
- const tr = document.createElement("tr");
202
- for (let col = 0;col < 7; col++) {
203
- const td = document.createElement("td");
204
- td.setAttribute("role", "gridcell");
205
- const btn = document.createElement("button");
206
- btn.setAttribute("type", "button");
207
- const cellDate = new Date(currentDate);
208
- btn.textContent = String(cellDate.getDate());
209
- btn.setAttribute("data-date", cellDate.toISOString().split("T")[0] ?? "");
210
- const isOutside = cellDate.getMonth() !== month;
211
- if (isOutside) {
212
- btn.setAttribute("data-outside-month", "true");
213
- }
214
- if (isSameDay(cellDate, now)) {
215
- btn.setAttribute("data-today", "true");
216
- }
217
- if (isDateDisabled(cellDate)) {
218
- btn.setAttribute("aria-disabled", "true");
219
- }
220
- if (isSelected(cellDate)) {
221
- btn.setAttribute("aria-selected", "true");
222
- }
223
- if (mode === "range") {
224
- const val = state.value.peek();
225
- if (val && "from" in val) {
226
- if (isSameDay(cellDate, val.from)) {
227
- btn.setAttribute("data-range-start", "true");
228
- }
229
- if (isSameDay(cellDate, val.to)) {
230
- btn.setAttribute("data-range-end", "true");
231
- }
232
- if (isInRange(cellDate)) {
233
- btn.setAttribute("data-in-range", "true");
234
- }
235
- }
236
- }
237
- const handleClick = () => {
238
- selectDate(cellDate);
239
- rebuildGrid();
240
- };
241
- btn.addEventListener("click", handleClick);
242
- gridCleanups.push(() => btn.removeEventListener("click", handleClick));
243
- td.appendChild(btn);
244
- tr.appendChild(td);
245
- currentDate = addDays(currentDate, 1);
246
- }
247
- tbody.appendChild(tr);
248
- }
249
- grid.appendChild(tbody);
250
- }
251
- function rebuildGrid() {
252
- updateTitle();
253
- buildGrid();
254
- }
255
- function navigateMonth(delta) {
256
- state.displayMonth.value = addMonths(state.displayMonth.peek(), delta);
257
- onMonthChange?.(state.displayMonth.peek());
258
- rebuildGrid();
259
- }
260
- const title = CalendarTitleEl();
261
- const prevButton = CalendarNavButton(() => navigateMonth(-1));
262
- const nextButton = CalendarNavButton(() => navigateMonth(1));
263
- const header = CalendarHeaderEl(prevButton, title, nextButton);
264
- const grid = CalendarGridEl((event) => {
265
- const active = document.activeElement;
266
- if (!active || active.tagName !== "BUTTON")
267
- return;
268
- const dateStr = active.getAttribute("data-date");
269
- if (!dateStr)
270
- return;
271
- const focused = new Date(`${dateStr}T00:00:00`);
272
- let next = null;
273
- if (event.key === "ArrowLeft") {
274
- event.preventDefault();
275
- next = addDays(focused, -1);
276
- } else if (event.key === "ArrowRight") {
277
- event.preventDefault();
278
- next = addDays(focused, 1);
279
- } else if (event.key === "ArrowUp") {
280
- event.preventDefault();
281
- next = addDays(focused, -7);
282
- } else if (event.key === "ArrowDown") {
283
- event.preventDefault();
284
- next = addDays(focused, 7);
285
- } else if (event.key === "Home") {
286
- event.preventDefault();
287
- const dayOfWeek = (focused.getDay() - weekStartsOn + 7) % 7;
288
- next = addDays(focused, -dayOfWeek);
289
- } else if (event.key === "End") {
290
- event.preventDefault();
291
- const dayOfWeek = (focused.getDay() - weekStartsOn + 7) % 7;
292
- next = addDays(focused, 6 - dayOfWeek);
293
- } else if (event.key === "PageUp") {
294
- event.preventDefault();
295
- next = event.shiftKey ? addMonths(focused, -12) : addMonths(focused, -1);
296
- } else if (event.key === "PageDown") {
297
- event.preventDefault();
298
- next = event.shiftKey ? addMonths(focused, 12) : addMonths(focused, 1);
299
- } else if (event.key === "Enter" || event.key === " ") {
300
- event.preventDefault();
301
- selectDate(focused);
302
- rebuildGrid();
303
- return;
304
- }
305
- if (next) {
306
- state.focusedDate.value = next;
307
- if (next.getMonth() !== state.displayMonth.peek().getMonth() || next.getFullYear() !== state.displayMonth.peek().getFullYear()) {
308
- state.displayMonth.value = new Date(next.getFullYear(), next.getMonth(), 1);
309
- onMonthChange?.(state.displayMonth.peek());
310
- rebuildGrid();
311
- }
312
- const dateKey = next.toISOString().split("T")[0];
313
- const btn = grid.querySelector(`button[data-date="${dateKey}"]`);
314
- btn?.focus();
315
- }
316
- });
317
- updateTitle();
318
- buildGrid();
319
- const root = CalendarRootEl(header, grid);
320
- function destroy() {
321
- cleanupGridListeners();
322
- }
323
- applyAttrs(root, attrs);
324
- return { root, header, title, prevButton, nextButton, grid, state, destroy };
325
- }
326
- var Calendar = {
327
- Root: CalendarRoot
328
- };
329
-
330
- export { Calendar };
@@ -1,175 +0,0 @@
1
- import {
2
- Keys,
3
- isKey
4
- } from "./chunk-7867pr13.js";
5
- import {
6
- setDataState,
7
- setValueRange
8
- } from "./chunk-vevfhpc9.js";
9
- import {
10
- applyAttrs
11
- } from "./chunk-2db2dnp3.js";
12
-
13
- // src/resizable-panel/resizable-panel.tsx
14
- import { __element, __on, __styleStr } from "@vertz/ui/internals";
15
- import { signal } from "@vertz/ui";
16
- function ResizablePanelRoot(options = {}) {
17
- const { orientation = "horizontal", onResize, ...attrs } = options;
18
- const state = { sizes: signal([]) };
19
- const panels = [];
20
- const handles = [];
21
- function updateSizes(newSizes) {
22
- state.sizes.value = [...newSizes];
23
- for (let i = 0;i < panels.length; i++) {
24
- const panel = panels[i];
25
- if (!panel)
26
- continue;
27
- const size = newSizes[i] ?? 0;
28
- panel.el.style.flex = `0 0 ${size}%`;
29
- }
30
- for (let i = 0;i < handles.length; i++) {
31
- const handle = handles[i];
32
- const leftPanel = panels[i];
33
- if (handle && leftPanel) {
34
- const size = newSizes[i] ?? 0;
35
- setValueRange(handle, Math.round(size), Math.round(leftPanel.minSize), Math.round(leftPanel.maxSize));
36
- }
37
- }
38
- onResize?.(newSizes);
39
- }
40
- const root = (() => {
41
- const __el0 = __element("div");
42
- {
43
- const __v = `display: flex; flex-direction: ${orientation === "horizontal" ? "row" : "column"};`;
44
- if (__v != null && __v !== false)
45
- __el0.setAttribute("style", typeof __v === "object" ? __styleStr(__v) : __v === true ? "" : String(__v));
46
- }
47
- {
48
- const __v = orientation;
49
- if (__v != null && __v !== false)
50
- __el0.setAttribute("data-orientation", __v === true ? "" : __v);
51
- }
52
- return __el0;
53
- })();
54
- function Panel(panelOptions = {}) {
55
- const { defaultSize, minSize = 0, maxSize = 100 } = panelOptions;
56
- const el = (() => {
57
- const __el1 = __element("div");
58
- __el1.setAttribute("data-panel", "");
59
- return __el1;
60
- })();
61
- panels.push({ el, minSize, maxSize });
62
- const sizes = state.sizes.peek();
63
- if (defaultSize != null) {
64
- sizes.push(defaultSize);
65
- } else {
66
- const equalSize = 100 / panels.length;
67
- sizes.length = 0;
68
- for (let i = 0;i < panels.length; i++) {
69
- sizes.push(equalSize);
70
- }
71
- }
72
- updateSizes(sizes);
73
- root.appendChild(el);
74
- return el;
75
- }
76
- function Handle() {
77
- const handleIndex = handles.length;
78
- const handle = (() => {
79
- const __el2 = __element("div");
80
- __el2.setAttribute("role", "separator");
81
- __el2.setAttribute("tabindex", "0");
82
- {
83
- const __v = orientation;
84
- if (__v != null && __v !== false)
85
- __el2.setAttribute("data-orientation", __v === true ? "" : __v);
86
- }
87
- __el2.setAttribute("data-state", "idle");
88
- __on(__el2, "keydown", (event) => {
89
- const sizes = [...state.sizes.peek()];
90
- const leftIdx = handleIndex;
91
- const rightIdx = handleIndex + 1;
92
- const leftPanel = panels[leftIdx];
93
- const rightPanel = panels[rightIdx];
94
- if (!leftPanel || !rightPanel)
95
- return;
96
- let leftSize = sizes[leftIdx] ?? 0;
97
- let rightSize = sizes[rightIdx] ?? 0;
98
- const STEP = 5;
99
- const growKey = orientation === "horizontal" ? Keys.ArrowRight : Keys.ArrowDown;
100
- const shrinkKey = orientation === "horizontal" ? Keys.ArrowLeft : Keys.ArrowUp;
101
- if (isKey(event, growKey)) {
102
- event.preventDefault();
103
- const delta = Math.min(STEP, rightSize - rightPanel.minSize, leftPanel.maxSize - leftSize);
104
- leftSize += delta;
105
- rightSize -= delta;
106
- } else if (isKey(event, shrinkKey)) {
107
- event.preventDefault();
108
- const delta = Math.min(STEP, leftSize - leftPanel.minSize, rightPanel.maxSize - rightSize);
109
- leftSize -= delta;
110
- rightSize += delta;
111
- } else if (isKey(event, Keys.Home)) {
112
- event.preventDefault();
113
- const delta = leftSize - leftPanel.minSize;
114
- leftSize -= delta;
115
- rightSize += delta;
116
- } else if (isKey(event, Keys.End)) {
117
- event.preventDefault();
118
- const delta = rightSize - rightPanel.minSize;
119
- leftSize += delta;
120
- rightSize -= delta;
121
- } else {
122
- return;
123
- }
124
- sizes[leftIdx] = leftSize;
125
- sizes[rightIdx] = rightSize;
126
- updateSizes(sizes);
127
- });
128
- __on(__el2, "pointerdown", (event) => {
129
- event.preventDefault();
130
- handle.setPointerCapture(event.pointerId);
131
- setDataState(handle, "dragging");
132
- const startPos = orientation === "horizontal" ? event.clientX : event.clientY;
133
- const rootSize = orientation === "horizontal" ? root.offsetWidth : root.offsetHeight;
134
- const startSizes = [...state.sizes.peek()];
135
- function onMove(e) {
136
- const currentPos = orientation === "horizontal" ? e.clientX : e.clientY;
137
- const delta = (currentPos - startPos) / rootSize * 100;
138
- const sizes = [...startSizes];
139
- const leftIdx = handleIndex;
140
- const rightIdx = handleIndex + 1;
141
- const leftPanel = panels[leftIdx];
142
- const rightPanel = panels[rightIdx];
143
- if (!leftPanel || !rightPanel)
144
- return;
145
- let newLeft = (startSizes[leftIdx] ?? 0) + delta;
146
- let newRight = (startSizes[rightIdx] ?? 0) - delta;
147
- newLeft = Math.max(leftPanel.minSize, Math.min(leftPanel.maxSize, newLeft));
148
- newRight = Math.max(rightPanel.minSize, Math.min(rightPanel.maxSize, newRight));
149
- sizes[leftIdx] = newLeft;
150
- sizes[rightIdx] = newRight;
151
- updateSizes(sizes);
152
- }
153
- function onUp(e) {
154
- handle.releasePointerCapture(e.pointerId);
155
- setDataState(handle, "idle");
156
- handle.removeEventListener("pointermove", onMove);
157
- handle.removeEventListener("pointerup", onUp);
158
- }
159
- handle.addEventListener("pointermove", onMove);
160
- handle.addEventListener("pointerup", onUp);
161
- });
162
- return __el2;
163
- })();
164
- handles.push(handle);
165
- root.appendChild(handle);
166
- return handle;
167
- }
168
- applyAttrs(root, attrs);
169
- return { root, state, Panel, Handle };
170
- }
171
- var ResizablePanel = {
172
- Root: ResizablePanelRoot
173
- };
174
-
175
- export { ResizablePanel };