@starasia/tabs 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tabs.es.js +27 -26
- package/dist/tabs.umd.js +8 -7
- package/package.json +1 -1
package/dist/tabs.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { createContext as B, useState as u, useEffect as c, useContext as
|
|
1
|
+
import { jsx as b, jsxs as C } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as B, useState as u, useEffect as c, useContext as m, useRef as f } from "react";
|
|
3
3
|
const T = `@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap");
|
|
4
4
|
|
|
5
5
|
:root {
|
|
@@ -10,20 +10,21 @@ const T = `@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@30
|
|
|
10
10
|
/* gray */
|
|
11
11
|
--starasia-ui-tabs-color-tertiary-gray: var(
|
|
12
12
|
--starasia-ui-color-gray-300,
|
|
13
|
-
|
|
13
|
+
rgba(209, 213, 219, 1)
|
|
14
14
|
);
|
|
15
15
|
--starasia-ui-tabs-color-text-active: var(
|
|
16
16
|
--starasia-ui-color-gray-900,
|
|
17
|
-
|
|
17
|
+
rgba(24, 26, 25, 1)
|
|
18
18
|
);
|
|
19
|
-
--starasia-ui-tabs-color-text: var(--starasia-ui-color-gray-200,
|
|
20
|
-
--starasia-ui-tabs-color-white: var(--starasia-ui-color-gray-50,
|
|
19
|
+
--starasia-ui-tabs-color-text: var(--starasia-ui-color-gray-200, rgba(120, 134, 127, 1));
|
|
20
|
+
--starasia-ui-tabs-color-white: var(--starasia-ui-color-gray-50, rgba(255, 254, 255, 1));
|
|
21
|
+
--starasia-ui-tabs-color-secondary-tablist-bg: rgba(120, 134, 127, 0.1);
|
|
21
22
|
/* blue */
|
|
22
23
|
--starasia-ui-tabs-color-primary-blue: var(
|
|
23
24
|
--starasia-ui-brand-primary-default,
|
|
24
25
|
rgba(74, 106, 148, 1)
|
|
25
26
|
);
|
|
26
|
-
--starasia-ui-tabs-color-primary-black: var(--starasia-ui-color-gray-900,
|
|
27
|
+
--starasia-ui-tabs-color-primary-black: var(--starasia-ui-color-gray-900, rgba(32, 34, 33, 1));
|
|
27
28
|
--starasia-ui-tabs-color-secondary-blue: var(--starasia-ui-brand-primary-tertiary, rgba(227, 237, 248, 1));
|
|
28
29
|
|
|
29
30
|
/* height */
|
|
@@ -61,7 +62,7 @@ const T = `@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@30
|
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
.starasia-tabs-tablist-secondary {
|
|
64
|
-
background-color:
|
|
65
|
+
background-color: var(--starasia-ui-tabs-color-secondary-tablist-bg);
|
|
65
66
|
padding: 4px;
|
|
66
67
|
box-sizing: border-box;
|
|
67
68
|
border-radius: 12px;
|
|
@@ -176,42 +177,42 @@ const v = B(null), S = ({
|
|
|
176
177
|
variant: t = "underline",
|
|
177
178
|
...e
|
|
178
179
|
}) => {
|
|
179
|
-
const [i, r] = u(0), [d,
|
|
180
|
+
const [i, r] = u(0), [d, l] = u(
|
|
180
181
|
null
|
|
181
|
-
), [o,
|
|
182
|
-
|
|
182
|
+
), [o, g] = u([]), [p, y] = u([]), x = (z) => {
|
|
183
|
+
l(z);
|
|
183
184
|
};
|
|
184
185
|
return c(() => {
|
|
185
|
-
|
|
186
|
+
l(o[s || 0]);
|
|
186
187
|
}, [o, s]), c(() => {
|
|
187
188
|
r(s || 0);
|
|
188
|
-
}, [s]), /* @__PURE__ */
|
|
189
|
+
}, [s]), /* @__PURE__ */ b(
|
|
189
190
|
v.Provider,
|
|
190
191
|
{
|
|
191
192
|
value: {
|
|
192
193
|
activeContext: d,
|
|
193
194
|
handleSetActiveContext: x,
|
|
194
195
|
tabsButton: o,
|
|
195
|
-
setTabsButton:
|
|
196
|
+
setTabsButton: g,
|
|
196
197
|
activeTabButton: i,
|
|
197
198
|
setActiveTabButton: r,
|
|
198
|
-
panels:
|
|
199
|
+
panels: p,
|
|
199
200
|
setPanels: y,
|
|
200
201
|
size: a,
|
|
201
202
|
variant: t
|
|
202
203
|
},
|
|
203
|
-
children: /* @__PURE__ */
|
|
204
|
+
children: /* @__PURE__ */ b("div", { ...e, children: n })
|
|
204
205
|
}
|
|
205
206
|
);
|
|
206
207
|
}, $ = ({ children: n, ...s }) => {
|
|
207
208
|
var d;
|
|
208
|
-
const a =
|
|
209
|
+
const a = m(v), t = f(null), [e, i] = u(0);
|
|
209
210
|
let r = ((d = a == null ? void 0 : a.activeContext) == null ? void 0 : d.getBoundingClientRect().width) || 0;
|
|
210
211
|
return c(() => {
|
|
211
|
-
var
|
|
212
|
+
var l, o;
|
|
212
213
|
if (t.current) {
|
|
213
|
-
const
|
|
214
|
-
i(
|
|
214
|
+
const g = ((l = a == null ? void 0 : a.activeContext) == null ? void 0 : l.getBoundingClientRect().left) || 0, p = ((o = t == null ? void 0 : t.current) == null ? void 0 : o.getBoundingClientRect().left) || 0;
|
|
215
|
+
i(g - p);
|
|
215
216
|
}
|
|
216
217
|
}, [t, a == null ? void 0 : a.activeContext]), /* @__PURE__ */ C(
|
|
217
218
|
"div",
|
|
@@ -221,7 +222,7 @@ const v = B(null), S = ({
|
|
|
221
222
|
ref: t,
|
|
222
223
|
children: [
|
|
223
224
|
n,
|
|
224
|
-
/* @__PURE__ */
|
|
225
|
+
/* @__PURE__ */ b(
|
|
225
226
|
"div",
|
|
226
227
|
{
|
|
227
228
|
className: `starasia-tabs-tablist-line-move starasia-tabs-tablist-line-move-${a == null ? void 0 : a.variant}`,
|
|
@@ -232,7 +233,7 @@ const v = B(null), S = ({
|
|
|
232
233
|
}
|
|
233
234
|
);
|
|
234
235
|
}, A = ({ children: n, ...s }) => {
|
|
235
|
-
const a =
|
|
236
|
+
const a = m(v), t = f(null);
|
|
236
237
|
c(() => {
|
|
237
238
|
t.current && (a == null || a.setTabsButton((i) => [
|
|
238
239
|
...i,
|
|
@@ -244,7 +245,7 @@ const v = B(null), S = ({
|
|
|
244
245
|
for (let r = 0; r < a.tabsButton.length; r++)
|
|
245
246
|
a.tabsButton[r] === i.currentTarget && a.setActiveTabButton(r);
|
|
246
247
|
};
|
|
247
|
-
return /* @__PURE__ */
|
|
248
|
+
return /* @__PURE__ */ b(
|
|
248
249
|
"button",
|
|
249
250
|
{
|
|
250
251
|
className: `starasia-tabs-tab starasia-tabs-tab-${a == null ? void 0 : a.size} starasia-tabs-tab-${a == null ? void 0 : a.variant} ${(a == null ? void 0 : a.tabsButton[a.activeTabButton]) === t.current ? `starasia-tabs-tab-${a == null ? void 0 : a.variant}-active` : ""}`,
|
|
@@ -259,14 +260,14 @@ const v = B(null), S = ({
|
|
|
259
260
|
children: n
|
|
260
261
|
}
|
|
261
262
|
);
|
|
262
|
-
}, R = ({ children: n, ...s }) => /* @__PURE__ */
|
|
263
|
-
const a =
|
|
263
|
+
}, R = ({ children: n, ...s }) => /* @__PURE__ */ b("div", { ...s, children: n }), E = ({ children: n, ...s }) => {
|
|
264
|
+
const a = m(v), t = f(null);
|
|
264
265
|
return c(() => {
|
|
265
266
|
t.current && (a == null || a.setPanels((e) => [
|
|
266
267
|
...e,
|
|
267
268
|
t.current
|
|
268
269
|
]));
|
|
269
|
-
}, [t]), /* @__PURE__ */
|
|
270
|
+
}, [t]), /* @__PURE__ */ b(
|
|
270
271
|
"div",
|
|
271
272
|
{
|
|
272
273
|
ref: t,
|
package/dist/tabs.umd.js
CHANGED
|
@@ -8,20 +8,21 @@
|
|
|
8
8
|
/* gray */
|
|
9
9
|
--starasia-ui-tabs-color-tertiary-gray: var(
|
|
10
10
|
--starasia-ui-color-gray-300,
|
|
11
|
-
|
|
11
|
+
rgba(209, 213, 219, 1)
|
|
12
12
|
);
|
|
13
13
|
--starasia-ui-tabs-color-text-active: var(
|
|
14
14
|
--starasia-ui-color-gray-900,
|
|
15
|
-
|
|
15
|
+
rgba(24, 26, 25, 1)
|
|
16
16
|
);
|
|
17
|
-
--starasia-ui-tabs-color-text: var(--starasia-ui-color-gray-200,
|
|
18
|
-
--starasia-ui-tabs-color-white: var(--starasia-ui-color-gray-50,
|
|
17
|
+
--starasia-ui-tabs-color-text: var(--starasia-ui-color-gray-200, rgba(120, 134, 127, 1));
|
|
18
|
+
--starasia-ui-tabs-color-white: var(--starasia-ui-color-gray-50, rgba(255, 254, 255, 1));
|
|
19
|
+
--starasia-ui-tabs-color-secondary-tablist-bg: rgba(120, 134, 127, 0.1);
|
|
19
20
|
/* blue */
|
|
20
21
|
--starasia-ui-tabs-color-primary-blue: var(
|
|
21
22
|
--starasia-ui-brand-primary-default,
|
|
22
23
|
rgba(74, 106, 148, 1)
|
|
23
24
|
);
|
|
24
|
-
--starasia-ui-tabs-color-primary-black: var(--starasia-ui-color-gray-900,
|
|
25
|
+
--starasia-ui-tabs-color-primary-black: var(--starasia-ui-color-gray-900, rgba(32, 34, 33, 1));
|
|
25
26
|
--starasia-ui-tabs-color-secondary-blue: var(--starasia-ui-brand-primary-tertiary, rgba(227, 237, 248, 1));
|
|
26
27
|
|
|
27
28
|
/* height */
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
.starasia-tabs-tablist-secondary {
|
|
62
|
-
background-color:
|
|
63
|
+
background-color: var(--starasia-ui-tabs-color-secondary-tablist-bg);
|
|
63
64
|
padding: 4px;
|
|
64
65
|
box-sizing: border-box;
|
|
65
66
|
border-radius: 12px;
|
|
@@ -160,4 +161,4 @@
|
|
|
160
161
|
height: 42px;
|
|
161
162
|
font-size: var(--starasia-ui-tabs-font-size-lg);
|
|
162
163
|
}
|
|
163
|
-
`,
|
|
164
|
+
`,f="starasia-tab-styles";(e=>{if(!document.getElementById(f)){const t=document.createElement("style");t.id=f,t.textContent=e,document.head.appendChild(t)}})(h);const d=n.createContext(null),m=({children:e,activeTab:t,size:a="md",variant:s="underline",...l})=>{const[o,b]=n.useState(0),[v,c]=n.useState(null),[u,g]=n.useState([]),[p,C]=n.useState([]),B=S=>{c(S)};return n.useEffect(()=>{c(u[t||0])},[u,t]),n.useEffect(()=>{b(t||0)},[t]),r.jsx(d.Provider,{value:{activeContext:v,handleSetActiveContext:B,tabsButton:u,setTabsButton:g,activeTabButton:o,setActiveTabButton:b,panels:p,setPanels:C,size:a,variant:s},children:r.jsx("div",{...l,children:e})})},y=({children:e,...t})=>{var v;const a=n.useContext(d),s=n.useRef(null),[l,o]=n.useState(0);let b=((v=a==null?void 0:a.activeContext)==null?void 0:v.getBoundingClientRect().width)||0;return n.useEffect(()=>{var c,u;if(s.current){const g=((c=a==null?void 0:a.activeContext)==null?void 0:c.getBoundingClientRect().left)||0,p=((u=s==null?void 0:s.current)==null?void 0:u.getBoundingClientRect().left)||0;o(g-p)}},[s,a==null?void 0:a.activeContext]),r.jsxs("div",{className:`starasia-tabs-tablist starasia-tabs-tablist-${a==null?void 0:a.variant}`,...t,ref:s,children:[e,r.jsx("div",{className:`starasia-tabs-tablist-line-move starasia-tabs-tablist-line-move-${a==null?void 0:a.variant}`,style:{width:`${b}px`,left:`${l}px`}})]})},x=({children:e,...t})=>{const a=n.useContext(d),s=n.useRef(null);n.useEffect(()=>{s.current&&(a==null||a.setTabsButton(o=>[...o,s.current]))},[s]);const l=o=>{if(a==null||a.handleSetActiveContext(o.currentTarget),a!=null&&a.tabsButton)for(let b=0;b<a.tabsButton.length;b++)a.tabsButton[b]===o.currentTarget&&a.setActiveTabButton(b)};return r.jsx("button",{className:`starasia-tabs-tab starasia-tabs-tab-${a==null?void 0:a.size} starasia-tabs-tab-${a==null?void 0:a.variant} ${(a==null?void 0:a.tabsButton[a.activeTabButton])===s.current?`starasia-tabs-tab-${a==null?void 0:a.variant}-active`:""}`,onClick:o=>{l(o),t.onClick&&t.onClick()},ref:s,style:{fontWeight:(a==null?void 0:a.tabsButton[a.activeTabButton])===s.current?"var(--starasia-ui-fontWeights-medium, 400)":"var(--starasia-ui-fontWeights-normal, 300)",...t.style},children:e})},T=({children:e,...t})=>r.jsx("div",{...t,children:e}),z=({children:e,...t})=>{const a=n.useContext(d),s=n.useRef(null);return n.useEffect(()=>{s.current&&(a==null||a.setPanels(l=>[...l,s.current]))},[s]),r.jsx("div",{ref:s,style:{display:(a==null?void 0:a.panels[a.activeTabButton])===s.current?"block":"none",...t.style},children:(a==null?void 0:a.panels[a.activeTabButton])===s.current?e:null})};i.Tab=x,i.TabPanel=z,i.TabPanels=T,i.Tabs=m,i.TabsLists=y,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|