@eyesee/ui-components 0.2.0 → 0.4.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 +101 -50
- package/dist/components/Badge/Badge.js +1 -8
- package/dist/components/ImagePlaceholder/ImagePlaceholder.js +82 -92
- package/dist/components/ImageWithData/ImageWithData.js +83 -93
- package/dist/components/Modal/Modal.js +57 -43
- package/dist/components/Modal/Modal.module.scss.js +16 -14
- package/dist/components/Tag/Tag.js +15 -25
- package/dist/components/TextHoverable/TextHoverable.js +1 -8
- package/dist/components/icons-v2/ColumnIcon.js +15 -0
- package/dist/components/icons-v2/SquareAddIcon.js +6 -6
- package/dist/components/icons-v2/index.js +18 -16
- package/dist/style.css +1 -1
- package/package.json +10 -4
- package/src/styles/_mixins.scss +92 -0
- package/src/styles/variables.scss +945 -0
package/README.md
CHANGED
|
@@ -14,12 +14,14 @@ npm install @eyesee/ui-components
|
|
|
14
14
|
|
|
15
15
|
### Peer dependencies
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
npm 7+ installs these automatically when you add the package. Install manually only if your setup does not resolve peers:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
npm install react react-dom clsx react-hook-form react-toastify
|
|
20
|
+
npm install react react-dom clsx react-hook-form react-toastify sass
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
+
`sass` is required when you use the SCSS mixins entry point (`@eyesee/ui-components/mixins`) in your own stylesheets.
|
|
24
|
+
|
|
23
25
|
---
|
|
24
26
|
|
|
25
27
|
## Setup
|
|
@@ -36,15 +38,15 @@ import '@eyesee/ui-components/styles';
|
|
|
36
38
|
|
|
37
39
|
Add `alias--main` and exactly one profile class to a common ancestor element — ideally `<body>`. The profile class controls the visual theme of the library:
|
|
38
40
|
|
|
39
|
-
| Class
|
|
40
|
-
|
|
41
|
-
| `alias--main`
|
|
42
|
-
| `mapped--internal` | Internal EyeSee tools
|
|
41
|
+
| Class | Use for |
|
|
42
|
+
| ------------------ | ---------------------------- |
|
|
43
|
+
| `alias--main` | Always required |
|
|
44
|
+
| `mapped--internal` | Internal EyeSee tools |
|
|
43
45
|
| `mapped--external` | External-facing applications |
|
|
44
46
|
|
|
45
47
|
```html
|
|
46
48
|
<body class="alias--main mapped--internal">
|
|
47
|
-
|
|
49
|
+
...
|
|
48
50
|
</body>
|
|
49
51
|
```
|
|
50
52
|
|
|
@@ -80,60 +82,60 @@ import { PlusIcon, DeleteIcon, EditIcon } from '@eyesee/ui-components/icons';
|
|
|
80
82
|
|
|
81
83
|
### Layout & Feedback
|
|
82
84
|
|
|
83
|
-
| Component
|
|
84
|
-
|
|
85
|
-
| `Modal`
|
|
86
|
-
| `Infobox`
|
|
87
|
-
| `ProgressBar`
|
|
88
|
-
| `ExpandableItem` | Collapsible `<details>`-based section with a summary title
|
|
85
|
+
| Component | Description |
|
|
86
|
+
| ---------------- | ----------------------------------------------------------------- |
|
|
87
|
+
| `Modal` | Dialog overlay with title, description, icon, and footer slots |
|
|
88
|
+
| `Infobox` | Inline status message with icon, title, and body text |
|
|
89
|
+
| `ProgressBar` | Determinate progress indicator with optional label and percentage |
|
|
90
|
+
| `ExpandableItem` | Collapsible `<details>`-based section with a summary title |
|
|
89
91
|
|
|
90
92
|
### Navigation & Selection
|
|
91
93
|
|
|
92
|
-
| Component | Description
|
|
93
|
-
|
|
94
|
-
| `Tabs`
|
|
95
|
-
| `Tab`
|
|
94
|
+
| Component | Description |
|
|
95
|
+
| --------- | ----------------------------------------------- |
|
|
96
|
+
| `Tabs` | Tab group managing selection state; wraps `Tab` |
|
|
97
|
+
| `Tab` | Individual tab rendered as a button or span |
|
|
96
98
|
|
|
97
99
|
### Inputs & Form Fields
|
|
98
100
|
|
|
99
|
-
| Component
|
|
100
|
-
|
|
101
|
-
| `InputField`
|
|
102
|
-
| `TextField`
|
|
103
|
-
| `SelectField` | Dropdown select with label and error support
|
|
104
|
-
| `Checkbox`
|
|
105
|
-
| `Radio`
|
|
106
|
-
| `Toggle`
|
|
101
|
+
| Component | Description |
|
|
102
|
+
| ------------- | -------------------------------------------------------------------- |
|
|
103
|
+
| `InputField` | Single-line text input with label, icons, error, and info text |
|
|
104
|
+
| `TextField` | Multi-line textarea with label, action buttons, error, and info text |
|
|
105
|
+
| `SelectField` | Dropdown select with label and error support |
|
|
106
|
+
| `Checkbox` | Checkbox with label, indeterminate state, and size variants |
|
|
107
|
+
| `Radio` | Radio button with label and size variants |
|
|
108
|
+
| `Toggle` | Switch (checkbox) with label and size variants |
|
|
107
109
|
|
|
108
110
|
### Buttons & Actions
|
|
109
111
|
|
|
110
|
-
| Component
|
|
111
|
-
|
|
112
|
-
| `Button`
|
|
112
|
+
| Component | Description |
|
|
113
|
+
| -------------- | ------------------------------------------------------ |
|
|
114
|
+
| `Button` | Primary action button with optional dropdown menu |
|
|
113
115
|
| `DropdownList` | Scrollable menu container; used by `Button` internally |
|
|
114
116
|
|
|
115
117
|
### Display
|
|
116
118
|
|
|
117
|
-
| Component
|
|
118
|
-
|
|
119
|
-
| `Avatar`
|
|
120
|
-
| `Badge`
|
|
121
|
-
| `Pill`
|
|
122
|
-
| `Tag`
|
|
123
|
-
| `ListItem`
|
|
124
|
-
| `FileType`
|
|
125
|
-
| `ImagePlaceholder` | Placeholder shown while an image loads
|
|
126
|
-
| `ImageWithData`
|
|
127
|
-
| `TextHoverable`
|
|
128
|
-
| `Tooltip`
|
|
129
|
-
| `EllipsisTooltip`
|
|
119
|
+
| Component | Description |
|
|
120
|
+
| ------------------ | -------------------------------------------------------------- |
|
|
121
|
+
| `Avatar` | User avatar as initials or photo with size and corner variants |
|
|
122
|
+
| `Badge` | Numeric or text badge in rectangle or pill shape |
|
|
123
|
+
| `Pill` | Status indicator with icon and color/status variants |
|
|
124
|
+
| `Tag` | Label chip with optional dismiss button |
|
|
125
|
+
| `ListItem` | Row with title, description, trailing action icons, and slots |
|
|
126
|
+
| `FileType` | File type icon indicator |
|
|
127
|
+
| `ImagePlaceholder` | Placeholder shown while an image loads |
|
|
128
|
+
| `ImageWithData` | Image with overlaid metadata |
|
|
129
|
+
| `TextHoverable` | Text that reveals additional content on hover |
|
|
130
|
+
| `Tooltip` | Floating label anchored to a trigger element |
|
|
131
|
+
| `EllipsisTooltip` | Tooltip that only activates when text is truncated |
|
|
130
132
|
|
|
131
133
|
### Notifications
|
|
132
134
|
|
|
133
|
-
| Component
|
|
134
|
-
|
|
135
|
-
| `Notifications`
|
|
136
|
-
| `useNotifications` | Hook for triggering toasts imperatively
|
|
135
|
+
| Component | Description |
|
|
136
|
+
| ------------------ | ---------------------------------------------------- |
|
|
137
|
+
| `Notifications` | Toast notification card (title, text, type, actions) |
|
|
138
|
+
| `useNotifications` | Hook for triggering toasts imperatively |
|
|
137
139
|
|
|
138
140
|
Notifications require a single `<ToastContainer>` from `react-toastify` in your app:
|
|
139
141
|
|
|
@@ -154,7 +156,11 @@ function SomeComponent() {
|
|
|
154
156
|
const { notify } = useNotifications();
|
|
155
157
|
|
|
156
158
|
return (
|
|
157
|
-
<button
|
|
159
|
+
<button
|
|
160
|
+
onClick={() =>
|
|
161
|
+
notify({ title: 'Saved!', text: 'Your changes were saved.', type: 'success' })
|
|
162
|
+
}
|
|
163
|
+
>
|
|
158
164
|
Save
|
|
159
165
|
</button>
|
|
160
166
|
);
|
|
@@ -195,7 +201,7 @@ const options = [
|
|
|
195
201
|
variant="primary"
|
|
196
202
|
options={options}
|
|
197
203
|
onClick={(option) => console.log(option.value)}
|
|
198
|
-
|
|
204
|
+
/>;
|
|
199
205
|
```
|
|
200
206
|
|
|
201
207
|
### Form fields
|
|
@@ -240,11 +246,56 @@ import { Modal, Button } from '@eyesee/ui-components';
|
|
|
240
246
|
onClose={() => setIsOpen(false)}
|
|
241
247
|
footer={
|
|
242
248
|
<>
|
|
243
|
-
<Button
|
|
249
|
+
<Button
|
|
250
|
+
text="Cancel"
|
|
251
|
+
variant="neutral"
|
|
252
|
+
type="outline"
|
|
253
|
+
onClick={() => setIsOpen(false)}
|
|
254
|
+
/>
|
|
244
255
|
<Button text="Delete" variant="destructive" onClick={handleDelete} />
|
|
245
256
|
</>
|
|
246
257
|
}
|
|
247
|
-
|
|
258
|
+
/>;
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Use `bodyLayout="fixed"` when the footer can grow (e.g. error Infobox) while content scrolls inside the body. Default body height is `480px` (`360px` below 1536px); override with `bodyHeight` like `maxWidth`. Pass direct children (no single wrapper around all content). Static sections use `flexShrink: 0`; scrollable sections use `flex: 1`, `minHeight: 0`, and `overflowY: 'auto'`. For multi-section layouts, use a flex parent with `display: 'flex'`, `flex: 1`, `minHeight: 0`, and `overflow: 'hidden'`. See the `FixedBodyLayout` Storybook story.
|
|
262
|
+
|
|
263
|
+
```jsx
|
|
264
|
+
import { Modal, Button, Infobox, InputField, ListItem } from '@eyesee/ui-components';
|
|
265
|
+
|
|
266
|
+
<Modal
|
|
267
|
+
visible={isOpen}
|
|
268
|
+
title="Create shelf"
|
|
269
|
+
bodyLayout="fixed"
|
|
270
|
+
bodyHeight={{ default: '520px', mediaQuery: '400px' }}
|
|
271
|
+
maxWidth={{ default: '720px', mediaQuery: '640px' }}
|
|
272
|
+
onClose={() => setIsOpen(false)}
|
|
273
|
+
footer={
|
|
274
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: 8 }}>
|
|
275
|
+
{uploadError && (
|
|
276
|
+
<Infobox status="error" title="Upload failed" text={uploadError} fullWidth />
|
|
277
|
+
)}
|
|
278
|
+
<div style={{ display: 'flex', justifyContent: 'flex-end', gap: 8 }}>
|
|
279
|
+
<Button
|
|
280
|
+
text="Cancel"
|
|
281
|
+
variant="neutral"
|
|
282
|
+
type="outline"
|
|
283
|
+
onClick={() => setIsOpen(false)}
|
|
284
|
+
/>
|
|
285
|
+
<Button text="Create" onClick={handleCreate} />
|
|
286
|
+
</div>
|
|
287
|
+
</div>
|
|
288
|
+
}
|
|
289
|
+
>
|
|
290
|
+
<div style={{ flexShrink: 0 }}>
|
|
291
|
+
<InputField label="Shelf name" value={name} onChange={handleNameChange} />
|
|
292
|
+
</div>
|
|
293
|
+
<div style={{ flex: 1, minHeight: 0, overflowY: 'auto' }}>
|
|
294
|
+
{items.map((item) => (
|
|
295
|
+
<ListItem key={item.id} title={item.title} />
|
|
296
|
+
))}
|
|
297
|
+
</div>
|
|
298
|
+
</Modal>;
|
|
248
299
|
```
|
|
249
300
|
|
|
250
301
|
### ListItem with trailing actions
|
|
@@ -261,7 +312,7 @@ import { EditIcon, DeleteIcon } from '@eyesee/ui-components/icons';
|
|
|
261
312
|
{ type: 'edit', icon: <EditIcon />, onClick: (item) => handleEdit(item) },
|
|
262
313
|
{ type: 'delete', icon: <DeleteIcon />, onClick: (item) => handleDelete(item) },
|
|
263
314
|
]}
|
|
264
|
-
|
|
315
|
+
/>;
|
|
265
316
|
```
|
|
266
317
|
|
|
267
318
|
---
|
|
@@ -4,14 +4,7 @@ import c from "./Badge.module.scss.js";
|
|
|
4
4
|
const g = ({ label: r, shape: o = "rectangle", state: e = "neutral" }) => {
|
|
5
5
|
if (r == null || r === "") return null;
|
|
6
6
|
const { backgroundColor: t, color: n, borderRadius: s } = a(o, e);
|
|
7
|
-
return /* @__PURE__ */ l(
|
|
8
|
-
"span",
|
|
9
|
-
{
|
|
10
|
-
className: c.badge,
|
|
11
|
-
style: { backgroundColor: t, color: n, borderRadius: s },
|
|
12
|
-
children: r
|
|
13
|
-
}
|
|
14
|
-
);
|
|
7
|
+
return /* @__PURE__ */ l("span", { className: c.badge, style: { backgroundColor: t, color: n, borderRadius: s }, children: r });
|
|
15
8
|
};
|
|
16
9
|
export {
|
|
17
10
|
g as Badge
|
|
@@ -43,103 +43,93 @@ const to = ({
|
|
|
43
43
|
return null;
|
|
44
44
|
}
|
|
45
45
|
}, f = !a || t === x.outside ? "8px" : "8px 8px 0 0", w = Number(C), L = n(e.contentText, e.contentTextClamped), A = { WebkitLineClamp: w };
|
|
46
|
-
return /* @__PURE__ */ c(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/* @__PURE__ */ o(
|
|
66
|
-
"div",
|
|
46
|
+
return /* @__PURE__ */ c("div", { className: n(e.imagePlaceholder, m && e.disabled), children: [
|
|
47
|
+
/* @__PURE__ */ c(
|
|
48
|
+
"div",
|
|
49
|
+
{
|
|
50
|
+
className: n(
|
|
51
|
+
e.imageArea,
|
|
52
|
+
s === "checkbox" && e.clickable,
|
|
53
|
+
s === "checkbox" && !i && e.checkboxSelectable
|
|
54
|
+
),
|
|
55
|
+
style: { borderRadius: f },
|
|
56
|
+
onClick: s === "checkbox" && !i && !m ? p : void 0,
|
|
57
|
+
children: [
|
|
58
|
+
/* @__PURE__ */ o(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
className: e.imageFrame,
|
|
62
|
+
style: { aspectRatio: N[v], borderRadius: f },
|
|
63
|
+
children: i ? /* @__PURE__ */ o("div", { className: e.imageError, children: /* @__PURE__ */ o(
|
|
64
|
+
_,
|
|
67
65
|
{
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
children: i ? /* @__PURE__ */ o("div", { className: e.imageError, children: /* @__PURE__ */ o(
|
|
71
|
-
_,
|
|
72
|
-
{
|
|
73
|
-
iconSize: "l",
|
|
74
|
-
strokeColor: "var(--color--icon--disabled--default)"
|
|
75
|
-
}
|
|
76
|
-
) }) : /* @__PURE__ */ o(
|
|
77
|
-
"img",
|
|
78
|
-
{
|
|
79
|
-
className: e.image,
|
|
80
|
-
src: k,
|
|
81
|
-
alt: a,
|
|
82
|
-
onError: () => P(!0)
|
|
83
|
-
}
|
|
84
|
-
)
|
|
66
|
+
iconSize: "l",
|
|
67
|
+
strokeColor: "var(--color--icon--disabled--default)"
|
|
85
68
|
}
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
icon: /* @__PURE__ */ o(B, {}),
|
|
102
|
-
size: "xxs",
|
|
103
|
-
variant: "fill",
|
|
104
|
-
type: "neutral",
|
|
105
|
-
onClick: E
|
|
106
|
-
}
|
|
107
|
-
) : null
|
|
108
|
-
] })
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
),
|
|
112
|
-
a ? /* @__PURE__ */ c("div", { className: n(e.belowImage, e[t]), children: [
|
|
113
|
-
T.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { children: u() }) : null,
|
|
114
|
-
/* @__PURE__ */ c("div", { className: e.content, children: [
|
|
115
|
-
/* @__PURE__ */ o(
|
|
116
|
-
Y,
|
|
69
|
+
) }) : /* @__PURE__ */ o(
|
|
70
|
+
"img",
|
|
71
|
+
{
|
|
72
|
+
className: e.image,
|
|
73
|
+
src: k,
|
|
74
|
+
alt: a,
|
|
75
|
+
onError: () => P(!0)
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
!a && T.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { className: e.tagInImage, children: u() }) : null,
|
|
81
|
+
z.has(s) && /* @__PURE__ */ c("div", { className: e.overlay, onClick: (l) => l.stopPropagation(), children: [
|
|
82
|
+
s === "checkbox" && !i ? /* @__PURE__ */ o(
|
|
83
|
+
y,
|
|
117
84
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
children: a
|
|
85
|
+
checked: S,
|
|
86
|
+
onChange: p,
|
|
87
|
+
size: "lg",
|
|
88
|
+
disabled: m
|
|
123
89
|
}
|
|
124
|
-
),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
)) })
|
|
136
|
-
] })
|
|
90
|
+
) : null,
|
|
91
|
+
s === "close" ? /* @__PURE__ */ o(
|
|
92
|
+
X,
|
|
93
|
+
{
|
|
94
|
+
icon: /* @__PURE__ */ o(B, {}),
|
|
95
|
+
size: "xxs",
|
|
96
|
+
variant: "fill",
|
|
97
|
+
type: "neutral",
|
|
98
|
+
onClick: E
|
|
99
|
+
}
|
|
100
|
+
) : null
|
|
137
101
|
] })
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
),
|
|
105
|
+
a ? /* @__PURE__ */ c("div", { className: n(e.belowImage, e[t]), children: [
|
|
106
|
+
T.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { children: u() }) : null,
|
|
107
|
+
/* @__PURE__ */ c("div", { className: e.content, children: [
|
|
108
|
+
/* @__PURE__ */ o(
|
|
109
|
+
Y,
|
|
110
|
+
{
|
|
111
|
+
position: "bottom",
|
|
112
|
+
showArrow: !0,
|
|
113
|
+
className: L,
|
|
114
|
+
wrapperStyle: A,
|
|
115
|
+
children: a
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
d && /* @__PURE__ */ c("div", { className: e.menu, children: [
|
|
119
|
+
/* @__PURE__ */ o("span", { onClick: () => g(!h), children: /* @__PURE__ */ o(j, {}) }),
|
|
120
|
+
h && /* @__PURE__ */ o(D, { children: d.map((l) => /* @__PURE__ */ o(
|
|
121
|
+
G,
|
|
122
|
+
{
|
|
123
|
+
title: l == null ? void 0 : l.title,
|
|
124
|
+
value: l == null ? void 0 : l.value,
|
|
125
|
+
item: l
|
|
126
|
+
},
|
|
127
|
+
l == null ? void 0 : l.value
|
|
128
|
+
)) })
|
|
129
|
+
] })
|
|
130
|
+
] })
|
|
131
|
+
] }) : null
|
|
132
|
+
] }, I);
|
|
143
133
|
};
|
|
144
134
|
export {
|
|
145
135
|
to as default
|
|
@@ -42,104 +42,94 @@ const ae = ({
|
|
|
42
42
|
return null;
|
|
43
43
|
}
|
|
44
44
|
}, u = !s || t === x.outside ? "8px" : "8px 8px 0 0", A = Number(S), O = n(e.contentText, e.contentTextClamped), w = { WebkitLineClamp: A }, l = C || m;
|
|
45
|
-
return /* @__PURE__ */ a(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
/* @__PURE__ */ o(
|
|
65
|
-
"div",
|
|
45
|
+
return /* @__PURE__ */ a("div", { className: n(e.imagePlaceholder, m && e.disabled), children: [
|
|
46
|
+
/* @__PURE__ */ a(
|
|
47
|
+
"div",
|
|
48
|
+
{
|
|
49
|
+
className: n(
|
|
50
|
+
e.imageArea,
|
|
51
|
+
i === "checkbox" && e.clickable,
|
|
52
|
+
i === "checkbox" && !c && e.checkboxSelectable
|
|
53
|
+
),
|
|
54
|
+
style: { borderRadius: u },
|
|
55
|
+
onClick: i === "checkbox" && !c && !m ? d : void 0,
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ o(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: e.imageFrame,
|
|
61
|
+
style: { aspectRatio: f[I], borderRadius: u },
|
|
62
|
+
children: c ? /* @__PURE__ */ o("div", { className: e.imageError, children: /* @__PURE__ */ o(
|
|
63
|
+
W,
|
|
66
64
|
{
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
children: c ? /* @__PURE__ */ o("div", { className: e.imageError, children: /* @__PURE__ */ o(
|
|
70
|
-
W,
|
|
71
|
-
{
|
|
72
|
-
iconSize: "l",
|
|
73
|
-
strokeColor: "var(--color--icon--disabled--default)"
|
|
74
|
-
}
|
|
75
|
-
) }) : /* @__PURE__ */ o(
|
|
76
|
-
"img",
|
|
77
|
-
{
|
|
78
|
-
className: e.image,
|
|
79
|
-
src: k,
|
|
80
|
-
alt: s,
|
|
81
|
-
onError: () => y(!0)
|
|
82
|
-
}
|
|
83
|
-
)
|
|
65
|
+
iconSize: "l",
|
|
66
|
+
strokeColor: "var(--color--icon--disabled--default)"
|
|
84
67
|
}
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
icon: /* @__PURE__ */ o(X, {}),
|
|
101
|
-
size: "xxs",
|
|
102
|
-
variant: "fill",
|
|
103
|
-
type: "neutral",
|
|
104
|
-
disabled: l,
|
|
105
|
-
onClick: l ? void 0 : E
|
|
106
|
-
}
|
|
107
|
-
) : null,
|
|
108
|
-
i === "icon" && /* @__PURE__ */ o(
|
|
109
|
-
N,
|
|
110
|
-
{
|
|
111
|
-
icon: g,
|
|
112
|
-
size: "xs",
|
|
113
|
-
variant: "fill",
|
|
114
|
-
type: "neutral",
|
|
115
|
-
disabled: l,
|
|
116
|
-
onClick: l ? void 0 : P
|
|
117
|
-
}
|
|
118
|
-
)
|
|
119
|
-
] })
|
|
120
|
-
]
|
|
121
|
-
}
|
|
122
|
-
),
|
|
123
|
-
s ? /* @__PURE__ */ a("div", { className: n(e.belowImage, e[t]), children: [
|
|
124
|
-
b.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { children: h() }) : null,
|
|
125
|
-
/* @__PURE__ */ a("div", { className: e.content, children: [
|
|
126
|
-
/* @__PURE__ */ o(
|
|
127
|
-
Y,
|
|
68
|
+
) }) : /* @__PURE__ */ o(
|
|
69
|
+
"img",
|
|
70
|
+
{
|
|
71
|
+
className: e.image,
|
|
72
|
+
src: k,
|
|
73
|
+
alt: s,
|
|
74
|
+
onError: () => y(!0)
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
}
|
|
78
|
+
),
|
|
79
|
+
!s && b.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { className: e.tagInImage, children: h() }) : null,
|
|
80
|
+
B.has(i) && /* @__PURE__ */ a("div", { className: e.overlay, onClick: (L) => L.stopPropagation(), children: [
|
|
81
|
+
i === "checkbox" && !c ? /* @__PURE__ */ o(
|
|
82
|
+
F,
|
|
128
83
|
{
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
children: s
|
|
84
|
+
checked: v,
|
|
85
|
+
onChange: l ? void 0 : d,
|
|
86
|
+
size: "lg",
|
|
87
|
+
disabled: l
|
|
134
88
|
}
|
|
135
|
-
),
|
|
136
|
-
|
|
89
|
+
) : null,
|
|
90
|
+
i === "close" ? /* @__PURE__ */ o(
|
|
91
|
+
N,
|
|
92
|
+
{
|
|
93
|
+
icon: /* @__PURE__ */ o(X, {}),
|
|
94
|
+
size: "xxs",
|
|
95
|
+
variant: "fill",
|
|
96
|
+
type: "neutral",
|
|
97
|
+
disabled: l,
|
|
98
|
+
onClick: l ? void 0 : E
|
|
99
|
+
}
|
|
100
|
+
) : null,
|
|
101
|
+
i === "icon" && /* @__PURE__ */ o(
|
|
102
|
+
N,
|
|
103
|
+
{
|
|
104
|
+
icon: g,
|
|
105
|
+
size: "xs",
|
|
106
|
+
variant: "fill",
|
|
107
|
+
type: "neutral",
|
|
108
|
+
disabled: l,
|
|
109
|
+
onClick: l ? void 0 : P
|
|
110
|
+
}
|
|
111
|
+
)
|
|
137
112
|
] })
|
|
138
|
-
]
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
s ? /* @__PURE__ */ a("div", { className: n(e.belowImage, e[t]), children: [
|
|
117
|
+
b.has(r == null ? void 0 : r.type) ? /* @__PURE__ */ o("div", { children: h() }) : null,
|
|
118
|
+
/* @__PURE__ */ a("div", { className: e.content, children: [
|
|
119
|
+
/* @__PURE__ */ o(
|
|
120
|
+
Y,
|
|
121
|
+
{
|
|
122
|
+
position: "bottom",
|
|
123
|
+
showArrow: !0,
|
|
124
|
+
className: O,
|
|
125
|
+
wrapperStyle: w,
|
|
126
|
+
children: s
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
p && /* @__PURE__ */ o("div", { className: e.number, children: p })
|
|
130
|
+
] })
|
|
131
|
+
] }) : null
|
|
132
|
+
] }, T);
|
|
143
133
|
};
|
|
144
134
|
export {
|
|
145
135
|
ae as default
|