quirk-ui 0.0.113 → 0.0.115

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_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
+ ._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,113 +1,101 @@
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 = {
1
+ import { jsx as f, jsxs as T } from "react/jsx-runtime";
2
+ import L, { useState as x, useId as A, useRef as m, useMemo as I, useLayoutEffect as d } from "react";
3
+ import { TabsContext as h, useTabsContext as p } from "./Context.js";
4
+ import '../../assets/index33.css';const R = "_tabs_1wmov_1", C = "_tabsList_1wmov_7", N = "_left_1wmov_13", W = "_center_1wmov_17", k = "_right_1wmov_21", H = "_tabsTrigger_1wmov_25", M = "_active_1wmov_40", j = "_tabsPanelWrapper_1wmov_45", D = "_tabsPanel_1wmov_45", n = {
5
5
  tabs: R,
6
6
  tabsList: C,
7
7
  left: N,
8
8
  center: W,
9
- right: H,
10
- tabsTrigger: k,
9
+ right: k,
10
+ tabsTrigger: H,
11
11
  active: M,
12
12
  tabsPanelWrapper: j,
13
- tabsPanel: D,
14
- activePanel: E,
15
- inactivePanel: K
16
- }, S = {
17
- left: s.left,
18
- center: s.center,
19
- right: s.right
13
+ tabsPanel: D
14
+ }, E = {
15
+ left: n.left,
16
+ center: n.center,
17
+ right: n.right
20
18
  };
21
- function g({
22
- children: i,
19
+ function v({
20
+ children: r,
23
21
  defaultIndex: t = 0,
24
- align: n = "left"
22
+ align: s = "left"
25
23
  }) {
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`;
31
- }
32
- };
33
- x(() => {
34
- p();
35
- }, [a]), x(() => {
36
- p();
37
- }, []);
38
- const y = I(
39
- () => ({
40
- activeIndex: a,
41
- setActiveIndex: f,
42
- idPrefix: r,
43
- align: n,
44
- panelRefs: o,
45
- setWrapperHeight: p
46
- }),
47
- [a, r, n]
24
+ const [a, c] = x(t), o = A(), b = [], u = [], l = m(null), i = m([]), y = I(
25
+ () => ({ activeIndex: a, setActiveIndex: c, idPrefix: o, align: s, panelRefs: i }),
26
+ [a, o, s]
48
27
  );
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: _ })
28
+ return L.Children.forEach(r, (e) => {
29
+ var _;
30
+ (e == null ? void 0 : e.type) === P ? b.push(e) : ((e == null ? void 0 : e.type) === w || ((_ = e == null ? void 0 : e.type) == null ? void 0 : _.name) === "Panel") && u.push(e);
31
+ }), d(() => {
32
+ const e = l.current, _ = requestAnimationFrame(() => {
33
+ const g = i.current[a];
34
+ if (e && g) {
35
+ const $ = g.offsetHeight;
36
+ e.offsetHeight, e.style.height = `${$}px`;
37
+ }
38
+ });
39
+ return () => cancelAnimationFrame(_);
40
+ }, [a]), /* @__PURE__ */ f(h.Provider, { value: y, children: /* @__PURE__ */ T("div", { className: n.tabs, children: [
41
+ b,
42
+ /* @__PURE__ */ f("div", { ref: l, className: n.tabsPanelWrapper, children: u })
55
43
  ] }) });
56
44
  }
57
- function m({ children: i }) {
58
- const { align: t } = P();
59
- return /* @__PURE__ */ b(
45
+ function P({ children: r }) {
46
+ const { align: t } = p();
47
+ return /* @__PURE__ */ f(
60
48
  "div",
61
49
  {
62
- className: `${s.tabsList} ${S[t]}`,
50
+ className: `${n.tabsList} ${E[t]}`,
63
51
  role: "tablist",
64
52
  "aria-label": "Tabs",
65
- children: i
53
+ children: r
66
54
  }
67
55
  );
68
56
  }
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(
57
+ function F({ children: r, index: t }) {
58
+ const { activeIndex: s, setActiveIndex: a, idPrefix: c } = p(), o = m(null), b = (l) => {
59
+ l.key === "ArrowRight" ? a((i) => i + 1) : l.key === "ArrowLeft" && a((i) => Math.max(0, i - 1));
60
+ }, u = s === t;
61
+ return /* @__PURE__ */ f(
74
62
  "button",
75
63
  {
76
- className: `${s.tabsTrigger} ${_ ? s.active : ""}`,
64
+ className: `${n.tabsTrigger} ${u ? n.active : ""}`,
77
65
  role: "tab",
78
- ref: r,
79
- id: `${f}-tab-${t}`,
80
- "aria-selected": n === t,
81
- tabIndex: n === t ? 0 : -1,
66
+ ref: o,
67
+ id: `${c}-tab-${t}`,
68
+ "aria-selected": s === t,
69
+ tabIndex: s === t ? 0 : -1,
82
70
  onClick: () => a(t),
83
- onKeyDown: c,
84
- children: i
71
+ onKeyDown: b,
72
+ children: r
85
73
  }
86
74
  );
87
75
  }
88
- function $({ children: i, index: t }) {
89
- const { activeIndex: n, idPrefix: a, panelRefs: f } = P(), r = t === n;
90
- return /* @__PURE__ */ b(
76
+ function w({ children: r, index: t }) {
77
+ const { activeIndex: s, idPrefix: a, panelRefs: c } = p();
78
+ return t !== s ? null : /* @__PURE__ */ f(
91
79
  "div",
92
80
  {
93
- ref: (c) => {
94
- f.current[t] = c;
81
+ ref: (o) => {
82
+ c.current[t] = o;
95
83
  },
96
- className: `${s.tabsPanel} ${r ? s.activePanel : s.inactivePanel}`,
84
+ className: n.tabsPanel,
97
85
  role: "tabpanel",
98
86
  id: `${a}-panel-${t}`,
99
87
  "aria-labelledby": `${a}-tab-${t}`,
100
- "aria-hidden": !r,
101
- hidden: !r,
102
- children: i
88
+ "aria-hidden": s !== t,
89
+ hidden: s !== t,
90
+ children: r
103
91
  }
104
92
  );
105
93
  }
106
- g.List = m;
107
- g.Trigger = q;
108
- g.Panel = $;
94
+ v.List = P;
95
+ v.Trigger = F;
96
+ v.Panel = w;
109
97
  export {
110
- g as Tabs,
111
- S as alignClassMap,
112
- g as default
98
+ v as Tabs,
99
+ E as alignClassMap,
100
+ v as default
113
101
  };
@@ -22,6 +22,6 @@ export declare namespace Tabs {
22
22
  var Panel: ({ children, index }: {
23
23
  children: ReactNode;
24
24
  index: number;
25
- }) => import("react/jsx-runtime").JSX.Element;
25
+ }) => import("react/jsx-runtime").JSX.Element | null;
26
26
  }
27
27
  export default Tabs;
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_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)}}
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)}}
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.113",
4
+ "version": "0.0.115",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {