@xingxingmofashu/ui 0.1.0 → 0.1.2
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 +124 -72
- package/dist/components/accordion.mjs +4 -9
- package/dist/components/checkbox.d.ts +1 -1
- package/dist/components/checkbox.mjs +27 -19
- package/dist/components/icons/check.d.ts +3 -0
- package/dist/components/icons/check.mjs +24 -0
- package/dist/components/icons/close.d.ts +3 -0
- package/dist/components/icons/close.mjs +21 -0
- package/dist/components/icons/dash.d.ts +3 -0
- package/dist/components/icons/dash.mjs +24 -0
- package/dist/components/icons/error.d.ts +3 -0
- package/dist/components/icons/error.mjs +23 -0
- package/dist/components/icons/info.d.ts +3 -0
- package/dist/components/icons/info.mjs +23 -0
- package/dist/components/icons/loading.d.ts +3 -0
- package/dist/components/icons/loading.mjs +22 -0
- package/dist/components/icons/plus.d.ts +3 -0
- package/dist/components/icons/plus.mjs +22 -0
- package/dist/components/icons/success.d.ts +3 -0
- package/dist/components/icons/success.mjs +22 -0
- package/dist/components/icons/warning.d.ts +3 -0
- package/dist/components/icons/warning.mjs +23 -0
- package/dist/components/input.d.ts +1 -1
- package/dist/components/input.mjs +17 -1
- package/dist/components/slider.d.ts +9 -3
- package/dist/components/slider.mjs +33 -0
- package/dist/components/switch.d.ts +1 -1
- package/dist/components/switch.mjs +24 -1
- package/dist/components/toast.d.ts +12 -11
- package/dist/components/toast.mjs +58 -87
- package/dist/index.css +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -0
- package/dist/internal/aria.d.ts +3 -0
- package/dist/internal/aria.mjs +5 -0
- package/dist/theme/toast.d.ts +15 -36
- package/dist/theme/toast.mjs +28 -20
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,48 +1,67 @@
|
|
|
1
|
-
|
|
1
|
+
<picture>
|
|
2
|
+
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/banner-dark.png">
|
|
3
|
+
<source media="(prefers-color-scheme: light)" srcset=".github/assets/banner-light.png">
|
|
4
|
+
<img alt="@xingxingmofashu/ui: Between black and white, glass finds its light." width="1247" src=".github/assets/banner-light.png">
|
|
5
|
+
</picture>
|
|
2
6
|
|
|
3
|
-
|
|
7
|
+
<div align="center">
|
|
8
|
+
|
|
9
|
+
[![npm version][npm-version-src]][npm-version-href]
|
|
10
|
+
[![npm downloads][npm-downloads-src]][npm-downloads-href]
|
|
11
|
+
[![License][license-src]][license-href]
|
|
12
|
+
[![React][react-src]][react-href]
|
|
13
|
+
[![Tailwind CSS][tailwind-src]][tailwind-href]
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
`@xingxingmofashu/ui` is a collection of accessible, typed [React](https://react.dev)
|
|
18
|
+
components with a Liquid Glass visual style, built on [Base UI](https://base-ui.com),
|
|
19
|
+
[Tailwind CSS](https://tailwindcss.com), and
|
|
20
|
+
[Tailwind Variants](https://www.tailwind-variants.org). Glass surfaces, rim
|
|
21
|
+
highlights, and inner shadows are drawn entirely with CSS.
|
|
4
22
|
|
|
5
23
|
The package ships fifteen components: Accordion, Alert Dialog, Button, Card,
|
|
6
24
|
Checkbox, Dialog, Drawer, Input, Popover, Scroll Area, Slider, Switch, Toast,
|
|
7
|
-
Toggle, and Toggle Group.
|
|
8
|
-
drawn entirely with CSS. The interactive components are built on Base UI and do
|
|
9
|
-
not add a custom rendering engine; `Card` is a native layout primitive.
|
|
25
|
+
Toggle, and Toggle Group.
|
|
10
26
|
|
|
11
|
-
|
|
27
|
+
> [!NOTE]
|
|
28
|
+
> Requires React 19, React DOM 19, Tailwind CSS 4, Node.js 22+, and an
|
|
29
|
+
> ESM-capable bundler. `Card` is server-safe; the interactive components are
|
|
30
|
+
> client components.
|
|
12
31
|
|
|
13
|
-
|
|
14
|
-
- React and React DOM 19.
|
|
15
|
-
- Tailwind CSS 4.
|
|
16
|
-
- An ESM-capable bundler. The package publishes ES modules only.
|
|
32
|
+
## Documentation
|
|
17
33
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
`ToggleGroup` are client components. `Card` is server-safe and can be rendered
|
|
21
|
-
from a React Server Component.
|
|
34
|
+
- [English](https://xingxingmofashu.github.io/ui/docs/en/get-started/introduction)
|
|
35
|
+
- [简体中文](https://xingxingmofashu.github.io/ui/docs/zh/get-started/introduction)
|
|
22
36
|
|
|
23
|
-
##
|
|
37
|
+
## Installation
|
|
24
38
|
|
|
25
|
-
```bash
|
|
39
|
+
```bash [pnpm]
|
|
26
40
|
pnpm add @xingxingmofashu/ui
|
|
27
41
|
```
|
|
28
42
|
|
|
29
|
-
|
|
43
|
+
```bash [yarn]
|
|
44
|
+
yarn add @xingxingmofashu/ui
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```bash [npm]
|
|
48
|
+
npm install @xingxingmofashu/ui
|
|
49
|
+
```
|
|
30
50
|
|
|
31
|
-
|
|
51
|
+
```bash [bun]
|
|
52
|
+
bun add @xingxingmofashu/ui
|
|
53
|
+
```
|
|
32
54
|
|
|
33
|
-
|
|
55
|
+
Add the package styles to your Tailwind CSS entry:
|
|
34
56
|
|
|
35
|
-
```css
|
|
57
|
+
```css [app.css]
|
|
36
58
|
@import "tailwindcss";
|
|
37
59
|
@import "@xingxingmofashu/ui";
|
|
38
|
-
|
|
39
|
-
/* Adjust this path to point at the package inside node_modules. */
|
|
40
|
-
@source "../node_modules/@xingxingmofashu/ui/dist";
|
|
41
60
|
```
|
|
42
61
|
|
|
43
|
-
The package root resolves to `dist/index.css` through its `style` export.
|
|
44
|
-
|
|
45
|
-
|
|
62
|
+
The package root resolves to `dist/index.css` through its `style` export. The
|
|
63
|
+
stylesheet includes its own Tailwind source scan, so component utilities are
|
|
64
|
+
generated without an extra `@source` directive.
|
|
46
65
|
|
|
47
66
|
## Usage
|
|
48
67
|
|
|
@@ -59,61 +78,68 @@ export function Example() {
|
|
|
59
78
|
}
|
|
60
79
|
```
|
|
61
80
|
|
|
62
|
-
Deep imports
|
|
81
|
+
### Deep imports
|
|
82
|
+
|
|
83
|
+
Import a single component or theme recipe without going through the package
|
|
84
|
+
root:
|
|
63
85
|
|
|
64
86
|
```tsx
|
|
65
87
|
import { Button } from "@xingxingmofashu/ui/components/button";
|
|
66
88
|
import buttonTheme from "@xingxingmofashu/ui/theme/button";
|
|
67
89
|
```
|
|
68
90
|
|
|
69
|
-
|
|
70
|
-
|
|
91
|
+
Toast hooks live under `@xingxingmofashu/ui/composables`.
|
|
92
|
+
|
|
93
|
+
## Components
|
|
94
|
+
|
|
95
|
+
### Element
|
|
96
|
+
|
|
97
|
+
- Accordion
|
|
98
|
+
- Button
|
|
99
|
+
- Card
|
|
100
|
+
- Scroll Area
|
|
101
|
+
- Toggle
|
|
102
|
+
- Toggle Group
|
|
103
|
+
|
|
104
|
+
### Form
|
|
105
|
+
|
|
106
|
+
- Checkbox
|
|
107
|
+
- Input
|
|
108
|
+
- Slider
|
|
109
|
+
- Switch
|
|
110
|
+
|
|
111
|
+
### Overlay
|
|
112
|
+
|
|
113
|
+
- Alert Dialog
|
|
114
|
+
- Dialog
|
|
115
|
+
- Drawer
|
|
116
|
+
- Popover
|
|
117
|
+
- Toast
|
|
71
118
|
|
|
72
119
|
## Theming
|
|
73
120
|
|
|
74
|
-
Light and dark
|
|
121
|
+
Light and dark tokens are selected by `.light` / `.dark`, or by
|
|
75
122
|
`data-theme="light"` / `data-theme="dark"`:
|
|
76
123
|
|
|
77
124
|
```html
|
|
78
125
|
<html class="dark">
|
|
79
|
-
<!-- or -->
|
|
80
|
-
<html data-theme="dark">
|
|
81
|
-
</html>
|
|
82
126
|
```
|
|
83
127
|
|
|
84
|
-
|
|
85
|
-
tokens. Shared colors and glass parameters live in the `--ui-*` tokens in the
|
|
86
|
-
package stylesheet; override them in your own theme layer. Tailwind aliases use
|
|
87
|
-
the `ui-` prefix (`text-ui-ink`, `outline-ui-glass-focus`, and so on) to avoid
|
|
88
|
-
colliding with host design tokens.
|
|
89
|
-
|
|
90
|
-
`Button`, `Card`, `Checkbox`, `Dialog`, `Drawer`, `Input`, `Popover`,
|
|
91
|
-
`ScrollArea`, `Slider`, `Switch`, `Toggle`, `ToggleGroup`, `ToastProvider`,
|
|
92
|
-
`Accordion`, and `AlertDialog` inherit the host font and do not force a font
|
|
93
|
-
family.
|
|
128
|
+
or:
|
|
94
129
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
## Components
|
|
130
|
+
```html
|
|
131
|
+
<html data-theme="dark">
|
|
132
|
+
```
|
|
100
133
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
- `
|
|
105
|
-
|
|
106
|
-
- `Dialog`
|
|
107
|
-
- `Drawer`
|
|
108
|
-
- `Input`
|
|
109
|
-
- `Popover`
|
|
110
|
-
- `ScrollArea`
|
|
111
|
-
- `Slider`
|
|
112
|
-
- `Switch`
|
|
113
|
-
- `ToastProvider`
|
|
114
|
-
- `Toggle`
|
|
115
|
-
- `ToggleGroup`
|
|
134
|
+
A nested `.light` / `[data-theme="light"]` subtree can switch back to light
|
|
135
|
+
tokens. Shared colors and glass parameters live in the `--ui-*` tokens; override
|
|
136
|
+
them in your own theme layer. Tailwind aliases use the `ui-` prefix
|
|
137
|
+
(`text-ui-ink`, `outline-ui-glass-focus`, and so on) to avoid colliding with
|
|
138
|
+
host tokens.
|
|
116
139
|
|
|
140
|
+
The components inherit the host font. The visual material relies on modern CSS:
|
|
141
|
+
`backdrop-filter`, `color-mix`, container units, individual `translate` /
|
|
142
|
+
`scale` properties, and `:has`. Use a current evergreen browser.
|
|
117
143
|
|
|
118
144
|
## Development
|
|
119
145
|
|
|
@@ -121,19 +147,45 @@ Use a current evergreen browser.
|
|
|
121
147
|
pnpm install
|
|
122
148
|
pnpm build # build dist with unbuild
|
|
123
149
|
pnpm lint # lint with oxlint
|
|
124
|
-
pnpm lint:fix # apply oxlint's safe fixes
|
|
125
150
|
pnpm test # run the Vitest suite
|
|
126
151
|
pnpm typecheck # typecheck the package
|
|
127
|
-
pnpm docs:dev #
|
|
128
|
-
pnpm
|
|
129
|
-
pnpm playground:dev # start the component playground on port 3002
|
|
152
|
+
pnpm docs:dev # docs site on http://localhost:3001
|
|
153
|
+
pnpm playground:dev # component playground on http://localhost:3002
|
|
130
154
|
```
|
|
131
155
|
|
|
132
|
-
The documentation site lives in `docs/` and
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
156
|
+
The documentation site lives in `docs/` and the playground lives in
|
|
157
|
+
`playground/`; both import the package from the workspace.
|
|
158
|
+
|
|
159
|
+
## Contribution
|
|
160
|
+
|
|
161
|
+
Found a bug? [Open an issue](https://github.com/xingxingmofashu/ui/issues) with
|
|
162
|
+
a reproduction. Before opening a pull request, run `pnpm lint`, `pnpm test`, and
|
|
163
|
+
`pnpm typecheck`.
|
|
164
|
+
|
|
165
|
+
> [!TIP]
|
|
166
|
+
> [`AGENTS.md`](https://github.com/xingxingmofashu/ui/blob/main/AGENTS.md)
|
|
167
|
+
> describes the component, theme, test, and documentation conventions used in
|
|
168
|
+
> this repository.
|
|
169
|
+
|
|
170
|
+
## Credits
|
|
171
|
+
|
|
172
|
+
- [Base UI](https://base-ui.com)
|
|
173
|
+
- [Tailwind CSS](https://tailwindcss.com)
|
|
174
|
+
- [Tailwind Variants](https://www.tailwind-variants.org)
|
|
136
175
|
|
|
137
176
|
## License
|
|
138
177
|
|
|
139
|
-
MIT
|
|
178
|
+
Licensed under the [MIT license](https://github.com/xingxingmofashu/ui/blob/main/LICENSE).
|
|
179
|
+
|
|
180
|
+
<!-- Badges -->
|
|
181
|
+
|
|
182
|
+
[npm-version-src]: https://img.shields.io/npm/v/@xingxingmofashu/ui.svg?style=flat&colorA=18181B&colorB=52525B
|
|
183
|
+
[npm-version-href]: https://www.npmjs.com/package/@xingxingmofashu/ui
|
|
184
|
+
[npm-downloads-src]: https://img.shields.io/npm/dm/@xingxingmofashu/ui.svg?style=flat&colorA=18181B&colorB=52525B
|
|
185
|
+
[npm-downloads-href]: https://npm.chart.dev/@xingxingmofashu/ui
|
|
186
|
+
[license-src]: https://img.shields.io/github/license/xingxingmofashu/ui.svg?style=flat&colorA=18181B&colorB=52525B
|
|
187
|
+
[license-href]: https://github.com/xingxingmofashu/ui/blob/main/LICENSE
|
|
188
|
+
[react-src]: https://img.shields.io/badge/React-19-18181B?style=flat&logo=react&logoColor=white
|
|
189
|
+
[react-href]: https://react.dev
|
|
190
|
+
[tailwind-src]: https://img.shields.io/badge/Tailwind_CSS-4-18181B?style=flat&logo=tailwindcss&logoColor=white
|
|
191
|
+
[tailwind-href]: https://tailwindcss.com
|
|
@@ -3,6 +3,7 @@ import { Accordion as UIAccordion } from "@base-ui/react/accordion";
|
|
|
3
3
|
import { cn } from "cn";
|
|
4
4
|
import * as React from "react";
|
|
5
5
|
import theme from "../theme/accordion.mjs";
|
|
6
|
+
import { PlusIcon } from "./icons/plus.mjs";
|
|
6
7
|
function Accordion({
|
|
7
8
|
className,
|
|
8
9
|
size,
|
|
@@ -52,17 +53,11 @@ function AccordionItem({
|
|
|
52
53
|
className: ui.indicator()
|
|
53
54
|
},
|
|
54
55
|
/* @__PURE__ */ React.createElement(
|
|
55
|
-
|
|
56
|
+
PlusIcon,
|
|
56
57
|
{
|
|
57
58
|
"data-slot": "indicator-icon",
|
|
58
|
-
className: ui.indicatorIcon()
|
|
59
|
-
|
|
60
|
-
fill: "none",
|
|
61
|
-
stroke: "currentColor",
|
|
62
|
-
strokeLinecap: "square",
|
|
63
|
-
strokeLinejoin: "round"
|
|
64
|
-
},
|
|
65
|
-
/* @__PURE__ */ React.createElement("path", { d: "M1.5 8h13M8 14.5v-13" })
|
|
59
|
+
className: ui.indicatorIcon()
|
|
60
|
+
}
|
|
66
61
|
)
|
|
67
62
|
))),
|
|
68
63
|
/* @__PURE__ */ React.createElement(UIAccordion.Panel, { "data-slot": "panel", className: ui.panel() }, /* @__PURE__ */ React.createElement("div", { "data-slot": "panel-content", className: ui.panelContent() }, content))
|
|
@@ -12,6 +12,6 @@ interface CheckboxProps extends Omit<UICheckbox.Root.Props, "className" | "child
|
|
|
12
12
|
/** Optional supporting text. */
|
|
13
13
|
description?: React.ReactNode;
|
|
14
14
|
}
|
|
15
|
-
declare function Checkbox({ className, label, description, size, indeterminate, ...props }: CheckboxProps): React.JSX.Element;
|
|
15
|
+
declare function Checkbox({ className, label, description, size, indeterminate, "aria-describedby": ariaDescribedBy, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }: CheckboxProps): React.JSX.Element;
|
|
16
16
|
export { Checkbox };
|
|
17
17
|
export type { CheckboxProps };
|
|
@@ -2,37 +2,37 @@
|
|
|
2
2
|
import { Checkbox as UICheckbox } from "@base-ui/react/checkbox";
|
|
3
3
|
import { cn } from "cn";
|
|
4
4
|
import * as React from "react";
|
|
5
|
+
import { mergeIds } from "../internal/aria.mjs";
|
|
5
6
|
import theme from "../theme/checkbox.mjs";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
"svg",
|
|
9
|
-
{
|
|
10
|
-
"aria-hidden": "true",
|
|
11
|
-
"data-icon": indeterminate ? "dash" : "check",
|
|
12
|
-
focusable: "false",
|
|
13
|
-
viewBox: "0 0 16 16",
|
|
14
|
-
fill: "none",
|
|
15
|
-
stroke: "currentColor",
|
|
16
|
-
strokeLinecap: "round",
|
|
17
|
-
strokeLinejoin: "round",
|
|
18
|
-
strokeWidth: "1.5"
|
|
19
|
-
},
|
|
20
|
-
/* @__PURE__ */ React.createElement("path", { d: indeterminate ? "M3.5 8h9" : "m2.5 8.5 4 4 7-9" })
|
|
21
|
-
);
|
|
22
|
-
}
|
|
7
|
+
import { CheckIcon } from "./icons/check.mjs";
|
|
8
|
+
import { DashIcon } from "./icons/dash.mjs";
|
|
23
9
|
function Checkbox({
|
|
24
10
|
className,
|
|
25
11
|
label,
|
|
26
12
|
description,
|
|
27
13
|
size,
|
|
28
14
|
indeterminate = false,
|
|
15
|
+
"aria-describedby": ariaDescribedBy,
|
|
16
|
+
"aria-label": ariaLabel,
|
|
17
|
+
"aria-labelledby": ariaLabelledBy,
|
|
29
18
|
...props
|
|
30
19
|
}) {
|
|
31
20
|
const ui = theme({ size });
|
|
21
|
+
const labelId = React.useId();
|
|
22
|
+
const descriptionId = React.useId();
|
|
23
|
+
const hasName = Boolean(label || ariaLabel || ariaLabelledBy);
|
|
24
|
+
const labelledBy = ariaLabelledBy || (label && !ariaLabel ? labelId : void 0);
|
|
25
|
+
const describedBy = mergeIds(
|
|
26
|
+
ariaDescribedBy,
|
|
27
|
+
description && hasName ? descriptionId : void 0
|
|
28
|
+
);
|
|
32
29
|
return /* @__PURE__ */ React.createElement(
|
|
33
30
|
UICheckbox.Root,
|
|
34
31
|
{
|
|
35
32
|
...props,
|
|
33
|
+
"aria-describedby": describedBy,
|
|
34
|
+
"aria-label": ariaLabel,
|
|
35
|
+
"aria-labelledby": labelledBy,
|
|
36
36
|
indeterminate,
|
|
37
37
|
"data-slot": "root",
|
|
38
38
|
className: cn(ui.root(), className)
|
|
@@ -52,9 +52,17 @@ function Checkbox({
|
|
|
52
52
|
"data-slot": "indicator",
|
|
53
53
|
className: ui.indicator()
|
|
54
54
|
},
|
|
55
|
-
/* @__PURE__ */ React.createElement("span", { "data-slot": "indicator-icon", className: ui.indicatorIcon() }, /* @__PURE__ */ React.createElement(
|
|
55
|
+
/* @__PURE__ */ React.createElement("span", { "data-slot": "indicator-icon", className: ui.indicatorIcon() }, indeterminate ? /* @__PURE__ */ React.createElement(DashIcon, null) : /* @__PURE__ */ React.createElement(CheckIcon, null))
|
|
56
56
|
)),
|
|
57
|
-
label || description ? /* @__PURE__ */ React.createElement("span", { "data-slot": "wrapper", className: ui.wrapper() }, label ? /* @__PURE__ */ React.createElement("span", { "data-slot": "label", className: ui.label() }, label) : null, description ? /* @__PURE__ */ React.createElement(
|
|
57
|
+
label || description ? /* @__PURE__ */ React.createElement("span", { "data-slot": "wrapper", className: ui.wrapper() }, label ? /* @__PURE__ */ React.createElement("span", { id: labelId, "data-slot": "label", className: ui.label() }, label) : null, description ? /* @__PURE__ */ React.createElement(
|
|
58
|
+
"span",
|
|
59
|
+
{
|
|
60
|
+
id: descriptionId,
|
|
61
|
+
"data-slot": "description",
|
|
62
|
+
className: ui.description()
|
|
63
|
+
},
|
|
64
|
+
description
|
|
65
|
+
) : null) : null
|
|
58
66
|
);
|
|
59
67
|
}
|
|
60
68
|
export { Checkbox };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function CheckIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
"data-icon": "check",
|
|
11
|
+
focusable: "false",
|
|
12
|
+
viewBox: "0 0 24 24",
|
|
13
|
+
fill: "none",
|
|
14
|
+
stroke: "currentColor",
|
|
15
|
+
strokeLinecap: "round",
|
|
16
|
+
strokeLinejoin: "round",
|
|
17
|
+
strokeWidth: "1.5",
|
|
18
|
+
className,
|
|
19
|
+
...props
|
|
20
|
+
},
|
|
21
|
+
/* @__PURE__ */ React.createElement("path", { d: "m4 12 6 6 10-12" })
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
export { CheckIcon };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function CloseIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
viewBox: "0 0 24 24",
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeWidth: "1.5",
|
|
14
|
+
strokeLinecap: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("path", { d: "m6 6 12 12M18 6 6 18" })
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
export { CloseIcon };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function DashIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
"data-icon": "dash",
|
|
11
|
+
focusable: "false",
|
|
12
|
+
viewBox: "0 0 24 24",
|
|
13
|
+
fill: "none",
|
|
14
|
+
stroke: "currentColor",
|
|
15
|
+
strokeLinecap: "round",
|
|
16
|
+
strokeLinejoin: "round",
|
|
17
|
+
strokeWidth: "1.5",
|
|
18
|
+
className,
|
|
19
|
+
...props
|
|
20
|
+
},
|
|
21
|
+
/* @__PURE__ */ React.createElement("path", { d: "M5 12h14" })
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
export { DashIcon };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function ErrorIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "1.5",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "8.5" }),
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 8v5" }),
|
|
20
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 16.5h.01" })
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export { ErrorIcon };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function InfoIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "1.5",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "8.5" }),
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 11v5" }),
|
|
20
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 8h.01" })
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export { InfoIcon };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function LoadingIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "1.5",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "8", opacity: "0.25" }),
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 4a8 8 0 0 1 8 8" })
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
export { LoadingIcon };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function PlusIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
"aria-hidden": "true",
|
|
10
|
+
viewBox: "0 0 24 24",
|
|
11
|
+
fill: "none",
|
|
12
|
+
stroke: "currentColor",
|
|
13
|
+
strokeWidth: "1.5",
|
|
14
|
+
strokeLinecap: "square",
|
|
15
|
+
strokeLinejoin: "round",
|
|
16
|
+
className,
|
|
17
|
+
...props
|
|
18
|
+
},
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "M2.5 12h19M12 21.5v-19" })
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
export { PlusIcon };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function SuccessIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "1.5",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("circle", { cx: "12", cy: "12", r: "8.5" }),
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "m8 12.5 3 3 5.5-6" })
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
export { SuccessIcon };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
function WarningIcon({
|
|
3
|
+
className,
|
|
4
|
+
...props
|
|
5
|
+
}) {
|
|
6
|
+
return /* @__PURE__ */ React.createElement(
|
|
7
|
+
"svg",
|
|
8
|
+
{
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
fill: "none",
|
|
11
|
+
stroke: "currentColor",
|
|
12
|
+
strokeWidth: "1.5",
|
|
13
|
+
strokeLinecap: "round",
|
|
14
|
+
strokeLinejoin: "round",
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
},
|
|
18
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 4 21 20H3L12 4Z" }),
|
|
19
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 10v4" }),
|
|
20
|
+
/* @__PURE__ */ React.createElement("path", { d: "M12 17.5h.01" })
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export { WarningIcon };
|
|
@@ -14,6 +14,6 @@ interface InputProps extends Omit<UIInput.Props, "className" | "children" | "siz
|
|
|
14
14
|
/** Icon rendered after the input. */
|
|
15
15
|
trailingIcon?: React.ReactNode;
|
|
16
16
|
}
|
|
17
|
-
declare function Input({ className, label, description, leadingIcon, trailingIcon, size, id, disabled, ...props }: InputProps): React.JSX.Element;
|
|
17
|
+
declare function Input({ className, label, description, leadingIcon, trailingIcon, size, id, disabled, "aria-describedby": ariaDescribedBy, ...props }: InputProps): React.JSX.Element;
|
|
18
18
|
export { Input };
|
|
19
19
|
export type { InputProps };
|