@dashforge/tw 0.11.0-beta → 1.1.0
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/CHANGELOG.md +234 -12
- package/COVERAGE.md +2 -2
- package/PARITY.md +7 -9
- package/PERFORMANCE.md +3 -4
- package/README.md +74 -15
- package/THEME-AUDIT.md +3 -4
- package/dashforge-tw-1.0.0.tgz +0 -0
- package/dist/index.esm.js +3127 -748
- package/dist/src/components/Alert/Alert.d.ts +65 -0
- package/dist/src/components/Alert/Alert.d.ts.map +1 -0
- package/dist/src/components/Alert/alert.types.d.ts +130 -0
- package/dist/src/components/Alert/alert.types.d.ts.map +1 -0
- package/dist/src/components/Alert/alert.variants.d.ts +85 -0
- package/dist/src/components/Alert/alert.variants.d.ts.map +1 -0
- package/dist/src/components/Avatar/Avatar.d.ts +48 -0
- package/dist/src/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/src/components/Avatar/avatar.types.d.ts +162 -0
- package/dist/src/components/Avatar/avatar.types.d.ts.map +1 -0
- package/dist/src/components/Avatar/avatar.variants.d.ts +208 -0
- package/dist/src/components/Avatar/avatar.variants.d.ts.map +1 -0
- package/dist/src/components/Badge/Badge.d.ts +63 -0
- package/dist/src/components/Badge/Badge.d.ts.map +1 -0
- package/dist/src/components/Badge/badge.types.d.ts +124 -0
- package/dist/src/components/Badge/badge.types.d.ts.map +1 -0
- package/dist/src/components/Badge/badge.variants.d.ts +262 -0
- package/dist/src/components/Badge/badge.variants.d.ts.map +1 -0
- package/dist/src/components/Box/Box.d.ts.map +1 -1
- package/dist/src/components/Box/box.types.d.ts +53 -0
- package/dist/src/components/Box/box.types.d.ts.map +1 -1
- package/dist/src/components/Button/Button.d.ts.map +1 -1
- package/dist/src/components/Button/button.types.d.ts +35 -0
- package/dist/src/components/Button/button.types.d.ts.map +1 -1
- package/dist/src/components/Card/Card.d.ts +107 -0
- package/dist/src/components/Card/Card.d.ts.map +1 -0
- package/dist/src/components/Card/card.types.d.ts +119 -0
- package/dist/src/components/Card/card.types.d.ts.map +1 -0
- package/dist/src/components/Chip/Chip.d.ts +67 -0
- package/dist/src/components/Chip/Chip.d.ts.map +1 -0
- package/dist/src/components/Chip/chip.types.d.ts +113 -0
- package/dist/src/components/Chip/chip.types.d.ts.map +1 -0
- package/dist/src/components/Chip/chip.variants.d.ts +155 -0
- package/dist/src/components/Chip/chip.variants.d.ts.map +1 -0
- package/dist/src/components/IconButton/IconButton.d.ts +57 -0
- package/dist/src/components/IconButton/IconButton.d.ts.map +1 -0
- package/dist/src/components/IconButton/iconButton.types.d.ts +96 -0
- package/dist/src/components/IconButton/iconButton.types.d.ts.map +1 -0
- package/dist/src/components/IconButton/iconButton.variants.d.ts +26 -0
- package/dist/src/components/IconButton/iconButton.variants.d.ts.map +1 -0
- package/dist/src/components/Menu/Menu.d.ts +118 -0
- package/dist/src/components/Menu/Menu.d.ts.map +1 -0
- package/dist/src/components/Menu/menu.types.d.ts +179 -0
- package/dist/src/components/Menu/menu.types.d.ts.map +1 -0
- package/dist/src/components/Menu/menu.variants.d.ts +129 -0
- package/dist/src/components/Menu/menu.variants.d.ts.map +1 -0
- package/dist/src/components/Snackbar/Snackbar.d.ts.map +1 -1
- package/dist/src/components/Snackbar/snackbar.types.d.ts +40 -3
- package/dist/src/components/Snackbar/snackbar.types.d.ts.map +1 -1
- package/dist/src/components/Snackbar/snackbar.variants.d.ts +12 -57
- package/dist/src/components/Snackbar/snackbar.variants.d.ts.map +1 -1
- package/dist/src/components/Spinner/Spinner.d.ts +44 -0
- package/dist/src/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/src/components/Spinner/spinner.types.d.ts +89 -0
- package/dist/src/components/Spinner/spinner.types.d.ts.map +1 -0
- package/dist/src/components/Spinner/spinner.variants.d.ts +111 -0
- package/dist/src/components/Spinner/spinner.variants.d.ts.map +1 -0
- package/dist/src/components/Table/cells/RenderChip.d.ts +15 -72
- package/dist/src/components/Table/cells/RenderChip.d.ts.map +1 -1
- package/dist/src/components/_shared/severity/index.d.ts +21 -0
- package/dist/src/components/_shared/severity/index.d.ts.map +1 -0
- package/dist/src/components/_shared/severity/severity.types.d.ts +48 -0
- package/dist/src/components/_shared/severity/severity.types.d.ts.map +1 -0
- package/dist/src/components/_shared/severity/severityIcons.d.ts +45 -0
- package/dist/src/components/_shared/severity/severityIcons.d.ts.map +1 -0
- package/dist/src/components/_shared/severity/severityVariants.d.ts +22 -0
- package/dist/src/components/_shared/severity/severityVariants.d.ts.map +1 -0
- package/dist/src/index.d.ts +27 -2
- package/dist/src/index.d.ts.map +1 -1
- package/package.json +8 -7
- package/src/components/Alert/Alert.test.tsx +302 -0
- package/src/components/Alert/Alert.tsx +186 -0
- package/src/components/Alert/alert.types.ts +144 -0
- package/src/components/Alert/alert.variants.ts +71 -0
- package/src/components/Autocomplete/autocomplete.variants.ts +1 -1
- package/src/components/Avatar/Avatar.test.tsx +287 -0
- package/src/components/Avatar/Avatar.tsx +304 -0
- package/src/components/Avatar/avatar.types.ts +205 -0
- package/src/components/Avatar/avatar.variants.ts +194 -0
- package/src/components/Badge/Badge.test.tsx +385 -0
- package/src/components/Badge/Badge.tsx +174 -0
- package/src/components/Badge/badge.types.ts +154 -0
- package/src/components/Badge/badge.variants.ts +161 -0
- package/src/components/Box/Box.test.tsx +21 -0
- package/src/components/Box/Box.tsx +32 -3
- package/src/components/Box/box.types.ts +55 -0
- package/src/components/Button/Button.test.tsx +21 -0
- package/src/components/Button/Button.tsx +28 -27
- package/src/components/Button/button.types.ts +36 -0
- package/src/components/Card/Card.test.tsx +291 -0
- package/src/components/Card/Card.tsx +241 -0
- package/src/components/Card/card.types.ts +132 -0
- package/src/components/Chip/Chip.test.tsx +316 -0
- package/src/components/Chip/Chip.tsx +224 -0
- package/src/components/Chip/chip.types.ts +128 -0
- package/src/components/Chip/chip.variants.ts +173 -0
- package/src/components/DataGrid/visibility/ColumnVisibilityMenu.tsx +1 -1
- package/src/components/IconButton/IconButton.test.tsx +367 -0
- package/src/components/IconButton/IconButton.tsx +159 -0
- package/src/components/IconButton/iconButton.types.ts +106 -0
- package/src/components/IconButton/iconButton.variants.ts +31 -0
- package/src/components/LeftNav/leftNav.variants.ts +2 -2
- package/src/components/Menu/Menu.test.tsx +408 -0
- package/src/components/Menu/Menu.tsx +335 -0
- package/src/components/Menu/menu.types.ts +221 -0
- package/src/components/Menu/menu.variants.ts +132 -0
- package/src/components/Pagination/pagination.variants.ts +1 -1
- package/src/components/Snackbar/Snackbar.tsx +46 -28
- package/src/components/Snackbar/snackbar.types.ts +47 -3
- package/src/components/Snackbar/snackbar.variants.ts +29 -22
- package/src/components/Spinner/Spinner.test.tsx +199 -0
- package/src/components/Spinner/Spinner.tsx +158 -0
- package/src/components/Spinner/spinner.types.ts +113 -0
- package/src/components/Spinner/spinner.variants.ts +83 -0
- package/src/components/Table/cells/RenderChip.tsx +24 -87
- package/src/components/Table/cells/RowActionsMenu.tsx +1 -1
- package/src/components/TextField/TextField.test.tsx +5 -1
- package/src/components/_shared/severity/index.ts +33 -0
- package/src/components/_shared/severity/severity.types.ts +50 -0
- package/src/components/_shared/severity/severityIcons.tsx +104 -0
- package/src/components/_shared/severity/severityVariants.test.ts +136 -0
- package/src/components/_shared/severity/severityVariants.ts +115 -0
- package/src/index.ts +163 -1
- package/vite.config.ts +8 -0
- package/vitest.config.mts +8 -1
- package/LICENSE +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderChip.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/cells/RenderChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RenderChip.d.ts","sourceRoot":"","sources":["../../../../../src/components/Table/cells/RenderChip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IACnE,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,2CAWhD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `_shared/severity/` — foundation for every severity-aware
|
|
3
|
+
* component in `@dashforge/tw` (Alert, refactored Snackbar, future
|
|
4
|
+
* Banner / status indicators).
|
|
5
|
+
*
|
|
6
|
+
* Centralising:
|
|
7
|
+
* - the `Severity` and `SeverityVariant` taxonomies (mirror MUI;
|
|
8
|
+
* `danger` not `error` for token alignment)
|
|
9
|
+
* - the 3×4 token-driven color matrix (token-resolved, no hardcoded
|
|
10
|
+
* hex, no `dark:` variants on neutral)
|
|
11
|
+
* - the default per-severity inline SVG icons (`icon={false}` opt-out
|
|
12
|
+
* supported on consumer components)
|
|
13
|
+
* - the ARIA role helper (`alert` vs `status`)
|
|
14
|
+
*
|
|
15
|
+
* Consumers (Alert, Snackbar) import from this barrel — never reach
|
|
16
|
+
* into the individual files.
|
|
17
|
+
*/
|
|
18
|
+
export type { Severity, SeverityClasses, SeverityVariant, } from './severity.types.js';
|
|
19
|
+
export { getSeverityClasses, getSeverityRole, } from './severityVariants.js';
|
|
20
|
+
export { SEVERITY_DEFAULT_ICON, getDefaultSeverityIcon, } from './severityIcons.js';
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/_shared/severity/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,YAAY,EACV,QAAQ,EACR,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared severity types — consumed by every component that surfaces
|
|
3
|
+
* a "semantic visual tone" (Alert, Snackbar, Banner, Badge, Chip when
|
|
4
|
+
* acting as a status indicator, …).
|
|
5
|
+
*
|
|
6
|
+
* **Naming choice**: we follow MUI's `severity` taxonomy
|
|
7
|
+
* (`info / success / warning / danger`) and `variant` taxonomy
|
|
8
|
+
* (`standard / filled / outlined`) so consumers porting from MUI keep
|
|
9
|
+
* their muscle memory. The single Dashforge-specific divergence is
|
|
10
|
+
* `danger` (not MUI's `error`) — chosen to match the `danger.*` token
|
|
11
|
+
* palette in `@dashforge/tw-tokens`. Semantically identical to MUI's
|
|
12
|
+
* `error`; documented in the migration guide.
|
|
13
|
+
*
|
|
14
|
+
* @module @dashforge/tw/_shared/severity
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Visual severity — drives the color treatment of a component.
|
|
18
|
+
* `danger` instead of `error` for token-palette alignment.
|
|
19
|
+
*/
|
|
20
|
+
export type Severity = 'info' | 'success' | 'warning' | 'danger';
|
|
21
|
+
/**
|
|
22
|
+
* Variant of the severity surface. Mirrors MUI's `Alert` variant axis
|
|
23
|
+
* 1:1 so the migration story is trivial.
|
|
24
|
+
*
|
|
25
|
+
* - `standard` (default) — tinted soft background with severity-toned
|
|
26
|
+
* text. The "all-purpose" reading. Most modern design systems call
|
|
27
|
+
* this "soft".
|
|
28
|
+
* - `filled` — solid severity background with light text. Strong
|
|
29
|
+
* visual weight, for high-priority callouts.
|
|
30
|
+
* - `outlined` — transparent background with severity border and
|
|
31
|
+
* severity-toned text. Minimal weight, for dense layouts.
|
|
32
|
+
*/
|
|
33
|
+
export type SeverityVariant = 'standard' | 'filled' | 'outlined';
|
|
34
|
+
/**
|
|
35
|
+
* Per-slot Tailwind class strings emitted by the severity matrix for
|
|
36
|
+
* one (variant, severity) pair. Resolved through `dashforgePreset()`
|
|
37
|
+
* to CSS variables → patch-theme friendly.
|
|
38
|
+
*/
|
|
39
|
+
export interface SeverityClasses {
|
|
40
|
+
/** `<root>` surface: background + text + border base. */
|
|
41
|
+
surface: string;
|
|
42
|
+
/** Border overrides (kept separate from `surface` so components can
|
|
43
|
+
* swap `border-2` etc. without losing the color). */
|
|
44
|
+
border: string;
|
|
45
|
+
/** Icon container color (uses `currentColor` on the inner SVG). */
|
|
46
|
+
icon: string;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=severity.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severity.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/_shared/severity/severity.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjE;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEjE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB;0DACsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { ComponentType, ReactNode, SVGProps } from 'react';
|
|
2
|
+
import type { Severity } from './severity.types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Default severity icons — inline stroke SVG, no runtime icon dep.
|
|
5
|
+
*
|
|
6
|
+
* Convention copied from `Calendar` / `Autocomplete` (existing pattern
|
|
7
|
+
* in the lib): icons live INLINE inside the component module, never as
|
|
8
|
+
* imports from an external icon library. The "no icons in the library"
|
|
9
|
+
* principle means **no external icon package** (`lucide-react`,
|
|
10
|
+
* `phosphor-icons`, etc.) — small file-local SVG functions are
|
|
11
|
+
* allowed and already used.
|
|
12
|
+
*
|
|
13
|
+
* All icons:
|
|
14
|
+
* - 20×20 viewBox (5:1 ratio of intrinsic size to body text-sm)
|
|
15
|
+
* - `stroke="currentColor"` — colored via the parent's
|
|
16
|
+
* `text-<severity>-600` class through the severity matrix
|
|
17
|
+
* - `fill="none"` — outline style, matches Tabler / Heroicons /
|
|
18
|
+
* Phosphor-outline conventions, low visual weight
|
|
19
|
+
* - `aria-hidden="true"` — the message text carries the semantic;
|
|
20
|
+
* the icon is decorative reinforcement, not the announcement
|
|
21
|
+
*/
|
|
22
|
+
type IconProps = SVGProps<SVGSVGElement>;
|
|
23
|
+
declare function InfoIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare function SuccessIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
declare function WarningIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
declare function DangerIcon(props: IconProps): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Map of severity → default Icon component. Used by Alert (and
|
|
29
|
+
* eventually Snackbar / Banner / etc.) to render the per-severity
|
|
30
|
+
* default when the consumer doesn't pass a custom `icon` prop and
|
|
31
|
+
* doesn't opt-out with `icon={false}`.
|
|
32
|
+
*/
|
|
33
|
+
export declare const SEVERITY_DEFAULT_ICON: Record<Severity, ComponentType<IconProps>>;
|
|
34
|
+
/**
|
|
35
|
+
* Convenience helper — render the default icon for a severity as a
|
|
36
|
+
* `ReactNode`, ready to inject into a JSX slot.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* <span className={severityClasses.icon}>
|
|
40
|
+
* {getDefaultSeverityIcon('warning')}
|
|
41
|
+
* </span>
|
|
42
|
+
*/
|
|
43
|
+
export declare function getDefaultSeverityIcon(severity: Severity): ReactNode;
|
|
44
|
+
export { InfoIcon, SuccessIcon, WarningIcon, DangerIcon };
|
|
45
|
+
//# sourceMappingURL=severityIcons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severityIcons.d.ts","sourceRoot":"","sources":["../../../../../src/components/_shared/severity/severityIcons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;GAkBG;AAEH,KAAK,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAczC,iBAAS,QAAQ,CAAC,KAAK,EAAE,SAAS,2CAOjC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,2CAOpC;AAED,iBAAS,WAAW,CAAC,KAAK,EAAE,SAAS,2CAOpC;AAED,iBAAS,UAAU,CAAC,KAAK,EAAE,SAAS,2CAOnC;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,CAAC,CAK5E,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAGpE;AAKD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Severity, SeverityClasses, SeverityVariant } from './severity.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the Tailwind classes for one (variant, severity) pair.
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* const { surface, border, icon } = getSeverityClasses('standard', 'warning');
|
|
7
|
+
* // surface: 'bg-warning-50 text-warning-900'
|
|
8
|
+
* // border: 'border-warning-100'
|
|
9
|
+
* // icon: 'text-warning-600'
|
|
10
|
+
*/
|
|
11
|
+
export declare function getSeverityClasses(variant: SeverityVariant, severity: Severity): SeverityClasses;
|
|
12
|
+
/**
|
|
13
|
+
* ARIA role for a severity. Follows the W3C WAI-ARIA spec:
|
|
14
|
+
* - `alert` for assertive states (warning / danger) — interrupts the
|
|
15
|
+
* screen-reader announcement queue.
|
|
16
|
+
* - `status` for polite states (info / success) — queued behind other
|
|
17
|
+
* announcements.
|
|
18
|
+
*
|
|
19
|
+
* Consumers can override via an explicit `role` prop.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSeverityRole(severity: Severity): 'alert' | 'status';
|
|
22
|
+
//# sourceMappingURL=severityVariants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"severityVariants.d.ts","sourceRoot":"","sources":["../../../../../src/components/_shared/severity/severityVariants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAuFtF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,GACjB,eAAe,CAEjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAEtE"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -81,8 +81,33 @@ export { ConfirmDialogProvider, useConfirm, } from './components/ConfirmDialog/C
|
|
|
81
81
|
export type { ConfirmDialogProviderProps, ConfirmDialogSlotProps, ConfirmFn, ConfirmOptions, ConfirmSeverity, } from './components/ConfirmDialog/confirmDialog.types.js';
|
|
82
82
|
export { confirmDialogVariants } from './components/ConfirmDialog/confirmDialog.variants.js';
|
|
83
83
|
export { SnackbarProvider, useSnackbar, } from './components/Snackbar/Snackbar.js';
|
|
84
|
-
export type { SnackbarProviderProps, SnackbarApi, SnackbarOptions, SnackbarRecord, SnackbarSeverity, SnackbarPosition, SnackbarSlotProps, } from './components/Snackbar/snackbar.types.js';
|
|
84
|
+
export type { SnackbarProviderProps, SnackbarApi, SnackbarOptions, SnackbarRecord, SnackbarSeverity, SnackbarVariant, SnackbarPosition, SnackbarSlotProps, } from './components/Snackbar/snackbar.types.js';
|
|
85
85
|
export { snackbarVariants } from './components/Snackbar/snackbar.variants.js';
|
|
86
|
+
export { Alert, AlertTitle } from './components/Alert/Alert.js';
|
|
87
|
+
export type { AlertProps, AlertTitleProps, AlertSlotProps, } from './components/Alert/alert.types.js';
|
|
88
|
+
export { alertVariants } from './components/Alert/alert.variants.js';
|
|
89
|
+
export { IconButton } from './components/IconButton/IconButton.js';
|
|
90
|
+
export type { IconButtonProps } from './components/IconButton/iconButton.types.js';
|
|
91
|
+
export { ICON_BUTTON_BASE, ICON_BUTTON_SIZE_OVERRIDES, } from './components/IconButton/iconButton.variants.js';
|
|
92
|
+
export { Menu, MenuTrigger, MenuContent, MenuItem, MenuLabel, MenuSeparator, MenuSkeleton, } from './components/Menu/Menu.js';
|
|
93
|
+
export type { MenuProps, MenuTriggerProps, MenuContentProps, MenuItemProps, MenuLabelProps, MenuSeparatorProps, MenuSkeletonProps, MenuPlacement, MenuItemColor, } from './components/Menu/menu.types.js';
|
|
94
|
+
export { menuVariants } from './components/Menu/menu.variants.js';
|
|
95
|
+
export { Badge } from './components/Badge/Badge.js';
|
|
96
|
+
export type { BadgeProps, BadgeColor, BadgePlacement, BadgeOverlap, BadgeSlotProps, } from './components/Badge/badge.types.js';
|
|
97
|
+
export { badgeVariants } from './components/Badge/badge.variants.js';
|
|
98
|
+
export type { BadgeVariants } from './components/Badge/badge.variants.js';
|
|
99
|
+
export { Spinner } from './components/Spinner/Spinner.js';
|
|
100
|
+
export type { SpinnerProps, SpinnerSize, SpinnerColor, SpinnerThickness, } from './components/Spinner/spinner.types.js';
|
|
101
|
+
export { spinnerVariants, SPINNER_STROKE_WIDTH, SPINNER_TRACK_OPACITY, SPINNER_COLORS, } from './components/Spinner/spinner.variants.js';
|
|
102
|
+
export { Avatar, AvatarGroup } from './components/Avatar/Avatar.js';
|
|
103
|
+
export type { AvatarProps, AvatarGroupProps, AvatarSize, AvatarShape, AvatarColor, AvatarTone, } from './components/Avatar/avatar.types.js';
|
|
104
|
+
export { avatarVariants, AVATAR_SOFT_FALLBACK, AVATAR_TONE_FALLBACK, } from './components/Avatar/avatar.variants.js';
|
|
105
|
+
export { Card, CardContent, CardActionArea } from './components/Card/Card.js';
|
|
106
|
+
export type { CardProps, CardContentProps, CardActionAreaProps, } from './components/Card/card.types.js';
|
|
107
|
+
export { Chip } from './components/Chip/Chip.js';
|
|
108
|
+
export type { ChipProps } from './components/Chip/chip.types.js';
|
|
109
|
+
export { chipVariants } from './components/Chip/chip.variants.js';
|
|
110
|
+
export type { ChipVariants } from './components/Chip/chip.variants.js';
|
|
86
111
|
export { Typography } from './components/Typography/Typography.js';
|
|
87
112
|
export type { TypographyProps } from './components/Typography/typography.types.js';
|
|
88
113
|
export { typographyVariants } from './components/Typography/typography.variants.js';
|
|
@@ -142,5 +167,5 @@ export type { VariantProps } from 'tailwind-variants';
|
|
|
142
167
|
/**
|
|
143
168
|
* Package version (synced with `package.json` at publish time).
|
|
144
169
|
*/
|
|
145
|
-
export declare const VERSION = "
|
|
170
|
+
export declare const VERSION = "1.1.0";
|
|
146
171
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dashforge/tw",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.esm.js",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"@radix-ui/react-accordion": "^1.2.0",
|
|
20
20
|
"@radix-ui/react-checkbox": "^1.1.0",
|
|
21
21
|
"@radix-ui/react-dialog": "^1.1.0",
|
|
22
|
+
"@radix-ui/react-dropdown-menu": "^2.1.0",
|
|
22
23
|
"@radix-ui/react-popover": "^1.1.0",
|
|
23
24
|
"@radix-ui/react-radio-group": "^1.3.8",
|
|
24
25
|
"@radix-ui/react-slot": "^1.1.0",
|
|
@@ -27,16 +28,16 @@
|
|
|
27
28
|
"clsx": "^2.1.0",
|
|
28
29
|
"tailwind-merge": "^3.0.0",
|
|
29
30
|
"tailwind-variants": "^3.1.1",
|
|
30
|
-
"@dashforge/
|
|
31
|
-
"@dashforge/
|
|
32
|
-
"@dashforge/
|
|
33
|
-
"@dashforge/
|
|
31
|
+
"@dashforge/calendar-core": "1.0.0",
|
|
32
|
+
"@dashforge/ui-core": "1.0.0",
|
|
33
|
+
"@dashforge/forms": "1.0.0",
|
|
34
|
+
"@dashforge/rbac": "1.0.0"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
37
|
"react": "^18.0.0 || ^19.0.0",
|
|
37
38
|
"tailwindcss": ">=3.4.1",
|
|
38
|
-
"@dashforge/tw-theme": "0.
|
|
39
|
-
"@dashforge/tw-tokens": "0.
|
|
39
|
+
"@dashforge/tw-theme": "1.0.0",
|
|
40
|
+
"@dashforge/tw-tokens": "1.0.0"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
43
|
"@vitejs/plugin-react": "*",
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
// @vitest-environment jsdom
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
4
|
+
import { render, screen, fireEvent, cleanup } from '@testing-library/react';
|
|
5
|
+
import { Alert, AlertTitle } from './Alert.js';
|
|
6
|
+
|
|
7
|
+
void React;
|
|
8
|
+
afterEach(() => cleanup());
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* `<Alert>` unit tests. Covers:
|
|
12
|
+
* - severity × variant matrix (12 combinations) — token classes
|
|
13
|
+
* actually emitted, role auto-derived, no `dark:` leaks
|
|
14
|
+
* - icon control (default per severity, custom override, false → none)
|
|
15
|
+
* - close button (onClose triggers, custom closeText label)
|
|
16
|
+
* - action slot (replaces close button when both set)
|
|
17
|
+
* - AlertTitle sub-component rendering
|
|
18
|
+
* - sx / className / slotProps overrides
|
|
19
|
+
* - bridge integration: visibleWhen + access return null when false
|
|
20
|
+
*
|
|
21
|
+
* NB: visibleWhen + access deep integration is covered by the
|
|
22
|
+
* underlying `useEngineVisibility` and `useAccessState` test suites;
|
|
23
|
+
* here we just verify Alert wires them correctly (return null when
|
|
24
|
+
* gated).
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
describe('<Alert>', () => {
|
|
28
|
+
describe('severity × variant matrix', () => {
|
|
29
|
+
const SEVERITIES = ['info', 'success', 'warning', 'danger'] as const;
|
|
30
|
+
const VARIANTS = ['standard', 'filled', 'outlined'] as const;
|
|
31
|
+
|
|
32
|
+
SEVERITIES.forEach((severity) => {
|
|
33
|
+
VARIANTS.forEach((variant) => {
|
|
34
|
+
it(`renders ${variant}/${severity} with token-driven utilities`, () => {
|
|
35
|
+
const { container } = render(
|
|
36
|
+
<Alert severity={severity} variant={variant}>
|
|
37
|
+
Body content
|
|
38
|
+
</Alert>
|
|
39
|
+
);
|
|
40
|
+
const root = container.firstChild as HTMLElement;
|
|
41
|
+
expect(root).toBeTruthy();
|
|
42
|
+
// Surface and border carry the severity name
|
|
43
|
+
const className = root.className;
|
|
44
|
+
expect(className).toContain(severity);
|
|
45
|
+
// No dark: variants — preset handles inversion via CSS vars
|
|
46
|
+
expect(className).not.toMatch(/\bdark:/);
|
|
47
|
+
// No hardcoded hex
|
|
48
|
+
expect(className).not.toMatch(/#[0-9a-fA-F]{3,8}/);
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('defaults to standard variant when omitted', () => {
|
|
54
|
+
const { container } = render(<Alert severity="info">x</Alert>);
|
|
55
|
+
const root = container.firstChild as HTMLElement;
|
|
56
|
+
// Standard variant emits bg-info-50 + text-info-900
|
|
57
|
+
expect(root.className).toContain('bg-info-50');
|
|
58
|
+
expect(root.className).toContain('text-info-900');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
describe('ARIA role auto-derivation', () => {
|
|
63
|
+
it('uses role="alert" for warning', () => {
|
|
64
|
+
render(<Alert severity="warning">x</Alert>);
|
|
65
|
+
expect(screen.getByRole('alert')).toBeTruthy();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it('uses role="alert" for danger', () => {
|
|
69
|
+
render(<Alert severity="danger">x</Alert>);
|
|
70
|
+
expect(screen.getByRole('alert')).toBeTruthy();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it('uses role="status" for info', () => {
|
|
74
|
+
render(<Alert severity="info">x</Alert>);
|
|
75
|
+
expect(screen.getByRole('status')).toBeTruthy();
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('uses role="status" for success', () => {
|
|
79
|
+
render(<Alert severity="success">x</Alert>);
|
|
80
|
+
expect(screen.getByRole('status')).toBeTruthy();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it('allows explicit role override', () => {
|
|
84
|
+
render(
|
|
85
|
+
<Alert severity="danger" role="status">
|
|
86
|
+
downgraded to polite
|
|
87
|
+
</Alert>
|
|
88
|
+
);
|
|
89
|
+
// No "alert" role, only the overridden "status"
|
|
90
|
+
expect(screen.queryByRole('alert')).toBeFalsy();
|
|
91
|
+
expect(screen.getByRole('status')).toBeTruthy();
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
describe('icon prop — tristate behaviour', () => {
|
|
96
|
+
it('renders a default icon SVG when icon is omitted', () => {
|
|
97
|
+
const { container } = render(<Alert severity="warning">x</Alert>);
|
|
98
|
+
const svg = container.querySelector('svg');
|
|
99
|
+
expect(svg).toBeTruthy();
|
|
100
|
+
expect(svg?.getAttribute('aria-hidden')).toBe('true');
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it('renders the consumer-provided icon when icon is a ReactNode', () => {
|
|
104
|
+
render(
|
|
105
|
+
<Alert severity="info" icon={<span data-testid="custom-icon">ᐅ</span>}>
|
|
106
|
+
x
|
|
107
|
+
</Alert>
|
|
108
|
+
);
|
|
109
|
+
expect(screen.getByTestId('custom-icon')).toBeTruthy();
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('renders no icon container when icon is false', () => {
|
|
113
|
+
const { container } = render(
|
|
114
|
+
<Alert severity="info" icon={false}>
|
|
115
|
+
x
|
|
116
|
+
</Alert>
|
|
117
|
+
);
|
|
118
|
+
// No SVG anywhere (the close button SVG only renders with onClose)
|
|
119
|
+
expect(container.querySelector('svg')).toBeNull();
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
describe('close button (onClose)', () => {
|
|
124
|
+
it('renders no close button when onClose is undefined', () => {
|
|
125
|
+
render(<Alert severity="info">x</Alert>);
|
|
126
|
+
expect(screen.queryByRole('button', { name: /close/i })).toBeNull();
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
it('renders a close button labelled "Close" by default when onClose is defined', () => {
|
|
130
|
+
const onClose = vi.fn();
|
|
131
|
+
render(
|
|
132
|
+
<Alert severity="warning" onClose={onClose}>
|
|
133
|
+
x
|
|
134
|
+
</Alert>
|
|
135
|
+
);
|
|
136
|
+
const btn = screen.getByRole('button', { name: /^close$/i });
|
|
137
|
+
expect(btn).toBeTruthy();
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it('fires onClose on click', () => {
|
|
141
|
+
const onClose = vi.fn();
|
|
142
|
+
render(
|
|
143
|
+
<Alert severity="warning" onClose={onClose}>
|
|
144
|
+
x
|
|
145
|
+
</Alert>
|
|
146
|
+
);
|
|
147
|
+
fireEvent.click(screen.getByRole('button', { name: /close/i }));
|
|
148
|
+
expect(onClose).toHaveBeenCalledTimes(1);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it('respects custom closeText for the aria-label', () => {
|
|
152
|
+
const onClose = vi.fn();
|
|
153
|
+
render(
|
|
154
|
+
<Alert severity="warning" onClose={onClose} closeText="Dismiss alert">
|
|
155
|
+
x
|
|
156
|
+
</Alert>
|
|
157
|
+
);
|
|
158
|
+
expect(screen.getByRole('button', { name: /dismiss alert/i })).toBeTruthy();
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
describe('action slot', () => {
|
|
163
|
+
it('renders the action node when provided', () => {
|
|
164
|
+
render(
|
|
165
|
+
<Alert
|
|
166
|
+
severity="warning"
|
|
167
|
+
action={<button data-testid="renew-cta">Renew</button>}
|
|
168
|
+
>
|
|
169
|
+
Trial expires
|
|
170
|
+
</Alert>
|
|
171
|
+
);
|
|
172
|
+
expect(screen.getByTestId('renew-cta')).toBeTruthy();
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it('action wins over onClose when both are provided (matches MUI)', () => {
|
|
176
|
+
const onClose = vi.fn();
|
|
177
|
+
render(
|
|
178
|
+
<Alert
|
|
179
|
+
severity="warning"
|
|
180
|
+
onClose={onClose}
|
|
181
|
+
action={<button data-testid="custom-action">Custom</button>}
|
|
182
|
+
>
|
|
183
|
+
x
|
|
184
|
+
</Alert>
|
|
185
|
+
);
|
|
186
|
+
// Custom action renders
|
|
187
|
+
expect(screen.getByTestId('custom-action')).toBeTruthy();
|
|
188
|
+
// No auto close button rendered alongside
|
|
189
|
+
expect(screen.queryByRole('button', { name: /^close$/i })).toBeNull();
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
describe('<AlertTitle>', () => {
|
|
194
|
+
it('renders title text', () => {
|
|
195
|
+
render(
|
|
196
|
+
<Alert severity="info">
|
|
197
|
+
<AlertTitle>Heads up</AlertTitle>
|
|
198
|
+
Body line below.
|
|
199
|
+
</Alert>
|
|
200
|
+
);
|
|
201
|
+
expect(screen.getByText('Heads up')).toBeTruthy();
|
|
202
|
+
expect(screen.getByText(/Body line below/i)).toBeTruthy();
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it('AlertTitle accepts className override', () => {
|
|
206
|
+
const { container } = render(
|
|
207
|
+
<AlertTitle className="custom-title-class">Title</AlertTitle>
|
|
208
|
+
);
|
|
209
|
+
const node = container.firstChild as HTMLElement;
|
|
210
|
+
expect(node.className).toContain('custom-title-class');
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
describe('overrides — sx / className / slotProps', () => {
|
|
215
|
+
it('applies sx to the root', () => {
|
|
216
|
+
const { container } = render(
|
|
217
|
+
<Alert severity="info" sx="mt-8">
|
|
218
|
+
x
|
|
219
|
+
</Alert>
|
|
220
|
+
);
|
|
221
|
+
const root = container.firstChild as HTMLElement;
|
|
222
|
+
expect(root.className).toContain('mt-8');
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
it('appends className to the root', () => {
|
|
226
|
+
const { container } = render(
|
|
227
|
+
<Alert severity="info" className="my-custom-class">
|
|
228
|
+
x
|
|
229
|
+
</Alert>
|
|
230
|
+
);
|
|
231
|
+
const root = container.firstChild as HTMLElement;
|
|
232
|
+
expect(root.className).toContain('my-custom-class');
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
it('applies slotProps.root.className to the root', () => {
|
|
236
|
+
const { container } = render(
|
|
237
|
+
<Alert
|
|
238
|
+
severity="info"
|
|
239
|
+
slotProps={{ root: { className: 'slot-root-class' } }}
|
|
240
|
+
>
|
|
241
|
+
x
|
|
242
|
+
</Alert>
|
|
243
|
+
);
|
|
244
|
+
const root = container.firstChild as HTMLElement;
|
|
245
|
+
expect(root.className).toContain('slot-root-class');
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
it('applies slotProps.icon.className to the icon wrapper', () => {
|
|
249
|
+
const { container } = render(
|
|
250
|
+
<Alert
|
|
251
|
+
severity="warning"
|
|
252
|
+
slotProps={{ icon: { className: 'icon-custom' } }}
|
|
253
|
+
>
|
|
254
|
+
x
|
|
255
|
+
</Alert>
|
|
256
|
+
);
|
|
257
|
+
const iconSpan = container.querySelector('.icon-custom');
|
|
258
|
+
expect(iconSpan).toBeTruthy();
|
|
259
|
+
});
|
|
260
|
+
|
|
261
|
+
it('applies slotProps.closeButton.className to the close button', () => {
|
|
262
|
+
const onClose = vi.fn();
|
|
263
|
+
render(
|
|
264
|
+
<Alert
|
|
265
|
+
severity="warning"
|
|
266
|
+
onClose={onClose}
|
|
267
|
+
slotProps={{ closeButton: { className: 'close-custom' } }}
|
|
268
|
+
>
|
|
269
|
+
x
|
|
270
|
+
</Alert>
|
|
271
|
+
);
|
|
272
|
+
const btn = screen.getByRole('button', { name: /close/i });
|
|
273
|
+
expect(btn.className).toContain('close-custom');
|
|
274
|
+
});
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
describe('bridge integration — visibleWhen', () => {
|
|
278
|
+
it('renders when visibleWhen returns true (no DashForm context)', () => {
|
|
279
|
+
const { container } = render(
|
|
280
|
+
<Alert severity="info" visibleWhen={() => true}>
|
|
281
|
+
shown
|
|
282
|
+
</Alert>
|
|
283
|
+
);
|
|
284
|
+
expect(container.firstChild).toBeTruthy();
|
|
285
|
+
expect(screen.getByText('shown')).toBeTruthy();
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
it('returns null when visibleWhen returns false', () => {
|
|
289
|
+
const { container } = render(
|
|
290
|
+
<Alert severity="info" visibleWhen={() => false}>
|
|
291
|
+
hidden
|
|
292
|
+
</Alert>
|
|
293
|
+
);
|
|
294
|
+
expect(container.firstChild).toBeNull();
|
|
295
|
+
});
|
|
296
|
+
|
|
297
|
+
it('renders normally when visibleWhen is omitted', () => {
|
|
298
|
+
const { container } = render(<Alert severity="info">always</Alert>);
|
|
299
|
+
expect(container.firstChild).toBeTruthy();
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
});
|