@papernote/ui 1.10.18 → 1.10.20
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/components/Alert.d.ts +1 -1
- package/dist/components/Alert.d.ts.map +1 -1
- package/dist/components/Badge.d.ts +1 -1
- package/dist/components/Badge.d.ts.map +1 -1
- package/dist/components/BottomNavigation.d.ts +6 -0
- package/dist/components/BottomNavigation.d.ts.map +1 -1
- package/dist/components/Menu.d.ts +6 -0
- package/dist/components/Menu.d.ts.map +1 -1
- package/dist/components/Sidebar.d.ts +6 -0
- package/dist/components/Sidebar.d.ts.map +1 -1
- package/dist/components/StatusBadge.d.ts +1 -1
- package/dist/components/StatusBadge.d.ts.map +1 -1
- package/dist/components/Tabs.d.ts +13 -1
- package/dist/components/Tabs.d.ts.map +1 -1
- package/dist/components/Text.d.ts +2 -1
- package/dist/components/Text.d.ts.map +1 -1
- package/dist/index.d.ts +36 -5
- package/dist/index.esm.js +23 -8
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +23 -8
- package/dist/index.js.map +1 -1
- package/dist/styles.css +10 -0
- package/package.json +1 -1
- package/src/components/Alert.stories.tsx +20 -7
- package/src/components/Alert.tsx +7 -1
- package/src/components/Badge.stories.tsx +18 -7
- package/src/components/Badge.tsx +3 -1
- package/src/components/BottomNavigation.stories.tsx +57 -0
- package/src/components/BottomNavigation.tsx +10 -2
- package/src/components/Menu.tsx +10 -0
- package/src/components/Sidebar.stories.tsx +83 -0
- package/src/components/Sidebar.tsx +18 -3
- package/src/components/StatusBadge.tsx +7 -2
- package/src/components/Tabs.stories.tsx +126 -0
- package/src/components/Tabs.tsx +17 -0
- package/src/components/Text.stories.tsx +30 -6
- package/src/components/Text.tsx +5 -3
|
@@ -5,7 +5,7 @@ export interface AlertAction {
|
|
|
5
5
|
variant?: 'primary' | 'secondary';
|
|
6
6
|
}
|
|
7
7
|
export interface AlertProps {
|
|
8
|
-
variant?: 'success' | 'error' | 'warning' | 'info';
|
|
8
|
+
variant?: 'success' | 'error' | 'warning' | 'caution' | 'info';
|
|
9
9
|
title?: string;
|
|
10
10
|
children: React.ReactNode;
|
|
11
11
|
onClose?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../src/components/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../src/components/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,OAAgB,EAChB,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAc,EACd,OAAY,GACb,EAAE,UAAU,2CAwFZ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
export interface BadgeProps {
|
|
3
3
|
children?: React.ReactNode;
|
|
4
|
-
variant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
4
|
+
variant?: 'success' | 'warning' | 'error' | 'caution' | 'info' | 'neutral';
|
|
5
5
|
size?: 'sm' | 'md' | 'lg';
|
|
6
6
|
icon?: React.ReactNode;
|
|
7
7
|
onRemove?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3E,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,oEAAoE;IACpE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC5B,QAAQ,EACR,OAAmB,EACnB,IAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAc,EACd,GAAW,EACX,IAAY,EACZ,QAAgB,EAChB,QAAQ,EACR,OAAe,GAChB,EAAE,UAAU,2CAuFZ"}
|
|
@@ -17,6 +17,12 @@ export interface BottomNavItem {
|
|
|
17
17
|
onClick?: () => void;
|
|
18
18
|
/** Disabled state */
|
|
19
19
|
disabled?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Custom data attributes to spread on the rendered element.
|
|
22
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
23
|
+
* @example { 'data-tour': 'nav-home', 'data-testid': 'bottom-nav-home' }
|
|
24
|
+
*/
|
|
25
|
+
dataAttributes?: Record<string, string>;
|
|
20
26
|
}
|
|
21
27
|
/**
|
|
22
28
|
* BottomNavigation component props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BottomNavigation.d.ts","sourceRoot":"","sources":["../../src/components/BottomNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BottomNavigation.d.ts","sourceRoot":"","sources":["../../src/components/BottomNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,8BAA8B;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,UAAU,EACV,UAAiB,EACjB,SAAc,EACd,QAAe,GAChB,EAAE,qBAAqB,2CAkHvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,QAAe,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,2CAOjF"}
|
|
@@ -8,6 +8,12 @@ export interface MenuItem {
|
|
|
8
8
|
danger?: boolean;
|
|
9
9
|
divider?: boolean;
|
|
10
10
|
submenu?: MenuItem[];
|
|
11
|
+
/**
|
|
12
|
+
* Custom data attributes to spread on the rendered element.
|
|
13
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
14
|
+
* @example { 'data-tour': 'menu-settings', 'data-testid': 'menu-settings' }
|
|
15
|
+
*/
|
|
16
|
+
dataAttributes?: Record<string, string>;
|
|
11
17
|
}
|
|
12
18
|
export interface MenuProps {
|
|
13
19
|
items: MenuItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAC;AAG/D,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,MAAM,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;CACpE;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,EAC3B,KAAK,EACL,SAAc,EACd,OAAO,EACP,QAAQ,EACR,MAAsB,GACvB,EAAE,SAAS,2CAyMX;AAGD,wBAAgB,WAAW,IAC2C,QAAQ,CAC7E"}
|
|
@@ -10,6 +10,12 @@ export interface SidebarItem {
|
|
|
10
10
|
badge?: string | number;
|
|
11
11
|
separator?: boolean;
|
|
12
12
|
external?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Custom data attributes to spread on the rendered element.
|
|
15
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
16
|
+
* @example { 'data-tour': 'nav-dashboard', 'data-testid': 'sidebar-dashboard' }
|
|
17
|
+
*/
|
|
18
|
+
dataAttributes?: Record<string, string>;
|
|
13
19
|
}
|
|
14
20
|
export interface SidebarProps {
|
|
15
21
|
items: SidebarItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../src/components/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAI3D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAuGD,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,eAAsB,EAAE,WAAW,EAAE,EAAE,iBAAiB,2CAoChH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,KAAK,EACL,UAAU,EACV,SAAc,EACd,MAAM,EACN,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,KAAc,GACf,EAAE,YAAY,kDAgLd"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export interface StatusBadgeProps {
|
|
2
|
-
status: 'paid' | 'pending' | 'overdue' | 'cancelled' | 'success' | 'warning' | 'error' | 'info';
|
|
2
|
+
status: 'paid' | 'pending' | 'overdue' | 'cancelled' | 'success' | 'warning' | 'caution' | 'error' | 'info';
|
|
3
3
|
label?: string;
|
|
4
4
|
size?: 'sm' | 'md' | 'lg';
|
|
5
5
|
showIcon?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../src/components/StatusBadge.tsx"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;IAC5G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAiED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,MAAM,EACN,KAAK,EACL,IAAW,EACX,QAAe,EAChB,EAAE,gBAAgB,2CAclB"}
|
|
@@ -11,6 +11,12 @@ export interface Tab {
|
|
|
11
11
|
badgeVariant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
12
12
|
/** Whether this individual tab can be closed (overrides global closeable) */
|
|
13
13
|
closeable?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Custom data attributes to spread on the tab trigger element.
|
|
16
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
17
|
+
* @example { 'data-tour': 'tab-settings', 'data-testid': 'settings-tab' }
|
|
18
|
+
*/
|
|
19
|
+
dataAttributes?: Record<string, string>;
|
|
14
20
|
}
|
|
15
21
|
export interface TabsProps {
|
|
16
22
|
tabs: Tab[];
|
|
@@ -109,11 +115,17 @@ export interface TabsTriggerProps {
|
|
|
109
115
|
badgeVariant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
110
116
|
/** Additional class name */
|
|
111
117
|
className?: string;
|
|
118
|
+
/**
|
|
119
|
+
* Custom data attributes to spread on the tab trigger element.
|
|
120
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
121
|
+
* @example { 'data-tour': 'tab-settings', 'data-testid': 'settings-tab' }
|
|
122
|
+
*/
|
|
123
|
+
dataAttributes?: Record<string, string>;
|
|
112
124
|
}
|
|
113
125
|
/**
|
|
114
126
|
* TabsTrigger - Individual tab button
|
|
115
127
|
*/
|
|
116
|
-
export declare function TabsTrigger({ children, value, disabled, icon, badge, badgeVariant, className, }: TabsTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
128
|
+
export declare function TabsTrigger({ children, value, disabled, icon, badge, badgeVariant, className, dataAttributes, }: TabsTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
117
129
|
export interface TabsContentProps {
|
|
118
130
|
children: React.ReactNode;
|
|
119
131
|
/** Value matching the corresponding TabsTrigger */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/components/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AAQnG,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACpE,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/components/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export interface TextProps extends Omit<React.HTMLAttributes<HTMLElement>, 'colo
|
|
|
17
17
|
/** Weight variant */
|
|
18
18
|
weight?: 'normal' | 'medium' | 'semibold' | 'bold';
|
|
19
19
|
/** Color variant */
|
|
20
|
-
color?: 'primary' | 'secondary' | 'muted' | 'accent' | 'error' | 'success' | 'warning';
|
|
20
|
+
color?: 'primary' | 'secondary' | 'muted' | 'accent' | 'error' | 'success' | 'warning' | 'caution';
|
|
21
21
|
/** Text alignment */
|
|
22
22
|
align?: 'left' | 'center' | 'right';
|
|
23
23
|
/** Truncate text with ellipsis (single line) */
|
|
@@ -49,6 +49,7 @@ export interface TextProps extends Omit<React.HTMLAttributes<HTMLElement>, 'colo
|
|
|
49
49
|
* </Text>
|
|
50
50
|
*
|
|
51
51
|
* <Text color="warning">Warning message</Text>
|
|
52
|
+
* <Text color="caution">Caution message (informational, not alarming)</Text>
|
|
52
53
|
*
|
|
53
54
|
* // With ref
|
|
54
55
|
* const textRef = useRef<HTMLParagraphElement>(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/components/Text.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,KAAK,WAAW,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAE5F,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACjF,mBAAmB;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6BAA6B;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACnD,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../src/components/Text.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,KAAK,WAAW,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;AAE5F,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAE3D,MAAM,WAAW,SAAU,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IACjF,mBAAmB;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,6BAA6B;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,sEAAsE;IACtE,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,qBAAqB;IACrB,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACnD,oBAAoB;IACpB,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACnG,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,qBAAqB;IACrB,SAAS,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IAChE,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,IAAI,+EAqHf,CAAC;AAIH,eAAe,IAAI,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1822,7 +1822,7 @@ interface TextProps extends Omit<React__default.HTMLAttributes<HTMLElement>, 'co
|
|
|
1822
1822
|
/** Weight variant */
|
|
1823
1823
|
weight?: 'normal' | 'medium' | 'semibold' | 'bold';
|
|
1824
1824
|
/** Color variant */
|
|
1825
|
-
color?: 'primary' | 'secondary' | 'muted' | 'accent' | 'error' | 'success' | 'warning';
|
|
1825
|
+
color?: 'primary' | 'secondary' | 'muted' | 'accent' | 'error' | 'success' | 'warning' | 'caution';
|
|
1826
1826
|
/** Text alignment */
|
|
1827
1827
|
align?: 'left' | 'center' | 'right';
|
|
1828
1828
|
/** Truncate text with ellipsis (single line) */
|
|
@@ -1854,6 +1854,7 @@ interface TextProps extends Omit<React__default.HTMLAttributes<HTMLElement>, 'co
|
|
|
1854
1854
|
* </Text>
|
|
1855
1855
|
*
|
|
1856
1856
|
* <Text color="warning">Warning message</Text>
|
|
1857
|
+
* <Text color="caution">Caution message (informational, not alarming)</Text>
|
|
1857
1858
|
*
|
|
1858
1859
|
* // With ref
|
|
1859
1860
|
* const textRef = useRef<HTMLParagraphElement>(null);
|
|
@@ -1891,7 +1892,7 @@ interface AlertAction {
|
|
|
1891
1892
|
variant?: 'primary' | 'secondary';
|
|
1892
1893
|
}
|
|
1893
1894
|
interface AlertProps {
|
|
1894
|
-
variant?: 'success' | 'error' | 'warning' | 'info';
|
|
1895
|
+
variant?: 'success' | 'error' | 'warning' | 'caution' | 'info';
|
|
1895
1896
|
title?: string;
|
|
1896
1897
|
children: React__default.ReactNode;
|
|
1897
1898
|
onClose?: () => void;
|
|
@@ -2747,6 +2748,12 @@ interface MenuItem {
|
|
|
2747
2748
|
danger?: boolean;
|
|
2748
2749
|
divider?: boolean;
|
|
2749
2750
|
submenu?: MenuItem[];
|
|
2751
|
+
/**
|
|
2752
|
+
* Custom data attributes to spread on the rendered element.
|
|
2753
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
2754
|
+
* @example { 'data-tour': 'menu-settings', 'data-testid': 'menu-settings' }
|
|
2755
|
+
*/
|
|
2756
|
+
dataAttributes?: Record<string, string>;
|
|
2750
2757
|
}
|
|
2751
2758
|
interface MenuProps {
|
|
2752
2759
|
items: MenuItem[];
|
|
@@ -3983,6 +3990,12 @@ interface Tab {
|
|
|
3983
3990
|
badgeVariant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
3984
3991
|
/** Whether this individual tab can be closed (overrides global closeable) */
|
|
3985
3992
|
closeable?: boolean;
|
|
3993
|
+
/**
|
|
3994
|
+
* Custom data attributes to spread on the tab trigger element.
|
|
3995
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
3996
|
+
* @example { 'data-tour': 'tab-settings', 'data-testid': 'settings-tab' }
|
|
3997
|
+
*/
|
|
3998
|
+
dataAttributes?: Record<string, string>;
|
|
3986
3999
|
}
|
|
3987
4000
|
interface TabsProps {
|
|
3988
4001
|
tabs: Tab[];
|
|
@@ -4081,11 +4094,17 @@ interface TabsTriggerProps {
|
|
|
4081
4094
|
badgeVariant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
4082
4095
|
/** Additional class name */
|
|
4083
4096
|
className?: string;
|
|
4097
|
+
/**
|
|
4098
|
+
* Custom data attributes to spread on the tab trigger element.
|
|
4099
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
4100
|
+
* @example { 'data-tour': 'tab-settings', 'data-testid': 'settings-tab' }
|
|
4101
|
+
*/
|
|
4102
|
+
dataAttributes?: Record<string, string>;
|
|
4084
4103
|
}
|
|
4085
4104
|
/**
|
|
4086
4105
|
* TabsTrigger - Individual tab button
|
|
4087
4106
|
*/
|
|
4088
|
-
declare function TabsTrigger({ children, value, disabled, icon, badge, badgeVariant, className, }: TabsTriggerProps): react_jsx_runtime.JSX.Element;
|
|
4107
|
+
declare function TabsTrigger({ children, value, disabled, icon, badge, badgeVariant, className, dataAttributes, }: TabsTriggerProps): react_jsx_runtime.JSX.Element;
|
|
4089
4108
|
interface TabsContentProps {
|
|
4090
4109
|
children: React__default.ReactNode;
|
|
4091
4110
|
/** Value matching the corresponding TabsTrigger */
|
|
@@ -4131,7 +4150,7 @@ declare function StepIndicator({ steps, currentStep, variant, onStepClick, }: St
|
|
|
4131
4150
|
|
|
4132
4151
|
interface BadgeProps {
|
|
4133
4152
|
children?: React__default.ReactNode;
|
|
4134
|
-
variant?: 'success' | 'warning' | 'error' | 'info' | 'neutral';
|
|
4153
|
+
variant?: 'success' | 'warning' | 'error' | 'caution' | 'info' | 'neutral';
|
|
4135
4154
|
size?: 'sm' | 'md' | 'lg';
|
|
4136
4155
|
icon?: React__default.ReactNode;
|
|
4137
4156
|
onRemove?: () => void;
|
|
@@ -4346,6 +4365,12 @@ interface SidebarItem {
|
|
|
4346
4365
|
badge?: string | number;
|
|
4347
4366
|
separator?: boolean;
|
|
4348
4367
|
external?: boolean;
|
|
4368
|
+
/**
|
|
4369
|
+
* Custom data attributes to spread on the rendered element.
|
|
4370
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
4371
|
+
* @example { 'data-tour': 'nav-dashboard', 'data-testid': 'sidebar-dashboard' }
|
|
4372
|
+
*/
|
|
4373
|
+
dataAttributes?: Record<string, string>;
|
|
4349
4374
|
}
|
|
4350
4375
|
interface SidebarProps {
|
|
4351
4376
|
items: SidebarItem[];
|
|
@@ -4422,6 +4447,12 @@ interface BottomNavItem {
|
|
|
4422
4447
|
onClick?: () => void;
|
|
4423
4448
|
/** Disabled state */
|
|
4424
4449
|
disabled?: boolean;
|
|
4450
|
+
/**
|
|
4451
|
+
* Custom data attributes to spread on the rendered element.
|
|
4452
|
+
* Useful for product tours (e.g., Driver.js) and E2E testing (Playwright, Cypress).
|
|
4453
|
+
* @example { 'data-tour': 'nav-home', 'data-testid': 'bottom-nav-home' }
|
|
4454
|
+
*/
|
|
4455
|
+
dataAttributes?: Record<string, string>;
|
|
4425
4456
|
}
|
|
4426
4457
|
/**
|
|
4427
4458
|
* BottomNavigation component props
|
|
@@ -6187,7 +6218,7 @@ interface DateDisplayProps {
|
|
|
6187
6218
|
declare function DateDisplay({ date, format, fallback, label, showLabel, className, locale, minValidYear, }: DateDisplayProps): react_jsx_runtime.JSX.Element;
|
|
6188
6219
|
|
|
6189
6220
|
interface StatusBadgeProps {
|
|
6190
|
-
status: 'paid' | 'pending' | 'overdue' | 'cancelled' | 'success' | 'warning' | 'error' | 'info';
|
|
6221
|
+
status: 'paid' | 'pending' | 'overdue' | 'cancelled' | 'success' | 'warning' | 'caution' | 'error' | 'info';
|
|
6191
6222
|
label?: string;
|
|
6192
6223
|
size?: 'sm' | 'md' | 'lg';
|
|
6193
6224
|
showIcon?: boolean;
|
package/dist/index.esm.js
CHANGED
|
@@ -4885,6 +4885,7 @@ Stack.displayName = 'Stack';
|
|
|
4885
4885
|
* </Text>
|
|
4886
4886
|
*
|
|
4887
4887
|
* <Text color="warning">Warning message</Text>
|
|
4888
|
+
* <Text color="caution">Caution message (informational, not alarming)</Text>
|
|
4888
4889
|
*
|
|
4889
4890
|
* // With ref
|
|
4890
4891
|
* const textRef = useRef<HTMLParagraphElement>(null);
|
|
@@ -4939,6 +4940,7 @@ const Text = forwardRef(({ children, as: Component = 'p', size = 'base', smSize,
|
|
|
4939
4940
|
error: 'text-error-600',
|
|
4940
4941
|
success: 'text-success-600',
|
|
4941
4942
|
warning: 'text-warning-600',
|
|
4943
|
+
caution: 'text-warning-700',
|
|
4942
4944
|
};
|
|
4943
4945
|
const alignClasses = {
|
|
4944
4946
|
left: 'text-left',
|
|
@@ -5813,6 +5815,10 @@ function Alert({ variant = 'info', title, children, onClose, className = '', act
|
|
|
5813
5815
|
container: 'bg-warning-50 border-warning-200 text-warning-900',
|
|
5814
5816
|
icon: jsx(AlertTriangle, { className: "h-5 w-5 text-warning-600" }),
|
|
5815
5817
|
},
|
|
5818
|
+
caution: {
|
|
5819
|
+
container: 'bg-warning-100 border-warning-200 text-warning-800',
|
|
5820
|
+
icon: jsx(Info, { className: "h-5 w-5 text-warning-700" }),
|
|
5821
|
+
},
|
|
5816
5822
|
info: {
|
|
5817
5823
|
container: 'bg-primary-50 border-primary-200 text-primary-900',
|
|
5818
5824
|
icon: jsx(Info, { className: "h-5 w-5 text-primary-600" }),
|
|
@@ -5826,6 +5832,7 @@ function Alert({ variant = 'info', title, children, onClose, className = '', act
|
|
|
5826
5832
|
success: 'bg-success-600 text-white hover:bg-success-700',
|
|
5827
5833
|
error: 'bg-error-600 text-white hover:bg-error-700',
|
|
5828
5834
|
warning: 'bg-warning-600 text-white hover:bg-warning-700',
|
|
5835
|
+
caution: 'bg-warning-700 text-white hover:bg-warning-800',
|
|
5829
5836
|
info: 'bg-primary-600 text-white hover:bg-primary-700',
|
|
5830
5837
|
};
|
|
5831
5838
|
return `${base} ${variantClasses[variant]}`;
|
|
@@ -5835,6 +5842,7 @@ function Alert({ variant = 'info', title, children, onClose, className = '', act
|
|
|
5835
5842
|
success: 'bg-white border border-success-300 text-success-700 hover:bg-success-50',
|
|
5836
5843
|
error: 'bg-white border border-error-300 text-error-700 hover:bg-error-50',
|
|
5837
5844
|
warning: 'bg-white border border-warning-300 text-warning-700 hover:bg-warning-50',
|
|
5845
|
+
caution: 'bg-white border border-warning-300 text-warning-800 hover:bg-warning-50',
|
|
5838
5846
|
info: 'bg-white border border-primary-300 text-primary-700 hover:bg-primary-50',
|
|
5839
5847
|
};
|
|
5840
5848
|
return `${base} ${variantClasses[variant]}`;
|
|
@@ -8425,7 +8433,7 @@ function Menu({ items, className = '', onClose, position, anchor = 'bottom-left'
|
|
|
8425
8433
|
`, style: positionStyle, role: "menu", "aria-orientation": "vertical", children: items.map((item, index) => {
|
|
8426
8434
|
// Handle divider
|
|
8427
8435
|
if (item.divider) {
|
|
8428
|
-
return (jsx("div", { className: "h-px bg-ink-200 my-1", role: "separator" }, `divider-${index}`));
|
|
8436
|
+
return (jsx("div", { className: "h-px bg-ink-200 my-1", role: "separator", "data-testid": item.dataAttributes?.['data-testid'] || `menu-divider-${index}`, ...item.dataAttributes }, `divider-${index}`));
|
|
8429
8437
|
}
|
|
8430
8438
|
const currentNavIndex = navIndex;
|
|
8431
8439
|
navIndex++;
|
|
@@ -8440,7 +8448,7 @@ function Menu({ items, className = '', onClose, position, anchor = 'bottom-left'
|
|
|
8440
8448
|
? 'text-error-600 hover:bg-error-50'
|
|
8441
8449
|
: 'text-ink-900 hover:bg-accent-100'}
|
|
8442
8450
|
${focusedIndex === currentNavIndex ? 'bg-accent-100' : ''}
|
|
8443
|
-
`, role: "menuitem", "aria-haspopup": hasSubmenu, "aria-expanded": hasSubmenu && isSubmenuOpen, children: [jsxs("div", { className: "flex items-center gap-2 flex-1 min-w-0", children: [item.icon && (jsx("span", { className: "flex-shrink-0 w-4 h-4 flex items-center justify-center", children: item.icon })), jsx("span", { className: "truncate", children: item.label })] }), hasSubmenu && (jsx(ChevronRight, { className: "h-4 w-4 flex-shrink-0 text-ink-400" }))] }), hasSubmenu && isSubmenuOpen && (jsx("div", { className: "absolute left-full top-0 ml-1 z-10", children: jsx(Menu, { items: item.submenu, onClose: onClose, anchor: "top-left" }) }))] }, item.id));
|
|
8451
|
+
`, role: "menuitem", "aria-haspopup": hasSubmenu, "aria-expanded": hasSubmenu && isSubmenuOpen, "data-testid": item.dataAttributes?.['data-testid'] || `menu-item-${item.id}`, ...item.dataAttributes, children: [jsxs("div", { className: "flex items-center gap-2 flex-1 min-w-0", children: [item.icon && (jsx("span", { className: "flex-shrink-0 w-4 h-4 flex items-center justify-center", children: item.icon })), jsx("span", { className: "truncate", children: item.label })] }), hasSubmenu && (jsx(ChevronRight, { className: "h-4 w-4 flex-shrink-0 text-ink-400" }))] }), hasSubmenu && isSubmenuOpen && (jsx("div", { className: "absolute left-full top-0 ml-1 z-10", children: jsx(Menu, { items: item.submenu, onClose: onClose, anchor: "top-left" }) }))] }, item.id));
|
|
8444
8452
|
}) }));
|
|
8445
8453
|
}
|
|
8446
8454
|
// Convenience component for MenuDivider
|
|
@@ -9480,6 +9488,7 @@ function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, cla
|
|
|
9480
9488
|
success: 'bg-success-50 text-success-700 border-success-200',
|
|
9481
9489
|
warning: 'bg-warning-50 text-warning-700 border-warning-200',
|
|
9482
9490
|
error: 'bg-error-50 text-error-700 border-error-200',
|
|
9491
|
+
caution: 'bg-warning-100 text-warning-800 border-warning-200',
|
|
9483
9492
|
info: 'bg-primary-50 text-primary-700 border-primary-200',
|
|
9484
9493
|
neutral: 'bg-paper-100 text-ink-700 border-paper-300',
|
|
9485
9494
|
};
|
|
@@ -9487,6 +9496,7 @@ function Badge({ children, variant = 'neutral', size = 'md', icon, onRemove, cla
|
|
|
9487
9496
|
success: 'bg-success-500',
|
|
9488
9497
|
warning: 'bg-warning-500',
|
|
9489
9498
|
error: 'bg-error-500',
|
|
9499
|
+
caution: 'bg-warning-700',
|
|
9490
9500
|
info: 'bg-primary-500',
|
|
9491
9501
|
neutral: 'bg-ink-400',
|
|
9492
9502
|
};
|
|
@@ -11483,7 +11493,7 @@ function TabsList({ children, className = '' }) {
|
|
|
11483
11493
|
/**
|
|
11484
11494
|
* TabsTrigger - Individual tab button
|
|
11485
11495
|
*/
|
|
11486
|
-
function TabsTrigger({ children, value, disabled = false, icon, badge, badgeVariant = 'info', className = '', }) {
|
|
11496
|
+
function TabsTrigger({ children, value, disabled = false, icon, badge, badgeVariant = 'info', className = '', dataAttributes, }) {
|
|
11487
11497
|
const { activeTab, setActiveTab, variant, orientation, size, registerTab, unregisterTab } = useTabsContext();
|
|
11488
11498
|
const isActive = activeTab === value;
|
|
11489
11499
|
// Register this tab on mount
|
|
@@ -11513,7 +11523,7 @@ function TabsTrigger({ children, value, disabled = false, icon, badge, badgeVari
|
|
|
11513
11523
|
${disabled ? 'opacity-40 cursor-not-allowed' : 'cursor-pointer'}
|
|
11514
11524
|
focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 focus-visible:ring-offset-1
|
|
11515
11525
|
${className}
|
|
11516
|
-
`, children: [icon && jsx("span", { className: `flex-shrink-0 ${sizeClasses[size].icon}`, children: icon }), jsx("span", { children: children }), badge !== undefined && (jsx(Badge, { variant: badgeVariant, size: sizeClasses[size].badgeSize, children: badge }))] }));
|
|
11526
|
+
`, "data-testid": dataAttributes?.['data-testid'] || `tab-${value}`, ...dataAttributes, children: [icon && jsx("span", { className: `flex-shrink-0 ${sizeClasses[size].icon}`, children: icon }), jsx("span", { children: children }), badge !== undefined && (jsx(Badge, { variant: badgeVariant, size: sizeClasses[size].badgeSize, children: badge }))] }));
|
|
11517
11527
|
}
|
|
11518
11528
|
/**
|
|
11519
11529
|
* TabsContent - Content panel for a tab
|
|
@@ -11742,7 +11752,7 @@ function Tabs({ tabs, activeTab: controlledActiveTab, defaultTab, variant = 'und
|
|
|
11742
11752
|
${tab.disabled ? 'opacity-40 cursor-not-allowed' : 'cursor-pointer'}
|
|
11743
11753
|
focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-500 focus-visible:ring-offset-1
|
|
11744
11754
|
group
|
|
11745
|
-
`, children: [tab.icon && jsx("span", { className: `flex-shrink-0 ${sizeClasses[size].icon}`, children: tab.icon }), jsx("span", { className: isTabCloseable ? 'mr-1' : '', children: tab.label }), tab.badge !== undefined && (jsx(Badge, { variant: tab.badgeVariant || 'info', size: sizeClasses[size].badgeSize, children: tab.badge })), isTabCloseable && onClose && (jsx("span", { role: "button", "aria-label": `Close ${tab.label}`, onClick: (e) => handleClose(e, tab.id), className: `
|
|
11755
|
+
`, "data-testid": tab.dataAttributes?.['data-testid'] || `tab-${tab.id}`, ...tab.dataAttributes, children: [tab.icon && jsx("span", { className: `flex-shrink-0 ${sizeClasses[size].icon}`, children: tab.icon }), jsx("span", { className: isTabCloseable ? 'mr-1' : '', children: tab.label }), tab.badge !== undefined && (jsx(Badge, { variant: tab.badgeVariant || 'info', size: sizeClasses[size].badgeSize, children: tab.badge })), isTabCloseable && onClose && (jsx("span", { role: "button", "aria-label": `Close ${tab.label}`, onClick: (e) => handleClose(e, tab.id), className: `
|
|
11746
11756
|
flex-shrink-0 p-0.5 rounded
|
|
11747
11757
|
text-ink-400 hover:text-ink-700 hover:bg-paper-200
|
|
11748
11758
|
opacity-0 group-hover:opacity-100 group-focus-visible:opacity-100
|
|
@@ -12431,7 +12441,7 @@ function SidebarNavItem({ item, onNavigate, level = 0, currentPath }) {
|
|
|
12431
12441
|
? 'text-ink-600 hover:text-ink-900 hover:bg-paper-50 rounded-lg transition-colors'
|
|
12432
12442
|
: 'text-ink-600 hover:text-ink-900 hover:bg-paper-100 rounded-lg transition-colors'}
|
|
12433
12443
|
${paddingLeft} pr-3
|
|
12434
|
-
`, children: [jsxs("div", { className: "flex items-center gap-3 min-w-0 flex-1", children: [item.icon && (jsx("span", { className: "flex-shrink-0 w-5 h-5 flex items-center justify-center text-ink-500", children: item.icon })), jsx("span", { className: "truncate", children: item.label }), item.badge && (jsx("span", { className: "ml-auto flex-shrink-0 px-2 py-0.5 text-xs font-medium bg-accent-100 text-accent-700 rounded-full", children: item.badge }))] }), hasChildren && (jsx("span", { className: "flex-shrink-0 ml-2", children: isExpanded ? (jsx(ChevronDown, { className: "h-4 w-4 text-ink-400" })) : (jsx(ChevronRight, { className: "h-4 w-4 text-ink-400" })) }))] }), hasChildren && isExpanded && (jsx("div", { className: "mt-1 space-y-1", children: item.children?.map((child) => (jsx(SidebarNavItem, { item: child, onNavigate: onNavigate, level: level + 1, currentPath: currentPath }, child.id))) }))] }));
|
|
12444
|
+
`, "data-testid": item.dataAttributes?.['data-testid'] || `sidebar-item-${item.id}`, ...item.dataAttributes, children: [jsxs("div", { className: "flex items-center gap-3 min-w-0 flex-1", children: [item.icon && (jsx("span", { className: "flex-shrink-0 w-5 h-5 flex items-center justify-center text-ink-500", children: item.icon })), jsx("span", { className: "truncate", children: item.label }), item.badge && (jsx("span", { className: "ml-auto flex-shrink-0 px-2 py-0.5 text-xs font-medium bg-accent-100 text-accent-700 rounded-full", children: item.badge }))] }), hasChildren && (jsx("span", { className: "flex-shrink-0 ml-2", children: isExpanded ? (jsx(ChevronDown, { className: "h-4 w-4 text-ink-400" })) : (jsx(ChevronRight, { className: "h-4 w-4 text-ink-400" })) }))] }), hasChildren && isExpanded && (jsx("div", { className: "mt-1 space-y-1", children: item.children?.map((child) => (jsx(SidebarNavItem, { item: child, onNavigate: onNavigate, level: level + 1, currentPath: currentPath }, child.id))) }))] }));
|
|
12435
12445
|
}
|
|
12436
12446
|
function SidebarGroup({ title, items, onNavigate, defaultExpanded = true, currentPath }) {
|
|
12437
12447
|
const [isExpanded, setIsExpanded] = useState(defaultExpanded);
|
|
@@ -12533,7 +12543,7 @@ function Sidebar({ items, onNavigate, className = '', header, footer, currentPat
|
|
|
12533
12543
|
const sidebarContent = (jsxs("div", { ref: sidebarRef, className: `flex flex-col h-full bg-white border-r border-paper-300 notebook-binding ${width} ${className}`, children: [mobileOpen !== undefined && (jsxs("div", { className: "flex items-center justify-between px-4 pt-4 md:hidden", children: [jsx("div", { className: "flex-1", children: header }), jsx("button", { onClick: onMobileClose, className: "\n flex items-center justify-center\n w-10 h-10 -mr-2\n text-ink-500 hover:text-ink-700\n hover:bg-paper-100 rounded-full\n transition-colors\n ", "aria-label": "Close sidebar", children: jsx(X, { className: "w-5 h-5" }) })] })), header && mobileOpen === undefined && (jsx("div", { className: "px-6 pt-6 pb-4", children: header })), header && mobileOpen !== undefined && (jsx("div", { className: "px-6 pt-2 pb-4 hidden md:block", children: header })), jsx("nav", { className: "flex-1 px-3 py-2 space-y-1 overflow-y-auto", children: items.map((item) => {
|
|
12534
12544
|
// Render separator
|
|
12535
12545
|
if (item.separator) {
|
|
12536
|
-
return jsx("div", { className: "my-4 border-t border-paper-300" }, item.id);
|
|
12546
|
+
return (jsx("div", { className: "my-4 border-t border-paper-300", "data-testid": item.dataAttributes?.['data-testid'] || `sidebar-separator-${item.id}`, ...item.dataAttributes }, item.id));
|
|
12537
12547
|
}
|
|
12538
12548
|
// Render nav item
|
|
12539
12549
|
return (jsx(SidebarNavItem, { item: item, onNavigate: handleNavigate, currentPath: currentPath }, item.id));
|
|
@@ -12625,7 +12635,7 @@ function BottomNavigation({ items, activeId, onNavigate, showLabels = true, clas
|
|
|
12625
12635
|
${isActive
|
|
12626
12636
|
? 'text-accent-600'
|
|
12627
12637
|
: 'text-ink-500 hover:text-ink-700'}
|
|
12628
|
-
`, "aria-current": isActive ? 'page' : undefined, "aria-label": item.label, children: [jsxs("div", { className: "relative", children: [jsx("div", { className: `
|
|
12638
|
+
`, "aria-current": isActive ? 'page' : undefined, "aria-label": item.label, "data-testid": item.dataAttributes?.['data-testid'] || `bottom-nav-${item.id}`, ...item.dataAttributes, children: [jsxs("div", { className: "relative", children: [jsx("div", { className: `
|
|
12629
12639
|
w-6 h-6 flex items-center justify-center
|
|
12630
12640
|
transition-transform duration-200
|
|
12631
12641
|
${isActive ? 'scale-110' : 'scale-100'}
|
|
@@ -59795,6 +59805,11 @@ const statusConfig = {
|
|
|
59795
59805
|
defaultLabel: 'Warning',
|
|
59796
59806
|
className: 'bg-warning-100 text-warning-800',
|
|
59797
59807
|
},
|
|
59808
|
+
caution: {
|
|
59809
|
+
icon: Info,
|
|
59810
|
+
defaultLabel: 'Caution',
|
|
59811
|
+
className: 'bg-warning-100 text-warning-700',
|
|
59812
|
+
},
|
|
59798
59813
|
overdue: {
|
|
59799
59814
|
icon: AlertCircle,
|
|
59800
59815
|
defaultLabel: 'Overdue',
|