@lindle/linoardo 1.0.46 → 1.0.48
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/{ExpansionPanelItem-C9KW1yBc.d.cts → ExpansionPanelItem-By0ziOVw.d.cts} +1 -1
- package/dist/{ExpansionPanelItem-Pi3BM-4v.d.ts → ExpansionPanelItem-CFfWX7ia.d.ts} +1 -1
- package/dist/alert.cjs +3 -3
- package/dist/alert.cjs.map +1 -1
- package/dist/alert.js +1 -1
- package/dist/badge.cjs +10 -10
- package/dist/badge.cjs.map +1 -1
- package/dist/badge.d.cts +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/badge.js +1 -1
- package/dist/block.cjs +0 -1
- package/dist/block.cjs.map +1 -1
- package/dist/block.d.cts +1 -1
- package/dist/block.d.ts +1 -1
- package/dist/block.js +1 -1
- package/dist/button.cjs +111 -55
- package/dist/button.cjs.map +1 -1
- package/dist/button.d.cts +16 -5
- package/dist/button.d.ts +16 -5
- package/dist/button.js +1 -1
- package/dist/card.cjs +0 -1
- package/dist/card.cjs.map +1 -1
- package/dist/card.d.cts +1 -1
- package/dist/card.d.ts +1 -1
- package/dist/card.js +1 -1
- package/dist/chip.cjs +47 -55
- package/dist/chip.cjs.map +1 -1
- package/dist/chip.d.cts +1 -1
- package/dist/chip.d.ts +1 -1
- package/dist/chip.js +2 -2
- package/dist/{chunk-5GT6L4BE.js → chunk-4NKKWBMP.js} +2 -3
- package/dist/chunk-4NKKWBMP.js.map +1 -0
- package/dist/{chunk-VPF7M2PB.js → chunk-7TQUULYB.js} +23 -26
- package/dist/chunk-7TQUULYB.js.map +1 -0
- package/dist/{chunk-U4P2VJCV.js → chunk-7YZBEH2K.js} +2 -3
- package/dist/chunk-7YZBEH2K.js.map +1 -0
- package/dist/{chunk-NJU7XT54.js → chunk-DMI64Z53.js} +4 -4
- package/dist/chunk-DMI64Z53.js.map +1 -0
- package/dist/{chunk-NADLY6LM.js → chunk-DUEQOGNR.js} +3 -4
- package/dist/chunk-DUEQOGNR.js.map +1 -0
- package/dist/{chunk-5LWU5T2C.js → chunk-GKZFVQW6.js} +16 -16
- package/dist/chunk-GKZFVQW6.js.map +1 -0
- package/dist/{chunk-ZTP2JSQ6.js → chunk-H4742H2N.js} +53 -27
- package/dist/chunk-H4742H2N.js.map +1 -0
- package/dist/{chunk-PSMGRUU5.js → chunk-HGECC2JH.js} +48 -56
- package/dist/chunk-HGECC2JH.js.map +1 -0
- package/dist/{chunk-DIWGVTWO.js → chunk-HVGCLUW2.js} +113 -57
- package/dist/chunk-HVGCLUW2.js.map +1 -0
- package/dist/{chunk-GMDNSU26.js → chunk-KK33I72F.js} +5 -5
- package/dist/{chunk-GMDNSU26.js.map → chunk-KK33I72F.js.map} +1 -1
- package/dist/{chunk-HT5XBHWN.js → chunk-KVXZEMAH.js} +4 -4
- package/dist/{chunk-HT5XBHWN.js.map → chunk-KVXZEMAH.js.map} +1 -1
- package/dist/{chunk-5MVIF5GP.js → chunk-LRWM4ZWZ.js} +4 -7
- package/dist/chunk-LRWM4ZWZ.js.map +1 -0
- package/dist/{chunk-XA74HBMH.js → chunk-LSIAP7ZZ.js} +8 -8
- package/dist/chunk-LSIAP7ZZ.js.map +1 -0
- package/dist/{chunk-HEXJCQRO.js → chunk-LWCRKQEV.js} +10 -10
- package/dist/chunk-LWCRKQEV.js.map +1 -0
- package/dist/{chunk-FEGFA3FN.js → chunk-LZYVTGJD.js} +3 -3
- package/dist/{chunk-FEGFA3FN.js.map → chunk-LZYVTGJD.js.map} +1 -1
- package/dist/{chunk-U2AL7XFY.js → chunk-O3VFEMJ7.js} +4 -4
- package/dist/chunk-O3VFEMJ7.js.map +1 -0
- package/dist/{chunk-HIRPMCQJ.js → chunk-OQYPWJDA.js} +12 -12
- package/dist/{chunk-HIRPMCQJ.js.map → chunk-OQYPWJDA.js.map} +1 -1
- package/dist/{chunk-AUVYU7M5.js → chunk-Q7VTD6NY.js} +20 -20
- package/dist/chunk-Q7VTD6NY.js.map +1 -0
- package/dist/{chunk-F3PI7A6V.js → chunk-TRR7TDVA.js} +3 -4
- package/dist/chunk-TRR7TDVA.js.map +1 -0
- package/dist/chunk-UGG35FPX.js +141 -0
- package/dist/chunk-UGG35FPX.js.map +1 -0
- package/dist/{chunk-HAXGOTZO.js → chunk-UK6RSS4J.js} +3 -3
- package/dist/chunk-UK6RSS4J.js.map +1 -0
- package/dist/{chunk-KQOR3C7E.js → chunk-ZLBGPLM3.js} +5 -5
- package/dist/chunk-ZLBGPLM3.js.map +1 -0
- package/dist/dialog.cjs +2 -2
- package/dist/dialog.cjs.map +1 -1
- package/dist/dialog.js +1 -1
- package/dist/expansion-panel/item.cjs +18 -18
- package/dist/expansion-panel/item.cjs.map +1 -1
- package/dist/expansion-panel/item.d.cts +2 -2
- package/dist/expansion-panel/item.d.ts +2 -2
- package/dist/expansion-panel/item.js +1 -1
- package/dist/expansion-panel.cjs +23 -23
- package/dist/expansion-panel.cjs.map +1 -1
- package/dist/expansion-panel.d.cts +3 -3
- package/dist/expansion-panel.d.ts +3 -3
- package/dist/expansion-panel.js +2 -2
- package/dist/{global.types-gx9A7mUe.d.cts → global.types-CjO3VRWu.d.cts} +1 -1
- package/dist/{global.types-gx9A7mUe.d.ts → global.types-CjO3VRWu.d.ts} +1 -1
- package/dist/hero.cjs +21 -24
- package/dist/hero.cjs.map +1 -1
- package/dist/hero.d.cts +1 -1
- package/dist/hero.d.ts +1 -1
- package/dist/hero.js +1 -1
- package/dist/icon.cjs +8 -8
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.d.cts +1 -1
- package/dist/icon.d.ts +1 -1
- package/dist/icon.js +1 -1
- package/dist/{index-CNwl6vmH.d.ts → index-BgLrabTA.d.ts} +1 -1
- package/dist/{index-BDrBOeFI.d.cts → index-C19gZTrO.d.cts} +1 -1
- package/dist/index.cjs +475 -489
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +68 -68
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +62 -145
- package/dist/input.cjs.map +1 -1
- package/dist/input.d.cts +6 -6
- package/dist/input.d.ts +6 -6
- package/dist/input.js +1 -2
- package/dist/list/item.d.cts +2 -2
- package/dist/list/item.d.ts +2 -2
- package/dist/list.cjs +1 -2
- package/dist/list.cjs.map +1 -1
- package/dist/list.d.cts +3 -3
- package/dist/list.d.ts +3 -3
- package/dist/list.js +1 -1
- package/dist/masonry.cjs +1 -1
- package/dist/masonry.cjs.map +1 -1
- package/dist/masonry.js +1 -1
- package/dist/menu.cjs +51 -25
- package/dist/menu.cjs.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/notification.d.cts +1 -1
- package/dist/notification.d.ts +1 -1
- package/dist/profileCard.cjs +112 -59
- package/dist/profileCard.cjs.map +1 -1
- package/dist/profileCard.d.cts +1 -1
- package/dist/profileCard.d.ts +1 -1
- package/dist/profileCard.js +2 -2
- package/dist/select.cjs +1 -2
- package/dist/select.cjs.map +1 -1
- package/dist/select.d.cts +2 -2
- package/dist/select.d.ts +2 -2
- package/dist/select.js +1 -1
- package/dist/slider.cjs +3 -3
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.d.cts +1 -1
- package/dist/slider.d.ts +1 -1
- package/dist/slider.js +1 -1
- package/dist/styles.css +1156 -148
- package/dist/switch.cjs +14 -14
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.d.cts +1 -1
- package/dist/switch.d.ts +1 -1
- package/dist/switch.js +1 -1
- package/dist/timeline.cjs.map +1 -1
- package/dist/timeline.d.cts +2 -2
- package/dist/timeline.d.ts +2 -2
- package/dist/timeline.js +2 -2
- package/dist/tooltip.cjs +2 -2
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{types-DaTHYIPO.d.ts → types-B4puM-zr.d.cts} +3 -4
- package/dist/{types-CJ0zqPXF.d.cts → types-BDisBwnf.d.ts} +3 -4
- package/package.json +1 -1
- package/readme.md +21 -1
- package/dist/chunk-5GT6L4BE.js.map +0 -1
- package/dist/chunk-5LWU5T2C.js.map +0 -1
- package/dist/chunk-5MVIF5GP.js.map +0 -1
- package/dist/chunk-AUVYU7M5.js.map +0 -1
- package/dist/chunk-DIWGVTWO.js.map +0 -1
- package/dist/chunk-F3PI7A6V.js.map +0 -1
- package/dist/chunk-HAXGOTZO.js.map +0 -1
- package/dist/chunk-HEXJCQRO.js.map +0 -1
- package/dist/chunk-KQOR3C7E.js.map +0 -1
- package/dist/chunk-NADLY6LM.js.map +0 -1
- package/dist/chunk-NJU7XT54.js.map +0 -1
- package/dist/chunk-OBGYXMZ3.js +0 -218
- package/dist/chunk-OBGYXMZ3.js.map +0 -1
- package/dist/chunk-PSMGRUU5.js.map +0 -1
- package/dist/chunk-U2AL7XFY.js.map +0 -1
- package/dist/chunk-U4P2VJCV.js.map +0 -1
- package/dist/chunk-VPF7M2PB.js.map +0 -1
- package/dist/chunk-XA74HBMH.js.map +0 -1
- package/dist/chunk-ZTP2JSQ6.js.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -11,7 +11,7 @@ export { default as ToolTip, ToolTipPlacement, ToolTipProps } from './tooltip.cj
|
|
|
11
11
|
export { default as Card, CardMediaProps, CardOverflow, CardProps, CardSectionProps, CardTextProps } from './card.cjs';
|
|
12
12
|
export { default as Block, BlockBlur, BlockProps } from './block.cjs';
|
|
13
13
|
export { default as Masonry, MasonryProps, MasonryRenderItem } from './masonry.cjs';
|
|
14
|
-
import { P as PropIcon, G as GlobalSize, a as Palette } from './global.types-
|
|
14
|
+
import { P as PropIcon, G as GlobalSize, a as Palette } from './global.types-CjO3VRWu.cjs';
|
|
15
15
|
export { default as AppBar, AppBarNavItem, AppBarProps } from './app-bar.cjs';
|
|
16
16
|
export { default as Hero, HeroProps } from './hero.cjs';
|
|
17
17
|
export { Avatar, default as ProfileCard, ProfileCardLayout, ProfileCardProps, SocialLink } from './profileCard.cjs';
|
|
@@ -25,9 +25,9 @@ import { NotificationArgs } from './notification.cjs';
|
|
|
25
25
|
export { default as Notification, NotificationPlacement, NotificationProps, NotificationType, NotificationVariant } from './notification.cjs';
|
|
26
26
|
export { default as Progress, ProgressProps, ProgressStatus, ProgressType } from './progress.cjs';
|
|
27
27
|
export { default as TimeLine, TimeLineAlign, TimeLineAxis, TimeLineDensity, TimeLineDotSize, TimeLineDotVariant, TimeLineItem, TimeLineItemProps, TimeLineProps, TimeLineSide } from './timeline.cjs';
|
|
28
|
-
export { E as ExpansionPanelDensity, a as ExpansionPanelItem, b as ExpansionPanelItemProps, c as ExpansionPanelProps, d as ExpansionPanelRounded, e as ExpansionPanelValue, f as ExpansionPanelVariant } from './ExpansionPanelItem-
|
|
29
|
-
export { L as ListDensity, a as ListItem, b as ListItemProps, c as ListLines, d as ListRounded, e as ListVariant } from './index-
|
|
30
|
-
import './types-
|
|
28
|
+
export { E as ExpansionPanelDensity, a as ExpansionPanelItem, b as ExpansionPanelItemProps, c as ExpansionPanelProps, d as ExpansionPanelRounded, e as ExpansionPanelValue, f as ExpansionPanelVariant } from './ExpansionPanelItem-By0ziOVw.cjs';
|
|
29
|
+
export { L as ListDensity, a as ListItem, b as ListItemProps, c as ListLines, d as ListRounded, e as ListVariant } from './index-C19gZTrO.cjs';
|
|
30
|
+
import './types-B4puM-zr.cjs';
|
|
31
31
|
|
|
32
32
|
interface DrawerProps extends react.HTMLAttributes<HTMLDivElement> {
|
|
33
33
|
location?: 'left' | 'right';
|
package/dist/index.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { default as ToolTip, ToolTipPlacement, ToolTipProps } from './tooltip.js
|
|
|
11
11
|
export { default as Card, CardMediaProps, CardOverflow, CardProps, CardSectionProps, CardTextProps } from './card.js';
|
|
12
12
|
export { default as Block, BlockBlur, BlockProps } from './block.js';
|
|
13
13
|
export { default as Masonry, MasonryProps, MasonryRenderItem } from './masonry.js';
|
|
14
|
-
import { P as PropIcon, G as GlobalSize, a as Palette } from './global.types-
|
|
14
|
+
import { P as PropIcon, G as GlobalSize, a as Palette } from './global.types-CjO3VRWu.js';
|
|
15
15
|
export { default as AppBar, AppBarNavItem, AppBarProps } from './app-bar.js';
|
|
16
16
|
export { default as Hero, HeroProps } from './hero.js';
|
|
17
17
|
export { Avatar, default as ProfileCard, ProfileCardLayout, ProfileCardProps, SocialLink } from './profileCard.js';
|
|
@@ -25,9 +25,9 @@ import { NotificationArgs } from './notification.js';
|
|
|
25
25
|
export { default as Notification, NotificationPlacement, NotificationProps, NotificationType, NotificationVariant } from './notification.js';
|
|
26
26
|
export { default as Progress, ProgressProps, ProgressStatus, ProgressType } from './progress.js';
|
|
27
27
|
export { default as TimeLine, TimeLineAlign, TimeLineAxis, TimeLineDensity, TimeLineDotSize, TimeLineDotVariant, TimeLineItem, TimeLineItemProps, TimeLineProps, TimeLineSide } from './timeline.js';
|
|
28
|
-
export { E as ExpansionPanelDensity, a as ExpansionPanelItem, b as ExpansionPanelItemProps, c as ExpansionPanelProps, d as ExpansionPanelRounded, e as ExpansionPanelValue, f as ExpansionPanelVariant } from './ExpansionPanelItem-
|
|
29
|
-
export { L as ListDensity, a as ListItem, b as ListItemProps, c as ListLines, d as ListRounded, e as ListVariant } from './index-
|
|
30
|
-
import './types-
|
|
28
|
+
export { E as ExpansionPanelDensity, a as ExpansionPanelItem, b as ExpansionPanelItemProps, c as ExpansionPanelProps, d as ExpansionPanelRounded, e as ExpansionPanelValue, f as ExpansionPanelVariant } from './ExpansionPanelItem-CFfWX7ia.js';
|
|
29
|
+
export { L as ListDensity, a as ListItem, b as ListItemProps, c as ListLines, d as ListRounded, e as ListVariant } from './index-BgLrabTA.js';
|
|
30
|
+
import './types-BDisBwnf.js';
|
|
31
31
|
|
|
32
32
|
interface DrawerProps extends react.HTMLAttributes<HTMLDivElement> {
|
|
33
33
|
location?: 'left' | 'right';
|
package/dist/index.js
CHANGED
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
export { Notification_default as Notification } from './chunk-S7VLFCLP.js';
|
|
2
2
|
export { Progress_default as Progress } from './chunk-Z5A2OIDI.js';
|
|
3
|
-
export { TimeLine_default as TimeLine, TimeLineItem } from './chunk-
|
|
4
|
-
export { Input_default as Input } from './chunk-
|
|
3
|
+
export { TimeLine_default as TimeLine, TimeLineItem } from './chunk-LZYVTGJD.js';
|
|
4
|
+
export { Input_default as Input } from './chunk-UGG35FPX.js';
|
|
5
5
|
export { TextArea_default as TextArea } from './chunk-67TAA2MA.js';
|
|
6
|
-
export { Slider_default as Slider } from './chunk-
|
|
7
|
-
export { Switch_default as Switch } from './chunk-
|
|
8
|
-
export { Select_default as Select } from './chunk-
|
|
6
|
+
export { Slider_default as Slider } from './chunk-KK33I72F.js';
|
|
7
|
+
export { Switch_default as Switch } from './chunk-GKZFVQW6.js';
|
|
8
|
+
export { Select_default as Select } from './chunk-TRR7TDVA.js';
|
|
9
9
|
import './chunk-6SKW43XI.js';
|
|
10
|
-
export { Icon_default as Icon } from './chunk-
|
|
11
|
-
export { Hero_default as Hero } from './chunk-
|
|
12
|
-
export { ProfileCard_default as ProfileCard } from './chunk-
|
|
13
|
-
export { ExpansionPanel_default as ExpansionPanel } from './chunk-
|
|
14
|
-
export { ExpansionPanelItem_default as ExpansionPanelItem } from './chunk-
|
|
15
|
-
export { Dialog_default as Dialog } from './chunk-
|
|
16
|
-
export { ToolTip_default as ToolTip } from './chunk-
|
|
17
|
-
export { Card_default as Card } from './chunk-
|
|
18
|
-
export { Block_default as Block } from './chunk-
|
|
10
|
+
export { Icon_default as Icon } from './chunk-LWCRKQEV.js';
|
|
11
|
+
export { Hero_default as Hero } from './chunk-7TQUULYB.js';
|
|
12
|
+
export { ProfileCard_default as ProfileCard } from './chunk-LRWM4ZWZ.js';
|
|
13
|
+
export { ExpansionPanel_default as ExpansionPanel } from './chunk-LSIAP7ZZ.js';
|
|
14
|
+
export { ExpansionPanelItem_default as ExpansionPanelItem } from './chunk-Q7VTD6NY.js';
|
|
15
|
+
export { Dialog_default as Dialog } from './chunk-DMI64Z53.js';
|
|
16
|
+
export { ToolTip_default as ToolTip } from './chunk-O3VFEMJ7.js';
|
|
17
|
+
export { Card_default as Card } from './chunk-7YZBEH2K.js';
|
|
18
|
+
export { Block_default as Block } from './chunk-4NKKWBMP.js';
|
|
19
19
|
export { AppBar_default as AppBar } from './chunk-67BAO35I.js';
|
|
20
|
-
export { Masonry_default as Masonry } from './chunk-
|
|
21
|
-
export { Button_default as Button } from './chunk-
|
|
22
|
-
export { Chip_default as Chip } from './chunk-
|
|
23
|
-
import { resolveIconClassName } from './chunk-
|
|
20
|
+
export { Masonry_default as Masonry } from './chunk-UK6RSS4J.js';
|
|
21
|
+
export { Button_default as Button } from './chunk-HVGCLUW2.js';
|
|
22
|
+
export { Chip_default as Chip } from './chunk-KVXZEMAH.js';
|
|
23
|
+
import { resolveIconClassName } from './chunk-HGECC2JH.js';
|
|
24
24
|
import './chunk-IEILIKS2.js';
|
|
25
|
-
export { Badge_default as Badge } from './chunk-
|
|
26
|
-
export { Alert_default as Alert } from './chunk-
|
|
27
|
-
export { List_default as List } from './chunk-
|
|
25
|
+
export { Badge_default as Badge } from './chunk-OQYPWJDA.js';
|
|
26
|
+
export { Alert_default as Alert } from './chunk-ZLBGPLM3.js';
|
|
27
|
+
export { List_default as List } from './chunk-DUEQOGNR.js';
|
|
28
28
|
export { Item_default as ListItem } from './chunk-L4UUC4EF.js';
|
|
29
|
-
export { Menu_default as Menu } from './chunk-
|
|
29
|
+
export { Menu_default as Menu } from './chunk-H4742H2N.js';
|
|
30
30
|
import * as React3 from 'react';
|
|
31
31
|
import { isValidElement, useState } from 'react';
|
|
32
32
|
import { createPortal } from 'react-dom';
|
|
@@ -143,7 +143,7 @@ var Drawer = React3.forwardRef((props, ref) => {
|
|
|
143
143
|
Drawer.displayName = "Drawer";
|
|
144
144
|
var Drawer_default = Drawer;
|
|
145
145
|
var overlayBaseClasses2 = "inset-0 z-[55] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100";
|
|
146
|
-
var scrimClasses = "bg-gray-900/55 backdrop-blur-[2px]";
|
|
146
|
+
var scrimClasses = "bg-gray-900/55 dark:bg-black/70 backdrop-blur-[2px]";
|
|
147
147
|
var Overlay = React3.forwardRef((props, ref) => {
|
|
148
148
|
const {
|
|
149
149
|
open,
|
|
@@ -229,77 +229,77 @@ var sizeClasses = {
|
|
|
229
229
|
"x-large": { tab: "h-11 px-4 text-base", icon: "text-lg" }
|
|
230
230
|
};
|
|
231
231
|
var variantListClasses = {
|
|
232
|
-
line: "border-b border-gray-200",
|
|
233
|
-
card: "rounded-xl bg-gray-100 p-1",
|
|
234
|
-
pill: "rounded-full bg-gray-100/80 p-1"
|
|
232
|
+
line: "border-b border-gray-200 dark:border-gray-700",
|
|
233
|
+
card: "rounded-xl bg-gray-100 p-1 dark:bg-gray-800/70",
|
|
234
|
+
pill: "rounded-full bg-gray-100/80 p-1 dark:bg-gray-800/70"
|
|
235
235
|
};
|
|
236
236
|
var variantTabBaseClasses = {
|
|
237
237
|
line: "border-b-2 border-transparent -mb-px",
|
|
238
|
-
card: "rounded-lg border border-transparent bg-white/70",
|
|
238
|
+
card: "rounded-lg border border-transparent bg-white/70 dark:bg-gray-900/70",
|
|
239
239
|
pill: "rounded-full"
|
|
240
240
|
};
|
|
241
241
|
var paletteClasses = {
|
|
242
242
|
primary: {
|
|
243
243
|
text: "text-primary",
|
|
244
244
|
border: "border-primary",
|
|
245
|
-
bg: "bg-primary/10",
|
|
246
|
-
ring: "ring-primary/30",
|
|
245
|
+
bg: "bg-primary/10 dark:bg-primary/20",
|
|
246
|
+
ring: "ring-primary/30 dark:ring-primary/40",
|
|
247
247
|
ink: "bg-primary"
|
|
248
248
|
},
|
|
249
249
|
neutral: {
|
|
250
|
-
text: "text-gray-900",
|
|
251
|
-
border: "border-gray-900",
|
|
252
|
-
bg: "bg-gray-100",
|
|
253
|
-
ring: "ring-gray-900/20",
|
|
254
|
-
ink: "bg-gray-900"
|
|
250
|
+
text: "text-gray-900 dark:text-gray-100",
|
|
251
|
+
border: "border-gray-900 dark:border-gray-100",
|
|
252
|
+
bg: "bg-gray-100 dark:bg-gray-800",
|
|
253
|
+
ring: "ring-gray-900/20 dark:ring-gray-200/25",
|
|
254
|
+
ink: "bg-gray-900 dark:bg-gray-100"
|
|
255
255
|
},
|
|
256
256
|
info: {
|
|
257
|
-
text: "text-sky-600",
|
|
258
|
-
border: "border-sky-500",
|
|
259
|
-
bg: "bg-sky-50",
|
|
260
|
-
ring: "ring-sky-500/20",
|
|
257
|
+
text: "text-sky-600 dark:text-sky-300",
|
|
258
|
+
border: "border-sky-500 dark:border-sky-400",
|
|
259
|
+
bg: "bg-sky-50 dark:bg-sky-900/30",
|
|
260
|
+
ring: "ring-sky-500/20 dark:ring-sky-400/30",
|
|
261
261
|
ink: "bg-sky-500"
|
|
262
262
|
},
|
|
263
263
|
success: {
|
|
264
|
-
text: "text-emerald-600",
|
|
265
|
-
border: "border-emerald-500",
|
|
266
|
-
bg: "bg-emerald-50",
|
|
267
|
-
ring: "ring-emerald-500/20",
|
|
264
|
+
text: "text-emerald-600 dark:text-emerald-300",
|
|
265
|
+
border: "border-emerald-500 dark:border-emerald-400",
|
|
266
|
+
bg: "bg-emerald-50 dark:bg-emerald-900/30",
|
|
267
|
+
ring: "ring-emerald-500/20 dark:ring-emerald-400/30",
|
|
268
268
|
ink: "bg-emerald-500"
|
|
269
269
|
},
|
|
270
270
|
warning: {
|
|
271
|
-
text: "text-amber-600",
|
|
272
|
-
border: "border-amber-500",
|
|
273
|
-
bg: "bg-amber-50",
|
|
274
|
-
ring: "ring-amber-500/20",
|
|
271
|
+
text: "text-amber-600 dark:text-amber-300",
|
|
272
|
+
border: "border-amber-500 dark:border-amber-400",
|
|
273
|
+
bg: "bg-amber-50 dark:bg-amber-900/30",
|
|
274
|
+
ring: "ring-amber-500/20 dark:ring-amber-400/30",
|
|
275
275
|
ink: "bg-amber-500"
|
|
276
276
|
},
|
|
277
277
|
danger: {
|
|
278
|
-
text: "text-red-600",
|
|
279
|
-
border: "border-red-500",
|
|
280
|
-
bg: "bg-red-50",
|
|
281
|
-
ring: "ring-red-500/20",
|
|
278
|
+
text: "text-red-600 dark:text-red-300",
|
|
279
|
+
border: "border-red-500 dark:border-red-400",
|
|
280
|
+
bg: "bg-red-50 dark:bg-red-900/30",
|
|
281
|
+
ring: "ring-red-500/20 dark:ring-red-400/30",
|
|
282
282
|
ink: "bg-red-500"
|
|
283
283
|
},
|
|
284
284
|
surface: {
|
|
285
|
-
text: "text-gray-900",
|
|
286
|
-
border: "border-gray-300",
|
|
287
|
-
bg: "bg-white",
|
|
288
|
-
ring: "ring-gray-300/30",
|
|
289
|
-
ink: "bg-gray-400"
|
|
285
|
+
text: "text-gray-900 dark:text-gray-100",
|
|
286
|
+
border: "border-gray-300 dark:border-gray-600",
|
|
287
|
+
bg: "bg-white dark:bg-gray-900",
|
|
288
|
+
ring: "ring-gray-300/30 dark:ring-gray-600/40",
|
|
289
|
+
ink: "bg-gray-400 dark:bg-gray-500"
|
|
290
290
|
},
|
|
291
291
|
bw: {
|
|
292
|
-
text: "text-black",
|
|
293
|
-
border: "border-black",
|
|
294
|
-
bg: "bg-black/10",
|
|
295
|
-
ring: "ring-black/20",
|
|
296
|
-
ink: "bg-black"
|
|
292
|
+
text: "text-black dark:text-white",
|
|
293
|
+
border: "border-black dark:border-white",
|
|
294
|
+
bg: "bg-black/10 dark:bg-white/10",
|
|
295
|
+
ring: "ring-black/20 dark:ring-white/30",
|
|
296
|
+
ink: "bg-black dark:bg-white"
|
|
297
297
|
}
|
|
298
298
|
};
|
|
299
299
|
var panelVariantClasses = {
|
|
300
300
|
line: "pt-4",
|
|
301
|
-
card: "mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm",
|
|
302
|
-
pill: "mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4"
|
|
301
|
+
card: "mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-gray-900",
|
|
302
|
+
pill: "mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4 dark:border-gray-700 dark:bg-gray-900/90"
|
|
303
303
|
};
|
|
304
304
|
var isExtraContentObject = (value) => {
|
|
305
305
|
return !!value && typeof value === "object" && !React3.isValidElement(value) && ("left" in value || "right" in value);
|
|
@@ -475,7 +475,7 @@ var Tabs = React3.forwardRef((props, ref) => {
|
|
|
475
475
|
...rest,
|
|
476
476
|
id,
|
|
477
477
|
ref,
|
|
478
|
-
className: twMerge("tabs flex w-full flex-col text-gray-900", className),
|
|
478
|
+
className: twMerge("tabs flex w-full flex-col text-gray-900 dark:text-gray-100", className),
|
|
479
479
|
children: [
|
|
480
480
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
481
481
|
extraLeft ? /* @__PURE__ */ jsx("div", { className: "flex items-center", children: extraLeft }) : null,
|
|
@@ -496,8 +496,8 @@ var Tabs = React3.forwardRef((props, ref) => {
|
|
|
496
496
|
const isActive = tab.value === resolvedActive;
|
|
497
497
|
const sizeClass = sizeClasses[size] ?? sizeClasses.medium;
|
|
498
498
|
const iconNode = resolveIconNode(tab.icon, size);
|
|
499
|
-
const badgeNode = tab.badge ? /* @__PURE__ */ jsx("span", { className: "rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700", children: tab.badge }) : null;
|
|
500
|
-
const activeText = isActive ? palette.text : "text-gray-600";
|
|
499
|
+
const badgeNode = tab.badge ? /* @__PURE__ */ jsx("span", { className: "rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700 dark:bg-gray-700 dark:text-gray-200", children: tab.badge }) : null;
|
|
500
|
+
const activeText = isActive ? palette.text : "text-gray-600 dark:text-gray-300";
|
|
501
501
|
const activeBorder = isActive ? palette.border : "border-transparent";
|
|
502
502
|
const activeBg = isActive ? palette.bg : void 0;
|
|
503
503
|
const activeRing = isActive ? palette.ring : void 0;
|
|
@@ -523,12 +523,12 @@ var Tabs = React3.forwardRef((props, ref) => {
|
|
|
523
523
|
}
|
|
524
524
|
},
|
|
525
525
|
className: twMerge(
|
|
526
|
-
"inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2",
|
|
526
|
+
"inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900",
|
|
527
527
|
sizeClass.tab,
|
|
528
528
|
variantTabBaseClasses[variant],
|
|
529
529
|
variantClasses[variant],
|
|
530
530
|
activeRing ? `ring-1 ${activeRing}` : void 0,
|
|
531
|
-
tab.disabled ? "cursor-not-allowed text-gray-400 opacity-60" : "hover:text-gray-900",
|
|
531
|
+
tab.disabled ? "cursor-not-allowed text-gray-400 dark:text-gray-500 opacity-60" : "hover:text-gray-900 dark:hover:text-gray-100",
|
|
532
532
|
tab.tabClassName
|
|
533
533
|
),
|
|
534
534
|
"data-state": isActive ? "active" : "inactive",
|
|
@@ -585,7 +585,7 @@ var Tab = React3.forwardRef((props, ref) => {
|
|
|
585
585
|
"aria-labelledby": __tabsTabId,
|
|
586
586
|
"aria-hidden": context ? !isActive : void 0,
|
|
587
587
|
hidden: context ? !isActive : void 0,
|
|
588
|
-
className: twMerge("tabs-panel text-gray-900", className, panelClassName),
|
|
588
|
+
className: twMerge("tabs-panel text-gray-900 dark:text-gray-100", className, panelClassName),
|
|
589
589
|
"data-state": isActive ? "active" : "inactive",
|
|
590
590
|
"data-disabled": disabled || void 0,
|
|
591
591
|
children
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Containment/Drawer/index.tsx","../src/Containment/Overlay/index.tsx","../src/Containment/Tabs/context.ts","../src/Containment/Tabs/index.tsx","../src/Feedback/Notification/useNotification.ts"],"names":["React","overlayBaseClasses","React2","jsx","twMerge","createPortal","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'fixed inset-0 z-[55] bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst temporaryContainerBaseClasses =\n 'fixed inset-y-0 z-[60] flex max-w-full transition-transform duration-200';\nconst staticContainerBaseClasses = 'relative flex h-full max-w-full';\nconst drawerBaseClasses =\n 'flex h-full w-full flex-col bg-white text-gray-900 shadow-xl shadow-black/10 ring-1 ring-black/5 focus-visible:outline-none dark:bg-gray-900 dark:text-gray-100 dark:ring-white/10';\n\nconst resolveSizeValue = (value?: string | number) => {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nexport interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {\n location?: 'left' | 'right';\n floating?: boolean;\n temporary?: boolean;\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n width?: string | number;\n onClose?: () => void;\n containerClassName?: string;\n overlayClassName?: string;\n overlayProps?: React.HTMLAttributes<HTMLDivElement>;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Navigation drawer container inspired by Vuetify, with temporary and floating modes.\n */\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n location = 'left',\n floating = false,\n temporary = false,\n open,\n keepMounted = false,\n scrim = true,\n width = '18rem',\n onClose,\n containerClassName,\n overlayClassName,\n overlayProps,\n portal = true,\n portalContainer,\n className,\n style,\n role,\n ...rest\n } = props;\n\n const isOpen = open ?? !temporary;\n const state = isOpen ? 'open' : 'closed';\n const shouldRender = keepMounted || isOpen || temporary;\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (resolvedStyle.width === undefined) {\n resolvedStyle.width = resolveSizeValue(width);\n }\n\n const locationClass = location === 'right' ? 'right-0' : 'left-0';\n const translateClass = isOpen\n ? 'translate-x-0'\n : location === 'right'\n ? 'translate-x-full'\n : '-translate-x-full';\n\n const floatingClasses = floating\n ? 'rounded-2xl shadow-2xl shadow-black/20 ring-1 ring-black/10 dark:ring-white/10'\n : undefined;\n const borderClasses =\n !floating && !temporary\n ? location === 'right'\n ? 'border-l border-gray-200 dark:border-gray-800'\n : 'border-r border-gray-200 dark:border-gray-800'\n : undefined;\n\n const {\n className: overlayExtraClassName,\n onClick: overlayOnClick,\n ...restOverlayProps\n } = overlayProps ?? {};\n\n const overlayNode = temporary && scrim && shouldRender ? (\n <div\n {...restOverlayProps}\n className={twMerge(\n overlayBaseClasses,\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n overlayClassName,\n overlayExtraClassName\n )}\n onClick={event => {\n overlayOnClick?.(event);\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n data-state={state}\n aria-hidden\n />\n ) : null;\n\n const drawerNode = shouldRender ? (\n <div\n className={twMerge(\n temporary ? temporaryContainerBaseClasses : staticContainerBaseClasses,\n temporary ? locationClass : undefined,\n temporary ? translateClass : undefined,\n temporary && !isOpen ? 'pointer-events-none' : undefined,\n temporary && floating ? 'p-4' : undefined,\n !temporary && location === 'right' ? 'ml-auto' : undefined,\n containerClassName\n )}\n data-state={state}\n aria-hidden={temporary ? !isOpen : undefined}\n >\n <div\n {...rest}\n ref={ref}\n role={role ?? 'navigation'}\n className={twMerge(drawerBaseClasses, floatingClasses, borderClasses, className)}\n style={resolvedStyle}\n data-state={state}\n >\n {props.children}\n </div>\n </div>\n ) : null;\n\n const outputNode =\n temporary && portal && resolvedPortalContainer && drawerNode\n ? createPortal(\n <>\n {overlayNode}\n {drawerNode}\n </>,\n resolvedPortalContainer\n )\n : (\n <>\n {overlayNode}\n {drawerNode}\n </>\n );\n\n return outputNode;\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'inset-0 z-[55] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst scrimClasses = 'bg-gray-900/55 backdrop-blur-[2px]';\n\nexport interface OverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n /** Render as absolute (inside parent) instead of fixed (viewport). */\n container?: boolean;\n onClose?: () => void;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Overlay layer with optional scrim that renders arbitrary children.\n */\nconst Overlay = React.forwardRef<HTMLDivElement, OverlayProps>((props, ref) => {\n const {\n open,\n keepMounted = false,\n scrim = true,\n container = false,\n onClose,\n portal = false,\n portalContainer,\n className,\n role,\n children,\n ...rest\n } = props;\n\n const isOpen = open ?? true;\n const shouldRender = keepMounted || isOpen;\n const state = isOpen ? 'open' : 'closed';\n\n if (!shouldRender) {\n return null;\n }\n\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const overlayNode = (\n <div\n {...rest}\n ref={ref}\n role={role ?? 'presentation'}\n className={twMerge(\n overlayBaseClasses,\n container ? 'absolute' : 'fixed',\n scrim ? scrimClasses : 'bg-transparent backdrop-blur-0',\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n className\n )}\n data-state={state}\n onClick={event => {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n >\n {children}\n </div>\n );\n\n const shouldPortal = portal && !container;\n\n return shouldPortal && resolvedPortalContainer\n ? createPortal(overlayNode, resolvedPortalContainer)\n : overlayNode;\n});\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import { isValidElement } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TabProps } from './types.tabs';\n\nconst TABS_TAB_MARKER = '__isTabsTab';\n\ntype MarkerTarget = Record<string | number | symbol, unknown> & {\n type?: unknown;\n};\n\nconst hasMarker = (type: unknown): boolean => {\n if (!type || (typeof type !== 'function' && typeof type !== 'object')) {\n return false;\n }\n\n if ((type as MarkerTarget)[TABS_TAB_MARKER]) {\n return true;\n }\n\n const innerType = (type as MarkerTarget).type;\n if (innerType && innerType !== type) {\n return hasMarker(innerType);\n }\n\n return false;\n};\n\nexport const isTabsTabElement = (element: ReactNode): element is ReactElement<TabProps> => {\n if (!isValidElement(element)) {\n return false;\n }\n\n return hasMarker(element.type);\n};\n\nexport const markTabsTab = (component: unknown) => {\n if (typeof component !== 'function' && (typeof component !== 'object' || component === null)) {\n return;\n }\n\n (component as MarkerTarget)[TABS_TAB_MARKER] = true;\n};\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../Chip/states.chip';\nimport { isTabsTabElement, markTabsTab } from './context';\nimport type {\n TabProps,\n TabsContextValue,\n TabsExtraContent,\n TabsInternalProps,\n TabsProps,\n TabsSize,\n TabsValue,\n TabsVariant\n} from './types.tabs';\n\nconst sizeClasses: Record<TabsSize, { tab: string; icon: string }> = {\n 'x-small': { tab: 'h-7 px-2 text-xs', icon: 'text-sm' },\n small: { tab: 'h-8 px-2.5 text-sm', icon: 'text-base' },\n medium: { tab: 'h-9 px-3 text-sm', icon: 'text-base' },\n large: { tab: 'h-10 px-3.5 text-base', icon: 'text-lg' },\n 'x-large': { tab: 'h-11 px-4 text-base', icon: 'text-lg' }\n};\n\nconst variantListClasses: Record<TabsVariant, string> = {\n line: 'border-b border-gray-200',\n card: 'rounded-xl bg-gray-100 p-1',\n pill: 'rounded-full bg-gray-100/80 p-1'\n};\n\nconst variantTabBaseClasses: Record<TabsVariant, string> = {\n line: 'border-b-2 border-transparent -mb-px',\n card: 'rounded-lg border border-transparent bg-white/70',\n pill: 'rounded-full'\n};\n\nconst paletteClasses: Record<Palette, { text: string; border: string; bg: string; ring: string; ink: string }> = {\n primary: {\n text: 'text-primary',\n border: 'border-primary',\n bg: 'bg-primary/10',\n ring: 'ring-primary/30',\n ink: 'bg-primary'\n },\n neutral: {\n text: 'text-gray-900',\n border: 'border-gray-900',\n bg: 'bg-gray-100',\n ring: 'ring-gray-900/20',\n ink: 'bg-gray-900'\n },\n info: {\n text: 'text-sky-600',\n border: 'border-sky-500',\n bg: 'bg-sky-50',\n ring: 'ring-sky-500/20',\n ink: 'bg-sky-500'\n },\n success: {\n text: 'text-emerald-600',\n border: 'border-emerald-500',\n bg: 'bg-emerald-50',\n ring: 'ring-emerald-500/20',\n ink: 'bg-emerald-500'\n },\n warning: {\n text: 'text-amber-600',\n border: 'border-amber-500',\n bg: 'bg-amber-50',\n ring: 'ring-amber-500/20',\n ink: 'bg-amber-500'\n },\n danger: {\n text: 'text-red-600',\n border: 'border-red-500',\n bg: 'bg-red-50',\n ring: 'ring-red-500/20',\n ink: 'bg-red-500'\n },\n surface: {\n text: 'text-gray-900',\n border: 'border-gray-300',\n bg: 'bg-white',\n ring: 'ring-gray-300/30',\n ink: 'bg-gray-400'\n },\n bw: {\n text: 'text-black',\n border: 'border-black',\n bg: 'bg-black/10',\n ring: 'ring-black/20',\n ink: 'bg-black'\n }\n};\n\nconst panelVariantClasses: Record<TabsVariant, string> = {\n line: 'pt-4',\n card: 'mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm',\n pill: 'mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4'\n};\n\nconst isExtraContentObject = (value: TabsExtraContent): value is { left?: React.ReactNode; right?: React.ReactNode } => {\n return (\n !!value &&\n typeof value === 'object' &&\n !React.isValidElement(value) &&\n ('left' in (value as Record<string, unknown>) || 'right' in (value as Record<string, unknown>))\n );\n};\n\nconst resolveFirstEnabledTab = (tabs: TabsDescriptor[]): TabsValue | undefined =>\n tabs.find(tab => !tab.disabled)?.value;\n\nconst clampActive = (value: TabsValue | undefined, tabs: TabsDescriptor[]): TabsValue | undefined => {\n if (value === undefined) {\n return resolveFirstEnabledTab(tabs);\n }\n\n const match = tabs.find(tab => tab.value === value);\n if (!match || match.disabled) {\n return resolveFirstEnabledTab(tabs);\n }\n\n return value;\n};\n\nconst resolveIconNode = (icon?: PropIcon, size?: TabsSize) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={twMerge(iconClass, size ? sizeClasses[size].icon : undefined)} aria-hidden /> : null;\n};\n\ntype TabsDescriptor = {\n element: React.ReactElement<TabProps>;\n index: number;\n value: TabsValue;\n label: React.ReactNode;\n disabled?: boolean;\n icon?: PropIcon;\n badge?: React.ReactNode;\n tabClassName?: string;\n panelClassName?: string;\n tabId: string;\n panelId: string;\n forceRender?: boolean;\n};\n\nconst collectTabs = (children: React.ReactNode, tabsId: string): TabsDescriptor[] => {\n const tabs: TabsDescriptor[] = [];\n let index = 0;\n\n const walk = (node: React.ReactNode) => {\n if (Array.isArray(node)) {\n node.forEach(walk);\n return;\n }\n\n if (!isTabsTabElement(node)) {\n if (React.isValidElement(node)) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n walk(props.children);\n }\n }\n return;\n }\n\n const tabIndex = index++;\n const value = node.props.value ?? tabIndex;\n const tabId = `${tabsId}-tab-${tabIndex}`;\n const panelId = `${tabsId}-panel-${tabIndex}`;\n\n tabs.push({\n element: node,\n index: tabIndex,\n value,\n label: node.props.label,\n disabled: node.props.disabled,\n icon: node.props.icon,\n badge: node.props.badge,\n tabClassName: node.props.tabClassName,\n panelClassName: node.props.panelClassName,\n tabId,\n panelId,\n forceRender: node.props.forceRender\n });\n };\n\n walk(children);\n return tabs;\n};\n\nconst injectTabs = (\n children: React.ReactNode,\n context: TabsContextValue,\n tabs: TabsDescriptor[]\n): React.ReactNode => {\n let index = 0;\n\n const walk = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n let changed = false;\n const next = node.map(child => {\n const mapped = walk(child);\n if (mapped !== child) {\n changed = true;\n }\n return mapped;\n });\n return changed ? next : node;\n }\n\n if (!React.isValidElement(node)) {\n return node;\n }\n\n if (isTabsTabElement(node)) {\n const tab = tabs[index++];\n if (!tab) {\n return node;\n }\n const injectedProps: Partial<TabProps & TabsInternalProps> = {\n value: tab.value,\n __tabsContext: context,\n __tabsValue: tab.value,\n __tabsIndex: tab.index,\n __tabsTabId: tab.tabId,\n __tabsPanelId: tab.panelId\n };\n return React.cloneElement(node, injectedProps);\n }\n\n if (node.props) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n const mappedChildren = walk(props.children);\n if (mappedChildren !== props.children) {\n return React.cloneElement(node, undefined, mappedChildren);\n }\n }\n }\n\n return node;\n };\n\n return walk(children);\n};\n\nconst handleTabListKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = event;\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(key)) {\n return;\n }\n\n const tabs = Array.from(event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'))\n .filter(tab => !tab.disabled);\n\n if (!tabs.length) {\n return;\n }\n\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement);\n let nextIndex = currentIndex;\n\n if (key === 'ArrowRight') {\n nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % tabs.length;\n }\n\n if (key === 'ArrowLeft') {\n nextIndex = currentIndex === -1 ? tabs.length - 1 : (currentIndex - 1 + tabs.length) % tabs.length;\n }\n\n if (key === 'Home') {\n nextIndex = 0;\n }\n\n if (key === 'End') {\n nextIndex = tabs.length - 1;\n }\n\n tabs[nextIndex]?.focus();\n event.preventDefault();\n};\n\n/**\n * Tabbed container inspired by Ant Design with line, card, and pill styles.\n */\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const {\n activeKey,\n defaultActiveKey,\n onChange,\n variant = 'line',\n size = 'medium',\n color = 'primary',\n align = 'start',\n tabBarGutter = 8,\n tabBarExtraContent,\n tabBarClassName,\n destroyInactiveTabPane = false,\n keepMounted = false,\n className,\n children,\n id,\n ...rest\n } = props;\n\n const tabsId = typeof id === 'string' && id.trim().length ? id : 'tabs';\n const tabs = collectTabs(children, tabsId);\n const resolvedActive = clampActive(activeKey ?? defaultActiveKey, tabs);\n\n const handleActivate = (value: TabsValue) => {\n onChange?.(value);\n };\n\n const extraContent = tabBarExtraContent;\n const extraLeft = isExtraContentObject(extraContent) ? extraContent.left : null;\n const extraRight = isExtraContentObject(extraContent) ? extraContent.right : extraContent;\n\n const palette = paletteClasses[color] ?? paletteClasses.primary;\n\n const context: TabsContextValue = {\n activeKey: resolvedActive,\n onChange: handleActivate,\n variant,\n size,\n color,\n destroyInactiveTabPane,\n keepMounted\n };\n\n const enhancedChildren = injectTabs(children, context, tabs);\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={twMerge('tabs flex w-full flex-col text-gray-900', className)}\n >\n <div className='flex items-center gap-3'>\n {extraLeft ? <div className='flex items-center'>{extraLeft}</div> : null}\n <div\n role='tablist'\n aria-orientation='horizontal'\n onKeyDown={handleTabListKeyDown}\n className={twMerge(\n 'flex min-w-0 flex-1 items-center gap-2 overflow-x-auto',\n align === 'center' ? 'justify-center' : align === 'end' ? 'justify-end' : undefined,\n variantListClasses[variant],\n tabBarClassName\n )}\n style={{ gap: tabBarGutter }}\n >\n {tabs.map(tab => {\n const isActive = tab.value === resolvedActive;\n const sizeClass = sizeClasses[size] ?? sizeClasses.medium;\n const iconNode = resolveIconNode(tab.icon, size);\n const badgeNode = tab.badge ? (\n <span className='rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700'>\n {tab.badge}\n </span>\n ) : null;\n const activeText = isActive ? palette.text : 'text-gray-600';\n const activeBorder = isActive ? palette.border : 'border-transparent';\n const activeBg = isActive ? palette.bg : undefined;\n const activeRing = isActive ? palette.ring : undefined;\n\n const variantClasses = {\n line: twMerge(activeText, activeBorder),\n card: twMerge(activeText, activeBg, activeBorder, isActive ? 'shadow-sm' : undefined),\n pill: twMerge(activeText, activeBg)\n };\n\n return (\n <button\n key={tab.value}\n type='button'\n role='tab'\n id={tab.tabId}\n aria-selected={isActive}\n aria-controls={tab.panelId}\n aria-disabled={tab.disabled || undefined}\n disabled={tab.disabled}\n tabIndex={isActive ? 0 : -1}\n onClick={() => {\n if (!tab.disabled) {\n handleActivate(tab.value);\n }\n }}\n className={twMerge(\n 'inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2',\n sizeClass.tab,\n variantTabBaseClasses[variant],\n variantClasses[variant],\n activeRing ? `ring-1 ${activeRing}` : undefined,\n tab.disabled\n ? 'cursor-not-allowed text-gray-400 opacity-60'\n : 'hover:text-gray-900',\n tab.tabClassName\n )}\n data-state={isActive ? 'active' : 'inactive'}\n >\n {iconNode}\n <span className='truncate'>{tab.label}</span>\n {badgeNode}\n </button>\n );\n })}\n </div>\n {extraRight ? <div className='flex items-center'>{extraRight}</div> : null}\n </div>\n <div className={twMerge('min-h-0', panelVariantClasses[variant])}>{enhancedChildren}</div>\n </div>\n );\n});\n\nTabs.displayName = 'Tabs';\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps & TabsInternalProps>((props, ref) => {\n const {\n label: _label,\n value,\n disabled,\n forceRender,\n tabClassName: _tabClassName,\n panelClassName,\n className,\n children,\n __tabsContext,\n __tabsValue,\n __tabsIndex,\n __tabsTabId,\n __tabsPanelId,\n ...rest\n } = props;\n\n const context = __tabsContext;\n const resolvedValue = value ?? __tabsValue;\n const isActive = context ? context.activeKey === resolvedValue : true;\n\n const shouldRender =\n !context ||\n isActive ||\n context.keepMounted ||\n !context.destroyInactiveTabPane ||\n forceRender;\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={ref}\n role='tabpanel'\n id={__tabsPanelId}\n aria-labelledby={__tabsTabId}\n aria-hidden={context ? !isActive : undefined}\n hidden={context ? !isActive : undefined}\n className={twMerge('tabs-panel text-gray-900', className, panelClassName)}\n data-state={isActive ? 'active' : 'inactive'}\n data-disabled={disabled || undefined}\n >\n {children}\n </div>\n );\n});\n\nTab.displayName = 'Tab';\nmarkTabsTab(Tab);\n\nexport type { TabProps, TabsProps, TabsValue, TabsVariant, TabsSize } from './types.tabs';\nexport { Tab };\nexport default Tabs;\n","import { useState } from 'react';\nimport { NotificationArgs } from './types.notification';\n\nconst useNotification = (defaultMessage?: NotificationArgs) => {\n const [messages, setMessages] = useState<NotificationArgs[]>([]);\n\n const clearNotifications = (key?: string) => {\n setMessages(prev => (key ? prev.filter(notification => notification.key !== key) : []));\n };\n\n const showNotification = (notification: NotificationArgs) => {\n const key = `${Date.now()}-${Math.random()}`;\n setMessages(prev => [\n ...prev,\n {\n duration: 4000,\n onClose: () => clearNotifications(key),\n ...defaultMessage,\n ...notification,\n key\n }\n ]);\n };\n\n return { messages, showNotification };\n};\n\nexport default useNotification;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/Containment/Drawer/index.tsx","../src/Containment/Overlay/index.tsx","../src/Containment/Tabs/context.ts","../src/Containment/Tabs/index.tsx","../src/Feedback/Notification/useNotification.ts"],"names":["React","overlayBaseClasses","React2","jsx","twMerge","createPortal","jsxs"],"mappings":"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","file":"index.js","sourcesContent":["import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'fixed inset-0 z-[55] bg-gray-900/55 backdrop-blur-[2px] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst temporaryContainerBaseClasses =\n 'fixed inset-y-0 z-[60] flex max-w-full transition-transform duration-200';\nconst staticContainerBaseClasses = 'relative flex h-full max-w-full';\nconst drawerBaseClasses =\n 'flex h-full w-full flex-col bg-white text-gray-900 shadow-xl shadow-black/10 ring-1 ring-black/5 focus-visible:outline-none dark:bg-gray-900 dark:text-gray-100 dark:ring-white/10';\n\nconst resolveSizeValue = (value?: string | number) => {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n};\n\nexport interface DrawerProps extends React.HTMLAttributes<HTMLDivElement> {\n location?: 'left' | 'right';\n floating?: boolean;\n temporary?: boolean;\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n width?: string | number;\n onClose?: () => void;\n containerClassName?: string;\n overlayClassName?: string;\n overlayProps?: React.HTMLAttributes<HTMLDivElement>;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Navigation drawer container inspired by Vuetify, with temporary and floating modes.\n */\nconst Drawer = React.forwardRef<HTMLDivElement, DrawerProps>((props, ref) => {\n const {\n location = 'left',\n floating = false,\n temporary = false,\n open,\n keepMounted = false,\n scrim = true,\n width = '18rem',\n onClose,\n containerClassName,\n overlayClassName,\n overlayProps,\n portal = true,\n portalContainer,\n className,\n style,\n role,\n ...rest\n } = props;\n\n const isOpen = open ?? !temporary;\n const state = isOpen ? 'open' : 'closed';\n const shouldRender = keepMounted || isOpen || temporary;\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const resolvedStyle: React.CSSProperties = { ...style };\n if (resolvedStyle.width === undefined) {\n resolvedStyle.width = resolveSizeValue(width);\n }\n\n const locationClass = location === 'right' ? 'right-0' : 'left-0';\n const translateClass = isOpen\n ? 'translate-x-0'\n : location === 'right'\n ? 'translate-x-full'\n : '-translate-x-full';\n\n const floatingClasses = floating\n ? 'rounded-2xl shadow-2xl shadow-black/20 ring-1 ring-black/10 dark:ring-white/10'\n : undefined;\n const borderClasses =\n !floating && !temporary\n ? location === 'right'\n ? 'border-l border-gray-200 dark:border-gray-800'\n : 'border-r border-gray-200 dark:border-gray-800'\n : undefined;\n\n const {\n className: overlayExtraClassName,\n onClick: overlayOnClick,\n ...restOverlayProps\n } = overlayProps ?? {};\n\n const overlayNode = temporary && scrim && shouldRender ? (\n <div\n {...restOverlayProps}\n className={twMerge(\n overlayBaseClasses,\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n overlayClassName,\n overlayExtraClassName\n )}\n onClick={event => {\n overlayOnClick?.(event);\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n data-state={state}\n aria-hidden\n />\n ) : null;\n\n const drawerNode = shouldRender ? (\n <div\n className={twMerge(\n temporary ? temporaryContainerBaseClasses : staticContainerBaseClasses,\n temporary ? locationClass : undefined,\n temporary ? translateClass : undefined,\n temporary && !isOpen ? 'pointer-events-none' : undefined,\n temporary && floating ? 'p-4' : undefined,\n !temporary && location === 'right' ? 'ml-auto' : undefined,\n containerClassName\n )}\n data-state={state}\n aria-hidden={temporary ? !isOpen : undefined}\n >\n <div\n {...rest}\n ref={ref}\n role={role ?? 'navigation'}\n className={twMerge(drawerBaseClasses, floatingClasses, borderClasses, className)}\n style={resolvedStyle}\n data-state={state}\n >\n {props.children}\n </div>\n </div>\n ) : null;\n\n const outputNode =\n temporary && portal && resolvedPortalContainer && drawerNode\n ? createPortal(\n <>\n {overlayNode}\n {drawerNode}\n </>,\n resolvedPortalContainer\n )\n : (\n <>\n {overlayNode}\n {drawerNode}\n </>\n );\n\n return outputNode;\n});\n\nDrawer.displayName = 'Drawer';\n\nexport default Drawer;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { twMerge } from 'tailwind-merge';\n\nconst overlayBaseClasses =\n 'inset-0 z-[55] transition-opacity duration-200 data-[state=closed]:opacity-0 data-[state=open]:opacity-100';\nconst scrimClasses = 'bg-gray-900/55 dark:bg-black/70 backdrop-blur-[2px]';\n\nexport interface OverlayProps extends React.HTMLAttributes<HTMLDivElement> {\n open?: boolean;\n keepMounted?: boolean;\n scrim?: boolean;\n /** Render as absolute (inside parent) instead of fixed (viewport). */\n container?: boolean;\n onClose?: () => void;\n portal?: boolean;\n portalContainer?: Element | null;\n}\n\n/**\n * Overlay layer with optional scrim that renders arbitrary children.\n */\nconst Overlay = React.forwardRef<HTMLDivElement, OverlayProps>((props, ref) => {\n const {\n open,\n keepMounted = false,\n scrim = true,\n container = false,\n onClose,\n portal = false,\n portalContainer,\n className,\n role,\n children,\n ...rest\n } = props;\n\n const isOpen = open ?? true;\n const shouldRender = keepMounted || isOpen;\n const state = isOpen ? 'open' : 'closed';\n\n if (!shouldRender) {\n return null;\n }\n\n const resolvedPortalContainer =\n portalContainer ?? (typeof document !== 'undefined' ? document.body : null);\n\n const overlayNode = (\n <div\n {...rest}\n ref={ref}\n role={role ?? 'presentation'}\n className={twMerge(\n overlayBaseClasses,\n container ? 'absolute' : 'fixed',\n scrim ? scrimClasses : 'bg-transparent backdrop-blur-0',\n isOpen ? 'pointer-events-auto opacity-100' : 'pointer-events-none opacity-0',\n className\n )}\n data-state={state}\n onClick={event => {\n if (event.target !== event.currentTarget) {\n return;\n }\n if (!event.defaultPrevented) {\n onClose?.();\n }\n }}\n >\n {children}\n </div>\n );\n\n const shouldPortal = portal && !container;\n\n return shouldPortal && resolvedPortalContainer\n ? createPortal(overlayNode, resolvedPortalContainer)\n : overlayNode;\n});\n\nOverlay.displayName = 'Overlay';\n\nexport default Overlay;\n","import { isValidElement } from 'react';\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TabProps } from './types.tabs';\n\nconst TABS_TAB_MARKER = '__isTabsTab';\n\ntype MarkerTarget = Record<string | number | symbol, unknown> & {\n type?: unknown;\n};\n\nconst hasMarker = (type: unknown): boolean => {\n if (!type || (typeof type !== 'function' && typeof type !== 'object')) {\n return false;\n }\n\n if ((type as MarkerTarget)[TABS_TAB_MARKER]) {\n return true;\n }\n\n const innerType = (type as MarkerTarget).type;\n if (innerType && innerType !== type) {\n return hasMarker(innerType);\n }\n\n return false;\n};\n\nexport const isTabsTabElement = (element: ReactNode): element is ReactElement<TabProps> => {\n if (!isValidElement(element)) {\n return false;\n }\n\n return hasMarker(element.type);\n};\n\nexport const markTabsTab = (component: unknown) => {\n if (typeof component !== 'function' && (typeof component !== 'object' || component === null)) {\n return;\n }\n\n (component as MarkerTarget)[TABS_TAB_MARKER] = true;\n};\n","import * as React from 'react';\nimport { twMerge } from 'tailwind-merge';\nimport type { Palette, PropIcon } from '@lindle/linoardo/global.types';\nimport { resolveIconClassName } from '../Chip/states.chip';\nimport { isTabsTabElement, markTabsTab } from './context';\nimport type {\n TabProps,\n TabsContextValue,\n TabsExtraContent,\n TabsInternalProps,\n TabsProps,\n TabsSize,\n TabsValue,\n TabsVariant\n} from './types.tabs';\n\nconst sizeClasses: Record<TabsSize, { tab: string; icon: string }> = {\n 'x-small': { tab: 'h-7 px-2 text-xs', icon: 'text-sm' },\n small: { tab: 'h-8 px-2.5 text-sm', icon: 'text-base' },\n medium: { tab: 'h-9 px-3 text-sm', icon: 'text-base' },\n large: { tab: 'h-10 px-3.5 text-base', icon: 'text-lg' },\n 'x-large': { tab: 'h-11 px-4 text-base', icon: 'text-lg' }\n};\n\nconst variantListClasses: Record<TabsVariant, string> = {\n line: 'border-b border-gray-200 dark:border-gray-700',\n card: 'rounded-xl bg-gray-100 p-1 dark:bg-gray-800/70',\n pill: 'rounded-full bg-gray-100/80 p-1 dark:bg-gray-800/70'\n};\n\nconst variantTabBaseClasses: Record<TabsVariant, string> = {\n line: 'border-b-2 border-transparent -mb-px',\n card: 'rounded-lg border border-transparent bg-white/70 dark:bg-gray-900/70',\n pill: 'rounded-full'\n};\n\nconst paletteClasses: Record<Palette, { text: string; border: string; bg: string; ring: string; ink: string }> = {\n primary: {\n text: 'text-primary',\n border: 'border-primary',\n bg: 'bg-primary/10 dark:bg-primary/20',\n ring: 'ring-primary/30 dark:ring-primary/40',\n ink: 'bg-primary'\n },\n neutral: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-900 dark:border-gray-100',\n bg: 'bg-gray-100 dark:bg-gray-800',\n ring: 'ring-gray-900/20 dark:ring-gray-200/25',\n ink: 'bg-gray-900 dark:bg-gray-100'\n },\n info: {\n text: 'text-sky-600 dark:text-sky-300',\n border: 'border-sky-500 dark:border-sky-400',\n bg: 'bg-sky-50 dark:bg-sky-900/30',\n ring: 'ring-sky-500/20 dark:ring-sky-400/30',\n ink: 'bg-sky-500'\n },\n success: {\n text: 'text-emerald-600 dark:text-emerald-300',\n border: 'border-emerald-500 dark:border-emerald-400',\n bg: 'bg-emerald-50 dark:bg-emerald-900/30',\n ring: 'ring-emerald-500/20 dark:ring-emerald-400/30',\n ink: 'bg-emerald-500'\n },\n warning: {\n text: 'text-amber-600 dark:text-amber-300',\n border: 'border-amber-500 dark:border-amber-400',\n bg: 'bg-amber-50 dark:bg-amber-900/30',\n ring: 'ring-amber-500/20 dark:ring-amber-400/30',\n ink: 'bg-amber-500'\n },\n danger: {\n text: 'text-red-600 dark:text-red-300',\n border: 'border-red-500 dark:border-red-400',\n bg: 'bg-red-50 dark:bg-red-900/30',\n ring: 'ring-red-500/20 dark:ring-red-400/30',\n ink: 'bg-red-500'\n },\n surface: {\n text: 'text-gray-900 dark:text-gray-100',\n border: 'border-gray-300 dark:border-gray-600',\n bg: 'bg-white dark:bg-gray-900',\n ring: 'ring-gray-300/30 dark:ring-gray-600/40',\n ink: 'bg-gray-400 dark:bg-gray-500'\n },\n bw: {\n text: 'text-black dark:text-white',\n border: 'border-black dark:border-white',\n bg: 'bg-black/10 dark:bg-white/10',\n ring: 'ring-black/20 dark:ring-white/30',\n ink: 'bg-black dark:bg-white'\n }\n};\n\nconst panelVariantClasses: Record<TabsVariant, string> = {\n line: 'pt-4',\n card: 'mt-3 rounded-xl border border-gray-200 bg-white p-4 shadow-sm dark:border-gray-700 dark:bg-gray-900',\n pill: 'mt-3 rounded-2xl border border-gray-200 bg-white/90 p-4 dark:border-gray-700 dark:bg-gray-900/90'\n};\n\nconst isExtraContentObject = (value: TabsExtraContent): value is { left?: React.ReactNode; right?: React.ReactNode } => {\n return (\n !!value &&\n typeof value === 'object' &&\n !React.isValidElement(value) &&\n ('left' in (value as Record<string, unknown>) || 'right' in (value as Record<string, unknown>))\n );\n};\n\nconst resolveFirstEnabledTab = (tabs: TabsDescriptor[]): TabsValue | undefined =>\n tabs.find(tab => !tab.disabled)?.value;\n\nconst clampActive = (value: TabsValue | undefined, tabs: TabsDescriptor[]): TabsValue | undefined => {\n if (value === undefined) {\n return resolveFirstEnabledTab(tabs);\n }\n\n const match = tabs.find(tab => tab.value === value);\n if (!match || match.disabled) {\n return resolveFirstEnabledTab(tabs);\n }\n\n return value;\n};\n\nconst resolveIconNode = (icon?: PropIcon, size?: TabsSize) => {\n if (!icon) return null;\n const iconClass = resolveIconClassName(icon);\n return iconClass ? <i className={twMerge(iconClass, size ? sizeClasses[size].icon : undefined)} aria-hidden /> : null;\n};\n\ntype TabsDescriptor = {\n element: React.ReactElement<TabProps>;\n index: number;\n value: TabsValue;\n label: React.ReactNode;\n disabled?: boolean;\n icon?: PropIcon;\n badge?: React.ReactNode;\n tabClassName?: string;\n panelClassName?: string;\n tabId: string;\n panelId: string;\n forceRender?: boolean;\n};\n\nconst collectTabs = (children: React.ReactNode, tabsId: string): TabsDescriptor[] => {\n const tabs: TabsDescriptor[] = [];\n let index = 0;\n\n const walk = (node: React.ReactNode) => {\n if (Array.isArray(node)) {\n node.forEach(walk);\n return;\n }\n\n if (!isTabsTabElement(node)) {\n if (React.isValidElement(node)) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n walk(props.children);\n }\n }\n return;\n }\n\n const tabIndex = index++;\n const value = node.props.value ?? tabIndex;\n const tabId = `${tabsId}-tab-${tabIndex}`;\n const panelId = `${tabsId}-panel-${tabIndex}`;\n\n tabs.push({\n element: node,\n index: tabIndex,\n value,\n label: node.props.label,\n disabled: node.props.disabled,\n icon: node.props.icon,\n badge: node.props.badge,\n tabClassName: node.props.tabClassName,\n panelClassName: node.props.panelClassName,\n tabId,\n panelId,\n forceRender: node.props.forceRender\n });\n };\n\n walk(children);\n return tabs;\n};\n\nconst injectTabs = (\n children: React.ReactNode,\n context: TabsContextValue,\n tabs: TabsDescriptor[]\n): React.ReactNode => {\n let index = 0;\n\n const walk = (node: React.ReactNode): React.ReactNode => {\n if (Array.isArray(node)) {\n let changed = false;\n const next = node.map(child => {\n const mapped = walk(child);\n if (mapped !== child) {\n changed = true;\n }\n return mapped;\n });\n return changed ? next : node;\n }\n\n if (!React.isValidElement(node)) {\n return node;\n }\n\n if (isTabsTabElement(node)) {\n const tab = tabs[index++];\n if (!tab) {\n return node;\n }\n const injectedProps: Partial<TabProps & TabsInternalProps> = {\n value: tab.value,\n __tabsContext: context,\n __tabsValue: tab.value,\n __tabsIndex: tab.index,\n __tabsTabId: tab.tabId,\n __tabsPanelId: tab.panelId\n };\n return React.cloneElement(node, injectedProps);\n }\n\n if (node.props) {\n const props = node.props as { children?: React.ReactNode } | null;\n if (props && Object.prototype.hasOwnProperty.call(props, 'children')) {\n const mappedChildren = walk(props.children);\n if (mappedChildren !== props.children) {\n return React.cloneElement(node, undefined, mappedChildren);\n }\n }\n }\n\n return node;\n };\n\n return walk(children);\n};\n\nconst handleTabListKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const { key } = event;\n if (!['ArrowLeft', 'ArrowRight', 'Home', 'End'].includes(key)) {\n return;\n }\n\n const tabs = Array.from(event.currentTarget.querySelectorAll<HTMLButtonElement>('[role=\"tab\"]'))\n .filter(tab => !tab.disabled);\n\n if (!tabs.length) {\n return;\n }\n\n const currentIndex = tabs.findIndex(tab => tab === document.activeElement);\n let nextIndex = currentIndex;\n\n if (key === 'ArrowRight') {\n nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % tabs.length;\n }\n\n if (key === 'ArrowLeft') {\n nextIndex = currentIndex === -1 ? tabs.length - 1 : (currentIndex - 1 + tabs.length) % tabs.length;\n }\n\n if (key === 'Home') {\n nextIndex = 0;\n }\n\n if (key === 'End') {\n nextIndex = tabs.length - 1;\n }\n\n tabs[nextIndex]?.focus();\n event.preventDefault();\n};\n\n/**\n * Tabbed container inspired by Ant Design with line, card, and pill styles.\n */\nconst Tabs = React.forwardRef<HTMLDivElement, TabsProps>((props, ref) => {\n const {\n activeKey,\n defaultActiveKey,\n onChange,\n variant = 'line',\n size = 'medium',\n color = 'primary',\n align = 'start',\n tabBarGutter = 8,\n tabBarExtraContent,\n tabBarClassName,\n destroyInactiveTabPane = false,\n keepMounted = false,\n className,\n children,\n id,\n ...rest\n } = props;\n\n const tabsId = typeof id === 'string' && id.trim().length ? id : 'tabs';\n const tabs = collectTabs(children, tabsId);\n const resolvedActive = clampActive(activeKey ?? defaultActiveKey, tabs);\n\n const handleActivate = (value: TabsValue) => {\n onChange?.(value);\n };\n\n const extraContent = tabBarExtraContent;\n const extraLeft = isExtraContentObject(extraContent) ? extraContent.left : null;\n const extraRight = isExtraContentObject(extraContent) ? extraContent.right : extraContent;\n\n const palette = paletteClasses[color] ?? paletteClasses.primary;\n\n const context: TabsContextValue = {\n activeKey: resolvedActive,\n onChange: handleActivate,\n variant,\n size,\n color,\n destroyInactiveTabPane,\n keepMounted\n };\n\n const enhancedChildren = injectTabs(children, context, tabs);\n\n return (\n <div\n {...rest}\n id={id}\n ref={ref}\n className={twMerge('tabs flex w-full flex-col text-gray-900 dark:text-gray-100', className)}\n >\n <div className='flex items-center gap-3'>\n {extraLeft ? <div className='flex items-center'>{extraLeft}</div> : null}\n <div\n role='tablist'\n aria-orientation='horizontal'\n onKeyDown={handleTabListKeyDown}\n className={twMerge(\n 'flex min-w-0 flex-1 items-center gap-2 overflow-x-auto',\n align === 'center' ? 'justify-center' : align === 'end' ? 'justify-end' : undefined,\n variantListClasses[variant],\n tabBarClassName\n )}\n style={{ gap: tabBarGutter }}\n >\n {tabs.map(tab => {\n const isActive = tab.value === resolvedActive;\n const sizeClass = sizeClasses[size] ?? sizeClasses.medium;\n const iconNode = resolveIconNode(tab.icon, size);\n const badgeNode = tab.badge ? (\n <span className='rounded-full bg-gray-200 px-1.5 py-0.5 text-[0.6rem] font-semibold text-gray-700 dark:bg-gray-700 dark:text-gray-200'>\n {tab.badge}\n </span>\n ) : null;\n const activeText = isActive ? palette.text : 'text-gray-600 dark:text-gray-300';\n const activeBorder = isActive ? palette.border : 'border-transparent';\n const activeBg = isActive ? palette.bg : undefined;\n const activeRing = isActive ? palette.ring : undefined;\n\n const variantClasses = {\n line: twMerge(activeText, activeBorder),\n card: twMerge(activeText, activeBg, activeBorder, isActive ? 'shadow-sm' : undefined),\n pill: twMerge(activeText, activeBg)\n };\n\n return (\n <button\n key={tab.value}\n type='button'\n role='tab'\n id={tab.tabId}\n aria-selected={isActive}\n aria-controls={tab.panelId}\n aria-disabled={tab.disabled || undefined}\n disabled={tab.disabled}\n tabIndex={isActive ? 0 : -1}\n onClick={() => {\n if (!tab.disabled) {\n handleActivate(tab.value);\n }\n }}\n className={twMerge(\n 'inline-flex items-center gap-2 whitespace-nowrap font-medium transition-all duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900',\n sizeClass.tab,\n variantTabBaseClasses[variant],\n variantClasses[variant],\n activeRing ? `ring-1 ${activeRing}` : undefined,\n tab.disabled\n ? 'cursor-not-allowed text-gray-400 dark:text-gray-500 opacity-60'\n : 'hover:text-gray-900 dark:hover:text-gray-100',\n tab.tabClassName\n )}\n data-state={isActive ? 'active' : 'inactive'}\n >\n {iconNode}\n <span className='truncate'>{tab.label}</span>\n {badgeNode}\n </button>\n );\n })}\n </div>\n {extraRight ? <div className='flex items-center'>{extraRight}</div> : null}\n </div>\n <div className={twMerge('min-h-0', panelVariantClasses[variant])}>{enhancedChildren}</div>\n </div>\n );\n});\n\nTabs.displayName = 'Tabs';\n\nconst Tab = React.forwardRef<HTMLDivElement, TabProps & TabsInternalProps>((props, ref) => {\n const {\n label: _label,\n value,\n disabled,\n forceRender,\n tabClassName: _tabClassName,\n panelClassName,\n className,\n children,\n __tabsContext,\n __tabsValue,\n __tabsIndex,\n __tabsTabId,\n __tabsPanelId,\n ...rest\n } = props;\n\n const context = __tabsContext;\n const resolvedValue = value ?? __tabsValue;\n const isActive = context ? context.activeKey === resolvedValue : true;\n\n const shouldRender =\n !context ||\n isActive ||\n context.keepMounted ||\n !context.destroyInactiveTabPane ||\n forceRender;\n\n if (!shouldRender) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={ref}\n role='tabpanel'\n id={__tabsPanelId}\n aria-labelledby={__tabsTabId}\n aria-hidden={context ? !isActive : undefined}\n hidden={context ? !isActive : undefined}\n className={twMerge('tabs-panel text-gray-900 dark:text-gray-100', className, panelClassName)}\n data-state={isActive ? 'active' : 'inactive'}\n data-disabled={disabled || undefined}\n >\n {children}\n </div>\n );\n});\n\nTab.displayName = 'Tab';\nmarkTabsTab(Tab);\n\nexport type { TabProps, TabsProps, TabsValue, TabsVariant, TabsSize } from './types.tabs';\nexport { Tab };\nexport default Tabs;\n","import { useState } from 'react';\nimport { NotificationArgs } from './types.notification';\n\nconst useNotification = (defaultMessage?: NotificationArgs) => {\n const [messages, setMessages] = useState<NotificationArgs[]>([]);\n\n const clearNotifications = (key?: string) => {\n setMessages(prev => (key ? prev.filter(notification => notification.key !== key) : []));\n };\n\n const showNotification = (notification: NotificationArgs) => {\n const key = `${Date.now()}-${Math.random()}`;\n setMessages(prev => [\n ...prev,\n {\n duration: 4000,\n onClose: () => clearNotifications(key),\n ...defaultMessage,\n ...notification,\n key\n }\n ]);\n };\n\n return { messages, showNotification };\n};\n\nexport default useNotification;\n"]}
|