@stachelock/ui 0.2.12 → 0.2.13

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.
package/dist/index.js CHANGED
@@ -1,40 +1,40 @@
1
- import { a as re, g as ae, s as le } from "./id-DafBB_QF.js";
2
- import { defineAsyncComponent as y, defineComponent as g, computed as C, ref as S, watch as v, createElementBlock as p, openBlock as c, normalizeClass as w, createCommentVNode as u, createElementVNode as l, toDisplayString as f, reactive as T, createVNode as m } from "vue";
1
+ import { a as le, g as ae, s as ne } from "./id-DafBB_QF.js";
2
+ import { defineAsyncComponent as y, defineComponent as g, computed as C, ref as S, watch as v, createElementBlock as p, openBlock as c, normalizeClass as $, createCommentVNode as u, createElementVNode as a, toDisplayString as f, reactive as w, createVNode as m } from "vue";
3
3
  import d from "./components/TextInput.js";
4
- import { _ as ie } from "./UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js";
5
- import { _ as de } from "./UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js";
6
- import { _ as ce } from "./UiLoading.vue_vue_type_script_setup_true_lang-KbLKA4SA.js";
7
- import { _ as ue } from "./UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js";
8
- import { _ as ge } from "./UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js";
9
- import { _ as he } from "./UiProgressBar.vue_vue_type_script_setup_true_lang-D4-B3A7K.js";
10
- import { _ as Ce } from "./UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js";
11
- import { _ as ve } from "./UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js";
4
+ import { _ as me } from "./UiAvatar.vue_vue_type_script_setup_true_lang-CDNjUA1L.js";
5
+ import { _ as pe } from "./UiBreadcrumb.vue_vue_type_script_setup_true_lang-quGuN9v4.js";
6
+ import { _ as fe } from "./UiLoading.vue_vue_type_script_setup_true_lang-KbLKA4SA.js";
7
+ import { _ as xe } from "./UiModal.vue_vue_type_script_setup_true_lang-SAo39zpS.js";
8
+ import { _ as be } from "./UiNavLink.vue_vue_type_script_setup_true_lang-Bz5oiCCk.js";
9
+ import { _ as ye } from "./UiProgressBar.vue_vue_type_script_setup_true_lang-D4-B3A7K.js";
10
+ import { _ as Se } from "./UiTable.vue_vue_type_script_setup_true_lang-hI1_xamh.js";
11
+ import { _ as $e } from "./UiTransition.vue_vue_type_script_setup_true_lang-DwBTj18t.js";
12
12
  import { _ as Te } from "./CalendarHeader.vue_vue_type_script_setup_true_lang-Cirr0hMB.js";
13
- import { _ as Ie } from "./DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js";
14
- import { _ as Ee } from "./EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js";
15
- import { _ as Ae } from "./EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js";
16
- import { _ as ke } from "./MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js";
13
+ import { _ as Fe } from "./DayCalendar.vue_vue_type_script_setup_true_lang-xE5bCa3O.js";
14
+ import { _ as je } from "./EventCard.vue_vue_type_script_setup_true_lang-YV1lfgUY.js";
15
+ import { _ as _e } from "./EventsList.vue_vue_type_script_setup_true_lang-Cn_WOpZi.js";
16
+ import { _ as Ne } from "./MonthCalendar.vue_vue_type_script_setup_true_lang-B9Bs0z8j.js";
17
17
  import { _ as De } from "./WeekCalendar.vue_vue_type_script_setup_true_lang-DAFQiRI9.js";
18
18
  import { _ as Ue } from "./YearCalendar.vue_vue_type_script_setup_true_lang-BfJkvmpN.js";
19
19
  import { _ as Me } from "./DynamicForm.vue_vue_type_script_setup_true_lang-BpfPAZiT.js";
20
- import { _ as Pe } from "./DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js";
21
- import { _ as $ } from "./CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js";
20
+ import { _ as Re } from "./DynamicFormField.vue_vue_type_script_setup_true_lang-DvT03FIS.js";
21
+ import { _ as T } from "./CheckboxInput.vue_vue_type_script_setup_true_lang-tYAo46wK.js";
22
22
  import { _ as I } from "./ComboboxInput.vue_vue_type_script_setup_true_lang-LE2kDHpU.js";
23
23
  import { _ as F } from "./TextAreaInput.vue_vue_type_script_setup_true_lang-CbR651TU.js";
24
24
  import { _ as E } from "./SwitchInput.vue_vue_type_script_setup_true_lang-BFr2SByh.js";
25
25
  import { _ as x } from "./SelectInput.vue_vue_type_script_setup_true_lang-BPjHLHdM.js";
26
- import { _ as ze } from "./TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js";
26
+ import { _ as Be } from "./TagifyInput.vue_vue_type_script_setup_true_lang-DRR6jt_8.js";
27
27
  import { _ as Ge } from "./DashboardLayout.vue_vue_type_script_setup_true_lang-Cg83utkU.js";
28
- import { _ as He } from "./DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js";
29
- import { _ as qe } from "./HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js";
30
- import { _ as Ke } from "./NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js";
31
- import { _ as Xe } from "./NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js";
32
- import { _ as et } from "./SidebarLayout.vue_vue_type_script_setup_true_lang-CzLbBcNS.js";
33
- import { default as st } from "./components/Badge.js";
34
- import { default as rt } from "./components/Button.js";
35
- import { default as lt } from "./components/LoadingDots.js";
36
- import { default as it } from "./calendars/CalendarDashboard.js";
37
- import { default as dt } from "./forms/FormFieldWrapper.js";
28
+ import { _ as Ye } from "./DefaultLayout.vue_vue_type_script_setup_true_lang-BZAz6aC-.js";
29
+ import { _ as Je } from "./HeaderLayout.vue_vue_type_script_setup_true_lang-BY2G6hCc.js";
30
+ import { _ as Qe } from "./NavigationGroup.vue_vue_type_script_setup_true_lang-2tAB9Hbx.js";
31
+ import { _ as Ze } from "./NavigationItem.vue_vue_type_script_setup_true_lang-CEsuYl3S.js";
32
+ import { _ as tt } from "./SidebarLayout.vue_vue_type_script_setup_true_lang-CzLbBcNS.js";
33
+ import { default as ot } from "./components/Badge.js";
34
+ import { default as lt } from "./components/Button.js";
35
+ import { default as nt } from "./components/LoadingDots.js";
36
+ import { default as mt } from "./calendars/CalendarDashboard.js";
37
+ import { default as pt } from "./forms/FormFieldWrapper.js";
38
38
  const j = {
39
39
  text: {
40
40
  component: "TextInput",
@@ -87,8 +87,8 @@ class A {
87
87
  /**
88
88
  * Register a new component type
89
89
  */
90
- register(e, t, r) {
91
- this.componentMap[e] = { component: t, loader: r }, this.loadedComponents.delete(e);
90
+ register(e, t, o) {
91
+ this.componentMap[e] = { component: t, loader: o }, this.loadedComponents.delete(e);
92
92
  }
93
93
  /**
94
94
  * Get a component for a field type
@@ -99,11 +99,11 @@ class A {
99
99
  return console.warn(`Component type "${e}" is not registered`), null;
100
100
  if (this.loadedComponents.has(e))
101
101
  return this.loadedComponents.get(e);
102
- const r = y({
102
+ const o = y({
103
103
  loader: t.loader,
104
104
  delay: 0
105
105
  });
106
- return this.loadedComponents.set(e, r), r;
106
+ return this.loadedComponents.set(e, o), o;
107
107
  }
108
108
  /**
109
109
  * Check if a component type is registered
@@ -131,11 +131,11 @@ class A {
131
131
  }
132
132
  }
133
133
  const b = new A();
134
- function K(o, e, t) {
135
- b.register(o, e, t);
134
+ function Q(s, e, t) {
135
+ b.register(s, e, t);
136
136
  }
137
- function Q(o) {
138
- return b.getComponent(o);
137
+ function X(s) {
138
+ return b.getComponent(s);
139
139
  }
140
140
  const h = {
141
141
  colors: {
@@ -240,44 +240,47 @@ const h = {
240
240
  "2xl": "1536px"
241
241
  }
242
242
  };
243
- function _(o, e = h) {
243
+ function _(s, e = h) {
244
244
  const t = { ...e };
245
- function r(a, n) {
245
+ function o(l, n) {
246
246
  if (n && typeof n == "object" && !Array.isArray(n))
247
- for (const s in n)
248
- n.hasOwnProperty(s) && (a[s] && typeof a[s] == "object" && !Array.isArray(a[s]) ? a[s] = r(a[s], n[s]) : a[s] = n[s]);
249
- return a;
247
+ for (const r in n)
248
+ n.hasOwnProperty(r) && (l[r] && typeof l[r] == "object" && !Array.isArray(l[r]) ? l[r] = o(l[r], n[r]) : l[r] = n[r]);
249
+ return l;
250
250
  }
251
- return r(t, o);
251
+ return o(t, s);
252
252
  }
253
- function k(o) {
253
+ function k(s) {
254
254
  let e = `:root {
255
255
  `;
256
- return o.colors && Object.entries(o.colors).forEach(([t, r]) => {
257
- typeof r == "object" && r !== null && Object.entries(r).forEach(([a, n]) => {
258
- const s = a === "DEFAULT" ? t : `${t}-${a}`;
259
- e += ` --sl-color-${s}: ${n};
256
+ return s.colors && Object.entries(s.colors).forEach(([t, o]) => {
257
+ typeof o == "object" && o !== null && Object.entries(o).forEach(([l, n]) => {
258
+ const r = l === "DEFAULT" ? t : `${t}-${l}`;
259
+ e += ` --sl-color-${r}: ${n};
260
260
  `;
261
+ const i = N(n);
262
+ i && (e += ` --sl-color-${r}-rgb: ${i};
263
+ `);
261
264
  });
262
- }), o.spacing && Object.entries(o.spacing).forEach(([t, r]) => {
263
- e += ` --sl-spacing-${t}: ${r};
265
+ }), s.spacing && Object.entries(s.spacing).forEach(([t, o]) => {
266
+ e += ` --sl-spacing-${t}: ${o};
264
267
  `;
265
- }), o.borderRadius && Object.entries(o.borderRadius).forEach(([t, r]) => {
266
- const a = t === "DEFAULT" ? "radius" : `radius-${t}`;
267
- e += ` --sl-${a}: ${r};
268
+ }), s.borderRadius && Object.entries(s.borderRadius).forEach(([t, o]) => {
269
+ const l = t === "DEFAULT" ? "radius" : `radius-${t}`;
270
+ e += ` --sl-${l}: ${o};
268
271
  `;
269
- }), o.shadows && Object.entries(o.shadows).forEach(([t, r]) => {
270
- const a = t === "DEFAULT" ? "shadow" : `shadow-${t}`;
271
- e += ` --sl-${a}: ${r};
272
+ }), s.shadows && Object.entries(s.shadows).forEach(([t, o]) => {
273
+ const l = t === "DEFAULT" ? "shadow" : `shadow-${t}`;
274
+ e += ` --sl-${l}: ${o};
272
275
  `;
273
- }), o.typography && (o.typography.fontFamily && Object.entries(o.typography.fontFamily).forEach(([t, r]) => {
274
- e += ` --sl-font-family-${t}: ${r.join(", ")};
276
+ }), s.typography && (s.typography.fontFamily && Object.entries(s.typography.fontFamily).forEach(([t, o]) => {
277
+ e += ` --sl-font-family-${t}: ${o.join(", ")};
275
278
  `;
276
- }), o.typography.fontSize && Object.entries(o.typography.fontSize).forEach(([t, r]) => {
277
- e += ` --sl-font-size-${t}: ${r};
279
+ }), s.typography.fontSize && Object.entries(s.typography.fontSize).forEach(([t, o]) => {
280
+ e += ` --sl-font-size-${t}: ${o};
278
281
  `;
279
- })), o.breakpoints && Object.entries(o.breakpoints).forEach(([t, r]) => {
280
- e += ` --sl-breakpoint-${t}: ${r};
282
+ })), s.breakpoints && Object.entries(s.breakpoints).forEach(([t, o]) => {
283
+ e += ` --sl-breakpoint-${t}: ${o};
281
284
  `;
282
285
  }), e += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);
283
286
  `, e += ` --sl-ring-offset-color: #ffffff;
@@ -293,44 +296,44 @@ function k(o) {
293
296
  `, e += `}
294
297
  `, e;
295
298
  }
296
- function X(o) {
299
+ function Z(s) {
297
300
  let e = `export default {
298
301
  `;
299
302
  return e += ` prefix: "sl-",
300
303
  `, e += ` theme: {
301
304
  `, e += ` extend: {
302
- `, o.colors && (e += ` colors: {
303
- `, Object.entries(o.colors).forEach(([t, r]) => {
304
- typeof r == "object" && r !== null && (e += ` "${t}": {
305
- `, Object.entries(r).forEach(([a, n]) => {
306
- e += ` "${a === "DEFAULT" ? "DEFAULT" : a}": "${n}",
305
+ `, s.colors && (e += ` colors: {
306
+ `, Object.entries(s.colors).forEach(([t, o]) => {
307
+ typeof o == "object" && o !== null && (e += ` "${t}": {
308
+ `, Object.entries(o).forEach(([l, n]) => {
309
+ e += ` "${l === "DEFAULT" ? "DEFAULT" : l}": "${n}",
307
310
  `;
308
311
  }), e += ` },
309
312
  `);
310
313
  }), e += ` },
311
- `), o.spacing && (e += ` spacing: {
312
- `, Object.entries(o.spacing).forEach(([t, r]) => {
313
- e += ` "${t}": "${r}",
314
+ `), s.spacing && (e += ` spacing: {
315
+ `, Object.entries(s.spacing).forEach(([t, o]) => {
316
+ e += ` "${t}": "${o}",
314
317
  `;
315
318
  }), e += ` },
316
- `), o.borderRadius && (e += ` borderRadius: {
317
- `, Object.entries(o.borderRadius).forEach(([t, r]) => {
318
- e += ` "${t === "DEFAULT" ? "DEFAULT" : t}": "${r}",
319
+ `), s.borderRadius && (e += ` borderRadius: {
320
+ `, Object.entries(s.borderRadius).forEach(([t, o]) => {
321
+ e += ` "${t === "DEFAULT" ? "DEFAULT" : t}": "${o}",
319
322
  `;
320
323
  }), e += ` },
321
- `), o.shadows && (e += ` boxShadow: {
322
- `, Object.entries(o.shadows).forEach(([t, r]) => {
323
- e += ` "${t === "DEFAULT" ? "DEFAULT" : t}": "${r}",
324
+ `), s.shadows && (e += ` boxShadow: {
325
+ `, Object.entries(s.shadows).forEach(([t, o]) => {
326
+ e += ` "${t === "DEFAULT" ? "DEFAULT" : t}": "${o}",
324
327
  `;
325
328
  }), e += ` },
326
- `), o.typography && (o.typography.fontFamily && (e += ` fontFamily: {
327
- `, Object.entries(o.typography.fontFamily).forEach(([t, r]) => {
328
- e += ` "${t}": [${r.map((a) => `"${a}"`).join(", ")}],
329
+ `), s.typography && (s.typography.fontFamily && (e += ` fontFamily: {
330
+ `, Object.entries(s.typography.fontFamily).forEach(([t, o]) => {
331
+ e += ` "${t}": [${o.map((l) => `"${l}"`).join(", ")}],
329
332
  `;
330
333
  }), e += ` },
331
- `), o.typography.fontSize && (e += ` fontSize: {
332
- `, Object.entries(o.typography.fontSize).forEach(([t, r]) => {
333
- e += ` "${t}": "${r}",
334
+ `), s.typography.fontSize && (e += ` fontSize: {
335
+ `, Object.entries(s.typography.fontSize).forEach(([t, o]) => {
336
+ e += ` "${t}": "${o}",
334
337
  `;
335
338
  }), e += ` },
336
339
  `)), e += ` },
@@ -338,6 +341,13 @@ function X(o) {
338
341
  `, e += `};
339
342
  `, e;
340
343
  }
344
+ function N(s) {
345
+ if (typeof s != "string") return null;
346
+ let e = s.trim();
347
+ if (!e.startsWith("#") || (e = e.slice(1), e.length === 3 && (e = e.split("").map((n) => n + n).join("")), e.length !== 6)) return null;
348
+ const t = parseInt(e.slice(0, 2), 16), o = parseInt(e.slice(2, 4), 16), l = parseInt(e.slice(4, 6), 16);
349
+ return Number.isNaN(t) || Number.isNaN(o) || Number.isNaN(l) ? null : `${t} ${o} ${l}`;
350
+ }
341
351
  const L = {
342
352
  viewBox: "0 0 36 36",
343
353
  class: "sl-transform -sl-rotate-90 sl-w-full sl-h-full"
@@ -347,7 +357,7 @@ const L = {
347
357
  }, U = {
348
358
  key: 1,
349
359
  class: "sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center sl-text-xs"
350
- }, Z = /* @__PURE__ */ g({
360
+ }, ee = /* @__PURE__ */ g({
351
361
  __name: "UiRadialProgressBar",
352
362
  props: {
353
363
  progress: {
@@ -367,8 +377,8 @@ const L = {
367
377
  default: "md"
368
378
  }
369
379
  },
370
- setup(o) {
371
- const e = o, t = C(() => {
380
+ setup(s) {
381
+ const e = s, t = C(() => {
372
382
  switch (e.size) {
373
383
  case "xs":
374
384
  return "sl-h-4 sl-w-4";
@@ -381,33 +391,33 @@ const L = {
381
391
  default:
382
392
  return "sl-h-8 sl-w-8";
383
393
  }
384
- }), r = S(e.progress);
385
- return v(() => e.progress, (a) => {
386
- r.value = a;
387
- }), (a, n) => (c(), p("div", {
388
- class: w(["sl-relative", t.value])
394
+ }), o = S(e.progress);
395
+ return v(() => e.progress, (l) => {
396
+ o.value = l;
397
+ }), (l, n) => (c(), p("div", {
398
+ class: $(["sl-relative", t.value])
389
399
  }, [
390
400
  (c(), p("svg", L, [
391
- n[0] || (n[0] = l("path", {
401
+ n[0] || (n[0] = a("path", {
392
402
  class: "sl-fill-none sl-stroke-gray-300",
393
403
  "stroke-width": "3.8",
394
404
  d: "M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"
395
405
  }, null, -1)),
396
- l("path", {
406
+ a("path", {
397
407
  class: "sl-fill-none sl-stroke-stachelock-600 sl-stroke-linecap-round sl-transition-[stroke-dasharray] sl-duration-500 sl-ease-out",
398
- "stroke-dasharray": r.value + ", 100",
408
+ "stroke-dasharray": o.value + ", 100",
399
409
  "stroke-width": "3.8",
400
410
  d: "M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831"
401
411
  }, null, 8, D)
402
412
  ])),
403
- o.label && o.label.length > 0 ? (c(), p("div", V, f(o.label), 1)) : u("", !0),
404
- o.showProgressLabel ? (c(), p("div", U, f(r.value) + "% ", 1)) : u("", !0)
413
+ s.label && s.label.length > 0 ? (c(), p("div", V, f(s.label), 1)) : u("", !0),
414
+ s.showProgressLabel ? (c(), p("div", U, f(o.value) + "% ", 1)) : u("", !0)
405
415
  ], 2));
406
416
  }
407
- }), O = { class: "sl-bg-white sl-rounded-lg sl-shadow sl-p-6" }, M = { class: "sl-space-y-8" }, N = { class: "sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6" }, P = { class: "sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700" }, R = { class: "sl-whitespace-pre-wrap" }, ee = /* @__PURE__ */ g({
417
+ }), O = { class: "sl-bg-white sl-rounded-lg sl-shadow sl-p-6" }, M = { class: "sl-space-y-8" }, P = { class: "sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6" }, R = { class: "sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700" }, z = { class: "sl-whitespace-pre-wrap" }, te = /* @__PURE__ */ g({
408
418
  __name: "InputsShowcase",
409
- setup(o) {
410
- const e = T({
419
+ setup(s) {
420
+ const e = w({
411
421
  text: "",
412
422
  textArea: "",
413
423
  switchOn: !1,
@@ -420,13 +430,13 @@ const L = {
420
430
  { id: 2, name: "Banana" },
421
431
  { id: 3, name: "Cherry" },
422
432
  { id: 4, name: "Durian", disabled: !0 }
423
- ], r = [
433
+ ], o = [
424
434
  { id: 1, name: "TypeScript" },
425
435
  { id: 2, name: "JavaScript" },
426
436
  { id: 3, name: "Python" },
427
437
  { id: 4, name: "Go" },
428
438
  { id: 5, name: "Rust" }
429
- ], a = [
439
+ ], l = [
430
440
  { id: 1, name: "New York" },
431
441
  { id: 2, name: "San Francisco" },
432
442
  { id: 3, name: "Seattle" },
@@ -436,21 +446,21 @@ const L = {
436
446
  { id: 7, name: "Miami" },
437
447
  { id: 8, name: "Boston" }
438
448
  ];
439
- return (n, s) => (c(), p("section", O, [
440
- s[15] || (s[15] = l("h2", { class: "sl-text-xl sl-font-semibold sl-mb-4" }, "All Inputs Showcase", -1)),
441
- l("div", M, [
442
- l("div", null, [
443
- s[7] || (s[7] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Text Input", -1)),
449
+ return (n, r) => (c(), p("section", O, [
450
+ r[15] || (r[15] = a("h2", { class: "sl-text-xl sl-font-semibold sl-mb-4" }, "All Inputs Showcase", -1)),
451
+ a("div", M, [
452
+ a("div", null, [
453
+ r[7] || (r[7] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Text Input", -1)),
444
454
  m(d, {
445
455
  name: "demoText",
446
456
  label: "Text Input",
447
457
  placeholder: "Type something...",
448
458
  value: e.text,
449
- "onUpdate:value": s[0] || (s[0] = (i) => e.text = i)
459
+ "onUpdate:value": r[0] || (r[0] = (i) => e.text = i)
450
460
  }, null, 8, ["value"])
451
461
  ]),
452
- l("div", null, [
453
- s[8] || (s[8] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Text Area", -1)),
462
+ a("div", null, [
463
+ r[8] || (r[8] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Text Area", -1)),
454
464
  m(F, {
455
465
  name: "demoTextArea",
456
466
  label: "Text Area",
@@ -458,75 +468,75 @@ const L = {
458
468
  rows: 4,
459
469
  maxlength: 200,
460
470
  modelValue: e.textArea,
461
- "onUpdate:modelValue": s[1] || (s[1] = (i) => e.textArea = i)
471
+ "onUpdate:modelValue": r[1] || (r[1] = (i) => e.textArea = i)
462
472
  }, null, 8, ["modelValue"])
463
473
  ]),
464
- l("div", null, [
465
- s[9] || (s[9] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Switch", -1)),
474
+ a("div", null, [
475
+ r[9] || (r[9] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Switch", -1)),
466
476
  m(E, {
467
477
  name: "demoSwitch",
468
478
  label: "Enable feature",
469
479
  modelValue: e.switchOn,
470
- "onUpdate:modelValue": s[2] || (s[2] = (i) => e.switchOn = i),
480
+ "onUpdate:modelValue": r[2] || (r[2] = (i) => e.switchOn = i),
471
481
  textTrue: "ON",
472
482
  textFalse: "OFF"
473
483
  }, null, 8, ["modelValue"])
474
484
  ]),
475
- l("div", null, [
476
- s[10] || (s[10] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Checkbox", -1)),
477
- m($, {
485
+ a("div", null, [
486
+ r[10] || (r[10] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Checkbox", -1)),
487
+ m(T, {
478
488
  name: "demoCheckbox",
479
489
  label: "I agree to the terms",
480
490
  modelValue: e.checkbox,
481
- "onUpdate:modelValue": s[3] || (s[3] = (i) => e.checkbox = i)
491
+ "onUpdate:modelValue": r[3] || (r[3] = (i) => e.checkbox = i)
482
492
  }, null, 8, ["modelValue"])
483
493
  ]),
484
- l("div", N, [
485
- l("div", null, [
486
- s[11] || (s[11] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Select (Single)", -1)),
494
+ a("div", P, [
495
+ a("div", null, [
496
+ r[11] || (r[11] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Select (Single)", -1)),
487
497
  m(x, {
488
498
  name: "demoSelect",
489
499
  label: "Favorite Fruit",
490
500
  placeholder: "Select a fruit",
491
501
  items: t,
492
502
  modelValue: e.selectedFruit,
493
- "onUpdate:modelValue": s[4] || (s[4] = (i) => e.selectedFruit = i)
503
+ "onUpdate:modelValue": r[4] || (r[4] = (i) => e.selectedFruit = i)
494
504
  }, null, 8, ["modelValue"])
495
505
  ]),
496
- l("div", null, [
497
- s[12] || (s[12] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Select (Multiple)", -1)),
506
+ a("div", null, [
507
+ r[12] || (r[12] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Select (Multiple)", -1)),
498
508
  m(x, {
499
509
  name: "demoSelectMulti",
500
510
  label: "Favorite Languages",
501
511
  placeholder: "Select languages",
502
- items: r,
512
+ items: o,
503
513
  multiple: "",
504
514
  showAll: "",
505
515
  modelValue: e.selectedLanguages,
506
- "onUpdate:modelValue": s[5] || (s[5] = (i) => e.selectedLanguages = i)
516
+ "onUpdate:modelValue": r[5] || (r[5] = (i) => e.selectedLanguages = i)
507
517
  }, null, 8, ["modelValue"])
508
518
  ])
509
519
  ]),
510
- l("div", null, [
511
- s[13] || (s[13] = l("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Combobox", -1)),
520
+ a("div", null, [
521
+ r[13] || (r[13] = a("h3", { class: "sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2" }, "Combobox", -1)),
512
522
  m(I, {
513
523
  name: "demoCombobox",
514
524
  label: "Search a City",
515
525
  placeholder: "Start typing...",
516
- items: a,
526
+ items: l,
517
527
  modelValue: e.selectedCity,
518
- "onUpdate:modelValue": s[6] || (s[6] = (i) => e.selectedCity = i)
528
+ "onUpdate:modelValue": r[6] || (r[6] = (i) => e.selectedCity = i)
519
529
  }, null, 8, ["modelValue"])
520
530
  ]),
521
- l("div", P, [
522
- s[14] || (s[14] = l("div", { class: "sl-font-semibold sl-mb-1" }, "State", -1)),
523
- l("pre", R, f(e), 1)
531
+ a("div", R, [
532
+ r[14] || (r[14] = a("div", { class: "sl-font-semibold sl-mb-1" }, "State", -1)),
533
+ a("pre", z, f(e), 1)
524
534
  ])
525
535
  ])
526
536
  ]));
527
537
  }
528
538
  });
529
- class z {
539
+ class B {
530
540
  designTokens;
531
541
  prefix = "sl-";
532
542
  injectCSS = !0;
@@ -552,58 +562,58 @@ class z {
552
562
  t && t.remove(), document.head.appendChild(e);
553
563
  }
554
564
  }
555
- const te = new z();
565
+ const se = new B();
556
566
  export {
557
- ie as Avatar,
558
- st as Badge,
559
- de as Breadcrumb,
560
- rt as Button,
561
- it as CalendarDashboard,
567
+ me as Avatar,
568
+ ot as Badge,
569
+ pe as Breadcrumb,
570
+ lt as Button,
571
+ mt as CalendarDashboard,
562
572
  Te as CalendarHeader,
563
- $ as CheckboxInput,
573
+ T as CheckboxInput,
564
574
  I as ComboboxInput,
565
575
  A as ComponentRegistry,
566
576
  Ge as DashboardLayout,
567
- Ie as DayCalendar,
568
- He as DefaultLayout,
577
+ Fe as DayCalendar,
578
+ Ye as DefaultLayout,
569
579
  Me as DynamicForm,
570
- Ee as EventCard,
571
- Ae as EventsList,
572
- Pe as FormField,
573
- dt as FormFieldWrapper,
574
- qe as HeaderLayout,
575
- ee as InputsShowcase,
576
- ce as Loading,
577
- lt as LoadingDots,
578
- ue as Modal,
579
- ke as MonthCalendar,
580
- ge as NavLink,
581
- Ke as NavigationGroup,
582
- Xe as NavigationItem,
583
- he as ProgressBar,
584
- Z as RadialProgressBar,
580
+ je as EventCard,
581
+ _e as EventsList,
582
+ Re as FormField,
583
+ pt as FormFieldWrapper,
584
+ Je as HeaderLayout,
585
+ te as InputsShowcase,
586
+ fe as Loading,
587
+ nt as LoadingDots,
588
+ xe as Modal,
589
+ Ne as MonthCalendar,
590
+ be as NavLink,
591
+ Qe as NavigationGroup,
592
+ Ze as NavigationItem,
593
+ ye as ProgressBar,
594
+ ee as RadialProgressBar,
585
595
  x as SelectInput,
586
- et as SidebarLayout,
587
- te as StachelockUI,
596
+ tt as SidebarLayout,
597
+ se as StachelockUI,
588
598
  E as SwitchInput,
589
- Ce as Table,
590
- ze as TagifyInput,
599
+ Se as Table,
600
+ Be as TagifyInput,
591
601
  F as TextAreaInput,
592
602
  d as TextInput,
593
- ve as Transition,
603
+ $e as Transition,
594
604
  De as WeekCalendar,
595
605
  Ue as YearCalendar,
596
606
  b as componentRegistry,
597
- te as default,
607
+ se as default,
598
608
  j as defaultComponentMap,
599
609
  h as defaultDesignTokens,
600
610
  k as generateCSSVariables,
601
- re as generateDeterministicId,
611
+ le as generateDeterministicId,
602
612
  ae as generateId,
603
- X as generateTailwindConfig,
604
- Q as getComponent,
613
+ Z as generateTailwindConfig,
614
+ X as getComponent,
605
615
  _ as mergeDesignTokens,
606
- K as registerComponent,
607
- le as sanitizeId
616
+ Q as registerComponent,
617
+ ne as sanitizeId
608
618
  };
609
619
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/UiTextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: any;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: any, source: any): any {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (target[key] && typeof target[key] === 'object' && !Array.isArray(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n","<template>\n <div class=\"sl-relative\" :class=\"sizeClass\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <path class=\"sl-fill-none sl-stroke-gray-300\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n <path\n class=\"sl-fill-none sl-stroke-stachelock-600 sl-stroke-linecap-round sl-transition-[stroke-dasharray] sl-duration-500 sl-ease-out\"\n :stroke-dasharray=\"progress + ', 100'\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n </svg>\n <div v-if=\"label && label.length > 0\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center\">{{ label }}</div>\n <div v-if=\"showProgressLabel\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center sl-text-xs\">\n {{ progress }}%\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\ntype RadialProgressBarSize = 'xs' | 'sm' | 'md' | 'lg';\n\nconst props = defineProps({\n progress: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: ''\n },\n showProgressLabel: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as () => RadialProgressBarSize,\n default: 'md'\n }\n});\n\nconst sizeClass = computed(() => {\n switch (props.size) {\n case 'xs':\n return 'sl-h-4 sl-w-4'\n case 'sm':\n return 'sl-h-8 sl-w-8'\n case 'md':\n return 'sl-h-12 sl-w-12'\n case 'lg':\n return 'sl-h-16 sl-w-16'\n default:\n return 'sl-h-8 sl-w-8'\n }\n});\n\nconst progress = ref(props.progress);\n\nwatch(() => props.progress, (newValue) => {\n progress.value = newValue;\n});\n</script>\n\n<style scoped>\n</style>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from '../UiTextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (options.designTokens || options.prefix !== undefined || options.injectCSS !== undefined) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n this.designTokens = mergeDesignTokens(this.designTokens, options.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","name","fonts","size","generateTailwindConfig","config","f","props","__props","sizeClass","computed","progress","ref","watch","newValue","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","state","reactive","fruits","languages","cities","_cache","_hoisted_2","_createVNode","TextInput","$event","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","_hoisted_5","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/component-registry.ts","../src/config/design-tokens.ts","../src/config/css-variables.ts","../src/components/UiRadialProgressBar.vue","../src/components/inputs/InputsShowcase.vue","../src/plugin/configure.ts"],"sourcesContent":["import { defineAsyncComponent, type Component } from 'vue'\nimport UiTextInput from '../components/UiTextInput.vue'\nimport type { ComponentMap } from '../types/form'\n\n/**\n * Default component map for dynamic forms\n */\nexport const defaultComponentMap: ComponentMap = {\n text: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n email: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n password: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n number: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n tel: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n url: {\n component: 'TextInput',\n loader: () => Promise.resolve(UiTextInput)\n },\n textarea: {\n component: 'TextAreaInput',\n loader: () => import('../components/inputs/TextAreaInput.vue')\n },\n select: {\n component: 'SelectInput',\n loader: () => import('../components/inputs/SelectInput.vue')\n },\n combobox: {\n component: 'ComboboxInput',\n loader: () => import('../components/inputs/ComboboxInput.vue')\n },\n checkbox: {\n component: 'CheckboxInput',\n loader: () => import('../components/inputs/CheckboxInput.vue')\n },\n switch: {\n component: 'SwitchInput',\n loader: () => import('../components/inputs/SwitchInput.vue')\n }\n}\n\n/**\n * Component registry class for managing dynamic form components\n */\nexport class ComponentRegistry {\n private componentMap: ComponentMap = { ...defaultComponentMap }\n private loadedComponents: Map<string, Component> = new Map()\n\n /**\n * Register a new component type\n */\n register(type: string, component: string, loader: () => Promise<any>): void {\n this.componentMap[type] = { component, loader }\n // Clear cached component if it exists\n this.loadedComponents.delete(type)\n }\n\n /**\n * Get a component for a field type\n */\n getComponent(type: string): Component | null {\n const mapItem = this.componentMap[type]\n if (!mapItem) {\n console.warn(`Component type \"${type}\" is not registered`)\n return null\n }\n\n // Return cached component if available\n if (this.loadedComponents.has(type)) {\n return this.loadedComponents.get(type)!\n }\n\n // Create async component\n const asyncComponent = defineAsyncComponent({\n loader: mapItem.loader,\n delay: 0\n })\n\n this.loadedComponents.set(type, asyncComponent)\n return asyncComponent\n }\n\n /**\n * Check if a component type is registered\n */\n hasComponent(type: string): boolean {\n return type in this.componentMap\n }\n\n /**\n * Get all registered component types\n */\n getRegisteredTypes(): string[] {\n return Object.keys(this.componentMap)\n }\n\n /**\n * Unregister a component type\n */\n unregister(type: string): void {\n delete this.componentMap[type]\n this.loadedComponents.delete(type)\n }\n\n /**\n * Clear all cached components\n */\n clearCache(): void {\n this.loadedComponents.clear()\n }\n}\n\n// Global component registry instance\nexport const componentRegistry = new ComponentRegistry()\n\n/**\n * Register a component type globally\n */\nexport function registerComponent(type: string, component: string, loader: () => Promise<any>): void {\n componentRegistry.register(type, component, loader)\n}\n\n/**\n * Get a component for a field type\n */\nexport function getComponent(type: string): Component | null {\n return componentRegistry.getComponent(type)\n}\n","export interface StachelockUIDesignTokens {\n colors?: {\n primary?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n };\n stachelock?: {\n 50?: string;\n 100?: string;\n 200?: string;\n 300?: string;\n 400?: string;\n 500?: string;\n 600?: string;\n 700?: string;\n 800?: string;\n 900?: string;\n '050'?: string;\n };\n [key: string]: any;\n };\n spacing?: {\n [key: string]: string;\n };\n borderRadius?: {\n [key: string]: string;\n };\n shadows?: {\n [key: string]: string;\n };\n typography?: {\n fontFamily?: {\n [key: string]: string[];\n };\n fontSize?: {\n [key: string]: string;\n };\n };\n breakpoints?: {\n [key: string]: string;\n };\n}\n\nexport const defaultDesignTokens: StachelockUIDesignTokens = {\n colors: {\n primary: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n },\n stachelock: {\n 50: '#edeff9',\n 100: '#dbdff2',\n 200: '#b8bfe6',\n 300: '#949ed9',\n 400: '#717ecd',\n 500: '#4d5ec0',\n 600: '#3e4b9a',\n 700: '#2e3873',\n 800: '#1f264d',\n 900: '#0f1326',\n '050': '#edeff9', // Same as 50 for consistency\n },\n },\n spacing: {\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem',\n '72': '18rem',\n '80': '20rem',\n '96': '24rem',\n },\n borderRadius: {\n 'none': '0',\n 'sm': '0.125rem',\n 'DEFAULT': '0.25rem',\n 'md': '0.375rem',\n 'lg': '0.5rem',\n 'xl': '0.75rem',\n '2xl': '1rem',\n '3xl': '1.5rem',\n 'full': '9999px',\n },\n shadows: {\n 'sm': '0 1px 2px 0 rgb(0 0 0 / 0.05)',\n 'DEFAULT': '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',\n 'md': '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',\n 'lg': '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',\n 'xl': '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',\n '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',\n 'inner': 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',\n 'none': 'none',\n },\n typography: {\n fontFamily: {\n sans: ['Inter', 'ui-sans-serif', 'system-ui', 'sans-serif'],\n serif: ['ui-serif', 'Georgia', 'Cambria', 'serif'],\n mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace'],\n },\n fontSize: {\n 'xs': '0.75rem',\n 'sm': '0.875rem',\n 'base': '1rem',\n 'lg': '1.125rem',\n 'xl': '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '3.75rem',\n '7xl': '4.5rem',\n '8xl': '6rem',\n '9xl': '8rem',\n },\n },\n breakpoints: {\n 'sm': '640px',\n 'md': '768px',\n 'lg': '1024px',\n 'xl': '1280px',\n '2xl': '1536px',\n },\n};\n\nexport function mergeDesignTokens(\n customTokens: StachelockUIDesignTokens,\n defaults: StachelockUIDesignTokens = defaultDesignTokens\n): StachelockUIDesignTokens {\n const merged = { ...defaults };\n \n // Deep merge function for nested objects\n function deepMerge(target: any, source: any): any {\n if (source && typeof source === 'object' && !Array.isArray(source)) {\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n if (target[key] && typeof target[key] === 'object' && !Array.isArray(target[key])) {\n target[key] = deepMerge(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n }\n \n return deepMerge(merged, customTokens);\n}\n","import type { StachelockUIDesignTokens } from './design-tokens';\n\nexport function generateCSSVariables(tokens: StachelockUIDesignTokens): string {\n let css = ':root {\\n';\n \n // Generate color variables (+ RGB for opacity utilities)\n if (tokens.colors) {\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n Object.entries(colorShades).forEach(([shade, value]) => {\n const variableName = shade === 'DEFAULT' ? colorName : `${colorName}-${shade}`;\n css += ` --sl-color-${variableName}: ${value};\\n`;\n const rgb = hexToRgb(value as string);\n if (rgb) {\n css += ` --sl-color-${variableName}-rgb: ${rgb};\\n`;\n }\n });\n }\n });\n }\n \n // Generate spacing variables\n if (tokens.spacing) {\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n css += ` --sl-spacing-${name}: ${value};\\n`;\n });\n }\n \n // Generate border radius variables\n if (tokens.borderRadius) {\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'radius' : `radius-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate shadow variables\n if (tokens.shadows) {\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const variableName = name === 'DEFAULT' ? 'shadow' : `shadow-${name}`;\n css += ` --sl-${variableName}: ${value};\\n`;\n });\n }\n \n // Generate typography variables\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n css += ` --sl-font-family-${name}: ${fonts.join(', ')};\\n`;\n });\n }\n \n if (tokens.typography.fontSize) {\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n css += ` --sl-font-size-${name}: ${size};\\n`;\n });\n }\n }\n \n // Generate breakpoint variables\n if (tokens.breakpoints) {\n Object.entries(tokens.breakpoints).forEach(([name, value]) => {\n css += ` --sl-breakpoint-${name}: ${value};\\n`;\n });\n }\n \n // Add some computed variables\n css += ` --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-ring-offset-color: #ffffff;\\n`;\n css += ` --sl-ring-width: 2px;\\n`;\n css += ` --sl-outline-color: var(--sl-color-stachelock-600, #3e4b9a);\\n`;\n css += ` --sl-outline-width: 2px;\\n`;\n \n css += '}\\n\\n';\n \n // Add dark mode variables\n css += '@media (prefers-color-scheme: dark) {\\n';\n css += ' :root {\\n';\n css += ' --sl-ring-color: var(--sl-color-stachelock-600, #3e4b9a);\\n';\n css += ' }\\n';\n css += '}\\n';\n \n return css;\n}\n\nexport function generateTailwindConfig(tokens: StachelockUIDesignTokens): string {\n let config = 'export default {\\n';\n config += ' prefix: \"sl-\",\\n';\n config += ' theme: {\\n';\n config += ' extend: {\\n';\n \n // Colors\n if (tokens.colors) {\n config += ' colors: {\\n';\n Object.entries(tokens.colors).forEach(([colorName, colorShades]) => {\n if (typeof colorShades === 'object' && colorShades !== null) {\n config += ` \"${colorName}\": {\\n`;\n Object.entries(colorShades).forEach(([shade, value]) => {\n const shadeName = shade === 'DEFAULT' ? 'DEFAULT' : shade;\n config += ` \"${shadeName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n });\n config += ' },\\n';\n }\n \n // Spacing\n if (tokens.spacing) {\n config += ' spacing: {\\n';\n Object.entries(tokens.spacing).forEach(([name, value]) => {\n config += ` \"${name}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Border radius\n if (tokens.borderRadius) {\n config += ' borderRadius: {\\n';\n Object.entries(tokens.borderRadius).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Shadows\n if (tokens.shadows) {\n config += ' boxShadow: {\\n';\n Object.entries(tokens.shadows).forEach(([name, value]) => {\n const configName = name === 'DEFAULT' ? 'DEFAULT' : name;\n config += ` \"${configName}\": \"${value}\",\\n`;\n });\n config += ' },\\n';\n }\n \n // Typography\n if (tokens.typography) {\n if (tokens.typography.fontFamily) {\n config += ' fontFamily: {\\n';\n Object.entries(tokens.typography.fontFamily).forEach(([name, fonts]) => {\n config += ` \"${name}\": [${fonts.map(f => `\"${f}\"`).join(', ')}],\\n`;\n });\n config += ' },\\n';\n }\n \n if (tokens.typography.fontSize) {\n config += ' fontSize: {\\n';\n Object.entries(tokens.typography.fontSize).forEach(([name, size]) => {\n config += ` \"${name}\": \"${size}\",\\n`;\n });\n config += ' },\\n';\n }\n }\n \n config += ' },\\n';\n config += ' },\\n';\n config += '};\\n';\n \n return config;\n}\n\nfunction hexToRgb(hex: string): string | null {\n if (typeof hex !== 'string') return null;\n let normalized = hex.trim();\n if (!normalized.startsWith('#')) return null;\n normalized = normalized.slice(1);\n if (normalized.length === 3) {\n normalized = normalized.split('').map((c) => c + c).join('');\n }\n if (normalized.length !== 6) return null;\n const r = parseInt(normalized.slice(0, 2), 16);\n const g = parseInt(normalized.slice(2, 4), 16);\n const b = parseInt(normalized.slice(4, 6), 16);\n if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) return null;\n return `${r} ${g} ${b}`;\n}\n","<template>\n <div class=\"sl-relative\" :class=\"sizeClass\">\n <svg viewBox=\"0 0 36 36\" class=\"sl-transform -sl-rotate-90 sl-w-full sl-h-full\">\n <path class=\"sl-fill-none sl-stroke-gray-300\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n <path\n class=\"sl-fill-none sl-stroke-stachelock-600 sl-stroke-linecap-round sl-transition-[stroke-dasharray] sl-duration-500 sl-ease-out\"\n :stroke-dasharray=\"progress + ', 100'\" stroke-width=\"3.8\"\n d=\"M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831\" />\n </svg>\n <div v-if=\"label && label.length > 0\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center\">{{ label }}</div>\n <div v-if=\"showProgressLabel\"\n class=\"sl-absolute sl-top-1/2 sl-left-1/2 sl-transform -sl-translate-x-1/2 -sl-translate-y-1/2 sl-text-center sl-text-xs\">\n {{ progress }}%\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\ntype RadialProgressBarSize = 'xs' | 'sm' | 'md' | 'lg';\n\nconst props = defineProps({\n progress: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: ''\n },\n showProgressLabel: {\n type: Boolean,\n default: false\n },\n size: {\n type: String as () => RadialProgressBarSize,\n default: 'md'\n }\n});\n\nconst sizeClass = computed(() => {\n switch (props.size) {\n case 'xs':\n return 'sl-h-4 sl-w-4'\n case 'sm':\n return 'sl-h-8 sl-w-8'\n case 'md':\n return 'sl-h-12 sl-w-12'\n case 'lg':\n return 'sl-h-16 sl-w-16'\n default:\n return 'sl-h-8 sl-w-8'\n }\n});\n\nconst progress = ref(props.progress);\n\nwatch(() => props.progress, (newValue) => {\n progress.value = newValue;\n});\n</script>\n\n<style scoped>\n</style>\n","<template>\n <section class=\"sl-bg-white sl-rounded-lg sl-shadow sl-p-6\">\n <h2 class=\"sl-text-xl sl-font-semibold sl-mb-4\">All Inputs Showcase</h2>\n\n <div class=\"sl-space-y-8\">\n <!-- Text Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Input</h3>\n <TextInput\n name=\"demoText\"\n label=\"Text Input\"\n placeholder=\"Type something...\"\n v-model:value=\"state.text\"\n />\n </div>\n\n <!-- Text Area Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Text Area</h3>\n <TextAreaInput\n name=\"demoTextArea\"\n label=\"Text Area\"\n placeholder=\"Write a longer message...\"\n :rows=\"4\"\n :maxlength=\"200\"\n v-model=\"state.textArea\"\n />\n </div>\n\n <!-- Switch Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Switch</h3>\n <SwitchInput\n name=\"demoSwitch\"\n label=\"Enable feature\"\n v-model=\"state.switchOn\"\n textTrue=\"ON\"\n textFalse=\"OFF\"\n />\n </div>\n\n <!-- Checkbox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Checkbox</h3>\n <CheckboxInput\n name=\"demoCheckbox\"\n label=\"I agree to the terms\"\n v-model=\"state.checkbox\"\n />\n </div>\n\n <!-- Select Input -->\n <div class=\"sl-grid sl-grid-cols-1 sl-md:grid-cols-2 sl-gap-6\">\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Single)</h3>\n <SelectInput\n name=\"demoSelect\"\n label=\"Favorite Fruit\"\n placeholder=\"Select a fruit\"\n :items=\"fruits\"\n v-model=\"state.selectedFruit\"\n />\n </div>\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Select (Multiple)</h3>\n <SelectInput\n name=\"demoSelectMulti\"\n label=\"Favorite Languages\"\n placeholder=\"Select languages\"\n :items=\"languages\"\n multiple\n showAll\n v-model=\"state.selectedLanguages\"\n />\n </div>\n </div>\n\n <!-- Combobox Input -->\n <div>\n <h3 class=\"sl-text-sm sl-font-medium sl-text-gray-700 sl-mb-2\">Combobox</h3>\n <ComboboxInput\n name=\"demoCombobox\"\n label=\"Search a City\"\n placeholder=\"Start typing...\"\n :items=\"cities\"\n v-model=\"state.selectedCity\"\n />\n </div>\n\n <!-- Current State -->\n <div class=\"sl-bg-gray-50 sl-rounded-md sl-p-4 sl-text-sm sl-text-gray-700\">\n <div class=\"sl-font-semibold sl-mb-1\">State</div>\n <pre class=\"sl-whitespace-pre-wrap\">{{ state }}</pre>\n </div>\n </div>\n </section>\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue'\nimport TextInput from '../UiTextInput.vue'\nimport TextAreaInput from './TextAreaInput.vue'\nimport SwitchInput from './SwitchInput.vue'\nimport CheckboxInput from './CheckboxInput.vue'\nimport SelectInput from './SelectInput.vue'\nimport ComboboxInput from './ComboboxInput.vue'\n\nconst state = reactive({\n text: '',\n textArea: '',\n switchOn: false,\n checkbox: false,\n selectedFruit: null as null | { id: number; name: string },\n selectedLanguages: [] as Array<{ id: number; name: string }>,\n selectedCity: null as null | { id: number; name: string },\n})\n\nconst fruits = [\n { id: 1, name: 'Apple' },\n { id: 2, name: 'Banana' },\n { id: 3, name: 'Cherry' },\n { id: 4, name: 'Durian', disabled: true },\n]\n\nconst languages = [\n { id: 1, name: 'TypeScript' },\n { id: 2, name: 'JavaScript' },\n { id: 3, name: 'Python' },\n { id: 4, name: 'Go' },\n { id: 5, name: 'Rust' },\n]\n\nconst cities = [\n { id: 1, name: 'New York' },\n { id: 2, name: 'San Francisco' },\n { id: 3, name: 'Seattle' },\n { id: 4, name: 'Austin' },\n { id: 5, name: 'Chicago' },\n { id: 6, name: 'Denver' },\n { id: 7, name: 'Miami' },\n { id: 8, name: 'Boston' },\n]\n</script>\n\n\n","import type { App } from 'vue';\nimport type { StachelockUIDesignTokens } from '../config/design-tokens';\nimport { defaultDesignTokens, mergeDesignTokens } from '../config/design-tokens';\nimport { generateCSSVariables } from '../config/css-variables';\n\nexport interface StachelockUIOptions {\n designTokens?: StachelockUIDesignTokens;\n prefix?: string;\n injectCSS?: boolean;\n}\n\nexport interface StachelockUIPlugin {\n install: (app: App, options?: StachelockUIOptions) => void;\n configure: (options: StachelockUIOptions) => void;\n getDesignTokens: () => StachelockUIDesignTokens;\n generateCSS: () => string;\n}\n\nclass StachelockUIPluginImpl implements StachelockUIPlugin {\n private designTokens: StachelockUIDesignTokens;\n private prefix: string = 'sl-';\n private injectCSS: boolean = true;\n\n constructor() {\n // Use imported default tokens\n this.designTokens = defaultDesignTokens;\n }\n\n install(app: App, options: StachelockUIOptions = {}) {\n // Configure with options if provided\n if (options.designTokens || options.prefix !== undefined || options.injectCSS !== undefined) {\n this.configure(options);\n }\n\n // Inject CSS variables if enabled\n if (this.injectCSS) {\n this.injectCSSVariables();\n }\n\n // Make plugin available globally\n app.config.globalProperties.$stachelockUI = this;\n \n // Provide plugin instance to components\n app.provide('stachelockUI', this);\n }\n\n configure(options: StachelockUIOptions) {\n if (options.designTokens) {\n this.designTokens = mergeDesignTokens(this.designTokens, options.designTokens);\n }\n \n if (options.prefix !== undefined) {\n this.prefix = options.prefix;\n }\n \n if (options.injectCSS !== undefined) {\n this.injectCSS = options.injectCSS;\n }\n }\n\n getDesignTokens(): StachelockUIDesignTokens {\n return this.designTokens;\n }\n\n generateCSS(): string {\n return generateCSSVariables(this.designTokens);\n }\n\n private injectCSSVariables() {\n // Create a style element and inject the CSS variables\n const style = document.createElement('style');\n style.textContent = this.generateCSS();\n style.setAttribute('data-stachelock-ui', 'true');\n \n // Remove any existing injected styles\n const existingStyle = document.querySelector('style[data-stachelock-ui=\"true\"]');\n if (existingStyle) {\n existingStyle.remove();\n }\n \n // Inject the new styles\n document.head.appendChild(style);\n }\n}\n\n// Create and export the plugin instance\nexport const StachelockUI: StachelockUIPlugin = new StachelockUIPluginImpl();\n\n// Export the plugin class for advanced usage\nexport { StachelockUIPluginImpl };\n"],"names":["defaultComponentMap","UiTextInput","ComponentRegistry","type","component","loader","mapItem","asyncComponent","defineAsyncComponent","componentRegistry","registerComponent","getComponent","defaultDesignTokens","mergeDesignTokens","customTokens","defaults","merged","deepMerge","target","source","key","generateCSSVariables","tokens","css","colorName","colorShades","shade","value","variableName","rgb","hexToRgb","name","fonts","size","generateTailwindConfig","config","f","hex","normalized","c","r","g","b","props","__props","sizeClass","computed","progress","ref","watch","newValue","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_createElementVNode","_hoisted_3","_toDisplayString","_hoisted_4","state","reactive","fruits","languages","cities","_cache","_hoisted_2","_createVNode","TextInput","$event","TextAreaInput","SwitchInput","CheckboxInput","SelectInput","ComboboxInput","_hoisted_5","StachelockUIPluginImpl","app","options","style","existingStyle","StachelockUI"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"css-variables.d.ts","sourceRoot":"","sources":["../../../src/config/css-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CA6E7E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CA2E/E"}
1
+ {"version":3,"file":"css-variables.d.ts","sourceRoot":"","sources":["../../../src/config/css-variables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CAiF7E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,CA2E/E"}
package/dist/style.css CHANGED
@@ -1,3 +1,3 @@
1
1
  @import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap");*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#93c5fd;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#93c5fd;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
2
 
3
- /*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--sl-color-primary:var(--sl-color-stachelock-600,#3e4b9a);--sl-color-primary-50:var(--sl-color-primary-50,#edeff9);--sl-color-primary-100:var(--sl-color-primary-100,#dbdff2);--sl-color-primary-600:var(--sl-color-primary-600,#3e4b9a);--sl-color-primary-700:var(--sl-color-primary-700,#2e3873);--sl-ring-color:var(--sl-ring-color,var(--sl-color-stachelock-600,#3e4b9a))}@media (prefers-color-scheme:dark){:root{--sl-ring-color:var(--sl-ring-color,var(--sl-color-stachelock-600,#3e4b9a))}}.sl-form{font-family:Inter,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.sl-form .has-error input,.sl-form .has-error input:focus,.sl-form .has-error select,.sl-form .has-error select:focus,.sl-form .has-error textarea,.sl-form .has-error textarea:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.sl-form .success input,.sl-form .success input:focus,.sl-form .success select,.sl-form .success select:focus,.sl-form .success textarea,.sl-form .success textarea:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.sl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sl-pointer-events-none{pointer-events:none}.sl-pointer-events-auto{pointer-events:auto}.sl-fixed{position:fixed}.sl-absolute{position:absolute}.sl-relative{position:relative}.sl-sticky{position:sticky}.sl-inset-0{inset:0}.sl-inset-1{inset:.25rem}.sl-inset-y-0{top:0;bottom:0}.sl-bottom-2{bottom:.5rem}.sl-bottom-4{bottom:1rem}.sl-left-0{left:0}.sl-left-1\/2{left:50%}.sl-left-full{left:100%}.sl-right-0{right:0}.sl-right-1{right:.25rem}.sl-right-2{right:.5rem}.sl-top-0{top:0}.sl-top-1{top:.25rem}.sl-top-1\/2{top:50%}.sl-isolate{isolation:isolate}.sl-z-10{z-index:10}.sl-z-20{z-index:20}.sl-z-30{z-index:30}.sl-z-40{z-index:40}.sl-z-50{z-index:50}.sl-order-1{order:1}.sl-col-span-1{grid-column:span 1/span 1}.sl-col-span-2{grid-column:span 2/span 2}.sl-col-span-6{grid-column:span 6/span 6}.sl-col-start-1{grid-column-start:1}.sl-col-start-3{grid-column-start:3}.sl-col-start-7{grid-column-start:7}.sl-col-start-8{grid-column-start:8}.sl-col-end-1{grid-column-end:1}.sl-col-end-13{grid-column-end:13}.sl-col-end-2{grid-column-end:2}.sl-row-span-full{grid-row:1/-1}.sl-row-start-1{grid-row-start:1}.sl-row-end-1{grid-row-end:1}.-sl-m-2\.5{margin:-.625rem}.-sl-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-sl-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-sl-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sl--mx-4{margin-left:-1rem;margin-right:-1rem}.sl--my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sl-mx-2{margin-left:.5rem;margin-right:.5rem}.sl-mx-4{margin-left:1rem;margin-right:1rem}.sl-mx-auto{margin-left:auto;margin-right:auto}.sl-my-4{margin-top:1rem;margin-bottom:1rem}.-sl-ml-0\.5{margin-left:-.125rem}.-sl-ml-14{margin-left:-3.5rem}.-sl-mt-2\.5{margin-top:-.625rem}.sl--mr-px{margin-right:-1px}.sl-mb-1{margin-bottom:.25rem}.sl-mb-2{margin-bottom:.5rem}.sl-mb-3{margin-bottom:.75rem}.sl-mb-4{margin-bottom:1rem}.sl-mb-6{margin-bottom:1.5rem}.sl-mb-8{margin-bottom:2rem}.sl-ml-1{margin-left:.25rem}.sl-ml-10{margin-left:2.5rem}.sl-ml-2{margin-left:.5rem}.sl-ml-3{margin-left:.75rem}.sl-ml-4{margin-left:1rem}.sl-ml-auto{margin-left:auto}.sl-mr-16{margin-right:4rem}.sl-mr-3{margin-right:.75rem}.sl-mt-1{margin-top:.25rem}.sl-mt-10{margin-top:2.5rem}.sl-mt-2{margin-top:.5rem}.sl-mt-3{margin-top:.75rem}.sl-mt-4{margin-top:1rem}.sl-mt-6{margin-top:1.5rem}.sl-mt-8{margin-top:2rem}.sl-mt-auto{margin-top:auto}.sl-mt-px{margin-top:1px}.sl-block{display:block}.sl-inline-block{display:inline-block}.sl-flex{display:flex}.sl-inline-flex{display:inline-flex}.sl-flow-root{display:flow-root}.sl-grid{display:grid}.sl-hidden{display:none}.sl-h-10{height:2.5rem}.sl-h-12{height:3rem}.sl-h-14{height:3.5rem}.sl-h-16{height:4rem}.sl-h-2{height:.5rem}.sl-h-2\.5{height:.625rem}.sl-h-20{height:5rem}.sl-h-24{height:6rem}.sl-h-3{height:.75rem}.sl-h-3\.5{height:.875rem}.sl-h-4{height:1rem}.sl-h-5{height:1.25rem}.sl-h-6{height:1.5rem}.sl-h-7{height:1.75rem}.sl-h-8{height:2rem}.sl-h-auto{height:auto}.sl-h-full{height:100%}.sl-max-h-56{max-height:14rem}.sl-max-h-60{max-height:15rem}.sl-min-h-\[80px\]{min-height:80px}.sl-min-h-full{min-height:100%}.sl-min-h-screen{min-height:100vh}.sl-w-1\/2{width:50%}.sl-w-10{width:2.5rem}.sl-w-11{width:2.75rem}.sl-w-12{width:3rem}.sl-w-14{width:3.5rem}.sl-w-16{width:4rem}.sl-w-2{width:.5rem}.sl-w-20{width:5rem}.sl-w-24{width:6rem}.sl-w-3{width:.75rem}.sl-w-3\.5{width:.875rem}.sl-w-3\/4{width:75%}.sl-w-32{width:8rem}.sl-w-4{width:1rem}.sl-w-5{width:1.25rem}.sl-w-6{width:1.5rem}.sl-w-7{width:1.75rem}.sl-w-8{width:2rem}.sl-w-full{width:100%}.sl-w-px{width:1px}.sl-w-screen{width:100vw}.sl-min-w-0{min-width:0}.sl-min-w-full{min-width:100%}.sl-max-w-2xl{max-width:42rem}.sl-max-w-4xl{max-width:56rem}.sl-max-w-7xl{max-width:80rem}.sl-max-w-\[150px\]{max-width:150px}.sl-max-w-full{max-width:100%}.sl-max-w-md{max-width:28rem}.sl-max-w-xs{max-width:20rem}.sl-flex-1{flex:1 1 0%}.sl-flex-auto{flex:1 1 auto}.sl-flex-none{flex:none}.sl-flex-shrink-0,.sl-shrink-0{flex-shrink:0}.sl-grow{flex-grow:1}.-sl-translate-x-1\/2{--tw-translate-x:-50%}.-sl-translate-x-1\/2,.-sl-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-translate-x-full{--tw-translate-x:-100%}.-sl-translate-y-1\/2{--tw-translate-y:-50%}.-sl-translate-y-1\/2,.-sl-translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-translate-y-4{--tw-translate-y:-1rem}.sl-translate-x-0{--tw-translate-x:0px}.sl-translate-x-0,.sl-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-translate-x-1\/2{--tw-translate-x:50%}.sl-translate-x-5{--tw-translate-x:1.25rem}.sl-translate-x-5,.sl-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-translate-y-0{--tw-translate-y:0px}.sl-translate-y-4{--tw-translate-y:1rem}.-sl-rotate-90,.sl-translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-rotate-90{--tw-rotate:-90deg}.sl-scale-100{--tw-scale-x:1;--tw-scale-y:1}.sl-scale-100,.sl-scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sl-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes sl-pulse{50%{opacity:.5}}.sl-animate-pulse{animation:sl-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes sl-spin{to{transform:rotate(1turn)}}.sl-animate-spin{animation:sl-spin 1s linear infinite}.sl-cursor-default{cursor:default}.sl-cursor-not-allowed{cursor:not-allowed}.sl-cursor-pointer{cursor:pointer}.sl-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.sl-resize-y{resize:vertical}.sl-appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.sl-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sl-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sl-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sl-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.sl-flex-col{flex-direction:column}.sl-flex-wrap{flex-wrap:wrap}.sl-items-start{align-items:flex-start}.sl-items-center{align-items:center}.sl-justify-start{justify-content:flex-start}.sl-justify-end{justify-content:flex-end}.sl-justify-center{justify-content:center}.sl-justify-between{justify-content:space-between}.sl-gap-2{gap:.5rem}.sl-gap-3{gap:.75rem}.sl-gap-4{gap:1rem}.sl-gap-6{gap:1.5rem}.sl-gap-8{gap:2rem}.sl-gap-px{gap:1px}.sl-gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.sl-gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sl-gap-y-5{row-gap:1.25rem}.sl-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.sl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.sl-space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.sl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.sl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.sl-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.sl-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.sl-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.sl-divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.sl-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.sl-divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.sl-divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.sl-divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity,1))}.sl-self-center{align-self:center}.sl-justify-self-end{justify-self:end}.sl-justify-self-center{justify-self:center}.sl-overflow-auto{overflow:auto}.sl-overflow-hidden{overflow:hidden}.sl-overflow-x-auto{overflow-x:auto}.sl-overflow-y-auto{overflow-y:auto}.sl-truncate{overflow:hidden;white-space:nowrap}.sl-overflow-ellipsis,.sl-truncate{text-overflow:ellipsis}.sl-whitespace-nowrap{white-space:nowrap}.sl-whitespace-pre-wrap{white-space:pre-wrap}.sl-rounded{border-radius:.25rem}.sl-rounded-full{border-radius:9999px}.sl-rounded-lg{border-radius:.5rem}.sl-rounded-md{border-radius:.375rem}.sl-rounded-bl-lg{border-bottom-left-radius:.5rem}.sl-rounded-br-lg{border-bottom-right-radius:.5rem}.sl-rounded-tl-lg{border-top-left-radius:.5rem}.sl-rounded-tr-lg{border-top-right-radius:.5rem}.sl-border{border-width:1px}.sl-border-0{border-width:0}.sl-border-2{border-width:2px}.sl-border-b{border-bottom-width:1px}.sl-border-l{border-left-width:1px}.sl-border-r{border-right-width:1px}.sl-border-t{border-top-width:1px}.sl-border-none{border-style:none}.sl-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.sl-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.sl-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.sl-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.sl-border-gray-900\/10{border-color:rgba(17,24,39,.1)}.sl-border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.sl-border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.sl-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.sl-border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.sl-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.sl-border-stachelock-600{border-color:var(--sl-color-stachelock-600,#3e4b9a)}.sl-border-transparent{border-color:transparent}.sl-border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.sl-border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.sl-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.sl-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.sl-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.sl-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.sl-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.sl-bg-gray-500\/75{background-color:hsla(220,9%,46%,.75)}.sl-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.sl-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.sl-bg-gray-900\/10{background-color:rgba(17,24,39,.1)}.sl-bg-gray-900\/80{background-color:rgba(17,24,39,.8)}.sl-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.sl-bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.sl-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.sl-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.sl-bg-primary-50{background-color:var(--sl-color-primary-50,#edeff9)}.sl-bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.sl-bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.sl-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.sl-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.sl-bg-stachelock-100{background-color:var(--sl-color-stachelock-100,#dbdff2)}.sl-bg-stachelock-400{background-color:var(--sl-color-stachelock-400,#717ecd)}.sl-bg-stachelock-600{background-color:var(--sl-color-stachelock-600,#3e4b9a)}.sl-bg-transparent{background-color:transparent}.sl-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.sl-bg-white\/80{background-color:hsla(0,0%,100%,.8)}.sl-bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.sl-bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.sl-bg-opacity-75{--tw-bg-opacity:0.75}.sl-fill-none{fill:none}.sl-stroke-gray-300{stroke:#d1d5db}.sl-stroke-stachelock-600{stroke:var(--sl-color-stachelock-600,#3e4b9a)}.sl-stroke-white{stroke:#fff}.sl-object-cover{-o-object-fit:cover;object-fit:cover}.sl-p-0\.5{padding:.125rem}.sl-p-1{padding:.25rem}.sl-p-2{padding:.5rem}.sl-p-2\.5{padding:.625rem}.sl-p-3{padding:.75rem}.sl-p-4{padding:1rem}.sl-p-5{padding:1.25rem}.sl-p-6{padding:1.5rem}.sl-px-1{padding-left:.25rem;padding-right:.25rem}.sl-px-2{padding-left:.5rem;padding-right:.5rem}.sl-px-2\.5{padding-left:.625rem;padding-right:.625rem}.sl-px-3{padding-left:.75rem;padding-right:.75rem}.sl-px-4{padding-left:1rem;padding-right:1rem}.sl-px-6{padding-left:1.5rem;padding-right:1.5rem}.sl-px-8{padding-left:2rem;padding-right:2rem}.sl-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.sl-py-1{padding-top:.25rem;padding-bottom:.25rem}.sl-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.sl-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sl-py-14{padding-top:3.5rem;padding-bottom:3.5rem}.sl-py-16{padding-top:4rem;padding-bottom:4rem}.sl-py-2{padding-top:.5rem;padding-bottom:.5rem}.sl-py-24{padding-top:6rem;padding-bottom:6rem}.sl-py-3{padding-top:.75rem;padding-bottom:.75rem}.sl-py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.sl-py-4{padding-top:1rem;padding-bottom:1rem}.sl-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sl-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sl-py-8{padding-top:2rem;padding-bottom:2rem}.sl-pb-12{padding-bottom:3rem}.sl-pb-16{padding-bottom:4rem}.sl-pb-2{padding-bottom:.5rem}.sl-pb-3{padding-bottom:.75rem}.sl-pb-4{padding-bottom:1rem}.sl-pl-10{padding-left:2.5rem}.sl-pl-2{padding-left:.5rem}.sl-pl-3{padding-left:.75rem}.sl-pr-0{padding-right:0}.sl-pr-10{padding-right:2.5rem}.sl-pr-12{padding-right:3rem}.sl-pr-2{padding-right:.5rem}.sl-pr-3{padding-right:.75rem}.sl-pr-4{padding-right:1rem}.sl-pr-9{padding-right:2.25rem}.sl-pt-2{padding-top:.5rem}.sl-pt-4{padding-top:1rem}.sl-pt-5{padding-top:1.25rem}.sl-text-left{text-align:left}.sl-text-center{text-align:center}.sl-text-right{text-align:right}.sl-align-middle{vertical-align:middle}.sl-text-2xl{font-size:1.5rem;line-height:2rem}.sl-text-2xs{font-size:.6rem}.sl-text-3xl{font-size:1.875rem;line-height:2.25rem}.sl-text-4xl{font-size:2.25rem;line-height:2.5rem}.sl-text-4xs{font-size:.4rem}.sl-text-\[10px\]{font-size:10px}.sl-text-base{font-size:1rem;line-height:1.5rem}.sl-text-lg{font-size:1.125rem;line-height:1.75rem}.sl-text-sm{font-size:.875rem;line-height:1.25rem}.sl-text-xl{font-size:1.25rem;line-height:1.75rem}.sl-text-xs{font-size:.75rem;line-height:1rem}.sl-font-bold{font-weight:700}.sl-font-light{font-weight:300}.sl-font-medium{font-weight:500}.sl-font-normal{font-weight:400}.sl-font-semibold{font-weight:600}.sl-uppercase{text-transform:uppercase}.sl-leading-5{line-height:1.25rem}.sl-leading-6{line-height:1.5rem}.sl-leading-7{line-height:1.75rem}.sl-leading-8{line-height:2rem}.sl-tracking-tight{letter-spacing:-.025em}.sl-tracking-wider{letter-spacing:.05em}.sl-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.sl-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.sl-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.sl-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.sl-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.sl-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.sl-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.sl-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.sl-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.sl-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.sl-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.sl-text-primary-600{color:var(--sl-color-primary-600,#3e4b9a)}.sl-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.sl-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.sl-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.sl-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.sl-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.sl-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.sl-text-stachelock-050{color:var(--sl-color-stachelock-050,#edeff9)}.sl-text-stachelock-600{color:var(--sl-color-stachelock-600,#3e4b9a)}.sl-text-stachelock-700{color:var(--sl-color-stachelock-700,#2e3873)}.sl-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.sl-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.sl-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.sl-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.sl-text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.sl-text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.sl-opacity-0{opacity:0}.sl-opacity-100{opacity:1}.sl-opacity-25{opacity:.25}.sl-opacity-50{opacity:.5}.sl-opacity-75{opacity:.75}.sl-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.sl-shadow,.sl-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.sl-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.sl-shadow-md,.sl-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.sl-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-outline-none{outline:2px solid transparent;outline-offset:2px}.sl-ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.sl-ring-0,.sl-ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.sl-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.sl-ring-inset{--tw-ring-inset:inset}.sl-ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.sl-ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgb(243 244 246/var(--tw-ring-opacity,1))}.sl-ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity,1))}.sl-ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.sl-ring-gray-400\/20{--tw-ring-color:rgba(156,163,175,.2)}.sl-ring-gray-500\/10{--tw-ring-color:hsla(220,9%,46%,.1)}.sl-ring-green-500{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.sl-ring-green-600\/20{--tw-ring-color:rgba(22,163,74,.2)}.sl-ring-red-100{--tw-ring-opacity:1;--tw-ring-color:rgb(254 226 226/var(--tw-ring-opacity,1))}.sl-ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.sl-ring-red-600\/10{--tw-ring-color:rgba(220,38,38,.1)}.sl-ring-stachelock-600{--tw-ring-color:var(--sl-color-stachelock-600,#3e4b9a)}.sl-ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.sl-ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.sl-ring-yellow-600\/20{--tw-ring-color:rgba(202,138,4,.2)}.sl-ring-opacity-5{--tw-ring-opacity:0.05}.sl-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-\[stroke-dasharray\]{transition-property:stroke-dasharray;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-duration-100{transition-duration:.1s}.sl-duration-150{transition-duration:.15s}.sl-duration-200{transition-duration:.2s}.sl-duration-300{transition-duration:.3s}.sl-duration-500{transition-duration:.5s}.sl-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.sl-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sl-ease-linear{transition-timing-function:linear}.sl-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.sl-transition-colors{transition-property:color,background-color,border-color;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:sl-text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:sl-text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.checked\:sl-border-stachelock-600:checked{border-color:var(--sl-color-stachelock-600,#3e4b9a)}.checked\:sl-bg-stachelock-600:checked{background-color:var(--sl-color-stachelock-600,#3e4b9a)}.indeterminate\:sl-border-stachelock-600:indeterminate{border-color:var(--sl-color-stachelock-600,#3e4b9a)}.indeterminate\:sl-bg-stachelock-600:indeterminate{background-color:var(--sl-color-stachelock-600,#3e4b9a)}.focus-within\:sl-border-green-500:focus-within{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.focus-within\:sl-border-red-500:focus-within{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus-within\:sl-border-stachelock-500:focus-within{border-color:var(--sl-color-stachelock-500,#4d5ec0)}.focus-within\:sl-ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:sl-ring-inset:focus-within{--tw-ring-inset:inset}.focus-within\:sl-ring-green-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus-within\:sl-ring-red-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus-within\:sl-ring-stachelock-500:focus-within{--tw-ring-color:var(--sl-color-stachelock-500,#4d5ec0)}.focus-within\:sl-ring-stachelock-600:focus-within{--tw-ring-color:var(--sl-color-stachelock-600,#3e4b9a)}.hover\:sl-border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:sl-border-gray-800:hover{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.hover\:sl-border-green-400:hover{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.hover\:sl-border-red-400:hover{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.hover\:sl-border-stachelock-400:hover{border-color:var(--sl-color-stachelock-400,#717ecd)}.hover\:sl-border-yellow-400:hover{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.hover\:sl-bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:sl-bg-green-50:hover{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.hover\:sl-bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:sl-bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:sl-bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:sl-bg-stachelock-50:hover{background-color:var(--sl-color-stachelock-50,#edeff9)}.hover\:sl-bg-stachelock-600:hover{background-color:var(--sl-color-stachelock-600,#3e4b9a)}.hover\:sl-bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:sl-bg-yellow-50:hover{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.hover\:sl-bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.hover\:sl-text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:sl-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:sl-text-stachelock-400:hover{color:var(--sl-color-stachelock-400,#717ecd)}.hover\:sl-text-stachelock-600:hover{color:var(--sl-color-stachelock-600,#3e4b9a)}.hover\:sl-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:sl-z-10:focus{z-index:10}.focus\:sl-rounded-lg:focus{border-radius:.5rem}.focus\:sl-border-green-500:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.focus\:sl-border-red-500:focus{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus\:sl-border-stachelock-500:focus{border-color:var(--sl-color-stachelock-500,#4d5ec0)}.focus\:sl-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:sl-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:sl-ring-0:focus,.focus\:sl-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:sl-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:sl-ring-inset:focus{--tw-ring-inset:inset}.focus\:sl-ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.focus\:sl-ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(134 239 172/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(252 165 165/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:sl-ring-stachelock-300:focus{--tw-ring-color:var(--sl-color-stachelock-300,#949ed9)}.focus\:sl-ring-stachelock-500:focus{--tw-ring-color:var(--sl-color-stachelock-500,#4d5ec0)}.focus\:sl-ring-stachelock-600:focus{--tw-ring-color:var(--sl-color-stachelock-600,#3e4b9a)}.focus\:sl-ring-yellow-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))}.focus\:sl-ring-yellow-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(250 204 21/var(--tw-ring-opacity,1))}.focus\:sl-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:sl-ring-offset-gray-50:focus{--tw-ring-offset-color:#f9fafb}.focus-visible\:sl-outline:focus-visible{outline-style:solid}.focus-visible\:sl-outline-2:focus-visible{outline-width:2px}.focus-visible\:sl-outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:sl-outline-stachelock-600:focus-visible{outline-color:var(--sl-color-stachelock-600,#3e4b9a)}.disabled\:sl-border-gray-300:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.disabled\:checked\:sl-bg-gray-100:checked:disabled,.disabled\:sl-bg-gray-100:disabled{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.sl-group:hover .group-hover\:sl-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.sl-group:has(:checked) .group-has-\[\:checked\]\:sl-opacity-100{opacity:1}.sl-group:has(:indeterminate) .group-has-\[\:indeterminate\]\:sl-opacity-100{opacity:1}.dark\:sl-bg-gray-700:is(.sl-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:sl-bg-gray-900:is(.sl-dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:sl-bg-opacity-75:is(.sl-dark *){--tw-bg-opacity:0.75}@media (min-width:640px){.sm\:sl--mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:sl-mx-0{margin-left:0;margin-right:0}.sm\:sl-ml-16{margin-left:4rem}.sm\:sl-ml-4{margin-left:1rem}.sm\:sl-mt-0{margin-top:0}.sm\:sl-flex{display:flex}.sm\:sl-grid{display:grid}.sm\:sl-hidden{display:none}.sm\:sl-h-10{height:2.5rem}.sm\:sl-w-10{width:2.5rem}.sm\:sl-max-w-none{max-width:none}.sm\:sl-flex-auto{flex:1 1 auto}.sm\:sl-flex-none{flex:none}.sm\:sl-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:sl-flex-row-reverse{flex-direction:row-reverse}.sm\:sl-items-start{align-items:flex-start}.sm\:sl-items-center{align-items:center}.sm\:sl-gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:sl-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.sm\:sl-self-stretch{align-self:stretch}.sm\:sl-rounded-lg{border-radius:.5rem}.sm\:sl-p-6{padding:1.5rem}.sm\:sl-px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:sl-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:sl-py-12{padding-top:3rem;padding-bottom:3rem}.sm\:sl-py-32{padding-top:8rem;padding-bottom:8rem}.sm\:sl-pb-4{padding-bottom:1rem}.sm\:sl-pr-8{padding-right:2rem}.sm\:sl-pt-16{padding-top:4rem}.sm\:sl-text-left{text-align:left}.sm\:sl-text-6xl{font-size:3.75rem;line-height:1}.sm\:sl-text-sm{font-size:.875rem;line-height:1.25rem}.sm\:sl-leading-6{line-height:1.5rem}}@media (min-width:768px){.md\:sl-block{display:block}.md\:sl-hidden{display:none}.md\:sl-max-w-full{max-width:100%}.md\:sl-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:sl-rounded-lg{border-radius:.5rem}.md\:sl-px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.lg\:sl-fixed{position:fixed}.lg\:sl-inset-y-0{top:0;bottom:0}.lg\:sl-left-0{left:0}.lg\:sl-z-50{z-index:50}.lg\:sl-col-span-7{grid-column:span 7/span 7}.lg\:sl-col-start-8{grid-column-start:8}.lg\:sl-col-end-13{grid-column-end:13}.lg\:sl-row-start-1{grid-row-start:1}.lg\:sl--mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:sl-mx-0{margin-left:0;margin-right:0}.lg\:sl-mx-12{margin-right:3rem}.lg\:sl-ml-12,.lg\:sl-mx-12{margin-left:3rem}.lg\:sl-mt-9{margin-top:2.25rem}.lg\:sl-block{display:block}.lg\:sl-flex{display:flex}.lg\:sl-grid{display:grid}.lg\:sl-hidden{display:none}.lg\:sl-h-16{height:4rem}.lg\:sl-h-full{height:100%}.lg\:sl-w-16{width:4rem}.lg\:sl-w-20{width:5rem}.lg\:sl-w-64{width:16rem}.lg\:sl-w-72{width:18rem}.lg\:sl-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:sl-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:sl-items-center{align-items:center}.lg\:sl-justify-start{justify-content:flex-start}.lg\:sl-gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.lg\:sl-gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.lg\:sl-border-l{border-left-width:1px}.lg\:sl-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.lg\:sl-px-8{padding-left:2rem;padding-right:2rem}.lg\:sl-pb-4{padding-bottom:1rem}.lg\:sl-pl-16{padding-left:4rem}.lg\:sl-pl-20{padding-left:5rem}.lg\:sl-pl-64{padding-left:16rem}.lg\:sl-pl-72{padding-left:18rem}.lg\:sl-pl-8{padding-left:2rem}}@media (min-width:1280px){.xl\:sl-col-span-8{grid-column:span 8/span 8}.xl\:sl-col-start-9{grid-column-start:9}.xl\:sl-col-end-13{grid-column-end:13}.xl\:sl-ml-3\.5{margin-left:.875rem}.xl\:sl-mt-0{margin-top:0}.xl\:sl-grid{display:grid}.xl\:sl-hidden{display:none}.xl\:sl-flex-row{flex-direction:row}.xl\:sl-border-l{border-left-width:1px}.xl\:sl-border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.xl\:sl-border-opacity-50{--tw-border-opacity:0.5}.xl\:sl-pl-3\.5{padding-left:.875rem}}
3
+ /*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--sl-color-primary:var(--sl-color-stachelock-600,#3e4b9a);--sl-color-primary-50:var(--sl-color-primary-50,#edeff9);--sl-color-primary-100:var(--sl-color-primary-100,#dbdff2);--sl-color-primary-600:var(--sl-color-primary-600,#3e4b9a);--sl-color-primary-700:var(--sl-color-primary-700,#2e3873);--sl-ring-color:var(--sl-ring-color,var(--sl-color-stachelock-600,#3e4b9a))}@media (prefers-color-scheme:dark){:root{--sl-ring-color:var(--sl-ring-color,var(--sl-color-stachelock-600,#3e4b9a))}}.sl-form{font-family:Inter,ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.sl-form .has-error input,.sl-form .has-error input:focus,.sl-form .has-error select,.sl-form .has-error select:focus,.sl-form .has-error textarea,.sl-form .has-error textarea:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.sl-form .success input,.sl-form .success input:focus,.sl-form .success select,.sl-form .success select:focus,.sl-form .success textarea,.sl-form .success textarea:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.sl-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sl-pointer-events-none{pointer-events:none}.sl-pointer-events-auto{pointer-events:auto}.sl-fixed{position:fixed}.sl-absolute{position:absolute}.sl-relative{position:relative}.sl-sticky{position:sticky}.sl-inset-0{inset:0}.sl-inset-1{inset:.25rem}.sl-inset-y-0{top:0;bottom:0}.sl-bottom-2{bottom:.5rem}.sl-bottom-4{bottom:1rem}.sl-left-0{left:0}.sl-left-1\/2{left:50%}.sl-left-full{left:100%}.sl-right-0{right:0}.sl-right-1{right:.25rem}.sl-right-2{right:.5rem}.sl-top-0{top:0}.sl-top-1{top:.25rem}.sl-top-1\/2{top:50%}.sl-isolate{isolation:isolate}.sl-z-10{z-index:10}.sl-z-20{z-index:20}.sl-z-30{z-index:30}.sl-z-40{z-index:40}.sl-z-50{z-index:50}.sl-order-1{order:1}.sl-col-span-1{grid-column:span 1/span 1}.sl-col-span-2{grid-column:span 2/span 2}.sl-col-span-6{grid-column:span 6/span 6}.sl-col-start-1{grid-column-start:1}.sl-col-start-3{grid-column-start:3}.sl-col-start-7{grid-column-start:7}.sl-col-start-8{grid-column-start:8}.sl-col-end-1{grid-column-end:1}.sl-col-end-13{grid-column-end:13}.sl-col-end-2{grid-column-end:2}.sl-row-span-full{grid-row:1/-1}.sl-row-start-1{grid-row-start:1}.sl-row-end-1{grid-row-end:1}.-sl-m-2\.5{margin:-.625rem}.-sl-mx-2{margin-left:-.5rem;margin-right:-.5rem}.-sl-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-sl-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sl--mx-4{margin-left:-1rem;margin-right:-1rem}.sl--my-2{margin-top:-.5rem;margin-bottom:-.5rem}.sl-mx-2{margin-left:.5rem;margin-right:.5rem}.sl-mx-4{margin-left:1rem;margin-right:1rem}.sl-mx-auto{margin-left:auto;margin-right:auto}.sl-my-4{margin-top:1rem;margin-bottom:1rem}.-sl-ml-0\.5{margin-left:-.125rem}.-sl-ml-14{margin-left:-3.5rem}.-sl-mt-2\.5{margin-top:-.625rem}.sl--mr-px{margin-right:-1px}.sl-mb-1{margin-bottom:.25rem}.sl-mb-2{margin-bottom:.5rem}.sl-mb-3{margin-bottom:.75rem}.sl-mb-4{margin-bottom:1rem}.sl-mb-6{margin-bottom:1.5rem}.sl-mb-8{margin-bottom:2rem}.sl-ml-1{margin-left:.25rem}.sl-ml-10{margin-left:2.5rem}.sl-ml-2{margin-left:.5rem}.sl-ml-3{margin-left:.75rem}.sl-ml-4{margin-left:1rem}.sl-ml-auto{margin-left:auto}.sl-mr-16{margin-right:4rem}.sl-mr-3{margin-right:.75rem}.sl-mt-1{margin-top:.25rem}.sl-mt-10{margin-top:2.5rem}.sl-mt-2{margin-top:.5rem}.sl-mt-3{margin-top:.75rem}.sl-mt-4{margin-top:1rem}.sl-mt-6{margin-top:1.5rem}.sl-mt-8{margin-top:2rem}.sl-mt-auto{margin-top:auto}.sl-mt-px{margin-top:1px}.sl-block{display:block}.sl-inline-block{display:inline-block}.sl-flex{display:flex}.sl-inline-flex{display:inline-flex}.sl-flow-root{display:flow-root}.sl-grid{display:grid}.sl-hidden{display:none}.sl-h-10{height:2.5rem}.sl-h-12{height:3rem}.sl-h-14{height:3.5rem}.sl-h-16{height:4rem}.sl-h-2{height:.5rem}.sl-h-2\.5{height:.625rem}.sl-h-20{height:5rem}.sl-h-24{height:6rem}.sl-h-3{height:.75rem}.sl-h-3\.5{height:.875rem}.sl-h-4{height:1rem}.sl-h-5{height:1.25rem}.sl-h-6{height:1.5rem}.sl-h-7{height:1.75rem}.sl-h-8{height:2rem}.sl-h-auto{height:auto}.sl-h-full{height:100%}.sl-max-h-56{max-height:14rem}.sl-max-h-60{max-height:15rem}.sl-min-h-\[80px\]{min-height:80px}.sl-min-h-full{min-height:100%}.sl-min-h-screen{min-height:100vh}.sl-w-1\/2{width:50%}.sl-w-10{width:2.5rem}.sl-w-11{width:2.75rem}.sl-w-12{width:3rem}.sl-w-14{width:3.5rem}.sl-w-16{width:4rem}.sl-w-2{width:.5rem}.sl-w-20{width:5rem}.sl-w-24{width:6rem}.sl-w-3{width:.75rem}.sl-w-3\.5{width:.875rem}.sl-w-3\/4{width:75%}.sl-w-32{width:8rem}.sl-w-4{width:1rem}.sl-w-5{width:1.25rem}.sl-w-6{width:1.5rem}.sl-w-7{width:1.75rem}.sl-w-8{width:2rem}.sl-w-full{width:100%}.sl-w-px{width:1px}.sl-w-screen{width:100vw}.sl-min-w-0{min-width:0}.sl-min-w-full{min-width:100%}.sl-max-w-2xl{max-width:42rem}.sl-max-w-4xl{max-width:56rem}.sl-max-w-7xl{max-width:80rem}.sl-max-w-\[150px\]{max-width:150px}.sl-max-w-full{max-width:100%}.sl-max-w-md{max-width:28rem}.sl-max-w-xs{max-width:20rem}.sl-flex-1{flex:1 1 0%}.sl-flex-auto{flex:1 1 auto}.sl-flex-none{flex:none}.sl-flex-shrink-0,.sl-shrink-0{flex-shrink:0}.sl-grow{flex-grow:1}.-sl-translate-x-1\/2{--tw-translate-x:-50%}.-sl-translate-x-1\/2,.-sl-translate-x-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-translate-x-full{--tw-translate-x:-100%}.-sl-translate-y-1\/2{--tw-translate-y:-50%}.-sl-translate-y-1\/2,.-sl-translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-translate-y-4{--tw-translate-y:-1rem}.sl-translate-x-0{--tw-translate-x:0px}.sl-translate-x-0,.sl-translate-x-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-translate-x-1\/2{--tw-translate-x:50%}.sl-translate-x-5{--tw-translate-x:1.25rem}.sl-translate-x-5,.sl-translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-translate-y-0{--tw-translate-y:0px}.sl-translate-y-4{--tw-translate-y:1rem}.-sl-rotate-90,.sl-translate-y-4{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-sl-rotate-90{--tw-rotate:-90deg}.sl-scale-100{--tw-scale-x:1;--tw-scale-y:1}.sl-scale-100,.sl-scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sl-scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.sl-transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes sl-pulse{50%{opacity:.5}}.sl-animate-pulse{animation:sl-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes sl-spin{to{transform:rotate(1turn)}}.sl-animate-spin{animation:sl-spin 1s linear infinite}.sl-cursor-default{cursor:default}.sl-cursor-not-allowed{cursor:not-allowed}.sl-cursor-pointer{cursor:pointer}.sl-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.sl-resize-y{resize:vertical}.sl-appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.sl-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sl-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sl-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sl-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sl-grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}.sl-flex-col{flex-direction:column}.sl-flex-wrap{flex-wrap:wrap}.sl-items-start{align-items:flex-start}.sl-items-center{align-items:center}.sl-justify-start{justify-content:flex-start}.sl-justify-end{justify-content:flex-end}.sl-justify-center{justify-content:center}.sl-justify-between{justify-content:space-between}.sl-gap-2{gap:.5rem}.sl-gap-3{gap:.75rem}.sl-gap-4{gap:1rem}.sl-gap-6{gap:1.5rem}.sl-gap-8{gap:2rem}.sl-gap-px{gap:1px}.sl-gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.sl-gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.sl-gap-y-5{row-gap:1.25rem}.sl-space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.sl-space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.sl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.sl-space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.sl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.sl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.sl-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.sl-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.sl-space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.sl-divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.sl-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.sl-divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.sl-divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.sl-divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity,1))}.sl-self-center{align-self:center}.sl-justify-self-end{justify-self:end}.sl-justify-self-center{justify-self:center}.sl-overflow-auto{overflow:auto}.sl-overflow-hidden{overflow:hidden}.sl-overflow-x-auto{overflow-x:auto}.sl-overflow-y-auto{overflow-y:auto}.sl-truncate{overflow:hidden;white-space:nowrap}.sl-overflow-ellipsis,.sl-truncate{text-overflow:ellipsis}.sl-whitespace-nowrap{white-space:nowrap}.sl-whitespace-pre-wrap{white-space:pre-wrap}.sl-rounded{border-radius:.25rem}.sl-rounded-full{border-radius:9999px}.sl-rounded-lg{border-radius:.5rem}.sl-rounded-md{border-radius:.375rem}.sl-rounded-bl-lg{border-bottom-left-radius:.5rem}.sl-rounded-br-lg{border-bottom-right-radius:.5rem}.sl-rounded-tl-lg{border-top-left-radius:.5rem}.sl-rounded-tr-lg{border-top-right-radius:.5rem}.sl-border{border-width:1px}.sl-border-0{border-width:0}.sl-border-2{border-width:2px}.sl-border-b{border-bottom-width:1px}.sl-border-l{border-left-width:1px}.sl-border-r{border-right-width:1px}.sl-border-t{border-top-width:1px}.sl-border-none{border-style:none}.sl-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.sl-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.sl-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.sl-border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.sl-border-gray-900\/10{border-color:rgba(17,24,39,.1)}.sl-border-green-300{--tw-border-opacity:1;border-color:rgb(134 239 172/var(--tw-border-opacity,1))}.sl-border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.sl-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.sl-border-red-300{--tw-border-opacity:1;border-color:rgb(252 165 165/var(--tw-border-opacity,1))}.sl-border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.sl-border-stachelock-600{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-border-opacity,1))}.sl-border-transparent{border-color:transparent}.sl-border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.sl-border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.sl-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.sl-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.sl-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.sl-bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.sl-bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.sl-bg-gray-500\/75{background-color:hsla(220,9%,46%,.75)}.sl-bg-gray-700{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.sl-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.sl-bg-gray-900\/10{background-color:rgba(17,24,39,.1)}.sl-bg-gray-900\/80{background-color:rgba(17,24,39,.8)}.sl-bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.sl-bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.sl-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.sl-bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.sl-bg-primary-50{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-primary-50-rgb,237 239 249)/var(--tw-bg-opacity,1))}.sl-bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.sl-bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.sl-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.sl-bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.sl-bg-stachelock-100{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-100-rgb,219 223 242)/var(--tw-bg-opacity,1))}.sl-bg-stachelock-400{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-400-rgb,113 126 205)/var(--tw-bg-opacity,1))}.sl-bg-stachelock-600{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-bg-opacity,1))}.sl-bg-transparent{background-color:transparent}.sl-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.sl-bg-white\/80{background-color:hsla(0,0%,100%,.8)}.sl-bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.sl-bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.sl-bg-opacity-75{--tw-bg-opacity:0.75}.sl-fill-none{fill:none}.sl-stroke-gray-300{stroke:#d1d5db}.sl-stroke-stachelock-600{stroke:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/1)}.sl-stroke-white{stroke:#fff}.sl-object-cover{-o-object-fit:cover;object-fit:cover}.sl-p-0\.5{padding:.125rem}.sl-p-1{padding:.25rem}.sl-p-2{padding:.5rem}.sl-p-2\.5{padding:.625rem}.sl-p-3{padding:.75rem}.sl-p-4{padding:1rem}.sl-p-5{padding:1.25rem}.sl-p-6{padding:1.5rem}.sl-px-1{padding-left:.25rem;padding-right:.25rem}.sl-px-2{padding-left:.5rem;padding-right:.5rem}.sl-px-2\.5{padding-left:.625rem;padding-right:.625rem}.sl-px-3{padding-left:.75rem;padding-right:.75rem}.sl-px-4{padding-left:1rem;padding-right:1rem}.sl-px-6{padding-left:1.5rem;padding-right:1.5rem}.sl-px-8{padding-left:2rem;padding-right:2rem}.sl-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.sl-py-1{padding-top:.25rem;padding-bottom:.25rem}.sl-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.sl-py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sl-py-14{padding-top:3.5rem;padding-bottom:3.5rem}.sl-py-16{padding-top:4rem;padding-bottom:4rem}.sl-py-2{padding-top:.5rem;padding-bottom:.5rem}.sl-py-24{padding-top:6rem;padding-bottom:6rem}.sl-py-3{padding-top:.75rem;padding-bottom:.75rem}.sl-py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.sl-py-4{padding-top:1rem;padding-bottom:1rem}.sl-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.sl-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.sl-py-8{padding-top:2rem;padding-bottom:2rem}.sl-pb-12{padding-bottom:3rem}.sl-pb-16{padding-bottom:4rem}.sl-pb-2{padding-bottom:.5rem}.sl-pb-3{padding-bottom:.75rem}.sl-pb-4{padding-bottom:1rem}.sl-pl-10{padding-left:2.5rem}.sl-pl-2{padding-left:.5rem}.sl-pl-3{padding-left:.75rem}.sl-pr-0{padding-right:0}.sl-pr-10{padding-right:2.5rem}.sl-pr-12{padding-right:3rem}.sl-pr-2{padding-right:.5rem}.sl-pr-3{padding-right:.75rem}.sl-pr-4{padding-right:1rem}.sl-pr-9{padding-right:2.25rem}.sl-pt-2{padding-top:.5rem}.sl-pt-4{padding-top:1rem}.sl-pt-5{padding-top:1.25rem}.sl-text-left{text-align:left}.sl-text-center{text-align:center}.sl-text-right{text-align:right}.sl-align-middle{vertical-align:middle}.sl-text-2xl{font-size:1.5rem;line-height:2rem}.sl-text-2xs{font-size:.6rem}.sl-text-3xl{font-size:1.875rem;line-height:2.25rem}.sl-text-4xl{font-size:2.25rem;line-height:2.5rem}.sl-text-4xs{font-size:.4rem}.sl-text-\[10px\]{font-size:10px}.sl-text-base{font-size:1rem;line-height:1.5rem}.sl-text-lg{font-size:1.125rem;line-height:1.75rem}.sl-text-sm{font-size:.875rem;line-height:1.25rem}.sl-text-xl{font-size:1.25rem;line-height:1.75rem}.sl-text-xs{font-size:.75rem;line-height:1rem}.sl-font-bold{font-weight:700}.sl-font-light{font-weight:300}.sl-font-medium{font-weight:500}.sl-font-normal{font-weight:400}.sl-font-semibold{font-weight:600}.sl-uppercase{text-transform:uppercase}.sl-leading-5{line-height:1.25rem}.sl-leading-6{line-height:1.5rem}.sl-leading-7{line-height:1.75rem}.sl-leading-8{line-height:2rem}.sl-tracking-tight{letter-spacing:-.025em}.sl-tracking-wider{letter-spacing:.05em}.sl-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.sl-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.sl-text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.sl-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.sl-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.sl-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.sl-text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.sl-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.sl-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.sl-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.sl-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.sl-text-primary-600{--tw-text-opacity:1;color:rgb(var(--sl-color-primary-600-rgb,62 75 154)/var(--tw-text-opacity,1))}.sl-text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.sl-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.sl-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.sl-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.sl-text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.sl-text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.sl-text-stachelock-050{--tw-text-opacity:1;color:rgb(var(--sl-color-stachelock-50-rgb,237 239 249)/var(--tw-text-opacity,1))}.sl-text-stachelock-600{--tw-text-opacity:1;color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-text-opacity,1))}.sl-text-stachelock-700{--tw-text-opacity:1;color:rgb(var(--sl-color-stachelock-700-rgb,46 56 115)/var(--tw-text-opacity,1))}.sl-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.sl-text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.sl-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.sl-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.sl-text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.sl-text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.sl-opacity-0{opacity:0}.sl-opacity-100{opacity:1}.sl-opacity-25{opacity:.25}.sl-opacity-50{opacity:.5}.sl-opacity-75{opacity:.75}.sl-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.sl-shadow,.sl-shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.sl-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.sl-shadow-md,.sl-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.sl-shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.sl-outline-none{outline:2px solid transparent;outline-offset:2px}.sl-ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.sl-ring-0,.sl-ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.sl-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.sl-ring-inset{--tw-ring-inset:inset}.sl-ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.sl-ring-gray-100{--tw-ring-opacity:1;--tw-ring-color:rgb(243 244 246/var(--tw-ring-opacity,1))}.sl-ring-gray-200{--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity,1))}.sl-ring-gray-300{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.sl-ring-gray-400\/20{--tw-ring-color:rgba(156,163,175,.2)}.sl-ring-gray-500\/10{--tw-ring-color:hsla(220,9%,46%,.1)}.sl-ring-green-500{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.sl-ring-green-600\/20{--tw-ring-color:rgba(22,163,74,.2)}.sl-ring-primary-600\/10{--tw-ring-color:rgb(var(--sl-color-primary-600-rgb,62 75 154)/0.1)}.sl-ring-red-100{--tw-ring-opacity:1;--tw-ring-color:rgb(254 226 226/var(--tw-ring-opacity,1))}.sl-ring-red-500{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.sl-ring-red-600\/10{--tw-ring-color:rgba(220,38,38,.1)}.sl-ring-stachelock-600{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-ring-opacity,1))}.sl-ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.sl-ring-white\/10{--tw-ring-color:hsla(0,0%,100%,.1)}.sl-ring-yellow-600\/20{--tw-ring-color:rgba(202,138,4,.2)}.sl-ring-opacity-5{--tw-ring-opacity:0.05}.sl-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-\[stroke-dasharray\]{transition-property:stroke-dasharray;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.sl-duration-100{transition-duration:.1s}.sl-duration-150{transition-duration:.15s}.sl-duration-200{transition-duration:.2s}.sl-duration-300{transition-duration:.3s}.sl-duration-500{transition-duration:.5s}.sl-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.sl-ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.sl-ease-linear{transition-timing-function:linear}.sl-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.sl-transition-colors{transition-property:color,background-color,border-color;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:sl-text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:sl-text-gray-400::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.placeholder\:sl-text-stachelock-400\/80::-moz-placeholder{color:rgb(var(--sl-color-stachelock-400-rgb,113 126 205)/.8)}.placeholder\:sl-text-stachelock-400\/80::placeholder{color:rgb(var(--sl-color-stachelock-400-rgb,113 126 205)/.8)}.checked\:sl-border-stachelock-600:checked{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-border-opacity,1))}.checked\:sl-bg-stachelock-600:checked{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-bg-opacity,1))}.indeterminate\:sl-border-stachelock-600:indeterminate{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-border-opacity,1))}.indeterminate\:sl-bg-stachelock-600:indeterminate{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-bg-opacity,1))}.focus-within\:sl-border-green-500:focus-within{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.focus-within\:sl-border-red-500:focus-within{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus-within\:sl-border-stachelock-500:focus-within{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-500-rgb,77 94 192)/var(--tw-border-opacity,1))}.focus-within\:sl-ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:sl-ring-inset:focus-within{--tw-ring-inset:inset}.focus-within\:sl-ring-green-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus-within\:sl-ring-red-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus-within\:sl-ring-stachelock-500:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-500-rgb,77 94 192)/var(--tw-ring-opacity,1))}.focus-within\:sl-ring-stachelock-600:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-ring-opacity,1))}.hover\:sl-border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:sl-border-gray-800:hover{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.hover\:sl-border-green-400:hover{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.hover\:sl-border-red-400:hover{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.hover\:sl-border-stachelock-400:hover{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-400-rgb,113 126 205)/var(--tw-border-opacity,1))}.hover\:sl-border-yellow-400:hover{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.hover\:sl-bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:sl-bg-gray-800:hover{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.hover\:sl-bg-green-50:hover{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.hover\:sl-bg-green-600:hover{--tw-bg-opacity:1;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.hover\:sl-bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:sl-bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:sl-bg-stachelock-50:hover{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-50-rgb,237 239 249)/var(--tw-bg-opacity,1))}.hover\:sl-bg-stachelock-600:hover{--tw-bg-opacity:1;background-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-bg-opacity,1))}.hover\:sl-bg-white\/10:hover{background-color:hsla(0,0%,100%,.1)}.hover\:sl-bg-yellow-50:hover{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.hover\:sl-bg-yellow-600:hover{--tw-bg-opacity:1;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))}.hover\:sl-text-gray-500:hover{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.hover\:sl-text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:sl-text-stachelock-400:hover{--tw-text-opacity:1;color:rgb(var(--sl-color-stachelock-400-rgb,113 126 205)/var(--tw-text-opacity,1))}.hover\:sl-text-stachelock-600:hover{--tw-text-opacity:1;color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-text-opacity,1))}.hover\:sl-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.focus\:sl-z-10:focus{z-index:10}.focus\:sl-rounded-lg:focus{border-radius:.5rem}.focus\:sl-border-green-500:focus{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.focus\:sl-border-red-500:focus{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.focus\:sl-border-stachelock-500:focus{--tw-border-opacity:1;border-color:rgb(var(--sl-color-stachelock-500-rgb,77 94 192)/var(--tw-border-opacity,1))}.focus\:sl-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:sl-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:sl-ring-0:focus,.focus\:sl-ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:sl-ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:sl-ring-inset:focus{--tw-ring-inset:inset}.focus\:sl-ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity,1))}.focus\:sl-ring-gray-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(107 114 128/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(134 239 172/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.focus\:sl-ring-green-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(34 197 94/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(252 165 165/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(239 68 68/var(--tw-ring-opacity,1))}.focus\:sl-ring-red-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(220 38 38/var(--tw-ring-opacity,1))}.focus\:sl-ring-stachelock-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-300-rgb,148 158 217)/var(--tw-ring-opacity,1))}.focus\:sl-ring-stachelock-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-500-rgb,77 94 192)/var(--tw-ring-opacity,1))}.focus\:sl-ring-stachelock-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/var(--tw-ring-opacity,1))}.focus\:sl-ring-yellow-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(253 224 71/var(--tw-ring-opacity,1))}.focus\:sl-ring-yellow-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(250 204 21/var(--tw-ring-opacity,1))}.focus\:sl-ring-offset-2:focus{--tw-ring-offset-width:2px}.focus\:sl-ring-offset-gray-50:focus{--tw-ring-offset-color:#f9fafb}.focus-visible\:sl-outline:focus-visible{outline-style:solid}.focus-visible\:sl-outline-2:focus-visible{outline-width:2px}.focus-visible\:sl-outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:sl-outline-stachelock-600:focus-visible{outline-color:rgb(var(--sl-color-stachelock-600-rgb,62 75 154)/1)}.disabled\:sl-border-gray-300:disabled{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.disabled\:checked\:sl-bg-gray-100:checked:disabled,.disabled\:sl-bg-gray-100:disabled{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.sl-group:hover .group-hover\:sl-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.sl-group:has(:checked) .group-has-\[\:checked\]\:sl-opacity-100{opacity:1}.sl-group:has(:indeterminate) .group-has-\[\:indeterminate\]\:sl-opacity-100{opacity:1}.dark\:sl-bg-gray-700:is(.sl-dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:sl-bg-gray-900:is(.sl-dark *){--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.dark\:sl-bg-opacity-75:is(.sl-dark *){--tw-bg-opacity:0.75}@media (min-width:640px){.sm\:sl--mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.sm\:sl-mx-0{margin-left:0;margin-right:0}.sm\:sl-ml-16{margin-left:4rem}.sm\:sl-ml-4{margin-left:1rem}.sm\:sl-mt-0{margin-top:0}.sm\:sl-flex{display:flex}.sm\:sl-grid{display:grid}.sm\:sl-hidden{display:none}.sm\:sl-h-10{height:2.5rem}.sm\:sl-w-10{width:2.5rem}.sm\:sl-max-w-none{max-width:none}.sm\:sl-flex-auto{flex:1 1 auto}.sm\:sl-flex-none{flex:none}.sm\:sl-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:sl-flex-row-reverse{flex-direction:row-reverse}.sm\:sl-items-start{align-items:flex-start}.sm\:sl-items-center{align-items:center}.sm\:sl-gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.sm\:sl-space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(2rem*var(--tw-space-x-reverse));margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)))}.sm\:sl-self-stretch{align-self:stretch}.sm\:sl-rounded-lg{border-radius:.5rem}.sm\:sl-p-6{padding:1.5rem}.sm\:sl-px-14{padding-left:3.5rem;padding-right:3.5rem}.sm\:sl-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:sl-py-12{padding-top:3rem;padding-bottom:3rem}.sm\:sl-py-32{padding-top:8rem;padding-bottom:8rem}.sm\:sl-pb-4{padding-bottom:1rem}.sm\:sl-pr-8{padding-right:2rem}.sm\:sl-pt-16{padding-top:4rem}.sm\:sl-text-left{text-align:left}.sm\:sl-text-6xl{font-size:3.75rem;line-height:1}.sm\:sl-text-sm{font-size:.875rem;line-height:1.25rem}.sm\:sl-leading-6{line-height:1.5rem}}@media (min-width:768px){.md\:sl-block{display:block}.md\:sl-hidden{display:none}.md\:sl-max-w-full{max-width:100%}.md\:sl-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:sl-rounded-lg{border-radius:.5rem}.md\:sl-px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (min-width:1024px){.lg\:sl-fixed{position:fixed}.lg\:sl-inset-y-0{top:0;bottom:0}.lg\:sl-left-0{left:0}.lg\:sl-z-50{z-index:50}.lg\:sl-col-span-7{grid-column:span 7/span 7}.lg\:sl-col-start-8{grid-column-start:8}.lg\:sl-col-end-13{grid-column-end:13}.lg\:sl-row-start-1{grid-row-start:1}.lg\:sl--mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:sl-mx-0{margin-left:0;margin-right:0}.lg\:sl-mx-12{margin-right:3rem}.lg\:sl-ml-12,.lg\:sl-mx-12{margin-left:3rem}.lg\:sl-mt-9{margin-top:2.25rem}.lg\:sl-block{display:block}.lg\:sl-flex{display:flex}.lg\:sl-grid{display:grid}.lg\:sl-hidden{display:none}.lg\:sl-h-16{height:4rem}.lg\:sl-h-full{height:100%}.lg\:sl-w-16{width:4rem}.lg\:sl-w-20{width:5rem}.lg\:sl-w-64{width:16rem}.lg\:sl-w-72{width:18rem}.lg\:sl-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:sl-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:sl-items-center{align-items:center}.lg\:sl-justify-start{justify-content:flex-start}.lg\:sl-gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.lg\:sl-gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.lg\:sl-border-l{border-left-width:1px}.lg\:sl-border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.lg\:sl-px-8{padding-left:2rem;padding-right:2rem}.lg\:sl-pb-4{padding-bottom:1rem}.lg\:sl-pl-16{padding-left:4rem}.lg\:sl-pl-20{padding-left:5rem}.lg\:sl-pl-64{padding-left:16rem}.lg\:sl-pl-72{padding-left:18rem}.lg\:sl-pl-8{padding-left:2rem}}@media (min-width:1280px){.xl\:sl-col-span-8{grid-column:span 8/span 8}.xl\:sl-col-start-9{grid-column-start:9}.xl\:sl-col-end-13{grid-column-end:13}.xl\:sl-ml-3\.5{margin-left:.875rem}.xl\:sl-mt-0{margin-top:0}.xl\:sl-grid{display:grid}.xl\:sl-hidden{display:none}.xl\:sl-flex-row{flex-direction:row}.xl\:sl-border-l{border-left-width:1px}.xl\:sl-border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.xl\:sl-border-opacity-50{--tw-border-opacity:0.5}.xl\:sl-pl-3\.5{padding-left:.875rem}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stachelock/ui",
3
- "version": "0.2.12",
3
+ "version": "0.2.13",
4
4
  "description": "A comprehensive Vue 3 UI component library built with Tailwind CSS",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -50,28 +50,28 @@ export default {
50
50
  },
51
51
  colors: {
52
52
  // Primary colors driven by CSS variables; fallbacks match default tokens
53
- "primary-50": "var(--sl-color-primary-50, #edeff9)",
54
- "primary-100": "var(--sl-color-primary-100, #dbdff2)",
55
- "primary-200": "var(--sl-color-primary-200, #b8bfe6)",
56
- "primary-300": "var(--sl-color-primary-300, #949ed9)",
57
- "primary-400": "var(--sl-color-primary-400, #717ecd)",
58
- "primary-500": "var(--sl-color-primary-500, #4d5ec0)",
59
- "primary-600": "var(--sl-color-primary-600, #3e4b9a)",
60
- "primary-700": "var(--sl-color-primary-700, #2e3873)",
61
- "primary-800": "var(--sl-color-primary-800, #1f264d)",
62
- "primary-900": "var(--sl-color-primary-900, #0f1326)",
53
+ "primary-50": "rgb(var(--sl-color-primary-50-rgb, 237 239 249) / <alpha-value>)",
54
+ "primary-100": "rgb(var(--sl-color-primary-100-rgb, 219 223 242) / <alpha-value>)",
55
+ "primary-200": "rgb(var(--sl-color-primary-200-rgb, 184 191 230) / <alpha-value>)",
56
+ "primary-300": "rgb(var(--sl-color-primary-300-rgb, 148 158 217) / <alpha-value>)",
57
+ "primary-400": "rgb(var(--sl-color-primary-400-rgb, 113 126 205) / <alpha-value>)",
58
+ "primary-500": "rgb(var(--sl-color-primary-500-rgb, 77 94 192) / <alpha-value>)",
59
+ "primary-600": "rgb(var(--sl-color-primary-600-rgb, 62 75 154) / <alpha-value>)",
60
+ "primary-700": "rgb(var(--sl-color-primary-700-rgb, 46 56 115) / <alpha-value>)",
61
+ "primary-800": "rgb(var(--sl-color-primary-800-rgb, 31 38 77) / <alpha-value>)",
62
+ "primary-900": "rgb(var(--sl-color-primary-900-rgb, 15 19 38) / <alpha-value>)",
63
63
  // Stachelock brand colors via CSS variables
64
- "stachelock-50": "var(--sl-color-stachelock-50, #edeff9)",
65
- "stachelock-100": "var(--sl-color-stachelock-100, #dbdff2)",
66
- "stachelock-200": "var(--sl-color-stachelock-200, #b8bfe6)",
67
- "stachelock-300": "var(--sl-color-stachelock-300, #949ed9)",
68
- "stachelock-400": "var(--sl-color-stachelock-400, #717ecd)",
69
- "stachelock-500": "var(--sl-color-stachelock-500, #4d5ec0)",
70
- "stachelock-600": "var(--sl-color-stachelock-600, #3e4b9a)",
71
- "stachelock-700": "var(--sl-color-stachelock-700, #2e3873)",
72
- "stachelock-800": "var(--sl-color-stachelock-800, #1f264d)",
73
- "stachelock-900": "var(--sl-color-stachelock-900, #0f1326)",
74
- "stachelock-050": "var(--sl-color-stachelock-050, #edeff9)",
64
+ "stachelock-50": "rgb(var(--sl-color-stachelock-50-rgb, 237 239 249) / <alpha-value>)",
65
+ "stachelock-100": "rgb(var(--sl-color-stachelock-100-rgb, 219 223 242) / <alpha-value>)",
66
+ "stachelock-200": "rgb(var(--sl-color-stachelock-200-rgb, 184 191 230) / <alpha-value>)",
67
+ "stachelock-300": "rgb(var(--sl-color-stachelock-300-rgb, 148 158 217) / <alpha-value>)",
68
+ "stachelock-400": "rgb(var(--sl-color-stachelock-400-rgb, 113 126 205) / <alpha-value>)",
69
+ "stachelock-500": "rgb(var(--sl-color-stachelock-500-rgb, 77 94 192) / <alpha-value>)",
70
+ "stachelock-600": "rgb(var(--sl-color-stachelock-600-rgb, 62 75 154) / <alpha-value>)",
71
+ "stachelock-700": "rgb(var(--sl-color-stachelock-700-rgb, 46 56 115) / <alpha-value>)",
72
+ "stachelock-800": "rgb(var(--sl-color-stachelock-800-rgb, 31 38 77) / <alpha-value>)",
73
+ "stachelock-900": "rgb(var(--sl-color-stachelock-900-rgb, 15 19 38) / <alpha-value>)",
74
+ "stachelock-050": "rgb(var(--sl-color-stachelock-50-rgb, 237 239 249) / <alpha-value>)",
75
75
  // Accent colors (purple) remain static but could be variable-ized later
76
76
  "accent-50": "#fdf4ff",
77
77
  "accent-100": "#fae8ff",