asheeui 0.6.10 → 0.6.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.
Files changed (39) hide show
  1. package/dist/components/accordion/Accordion.js +7 -7
  2. package/dist/components/autocomplete/Autocomplete.d.ts +5 -5
  3. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  4. package/dist/components/autocomplete/Autocomplete.js +42 -41
  5. package/dist/components/carousel/Carousel.js +43 -43
  6. package/dist/components/chip/Chip.js +8 -8
  7. package/dist/components/date-picker/Calendar.d.ts +6 -1
  8. package/dist/components/date-picker/Calendar.d.ts.map +1 -1
  9. package/dist/components/date-picker/Calendar.js +30 -30
  10. package/dist/components/date-picker/DatePicker.d.ts +7 -6
  11. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  12. package/dist/components/date-picker/DatePicker.js +166 -155
  13. package/dist/components/date-picker/date-picker-config.d.ts +12 -1
  14. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  15. package/dist/components/marquee/Marquee.js +22 -22
  16. package/dist/components/multi-select/MultiSelect.d.ts +5 -5
  17. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  18. package/dist/components/multi-select/MultiSelect.js +45 -44
  19. package/dist/components/select/Select.d.ts +5 -5
  20. package/dist/components/select/Select.d.ts.map +1 -1
  21. package/dist/components/select/Select.js +117 -114
  22. package/dist/components/select-menu/SelectMenu.d.ts +20 -11
  23. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  24. package/dist/components/select-menu/SelectMenu.js +146 -109
  25. package/dist/components/select-menu/select-menu-config.d.ts +8 -4
  26. package/dist/components/select-menu/select-menu-config.d.ts.map +1 -1
  27. package/dist/components/select-menu/select-menu-config.js +1 -1
  28. package/dist/components/select-menu/use-select-floating.d.ts +46 -17
  29. package/dist/components/select-menu/use-select-floating.d.ts.map +1 -1
  30. package/dist/components/select-menu/use-select-floating.js +36 -22
  31. package/dist/components/toast/ToastItem.js +30 -30
  32. package/dist/components/toast/ToastProvider.d.ts +5 -5
  33. package/dist/components/toast/ToastProvider.d.ts.map +1 -1
  34. package/dist/components/toast/ToastProvider.js +66 -66
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/theme/controller.d.ts.map +1 -1
  38. package/dist/theme/controller.js +14 -16
  39. package/package.json +3 -20
@@ -12,7 +12,7 @@ import { FALLBACK_TOAST_CONFIG as n } from "./toast-config.js";
12
12
  import { TOAST_WIDTH_CLASS as V, TOAST_PADDING_CLASS as q, TOAST_FONT_CLASS as J, TOAST_TITLE_FONT_CLASS as Q, TOAST_ANIMATION_STATE as X } from "./toast-styles.js";
13
13
  import { usePausableTimeout as Y } from "./use-pausable-timeout.js";
14
14
  import { RADIUS_CLASS as Z } from "../../shared/radius.js";
15
- import { cn as s } from "../../utils/cn.js";
15
+ import { cn as t } from "../../utils/cn.js";
16
16
  import { resolveVariantClass as $ } from "../../shared/variant.js";
17
17
  function ee(r = "info") {
18
18
  switch (r) {
@@ -28,47 +28,47 @@ function ee(r = "info") {
28
28
  return "secondary";
29
29
  }
30
30
  }
31
- function re(r = "info", t = !1) {
32
- const o = s("w-5 h-5", t && "text-current");
31
+ function re(r = "info", s = !1) {
32
+ const o = t("w-5 h-5", s && "text-current");
33
33
  switch (r) {
34
34
  case "success":
35
- return /* @__PURE__ */ e(P, { className: s(o, !t && "text-success") });
35
+ return /* @__PURE__ */ e(P, { className: t(o, !s && "text-success") });
36
36
  case "error":
37
- return /* @__PURE__ */ e(z, { className: s(o, !t && "text-danger") });
37
+ return /* @__PURE__ */ e(z, { className: t(o, !s && "text-danger") });
38
38
  case "warning":
39
- return /* @__PURE__ */ e(H, { className: s(o, !t && "text-warning") });
39
+ return /* @__PURE__ */ e(H, { className: t(o, !s && "text-warning") });
40
40
  default:
41
- return /* @__PURE__ */ e(B, { className: s(o, !t && "text-primary") });
41
+ return /* @__PURE__ */ e(B, { className: t(o, !s && "text-primary") });
42
42
  }
43
43
  }
44
- function te({
44
+ function se({
45
45
  id: r,
46
- title: t,
46
+ title: s,
47
47
  message: o,
48
48
  type: u = "info",
49
49
  timeout: v = 3500,
50
50
  icon: A,
51
- action: f,
51
+ action: d,
52
52
  dismissible: N = !0,
53
53
  onDismiss: c,
54
54
  placement: x,
55
55
  size: i,
56
- variant: p,
57
- color: I,
58
- radius: S,
59
- animated: d
56
+ variant: f,
57
+ color: b,
58
+ radius: I,
59
+ animated: p
60
60
  }) {
61
61
  var h;
62
- const l = (h = R().components) == null ? void 0 : h.toast, [m, b] = G(!1), g = U(
63
- d,
62
+ const l = (h = R().components) == null ? void 0 : h.toast, [m, S] = G(!1), g = U(
63
+ p,
64
64
  l == null ? void 0 : l.animated,
65
65
  void 0,
66
66
  n.animated
67
67
  ), w = K(() => {
68
- g && !m ? (b(!0), setTimeout(() => {
68
+ g && !m ? (S(!0), setTimeout(() => {
69
69
  c(r);
70
70
  }, 150)) : c(r);
71
- }, [g, m, c, r]), { pause: _, resume: k } = Y(w, v), O = I ?? ee(u), y = p === "solid", L = a(
71
+ }, [g, m, c, r]), { pause: _, resume: k } = Y(w, v), O = b ?? ee(u), y = f === "solid", L = a(
72
72
  i,
73
73
  V,
74
74
  n.size
@@ -85,48 +85,48 @@ function te({
85
85
  Q,
86
86
  n.size
87
87
  ), M = a(
88
- S,
88
+ I,
89
89
  Z,
90
90
  n.radius
91
- ), T = X[x], j = d ? m ? T.exit : T.enter : "";
91
+ ), T = X[x], j = p ? m ? T.exit : T.enter : "";
92
92
  return /* @__PURE__ */ C(
93
93
  "div",
94
94
  {
95
95
  onMouseEnter: _,
96
96
  onMouseLeave: k,
97
- className: s(
98
- "pointer-events-auto relative flex gap-3 items-start shadow-lg border backdrop-blur-md select-none overflow-clip transition-all duration-200 active:scale-[0.99]",
97
+ className: t(
98
+ "pointer-events-auto relative flex gap-3 items-start shadow-lg border backdrop-blur-md select-none scrollbar-hide overflow-hidden transition-all duration-200 active:scale-[0.99]",
99
99
  "bg-background",
100
100
  L,
101
101
  E,
102
102
  M,
103
103
  j,
104
- $(p, O)
104
+ $(f, O)
105
105
  ),
106
106
  children: [
107
107
  /* @__PURE__ */ e("div", { className: "shrink-0 pt-0.5 ps-1", children: A ?? re(u, y) }),
108
108
  /* @__PURE__ */ C("div", { className: "flex-1 min-w-0 flex flex-col gap-0.5", children: [
109
- t && /* @__PURE__ */ e(
109
+ s && /* @__PURE__ */ e(
110
110
  "span",
111
111
  {
112
- className: s(
112
+ className: t(
113
113
  "leading-tight truncate text-current",
114
114
  D
115
115
  ),
116
- children: t
116
+ children: s
117
117
  }
118
118
  ),
119
119
  /* @__PURE__ */ e(
120
120
  "div",
121
121
  {
122
- className: s(
122
+ className: t(
123
123
  "leading-snug wrap-break-word opacity-90 text-current",
124
124
  F
125
125
  ),
126
126
  children: o
127
127
  }
128
128
  ),
129
- f && /* @__PURE__ */ e("div", { className: "mt-2 flex items-center gap-2", children: f })
129
+ d && /* @__PURE__ */ e("div", { className: "mt-2 flex items-center gap-2", children: d })
130
130
  ] }),
131
131
  N && /* @__PURE__ */ e(
132
132
  "button",
@@ -142,7 +142,7 @@ function te({
142
142
  }
143
143
  );
144
144
  }
145
- te.displayName = "ToastItem";
145
+ se.displayName = "ToastItem";
146
146
  export {
147
- te as ToastItem
147
+ se as ToastItem
148
148
  };
@@ -29,11 +29,11 @@ export interface ToastProviderProps extends ToastConfig {
29
29
  * own size, placement, variant, radius, and animation settings via the
30
30
  * toast options.
31
31
  *
32
- * The provider uses React's createPortal to render toasts at the document
33
- * body level by default. This ensures toasts escape CSS containment,
34
- * stacking context, and overflow issues. Portaling can be disabled via
35
- * the `portal` config option if the toasts need to stay within a specific
36
- * parent container.
32
+ * The provider uses Floating UI's FloatingPortal to render toasts at the
33
+ * document body level by default. This ensures toasts escape CSS containment,
34
+ * stacking context, and overflow issues. Portaling can be disabled via the
35
+ * `portal` config option if the toasts need to stay within a specific parent
36
+ * container.
37
37
  *
38
38
  * @param props - ToastProvider configuration options.
39
39
  * @param props.children - Child components.
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAQvE,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,gBAAgB,CAAC;AAKxB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,GACV,EAAE,kBAAkB,+BA6QpB"}
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAOvE,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,gBAAgB,CAAC;AAKxB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,GACV,EAAE,kBAAkB,+BA+QpB"}
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import { jsx as w, Fragment as g, jsxs as C } from "react/jsx-runtime";
3
- import { useState as ee, useCallback as o, useMemo as E } from "react";
4
- import { createPortal as ae } from "react-dom";
2
+ import { jsx as p, Fragment as g, jsxs as C } from "react/jsx-runtime";
3
+ import { FloatingPortal as ee } from "@floating-ui/react";
4
+ import { useState as ae, useCallback as o, useMemo as U } from "react";
5
5
  import { useAsheeConfig as te } from "../../libs/context.js";
6
6
  import { resolveCascade as l, resolveRadiusKey as re } from "../../utils/resolve-token.js";
7
- import { ToastContext as se } from "./ToastContext.js";
8
- import { ToastItem as de } from "./ToastItem.js";
9
- import { FALLBACK_TOAST_CONFIG as d } from "./toast-config.js";
7
+ import { ToastContext as de } from "./ToastContext.js";
8
+ import { ToastItem as se } from "./ToastItem.js";
9
+ import { FALLBACK_TOAST_CONFIG as s } from "./toast-config.js";
10
10
  import { PLACEMENT_CLASSES as oe } from "./toast-styles.js";
11
11
  import { cn as le } from "../../utils/cn.js";
12
12
  function ze({
13
- children: F,
13
+ children: E,
14
14
  size: K,
15
15
  placement: M,
16
16
  variant: O,
@@ -23,54 +23,54 @@ function ze({
23
23
  className: I
24
24
  }) {
25
25
  var R;
26
- const [f, y] = ee([]), T = te(), a = (R = T.components) == null ? void 0 : R.toast, c = l(
26
+ const [f, y] = ae([]), T = te(), a = (R = T.components) == null ? void 0 : R.toast, c = l(
27
27
  K,
28
28
  a == null ? void 0 : a.size,
29
29
  void 0,
30
- d.size
30
+ s.size
31
31
  ), n = l(
32
32
  M,
33
33
  a == null ? void 0 : a.placement,
34
34
  void 0,
35
- d.placement
36
- ), m = l(
35
+ s.placement
36
+ ), i = l(
37
37
  O,
38
38
  a == null ? void 0 : a.variant,
39
39
  T.defaultVariant,
40
- d.variant
41
- ), i = re(
40
+ s.variant
41
+ ), m = re(
42
42
  _,
43
43
  a == null ? void 0 : a.radius,
44
44
  T.defaultRadius,
45
- d.radius
46
- ), b = l(
45
+ s.radius
46
+ ), w = l(
47
47
  k,
48
48
  a == null ? void 0 : a.maxToasts,
49
49
  void 0,
50
- d.maxToasts
50
+ s.maxToasts
51
51
  ), z = l(
52
52
  B,
53
53
  a == null ? void 0 : a.defaultTimeout,
54
54
  void 0,
55
- d.defaultTimeout
55
+ s.defaultTimeout
56
56
  ), u = l(
57
57
  G,
58
58
  a == null ? void 0 : a.animated,
59
59
  void 0,
60
- d.animated
60
+ s.animated
61
61
  ), J = l(
62
62
  q,
63
63
  a == null ? void 0 : a.portal,
64
64
  void 0,
65
- d.portal
66
- ), p = H ?? (typeof document < "u" ? document.body : null), x = o((e) => {
65
+ s.portal
66
+ ), x = H ?? (typeof document < "u" ? document.body : null), b = o((e) => {
67
67
  y((t) => t.filter((r) => r.id !== e));
68
- }, []), j = o(() => {
68
+ }, []), h = o(() => {
69
69
  y([]);
70
- }, []), s = o(
70
+ }, []), d = o(
71
71
  (e) => {
72
- var U;
73
- const t = typeof e == "object" && e.id ? e.id : typeof window < "u" && ((U = window.crypto) != null && U.randomUUID) ? window.crypto.randomUUID() : String(Date.now()), r = typeof e == "object" && e.placement ? e.placement : n, v = typeof e == "object" && e.size ? e.size : c, V = typeof e == "object" && e.variant ? e.variant : m, L = typeof e == "object" && e.radius ? e.radius : i, N = typeof e == "object" && e.animated !== void 0 ? e.animated : u, X = typeof e == "string" ? {
72
+ var N;
73
+ const t = typeof e == "object" && e.id ? e.id : typeof window < "u" && ((N = window.crypto) != null && N.randomUUID) ? window.crypto.randomUUID() : String(Date.now()), r = typeof e == "object" && e.placement ? e.placement : n, v = typeof e == "object" && e.size ? e.size : c, V = typeof e == "object" && e.variant ? e.variant : i, F = typeof e == "object" && e.radius ? e.radius : m, L = typeof e == "object" && e.animated !== void 0 ? e.animated : u, X = typeof e == "string" ? {
74
74
  id: t,
75
75
  message: e,
76
76
  timeout: z,
@@ -78,8 +78,8 @@ function ze({
78
78
  placement: r,
79
79
  size: v,
80
80
  variant: V,
81
- radius: L,
82
- animated: N
81
+ radius: F,
82
+ animated: L
83
83
  } : {
84
84
  ...e,
85
85
  id: t,
@@ -88,93 +88,93 @@ function ze({
88
88
  placement: e.placement ?? r,
89
89
  size: e.size ?? v,
90
90
  variant: e.variant ?? V,
91
- radius: e.radius ?? L,
92
- animated: e.animated !== void 0 ? e.animated : N
91
+ radius: e.radius ?? F,
92
+ animated: e.animated !== void 0 ? e.animated : L
93
93
  };
94
94
  return y((Y) => {
95
95
  const Z = Y.filter(($) => $.id !== t);
96
- return [X, ...Z].slice(0, b);
96
+ return [X, ...Z].slice(0, w);
97
97
  }), t;
98
98
  },
99
99
  [
100
100
  z,
101
- b,
101
+ w,
102
102
  n,
103
103
  c,
104
- m,
105
104
  i,
105
+ m,
106
106
  u
107
107
  ]
108
+ ), j = o(
109
+ (e, t) => d({ ...t, message: e, type: "success" }),
110
+ [d]
108
111
  ), A = o(
109
- (e, t) => s({ ...t, message: e, type: "success" }),
110
- [s]
112
+ (e, t) => d({ ...t, message: e, type: "error" }),
113
+ [d]
111
114
  ), P = o(
112
- (e, t) => s({ ...t, message: e, type: "error" }),
113
- [s]
115
+ (e, t) => d({ ...t, message: e, type: "info" }),
116
+ [d]
114
117
  ), S = o(
115
- (e, t) => s({ ...t, message: e, type: "info" }),
116
- [s]
117
- ), h = o(
118
- (e, t) => s({ ...t, message: e, type: "warning" }),
119
- [s]
120
- ), Q = E(
118
+ (e, t) => d({ ...t, message: e, type: "warning" }),
119
+ [d]
120
+ ), Q = U(
121
121
  () => ({
122
122
  toasts: f,
123
- toast: s,
124
- success: A,
125
- error: P,
126
- info: S,
127
- warning: h,
128
- removeToast: x,
129
- clearToasts: j,
130
- portalTarget: p,
123
+ toast: d,
124
+ success: j,
125
+ error: A,
126
+ info: P,
127
+ warning: S,
128
+ removeToast: b,
129
+ clearToasts: h,
130
+ portalTarget: x,
131
131
  defaultPlacement: n,
132
132
  defaultSize: c,
133
- defaultVariant: m,
134
- defaultRadius: i,
133
+ defaultVariant: i,
134
+ defaultRadius: m,
135
135
  defaultAnimated: u
136
136
  }),
137
137
  [
138
138
  f,
139
- s,
139
+ d,
140
+ j,
140
141
  A,
141
142
  P,
142
143
  S,
144
+ b,
143
145
  h,
144
146
  x,
145
- j,
146
- p,
147
147
  n,
148
148
  c,
149
- m,
150
149
  i,
150
+ m,
151
151
  u
152
152
  ]
153
- ), W = E(() => {
153
+ ), W = U(() => {
154
154
  const e = {};
155
155
  for (const t of f) {
156
156
  const r = t.placement ?? n, v = e[r] ?? [];
157
157
  e[r] = v, v.push(t);
158
158
  }
159
159
  return e;
160
- }, [f, n]), D = /* @__PURE__ */ w(g, { children: Object.entries(W).map(([e, t]) => /* @__PURE__ */ w(
160
+ }, [f, n]), D = /* @__PURE__ */ p(g, { children: Object.entries(W).map(([e, t]) => /* @__PURE__ */ p(
161
161
  "section",
162
162
  {
163
163
  "aria-label": "Notifications",
164
164
  className: le(
165
- "fixed z-99999 flex flex-col gap-3 pointer-events-none p-4 max-h-screen overflow-clip",
165
+ "fixed z-99999 flex flex-col gap-3 pointer-events-none p-4 max-h-screen scrollbar-hide overflow-hidden",
166
166
  oe[e],
167
167
  I
168
168
  ),
169
- children: t.map((r) => /* @__PURE__ */ w(
170
- de,
169
+ children: t.map((r) => /* @__PURE__ */ p(
170
+ se,
171
171
  {
172
172
  ...r,
173
- onDismiss: x,
173
+ onDismiss: b,
174
174
  placement: e,
175
175
  size: r.size ?? c,
176
- variant: r.variant ?? m,
177
- radius: r.radius ?? i,
176
+ variant: r.variant ?? i,
177
+ radius: r.radius ?? m,
178
178
  animated: r.animated ?? u
179
179
  },
180
180
  r.id
@@ -182,9 +182,9 @@ function ze({
182
182
  },
183
183
  e
184
184
  )) });
185
- return /* @__PURE__ */ C(se.Provider, { value: Q, children: [
186
- F,
187
- J && p ? ae(D, p) : D
185
+ return /* @__PURE__ */ C(de.Provider, { value: Q, children: [
186
+ E,
187
+ J ? /* @__PURE__ */ p(ee, { root: x, children: D }) : D
188
188
  ] });
189
189
  }
190
190
  export {
package/dist/index.d.ts CHANGED
@@ -45,6 +45,7 @@ export * from './components/tabs';
45
45
  export * from './components/textarea';
46
46
  export * from './components/toast';
47
47
  export * from './components/tooltip';
48
+ export type { ExternalConfig } from './config';
48
49
  /**
49
50
  * Shared type exports.
50
51
  * These types are used across multiple components for consistency.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC;;;GAGG;AACH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C;;;GAGG;AACH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7D;;;GAGG;AACH,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/theme/controller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAa/C;;GAEG;AACH,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,YAAY,EAAE,cAAc,CAAC;IAE7B;;;;OAIG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,cAAM,eAAe;IACnB;;;OAGG;IACH,OAAO,CAAC,SAAS,CAA2B;IAE5C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAA2B;IAE/C;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAyB;IAEhD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuB;IAExC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA+B;;IASjD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,IAAI;IAwC3D;;;;;;OAMG;IACH,UAAU,UAAW,cAAc,KAAG,IAAI,CAExC;IAEF;;;OAGG;IACH,YAAY,QAAO,cAAc,CAAmB;IAEpD;;;;;OAKG;IACH,gBAAgB,QAAO,SAAS,CAAkB;IAElD;;;;OAIG;IACH,QAAQ,cAAe,cAAc,KAAG,IAAI,CAS1C;IAEF;;;;;OAKG;IACH,SAAS,aAAc,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAG5C;IAEF;;;OAGG;IACH,kBAAkB,QAAO,SAAS,MAAM,EAAE,CAAyB;IAEnE;;;;;OAKG;IACH,WAAW,QAAO,IAAI,CAWpB;IAEF;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAMxB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAOf;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAKf;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CA+BvB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/theme/controller.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAa/C;;GAEG;AACH,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,YAAY,EAAE,cAAc,CAAC;IAE7B;;;;OAIG;IACH,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,cAAM,eAAe;IACnB;;;OAGG;IACH,OAAO,CAAC,SAAS,CAA2B;IAE5C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;OAGG;IACH,OAAO,CAAC,YAAY,CAA2B;IAE/C;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAyB;IAEhD;;OAEG;IACH,OAAO,CAAC,SAAS,CAAuB;IAExC;;;OAGG;IACH,OAAO,CAAC,UAAU,CAA+B;;IASjD;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,gBAAgB,GAAG,IAAI;IAkC3D;;;;;;OAMG;IACH,UAAU,UAAW,cAAc,KAAG,IAAI,CAExC;IAEF;;;OAGG;IACH,YAAY,QAAO,cAAc,CAAmB;IAEpD;;;;;OAKG;IACH,gBAAgB,QAAO,SAAS,CAAkB;IAElD;;;;OAIG;IACH,QAAQ,cAAe,cAAc,KAAG,IAAI,CAS1C;IAEF;;;;;OAKG;IACH,SAAS,aAAc,QAAQ,KAAG,CAAC,MAAM,IAAI,CAAC,CAG5C;IAEF;;;OAGG;IACH,kBAAkB,QAAO,SAAS,MAAM,EAAE,CAAyB;IAEnE;;;;;OAKG;IACH,WAAW,QAAO,IAAI,CAWpB;IAEF;;;;OAIG;IACH,OAAO,CAAC,kBAAkB,CAMxB;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAKhB;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAOf;;;;;OAKG;IACH,OAAO,CAAC,OAAO;IAKf;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;CA+BvB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,iBAAwB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  var r = Object.defineProperty;
3
- var c = (n, e, t) => e in n ? r(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
4
- var s = (n, e, t) => c(n, typeof e != "symbol" ? e + "" : e, t);
5
- const a = "ashee-theme", d = "(prefers-color-scheme: dark)", h = "theme-";
3
+ var d = (n, e, t) => e in n ? r(n, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[e] = t;
4
+ var s = (n, e, t) => d(n, typeof e != "symbol" ? e + "" : e, t);
5
+ const o = "ashee-theme", c = "(prefers-color-scheme: dark)", h = "theme-";
6
6
  class m {
7
7
  constructor() {
8
8
  /**
@@ -63,7 +63,7 @@ class m {
63
63
  */
64
64
  s(this, "setTheme", (e) => {
65
65
  const t = this.sanitize(e);
66
- this.selection = t, typeof window < "u" && window.localStorage.setItem(a, t), this.applySelection(), this.listeners.forEach((i) => {
66
+ this.selection = t, typeof window < "u" && window.localStorage.setItem(o, t), this.applySelection(), this.listeners.forEach((i) => {
67
67
  i();
68
68
  });
69
69
  });
@@ -101,7 +101,7 @@ class m {
101
101
  e();
102
102
  }));
103
103
  });
104
- typeof window > "u" || (this.mediaQuery = window.matchMedia(d), this.mediaQuery.addEventListener("change", this.handleSystemChange));
104
+ typeof window > "u" || (this.mediaQuery = window.matchMedia(c), this.mediaQuery.addEventListener("change", this.handleSystemChange));
105
105
  }
106
106
  /**
107
107
  * Seeds the controller with the resolved theme config and applies the theme.
@@ -112,20 +112,18 @@ class m {
112
112
  * - Never writes to storage (only `setTheme` persists user intent).
113
113
  */
114
114
  configure({ defaultTheme: e, themes: t }) {
115
- if (console.log("[Theme] configure called with:", { defaultTheme: e, themes: t }), this.defaultTheme = e, this.availableThemes = t, typeof window > "u") {
115
+ if (this.defaultTheme = e, this.availableThemes = t, typeof window > "u") {
116
116
  console.log(
117
117
  "[Theme] Running in non-browser environment, skipping localStorage operations."
118
118
  );
119
119
  return;
120
120
  }
121
- const i = window.localStorage.getItem(a);
122
- console.log("[Theme] Retrieved from localStorage:", i);
123
- const l = i !== null && this.isValid(i);
124
- console.log("[Theme] Is stored theme valid?", l), l || i !== null && (console.log(
121
+ const i = window.localStorage.getItem(o), l = i !== null && this.isValid(i);
122
+ l || i !== null && (console.log(
125
123
  "[Theme] Invalid stored theme, removing from localStorage."
126
- ), window.localStorage.removeItem(a)), this.selection = l ? i : e, console.log("[Theme] Final selection:", this.selection), this.applySelection(), console.log("[Theme] Applied selection."), this.listeners.forEach((o) => {
127
- o();
128
- }), console.log("[Theme] Notified all listeners.");
124
+ ), window.localStorage.removeItem(o)), this.selection = l ? i : e, this.applySelection(), this.listeners.forEach((a) => {
125
+ a();
126
+ });
129
127
  }
130
128
  /**
131
129
  * Validates a theme selection and returns a valid fallback if necessary.
@@ -169,13 +167,13 @@ class m {
169
167
  let t = this.resolve(e);
170
168
  if (this.availableThemes.length > 0 && !this.availableThemes.includes(t) && (t = this.availableThemes.includes(this.defaultTheme) ? this.defaultTheme : this.availableThemes[0]), this.resolved = t, typeof document > "u") return;
171
169
  const i = document.documentElement, l = `${h}${t}`;
172
- for (const o of Array.from(i.classList))
173
- o.startsWith(h) && i.classList.remove(o);
170
+ for (const a of Array.from(i.classList))
171
+ a.startsWith(h) && i.classList.remove(a);
174
172
  i.classList.add(l);
175
173
  }
176
174
  }
177
175
  const f = new m();
178
176
  export {
179
- a as THEME_STORAGE_KEY,
177
+ o as THEME_STORAGE_KEY,
180
178
  f as themeController
181
179
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "asheeui",
3
- "version": "0.6.10",
3
+ "version": "0.6.13",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -15,16 +15,6 @@
15
15
  "style": "./dist/index.css",
16
16
  "default": "./dist/index.css"
17
17
  },
18
- "./config": {
19
- "types": "./dist/config/index.d.ts",
20
- "import": "./dist/index.js",
21
- "default": "./dist/index.js"
22
- },
23
- "./libs": {
24
- "types": "./dist/libs/index.d.ts",
25
- "import": "./dist/index.js",
26
- "default": "./dist/index.js"
27
- },
28
18
  "./styles.css": "./dist/index.css"
29
19
  },
30
20
  "publishConfig": {
@@ -48,28 +38,21 @@
48
38
  },
49
39
  "devDependencies": {
50
40
  "@floating-ui/react": "^0.27.20",
51
- "@testing-library/jest-dom": "^6.6.3",
52
- "@testing-library/react": "^16.1.0",
53
- "@testing-library/user-event": "^14.5.2",
54
41
  "@types/node": "^26.1.2",
55
42
  "@types/react": "^19.0.0",
56
43
  "@types/react-dom": "^19.0.0",
57
44
  "@vitejs/plugin-react": "^4.0.0",
58
- "happy-dom": "^15.11.7",
59
45
  "react": "^19.0.0",
60
46
  "react-dom": "^19.0.0",
61
- "ts-node": "^10.9.2",
62
47
  "tsx": "^4.23.12",
63
48
  "typescript": "^5.0.0",
64
49
  "vite": "^6.0.0",
65
- "vite-plugin-dts": "^4.0.0",
66
- "vitest": "^3.2.7"
50
+ "vite-plugin-dts": "^4.0.0"
67
51
  },
68
52
  "module": "./dist/index.js",
69
53
  "license": "MIT",
70
54
  "scripts": {
71
55
  "build:registry": "tsx src/scripts/build-registry.ts",
72
- "build": "vite build",
73
- "test": "vitest run"
56
+ "build": "vite build"
74
57
  }
75
58
  }