quirk-ui 0.0.111 → 0.0.113

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_1wmov_1{display:flex;flex-direction:column;width:100%}._tabsList_1wmov_7{display:flex;width:100%;border-bottom:2px solid var(--color-border)}._left_1wmov_13{justify-content:flex-start}._center_1wmov_17{justify-content:center}._right_1wmov_21{justify-content:flex-end}._tabsTrigger_1wmov_25{flex:1;padding:var(--spacing-md);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease,border-color .3s ease;position:relative;top:2px}._tabsTrigger_1wmov_25._active_1wmov_40{border-color:var(--color-primary);color:var(--color-primary)}._tabsPanelWrapper_1wmov_45{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1wmov_45{animation:_fadeSlide_1wmov_1 .3s ease both;position:relative;width:100%;padding:var(--spacing-xl);color:var(--color-text-primary)}@keyframes _fadeSlide_1wmov_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
1
+ ._tabs_1tuxt_1{display:flex;flex-direction:column;width:100%}._tabsList_1tuxt_7{display:flex;width:100%;border-bottom:2px solid var(--color-border)}._left_1tuxt_13{justify-content:flex-start}._center_1tuxt_17{justify-content:center}._right_1tuxt_21{justify-content:flex-end}._tabsTrigger_1tuxt_25{flex:1;padding:var(--spacing-md);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease,border-color .3s ease;position:relative;top:2px}._tabsTrigger_1tuxt_25._active_1tuxt_40{border-color:var(--color-primary);color:var(--color-primary)}._tabsPanelWrapper_1tuxt_45{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1tuxt_45{animation:_fadeSlide_1tuxt_1 .3s ease both;position:absolute;top:0;left:0;width:100%;padding:var(--spacing-xl);color:var(--color-text-primary);transition:opacity .3s ease-in-out,visibility .3s ease-in-out}._activePanel_1tuxt_63{opacity:1;visibility:visible;position:static}._inactivePanel_1tuxt_69{opacity:0;pointer-events:none;visibility:hidden;position:absolute}@keyframes _fadeSlide_1tuxt_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@@ -1,114 +1,113 @@
1
- import { jsx as m, jsxs as T } from "react/jsx-runtime";
2
- import x, { useState as A, useId as L, useRef as _, useMemo as d, useLayoutEffect as I } from "react";
3
- import { TabsContext as R, useTabsContext as p } from "./Context.js";
4
- import '../../assets/index33.css';const h = "_tabs_1wmov_1", C = "_tabsList_1wmov_7", N = "_left_1wmov_13", k = "_center_1wmov_17", W = "_right_1wmov_21", F = "_tabsTrigger_1wmov_25", M = "_active_1wmov_40", j = "_tabsPanelWrapper_1wmov_45", q = "_tabsPanel_1wmov_45", o = {
5
- tabs: h,
1
+ import { jsx as b, jsxs as L } from "react/jsx-runtime";
2
+ import d, { useState as h, useId as w, useRef as v, useLayoutEffect as x, useMemo as I } from "react";
3
+ import { TabsContext as A, useTabsContext as P } from "./Context.js";
4
+ import '../../assets/index33.css';const R = "_tabs_1tuxt_1", C = "_tabsList_1tuxt_7", N = "_left_1tuxt_13", W = "_center_1tuxt_17", H = "_right_1tuxt_21", k = "_tabsTrigger_1tuxt_25", M = "_active_1tuxt_40", j = "_tabsPanelWrapper_1tuxt_45", D = "_tabsPanel_1tuxt_45", E = "_activePanel_1tuxt_63", K = "_inactivePanel_1tuxt_69", s = {
5
+ tabs: R,
6
6
  tabsList: C,
7
7
  left: N,
8
- center: k,
9
- right: W,
10
- tabsTrigger: F,
8
+ center: W,
9
+ right: H,
10
+ tabsTrigger: k,
11
11
  active: M,
12
12
  tabsPanelWrapper: j,
13
- tabsPanel: q
14
- }, D = {
15
- left: o.left,
16
- center: o.center,
17
- right: o.right
13
+ tabsPanel: D,
14
+ activePanel: E,
15
+ inactivePanel: K
16
+ }, S = {
17
+ left: s.left,
18
+ center: s.center,
19
+ right: s.right
18
20
  };
19
- function v({
20
- children: c,
21
- defaultIndex: e = 0,
22
- align: s = "left"
21
+ function g({
22
+ children: i,
23
+ defaultIndex: t = 0,
24
+ align: n = "left"
23
25
  }) {
24
- const [a, f] = A(e), n = L(), r = [], i = [], b = _(null), l = _([]), w = () => {
25
- const t = b.current, u = l.current[a];
26
- if (t && u) {
27
- const $ = u.offsetHeight;
28
- t.style.height = `${$}px`;
26
+ const [a, f] = h(t), r = w(), c = [], _ = [], u = v(null), o = v([]), p = () => {
27
+ const e = u.current, l = o.current[a];
28
+ if (e && l && l.offsetHeight > 0) {
29
+ const T = l.offsetHeight;
30
+ e.style.height = `${T}px`;
29
31
  }
30
- }, y = d(
32
+ };
33
+ x(() => {
34
+ p();
35
+ }, [a]), x(() => {
36
+ p();
37
+ }, []);
38
+ const y = I(
31
39
  () => ({
32
40
  activeIndex: a,
33
41
  setActiveIndex: f,
34
- idPrefix: n,
35
- align: s,
36
- panelRefs: l,
37
- setWrapperHeight: w
42
+ idPrefix: r,
43
+ align: n,
44
+ panelRefs: o,
45
+ setWrapperHeight: p
38
46
  }),
39
- [a, n, s]
47
+ [a, r, n]
40
48
  );
41
- return x.Children.forEach(c, (t) => {
42
- var u;
43
- (t == null ? void 0 : t.type) === g ? r.push(t) : ((t == null ? void 0 : t.type) === P || ((u = t == null ? void 0 : t.type) == null ? void 0 : u.name) === "Panel") && i.push(t);
44
- }), /* @__PURE__ */ m(R.Provider, { value: y, children: /* @__PURE__ */ T("div", { className: o.tabs, children: [
45
- r,
46
- /* @__PURE__ */ m("div", { ref: b, className: o.tabsPanelWrapper, children: i })
49
+ return d.Children.forEach(i, (e) => {
50
+ var l;
51
+ (e == null ? void 0 : e.type) === m ? c.push(e) : ((e == null ? void 0 : e.type) === $ || ((l = e == null ? void 0 : e.type) == null ? void 0 : l.name) === "Panel") && _.push(e);
52
+ }), /* @__PURE__ */ b(A.Provider, { value: y, children: /* @__PURE__ */ L("div", { className: s.tabs, children: [
53
+ c,
54
+ /* @__PURE__ */ b("div", { ref: u, className: s.tabsPanelWrapper, children: _ })
47
55
  ] }) });
48
56
  }
49
- function g({ children: c }) {
50
- const { align: e } = p();
51
- return /* @__PURE__ */ m(
57
+ function m({ children: i }) {
58
+ const { align: t } = P();
59
+ return /* @__PURE__ */ b(
52
60
  "div",
53
61
  {
54
- className: `${o.tabsList} ${D[e]}`,
62
+ className: `${s.tabsList} ${S[t]}`,
55
63
  role: "tablist",
56
64
  "aria-label": "Tabs",
57
- children: c
65
+ children: i
58
66
  }
59
67
  );
60
68
  }
61
- function E({ children: c, index: e }) {
62
- const { activeIndex: s, setActiveIndex: a, idPrefix: f } = p(), n = _(null), r = (b) => {
63
- b.key === "ArrowRight" ? a((l) => l + 1) : b.key === "ArrowLeft" && a((l) => Math.max(0, l - 1));
64
- }, i = s === e;
65
- return /* @__PURE__ */ m(
69
+ function q({ children: i, index: t }) {
70
+ const { activeIndex: n, setActiveIndex: a, idPrefix: f } = P(), r = v(null), c = (u) => {
71
+ u.key === "ArrowRight" ? a((o) => o + 1) : u.key === "ArrowLeft" && a((o) => Math.max(0, o - 1));
72
+ }, _ = n === t;
73
+ return /* @__PURE__ */ b(
66
74
  "button",
67
75
  {
68
- className: `${o.tabsTrigger} ${i ? o.active : ""}`,
76
+ className: `${s.tabsTrigger} ${_ ? s.active : ""}`,
69
77
  role: "tab",
70
- ref: n,
71
- id: `${f}-tab-${e}`,
72
- "aria-selected": s === e,
73
- tabIndex: s === e ? 0 : -1,
74
- onClick: () => a(e),
75
- onKeyDown: r,
76
- children: c
78
+ ref: r,
79
+ id: `${f}-tab-${t}`,
80
+ "aria-selected": n === t,
81
+ tabIndex: n === t ? 0 : -1,
82
+ onClick: () => a(t),
83
+ onKeyDown: c,
84
+ children: i
77
85
  }
78
86
  );
79
87
  }
80
- function P({ children: c, index: e }) {
81
- const { activeIndex: s, idPrefix: a, panelRefs: f, setWrapperHeight: n } = p(), r = e === s;
82
- return I(() => {
83
- if (r) return;
84
- const i = requestAnimationFrame(() => {
85
- requestAnimationFrame(() => {
86
- n == null || n();
87
- });
88
- });
89
- return () => cancelAnimationFrame(i);
90
- }, [s, n]), /* @__PURE__ */ m(
88
+ function $({ children: i, index: t }) {
89
+ const { activeIndex: n, idPrefix: a, panelRefs: f } = P(), r = t === n;
90
+ return /* @__PURE__ */ b(
91
91
  "div",
92
92
  {
93
- ref: (i) => {
94
- f.current[e] = i;
93
+ ref: (c) => {
94
+ f.current[t] = c;
95
95
  },
96
- className: o.tabsPanel,
96
+ className: `${s.tabsPanel} ${r ? s.activePanel : s.inactivePanel}`,
97
97
  role: "tabpanel",
98
- id: `${a}-panel-${e}`,
99
- "aria-labelledby": `${a}-tab-${e}`,
98
+ id: `${a}-panel-${t}`,
99
+ "aria-labelledby": `${a}-tab-${t}`,
100
100
  "aria-hidden": !r,
101
101
  hidden: !r,
102
- style: { display: r ? "block" : "none" },
103
- children: c
102
+ children: i
104
103
  }
105
104
  );
106
105
  }
107
- v.List = g;
108
- v.Trigger = E;
109
- v.Panel = P;
106
+ g.List = m;
107
+ g.Trigger = q;
108
+ g.Panel = $;
110
109
  export {
111
- v as Tabs,
112
- D as alignClassMap,
113
- v as default
110
+ g as Tabs,
111
+ S as alignClassMap,
112
+ g as default
114
113
  };
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_1wmov_1{display:flex;flex-direction:column;width:100%}._tabsList_1wmov_7{display:flex;width:100%;border-bottom:2px solid var(--color-border)}._left_1wmov_13{justify-content:flex-start}._center_1wmov_17{justify-content:center}._right_1wmov_21{justify-content:flex-end}._tabsTrigger_1wmov_25{flex:1;padding:var(--spacing-md);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease,border-color .3s ease;position:relative;top:2px}._tabsTrigger_1wmov_25._active_1wmov_40{border-color:var(--color-primary);color:var(--color-primary)}._tabsPanelWrapper_1wmov_45{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1wmov_45{animation:_fadeSlide_1wmov_1 .3s ease both;position:relative;width:100%;padding:var(--spacing-xl);color:var(--color-text-primary)}@keyframes _fadeSlide_1wmov_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
33
+ ._tabs_1tuxt_1{display:flex;flex-direction:column;width:100%}._tabsList_1tuxt_7{display:flex;width:100%;border-bottom:2px solid var(--color-border)}._left_1tuxt_13{justify-content:flex-start}._center_1tuxt_17{justify-content:center}._right_1tuxt_21{justify-content:flex-end}._tabsTrigger_1tuxt_25{flex:1;padding:var(--spacing-md);border:none;border-bottom:2px solid transparent;background:none;cursor:pointer;color:var(--color-muted);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);transition:color .3s ease,border-color .3s ease;position:relative;top:2px}._tabsTrigger_1tuxt_25._active_1tuxt_40{border-color:var(--color-primary);color:var(--color-primary)}._tabsPanelWrapper_1tuxt_45{position:relative;overflow:hidden;height:auto;transition:height .3s ease-in-out}._tabsPanel_1tuxt_45{animation:_fadeSlide_1tuxt_1 .3s ease both;position:absolute;top:0;left:0;width:100%;padding:var(--spacing-xl);color:var(--color-text-primary);transition:opacity .3s ease-in-out,visibility .3s ease-in-out}._activePanel_1tuxt_63{opacity:1;visibility:visible;position:static}._inactivePanel_1tuxt_69{opacity:0;pointer-events:none;visibility:hidden;position:absolute}@keyframes _fadeSlide_1tuxt_1{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
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.111",
4
+ "version": "0.0.113",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {