@cerberus-design/react 0.2.0-next-ec538ca → 0.2.0-next-1b244ce
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/build/legacy/_tsup-dts-rollup.d.ts +41 -3
- package/build/legacy/aria-helpers/tabs.aria.d.ts +1 -0
- package/build/legacy/aria-helpers/tabs.aria.js +9 -0
- package/build/legacy/aria-helpers/tabs.aria.js.map +1 -0
- package/build/legacy/chunk-57HOQM4E.js +65 -0
- package/build/legacy/chunk-57HOQM4E.js.map +1 -0
- package/build/legacy/{chunk-24B4KIPX.js → chunk-HQK7SM56.js} +9 -5
- package/build/legacy/chunk-HQK7SM56.js.map +1 -0
- package/build/legacy/{chunk-X6PHIZRM.js → chunk-MJB3V6J4.js} +4 -4
- package/build/{modern/chunk-NWDAYAVH.js → legacy/chunk-ODSSU3JD.js} +5 -2
- package/build/legacy/chunk-ODSSU3JD.js.map +1 -0
- package/build/{modern/chunk-XVDQL4L6.js → legacy/chunk-RCE2XXL7.js} +17 -5
- package/build/legacy/chunk-RCE2XXL7.js.map +1 -0
- package/build/legacy/chunk-TG5VW7KN.js +117 -0
- package/build/legacy/chunk-TG5VW7KN.js.map +1 -0
- package/build/legacy/components/NavMenuTrigger.js +2 -2
- package/build/legacy/components/Tab.js +3 -2
- package/build/legacy/components/TabList.js +1 -1
- package/build/legacy/components/TabPanel.js +2 -2
- package/build/legacy/context/tabs.d.ts +1 -0
- package/build/legacy/context/tabs.js +3 -1
- package/build/legacy/index.d.ts +2 -0
- package/build/legacy/index.js +25 -19
- package/build/modern/_tsup-dts-rollup.d.ts +41 -3
- package/build/modern/aria-helpers/tabs.aria.d.ts +1 -0
- package/build/modern/aria-helpers/tabs.aria.js +9 -0
- package/build/modern/aria-helpers/tabs.aria.js.map +1 -0
- package/build/modern/chunk-57HOQM4E.js +65 -0
- package/build/modern/chunk-57HOQM4E.js.map +1 -0
- package/build/modern/{chunk-24B4KIPX.js → chunk-HQK7SM56.js} +9 -5
- package/build/modern/chunk-HQK7SM56.js.map +1 -0
- package/build/modern/{chunk-X6PHIZRM.js → chunk-MJB3V6J4.js} +4 -4
- package/build/{legacy/chunk-NWDAYAVH.js → modern/chunk-ODSSU3JD.js} +5 -2
- package/build/modern/chunk-ODSSU3JD.js.map +1 -0
- package/build/{legacy/chunk-XVDQL4L6.js → modern/chunk-RCE2XXL7.js} +17 -5
- package/build/modern/chunk-RCE2XXL7.js.map +1 -0
- package/build/modern/chunk-SWCK7V2N.js +116 -0
- package/build/modern/chunk-SWCK7V2N.js.map +1 -0
- package/build/modern/components/NavMenuTrigger.js +2 -2
- package/build/modern/components/Tab.js +3 -2
- package/build/modern/components/TabList.js +1 -1
- package/build/modern/components/TabPanel.js +2 -2
- package/build/modern/context/tabs.d.ts +1 -0
- package/build/modern/context/tabs.js +3 -1
- package/build/modern/index.d.ts +2 -0
- package/build/modern/index.js +25 -19
- package/package.json +1 -1
- package/src/aria-helpers/tabs.aria.ts +70 -0
- package/src/components/Tab.tsx +95 -4
- package/src/components/TabList.tsx +4 -1
- package/src/components/TabPanel.tsx +28 -1
- package/src/context/tabs.tsx +11 -6
- package/src/index.ts +1 -0
- package/build/legacy/chunk-24B4KIPX.js.map +0 -1
- package/build/legacy/chunk-NVA4SWUI.js +0 -36
- package/build/legacy/chunk-NVA4SWUI.js.map +0 -1
- package/build/legacy/chunk-NWDAYAVH.js.map +0 -1
- package/build/legacy/chunk-XVDQL4L6.js.map +0 -1
- package/build/modern/chunk-24B4KIPX.js.map +0 -1
- package/build/modern/chunk-NWDAYAVH.js.map +0 -1
- package/build/modern/chunk-X5PQA2JN.js +0 -35
- package/build/modern/chunk-X5PQA2JN.js.map +0 -1
- package/build/modern/chunk-XVDQL4L6.js.map +0 -1
- /package/build/legacy/{chunk-X6PHIZRM.js.map → chunk-MJB3V6J4.js.map} +0 -0
- /package/build/modern/{chunk-X6PHIZRM.js.map → chunk-MJB3V6J4.js.map} +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { AnchorHTMLAttributes } from 'react';
|
|
2
2
|
import { ButtonHTMLAttributes } from 'react';
|
|
3
|
+
import { Context } from 'react';
|
|
3
4
|
import { ElementType } from 'react';
|
|
4
5
|
import { HTMLAttributes } from 'react';
|
|
5
6
|
import type { InputHTMLAttributes } from 'react';
|
|
6
7
|
import { JSX as JSX_2 } from 'react/jsx-runtime';
|
|
8
|
+
import { MutableRefObject } from 'react';
|
|
7
9
|
import { PropsWithChildren } from 'react';
|
|
8
10
|
import { ReactNode } from 'react';
|
|
9
11
|
import { RefObject } from 'react';
|
|
@@ -277,6 +279,18 @@ declare interface ShowProps {
|
|
|
277
279
|
export { ShowProps }
|
|
278
280
|
export { ShowProps as ShowProps_alias_1 }
|
|
279
281
|
|
|
282
|
+
/**
|
|
283
|
+
* The Tab component provides a tab element to be used in a TabList.
|
|
284
|
+
* @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)
|
|
285
|
+
* @definition [Tab docs](https://cerberus.digitalu.design/react/tabs)
|
|
286
|
+
* @param value - the id of the tab that will be tracked as the active tab and used for aria attributes
|
|
287
|
+
* @example
|
|
288
|
+
* ```tsx
|
|
289
|
+
* <Tab value="overview">
|
|
290
|
+
* Overview
|
|
291
|
+
* </Tab>
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
280
294
|
declare function Tab(props: TabProps): JSX_2.Element;
|
|
281
295
|
export { Tab }
|
|
282
296
|
export { Tab as Tab_alias_1 }
|
|
@@ -301,15 +315,29 @@ export { TabList as TabList_alias_1 }
|
|
|
301
315
|
* @module
|
|
302
316
|
*/
|
|
303
317
|
declare interface TabListProps extends HTMLAttributes<HTMLDivElement> {
|
|
304
|
-
description
|
|
318
|
+
description: string;
|
|
305
319
|
}
|
|
306
320
|
export { TabListProps }
|
|
307
321
|
export { TabListProps as TabListProps_alias_1 }
|
|
308
322
|
|
|
323
|
+
/**
|
|
324
|
+
* The TabPanel component provides a panel element to be used in a Tabs provider.
|
|
325
|
+
* @param tab - the value of the tab that will be tracked as the active tab and used for aria attributes
|
|
326
|
+
* @example
|
|
327
|
+
* ```tsx
|
|
328
|
+
* <TabPanel tab="overview">
|
|
329
|
+
* Overview content
|
|
330
|
+
* </TabPanel>
|
|
331
|
+
* ```
|
|
332
|
+
*/
|
|
309
333
|
declare function TabPanel(props: TabPanelProps): JSX_2.Element;
|
|
310
334
|
export { TabPanel }
|
|
311
335
|
export { TabPanel as TabPanel_alias_1 }
|
|
312
336
|
|
|
337
|
+
/**
|
|
338
|
+
* This module provides a TabPanel component.
|
|
339
|
+
* @module
|
|
340
|
+
*/
|
|
313
341
|
declare interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {
|
|
314
342
|
tab: string;
|
|
315
343
|
}
|
|
@@ -321,7 +349,6 @@ export { TabPanelProps as TabPanelProps_alias_1 }
|
|
|
321
349
|
* @module
|
|
322
350
|
*/
|
|
323
351
|
declare interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
324
|
-
controls: string;
|
|
325
352
|
value: string;
|
|
326
353
|
}
|
|
327
354
|
export { TabProps }
|
|
@@ -330,7 +357,7 @@ export { TabProps as TabProps_alias_1 }
|
|
|
330
357
|
/**
|
|
331
358
|
* The Tabs component provides a context to manage tab state.
|
|
332
359
|
* @param active - the default active tab id,
|
|
333
|
-
* @param cache - whether to cache the active tab state
|
|
360
|
+
* @param cache - whether to cache the active tab state in local storage
|
|
334
361
|
* @example
|
|
335
362
|
* ```tsx
|
|
336
363
|
* <Tabs cache>
|
|
@@ -349,12 +376,17 @@ declare function Tabs(props: PropsWithChildren<TabsProps>): JSX.Element;
|
|
|
349
376
|
export { Tabs }
|
|
350
377
|
export { Tabs as Tabs_alias_1 }
|
|
351
378
|
|
|
379
|
+
declare const TabsContext: Context<TabsContextValue | null>;
|
|
380
|
+
export { TabsContext }
|
|
381
|
+
export { TabsContext as TabsContext_alias_1 }
|
|
382
|
+
|
|
352
383
|
/**
|
|
353
384
|
* This module provides a Tabs component and a hook to access its context.
|
|
354
385
|
* @module
|
|
355
386
|
*/
|
|
356
387
|
declare interface TabsContextValue {
|
|
357
388
|
active: string;
|
|
389
|
+
tabs: MutableRefObject<HTMLButtonElement[]>;
|
|
358
390
|
onTabUpdate: (active: string) => void;
|
|
359
391
|
}
|
|
360
392
|
export { TabsContextValue }
|
|
@@ -405,6 +437,12 @@ declare function useTabsContext(): TabsContextValue;
|
|
|
405
437
|
export { useTabsContext }
|
|
406
438
|
export { useTabsContext as useTabsContext_alias_1 }
|
|
407
439
|
|
|
440
|
+
declare function useTabsKeyboardNavigation(): {
|
|
441
|
+
ref: (tab: HTMLButtonElement) => void;
|
|
442
|
+
};
|
|
443
|
+
export { useTabsKeyboardNavigation }
|
|
444
|
+
export { useTabsKeyboardNavigation as useTabsKeyboardNavigation_alias_1 }
|
|
445
|
+
|
|
408
446
|
declare function useTheme<C extends string = DefaultThemes>(defaultTheme?: CustomThemes<C>, defaultColorMode?: ColorModes): ThemeContextValue<C>;
|
|
409
447
|
export { useTheme }
|
|
410
448
|
export { useTheme as useTheme_alias_1 }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTabsKeyboardNavigation_alias_1 as useTabsKeyboardNavigation } from '../_tsup-dts-rollup';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useTabsContext
|
|
3
|
+
} from "./chunk-HQK7SM56.js";
|
|
4
|
+
|
|
5
|
+
// src/aria-helpers/tabs.aria.ts
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
function getNextIndex(index, length) {
|
|
8
|
+
return index === length - 1 ? 0 : index + 1;
|
|
9
|
+
}
|
|
10
|
+
function getPrevIndex(index, length) {
|
|
11
|
+
return index === 0 ? length - 1 : index - 1;
|
|
12
|
+
}
|
|
13
|
+
function useTabsKeyboardNavigation() {
|
|
14
|
+
const { tabs } = useTabsContext();
|
|
15
|
+
const [activeTab, setActiveTab] = useState(-1);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
const handleKeyDown = (event) => {
|
|
18
|
+
const index = activeTab === -1 ? tabs.current.findIndex((tab) => tab.ariaSelected === "true") : activeTab;
|
|
19
|
+
const nextIndex = getNextIndex(index, tabs.current.length);
|
|
20
|
+
const prevIndex = getPrevIndex(index, tabs.current.length);
|
|
21
|
+
if (index === -1)
|
|
22
|
+
return;
|
|
23
|
+
switch (event.key) {
|
|
24
|
+
case "ArrowLeft":
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
setActiveTab(prevIndex);
|
|
27
|
+
tabs.current[prevIndex].focus();
|
|
28
|
+
break;
|
|
29
|
+
case "ArrowRight":
|
|
30
|
+
event.preventDefault();
|
|
31
|
+
setActiveTab(nextIndex);
|
|
32
|
+
tabs.current[nextIndex].focus();
|
|
33
|
+
break;
|
|
34
|
+
case "Home":
|
|
35
|
+
event.preventDefault();
|
|
36
|
+
setActiveTab(0);
|
|
37
|
+
tabs.current[0].focus();
|
|
38
|
+
break;
|
|
39
|
+
case "End":
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
setActiveTab(tabs.current.length - 1);
|
|
42
|
+
tabs.current[tabs.current.length - 1].focus();
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
49
|
+
return () => {
|
|
50
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
51
|
+
};
|
|
52
|
+
}, [activeTab, tabs.current]);
|
|
53
|
+
return {
|
|
54
|
+
ref: (tab) => {
|
|
55
|
+
if (tab && !tabs.current.includes(tab)) {
|
|
56
|
+
tabs.current.push(tab);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
useTabsKeyboardNavigation
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=chunk-57HOQM4E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/aria-helpers/tabs.aria.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport { useTabsContext } from '../context/tabs'\n\nfunction getNextIndex(index: number, length: number) {\n return index === length - 1 ? 0 : index + 1\n}\n\nfunction getPrevIndex(index: number, length: number) {\n return index === 0 ? length - 1 : index - 1\n}\n\nexport function useTabsKeyboardNavigation() {\n const { tabs } = useTabsContext()\n const [activeTab, setActiveTab] = useState(-1)\n\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n const index =\n activeTab === -1\n ? tabs.current.findIndex((tab) => tab.ariaSelected === 'true')\n : activeTab\n const nextIndex = getNextIndex(index, tabs.current.length)\n const prevIndex = getPrevIndex(index, tabs.current.length)\n\n // If the active tab is not found, do nothing\n if (index === -1) return\n\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault()\n setActiveTab(prevIndex)\n tabs.current[prevIndex].focus()\n break\n case 'ArrowRight':\n event.preventDefault()\n setActiveTab(nextIndex)\n tabs.current[nextIndex].focus()\n break\n case 'Home':\n event.preventDefault()\n setActiveTab(0)\n tabs.current[0].focus()\n break\n case 'End':\n event.preventDefault()\n setActiveTab(tabs.current.length - 1)\n tabs.current[tabs.current.length - 1].focus()\n break\n default:\n break\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [activeTab, tabs.current])\n\n return {\n ref: (tab: HTMLButtonElement) => {\n if (tab && !tabs.current.includes(tab)) {\n tabs.current.push(tab)\n }\n },\n }\n}\n"],"mappings":";;;;;AAEA,SAAS,WAAW,gBAAgB;AAGpC,SAAS,aAAa,OAAe,QAAgB;AACnD,SAAO,UAAU,SAAS,IAAI,IAAI,QAAQ;AAC5C;AAEA,SAAS,aAAa,OAAe,QAAgB;AACnD,SAAO,UAAU,IAAI,SAAS,IAAI,QAAQ;AAC5C;AAEO,SAAS,4BAA4B;AAC1C,QAAM,EAAE,KAAK,IAAI,eAAe;AAChC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,EAAE;AAE7C,YAAU,MAAM;AACd,UAAM,gBAAgB,CAAC,UAAyB;AAC9C,YAAM,QACJ,cAAc,KACV,KAAK,QAAQ,UAAU,CAAC,QAAQ,IAAI,iBAAiB,MAAM,IAC3D;AACN,YAAM,YAAY,aAAa,OAAO,KAAK,QAAQ,MAAM;AACzD,YAAM,YAAY,aAAa,OAAO,KAAK,QAAQ,MAAM;AAGzD,UAAI,UAAU;AAAI;AAElB,cAAQ,MAAM,KAAK;AAAA,QACjB,KAAK;AACH,gBAAM,eAAe;AACrB,uBAAa,SAAS;AACtB,eAAK,QAAQ,SAAS,EAAE,MAAM;AAC9B;AAAA,QACF,KAAK;AACH,gBAAM,eAAe;AACrB,uBAAa,SAAS;AACtB,eAAK,QAAQ,SAAS,EAAE,MAAM;AAC9B;AAAA,QACF,KAAK;AACH,gBAAM,eAAe;AACrB,uBAAa,CAAC;AACd,eAAK,QAAQ,CAAC,EAAE,MAAM;AACtB;AAAA,QACF,KAAK;AACH,gBAAM,eAAe;AACrB,uBAAa,KAAK,QAAQ,SAAS,CAAC;AACpC,eAAK,QAAQ,KAAK,QAAQ,SAAS,CAAC,EAAE,MAAM;AAC5C;AAAA,QACF;AACE;AAAA,MACJ;AAAA,IACF;AAEA,aAAS,iBAAiB,WAAW,aAAa;AAElD,WAAO,MAAM;AACX,eAAS,oBAAoB,WAAW,aAAa;AAAA,IACvD;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,OAAO,CAAC;AAE5B,SAAO;AAAA,IACL,KAAK,CAAC,QAA2B;AAC/B,UAAI,OAAO,CAAC,KAAK,QAAQ,SAAS,GAAG,GAAG;AACtC,aAAK,QAAQ,KAAK,GAAG;AAAA,MACvB;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -4,24 +4,27 @@ import {
|
|
|
4
4
|
useContext,
|
|
5
5
|
useEffect,
|
|
6
6
|
useMemo,
|
|
7
|
+
useRef,
|
|
7
8
|
useState
|
|
8
9
|
} from "react";
|
|
9
10
|
import { jsx } from "react/jsx-runtime";
|
|
10
11
|
var TabsContext = createContext(null);
|
|
11
12
|
function Tabs(props) {
|
|
12
13
|
const { cache } = props;
|
|
13
|
-
const [active, setActive] = useState(() => props.active ?? "");
|
|
14
|
+
const [active, setActive] = useState(() => cache ? "" : props.active ?? "");
|
|
15
|
+
const tabs = useRef([]);
|
|
14
16
|
const value = useMemo(
|
|
15
17
|
() => ({
|
|
16
18
|
active,
|
|
19
|
+
tabs,
|
|
17
20
|
onTabUpdate: setActive
|
|
18
21
|
}),
|
|
19
22
|
[active, setActive]
|
|
20
23
|
);
|
|
21
24
|
useEffect(() => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
setActive(cachedTab
|
|
25
|
+
const cachedTab = window.localStorage.getItem("cerberus-tabs");
|
|
26
|
+
if (cache && cachedTab) {
|
|
27
|
+
setActive(cachedTab);
|
|
25
28
|
}
|
|
26
29
|
}, [cache]);
|
|
27
30
|
useEffect(() => {
|
|
@@ -40,7 +43,8 @@ function useTabsContext() {
|
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
export {
|
|
46
|
+
TabsContext,
|
|
43
47
|
Tabs,
|
|
44
48
|
useTabsContext
|
|
45
49
|
};
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
50
|
+
//# sourceMappingURL=chunk-HQK7SM56.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/context/tabs.tsx"],"sourcesContent":["'use client'\n\nimport {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type MutableRefObject,\n type PropsWithChildren,\n} from 'react'\n\n/**\n * This module provides a Tabs component and a hook to access its context.\n * @module\n */\n\nexport interface TabsContextValue {\n active: string\n tabs: MutableRefObject<HTMLButtonElement[]>\n onTabUpdate: (active: string) => void\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null)\n\nexport interface TabsProps {\n active?: string\n cache?: boolean\n}\n\n/**\n * The Tabs component provides a context to manage tab state.\n * @param active - the default active tab id,\n * @param cache - whether to cache the active tab state in local storage\n * @example\n * ```tsx\n * <Tabs cache>\n * <TabList description=\"Button details\">\n * <Tab id=\"overview\">Overview</Tab>\n * <Tab id=\"guidelines\">Guidelines</Tab>\n * </TabList>\n * <TabPanels>\n * <TabPanel id=\"overview\">Overview content</TabPanel>\n * <TabPanel id=\"guidelines\">Guidelines content</TabPanel>\n * </TabPanels>\n * </Tabs>\n * ```\n */\nexport function Tabs(props: PropsWithChildren<TabsProps>): JSX.Element {\n const { cache } = props\n const [active, setActive] = useState(() => (cache ? '' : props.active ?? ''))\n const tabs = useRef<HTMLButtonElement[]>([])\n\n const value = useMemo(\n () => ({\n active,\n tabs,\n onTabUpdate: setActive,\n }),\n [active, setActive],\n )\n\n useEffect(() => {\n const cachedTab = window.localStorage.getItem('cerberus-tabs')\n if (cache && cachedTab) {\n setActive(cachedTab)\n }\n }, [cache])\n\n useEffect(() => {\n if (cache) {\n window.localStorage.setItem('cerberus-tabs', active)\n }\n }, [active, cache])\n\n return (\n <TabsContext.Provider value={value}>{props.children}</TabsContext.Provider>\n )\n}\n\nexport function useTabsContext(): TabsContextValue {\n const context = useContext(TabsContext)\n if (!context) {\n throw new Error('useTabsContext must be used within a Tabs Provider.')\n }\n return context\n}\n"],"mappings":";AAEA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AAkEH;AArDG,IAAM,cAAc,cAAuC,IAAI;AAyB/D,SAAS,KAAK,OAAkD;AACrE,QAAM,EAAE,MAAM,IAAI;AAClB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,MAAO,QAAQ,KAAK,MAAM,UAAU,EAAG;AAC5E,QAAM,OAAO,OAA4B,CAAC,CAAC;AAE3C,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IACf;AAAA,IACA,CAAC,QAAQ,SAAS;AAAA,EACpB;AAEA,YAAU,MAAM;AACd,UAAM,YAAY,OAAO,aAAa,QAAQ,eAAe;AAC7D,QAAI,SAAS,WAAW;AACtB,gBAAU,SAAS;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,QAAI,OAAO;AACT,aAAO,aAAa,QAAQ,iBAAiB,MAAM;AAAA,IACrD;AAAA,EACF,GAAG,CAAC,QAAQ,KAAK,CAAC;AAElB,SACE,oBAAC,YAAY,UAAZ,EAAqB,OAAe,gBAAM,UAAS;AAExD;AAEO,SAAS,iBAAmC;AACjD,QAAM,UAAU,WAAW,WAAW;AACtC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AACA,SAAO;AACT;","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useNavMenuContext
|
|
3
3
|
} from "./chunk-KJUCHZHV.js";
|
|
4
|
-
import {
|
|
5
|
-
createNavTriggerProps
|
|
6
|
-
} from "./chunk-JF76VIL3.js";
|
|
7
4
|
import {
|
|
8
5
|
Show
|
|
9
6
|
} from "./chunk-R4H3352X.js";
|
|
7
|
+
import {
|
|
8
|
+
createNavTriggerProps
|
|
9
|
+
} from "./chunk-JF76VIL3.js";
|
|
10
10
|
|
|
11
11
|
// src/components/NavMenuTrigger.tsx
|
|
12
12
|
import {
|
|
@@ -79,4 +79,4 @@ function NavMenuTrigger(props) {
|
|
|
79
79
|
export {
|
|
80
80
|
NavMenuTrigger
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-MJB3V6J4.js.map
|
|
@@ -12,7 +12,10 @@ function TabList(props) {
|
|
|
12
12
|
className: cx(
|
|
13
13
|
nativeProps.className,
|
|
14
14
|
hstack({
|
|
15
|
-
|
|
15
|
+
borderBottom: "1px solid",
|
|
16
|
+
borderBottomColor: "action.border.100",
|
|
17
|
+
gap: "0",
|
|
18
|
+
w: "full"
|
|
16
19
|
})
|
|
17
20
|
)
|
|
18
21
|
}
|
|
@@ -22,4 +25,4 @@ function TabList(props) {
|
|
|
22
25
|
export {
|
|
23
26
|
TabList
|
|
24
27
|
};
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-ODSSU3JD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/TabList.tsx"],"sourcesContent":["import { cx } from '@cerberus/styled-system/css'\nimport { hstack } from '@cerberus/styled-system/patterns'\nimport type { HTMLAttributes, PropsWithChildren } from 'react'\n\n/**\n * This module provides a TabList component.\n * @module\n */\n\nexport interface TabListProps extends HTMLAttributes<HTMLDivElement> {\n description: string\n}\n\n/**\n * The TabList component provides a container for tab elements.\n * @param description - a description of what the tab list contains\n * @example\n * ```tsx\n * <TabList description=\"Button details\">\n * <Tab id=\"overview\">Overview</Tab>\n * <Tab id=\"guidelines\">Guidelines</Tab>\n * </TabList>\n * ```\n */\nexport function TabList(props: PropsWithChildren<TabListProps>) {\n const { description, ...nativeProps } = props\n return (\n <div\n {...nativeProps}\n aria-describedby={description}\n className={cx(\n nativeProps.className,\n hstack({\n borderBottom: '1px solid',\n borderBottomColor: 'action.border.100',\n gap: '0',\n w: 'full',\n }),\n )}\n />\n )\n}\n"],"mappings":";AAAA,SAAS,UAAU;AACnB,SAAS,cAAc;AA0BnB;AAHG,SAAS,QAAQ,OAAwC;AAC9D,QAAM,EAAE,aAAa,GAAG,YAAY,IAAI;AACxC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,oBAAkB;AAAA,MAClB,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,OAAO;AAAA,UACL,cAAc;AAAA,UACd,mBAAmB;AAAA,UACnB,KAAK;AAAA,UACL,GAAG;AAAA,QACL,CAAC;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useTabsContext
|
|
3
|
-
} from "./chunk-24B4KIPX.js";
|
|
4
1
|
import {
|
|
5
2
|
Show
|
|
6
3
|
} from "./chunk-R4H3352X.js";
|
|
4
|
+
import {
|
|
5
|
+
useTabsContext
|
|
6
|
+
} from "./chunk-HQK7SM56.js";
|
|
7
7
|
|
|
8
8
|
// src/components/TabPanel.tsx
|
|
9
9
|
import { css, cx } from "@cerberus/styled-system/css";
|
|
@@ -19,7 +19,19 @@ function TabPanel(props) {
|
|
|
19
19
|
...nativeProps,
|
|
20
20
|
...isActive && { tabIndex: 0 },
|
|
21
21
|
"aria-labelledby": tab,
|
|
22
|
-
className: cx(
|
|
22
|
+
className: cx(
|
|
23
|
+
nativeProps.className,
|
|
24
|
+
css({
|
|
25
|
+
rounded: "md",
|
|
26
|
+
_focusVisible: {
|
|
27
|
+
boxShadow: "none",
|
|
28
|
+
outline: "3px solid",
|
|
29
|
+
outlineColor: "action.border.focus",
|
|
30
|
+
outlineOffset: "2px"
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
),
|
|
34
|
+
id: `panel:${tab}`,
|
|
23
35
|
role: "tabpanel"
|
|
24
36
|
}
|
|
25
37
|
) });
|
|
@@ -28,4 +40,4 @@ function TabPanel(props) {
|
|
|
28
40
|
export {
|
|
29
41
|
TabPanel
|
|
30
42
|
};
|
|
31
|
-
//# sourceMappingURL=chunk-
|
|
43
|
+
//# sourceMappingURL=chunk-RCE2XXL7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/TabPanel.tsx"],"sourcesContent":["'use client'\n\nimport { css, cx } from '@cerberus/styled-system/css'\nimport { useMemo, type HTMLAttributes } from 'react'\nimport { useTabsContext } from '../context/tabs'\nimport { Show } from './Show'\n\n/**\n * This module provides a TabPanel component.\n * @module\n */\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n tab: string\n}\n\n/**\n * The TabPanel component provides a panel element to be used in a Tabs provider.\n * @param tab - the value of the tab that will be tracked as the active tab and used for aria attributes\n * @example\n * ```tsx\n * <TabPanel tab=\"overview\">\n * Overview content\n * </TabPanel>\n * ```\n */\nexport function TabPanel(props: TabPanelProps) {\n const { tab, ...nativeProps } = props\n const { active } = useTabsContext()\n const isActive = useMemo(() => active === tab, [active, tab])\n\n return (\n <Show when={isActive}>\n <div\n {...nativeProps}\n {...(isActive && { tabIndex: 0 })}\n aria-labelledby={tab}\n className={cx(\n nativeProps.className,\n css({\n rounded: 'md',\n _focusVisible: {\n boxShadow: 'none',\n outline: '3px solid',\n outlineColor: 'action.border.focus',\n outlineOffset: '2px',\n },\n }),\n )}\n id={`panel:${tab}`}\n role=\"tabpanel\"\n />\n </Show>\n )\n}\n"],"mappings":";;;;;;;;AAEA,SAAS,KAAK,UAAU;AACxB,SAAS,eAAoC;AA8BvC;AAPC,SAAS,SAAS,OAAsB;AAC7C,QAAM,EAAE,KAAK,GAAG,YAAY,IAAI;AAChC,QAAM,EAAE,OAAO,IAAI,eAAe;AAClC,QAAM,WAAW,QAAQ,MAAM,WAAW,KAAK,CAAC,QAAQ,GAAG,CAAC;AAE5D,SACE,oBAAC,QAAK,MAAM,UACV;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAI,YAAY,EAAE,UAAU,EAAE;AAAA,MAC/B,mBAAiB;AAAA,MACjB,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,IAAI;AAAA,UACF,SAAS;AAAA,UACT,eAAe;AAAA,YACb,WAAW;AAAA,YACX,SAAS;AAAA,YACT,cAAc;AAAA,YACd,eAAe;AAAA,UACjB;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,IAAI,SAAS,GAAG;AAAA,MAChB,MAAK;AAAA;AAAA,EACP,GACF;AAEJ;","names":[]}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useTabsKeyboardNavigation
|
|
3
|
+
} from "./chunk-57HOQM4E.js";
|
|
4
|
+
import {
|
|
5
|
+
useTabsContext
|
|
6
|
+
} from "./chunk-HQK7SM56.js";
|
|
7
|
+
|
|
8
|
+
// src/components/Tab.tsx
|
|
9
|
+
import { useMemo } from "react";
|
|
10
|
+
import { css, cx } from "@cerberus/styled-system/css";
|
|
11
|
+
import { jsx } from "react/jsx-runtime";
|
|
12
|
+
function Tab(props) {
|
|
13
|
+
const { value, ...nativeProps } = props;
|
|
14
|
+
const { active, onTabUpdate } = useTabsContext();
|
|
15
|
+
const { ref } = useTabsKeyboardNavigation();
|
|
16
|
+
const isActive = useMemo(() => active === value, [active, value]);
|
|
17
|
+
function handleClick(e) {
|
|
18
|
+
props.onClick?.(e);
|
|
19
|
+
onTabUpdate(e.currentTarget.value);
|
|
20
|
+
}
|
|
21
|
+
return /* @__PURE__ */ jsx(
|
|
22
|
+
"button",
|
|
23
|
+
{
|
|
24
|
+
...nativeProps,
|
|
25
|
+
...!isActive && { tabIndex: -1 },
|
|
26
|
+
"aria-controls": `panel:${value}`,
|
|
27
|
+
"aria-selected": isActive,
|
|
28
|
+
id: value,
|
|
29
|
+
className: cx(nativeProps.className, btnStyles),
|
|
30
|
+
onClick: handleClick,
|
|
31
|
+
role: "tab",
|
|
32
|
+
ref,
|
|
33
|
+
value
|
|
34
|
+
}
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
var btnStyles = css({
|
|
38
|
+
borderTopLeftRadius: "md",
|
|
39
|
+
borderTopRightRadius: "md",
|
|
40
|
+
fontSize: "sm",
|
|
41
|
+
fontWeight: "600",
|
|
42
|
+
h: "2.75rem",
|
|
43
|
+
position: "relative",
|
|
44
|
+
pxi: "4",
|
|
45
|
+
zIndex: "base",
|
|
46
|
+
_motionSafe: {
|
|
47
|
+
transition: "all 200ms ease-in-out",
|
|
48
|
+
_before: {
|
|
49
|
+
transitionProperty: "height",
|
|
50
|
+
transitionDuration: "200ms",
|
|
51
|
+
transitionTimingFunction: "ease-in-out"
|
|
52
|
+
},
|
|
53
|
+
_after: {
|
|
54
|
+
transitionProperty: "height",
|
|
55
|
+
transitionDuration: "200ms",
|
|
56
|
+
transitionTimingFunction: "ease-in-out"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
_before: {
|
|
60
|
+
bgColor: "action.border.initial",
|
|
61
|
+
bottom: "0",
|
|
62
|
+
content: '""',
|
|
63
|
+
h: "0",
|
|
64
|
+
position: "absolute",
|
|
65
|
+
left: "0",
|
|
66
|
+
right: "0",
|
|
67
|
+
w: "full",
|
|
68
|
+
willChange: "height",
|
|
69
|
+
zIndex: "decorator"
|
|
70
|
+
},
|
|
71
|
+
_after: {
|
|
72
|
+
borderTopLeftRadius: "md",
|
|
73
|
+
borderTopRightRadius: "md",
|
|
74
|
+
bottom: "0",
|
|
75
|
+
bgColor: "neutral.surface.100",
|
|
76
|
+
content: '""',
|
|
77
|
+
left: "0",
|
|
78
|
+
position: "absolute",
|
|
79
|
+
right: "0",
|
|
80
|
+
h: "0",
|
|
81
|
+
w: "full",
|
|
82
|
+
willChange: "height",
|
|
83
|
+
zIndex: "-1"
|
|
84
|
+
},
|
|
85
|
+
_hover: {
|
|
86
|
+
_after: {
|
|
87
|
+
h: "full"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
_focusVisible: {
|
|
91
|
+
boxShadow: "none",
|
|
92
|
+
outline: "3px solid",
|
|
93
|
+
outlineColor: "action.border.focus",
|
|
94
|
+
outlineOffset: "2px"
|
|
95
|
+
},
|
|
96
|
+
_disabled: {
|
|
97
|
+
cursor: "not-allowed",
|
|
98
|
+
opacity: "0.5"
|
|
99
|
+
},
|
|
100
|
+
_selected: {
|
|
101
|
+
color: "action.text.200",
|
|
102
|
+
_before: {
|
|
103
|
+
h: "3px"
|
|
104
|
+
},
|
|
105
|
+
_hover: {
|
|
106
|
+
_after: {
|
|
107
|
+
h: "0"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
export {
|
|
114
|
+
Tab
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=chunk-SWCK7V2N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/Tab.tsx"],"sourcesContent":["'use client'\n\nimport { useMemo, type ButtonHTMLAttributes, type MouseEvent } from 'react'\nimport { useTabsContext } from '../context/tabs'\nimport { css, cx } from '@cerberus/styled-system/css'\nimport { useTabsKeyboardNavigation } from '../aria-helpers/tabs.aria'\n\n/**\n * This module provides a Tab component.\n * @module\n */\n\nexport interface TabProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n value: string\n}\n\n/**\n * The Tab component provides a tab element to be used in a TabList.\n * @definition [ARIA Target Size](https://www.w3.org/WAI/WCAG21/Understanding/target-size.html#:~:text=Understanding%20SC%202.5.,%3ATarget%20Size%20(Level%20AAA)&text=The%20size%20of%20the%20target,Equivalent)\n * @definition [Tab docs](https://cerberus.digitalu.design/react/tabs)\n * @param value - the id of the tab that will be tracked as the active tab and used for aria attributes\n * @example\n * ```tsx\n * <Tab value=\"overview\">\n * Overview\n * </Tab>\n * ```\n */\nexport function Tab(props: TabProps) {\n const { value, ...nativeProps } = props\n const { active, onTabUpdate } = useTabsContext()\n const { ref } = useTabsKeyboardNavigation()\n const isActive = useMemo(() => active === value, [active, value])\n\n function handleClick(e: MouseEvent<HTMLButtonElement>) {\n props.onClick?.(e)\n onTabUpdate(e.currentTarget.value)\n }\n\n return (\n <button\n {...nativeProps}\n {...(!isActive && { tabIndex: -1 })}\n aria-controls={`panel:${value}`}\n aria-selected={isActive}\n id={value}\n className={cx(nativeProps.className, btnStyles)}\n onClick={handleClick}\n role=\"tab\"\n ref={ref}\n value={value}\n />\n )\n}\n\nconst btnStyles = css({\n borderTopLeftRadius: 'md',\n borderTopRightRadius: 'md',\n fontSize: 'sm',\n fontWeight: '600',\n h: '2.75rem',\n position: 'relative',\n pxi: '4',\n zIndex: 'base',\n _motionSafe: {\n transition: 'all 200ms ease-in-out',\n _before: {\n transitionProperty: 'height',\n transitionDuration: '200ms',\n transitionTimingFunction: 'ease-in-out',\n },\n _after: {\n transitionProperty: 'height',\n transitionDuration: '200ms',\n transitionTimingFunction: 'ease-in-out',\n },\n },\n _before: {\n bgColor: 'action.border.initial',\n bottom: '0',\n content: '\"\"',\n h: '0',\n position: 'absolute',\n left: '0',\n right: '0',\n w: 'full',\n willChange: 'height',\n zIndex: 'decorator',\n },\n _after: {\n borderTopLeftRadius: 'md',\n borderTopRightRadius: 'md',\n bottom: '0',\n bgColor: 'neutral.surface.100',\n content: '\"\"',\n left: '0',\n position: 'absolute',\n right: '0',\n h: '0',\n w: 'full',\n willChange: 'height',\n zIndex: '-1',\n },\n _hover: {\n _after: {\n h: 'full',\n },\n },\n _focusVisible: {\n boxShadow: 'none',\n outline: '3px solid',\n outlineColor: 'action.border.focus',\n outlineOffset: '2px',\n },\n _disabled: {\n cursor: 'not-allowed',\n opacity: '0.5',\n },\n _selected: {\n color: 'action.text.200',\n _before: {\n h: '3px',\n },\n _hover: {\n _after: {\n h: '0',\n },\n },\n },\n})\n"],"mappings":";;;;;;;;AAEA,SAAS,eAA2D;AAEpE,SAAS,KAAK,UAAU;AAoCpB;AAZG,SAAS,IAAI,OAAiB;AACnC,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI;AAClC,QAAM,EAAE,QAAQ,YAAY,IAAI,eAAe;AAC/C,QAAM,EAAE,IAAI,IAAI,0BAA0B;AAC1C,QAAM,WAAW,QAAQ,MAAM,WAAW,OAAO,CAAC,QAAQ,KAAK,CAAC;AAEhE,WAAS,YAAY,GAAkC;AACrD,UAAM,UAAU,CAAC;AACjB,gBAAY,EAAE,cAAc,KAAK;AAAA,EACnC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACH,GAAI,CAAC,YAAY,EAAE,UAAU,GAAG;AAAA,MACjC,iBAAe,SAAS,KAAK;AAAA,MAC7B,iBAAe;AAAA,MACf,IAAI;AAAA,MACJ,WAAW,GAAG,YAAY,WAAW,SAAS;AAAA,MAC9C,SAAS;AAAA,MACT,MAAK;AAAA,MACL;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAM,YAAY,IAAI;AAAA,EACpB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,GAAG;AAAA,EACH,UAAU;AAAA,EACV,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,SAAS;AAAA,MACP,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,0BAA0B;AAAA,IAC5B;AAAA,IACA,QAAQ;AAAA,MACN,oBAAoB;AAAA,MACpB,oBAAoB;AAAA,MACpB,0BAA0B;AAAA,IAC5B;AAAA,EACF;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,GAAG;AAAA,IACH,UAAU;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,IACtB,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV,OAAO;AAAA,IACP,GAAG;AAAA,IACH,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,QAAQ;AAAA,EACV;AAAA,EACA,QAAQ;AAAA,IACN,QAAQ;AAAA,MACN,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb,WAAW;AAAA,IACX,SAAS;AAAA,IACT,cAAc;AAAA,IACd,eAAe;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,EACX;AAAA,EACA,WAAW;AAAA,IACT,OAAO;AAAA,IACP,SAAS;AAAA,MACP,GAAG;AAAA,IACL;AAAA,IACA,QAAQ;AAAA,MACN,QAAQ;AAAA,QACN,GAAG;AAAA,MACL;AAAA,IACF;AAAA,EACF;AACF,CAAC;","names":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import {
|
|
3
3
|
NavMenuTrigger
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-MJB3V6J4.js";
|
|
5
5
|
import "../chunk-KJUCHZHV.js";
|
|
6
|
-
import "../chunk-JF76VIL3.js";
|
|
7
6
|
import "../chunk-R4H3352X.js";
|
|
7
|
+
import "../chunk-JF76VIL3.js";
|
|
8
8
|
export {
|
|
9
9
|
NavMenuTrigger
|
|
10
10
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Tabs_alias_1 as Tabs } from '../_tsup-dts-rollup';
|
|
2
2
|
export { useTabsContext_alias_1 as useTabsContext } from '../_tsup-dts-rollup';
|
|
3
3
|
export { TabsContextValue_alias_1 as TabsContextValue } from '../_tsup-dts-rollup';
|
|
4
|
+
export { TabsContext_alias_1 as TabsContext } from '../_tsup-dts-rollup';
|
|
4
5
|
export { TabsProps_alias_1 as TabsProps } from '../_tsup-dts-rollup';
|
package/build/modern/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export { NavMenuContextValue } from './_tsup-dts-rollup';
|
|
|
35
35
|
export { Tabs } from './_tsup-dts-rollup';
|
|
36
36
|
export { useTabsContext } from './_tsup-dts-rollup';
|
|
37
37
|
export { TabsContextValue } from './_tsup-dts-rollup';
|
|
38
|
+
export { TabsContext } from './_tsup-dts-rollup';
|
|
38
39
|
export { TabsProps } from './_tsup-dts-rollup';
|
|
39
40
|
export { ThemeProvider } from './_tsup-dts-rollup';
|
|
40
41
|
export { useThemeContext } from './_tsup-dts-rollup';
|
|
@@ -47,4 +48,5 @@ export { MODE_KEY } from './_tsup-dts-rollup';
|
|
|
47
48
|
export { useTheme } from './_tsup-dts-rollup';
|
|
48
49
|
export { createNavTriggerProps } from './_tsup-dts-rollup';
|
|
49
50
|
export { NavTriggerAriaValues } from './_tsup-dts-rollup';
|
|
51
|
+
export { useTabsKeyboardNavigation } from './_tsup-dts-rollup';
|
|
50
52
|
export { Positions } from './_tsup-dts-rollup';
|
package/build/modern/index.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TabPanel
|
|
3
|
+
} from "./chunk-RCE2XXL7.js";
|
|
4
|
+
import {
|
|
5
|
+
Input
|
|
6
|
+
} from "./chunk-LD5ZV46F.js";
|
|
1
7
|
import {
|
|
2
8
|
Label
|
|
3
9
|
} from "./chunk-OXVNTE4A.js";
|
|
@@ -10,28 +16,32 @@ import {
|
|
|
10
16
|
} from "./chunk-WSQTX34C.js";
|
|
11
17
|
import {
|
|
12
18
|
NavMenuTrigger
|
|
13
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-MJB3V6J4.js";
|
|
14
20
|
import {
|
|
15
21
|
NavMenu,
|
|
16
22
|
useNavMenuContext
|
|
17
23
|
} from "./chunk-KJUCHZHV.js";
|
|
24
|
+
import {
|
|
25
|
+
Show
|
|
26
|
+
} from "./chunk-R4H3352X.js";
|
|
18
27
|
import {
|
|
19
28
|
Tab
|
|
20
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-SWCK7V2N.js";
|
|
21
30
|
import {
|
|
22
31
|
TabList
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import {
|
|
25
|
-
TabPanel
|
|
26
|
-
} from "./chunk-XVDQL4L6.js";
|
|
27
|
-
import {
|
|
28
|
-
Tabs,
|
|
29
|
-
useTabsContext
|
|
30
|
-
} from "./chunk-24B4KIPX.js";
|
|
32
|
+
} from "./chunk-ODSSU3JD.js";
|
|
31
33
|
import "./chunk-55J6XMHW.js";
|
|
32
34
|
import {
|
|
33
35
|
createNavTriggerProps
|
|
34
36
|
} from "./chunk-JF76VIL3.js";
|
|
37
|
+
import {
|
|
38
|
+
useTabsKeyboardNavigation
|
|
39
|
+
} from "./chunk-57HOQM4E.js";
|
|
40
|
+
import {
|
|
41
|
+
Tabs,
|
|
42
|
+
TabsContext,
|
|
43
|
+
useTabsContext
|
|
44
|
+
} from "./chunk-HQK7SM56.js";
|
|
35
45
|
import {
|
|
36
46
|
MODE_KEY,
|
|
37
47
|
THEME_KEY,
|
|
@@ -45,19 +55,13 @@ import {
|
|
|
45
55
|
import {
|
|
46
56
|
FieldMessage
|
|
47
57
|
} from "./chunk-YVUZSAJG.js";
|
|
48
|
-
import {
|
|
49
|
-
IconButton
|
|
50
|
-
} from "./chunk-BPIYUAYS.js";
|
|
51
|
-
import {
|
|
52
|
-
Input
|
|
53
|
-
} from "./chunk-LD5ZV46F.js";
|
|
54
|
-
import {
|
|
55
|
-
Show
|
|
56
|
-
} from "./chunk-R4H3352X.js";
|
|
57
58
|
import {
|
|
58
59
|
Field,
|
|
59
60
|
useFieldContext
|
|
60
61
|
} from "./chunk-ZAU4JVLL.js";
|
|
62
|
+
import {
|
|
63
|
+
IconButton
|
|
64
|
+
} from "./chunk-BPIYUAYS.js";
|
|
61
65
|
export {
|
|
62
66
|
Button,
|
|
63
67
|
Field,
|
|
@@ -76,12 +80,14 @@ export {
|
|
|
76
80
|
TabList,
|
|
77
81
|
TabPanel,
|
|
78
82
|
Tabs,
|
|
83
|
+
TabsContext,
|
|
79
84
|
ThemeProvider,
|
|
80
85
|
createNavTriggerProps,
|
|
81
86
|
getPosition,
|
|
82
87
|
useFieldContext,
|
|
83
88
|
useNavMenuContext,
|
|
84
89
|
useTabsContext,
|
|
90
|
+
useTabsKeyboardNavigation,
|
|
85
91
|
useTheme,
|
|
86
92
|
useThemeContext
|
|
87
93
|
};
|