@jig-ui/react 0.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.
Files changed (109) hide show
  1. package/LICENSE +52 -0
  2. package/README.md +193 -0
  3. package/dist/adorn/adorn.d.ts +38 -0
  4. package/dist/adorn/index.d.ts +2 -0
  5. package/dist/box/box.d.ts +32 -0
  6. package/dist/box/index.d.ts +2 -0
  7. package/dist/breakpoints.d.ts +35 -0
  8. package/dist/button/button.d.ts +37 -0
  9. package/dist/button/index.d.ts +2 -0
  10. package/dist/codeblock/codeblock.d.ts +28 -0
  11. package/dist/codeblock/index.d.ts +2 -0
  12. package/dist/collapsible/collapsible.d.ts +116 -0
  13. package/dist/collapsible/index.d.ts +2 -0
  14. package/dist/combobox/combobox.d.ts +119 -0
  15. package/dist/combobox/index.d.ts +2 -0
  16. package/dist/dev.d.ts +14 -0
  17. package/dist/dialog/dialog.d.ts +80 -0
  18. package/dist/dialog/index.d.ts +2 -0
  19. package/dist/focus-ring.d.ts +15 -0
  20. package/dist/grid/grid.d.ts +54 -0
  21. package/dist/grid/index.d.ts +2 -0
  22. package/dist/icon/generated/arrow-down.d.ts +4 -0
  23. package/dist/icon/generated/arrow-left.d.ts +4 -0
  24. package/dist/icon/generated/arrow-right.d.ts +4 -0
  25. package/dist/icon/generated/arrow-square-out.d.ts +4 -0
  26. package/dist/icon/generated/arrow-up.d.ts +4 -0
  27. package/dist/icon/generated/bell.d.ts +4 -0
  28. package/dist/icon/generated/calendar.d.ts +4 -0
  29. package/dist/icon/generated/caret-down.d.ts +4 -0
  30. package/dist/icon/generated/caret-left.d.ts +4 -0
  31. package/dist/icon/generated/caret-right.d.ts +4 -0
  32. package/dist/icon/generated/caret-up.d.ts +4 -0
  33. package/dist/icon/generated/check-circle.d.ts +4 -0
  34. package/dist/icon/generated/check.d.ts +4 -0
  35. package/dist/icon/generated/clock.d.ts +4 -0
  36. package/dist/icon/generated/copy.d.ts +4 -0
  37. package/dist/icon/generated/dots-nine.d.ts +4 -0
  38. package/dist/icon/generated/dots-three.d.ts +4 -0
  39. package/dist/icon/generated/eye-slash.d.ts +4 -0
  40. package/dist/icon/generated/eye.d.ts +4 -0
  41. package/dist/icon/generated/gear.d.ts +4 -0
  42. package/dist/icon/generated/github-logo.d.ts +4 -0
  43. package/dist/icon/generated/heart.d.ts +4 -0
  44. package/dist/icon/generated/index.d.ts +151 -0
  45. package/dist/icon/generated/info.d.ts +4 -0
  46. package/dist/icon/generated/list.d.ts +4 -0
  47. package/dist/icon/generated/magnifying-glass.d.ts +4 -0
  48. package/dist/icon/generated/minus.d.ts +4 -0
  49. package/dist/icon/generated/moon.d.ts +4 -0
  50. package/dist/icon/generated/pencil-simple.d.ts +4 -0
  51. package/dist/icon/generated/plus.d.ts +4 -0
  52. package/dist/icon/generated/question.d.ts +4 -0
  53. package/dist/icon/generated/star.d.ts +4 -0
  54. package/dist/icon/generated/sun.d.ts +4 -0
  55. package/dist/icon/generated/trash.d.ts +4 -0
  56. package/dist/icon/generated/user.d.ts +4 -0
  57. package/dist/icon/generated/warning-circle.d.ts +4 -0
  58. package/dist/icon/generated/warning.d.ts +4 -0
  59. package/dist/icon/generated/x.d.ts +4 -0
  60. package/dist/icon/icon.d.ts +46 -0
  61. package/dist/icon/index.d.ts +2 -0
  62. package/dist/icon-BRHwInc5.js +165 -0
  63. package/dist/icon-B_NrwKaL.js +173 -0
  64. package/dist/iconbutton/iconbutton.d.ts +35 -0
  65. package/dist/iconbutton/index.d.ts +2 -0
  66. package/dist/icons.d.ts +17 -0
  67. package/dist/icons.js +2 -0
  68. package/dist/index.d.ts +56 -0
  69. package/dist/index.js +3061 -0
  70. package/dist/input/index.d.ts +2 -0
  71. package/dist/input/input.d.ts +63 -0
  72. package/dist/layout.d.ts +87 -0
  73. package/dist/link/index.d.ts +2 -0
  74. package/dist/link/link.d.ts +125 -0
  75. package/dist/listitem/index.d.ts +2 -0
  76. package/dist/listitem/listitem.d.ts +92 -0
  77. package/dist/polymorphic.d.ts +31 -0
  78. package/dist/reset.css +4 -0
  79. package/dist/responsive.d.ts +10 -0
  80. package/dist/scrollarea/index.d.ts +2 -0
  81. package/dist/scrollarea/scrollarea.d.ts +26 -0
  82. package/dist/separator/index.d.ts +2 -0
  83. package/dist/separator/separator.d.ts +48 -0
  84. package/dist/sidenav/index.d.ts +2 -0
  85. package/dist/sidenav/sidenav.d.ts +35 -0
  86. package/dist/sidenavsection/index.d.ts +2 -0
  87. package/dist/sidenavsection/sidenavsection.d.ts +44 -0
  88. package/dist/slider/index.d.ts +2 -0
  89. package/dist/slider/slider.d.ts +73 -0
  90. package/dist/spacing.d.ts +35 -0
  91. package/dist/stack/index.d.ts +2 -0
  92. package/dist/stack/stack.d.ts +52 -0
  93. package/dist/structuredlist/index.d.ts +2 -0
  94. package/dist/structuredlist/structuredlist.d.ts +104 -0
  95. package/dist/styles.css +911 -0
  96. package/dist/togglebutton/index.d.ts +2 -0
  97. package/dist/togglebutton/togglebutton.d.ts +93 -0
  98. package/dist/togglebuttongroup/index.d.ts +2 -0
  99. package/dist/togglebuttongroup/togglebuttongroup.d.ts +72 -0
  100. package/dist/token/index.d.ts +2 -0
  101. package/dist/token/token.d.ts +82 -0
  102. package/dist/tokens-vars.d.ts +579 -0
  103. package/dist/tokens.d.ts +24 -0
  104. package/dist/tokens.js +577 -0
  105. package/dist/tooltip/index.d.ts +2 -0
  106. package/dist/tooltip/tooltip.d.ts +52 -0
  107. package/dist/typography/index.d.ts +2 -0
  108. package/dist/typography/typography.d.ts +71 -0
  109. package/package.json +81 -0
@@ -0,0 +1,2 @@
1
+ export { Combobox } from './combobox';
2
+ export type { ComboboxProps, ComboboxSingleProps, ComboboxMultipleProps, ComboboxItem, ComboboxGroup, ComboboxSize, } from './combobox';
package/dist/dev.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ export declare function warnInDev(message: string): void;
2
+ /**
3
+ * Whether development-only work should run at all.
4
+ *
5
+ * `warnInDev` covers the common case — compute a condition, warn if it holds.
6
+ * This is for the case where *computing* the condition is itself the cost:
7
+ * StructuredList walks its rows and cells to check them, which is work worth
8
+ * skipping in production rather than doing and discarding.
9
+ *
10
+ * Exported so that the narrow `process` declaration above stays the only one
11
+ * in the package. Components must not redeclare it — that is the whole reason
12
+ * this module exists.
13
+ */
14
+ export declare function isDev(): boolean;
@@ -0,0 +1,80 @@
1
+ import { ReactElement, ReactNode, Ref } from 'react';
2
+ export type DialogSize = 'sm' | 'md' | 'lg';
3
+ /** Where the close button sits relative to the visible frame. */
4
+ export type DialogClosePlacement = 'inside' | 'outside';
5
+ export interface DialogProps {
6
+ /**
7
+ * The body. Scrolls in a ScrollArea when it overflows, between the pinned
8
+ * header and actions.
9
+ */
10
+ children?: ReactNode;
11
+ /**
12
+ * The dialog's heading, and what gives it its accessible name. Optional —
13
+ * pass `aria-label` instead when the dialog has no visible heading.
14
+ */
15
+ title?: ReactNode;
16
+ /** Sub-heading below the title, associated as the accessible description. */
17
+ description?: ReactNode;
18
+ /**
19
+ * The button row, laid out at the trailing edge. Buttons are the caller's:
20
+ * count, order, variant and handlers.
21
+ */
22
+ actions?: ReactNode;
23
+ /**
24
+ * A button that opens the dialog. Base UI composes its open-state handlers
25
+ * onto whatever element is passed, so this is normally a `Button`.
26
+ */
27
+ trigger?: ReactElement;
28
+ /** Controlled open state. Omit to let the dialog manage its own. */
29
+ open?: boolean;
30
+ defaultOpen?: boolean;
31
+ onOpenChange?: (open: boolean) => void;
32
+ size?: DialogSize;
33
+ /**
34
+ * `outside` lifts the close button above the frame, onto the scrim — for a
35
+ * dialog whose content should reach its own edges, such as an image.
36
+ */
37
+ closePlacement?: DialogClosePlacement;
38
+ /** Names the close button for assistive technology. */
39
+ closeLabel?: string;
40
+ /**
41
+ * The accessible name, when there is no `title` to take it from. A dialog
42
+ * with neither logs a development warning.
43
+ */
44
+ 'aria-label'?: string;
45
+ /** Applied to the visible frame, which is the element a caller would size. */
46
+ className?: string;
47
+ style?: React.CSSProperties;
48
+ ref?: Ref<HTMLDivElement>;
49
+ }
50
+ /**
51
+ * A modal panel over a scrim.
52
+ *
53
+ * `trigger` takes the element that opens it and is wired for you; pass `open`
54
+ * and `onOpenChange` instead to drive it from elsewhere, such as a route or
55
+ * form state.
56
+ *
57
+ * `title` gives the dialog its accessible name — set it, or pass `aria-label`
58
+ * when the design has no visible title. `description` and `actions` are
59
+ * optional slots; `actions` holds the button row. With none of them set, the
60
+ * dialog is a plain panel around its children.
61
+ *
62
+ * The body scrolls when the content is taller than the viewport, keeping the
63
+ * title and actions in view. Closes on Escape and on a press outside.
64
+ *
65
+ * @example
66
+ * <Dialog
67
+ * trigger={<Button variant="danger">Delete</Button>}
68
+ * title="Discard changes?"
69
+ * description="Your edits will be lost."
70
+ * actions={
71
+ * <>
72
+ * <Button variant="secondary">Cancel</Button>
73
+ * <Button variant="danger" onClick={discard}>Discard</Button>
74
+ * </>
75
+ * }
76
+ * >
77
+ * Sixteen ingredients and two substitutions will be lost.
78
+ * </Dialog>
79
+ */
80
+ export declare function Dialog({ children, title, description, actions, trigger, open, defaultOpen, onOpenChange, size, closePlacement, closeLabel, className, style, ref, ...props }: DialogProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Dialog } from './dialog';
2
+ export type { DialogProps, DialogSize, DialogClosePlacement } from './dialog';
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The focus ring, as a style fragment components spread into their own rules.
3
+ *
4
+ * This used to be a bare `:focus-visible { … }` in the base stylesheet, which
5
+ * restyled focus for *every* focusable element in the consuming app — links,
6
+ * inputs and buttons that have nothing to do with Jig. Carrying it on the
7
+ * components means importing Jig styles no longer silently changes how the
8
+ * rest of the host application looks.
9
+ */
10
+ export declare const focusRing: {
11
+ readonly ':focus-visible': {
12
+ readonly outline: `2px solid ${string}`;
13
+ readonly outlineOffset: "2px";
14
+ };
15
+ };
@@ -0,0 +1,54 @@
1
+ import { Responsive } from '../responsive';
2
+ import { SpacingProps } from '../spacing';
3
+ import { GridColumns, LayoutAlign, LayoutChildProps, LayoutJustify, LayoutSpacing } from '../layout';
4
+ import { PolymorphicProps } from '../polymorphic';
5
+ /** The elements a Grid is willing to render as. See StackElement. */
6
+ export type GridElement = 'div' | 'section' | 'article' | 'aside' | 'nav' | 'header' | 'footer' | 'main' | 'ul' | 'ol' | 'li';
7
+ export type { GridColumns };
8
+ /**
9
+ * Grid's own props: how it arranges its children, plus the shared child-side
10
+ * set describing how it sits in whatever contains it — a Grid nested in a Grid
11
+ * claims a `span` of the outer one exactly as a Box does. The element's own
12
+ * attributes are added by PolymorphicProps.
13
+ */
14
+ export interface GridOwnProps extends SpacingProps, LayoutChildProps {
15
+ spacing?: Responsive<LayoutSpacing>;
16
+ /**
17
+ * Distributes children evenly across the fixed 24-column grid — every child
18
+ * that has not claimed a span of its own takes `24 / columns` tracks.
19
+ *
20
+ * Only the divisors of 24 are accepted, so the tracks always come out whole.
21
+ * A `Box` with an explicit `span` overrides the distribution, and the two can
22
+ * be mixed in one Grid.
23
+ *
24
+ * @example
25
+ * <Grid columns={3}> // three equal fields
26
+ * <Grid columns={{ xs: 1, md: 3 }}> // stacked on a phone
27
+ */
28
+ columns?: Responsive<GridColumns>;
29
+ align?: Responsive<LayoutAlign>;
30
+ justify?: Responsive<LayoutJustify>;
31
+ }
32
+ export type GridProps<E extends GridElement = 'div'> = PolymorphicProps<E, GridOwnProps>;
33
+ /**
34
+ * A grid container.
35
+ *
36
+ * `columns` sets how many equal tracks the row is divided into — 1, 2, 3, 4, 6,
37
+ * 8, 12 or 24, all of which divide the 24-column base evenly. Children claim
38
+ * width with `span`, either through `Box` or directly on a nested Stack or
39
+ * Grid.
40
+ *
41
+ * `spacing` is a step on the shared scale and applies in both directions.
42
+ * `columns`, `spacing`, `align` and `justify` all take responsive values keyed
43
+ * by breakpoint.
44
+ *
45
+ * Grid is also a layout child, so it takes `span`, `grow` and `alignSelf` for
46
+ * its own position inside a parent.
47
+ *
48
+ * @example
49
+ * <Grid columns={{ xs: 1, md: 12 }} spacing="500">
50
+ * <Box span={{ xs: 1, md: 8 }}><Article /></Box>
51
+ * <Box span={{ xs: 1, md: 4 }}><Sidebar /></Box>
52
+ * </Grid>
53
+ */
54
+ export declare function Grid<E extends GridElement = 'div'>({ as, spacing: spacingProp, columns, align, justify, span, grow, alignSelf, className, children, ...props }: GridProps<E>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Grid } from './grid';
2
+ export type { GridProps, GridElement, GridColumns } from './grid';
@@ -0,0 +1,4 @@
1
+ export declare const arrowDown: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const arrowLeft: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const arrowRight: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const arrowSquareOut: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const arrowUp: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const bell: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const calendar: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const caretDown: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const caretLeft: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const caretRight: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const caretUp: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const checkCircle: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const check: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const clock: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const copy: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const dotsNine: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const dotsThree: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const eyeSlash: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const eye: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const gear: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const githubLogo: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const heart: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,151 @@
1
+ export declare const icons: {
2
+ 'caret-down': {
3
+ regular: string;
4
+ fill: string;
5
+ };
6
+ 'caret-up': {
7
+ regular: string;
8
+ fill: string;
9
+ };
10
+ 'caret-left': {
11
+ regular: string;
12
+ fill: string;
13
+ };
14
+ 'caret-right': {
15
+ regular: string;
16
+ fill: string;
17
+ };
18
+ 'arrow-down': {
19
+ regular: string;
20
+ fill: string;
21
+ };
22
+ 'arrow-up': {
23
+ regular: string;
24
+ fill: string;
25
+ };
26
+ 'arrow-left': {
27
+ regular: string;
28
+ fill: string;
29
+ };
30
+ 'arrow-right': {
31
+ regular: string;
32
+ fill: string;
33
+ };
34
+ x: {
35
+ regular: string;
36
+ fill: string;
37
+ };
38
+ check: {
39
+ regular: string;
40
+ fill: string;
41
+ };
42
+ plus: {
43
+ regular: string;
44
+ fill: string;
45
+ };
46
+ minus: {
47
+ regular: string;
48
+ fill: string;
49
+ };
50
+ 'dots-three': {
51
+ regular: string;
52
+ fill: string;
53
+ };
54
+ 'dots-nine': {
55
+ regular: string;
56
+ fill: string;
57
+ };
58
+ copy: {
59
+ regular: string;
60
+ fill: string;
61
+ };
62
+ 'check-circle': {
63
+ regular: string;
64
+ fill: string;
65
+ };
66
+ warning: {
67
+ regular: string;
68
+ fill: string;
69
+ };
70
+ 'warning-circle': {
71
+ regular: string;
72
+ fill: string;
73
+ };
74
+ info: {
75
+ regular: string;
76
+ fill: string;
77
+ };
78
+ question: {
79
+ regular: string;
80
+ fill: string;
81
+ };
82
+ 'magnifying-glass': {
83
+ regular: string;
84
+ fill: string;
85
+ };
86
+ gear: {
87
+ regular: string;
88
+ fill: string;
89
+ };
90
+ user: {
91
+ regular: string;
92
+ fill: string;
93
+ };
94
+ calendar: {
95
+ regular: string;
96
+ fill: string;
97
+ };
98
+ clock: {
99
+ regular: string;
100
+ fill: string;
101
+ };
102
+ trash: {
103
+ regular: string;
104
+ fill: string;
105
+ };
106
+ 'pencil-simple': {
107
+ regular: string;
108
+ fill: string;
109
+ };
110
+ list: {
111
+ regular: string;
112
+ fill: string;
113
+ };
114
+ 'arrow-square-out': {
115
+ regular: string;
116
+ fill: string;
117
+ };
118
+ sun: {
119
+ regular: string;
120
+ fill: string;
121
+ };
122
+ moon: {
123
+ regular: string;
124
+ fill: string;
125
+ };
126
+ star: {
127
+ regular: string;
128
+ fill: string;
129
+ };
130
+ heart: {
131
+ regular: string;
132
+ fill: string;
133
+ };
134
+ eye: {
135
+ regular: string;
136
+ fill: string;
137
+ };
138
+ 'eye-slash': {
139
+ regular: string;
140
+ fill: string;
141
+ };
142
+ bell: {
143
+ regular: string;
144
+ fill: string;
145
+ };
146
+ 'github-logo': {
147
+ regular: string;
148
+ fill: string;
149
+ };
150
+ };
151
+ export type IconName = keyof typeof icons;
@@ -0,0 +1,4 @@
1
+ export declare const info: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const list: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const magnifyingGlass: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const minus: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const moon: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const pencilSimple: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const plus: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const question: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const star: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const sun: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const trash: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const user: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const warningCircle: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const warning: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare const x: {
2
+ regular: string;
3
+ fill: string;
4
+ };
@@ -0,0 +1,46 @@
1
+ import { ReactNode, Ref, SVGAttributes } from 'react';
2
+ import { IconName } from './generated';
3
+ export type { IconName };
4
+ export type IconWeight = 'regular' | 'fill';
5
+ export interface IconProps extends Omit<SVGAttributes<SVGSVGElement>, 'children' | 'role' | 'aria-label' | 'aria-hidden'> {
6
+ /** A name from the curated set. Omit when supplying `children` instead. */
7
+ icon?: IconName;
8
+ /** `fill` reads as active, selected or pressed against the default `regular`. */
9
+ weight?: IconWeight;
10
+ /**
11
+ * Any CSS length. Defaults to `1em`, so an icon matches the size of the text
12
+ * it sits in without being told to.
13
+ */
14
+ size?: string | number;
15
+ /**
16
+ * Names the icon for assistive technology. Leave it off when the icon
17
+ * repeats an adjacent label or is purely decorative — which is the common
18
+ * case, and the default.
19
+ */
20
+ label?: string;
21
+ /**
22
+ * Raw SVG content for artwork outside the curated set. Pass the source's own
23
+ * `viewBox` alongside it; everything else — sizing, colour, accessibility —
24
+ * is handled the same way as a built-in icon.
25
+ */
26
+ children?: ReactNode;
27
+ ref?: Ref<SVGSVGElement>;
28
+ }
29
+ /**
30
+ * An icon from the curated set.
31
+ *
32
+ * Sized in `em` and inheriting `currentColor`, so it matches the text it sits
33
+ * in without being told to. Pass `size` for any CSS length when it should not.
34
+ *
35
+ * Icons are decorative by default and kept out of the accessibility tree. Set
36
+ * `label` only when the icon is the sole carrier of meaning — if there is
37
+ * adjacent text saying the same thing, leave it off so it is not announced
38
+ * twice.
39
+ *
40
+ * `weight="fill"` reads as active, selected or pressed. For artwork outside
41
+ * the set, pass raw SVG as `children` along with its own `viewBox`.
42
+ *
43
+ * @example
44
+ * <Icon icon="check-circle" weight="fill" label="Saved" />
45
+ */
46
+ export declare function Icon({ icon, weight, size, label, viewBox, className, children, ...props }: IconProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { Icon } from './icon';
2
+ export type { IconProps, IconName, IconWeight } from './icon';