@stachelock/ui 0.6.5 → 0.6.6

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 (26) hide show
  1. package/dist/{CalendarHeader.vue_vue_type_script_setup_true_lang-hGa2MLyo.js → CalendarHeader.vue_vue_type_script_setup_true_lang-CA_C4dmn.js} +1 -1
  2. package/dist/{ComboboxInput.vue_vue_type_script_setup_true_lang-BigvbBAU.js → ComboboxInput.vue_vue_type_script_setup_true_lang-D52gzkAa.js} +142 -120
  3. package/dist/{InlineTabs.vue_vue_type_script_setup_true_lang-B5w4yzcZ.js → InlineTabs.vue_vue_type_script_setup_true_lang-slNq2sot.js} +1 -1
  4. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-COZuuSFS.js +320 -0
  5. package/dist/{TabGroup.vue_vue_type_script_setup_true_lang-BsbiEA4E.js → TabGroup.vue_vue_type_script_setup_true_lang-pEKm-uUq.js} +1 -1
  6. package/dist/{TabGroupUnderline.vue_vue_type_script_setup_true_lang-CPcp1-Za.js → TabGroupUnderline.vue_vue_type_script_setup_true_lang--IKyRPkX.js} +1 -1
  7. package/dist/{TabsInPills.vue_vue_type_script_setup_true_lang-U5CdRL7s.js → TabsInPills.vue_vue_type_script_setup_true_lang-EG0nj4F6.js} +1 -1
  8. package/dist/calendars/CalendarDashboard.js +1 -1
  9. package/dist/calendars/CalendarHeader.js +1 -1
  10. package/dist/index.js +1533 -1300
  11. package/dist/inputs/ComboboxInput.js +1 -1
  12. package/dist/inputs/SelectInput.js +1 -1
  13. package/dist/src/components/inputs/ComboboxInput.d.ts +2 -0
  14. package/dist/src/components/inputs/DatepickerInput.d.ts +3 -3
  15. package/dist/src/components/inputs/SelectInput.d.ts +2 -0
  16. package/dist/src/components/profiles/BentoProfileLayoutSkeleton.d.ts +11 -0
  17. package/dist/src/components/profiles/ProfileSocialCard.d.ts +11 -0
  18. package/dist/src/components/profiles/index.d.ts +2 -0
  19. package/dist/style.css +1 -1
  20. package/dist/tabs/InlineTabs.js +1 -1
  21. package/dist/tabs/TabGroup.js +1 -1
  22. package/dist/tabs/TabGroupUnderline.js +1 -1
  23. package/dist/tabs/TabsInPills.js +1 -1
  24. package/dist/tabs/index.js +4 -4
  25. package/package.json +1 -1
  26. package/dist/SelectInput.vue_vue_type_script_setup_true_lang-D4GNv0MY.js +0 -301
@@ -0,0 +1,320 @@
1
+ import { defineComponent as P, watch as M, onBeforeUnmount as Q, ref as S, computed as v, createElementBlock as d, openBlock as n, createVNode as u, unref as r, withCtx as m, createElementVNode as c, createBlock as y, normalizeClass as h, createCommentVNode as f, resolveDynamicComponent as R, toDisplayString as b, withModifiers as V, Teleport as Y, Transition as Z, normalizeStyle as _, Fragment as ee, renderList as le } from "vue";
2
+ import { Listbox as se, ListboxButton as te, ListboxOptions as ae, ListboxOption as re } from "@headlessui/vue";
3
+ import { XMarkIcon as oe, ChevronUpDownIcon as ne, CheckIcon as ie } from "@heroicons/vue/20/solid";
4
+ import { useField as ue } from "vee-validate";
5
+ import de from "./forms/FormFieldWrapper.js";
6
+ import { g as ce } from "./id-DafBB_QF.js";
7
+ const me = { class: "sl-w-full" }, ve = { class: "sl-relative" }, fe = { class: "sl-flex sl-items-center sl-gap-2" }, pe = {
8
+ key: 1,
9
+ class: "sl-block sl-truncate sl-text-left"
10
+ }, he = {
11
+ key: 2,
12
+ class: "sl-block sl-truncate sl-text-left sl-text-gray-500 dark:sl-text-slate-300"
13
+ }, be = { class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-2 sl-gap-1" }, ge = { class: "sl-block sl-truncate sl-font-medium" }, ye = { class: "sl-flex sl-items-center sl-gap-2" }, xe = {
14
+ key: 0,
15
+ class: "sl-absolute sl-inset-y-0 sl-right-0 sl-flex sl-items-center sl-pr-4"
16
+ }, ke = { key: 0 }, L = 224, x = 4, Ve = /* @__PURE__ */ P({
17
+ __name: "SelectInput",
18
+ props: {
19
+ name: {},
20
+ items: {},
21
+ label: {},
22
+ placeholder: {},
23
+ disabled: { type: Boolean },
24
+ rules: {},
25
+ validateOnMount: { type: Boolean },
26
+ successMessage: {},
27
+ tertiaryLabel: {},
28
+ buttonClass: {},
29
+ multiple: { type: Boolean, default: !1 },
30
+ showAll: { type: Boolean, default: !1 },
31
+ itemKey: { default: "id" },
32
+ itemText: { default: "name" },
33
+ modelValue: { type: [String, Number, Boolean, null, Object, Array] },
34
+ boxShadow: { type: Boolean, default: !1 },
35
+ clearable: { type: Boolean, default: !1 }
36
+ },
37
+ emits: ["update:modelValue"],
38
+ setup(a, { emit: K }) {
39
+ const U = P({
40
+ props: {
41
+ open: { type: Boolean, required: !0 },
42
+ updateFn: { type: Function, required: !0 }
43
+ },
44
+ setup(e) {
45
+ const s = () => {
46
+ e.open && e.updateFn();
47
+ };
48
+ return M(() => e.open, (o) => {
49
+ o ? (e.updateFn(), window.addEventListener("scroll", s, !0), window.addEventListener("resize", s)) : (window.removeEventListener("scroll", s, !0), window.removeEventListener("resize", s));
50
+ }, { immediate: !0 }), Q(() => {
51
+ window.removeEventListener("scroll", s, !0), window.removeEventListener("resize", s);
52
+ }), () => null;
53
+ }
54
+ }), D = S(null), k = S({
55
+ top: "0px",
56
+ left: "0px",
57
+ width: "200px"
58
+ });
59
+ function F() {
60
+ const e = D.value?.$el;
61
+ if (!e) return;
62
+ const s = e.getBoundingClientRect(), o = window.innerHeight, i = o - s.bottom - x, p = s.top - x;
63
+ i < L && p > i ? k.value = {
64
+ bottom: `${o - s.top + x}px`,
65
+ left: `${s.left}px`,
66
+ width: `${s.width}px`,
67
+ maxHeight: `${Math.min(p, L)}px`
68
+ } : k.value = {
69
+ top: `${s.bottom + x}px`,
70
+ left: `${s.left}px`,
71
+ width: `${s.width}px`,
72
+ maxHeight: `${Math.min(i, L)}px`
73
+ };
74
+ }
75
+ const t = a, W = K, I = ce(t.name), { value: O, errorMessage: $, handleChange: w, meta: g, setTouched: E } = ue(
76
+ () => t.name,
77
+ t.rules,
78
+ {
79
+ validateOnMount: t.validateOnMount,
80
+ initialValue: t.modelValue
81
+ }
82
+ ), l = S(
83
+ t.multiple ? Array.isArray(t.modelValue) ? t.modelValue : [] : t.modelValue
84
+ );
85
+ M(
86
+ () => t.modelValue,
87
+ (e) => {
88
+ if (t.multiple) {
89
+ const s = Array.isArray(e) ? e : [];
90
+ s !== l.value && (l.value = s, O.value = s);
91
+ } else
92
+ e !== l.value && (l.value = e, O.value = e);
93
+ },
94
+ { immediate: !0 }
95
+ ), M(
96
+ l,
97
+ (e) => {
98
+ W("update:modelValue", e);
99
+ }
100
+ );
101
+ const j = v(() => {
102
+ const e = [
103
+ "sl-relative",
104
+ "sl-w-full",
105
+ "sl-cursor-default",
106
+ "sl-rounded-md",
107
+ "sl-bg-white",
108
+ "dark:sl-bg-slate-900",
109
+ "sl-text-gray-900",
110
+ "dark:sl-text-slate-100",
111
+ "sl-py-2",
112
+ "sl-pl-3",
113
+ "sl-pr-10",
114
+ "sl-text-left",
115
+ "sl-border",
116
+ "sl-text-sm",
117
+ "sl-outline-none",
118
+ "focus:sl-outline-none",
119
+ "focus:sl-ring-2",
120
+ "focus:sl-ring-stachelock-500",
121
+ "focus:sl-border-stachelock-500",
122
+ "sl-transition-all",
123
+ "sl-duration-200"
124
+ ];
125
+ return t.disabled ? e.push(
126
+ "sl-bg-gray-50",
127
+ "dark:sl-bg-slate-800",
128
+ "sl-text-gray-500",
129
+ "dark:sl-text-slate-300",
130
+ "sl-cursor-not-allowed",
131
+ "sl-border-gray-200",
132
+ "dark:sl-border-slate-700"
133
+ ) : $.value ? e.push(
134
+ "sl-border-red-300",
135
+ "dark:sl-border-red-500",
136
+ "focus:sl-ring-red-500",
137
+ "focus:sl-border-red-500"
138
+ ) : g.valid && g.touched ? e.push(
139
+ "sl-border-green-300",
140
+ "dark:sl-border-green-500",
141
+ "focus:sl-ring-green-500",
142
+ "focus:sl-border-green-500"
143
+ ) : e.push(
144
+ "sl-border-gray-300",
145
+ "dark:sl-border-slate-600",
146
+ "hover:sl-border-gray-400",
147
+ "dark:hover:sl-border-slate-500"
148
+ ), e.join(" ");
149
+ }), A = (e) => e[t.itemKey], C = (e) => e[t.itemText] || e.toString(), T = v(() => l.value ? t.multiple && Array.isArray(l.value) ? l.value.length === 0 ? "" : l.value.length === 1 ? C(l.value[0]) : `${l.value.length} items selected` : C(l.value) : ""), z = v(() => l.value ? t.multiple && Array.isArray(l.value) ? l.value.length === 1 ? l.value[0].icon : null : l.value.icon : null), H = v(() => t.items.filter((e) => !e.disabled)), q = (e) => {
150
+ l.value = e, E(!0), w(e);
151
+ }, N = v(() => {
152
+ if (!t.multiple || !Array.isArray(l.value)) return !1;
153
+ const e = H.value;
154
+ if (e.length === 0) return !1;
155
+ const s = new Set(l.value.map((o) => A(o)));
156
+ return e.every((o) => s.has(A(o)));
157
+ }), G = () => {
158
+ t.multiple && (N.value ? l.value = [] : l.value = [...H.value], w(l.value));
159
+ }, X = v(() => t.clearable ? t.multiple && Array.isArray(l.value) ? l.value.length > 0 : l.value !== null && l.value !== void 0 : !1), J = (e) => {
160
+ e.stopPropagation(), e.preventDefault(), t.multiple ? l.value = [] : l.value = null, E(!0), w(l.value);
161
+ };
162
+ return (e, s) => (n(), d("div", me, [
163
+ u(de, {
164
+ id: r(I),
165
+ name: a.name,
166
+ label: a.label,
167
+ disabled: a.disabled,
168
+ optional: !a.rules,
169
+ "tertiary-label": a.tertiaryLabel,
170
+ "box-shadow": a.boxShadow,
171
+ "error-message": r($),
172
+ "success-message": a.successMessage,
173
+ "is-valid": r(g).valid,
174
+ "is-touched": r(g).touched,
175
+ "show-valid-check": !1
176
+ }, {
177
+ "success-message": m(() => [
178
+ a.successMessage ? (n(), d("span", ke, b(a.successMessage), 1)) : f("", !0)
179
+ ]),
180
+ default: m(() => [
181
+ u(r(se), {
182
+ modelValue: l.value,
183
+ "onUpdate:modelValue": [
184
+ s[2] || (s[2] = (o) => l.value = o),
185
+ q
186
+ ],
187
+ disabled: a.disabled,
188
+ multiple: a.multiple
189
+ }, {
190
+ default: m(({ open: o }) => [
191
+ c("div", ve, [
192
+ u(r(U), {
193
+ open: o,
194
+ "update-fn": F
195
+ }, null, 8, ["open"]),
196
+ u(r(te), {
197
+ ref_key: "listboxButtonRef",
198
+ ref: D,
199
+ id: r(I),
200
+ class: h([
201
+ j.value,
202
+ a.buttonClass
203
+ ]),
204
+ onClick: F
205
+ }, {
206
+ default: m(() => [
207
+ c("span", fe, [
208
+ z.value ? (n(), y(R(z.value), {
209
+ key: 0,
210
+ class: "sl-h-4 sl-w-4 sl-flex-shrink-0",
211
+ "aria-hidden": "true"
212
+ })) : f("", !0),
213
+ T.value ? (n(), d("span", pe, b(T.value), 1)) : (n(), d("span", he, b(a.placeholder || "Select an option"), 1))
214
+ ]),
215
+ c("span", be, [
216
+ X.value ? (n(), d("button", {
217
+ key: 0,
218
+ type: "button",
219
+ class: "sl-p-0.5 sl-rounded-full sl-text-gray-400 dark:sl-text-slate-400 hover:sl-text-gray-600 dark:hover:sl-text-slate-200 hover:sl-bg-gray-100 dark:hover:sl-bg-slate-700 focus:sl-outline-none",
220
+ onClick: J,
221
+ onMousedown: s[0] || (s[0] = V(() => {
222
+ }, ["prevent"]))
223
+ }, [
224
+ u(r(oe), {
225
+ class: "sl-h-4 sl-w-4",
226
+ "aria-hidden": "true"
227
+ }),
228
+ s[3] || (s[3] = c("span", { class: "sl-sr-only" }, "Clear selection", -1))
229
+ ], 32)) : f("", !0),
230
+ u(r(ne), {
231
+ class: "sl-h-5 sl-w-5 sl-text-gray-400 dark:sl-text-slate-300 sl-pointer-events-none",
232
+ "aria-hidden": "true"
233
+ })
234
+ ])
235
+ ]),
236
+ _: 1
237
+ }, 8, ["id", "class"]),
238
+ (n(), y(Y, { to: "body" }, [
239
+ u(Z, {
240
+ "leave-active-class": "sl-transition sl-duration-100 sl-ease-in",
241
+ "leave-from-class": "sl-opacity-100",
242
+ "leave-to-class": "sl-opacity-0"
243
+ }, {
244
+ default: m(() => [
245
+ u(r(ae), {
246
+ class: "sl-fixed sl-z-[9999] sl-overflow-auto sl-rounded-md sl-bg-white dark:sl-bg-slate-800 sl-py-1 sl-text-base sl-shadow-lg dark:sl-shadow-slate-900/50 sl-ring-1 sl-ring-black sl-ring-opacity-5 dark:sl-ring-slate-700 focus:sl-outline-none sm:sl-text-sm",
247
+ style: _(k.value)
248
+ }, {
249
+ default: m(() => [
250
+ a.multiple && a.showAll ? (n(), d("li", {
251
+ key: 0,
252
+ role: "button",
253
+ tabindex: "0",
254
+ onMousedown: s[1] || (s[1] = V(() => {
255
+ }, ["prevent"])),
256
+ onClick: V(G, ["prevent", "stop"]),
257
+ class: h([
258
+ "sl-relative sl-cursor-pointer sl-select-none sl-py-2 sl-pl-3 sl-pr-9 sl-text-gray-900 dark:sl-text-slate-200",
259
+ "hover:sl-bg-stachelock-600 hover:sl-text-white"
260
+ ])
261
+ }, [
262
+ c("span", ge, b(N.value ? "Unselect All" : "Select All"), 1)
263
+ ], 32)) : f("", !0),
264
+ (n(!0), d(ee, null, le(a.items, (i) => (n(), y(r(re), {
265
+ key: A(i),
266
+ value: i,
267
+ as: "template",
268
+ disabled: i.disabled
269
+ }, {
270
+ default: m(({ active: p, selected: B }) => [
271
+ c("li", {
272
+ class: h([
273
+ "sl-relative sl-cursor-default sl-select-none sl-py-2 sl-pl-3 sl-pr-9",
274
+ p ? "sl-bg-stachelock-600 sl-text-white" : "sl-text-gray-900 dark:sl-text-slate-200",
275
+ i.disabled ? "sl-opacity-50 sl-cursor-not-allowed" : ""
276
+ ])
277
+ }, [
278
+ c("div", ye, [
279
+ i.icon ? (n(), y(R(i.icon), {
280
+ key: 0,
281
+ class: h(["sl-h-4 sl-w-4 sl-flex-shrink-0", p ? "sl-text-white" : "sl-text-gray-400 dark:sl-text-slate-300"]),
282
+ "aria-hidden": "true"
283
+ }, null, 8, ["class"])) : f("", !0),
284
+ c("span", {
285
+ class: h([
286
+ "sl-block sl-truncate",
287
+ B ? "sl-font-medium" : "sl-font-normal"
288
+ ])
289
+ }, b(C(i)), 3)
290
+ ]),
291
+ B ? (n(), d("span", xe, [
292
+ u(r(ie), {
293
+ class: "sl-h-5 sl-w-5",
294
+ "aria-hidden": "true"
295
+ })
296
+ ])) : f("", !0)
297
+ ], 2)
298
+ ]),
299
+ _: 2
300
+ }, 1032, ["value", "disabled"]))), 128))
301
+ ]),
302
+ _: 1
303
+ }, 8, ["style"])
304
+ ]),
305
+ _: 1
306
+ })
307
+ ]))
308
+ ])
309
+ ]),
310
+ _: 1
311
+ }, 8, ["modelValue", "disabled", "multiple"])
312
+ ]),
313
+ _: 1
314
+ }, 8, ["id", "name", "label", "disabled", "optional", "tertiary-label", "box-shadow", "error-message", "success-message", "is-valid", "is-touched"])
315
+ ]));
316
+ }
317
+ });
318
+ export {
319
+ Ve as _
320
+ };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as P, computed as v, createElementBlock as a, openBlock as o, createCommentVNode as d, createVNode as u, unref as s, withCtx as c, createElementVNode as m, Fragment as j, renderList as z, createBlock as p, normalizeClass as _, createTextVNode as A, toDisplayString as k, renderSlot as y, KeepAlive as F, resolveDynamicComponent as K, mergeProps as U, toHandlers as q } from "vue";
2
2
  import { TabGroup as J, TabList as Q, Tab as R } from "@headlessui/vue";
3
3
  import { useTabs as W } from "./composables/useTabs.js";
4
- import { _ as X } from "./SelectInput.vue_vue_type_script_setup_true_lang-D4GNv0MY.js";
4
+ import { _ as X } from "./SelectInput.vue_vue_type_script_setup_true_lang-COZuuSFS.js";
5
5
  const Y = { class: "sl-w-full" }, Z = {
6
6
  key: 0,
7
7
  class: "sl-block sm:sl-hidden sl-mb-4"
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as P, computed as x, createElementBlock as n, openBlock as t, createCommentVNode as r, createVNode as v, toDisplayString as m, unref as l, withCtx as F, createElementVNode as c, Fragment as L, renderList as U, normalizeClass as f, createTextVNode as z, renderSlot as g, createBlock as y, KeepAlive as A, resolveDynamicComponent as K, mergeProps as j, toHandlers as q } from "vue";
2
2
  import { TabGroup as J } from "@headlessui/vue";
3
3
  import { useTabs as Q } from "./composables/useTabs.js";
4
- import { _ as R } from "./SelectInput.vue_vue_type_script_setup_true_lang-D4GNv0MY.js";
4
+ import { _ as R } from "./SelectInput.vue_vue_type_script_setup_true_lang-COZuuSFS.js";
5
5
  const W = { class: "sl-w-full" }, X = {
6
6
  key: 0,
7
7
  class: "sl-text-lg sl-font-semibold sl-text-gray-900 dark:sl-text-white sl-mb-4"
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as I, createElementBlock as l, openBlock as t, createElementVNode as o, renderSlot as m, createVNode as V, unref as s, Fragment as r, renderList as i, normalizeClass as u, withModifiers as w, createTextVNode as N, createCommentVNode as h, toDisplayString as p } from "vue";
2
- import { _ as S } from "./SelectInput.vue_vue_type_script_setup_true_lang-D4GNv0MY.js";
2
+ import { _ as S } from "./SelectInput.vue_vue_type_script_setup_true_lang-COZuuSFS.js";
3
3
  import { u as $ } from "./useSimpleTabs-CSgkChEU.js";
4
4
  const B = { class: "sl-w-full" }, E = { class: "sm:sl-hidden" }, U = { class: "sl-hidden sm:sl-block sl-overflow-x-auto" }, z = {
5
5
  class: "sl-flex sl-flex-nowrap sl-space-x-4",
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as _, ref as w, computed as d, createElementBlock as y, openBlock as D, createElementVNode as r, createVNode as s, withCtx as b, createTextVNode as x } from "vue";
2
- import { _ as C } from "../CalendarHeader.vue_vue_type_script_setup_true_lang-hGa2MLyo.js";
2
+ import { _ as C } from "../CalendarHeader.vue_vue_type_script_setup_true_lang-CA_C4dmn.js";
3
3
  import { _ as S } from "../MonthCalendar.vue_vue_type_style_index_0_lang-lnKkvJ9u.js";
4
4
  import { _ as E } from "../EventsList.vue_vue_type_script_setup_true_lang-BTIoGr_e.js";
5
5
  import V from "../components/Button.js";
@@ -1,4 +1,4 @@
1
- import { _ as f } from "../CalendarHeader.vue_vue_type_script_setup_true_lang-hGa2MLyo.js";
1
+ import { _ as f } from "../CalendarHeader.vue_vue_type_script_setup_true_lang-CA_C4dmn.js";
2
2
  export {
3
3
  f as default
4
4
  };