quirk-ui 0.0.131 → 0.0.133

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.
@@ -1 +1 @@
1
- ._tabs_1fgfr_1{display:flex;flex-direction:column;width:100%}._tabsList_1fgfr_7{display:flex;width:100%;background-color:var(--color-tab-background);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_1fgfr_7::-webkit-scrollbar{display:none}._horizontal_1fgfr_24{flex-direction:column}._vertical_1fgfr_28{flex-direction:row;gap:var(--spacing-lg)}._vertical_1fgfr_28 ._tabsList_1fgfr_7{flex-direction:column;overflow-x:visible;flex:.2 0 150px}._vertical_1fgfr_28 ._tabsTrigger_1fgfr_38{white-space:normal;text-align:left}._vertical_1fgfr_28 ._tabsPanelWrapper_1fgfr_43{flex:1;width:100%}._left_1fgfr_50{justify-content:flex-start}._center_1fgfr_54{justify-content:center}._right_1fgfr_58{justify-content:flex-end}._indicator_1fgfr_62{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-tab-background)}._indicator_1fgfr_62:after{content:"";border-radius:var(--radius-md);background-color:var(--color-primary);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_1fgfr_38{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}@media (max-width: 767px){._tabsList_1fgfr_7{flex-direction:column;overflow-x:visible}._tabsTrigger_1fgfr_38{white-space:normal;text-align:left}}._tabsPanelWrapper_1fgfr_43{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1fgfr_43{animation:_fadeSlide_1fgfr_1 .3s ease both;position:relative;width:100%;padding:var(--spacing-xl) var(--spacing-sm);color:var(--color-text-primary)}@keyframes _fadeSlide_1fgfr_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_1fgfr_153,._dark_1fgfr_154{background-color:var(--color-tab-background)}._default_1fgfr_153 ._indicator_1fgfr_62,._dark_1fgfr_154 ._indicator_1fgfr_62{border:5px solid transparent}._default_1fgfr_153 ._tabsTrigger_1fgfr_38,._dark_1fgfr_154 ._tabsTrigger_1fgfr_38{color:var(--color-muted)}._light_1fgfr_166{background-color:#fff}._light_1fgfr_166 ._indicator_1fgfr_62{border:5px solid transparent}._light_1fgfr_166 ._tabsList_1fgfr_7{background-color:#fff}._light_1fgfr_166 ._tabsTrigger_1fgfr_38{color:var(--color-text-primary)}._light_1fgfr_166 ._tabsTrigger_1fgfr_38:hover{color:var(--color-primary)}._light_1fgfr_166 ._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}._transparent_1fgfr_190{background-color:transparent}._transparent_1fgfr_190 ._indicator_1fgfr_62{border:5px solid transparent}._transparent_1fgfr_190 ._tabsList_1fgfr_7{background-color:transparent}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38{color:var(--color-text-primary)}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38:hover{color:var(--color-primary)}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}
1
+ ._tabs_6qx4l_1{display:flex;flex-direction:column;width:100%}._tabsList_6qx4l_7{display:flex;width:100%;background-color:var(--color-tab-background);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_6qx4l_7::-webkit-scrollbar{display:none}._horizontal_6qx4l_24{flex-direction:column}._vertical_6qx4l_28{flex-direction:row;align-items:flex-start;gap:3rem}._vertical_6qx4l_28 ._tabsList_6qx4l_7{flex-direction:column;overflow-x:visible;flex:.25 0 150px}._vertical_6qx4l_28 ._tabsTrigger_6qx4l_39{white-space:normal;text-align:left}._vertical_6qx4l_28 ._tabsPanelWrapper_6qx4l_44{flex:1;width:100%}._left_6qx4l_51{justify-content:flex-start}._center_6qx4l_55{justify-content:center}._right_6qx4l_59{justify-content:flex-end}._indicator_6qx4l_63{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-tab-background)}._indicator_6qx4l_63:after{content:"";border-radius:var(--radius-md);background-color:var(--color-primary);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_6qx4l_39{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}@media (max-width: 767px){._tabsList_6qx4l_7{flex-direction:column;overflow-x:visible}._tabsTrigger_6qx4l_39{white-space:normal;text-align:left}}._tabsPanelWrapper_6qx4l_44{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_6qx4l_44{animation:_fadeSlide_6qx4l_1 .3s ease both;position:relative;width:100%;color:var(--color-text-primary)}@keyframes _fadeSlide_6qx4l_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_6qx4l_154,._dark_6qx4l_155{background-color:var(--color-tab-background)}._default_6qx4l_154 ._indicator_6qx4l_63,._dark_6qx4l_155 ._indicator_6qx4l_63{border:5px solid transparent}._default_6qx4l_154 ._tabsTrigger_6qx4l_39,._dark_6qx4l_155 ._tabsTrigger_6qx4l_39{color:var(--color-muted)}._light_6qx4l_167{background-color:#fff}._light_6qx4l_167 ._indicator_6qx4l_63{border:5px solid transparent}._light_6qx4l_167 ._tabsList_6qx4l_7{background-color:#fff}._light_6qx4l_167 ._tabsTrigger_6qx4l_39{color:var(--color-text-primary)}._light_6qx4l_167 ._tabsTrigger_6qx4l_39:hover{color:var(--color-primary)}._light_6qx4l_167 ._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}._transparent_6qx4l_191{background-color:transparent}._transparent_6qx4l_191 ._indicator_6qx4l_63{border:5px solid transparent}._transparent_6qx4l_191 ._tabsList_6qx4l_7{background-color:transparent}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39{color:var(--color-text-primary)}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39:hover{color:var(--color-primary)}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}
@@ -1,6 +1,6 @@
1
- import { jsxs as l, jsx as a } from "react/jsx-runtime";
2
- import { d as c, i as o, g as t, s as e, f as r, r as b } from "../../vi.ClIskdbk-CZ8iFAMK.js";
3
- import { Tabs as n } from "./index.js";
1
+ import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
+ import { d as b, i as s, g as n, s as e, f as o, r as c } from "../../vi.ClIskdbk-CZ8iFAMK.js";
3
+ import { Tabs as a } from "./index.js";
4
4
  import "../../index-BBIdMcpm.js";
5
5
  beforeAll(() => {
6
6
  global.ResizeObserver = class {
@@ -10,44 +10,40 @@ beforeAll(() => {
10
10
  }
11
11
  };
12
12
  });
13
- c("Tabs", () => {
14
- const s = () => {
15
- b(
16
- /* @__PURE__ */ l(n, { defaultIndex: 0, align: "center", children: [
17
- /* @__PURE__ */ l(n.List, { children: [
18
- /* @__PURE__ */ a(n.Trigger, { index: 0, children: "Tab 1" }),
19
- /* @__PURE__ */ a(n.Trigger, { index: 1, children: "Tab 2" })
13
+ b("Tabs", () => {
14
+ const i = () => {
15
+ c(
16
+ /* @__PURE__ */ l(a, { defaultIndex: 0, children: [
17
+ /* @__PURE__ */ l(a.List, { children: [
18
+ /* @__PURE__ */ t(a.Trigger, { index: 0, children: "Tab 1" }),
19
+ /* @__PURE__ */ t(a.Trigger, { index: 1, children: "Tab 2" })
20
20
  ] }),
21
- /* @__PURE__ */ a(n.Panel, { index: 0, children: /* @__PURE__ */ a("p", { children: "This is the first panel" }) }),
22
- /* @__PURE__ */ a(n.Panel, { index: 1, children: /* @__PURE__ */ a("p", { children: "This is the second panel" }) })
21
+ /* @__PURE__ */ t(a.Panel, { index: 0, children: /* @__PURE__ */ t("p", { children: "This is the first panel" }) }),
22
+ /* @__PURE__ */ t(a.Panel, { index: 1, children: /* @__PURE__ */ t("p", { children: "This is the second panel" }) })
23
23
  ] })
24
24
  );
25
25
  };
26
- o("renders tab triggers and default panel", () => {
27
- s(), t(e.getByRole("tab", { name: /tab 1/i })).toBeInTheDocument(), t(e.getByRole("tab", { name: /tab 2/i })).toBeInTheDocument(), t(e.getByRole("tabpanel")).toHaveTextContent(
26
+ s("renders tab triggers and default panel", () => {
27
+ i(), n(e.getByRole("tab", { name: /tab 1/i })).toBeInTheDocument(), n(e.getByRole("tab", { name: /tab 2/i })).toBeInTheDocument(), n(e.getByRole("tabpanel")).toHaveTextContent(
28
28
  "This is the first panel"
29
29
  );
30
- }), o("changes panel when tab is clicked", () => {
31
- s(), r.click(e.getByRole("tab", { name: /tab 2/i })), t(e.getByRole("tabpanel")).toHaveTextContent(
30
+ }), s("changes panel when tab is clicked", () => {
31
+ i(), o.click(e.getByRole("tab", { name: /tab 2/i })), n(e.getByRole("tabpanel")).toHaveTextContent(
32
32
  "This is the second panel"
33
33
  );
34
- }), o("responds to ArrowRight key to switch tabs", () => {
35
- s();
36
- const i = e.getByRole("tab", { name: /tab 1/i });
37
- r.keyDown(i, { key: "ArrowRight" }), t(e.getByRole("tabpanel")).toHaveTextContent(
34
+ }), s("responds to ArrowRight key to switch tabs", () => {
35
+ i();
36
+ const r = e.getByRole("tab", { name: /tab 1/i });
37
+ o.keyDown(r, { key: "ArrowRight" }), n(e.getByRole("tabpanel")).toHaveTextContent(
38
38
  "This is the second panel"
39
39
  );
40
- }), o("responds to ArrowLeft key to switch tabs", () => {
41
- s();
42
- const i = e.getByRole("tab", { name: /tab 1/i });
43
- r.keyDown(i, { key: "ArrowRight" }), r.keyDown(e.getByRole("tab", { name: /tab 2/i }), {
40
+ }), s("responds to ArrowLeft key to switch tabs", () => {
41
+ i();
42
+ const r = e.getByRole("tab", { name: /tab 1/i });
43
+ o.keyDown(r, { key: "ArrowRight" }), o.keyDown(e.getByRole("tab", { name: /tab 2/i }), {
44
44
  key: "ArrowLeft"
45
- }), t(e.getByRole("tabpanel")).toHaveTextContent(
45
+ }), n(e.getByRole("tabpanel")).toHaveTextContent(
46
46
  "This is the first panel"
47
47
  );
48
- }), o("applies alignment class to list", () => {
49
- s();
50
- const i = e.getByRole("tablist");
51
- t(i.className).toMatch(/center/i);
52
48
  });
53
49
  });
@@ -1,78 +1,69 @@
1
- import { jsx as p, jsxs as z } from "react/jsx-runtime";
2
- import W, { useState as I, useId as H, useRef as w, useMemo as S, useCallback as j, useLayoutEffect as k, useEffect as B } from "react";
3
- import { TabsContext as D, useTabsContext as m } from "./Context.js";
4
- import '../../assets/index33.css';const K = "_tabs_1fgfr_1", O = "_tabsList_1fgfr_7", X = "_horizontal_1fgfr_24", Y = "_vertical_1fgfr_28", q = "_tabsTrigger_1fgfr_38", F = "_tabsPanelWrapper_1fgfr_43", G = "_left_1fgfr_50", J = "_center_1fgfr_54", Q = "_right_1fgfr_58", U = "_indicator_1fgfr_62", V = "_active_1fgfr_109", Z = "_tabsPanel_1fgfr_43", tt = "_dark_1fgfr_154", et = "_light_1fgfr_166", rt = "_transparent_1fgfr_190", e = {
5
- tabs: K,
6
- tabsList: O,
7
- horizontal: X,
8
- vertical: Y,
9
- tabsTrigger: q,
10
- tabsPanelWrapper: F,
11
- left: G,
12
- center: J,
13
- right: Q,
14
- indicator: U,
15
- active: V,
16
- tabsPanel: Z,
17
- default: "_default_1fgfr_153",
18
- dark: tt,
19
- light: et,
20
- transparent: rt
21
- }, nt = {
22
- left: e.left,
23
- center: e.center,
24
- right: e.right
25
- }, st = {
26
- horizontal: e.horizontal,
27
- vertical: e.vertical
28
- }, at = {
29
- default: e.default,
30
- light: e.light,
31
- dark: e.dark,
32
- transparent: e.transparent
1
+ import { jsx as b, jsxs as k } from "react/jsx-runtime";
2
+ import M, { useState as C, useId as N, useRef as w, useMemo as W, useCallback as H, useLayoutEffect as I, useEffect as S } from "react";
3
+ import { TabsContext as j, useTabsContext as x } from "./Context.js";
4
+ import '../../assets/index33.css';const B = "_tabs_6qx4l_1", D = "_tabsList_6qx4l_7", K = "_horizontal_6qx4l_24", O = "_vertical_6qx4l_28", X = "_tabsTrigger_6qx4l_39", Y = "_tabsPanelWrapper_6qx4l_44", F = "_indicator_6qx4l_63", G = "_active_6qx4l_110", J = "_tabsPanel_6qx4l_44", Q = "_dark_6qx4l_155", U = "_light_6qx4l_167", V = "_transparent_6qx4l_191", n = {
5
+ tabs: B,
6
+ tabsList: D,
7
+ horizontal: K,
8
+ vertical: O,
9
+ tabsTrigger: X,
10
+ tabsPanelWrapper: Y,
11
+ indicator: F,
12
+ active: G,
13
+ tabsPanel: J,
14
+ default: "_default_6qx4l_154",
15
+ dark: Q,
16
+ light: U,
17
+ transparent: V
18
+ }, Z = {
19
+ horizontal: n.horizontal,
20
+ vertical: n.vertical
21
+ }, tt = {
22
+ default: n.default,
23
+ light: n.light,
24
+ dark: n.dark,
25
+ transparent: n.transparent
33
26
  };
34
- function y({
27
+ function m({
35
28
  children: c,
36
- defaultIndex: r = 0,
37
- align: n = "left",
38
- orientation: s = "horizontal",
39
- theme: f = "default"
29
+ defaultIndex: e = 0,
30
+ orientation: a = "horizontal",
31
+ theme: s = "default"
40
32
  }) {
41
- const [a, _] = I(r), [u, l] = I({
33
+ const [r, d] = C(e), [u, _] = C({
42
34
  width: 0,
43
35
  left: 0,
44
36
  top: 0,
45
37
  height: 0
46
- }), d = typeof window < "u", A = d ? k : B, P = H(), $ = [], L = [], R = w(null), C = w([]), T = w([]), N = S(
38
+ }), l = typeof window < "u", p = l ? I : S, y = N(), P = [], $ = [], q = w(null), L = w([]), R = w([]), A = W(
47
39
  () => ({
48
- activeIndex: a,
49
- setActiveIndex: _,
50
- idPrefix: P,
51
- align: n,
52
- orientation: s,
53
- theme: f,
54
- panelRefs: C,
55
- triggerRefs: T,
40
+ activeIndex: r,
41
+ setActiveIndex: d,
42
+ idPrefix: y,
43
+ orientation: a,
44
+ theme: s,
45
+ panelRefs: L,
46
+ triggerRefs: R,
56
47
  indicatorStyle: u
57
48
  }),
58
- [a, P, n, s, f, u]
49
+ [r, y, a, s, u]
59
50
  );
60
- W.Children.forEach(c, (t) => {
51
+ M.Children.forEach(c, (t) => {
61
52
  var i;
62
- (t == null ? void 0 : t.type) === E ? $.push(t) : ((t == null ? void 0 : t.type) === M || ((i = t == null ? void 0 : t.type) == null ? void 0 : i.name) === "Panel") && L.push(t);
53
+ (t == null ? void 0 : t.type) === z ? P.push(t) : ((t == null ? void 0 : t.type) === E || ((i = t == null ? void 0 : t.type) == null ? void 0 : i.name) === "Panel") && $.push(t);
63
54
  });
64
- const b = j(() => {
55
+ const g = H(() => {
65
56
  var i;
66
- const t = T.current[a];
57
+ const t = R.current[r];
67
58
  if (t) {
68
- const g = t.getBoundingClientRect(), o = (i = t.parentElement) == null ? void 0 : i.getBoundingClientRect();
59
+ const f = t.getBoundingClientRect(), o = (i = t.parentElement) == null ? void 0 : i.getBoundingClientRect();
69
60
  if (!o) return;
70
- if (window.innerWidth < 768 || s === "vertical") {
71
- const h = g.top - o.top, v = g.height;
72
- l({ top: h, height: v, left: 0, width: o.width });
61
+ if (window.innerWidth < 768 || a === "vertical") {
62
+ const h = f.top - o.top, v = f.height;
63
+ _({ top: h, height: v, left: 0, width: o.width });
73
64
  } else {
74
- const h = g.left - o.left, v = g.width;
75
- l({
65
+ const h = f.left - o.left, v = f.width;
66
+ _({
76
67
  left: h,
77
68
  width: v,
78
69
  top: 0,
@@ -80,106 +71,97 @@ function y({
80
71
  });
81
72
  }
82
73
  }
83
- }, [a, s]);
84
- return A(() => {
85
- if (!(typeof window > "u") && d)
86
- return b(), window.addEventListener("resize", b), () => {
87
- window.removeEventListener("resize", b);
74
+ }, [r, a]);
75
+ return p(() => {
76
+ if (!(typeof window > "u") && l)
77
+ return g(), window.addEventListener("resize", g), () => {
78
+ window.removeEventListener("resize", g);
88
79
  };
89
- }, [b]), k(() => {
90
- const t = R.current, i = C.current[a];
80
+ }, [g]), I(() => {
81
+ const t = q.current, i = L.current[r];
91
82
  if (!t || !i) return;
92
- const g = () => {
93
- const x = i.offsetHeight;
94
- t.offsetHeight, t.style.height = `${x}px`;
83
+ const f = () => {
84
+ const T = i.offsetHeight;
85
+ t.offsetHeight, t.style.height = `${T}px`;
95
86
  };
96
- g();
97
- const o = new ResizeObserver(g);
87
+ f();
88
+ const o = new ResizeObserver(f);
98
89
  return o.observe(i), () => {
99
90
  o.disconnect();
100
91
  };
101
- }, [a]), /* @__PURE__ */ p(D.Provider, { value: N, children: /* @__PURE__ */ z(
92
+ }, [r]), /* @__PURE__ */ b(j.Provider, { value: A, children: /* @__PURE__ */ k(
102
93
  "div",
103
94
  {
104
- className: `${e.tabs} ${st[s]} ${at[f]}`,
95
+ className: `${n.tabs} ${Z[a]} ${tt[s]}`,
105
96
  children: [
106
- $,
107
- /* @__PURE__ */ p("div", { ref: R, className: e.tabsPanelWrapper, children: L })
97
+ P,
98
+ /* @__PURE__ */ b("div", { ref: q, className: n.tabsPanelWrapper, children: $ })
108
99
  ]
109
100
  }
110
101
  ) });
111
102
  }
112
- function E({ children: c }) {
113
- const { align: r, indicatorStyle: n } = m();
114
- return /* @__PURE__ */ z(
115
- "div",
116
- {
117
- className: `${e.tabsList} ${nt[r]}`,
118
- role: "tablist",
119
- "aria-label": "Tabs",
120
- children: [
121
- /* @__PURE__ */ p(
122
- "div",
123
- {
124
- className: e.indicator,
125
- style: {
126
- width: n.width,
127
- height: n.height,
128
- transform: `translateX(${n.left}px) translateY(${n.top}px)`
129
- }
130
- }
131
- ),
132
- c
133
- ]
134
- }
135
- );
103
+ function z({ children: c }) {
104
+ const { indicatorStyle: e } = x();
105
+ return /* @__PURE__ */ k("div", { className: `${n.tabsList}`, role: "tablist", "aria-label": "Tabs", children: [
106
+ /* @__PURE__ */ b(
107
+ "div",
108
+ {
109
+ className: n.indicator,
110
+ style: {
111
+ width: e.width,
112
+ height: e.height,
113
+ transform: `translateX(${e.left}px) translateY(${e.top}px)`
114
+ }
115
+ }
116
+ ),
117
+ c
118
+ ] });
136
119
  }
137
- function it({ children: c, index: r }) {
138
- const { activeIndex: n, setActiveIndex: s, idPrefix: f, triggerRefs: a } = m(), _ = (l) => {
139
- l.key === "ArrowRight" ? s((d) => d + 1) : l.key === "ArrowLeft" && s((d) => Math.max(0, d - 1));
140
- }, u = n === r;
141
- return /* @__PURE__ */ p(
120
+ function et({ children: c, index: e }) {
121
+ const { activeIndex: a, setActiveIndex: s, idPrefix: r, triggerRefs: d } = x(), u = (l) => {
122
+ l.key === "ArrowRight" ? s((p) => p + 1) : l.key === "ArrowLeft" && s((p) => Math.max(0, p - 1));
123
+ }, _ = a === e;
124
+ return /* @__PURE__ */ b(
142
125
  "button",
143
126
  {
144
- className: `${e.tabsTrigger} ${u ? e.active : ""}`,
127
+ className: `${n.tabsTrigger} ${_ ? n.active : ""}`,
145
128
  role: "tab",
146
129
  ref: (l) => {
147
- a.current[r] = l;
130
+ d.current[e] = l;
148
131
  },
149
- id: `${f}-tab-${r}`,
150
- "aria-selected": n === r,
151
- tabIndex: n === r ? 0 : -1,
152
- onClick: () => s(r),
153
- onKeyDown: _,
132
+ id: `${r}-tab-${e}`,
133
+ "aria-selected": a === e,
134
+ tabIndex: a === e ? 0 : -1,
135
+ onClick: () => s(e),
136
+ onKeyDown: u,
154
137
  children: c
155
138
  }
156
139
  );
157
140
  }
158
- function M({ children: c, index: r }) {
159
- const { activeIndex: n, idPrefix: s, panelRefs: f } = m(), a = r === n;
160
- return /* @__PURE__ */ p(
141
+ function E({ children: c, index: e }) {
142
+ const { activeIndex: a, idPrefix: s, panelRefs: r } = x(), d = e === a;
143
+ return /* @__PURE__ */ b(
161
144
  "div",
162
145
  {
163
- ref: (_) => {
164
- f.current[r] = _;
146
+ ref: (u) => {
147
+ r.current[e] = u;
165
148
  },
166
- className: e.tabsPanel,
149
+ className: n.tabsPanel,
167
150
  role: "tabpanel",
168
- id: `${s}-panel-${r}`,
169
- "aria-labelledby": `${s}-tab-${r}`,
170
- "aria-hidden": !a,
171
- hidden: !a,
151
+ id: `${s}-panel-${e}`,
152
+ "aria-labelledby": `${s}-tab-${e}`,
153
+ "aria-hidden": !d,
154
+ hidden: !d,
172
155
  children: c
173
156
  }
174
157
  );
175
158
  }
176
- y.List = E;
177
- y.Trigger = it;
178
- y.Panel = M;
159
+ m.List = z;
160
+ m.Trigger = et;
161
+ m.Panel = E;
179
162
  export {
180
- y as Tabs,
181
- nt as alignClassMap,
182
- y as default,
183
- st as orientationClassMap,
184
- at as themeClassMap
163
+ m as Tabs,
164
+ m as default,
165
+ Z as orientationClassMap,
166
+ tt as themeClassMap
185
167
  };
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { Align, Orientation } from '.';
2
+ import { Orientation, Theme } from '.';
3
3
  export type IndicatorStyle = {
4
4
  width: number;
5
5
  left: number;
@@ -10,8 +10,8 @@ export type TabsContextType = {
10
10
  activeIndex: number;
11
11
  setActiveIndex: React.Dispatch<React.SetStateAction<number>>;
12
12
  idPrefix: string;
13
- align: Align;
14
13
  orientation: Orientation;
14
+ theme: Theme;
15
15
  panelRefs: React.RefObject<(HTMLDivElement | null)[]>;
16
16
  setWrapperHeight?: () => void;
17
17
  triggerRefs: React.RefObject<(HTMLButtonElement | null)[]>;
@@ -1,10 +1,4 @@
1
1
  import { ReactNode } from 'react';
2
- export declare const alignClassMap: {
3
- left: string;
4
- center: string;
5
- right: string;
6
- };
7
- export type Align = keyof typeof alignClassMap;
8
2
  export declare const orientationClassMap: {
9
3
  horizontal: string;
10
4
  vertical: string;
@@ -20,11 +14,10 @@ export type Theme = keyof typeof themeClassMap;
20
14
  type TabsProps = {
21
15
  children: ReactNode;
22
16
  defaultIndex?: number;
23
- align?: Align;
24
17
  orientation?: Orientation;
25
18
  theme?: Theme;
26
19
  };
27
- export declare function Tabs({ children, defaultIndex, align, orientation, theme, }: TabsProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function Tabs({ children, defaultIndex, orientation, theme, }: TabsProps): import("react/jsx-runtime").JSX.Element;
28
21
  export declare namespace Tabs {
29
22
  var List: ({ children }: {
30
23
  children: ReactNode;
package/dist/styles.css CHANGED
@@ -30,7 +30,7 @@ ul._list_4w9h5_1{list-style-type:none;padding:0;margin:0}ol._list_4w9h5_1{list-s
30
30
  ._progressBarContainer_a1m8u_1{display:flex;align-items:center;justify-content:center;gap:.25rem;width:100%}._progressBar_a1m8u_1{flex:1;height:12px;background-color:#f0f0f0;border-radius:4px;overflow:hidden;position:relative}._fill_a1m8u_18{height:100%;transition:width .3s ease;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;border-radius:4px}._primary_a1m8u_29 ._fill_a1m8u_18{background-color:var(--color-primary)}._success_a1m8u_33 ._fill_a1m8u_18{background-color:var(--color-success)}._warning_a1m8u_37 ._fill_a1m8u_18{background-color:var(--color-warning)}._danger_a1m8u_41 ._fill_a1m8u_18{background-color:var(--color-error)}._label_a1m8u_45{flex:.1;position:relative;width:auto;text-align:center;color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}
31
31
  ._carousel_1e9ij_1{width:100%}@media (max-width: 767px){._carousel_1e9ij_1{padding:0 var(--spacing-lg)}}._noPointerEvents_1e9ij_9 *{pointer-events:none!important}._trackContainer_1e9ij_13{overflow:hidden;width:100%}@media (max-width: 767px){._trackContainer_1e9ij_13{overflow:visible}}._track_1e9ij_13{display:flex;transition:transform .3s ease;will-change:transform}._page_1e9ij_28{display:flex;gap:var(--spacing-md);padding:0 var(--spacing-sm)}._controls_1e9ij_34{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-md);margin-left:auto;margin-right:auto;padding:0 var(--spacing-md);width:100%}._indicators_1e9ij_45{display:flex;flex-wrap:wrap;max-width:125px;gap:var(--spacing-xs)}._indicator_1e9ij_45{width:10px;height:10px;border-radius:50%;background-color:#e0e0e0;border:1px solid #fff;cursor:pointer;transition:background-color .3s}._indicator_1e9ij_45._active_1e9ij_62{background-color:var(--color-primary)}._buttons_1e9ij_66{display:flex;gap:var(--spacing-md)}._prev_1e9ij_71._disabled_1e9ij_71,._next_1e9ij_72._disabled_1e9ij_71{opacity:.5;pointer-events:none}._buttons_1e9ij_66 button:not(._disabled_1e9ij_71):hover{background-color:var(--color-primary);color:#fff}._prev_1e9ij_71,._next_1e9ij_72{background-color:#e0e0e0;color:var(--color-text-primary);border:1px solid #fff;padding:var(--spacing-sm);cursor:pointer;transition:background-color .3s,color .3s;border-radius:50%;width:40px;height:40px;display:flex;justify-content:center;align-items:center}
32
32
  ._drawer_55xty_1{position:fixed;background-color:var(--color-background);transition:transform .3s ease-in-out;z-index:1000;width:300px;height:100%;box-shadow:0 0 10px #00000026;padding:var(--spacing-md)}._right_55xty_12{top:0;right:0;transform:translate(100%)}._left_55xty_18{top:0;left:0;transform:translate(-100%)}._top_55xty_24{top:0;left:0;width:100%;height:auto;transform:translateY(-100%)}._bottom_55xty_32{bottom:0;left:0;width:100%;height:auto;transform:translateY(100%)}._open_55xty_40._right_55xty_12,._open_55xty_40._left_55xty_18{transform:translate(0)}._open_55xty_40._top_55xty_24,._open_55xty_40._bottom_55xty_32{transform:translateY(0)}._overlay_55xty_50{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0000004d;opacity:0;pointer-events:none;transition:opacity .3s ease-in-out;z-index:999}._overlay_55xty_50._show_55xty_60{opacity:1;pointer-events:all}
33
- ._tabs_1fgfr_1{display:flex;flex-direction:column;width:100%}._tabsList_1fgfr_7{display:flex;width:100%;background-color:var(--color-tab-background);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_1fgfr_7::-webkit-scrollbar{display:none}._horizontal_1fgfr_24{flex-direction:column}._vertical_1fgfr_28{flex-direction:row;gap:var(--spacing-lg)}._vertical_1fgfr_28 ._tabsList_1fgfr_7{flex-direction:column;overflow-x:visible;flex:.2 0 150px}._vertical_1fgfr_28 ._tabsTrigger_1fgfr_38{white-space:normal;text-align:left}._vertical_1fgfr_28 ._tabsPanelWrapper_1fgfr_43{flex:1;width:100%}._left_1fgfr_50{justify-content:flex-start}._center_1fgfr_54{justify-content:center}._right_1fgfr_58{justify-content:flex-end}._indicator_1fgfr_62{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-tab-background)}._indicator_1fgfr_62:after{content:"";border-radius:var(--radius-md);background-color:var(--color-primary);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_1fgfr_38{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}@media (max-width: 767px){._tabsList_1fgfr_7{flex-direction:column;overflow-x:visible}._tabsTrigger_1fgfr_38{white-space:normal;text-align:left}}._tabsPanelWrapper_1fgfr_43{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1fgfr_43{animation:_fadeSlide_1fgfr_1 .3s ease both;position:relative;width:100%;padding:var(--spacing-xl) var(--spacing-sm);color:var(--color-text-primary)}@keyframes _fadeSlide_1fgfr_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_1fgfr_153,._dark_1fgfr_154{background-color:var(--color-tab-background)}._default_1fgfr_153 ._indicator_1fgfr_62,._dark_1fgfr_154 ._indicator_1fgfr_62{border:5px solid transparent}._default_1fgfr_153 ._tabsTrigger_1fgfr_38,._dark_1fgfr_154 ._tabsTrigger_1fgfr_38{color:var(--color-muted)}._light_1fgfr_166{background-color:#fff}._light_1fgfr_166 ._indicator_1fgfr_62{border:5px solid transparent}._light_1fgfr_166 ._tabsList_1fgfr_7{background-color:#fff}._light_1fgfr_166 ._tabsTrigger_1fgfr_38{color:var(--color-text-primary)}._light_1fgfr_166 ._tabsTrigger_1fgfr_38:hover{color:var(--color-primary)}._light_1fgfr_166 ._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}._transparent_1fgfr_190{background-color:transparent}._transparent_1fgfr_190 ._indicator_1fgfr_62{border:5px solid transparent}._transparent_1fgfr_190 ._tabsList_1fgfr_7{background-color:transparent}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38{color:var(--color-text-primary)}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38:hover{color:var(--color-primary)}._transparent_1fgfr_190 ._tabsTrigger_1fgfr_38._active_1fgfr_109{color:#fff}
33
+ ._tabs_6qx4l_1{display:flex;flex-direction:column;width:100%}._tabsList_6qx4l_7{display:flex;width:100%;background-color:var(--color-tab-background);border-radius:calc(var(--radius-md) + 5px);position:relative;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}._tabsList_6qx4l_7::-webkit-scrollbar{display:none}._horizontal_6qx4l_24{flex-direction:column}._vertical_6qx4l_28{flex-direction:row;align-items:flex-start;gap:3rem}._vertical_6qx4l_28 ._tabsList_6qx4l_7{flex-direction:column;overflow-x:visible;flex:.25 0 150px}._vertical_6qx4l_28 ._tabsTrigger_6qx4l_39{white-space:normal;text-align:left}._vertical_6qx4l_28 ._tabsPanelWrapper_6qx4l_44{flex:1;width:100%}._left_6qx4l_51{justify-content:flex-start}._center_6qx4l_55{justify-content:center}._right_6qx4l_59{justify-content:flex-end}._indicator_6qx4l_63{position:absolute;left:0;top:0;border-radius:var(--radius-md);transition:transform .3s ease-in-out,width .3s ease-in-out;z-index:0;border:5px solid var(--color-tab-background)}._indicator_6qx4l_63:after{content:"";border-radius:var(--radius-md);background-color:var(--color-primary);display:block;position:absolute;width:100%;height:100%}._tabsTrigger_6qx4l_39{padding:var(--spacing-md);border:none;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease;position:relative;z-index:1;white-space:nowrap;text-align:center;width:100%}._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}@media (max-width: 767px){._tabsList_6qx4l_7{flex-direction:column;overflow-x:visible}._tabsTrigger_6qx4l_39{white-space:normal;text-align:left}}._tabsPanelWrapper_6qx4l_44{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_6qx4l_44{animation:_fadeSlide_6qx4l_1 .3s ease both;position:relative;width:100%;color:var(--color-text-primary)}@keyframes _fadeSlide_6qx4l_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}._default_6qx4l_154,._dark_6qx4l_155{background-color:var(--color-tab-background)}._default_6qx4l_154 ._indicator_6qx4l_63,._dark_6qx4l_155 ._indicator_6qx4l_63{border:5px solid transparent}._default_6qx4l_154 ._tabsTrigger_6qx4l_39,._dark_6qx4l_155 ._tabsTrigger_6qx4l_39{color:var(--color-muted)}._light_6qx4l_167{background-color:#fff}._light_6qx4l_167 ._indicator_6qx4l_63{border:5px solid transparent}._light_6qx4l_167 ._tabsList_6qx4l_7{background-color:#fff}._light_6qx4l_167 ._tabsTrigger_6qx4l_39{color:var(--color-text-primary)}._light_6qx4l_167 ._tabsTrigger_6qx4l_39:hover{color:var(--color-primary)}._light_6qx4l_167 ._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}._transparent_6qx4l_191{background-color:transparent}._transparent_6qx4l_191 ._indicator_6qx4l_63{border:5px solid transparent}._transparent_6qx4l_191 ._tabsList_6qx4l_7{background-color:transparent}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39{color:var(--color-text-primary)}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39:hover{color:var(--color-primary)}._transparent_6qx4l_191 ._tabsTrigger_6qx4l_39._active_6qx4l_110{color:#fff}
34
34
  ._breadcrumbs_1nbgu_1{display:block;font-size:var(--font-size-sm);line-height:1.5}._list_1nbgu_7{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0}._item_1nbgu_15{display:flex;align-items:center}._separator_1nbgu_20{margin:0 var(--spacing-xs);color:var(--color-muted)}._link_1nbgu_25{color:var(--color-muted);text-decoration:none;transition:color .3s ease}._link_1nbgu_25:hover{color:var(--color-primary)}._label_1nbgu_35{color:var(--color-muted)}._active_1nbgu_39{font-weight:var(--font-weight-bold);color:var(--color-primary)}
35
35
  ._footer_gfid4_1{background-color:var(--color-background);padding:var(--spacing-xl) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-primary)}._container_gfid4_8{display:flex;flex-direction:column;gap:var(--spacing-xl)}._logo_gfid4_16{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary)}._groups_gfid4_22{display:flex;flex-wrap:wrap;gap:var(--spacing-xl)}._group_gfid4_22{min-width:140px}._groupTitle_gfid4_32{font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs)}._sublinks_gfid4_37{position:relative}._linkList_gfid4_41{display:flex;flex-direction:column;gap:var(--spacing-xs);list-style:none;padding:0;margin:0}._link_gfid4_41{color:var(--color-text-primary);text-decoration:none;display:block}._link_gfid4_41:hover{color:var(--color-primary)}._bottom_gfid4_60{margin-top:var(--spacing-xl);text-align:right;font-size:var(--font-size-sm);color:var(--color-muted)}
36
36
  ._form_s0yvj_1{display:flex;flex-direction:column;gap:var(--spacing-md)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "quirk-ui",
3
3
  "private": false,
4
- "version": "0.0.131",
4
+ "version": "0.0.133",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {