@fpkit/acss 1.0.0 → 2.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/README.md +60 -0
- package/libs/{chunk-7XPFW7CB.js → chunk-43TK2ICH.js} +2 -2
- package/libs/chunk-5PJYLVFY.cjs +17 -0
- package/libs/chunk-5PJYLVFY.cjs.map +1 -0
- package/libs/chunk-E4OSROCA.cjs +17 -0
- package/libs/chunk-E4OSROCA.cjs.map +1 -0
- package/libs/chunk-KVKQLRJG.js +10 -0
- package/libs/chunk-KVKQLRJG.js.map +1 -0
- package/libs/{chunk-QVW6W76L.cjs → chunk-MGPWZRBX.cjs} +3 -3
- package/libs/chunk-NNTBIHSD.js +8 -0
- package/libs/chunk-NNTBIHSD.js.map +1 -0
- package/libs/{chunk-X3JCTEPD.js → chunk-QKHPHMG2.js} +2 -2
- package/libs/{chunk-T4T6GWYQ.cjs → chunk-R7NLLZU2.cjs} +3 -3
- package/libs/{chunk-X5LGFCWG.js → chunk-UJAQVHWC.js} +3 -3
- package/libs/{chunk-DKTHCQ5P.cjs → chunk-X5RKCLDC.cjs} +3 -3
- package/libs/components/breadcrumbs/breadcrumb.cjs +5 -5
- package/libs/components/breadcrumbs/breadcrumb.d.cts +1 -1
- package/libs/components/breadcrumbs/breadcrumb.d.ts +1 -1
- package/libs/components/breadcrumbs/breadcrumb.js +2 -2
- package/libs/components/button.cjs +3 -3
- package/libs/components/button.d.cts +1 -1
- package/libs/components/button.d.ts +1 -1
- package/libs/components/button.js +1 -1
- package/libs/components/dialog/dialog.cjs +4 -4
- package/libs/components/dialog/dialog.js +2 -2
- package/libs/components/icons/icon.d.cts +4 -445
- package/libs/components/icons/icon.d.ts +4 -445
- package/libs/components/link/link.cjs +11 -3
- package/libs/components/link/link.d.cts +131 -3
- package/libs/components/link/link.d.ts +131 -3
- package/libs/components/link/link.js +1 -1
- package/libs/components/modal.cjs +3 -3
- package/libs/components/modal.js +2 -2
- package/libs/hooks.cjs +3 -3
- package/libs/hooks.d.cts +1 -1
- package/libs/hooks.d.ts +1 -1
- package/libs/hooks.js +2 -2
- package/libs/icons-287fce3a.d.ts +445 -0
- package/libs/icons.d.cts +1 -1
- package/libs/icons.d.ts +1 -1
- package/libs/index.cjs +39 -34
- package/libs/index.cjs.map +1 -1
- package/libs/index.d.cts +395 -4
- package/libs/index.d.ts +395 -4
- package/libs/index.js +17 -15
- package/libs/index.js.map +1 -1
- package/package.json +2 -2
- package/src/components/alert/alert.tsx +2 -3
- package/src/components/breadcrumbs/breadcrumb.test.tsx +1 -2
- package/src/components/buttons/README.mdx +19 -9
- package/src/components/buttons/button.tsx +19 -15
- package/src/components/link/link.stories.tsx +205 -8
- package/src/components/link/link.test.tsx +1 -1
- package/src/components/link/link.tsx +22 -0
- package/src/components/link/link.types.ts +11 -3
- package/src/docs/fpkit-developer.mdx +131 -53
- package/src/index.ts +7 -1
- package/libs/chunk-33PNJ4LO.cjs +0 -15
- package/libs/chunk-33PNJ4LO.cjs.map +0 -1
- package/libs/chunk-GT77BX4L.cjs +0 -17
- package/libs/chunk-GT77BX4L.cjs.map +0 -1
- package/libs/chunk-OVWLQYMK.js +0 -10
- package/libs/chunk-OVWLQYMK.js.map +0 -1
- package/libs/chunk-UEPAWMDF.js +0 -8
- package/libs/chunk-UEPAWMDF.js.map +0 -1
- package/libs/link-5192f411.d.ts +0 -323
- /package/libs/{chunk-7XPFW7CB.js.map → chunk-43TK2ICH.js.map} +0 -0
- /package/libs/{chunk-QVW6W76L.cjs.map → chunk-MGPWZRBX.cjs.map} +0 -0
- /package/libs/{chunk-X3JCTEPD.js.map → chunk-QKHPHMG2.js.map} +0 -0
- /package/libs/{chunk-T4T6GWYQ.cjs.map → chunk-R7NLLZU2.cjs.map} +0 -0
- /package/libs/{chunk-X5LGFCWG.js.map → chunk-UJAQVHWC.js.map} +0 -0
- /package/libs/{chunk-DKTHCQ5P.cjs.map → chunk-X5RKCLDC.cjs.map} +0 -0
|
@@ -1,3 +1,131 @@
|
|
|
1
|
-
import 'react';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Link - A semantic, accessible anchor component with enhanced security and styling.
|
|
5
|
+
*
|
|
6
|
+
* The Link component renders accessible `<a>` elements with automatic security
|
|
7
|
+
* attributes for external links, customizable styling variants, and full WCAG 2.1
|
|
8
|
+
* AA compliance. It supports traditional text links, button-styled links, and
|
|
9
|
+
* programmatic focus management via ref forwarding.
|
|
10
|
+
*
|
|
11
|
+
* ## Features
|
|
12
|
+
*
|
|
13
|
+
* - 🔒 **Automatic Security**: External links get `rel="noopener noreferrer"`
|
|
14
|
+
* - ♿ **WCAG 2.1 AA Compliant**: Accessible focus indicators and semantic HTML
|
|
15
|
+
* - 🎨 **Flexible Styling**: Text links, button links, and pill variants
|
|
16
|
+
* - ⚡ **Performance**: Optional prefetch hints for faster navigation
|
|
17
|
+
* - 🎯 **Ref Forwarding**: Direct DOM access for focus management and scroll
|
|
18
|
+
* - 🧪 **Type-Safe**: Full TypeScript support with comprehensive prop types
|
|
19
|
+
*
|
|
20
|
+
* ## Accessibility
|
|
21
|
+
*
|
|
22
|
+
* - ✅ Semantic `<a>` element for proper keyboard navigation
|
|
23
|
+
* - ✅ Focus indicators meet WCAG 2.4.7 (3:1 contrast ratio)
|
|
24
|
+
* - ✅ Screen readers announce link purpose and destination
|
|
25
|
+
* - ✅ External links include security attributes automatically
|
|
26
|
+
* - ✅ Supports `aria-label` for icon-only or ambiguous links
|
|
27
|
+
* - ✅ Ref forwarding enables skip-link patterns
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // Basic internal link
|
|
31
|
+
* <Link href="/about">About Us</Link>
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // External link with automatic security
|
|
35
|
+
* <Link href="https://example.com" target="_blank">
|
|
36
|
+
* Visit Example
|
|
37
|
+
* </Link>
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Button-styled call-to-action link
|
|
41
|
+
* <Link href="/signup">
|
|
42
|
+
* <b>Get Started</b>
|
|
43
|
+
* </Link>
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Icon-only link with accessible label
|
|
47
|
+
* <Link href="/settings" aria-label="Open settings">
|
|
48
|
+
* <SettingsIcon aria-hidden="true" />
|
|
49
|
+
* </Link>
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* // Analytics tracking with onClick (includes keyboard users)
|
|
53
|
+
* <Link
|
|
54
|
+
* href="/products"
|
|
55
|
+
* onClick={(e) => trackEvent('link_click', { href: '/products' })}
|
|
56
|
+
* >
|
|
57
|
+
* Browse Products
|
|
58
|
+
* </Link>
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* // Skip link with ref forwarding for focus management
|
|
62
|
+
* const mainRef = useRef<HTMLAnchorElement>(null);
|
|
63
|
+
*
|
|
64
|
+
* <Link ref={mainRef} href="#main-content">
|
|
65
|
+
* Skip to main content
|
|
66
|
+
* </Link>
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // Custom styled link with CSS variables
|
|
70
|
+
* <Link
|
|
71
|
+
* href="/products"
|
|
72
|
+
* styles={{
|
|
73
|
+
* '--link-color': '#0066cc',
|
|
74
|
+
* '--link-decoration': 'underline',
|
|
75
|
+
* }}
|
|
76
|
+
* >
|
|
77
|
+
* Browse Products
|
|
78
|
+
* </Link>
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // ✅ GOOD: Descriptive link text
|
|
82
|
+
* <Link href="/docs/installation">
|
|
83
|
+
* Read installation guide
|
|
84
|
+
* </Link>
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* // ❌ BAD: Generic link text (poor for screen readers)
|
|
88
|
+
* <Link href="/docs/installation">
|
|
89
|
+
* Click here
|
|
90
|
+
* </Link>
|
|
91
|
+
*
|
|
92
|
+
* @see {@link LinkProps} for complete prop documentation
|
|
93
|
+
*/
|
|
94
|
+
declare const Link: React.ForwardRefExoticComponent<{
|
|
95
|
+
href?: string | undefined;
|
|
96
|
+
target?: string | undefined;
|
|
97
|
+
rel?: string | undefined;
|
|
98
|
+
children: React.ReactNode;
|
|
99
|
+
styles?: React.CSSProperties | undefined;
|
|
100
|
+
prefetch?: boolean | undefined;
|
|
101
|
+
btnStyle?: string | undefined;
|
|
102
|
+
onClick?: ((event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void) | undefined;
|
|
103
|
+
onPointerDown?: ((event: React.PointerEvent<HTMLAnchorElement>) => void) | undefined;
|
|
104
|
+
icon?: React.ReactNode;
|
|
105
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "style"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
106
|
+
declare const IconLink: React.ForwardRefExoticComponent<{
|
|
107
|
+
href?: string | undefined;
|
|
108
|
+
target?: string | undefined;
|
|
109
|
+
rel?: string | undefined;
|
|
110
|
+
children: React.ReactNode;
|
|
111
|
+
styles?: React.CSSProperties | undefined;
|
|
112
|
+
prefetch?: boolean | undefined;
|
|
113
|
+
btnStyle?: string | undefined;
|
|
114
|
+
onClick?: ((event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void) | undefined;
|
|
115
|
+
onPointerDown?: ((event: React.PointerEvent<HTMLAnchorElement>) => void) | undefined;
|
|
116
|
+
icon?: React.ReactNode;
|
|
117
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "style"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
118
|
+
declare const LinkButton: React.ForwardRefExoticComponent<{
|
|
119
|
+
href?: string | undefined;
|
|
120
|
+
target?: string | undefined;
|
|
121
|
+
rel?: string | undefined;
|
|
122
|
+
children: React.ReactNode;
|
|
123
|
+
styles?: React.CSSProperties | undefined;
|
|
124
|
+
prefetch?: boolean | undefined;
|
|
125
|
+
btnStyle?: string | undefined;
|
|
126
|
+
onClick?: ((event: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void) | undefined;
|
|
127
|
+
onPointerDown?: ((event: React.PointerEvent<HTMLAnchorElement>) => void) | undefined;
|
|
128
|
+
icon?: React.ReactNode;
|
|
129
|
+
} & Omit<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">, "style"> & React.RefAttributes<HTMLAnchorElement>>;
|
|
130
|
+
|
|
131
|
+
export { IconLink, Link, LinkButton, Link as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { a as Link,
|
|
1
|
+
export { b as IconLink, a as Link, c as LinkButton, d as default } from '../../chunk-NNTBIHSD.js';
|
|
2
2
|
import '../../chunk-HHLNOC5T.js';
|
|
3
3
|
//# sourceMappingURL=out.js.map
|
|
4
4
|
//# sourceMappingURL=link.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('../chunk-
|
|
3
|
+
var chunkX5RKCLDC_cjs = require('../chunk-X5RKCLDC.cjs');
|
|
4
|
+
require('../chunk-E4OSROCA.cjs');
|
|
5
5
|
require('../chunk-PNWIRCG3.cjs');
|
|
6
6
|
require('../chunk-TON2YGMD.cjs');
|
|
7
7
|
require('../chunk-ENTCUJ3A.cjs');
|
|
@@ -10,7 +10,7 @@ require('../chunk-ENTCUJ3A.cjs');
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, 'Modal', {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkX5RKCLDC_cjs.a; }
|
|
14
14
|
});
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
|
16
16
|
//# sourceMappingURL=modal.cjs.map
|
package/libs/components/modal.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { a as Modal } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { a as Modal } from '../chunk-43TK2ICH.js';
|
|
2
|
+
import '../chunk-KVKQLRJG.js';
|
|
3
3
|
import '../chunk-BFK62VX5.js';
|
|
4
4
|
import '../chunk-75QHTLFO.js';
|
|
5
5
|
import '../chunk-HHLNOC5T.js';
|
package/libs/hooks.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkR7NLLZU2_cjs = require('./chunk-R7NLLZU2.cjs');
|
|
4
4
|
var chunkPDD4N5P5_cjs = require('./chunk-PDD4N5P5.cjs');
|
|
5
5
|
var chunkTON2YGMD_cjs = require('./chunk-TON2YGMD.cjs');
|
|
6
|
-
require('./chunk-
|
|
6
|
+
require('./chunk-5PJYLVFY.cjs');
|
|
7
7
|
require('./chunk-ENTCUJ3A.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, 'useBreadcrumbSegments', {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkR7NLLZU2_cjs.a; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, 'usePopover', {
|
|
16
16
|
enumerable: true,
|
package/libs/hooks.d.cts
CHANGED
package/libs/hooks.d.ts
CHANGED
package/libs/hooks.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { a as useBreadcrumbSegments } from './chunk-
|
|
1
|
+
export { a as useBreadcrumbSegments } from './chunk-UJAQVHWC.js';
|
|
2
2
|
export { a as usePopover } from './chunk-GCGKYLDG.js';
|
|
3
3
|
export { a as useDisabledState } from './chunk-75QHTLFO.js';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import './chunk-NNTBIHSD.js';
|
|
5
5
|
import './chunk-HHLNOC5T.js';
|
|
6
6
|
//# sourceMappingURL=out.js.map
|
|
7
7
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1,445 @@
|
|
|
1
|
+
import { C as ComponentProps } from './component-props-67d978a2.js';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { U as UI } from './ui-d01b50d4.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Props for individual icon SVG components (e.g., Icon.Code, Icon.Home).
|
|
7
|
+
*
|
|
8
|
+
* These props control the visual presentation of SVG icons. Icon components
|
|
9
|
+
* are decorative by default and should be wrapped in the `Icon` container
|
|
10
|
+
* component which handles accessibility concerns.
|
|
11
|
+
*
|
|
12
|
+
* @property {string} [fill] - SVG fill color (CSS color value)
|
|
13
|
+
* @property {number} [size] - Icon size in pixels (sets both width and height)
|
|
14
|
+
* @property {string} [strokeColor] - SVG stroke color (CSS color value)
|
|
15
|
+
* @property {string} [strokeWidth] - SVG stroke width (e.g., '2px', '1.5')
|
|
16
|
+
* @property {string} [role] - ARIA role (use 'img' for semantic icons)
|
|
17
|
+
* @property {string} [aria-label] - Accessible label for standalone icons
|
|
18
|
+
* @property {boolean} [aria-hidden] - Hide from screen readers (default: true via Icon wrapper)
|
|
19
|
+
* @property {string} [alt] - @deprecated Use aria-label instead. Legacy prop for accessible label.
|
|
20
|
+
* @property {number} [width] - Explicit width in pixels (overrides size)
|
|
21
|
+
* @property {number} [height] - Explicit height in pixels (overrides size)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* // Decorative icon with custom styling
|
|
26
|
+
* <Icon>
|
|
27
|
+
* <Icon.Code size={24} fill="blue" />
|
|
28
|
+
* View Code
|
|
29
|
+
* </Icon>
|
|
30
|
+
*
|
|
31
|
+
* // Standalone semantic icon
|
|
32
|
+
* <Icon aria-hidden={false} aria-label="Code snippet">
|
|
33
|
+
* <Icon.Code size={20} />
|
|
34
|
+
* </Icon>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
interface IconProps$1 extends Partial<ComponentProps> {
|
|
38
|
+
/** SVG fill color */
|
|
39
|
+
fill?: string;
|
|
40
|
+
/** Icon size in pixels (sets both width and height) */
|
|
41
|
+
size?: number;
|
|
42
|
+
/** SVG stroke color */
|
|
43
|
+
strokeColor?: string;
|
|
44
|
+
/** SVG stroke width */
|
|
45
|
+
strokeWidth?: string;
|
|
46
|
+
/** ARIA role (use 'img' for semantic icons) */
|
|
47
|
+
role?: string;
|
|
48
|
+
/** Accessible label (required for standalone icons) */
|
|
49
|
+
'aria-label'?: string;
|
|
50
|
+
/** Hide from screen readers (default: true) */
|
|
51
|
+
'aria-hidden'?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated Use aria-label instead. This prop exists for backward compatibility.
|
|
54
|
+
* The alt attribute is only valid for img elements, not SVG.
|
|
55
|
+
*/
|
|
56
|
+
alt?: string;
|
|
57
|
+
/** Explicit width in pixels */
|
|
58
|
+
width?: number;
|
|
59
|
+
/** Explicit height in pixels */
|
|
60
|
+
height?: number;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
declare function Star({ size, fill, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, 'strokeColor' | 'fill' | 'styles' | 'size' | 'role' | 'alt'>): React.JSX.Element;
|
|
64
|
+
declare namespace Star {
|
|
65
|
+
var displayName: string;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
type IconProps = React.ComponentProps<typeof UI> & {
|
|
69
|
+
/**
|
|
70
|
+
* Controls screen reader visibility.
|
|
71
|
+
* - `true` (default): Hides icon from screen readers (decorative icon)
|
|
72
|
+
* - `false`: Makes icon visible to screen readers (semantic icon)
|
|
73
|
+
*
|
|
74
|
+
* **When to use decorative (aria-hidden="true", default):**
|
|
75
|
+
* - Icon accompanies visible text (e.g., button with icon + label)
|
|
76
|
+
* - Icon is purely visual decoration
|
|
77
|
+
*
|
|
78
|
+
* **When to use semantic (aria-hidden="false"):**
|
|
79
|
+
* - Icon is the only content (e.g., icon-only button)
|
|
80
|
+
* - Must provide `aria-label` or `aria-labelledby` for accessible name
|
|
81
|
+
*
|
|
82
|
+
* @default true
|
|
83
|
+
* @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
|
|
84
|
+
*/
|
|
85
|
+
"aria-hidden"?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Accessible label for semantic icons.
|
|
88
|
+
* Required when icon is standalone (not accompanied by visible text).
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```tsx
|
|
92
|
+
* // ✅ GOOD: Icon-only button with accessible name
|
|
93
|
+
* <button>
|
|
94
|
+
* <Icon aria-hidden={false} aria-label="Close dialog">
|
|
95
|
+
* <Icon.Remove />
|
|
96
|
+
* </Icon>
|
|
97
|
+
* </button>
|
|
98
|
+
*
|
|
99
|
+
* // ✅ GOOD: Icon with visible text (default decorative)
|
|
100
|
+
* <button>
|
|
101
|
+
* <Icon><Icon.Add /></Icon>
|
|
102
|
+
* Add Item
|
|
103
|
+
* </button>
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
"aria-label"?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Semantic role override.
|
|
109
|
+
* Use `role="img"` when icon conveys meaning and is not decorative.
|
|
110
|
+
*
|
|
111
|
+
* @default undefined (no role for decorative icons)
|
|
112
|
+
*/
|
|
113
|
+
role?: string;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Icon wrapper component that enforces accessibility best practices.
|
|
117
|
+
*
|
|
118
|
+
* **Default behavior (decorative icon):**
|
|
119
|
+
* - Hidden from screen readers (`aria-hidden="true"`)
|
|
120
|
+
* - Used when icon accompanies visible text
|
|
121
|
+
*
|
|
122
|
+
* **Semantic icon pattern:**
|
|
123
|
+
* - Set `aria-hidden={false}` to expose to screen readers
|
|
124
|
+
* - Must provide `aria-label` for accessible name
|
|
125
|
+
* - Consider `role="img"` for complex SVG icons
|
|
126
|
+
*
|
|
127
|
+
* @param {IconProps} props - Component props
|
|
128
|
+
* @returns {React.ReactElement} Accessible icon wrapper
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* // ✅ Decorative icon with text (default)
|
|
132
|
+
* <button>
|
|
133
|
+
* <Icon><Icon.Save /></Icon>
|
|
134
|
+
* Save Changes
|
|
135
|
+
* </button>
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* // ✅ Semantic icon-only button
|
|
139
|
+
* <button aria-label="Close dialog">
|
|
140
|
+
* <Icon aria-hidden={false}>
|
|
141
|
+
* <Icon.Remove />
|
|
142
|
+
* </Icon>
|
|
143
|
+
* </button>
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* // ❌ BAD: Icon-only button without accessible name
|
|
147
|
+
* <button>
|
|
148
|
+
* <Icon><Icon.Remove /></Icon>
|
|
149
|
+
* </button>
|
|
150
|
+
*/
|
|
151
|
+
declare const Icon: {
|
|
152
|
+
({ id, classes, children, styles, "aria-hidden": ariaHidden, "aria-label": ariaLabel, role, ...props }: IconProps): React.JSX.Element;
|
|
153
|
+
displayName: string;
|
|
154
|
+
Add: {
|
|
155
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
156
|
+
styles: {
|
|
157
|
+
fill: string;
|
|
158
|
+
display: string;
|
|
159
|
+
alignItems: string;
|
|
160
|
+
width: string;
|
|
161
|
+
};
|
|
162
|
+
displayName: string;
|
|
163
|
+
};
|
|
164
|
+
ArrowDown: {
|
|
165
|
+
({ fill, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size">): React.JSX.Element;
|
|
166
|
+
styles: {
|
|
167
|
+
display: string;
|
|
168
|
+
alignItems: string;
|
|
169
|
+
width: string;
|
|
170
|
+
};
|
|
171
|
+
displayName: string;
|
|
172
|
+
};
|
|
173
|
+
ArrowLeft: {
|
|
174
|
+
({ strokeColor, fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
175
|
+
styles: {
|
|
176
|
+
display: string;
|
|
177
|
+
alignItems: string;
|
|
178
|
+
width: string;
|
|
179
|
+
};
|
|
180
|
+
displayName: string;
|
|
181
|
+
};
|
|
182
|
+
ArrowRight: {
|
|
183
|
+
({ size, fill, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
184
|
+
displayName: string;
|
|
185
|
+
};
|
|
186
|
+
ArrowUp: {
|
|
187
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
188
|
+
displayName: string;
|
|
189
|
+
style: {
|
|
190
|
+
fill: string;
|
|
191
|
+
stroke: string;
|
|
192
|
+
display: string;
|
|
193
|
+
alignItems: string;
|
|
194
|
+
width: string;
|
|
195
|
+
};
|
|
196
|
+
};
|
|
197
|
+
Chat: {
|
|
198
|
+
({ size, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
199
|
+
styles: {
|
|
200
|
+
display: string;
|
|
201
|
+
alignItems: string;
|
|
202
|
+
width: string;
|
|
203
|
+
};
|
|
204
|
+
displayName: string;
|
|
205
|
+
};
|
|
206
|
+
Code: {
|
|
207
|
+
({ strokeColor, fill, size, styles, role, alt, ...props }?: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
208
|
+
styles: {
|
|
209
|
+
fill: string;
|
|
210
|
+
stroke: string;
|
|
211
|
+
display: string;
|
|
212
|
+
alignItems: string;
|
|
213
|
+
width: string;
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
Copy: {
|
|
217
|
+
({ size, strokeColor, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
218
|
+
displayName: string;
|
|
219
|
+
styles: {
|
|
220
|
+
stroke: string;
|
|
221
|
+
display: string;
|
|
222
|
+
alignItems: string;
|
|
223
|
+
width: string;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
Down: {
|
|
227
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
228
|
+
displayName: string;
|
|
229
|
+
styles: {
|
|
230
|
+
display: string;
|
|
231
|
+
alignItems: string;
|
|
232
|
+
width: string;
|
|
233
|
+
};
|
|
234
|
+
};
|
|
235
|
+
Home: {
|
|
236
|
+
({ strokeColor, fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
237
|
+
displayName: string;
|
|
238
|
+
styles: {
|
|
239
|
+
fill: string;
|
|
240
|
+
stroke: string;
|
|
241
|
+
display: string;
|
|
242
|
+
alignItems: string;
|
|
243
|
+
width: string;
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
Info: {
|
|
247
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
248
|
+
displayName: string;
|
|
249
|
+
};
|
|
250
|
+
InfoSolid: {
|
|
251
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
252
|
+
displayName: string;
|
|
253
|
+
};
|
|
254
|
+
AlertSolid: {
|
|
255
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
256
|
+
displayName: string;
|
|
257
|
+
};
|
|
258
|
+
Left: {
|
|
259
|
+
({ fill, size, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
260
|
+
displayName: string;
|
|
261
|
+
styles: {
|
|
262
|
+
fill: string;
|
|
263
|
+
display: string;
|
|
264
|
+
alignItems: string;
|
|
265
|
+
width: string;
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
Minus: {
|
|
269
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
270
|
+
displayName: string;
|
|
271
|
+
styles: {
|
|
272
|
+
fill: string;
|
|
273
|
+
};
|
|
274
|
+
};
|
|
275
|
+
Pause: {
|
|
276
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
277
|
+
displayName: string;
|
|
278
|
+
style: {
|
|
279
|
+
fill: string;
|
|
280
|
+
stroke: string;
|
|
281
|
+
display: string;
|
|
282
|
+
alignItems: string;
|
|
283
|
+
width: string;
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
PauseSolid: {
|
|
287
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
288
|
+
displayName: string;
|
|
289
|
+
style: {
|
|
290
|
+
fill: string;
|
|
291
|
+
stroke: string;
|
|
292
|
+
display: string;
|
|
293
|
+
alignItems: string;
|
|
294
|
+
width: string;
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
Play: {
|
|
298
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
299
|
+
displayName: string;
|
|
300
|
+
style: {
|
|
301
|
+
fill: string;
|
|
302
|
+
stroke: string;
|
|
303
|
+
display: string;
|
|
304
|
+
alignItems: string;
|
|
305
|
+
width: string;
|
|
306
|
+
};
|
|
307
|
+
};
|
|
308
|
+
PlaySolid: {
|
|
309
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
310
|
+
displayName: string;
|
|
311
|
+
style: {
|
|
312
|
+
fill: string;
|
|
313
|
+
stroke: string;
|
|
314
|
+
display: string;
|
|
315
|
+
alignItems: string;
|
|
316
|
+
width: string;
|
|
317
|
+
};
|
|
318
|
+
};
|
|
319
|
+
Remove: {
|
|
320
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
321
|
+
displayName: string;
|
|
322
|
+
styles: {
|
|
323
|
+
fill: string;
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
Resume: {
|
|
327
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
328
|
+
displayName: string;
|
|
329
|
+
style: {
|
|
330
|
+
fill: string;
|
|
331
|
+
stroke: string;
|
|
332
|
+
display: string;
|
|
333
|
+
alignItems: string;
|
|
334
|
+
width: string;
|
|
335
|
+
};
|
|
336
|
+
};
|
|
337
|
+
ResumeSolid: {
|
|
338
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
339
|
+
displayName: string;
|
|
340
|
+
style: {
|
|
341
|
+
fill: string;
|
|
342
|
+
stroke: string;
|
|
343
|
+
display: string;
|
|
344
|
+
alignItems: string;
|
|
345
|
+
width: string;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
Right: {
|
|
349
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
350
|
+
displayName: string;
|
|
351
|
+
styles: {
|
|
352
|
+
fill: string;
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
Star: typeof Star;
|
|
356
|
+
Stop: {
|
|
357
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
358
|
+
displayName: string;
|
|
359
|
+
style: {
|
|
360
|
+
fill: string;
|
|
361
|
+
stroke: string;
|
|
362
|
+
display: string;
|
|
363
|
+
alignItems: string;
|
|
364
|
+
width: string;
|
|
365
|
+
}; /**
|
|
366
|
+
* Controls screen reader visibility.
|
|
367
|
+
* - `true` (default): Hides icon from screen readers (decorative icon)
|
|
368
|
+
* - `false`: Makes icon visible to screen readers (semantic icon)
|
|
369
|
+
*
|
|
370
|
+
* **When to use decorative (aria-hidden="true", default):**
|
|
371
|
+
* - Icon accompanies visible text (e.g., button with icon + label)
|
|
372
|
+
* - Icon is purely visual decoration
|
|
373
|
+
*
|
|
374
|
+
* **When to use semantic (aria-hidden="false"):**
|
|
375
|
+
* - Icon is the only content (e.g., icon-only button)
|
|
376
|
+
* - Must provide `aria-label` or `aria-labelledby` for accessible name
|
|
377
|
+
*
|
|
378
|
+
* @default true
|
|
379
|
+
* @see https://www.w3.org/WAI/WCAG21/Understanding/non-text-content.html
|
|
380
|
+
*/
|
|
381
|
+
};
|
|
382
|
+
StopSolid: {
|
|
383
|
+
({ strokeColor, styles, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
384
|
+
displayName: string;
|
|
385
|
+
style: {
|
|
386
|
+
fill: string;
|
|
387
|
+
stroke: string;
|
|
388
|
+
display: string;
|
|
389
|
+
alignItems: string;
|
|
390
|
+
width: string;
|
|
391
|
+
};
|
|
392
|
+
};
|
|
393
|
+
Up: {
|
|
394
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
395
|
+
displayName: string;
|
|
396
|
+
styles: {
|
|
397
|
+
display: string;
|
|
398
|
+
alignItems: string;
|
|
399
|
+
width: string;
|
|
400
|
+
};
|
|
401
|
+
};
|
|
402
|
+
User: {
|
|
403
|
+
({ size, fill, strokeColor, styles, alt, role, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
404
|
+
styles: {
|
|
405
|
+
fill: string;
|
|
406
|
+
stroke: string;
|
|
407
|
+
display: string;
|
|
408
|
+
alignItems: string;
|
|
409
|
+
width: string;
|
|
410
|
+
};
|
|
411
|
+
displayName: string;
|
|
412
|
+
};
|
|
413
|
+
styles: {
|
|
414
|
+
display: string;
|
|
415
|
+
direction: string;
|
|
416
|
+
gap: string;
|
|
417
|
+
placeItems: string;
|
|
418
|
+
width: string;
|
|
419
|
+
};
|
|
420
|
+
QuestionSolid: {
|
|
421
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
422
|
+
displayName: string;
|
|
423
|
+
};
|
|
424
|
+
WarnSolid: {
|
|
425
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
426
|
+
displayName: string;
|
|
427
|
+
};
|
|
428
|
+
SuccessSolid: {
|
|
429
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
430
|
+
displayName: string;
|
|
431
|
+
};
|
|
432
|
+
AlertSquareSolid: {
|
|
433
|
+
({ fill, size, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): JSX.Element;
|
|
434
|
+
displayName: string;
|
|
435
|
+
};
|
|
436
|
+
Close: {
|
|
437
|
+
({ size, fill, styles, role, alt, ...props }: Pick<IconProps$1, "styles" | "role" | "fill" | "alt" | "size" | "strokeColor">): React.JSX.Element;
|
|
438
|
+
displayName: string;
|
|
439
|
+
styles: {
|
|
440
|
+
fill: string;
|
|
441
|
+
};
|
|
442
|
+
};
|
|
443
|
+
};
|
|
444
|
+
|
|
445
|
+
export { IconProps$1 as I, Icon as a, IconProps as b };
|
package/libs/icons.d.cts
CHANGED
package/libs/icons.d.ts
CHANGED