@eagami/ui 0.8.1 → 0.10.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 +129 -6
- package/fesm2022/eagami-ui.mjs +1405 -285
- package/fesm2022/eagami-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/eagami-ui.d.ts +238 -3
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="docs/images/eagami-header.png" alt="eagami design system — elegant web design
|
|
2
|
+
<img src="docs/images/eagami-header.png" alt="eagami design system — elegant web design" width="800" />
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
A lightweight, accessible Angular component library built on CSS custom properties. Ready to use out of the box — install, import, and start building.
|
|
@@ -111,6 +111,24 @@ Variants: `default` | `success` | `warning` | `error` | `info`. Two-way `visible
|
|
|
111
111
|
|
|
112
112
|
</details>
|
|
113
113
|
|
|
114
|
+
<details>
|
|
115
|
+
<summary><strong>Autocomplete</strong> — text input with filtered suggestion dropdown</summary>
|
|
116
|
+
|
|
117
|
+
Arrow key navigation, case-insensitive substring matching, configurable `minLength` and `maxResults`. Full `ControlValueAccessor` support.
|
|
118
|
+
|
|
119
|
+
```html
|
|
120
|
+
<ea-autocomplete
|
|
121
|
+
label="Country"
|
|
122
|
+
placeholder="Start typing…"
|
|
123
|
+
[options]="countries"
|
|
124
|
+
[(value)]="selectedCountry"
|
|
125
|
+
(optionSelected)="onSelect($event)" />
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
<img src="docs/images/autocomplete.png" alt="Autocomplete component" width="560" />
|
|
129
|
+
|
|
130
|
+
</details>
|
|
131
|
+
|
|
114
132
|
<details>
|
|
115
133
|
<summary><strong>Avatar</strong> — image with initials or icon fallback</summary>
|
|
116
134
|
|
|
@@ -127,7 +145,7 @@ Sizes: `xs` | `sm` | `md` | `lg` | `xl`. Shapes: `circle` | `square`.
|
|
|
127
145
|
</details>
|
|
128
146
|
|
|
129
147
|
<details>
|
|
130
|
-
<summary><strong>Avatar
|
|
148
|
+
<summary><strong>Avatar editor</strong> — canvas-based image editor with pan, zoom, and crop</summary>
|
|
131
149
|
|
|
132
150
|
Drag-and-drop upload, zoom via slider or scroll wheel. Outputs a `Blob` and data URL.
|
|
133
151
|
|
|
@@ -156,6 +174,25 @@ Variants: `default` | `success` | `warning` | `error` | `info`. Sizes: `sm` | `m
|
|
|
156
174
|
|
|
157
175
|
</details>
|
|
158
176
|
|
|
177
|
+
<details>
|
|
178
|
+
<summary><strong>Breadcrumbs</strong> — navigation trail with chevron or slash separators</summary>
|
|
179
|
+
|
|
180
|
+
Separators: `chevron` | `slash`. Items can be links (`href`), buttons (no `href`), or disabled. The last item is automatically rendered as the current page.
|
|
181
|
+
|
|
182
|
+
```html
|
|
183
|
+
<ea-breadcrumbs
|
|
184
|
+
[items]="[
|
|
185
|
+
{ label: 'Home', href: '/' },
|
|
186
|
+
{ label: 'Products', href: '/products' },
|
|
187
|
+
{ label: 'MacBook Pro' }
|
|
188
|
+
]"
|
|
189
|
+
(itemClicked)="navigate($event)" />
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
<img src="docs/images/breadcrumbs.png" alt="Breadcrumbs component" width="560" />
|
|
193
|
+
|
|
194
|
+
</details>
|
|
195
|
+
|
|
159
196
|
<details>
|
|
160
197
|
<summary><strong>Button</strong> — primary, secondary, ghost, danger variants with loading state</summary>
|
|
161
198
|
|
|
@@ -205,7 +242,7 @@ Sizes: `sm` | `md` | `lg`.
|
|
|
205
242
|
</details>
|
|
206
243
|
|
|
207
244
|
<details>
|
|
208
|
-
<summary><strong>Code
|
|
245
|
+
<summary><strong>Code input</strong> — verification code entry with auto-advance and paste support</summary>
|
|
209
246
|
|
|
210
247
|
Configurable `length` (default 6). Full `ControlValueAccessor` support.
|
|
211
248
|
|
|
@@ -218,7 +255,7 @@ Configurable `length` (default 6). Full `ControlValueAccessor` support.
|
|
|
218
255
|
</details>
|
|
219
256
|
|
|
220
257
|
<details>
|
|
221
|
-
<summary><strong>Data
|
|
258
|
+
<summary><strong>Data table</strong> — sortable columns, sticky headers, density modes</summary>
|
|
222
259
|
|
|
223
260
|
Striped, bordered, and hoverable rows. Custom cell templates via `ng-template`. Density: `compact` | `comfortable` | `spacious`. Two-way `sort` binding.
|
|
224
261
|
|
|
@@ -236,6 +273,24 @@ Striped, bordered, and hoverable rows. Custom cell templates via `ng-template`.
|
|
|
236
273
|
|
|
237
274
|
</details>
|
|
238
275
|
|
|
276
|
+
<details>
|
|
277
|
+
<summary><strong>Date picker</strong> — calendar popover with keyboard navigation and min/max bounds</summary>
|
|
278
|
+
|
|
279
|
+
Sizes: `sm` | `md` | `lg`. Formats: `short` | `medium` | `long` (locale-aware via `Intl.DateTimeFormat`). Configurable week start (Sunday or Monday). Full keyboard navigation (arrows, PageUp/PageDown, Home/End, Enter, Escape) and `ControlValueAccessor` integration.
|
|
280
|
+
|
|
281
|
+
```html
|
|
282
|
+
<ea-date-picker
|
|
283
|
+
label="Appointment"
|
|
284
|
+
placeholder="Pick a date…"
|
|
285
|
+
format="medium"
|
|
286
|
+
[minDate]="today"
|
|
287
|
+
[(value)]="appointmentDate" />
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
<img src="docs/images/date-picker.png" alt="Date picker component" width="560" />
|
|
291
|
+
|
|
292
|
+
</details>
|
|
293
|
+
|
|
239
294
|
<details>
|
|
240
295
|
<summary><strong>Dialog</strong> — native dialog element with focus trapping</summary>
|
|
241
296
|
|
|
@@ -254,6 +309,8 @@ Sizes: `sm` | `md` | `lg` | `full`. Two-way `open` binding.
|
|
|
254
309
|
</ea-dialog>
|
|
255
310
|
```
|
|
256
311
|
|
|
312
|
+
<img src="docs/images/dialog.png" alt="Dialog component" width="560" />
|
|
313
|
+
|
|
257
314
|
</details>
|
|
258
315
|
|
|
259
316
|
<details>
|
|
@@ -271,6 +328,28 @@ Orientation: `horizontal` | `vertical`.
|
|
|
271
328
|
|
|
272
329
|
</details>
|
|
273
330
|
|
|
331
|
+
<details>
|
|
332
|
+
<summary><strong>Drawer</strong> — side panel using native dialog with focus trapping</summary>
|
|
333
|
+
|
|
334
|
+
Positions: `left` | `right` | `top` | `bottom`. Sizes: `sm` | `md` | `lg` | `full`. Two-way `open` binding.
|
|
335
|
+
|
|
336
|
+
```html
|
|
337
|
+
<ea-button (clicked)="drawerOpen.set(true)">Open</ea-button>
|
|
338
|
+
|
|
339
|
+
<ea-drawer [(open)]="drawerOpen" position="right" size="md">
|
|
340
|
+
<span slot="header">Details</span>
|
|
341
|
+
<p>Drawer body content…</p>
|
|
342
|
+
<span slot="footer">
|
|
343
|
+
<ea-button variant="secondary" (clicked)="drawerOpen.set(false)">Cancel</ea-button>
|
|
344
|
+
<ea-button (clicked)="save()">Save</ea-button>
|
|
345
|
+
</span>
|
|
346
|
+
</ea-drawer>
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
<img src="docs/images/drawer.png" alt="Drawer component" width="560" />
|
|
350
|
+
|
|
351
|
+
</details>
|
|
352
|
+
|
|
274
353
|
<details>
|
|
275
354
|
<summary><strong>Dropdown</strong> — select with ControlValueAccessor and keyboard navigation</summary>
|
|
276
355
|
|
|
@@ -288,6 +367,22 @@ Arrow keys, Enter/Space to select, Escape to close. Sizes: `sm` | `md` | `lg`.
|
|
|
288
367
|
|
|
289
368
|
</details>
|
|
290
369
|
|
|
370
|
+
<details>
|
|
371
|
+
<summary><strong>Eagami wordmark</strong> — branded logo wordmark linking to eagami.com</summary>
|
|
372
|
+
|
|
373
|
+
Variants: `logo` (icon only) | `signature` (handcrafted by <text>) | `brand` (<text> with tagline). The `text` input switches the main wordmark between `eagami` and `eagami design system` in the `signature` and `brand` variants. Three discrete sizes (`sm`, `md`, `lg`) scale both the logo and the text proportionally.
|
|
374
|
+
|
|
375
|
+
```html
|
|
376
|
+
<ea-eagami-wordmark
|
|
377
|
+
variant="brand"
|
|
378
|
+
size="md"
|
|
379
|
+
text="eagami design system" />
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
<img src="docs/images/eagami-wordmark.png" alt="Eagami wordmark component" width="560" />
|
|
383
|
+
|
|
384
|
+
</details>
|
|
385
|
+
|
|
291
386
|
<details>
|
|
292
387
|
<summary><strong>Input</strong> — text field with ControlValueAccessor and password toggle</summary>
|
|
293
388
|
|
|
@@ -306,6 +401,29 @@ Types: `text` | `email` | `password` | `number` | `search` | `tel` | `url`. Size
|
|
|
306
401
|
|
|
307
402
|
</details>
|
|
308
403
|
|
|
404
|
+
<details>
|
|
405
|
+
<summary><strong>Menu</strong> — popup action menu with trigger slot and menu items</summary>
|
|
406
|
+
|
|
407
|
+
Placements: `bottom-start` | `bottom-end` | `top-start` | `top-end`. Menu items support icons, disabled state, and a `danger` variant. Closes on outside click or Escape.
|
|
408
|
+
|
|
409
|
+
```html
|
|
410
|
+
<ea-menu placement="bottom-end">
|
|
411
|
+
<ea-button slot="trigger" variant="secondary">Actions</ea-button>
|
|
412
|
+
<ea-menu-item (itemClicked)="edit()">
|
|
413
|
+
<ea-icon-pencil slot="icon" />
|
|
414
|
+
Edit
|
|
415
|
+
</ea-menu-item>
|
|
416
|
+
<ea-menu-item variant="danger" (itemClicked)="delete()">
|
|
417
|
+
<ea-icon-trash slot="icon" />
|
|
418
|
+
Delete
|
|
419
|
+
</ea-menu-item>
|
|
420
|
+
</ea-menu>
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
<img src="docs/images/menu.png" alt="Menu component" width="560" />
|
|
424
|
+
|
|
425
|
+
</details>
|
|
426
|
+
|
|
309
427
|
<details>
|
|
310
428
|
<summary><strong>Paginator</strong> — page navigation with configurable page sizes</summary>
|
|
311
429
|
|
|
@@ -319,10 +437,12 @@ Placement: `left` | `center` | `right`. Emits `pageChange` events with current p
|
|
|
319
437
|
(pageChange)="onPageChange($event)" />
|
|
320
438
|
```
|
|
321
439
|
|
|
440
|
+
<img src="docs/images/paginator.png" alt="Paginator component" width="560" />
|
|
441
|
+
|
|
322
442
|
</details>
|
|
323
443
|
|
|
324
444
|
<details>
|
|
325
|
-
<summary><strong>Progress
|
|
445
|
+
<summary><strong>Progress bar</strong> — determinate and indeterminate linear indicator</summary>
|
|
326
446
|
|
|
327
447
|
Variants: `default` | `success` | `warning` | `error` | `info`. Sizes: `sm` | `md` | `lg`. Optional `label` and `showValue` display.
|
|
328
448
|
|
|
@@ -482,12 +602,14 @@ Positions: `top` | `bottom` | `left` | `right`.
|
|
|
482
602
|
<ea-button eaTooltip="Save your changes" tooltipPosition="top">Save</ea-button>
|
|
483
603
|
```
|
|
484
604
|
|
|
605
|
+
<img src="docs/images/tooltip.png" alt="Tooltip component" width="560" />
|
|
606
|
+
|
|
485
607
|
</details>
|
|
486
608
|
|
|
487
609
|
## Icons
|
|
488
610
|
|
|
489
611
|
<details>
|
|
490
|
-
<summary><strong>
|
|
612
|
+
<summary><strong>52 built-in SVG icon components</strong> — Feather-style (24x24, stroke-based, inherits <code>currentColor</code>)</summary>
|
|
491
613
|
|
|
492
614
|
| Tag | Preview |
|
|
493
615
|
|---|---|
|
|
@@ -511,6 +633,7 @@ Positions: `top` | `bottom` | `left` | `right`.
|
|
|
511
633
|
| `<ea-icon-clock />` | <img src="docs/images/icons/clock.png" width="48" height="48" alt="clock" /> |
|
|
512
634
|
| `<ea-icon-copy />` | <img src="docs/images/icons/copy.png" width="48" height="48" alt="copy" /> |
|
|
513
635
|
| `<ea-icon-download />` | <img src="docs/images/icons/download.png" width="48" height="48" alt="download" /> |
|
|
636
|
+
| `<ea-icon-eagami />` | <img src="docs/images/icons/eagami.png" width="48" height="48" alt="eagami" /> |
|
|
514
637
|
| `<ea-icon-external-link />` | <img src="docs/images/icons/external-link.png" width="48" height="48" alt="external-link" /> |
|
|
515
638
|
| `<ea-icon-eye />` | <img src="docs/images/icons/eye.png" width="48" height="48" alt="eye" /> |
|
|
516
639
|
| `<ea-icon-eye-off />` | <img src="docs/images/icons/eye-off.png" width="48" height="48" alt="eye-off" /> |
|