@easemate/web-kit 0.3.2 → 0.3.4
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 +204 -34
- package/build/decorators.cjs +7 -7
- package/build/decorators.cjs.map +1 -1
- package/build/decorators.js +7 -7
- package/build/decorators.js.map +1 -1
- package/build/elements.cjs +1902 -747
- package/build/elements.cjs.map +1 -1
- package/build/elements.d.cts +51 -2
- package/build/elements.d.ts +51 -2
- package/build/elements.js +1899 -746
- package/build/elements.js.map +1 -1
- package/build/{index-NzGpn7ai.d.cts → index-BKwMPyPy.d.cts} +3 -0
- package/build/{index-NzGpn7ai.d.ts → index-BKwMPyPy.d.ts} +3 -0
- package/build/index.cjs +7338 -3477
- package/build/index.cjs.map +1 -1
- package/build/index.d.cts +4 -4
- package/build/index.d.ts +4 -4
- package/build/index.js +7569 -3710
- package/build/index.js.map +1 -1
- package/build/{init-CaP7khA2.d.ts → init-C4Q5EEAr.d.ts} +1 -1
- package/build/{init-DmqoRv6_.d.cts → init-yLajTNMT.d.cts} +1 -1
- package/build/jsx.cjs.map +1 -1
- package/build/jsx.d.cts +61 -7
- package/build/jsx.d.ts +61 -7
- package/build/jsx.js.map +1 -1
- package/build/react.cjs +4402 -1658
- package/build/react.cjs.map +1 -1
- package/build/react.d.cts +4 -4
- package/build/react.d.ts +4 -4
- package/build/react.js +4403 -1659
- package/build/react.js.map +1 -1
- package/build/register.cjs +10895 -7033
- package/build/register.cjs.map +1 -1
- package/build/register.js +10877 -7015
- package/build/register.js.map +1 -1
- package/build/{registry-YCv1Ctoe.d.cts → registry-GVSJPmus.d.cts} +1 -0
- package/build/{registry-YCv1Ctoe.d.ts → registry-GVSJPmus.d.ts} +1 -0
- package/build/theme.cjs +34 -3
- package/build/theme.cjs.map +1 -1
- package/build/theme.d.cts +2 -2
- package/build/theme.d.ts +2 -2
- package/build/theme.js +34 -3
- package/build/theme.js.map +1 -1
- package/build/utils.cjs +3 -3
- package/build/utils.cjs.map +1 -1
- package/build/utils.js +3 -3
- package/build/utils.js.map +1 -1
- package/package.json +2 -12
package/README.md
CHANGED
|
@@ -41,6 +41,7 @@ A modern, framework-agnostic UI kit of web components for building animation con
|
|
|
41
41
|
- [Usage Examples](#usage-examples)
|
|
42
42
|
- [Basic Controls](#basic-controls)
|
|
43
43
|
- [Panel Component](#panel-component)
|
|
44
|
+
- [Folder Component](#folder-component)
|
|
44
45
|
- [State Component](#state-component)
|
|
45
46
|
- [Combined Panel + State](#combined-panel--state)
|
|
46
47
|
- [JavaScript Integration](#javascript-integration)
|
|
@@ -63,9 +64,12 @@ A modern, framework-agnostic UI kit of web components for building animation con
|
|
|
63
64
|
- [Controller API](#controller-api)
|
|
64
65
|
- [Package Exports](#package-exports)
|
|
65
66
|
- [Panel API](#panel-api)
|
|
67
|
+
- [Folder API](#folder-api)
|
|
66
68
|
- [State API](#state-api)
|
|
67
69
|
- [Accessibility](#accessibility)
|
|
68
70
|
- [SSR Support](#ssr-support)
|
|
71
|
+
- [Links](#links)
|
|
72
|
+
- [Authors](#authors)
|
|
69
73
|
- [License](#license)
|
|
70
74
|
|
|
71
75
|
---
|
|
@@ -186,7 +190,11 @@ The library provides first-class React integration via `@easemate/web-kit/react`
|
|
|
186
190
|
|
|
187
191
|
### JSX Types
|
|
188
192
|
|
|
189
|
-
Importing `@easemate/web-kit/react` automatically adds JSX types for all `ease-*` custom elements:
|
|
193
|
+
Importing `@easemate/web-kit/react` automatically adds JSX types for all `ease-*` custom elements, including:
|
|
194
|
+
- All control components (`ease-slider`, `ease-toggle`, `ease-input`, etc.)
|
|
195
|
+
- Layout components (`ease-panel`, `ease-state`, `ease-field`, etc.)
|
|
196
|
+
- Advanced components (`ease-curve`, `ease-code`, `ease-monitor-fps`, etc.)
|
|
197
|
+
- All icon components (`ease-icon-settings`, `ease-icon-bezier`, etc.)
|
|
190
198
|
|
|
191
199
|
```tsx
|
|
192
200
|
import '@easemate/web-kit/react';
|
|
@@ -197,12 +205,26 @@ import '@easemate/web-kit/react';
|
|
|
197
205
|
</ease-panel>
|
|
198
206
|
```
|
|
199
207
|
|
|
200
|
-
You can also import just the JSX types separately:
|
|
208
|
+
You can also import just the JSX types separately (useful for type-only imports):
|
|
201
209
|
|
|
202
210
|
```tsx
|
|
203
211
|
import '@easemate/web-kit/react/jsx';
|
|
204
212
|
```
|
|
205
213
|
|
|
214
|
+
The types include proper ref types for accessing component methods:
|
|
215
|
+
|
|
216
|
+
```tsx
|
|
217
|
+
import type { StateElement, PanelElement } from '@easemate/web-kit/react';
|
|
218
|
+
|
|
219
|
+
const stateRef = useRef<StateElement>(null);
|
|
220
|
+
const panelRef = useRef<PanelElement>(null);
|
|
221
|
+
|
|
222
|
+
// Access typed methods
|
|
223
|
+
stateRef.current?.get('volume');
|
|
224
|
+
stateRef.current?.reset();
|
|
225
|
+
panelRef.current?.setActiveTab(1);
|
|
226
|
+
```
|
|
227
|
+
|
|
206
228
|
### Basic Setup
|
|
207
229
|
|
|
208
230
|
```tsx
|
|
@@ -324,8 +346,7 @@ function AnimationControls() {
|
|
|
324
346
|
);
|
|
325
347
|
|
|
326
348
|
return (
|
|
327
|
-
<ease-panel ref={panelRef}>
|
|
328
|
-
<span slot="headline">Animation</span>
|
|
349
|
+
<ease-panel ref={panelRef} headline="Animation">
|
|
329
350
|
<ease-state ref={stateRef}>
|
|
330
351
|
<ease-field label="Duration">
|
|
331
352
|
<ease-slider name="duration" value="1" min="0" max="5" step="0.1" />
|
|
@@ -444,6 +465,7 @@ const handleChange = createEventHandler<ControlChangeEvent>((e) => {
|
|
|
444
465
|
| Component | Tag | Description |
|
|
445
466
|
|-----------|-----|-------------|
|
|
446
467
|
| Panel | `<ease-panel>` | Visual container with tabs, header, and footer |
|
|
468
|
+
| Folder | `<ease-folder>` | Collapsible container for grouping controls |
|
|
447
469
|
| State | `<ease-state>` | State aggregator for controls (no visual styling) |
|
|
448
470
|
| Field | `<ease-field>` | Label + control wrapper |
|
|
449
471
|
| Button | `<ease-button>` | Action button |
|
|
@@ -462,13 +484,40 @@ const handleChange = createEventHandler<ControlChangeEvent>((e) => {
|
|
|
462
484
|
|
|
463
485
|
### Icons
|
|
464
486
|
|
|
465
|
-
All icon components follow the pattern `<ease-icon
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
-
|
|
487
|
+
All icon components follow the pattern `<ease-icon-*>`. All icons are typed in JSX when importing `@easemate/web-kit/react`.
|
|
488
|
+
|
|
489
|
+
**Interface Icons:**
|
|
490
|
+
| Tag | Description |
|
|
491
|
+
|-----|-------------|
|
|
492
|
+
| `ease-icon-settings` | Settings gear icon |
|
|
493
|
+
| `ease-icon-dots` | Three dots / more menu icon |
|
|
494
|
+
| `ease-icon-plus` | Plus / add icon |
|
|
495
|
+
| `ease-icon-minus` | Minus / remove icon |
|
|
496
|
+
| `ease-icon-check` | Checkmark icon |
|
|
497
|
+
| `ease-icon-code` | Code brackets icon |
|
|
498
|
+
| `ease-icon-picker` | Eyedropper picker icon |
|
|
499
|
+
| `ease-icon-mention` | @ mention icon |
|
|
500
|
+
| `ease-icon-arrow-up` | Up arrow icon |
|
|
501
|
+
| `ease-icon-arrows-vertical` | Vertical arrows icon |
|
|
502
|
+
| `ease-icon-circle-arrow-left` | Left arrow in circle |
|
|
503
|
+
| `ease-icon-circle-arrow-right` | Right arrow in circle |
|
|
504
|
+
| `ease-icon-anchor-add` | Add anchor point |
|
|
505
|
+
| `ease-icon-anchor-remove` | Remove anchor point |
|
|
506
|
+
| `ease-icon-bezier` | Bezier curve icon |
|
|
507
|
+
| `ease-icon-bezier-angle` | Bezier angle tool |
|
|
508
|
+
| `ease-icon-bezier-distribute` | Distribute bezier points |
|
|
509
|
+
| `ease-icon-bezier-length` | Bezier length tool |
|
|
510
|
+
| `ease-icon-bezier-mirror` | Mirror bezier handles |
|
|
511
|
+
|
|
512
|
+
**Animation Icons:**
|
|
513
|
+
| Tag | Description |
|
|
514
|
+
|-----|-------------|
|
|
515
|
+
| `ease-icon-chevron` | Animated chevron (expands/collapses) |
|
|
516
|
+
| `ease-icon-clear` | Animated clear/X icon |
|
|
517
|
+
| `ease-icon-folder` | Animated folder open/close icon |
|
|
518
|
+
| `ease-icon-grid` | Animated grid icon |
|
|
519
|
+
| `ease-icon-loading` | Animated loading spinner |
|
|
520
|
+
| `ease-icon-snap` | Animated snap indicator |
|
|
472
521
|
|
|
473
522
|
---
|
|
474
523
|
|
|
@@ -490,15 +539,14 @@ The `<ease-panel>` component provides the visual container with optional tabs, h
|
|
|
490
539
|
|
|
491
540
|
```html
|
|
492
541
|
<!-- Simple panel with headline -->
|
|
493
|
-
<ease-panel>
|
|
494
|
-
<span slot="headline">Settings</span>
|
|
542
|
+
<ease-panel headline="Settings">
|
|
495
543
|
<div>
|
|
496
544
|
<!-- Your content here -->
|
|
497
545
|
</div>
|
|
498
546
|
</ease-panel>
|
|
499
547
|
|
|
500
548
|
<!-- Panel with tabs -->
|
|
501
|
-
<ease-panel active-tab="0">
|
|
549
|
+
<ease-panel headline="Animation" active-tab="0">
|
|
502
550
|
<div slot="tab-general" data-tab-label="General">
|
|
503
551
|
<!-- General settings -->
|
|
504
552
|
</div>
|
|
@@ -508,8 +556,7 @@ The `<ease-panel>` component provides the visual container with optional tabs, h
|
|
|
508
556
|
</ease-panel>
|
|
509
557
|
|
|
510
558
|
<!-- Panel with header actions -->
|
|
511
|
-
<ease-panel>
|
|
512
|
-
<span slot="headline">Controls</span>
|
|
559
|
+
<ease-panel headline="Controls">
|
|
513
560
|
<button slot="actions" title="Settings">
|
|
514
561
|
<ease-icon-settings></ease-icon-settings>
|
|
515
562
|
</button>
|
|
@@ -520,6 +567,40 @@ The `<ease-panel>` component provides the visual container with optional tabs, h
|
|
|
520
567
|
<ease-button>Save</ease-button>
|
|
521
568
|
</div>
|
|
522
569
|
</ease-panel>
|
|
570
|
+
|
|
571
|
+
<!-- Panel with max-height (scrollable) -->
|
|
572
|
+
<ease-panel headline="Scrollable Panel" max-height="250px">
|
|
573
|
+
<!-- Content will scroll when it exceeds 250px -->
|
|
574
|
+
</ease-panel>
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
### Folder Component
|
|
578
|
+
|
|
579
|
+
The `<ease-folder>` component provides a collapsible container for grouping controls. Click the header to toggle open/closed.
|
|
580
|
+
|
|
581
|
+
```html
|
|
582
|
+
<!-- Basic folder (closed by default) -->
|
|
583
|
+
<ease-folder headline="Transform">
|
|
584
|
+
<ease-field label="X">
|
|
585
|
+
<ease-number-input name="x" value="0"></ease-number-input>
|
|
586
|
+
</ease-field>
|
|
587
|
+
<ease-field label="Y">
|
|
588
|
+
<ease-number-input name="y" value="0"></ease-number-input>
|
|
589
|
+
</ease-field>
|
|
590
|
+
</ease-folder>
|
|
591
|
+
|
|
592
|
+
<!-- Open folder -->
|
|
593
|
+
<ease-folder open headline="Appearance">
|
|
594
|
+
<ease-field label="Color">
|
|
595
|
+
<ease-color-input name="color" value="#3b82f6"></ease-color-input>
|
|
596
|
+
</ease-field>
|
|
597
|
+
</ease-folder>
|
|
598
|
+
|
|
599
|
+
<!-- Folder with max-height (scrollable with fade masks) -->
|
|
600
|
+
<ease-folder headline="Animation" max-height="150px">
|
|
601
|
+
<!-- Many fields here will scroll with fade effect -->
|
|
602
|
+
</ease-folder>
|
|
603
|
+
|
|
523
604
|
```
|
|
524
605
|
|
|
525
606
|
### State Component
|
|
@@ -549,9 +630,7 @@ The `<ease-state>` component aggregates state from child controls. It can be use
|
|
|
549
630
|
For a complete control panel experience, combine `<ease-panel>` with `<ease-state>`:
|
|
550
631
|
|
|
551
632
|
```html
|
|
552
|
-
<ease-panel>
|
|
553
|
-
<span slot="headline">Animation Controls</span>
|
|
554
|
-
|
|
633
|
+
<ease-panel headline="Animation Controls">
|
|
555
634
|
<button slot="actions" title="Reset">
|
|
556
635
|
<ease-icon-minus></ease-icon-minus>
|
|
557
636
|
</button>
|
|
@@ -585,7 +664,7 @@ For a complete control panel experience, combine `<ease-panel>` with `<ease-stat
|
|
|
585
664
|
When using tabs with state, place the `<ease-state>` inside each tab:
|
|
586
665
|
|
|
587
666
|
```html
|
|
588
|
-
<ease-panel active-tab="0">
|
|
667
|
+
<ease-panel headline="Animation" active-tab="0">
|
|
589
668
|
<button slot="actions" title="Reset">
|
|
590
669
|
<ease-icon-minus></ease-icon-minus>
|
|
591
670
|
</button>
|
|
@@ -1028,12 +1107,12 @@ setThemeName('light', { colorScheme: 'light' });
|
|
|
1028
1107
|
| Category | Variables |
|
|
1029
1108
|
|----------|-----------|
|
|
1030
1109
|
| Typography | `--ease-font-family`, `--ease-font-mono`, `--ease-font-size`, `--ease-line-height` |
|
|
1031
|
-
| Panel | `--ease-panel-max-width`, `--ease-panel-padding`, `--ease-panel-radius`, `--ease-panel-background`, `--ease-panel-border-color`, `--ease-panel-shadow` |
|
|
1032
|
-
| Panel Title | `--ease-panel-title-font-size`, `--ease-panel-title-font-weight`, `--ease-panel-title-
|
|
1033
|
-
| Panel Tabs | `--ease-panel-tab-font-size`, `--ease-panel-tab-font-weight`, `--ease-panel-tab-
|
|
1110
|
+
| Panel | `--ease-panel-max-width`, `--ease-panel-padding`, `--ease-panel-radius`, `--ease-panel-background`, `--ease-panel-border-color`, `--ease-panel-shadow`, `--ease-panel-gap`, `--ease-panel-header-spacing`, `--ease-panel-fade-size` |
|
|
1111
|
+
| Panel Title | `--ease-panel-title-font-size`, `--ease-panel-title-font-weight`, `--ease-panel-title-color` |
|
|
1112
|
+
| Panel Tabs | `--ease-panel-tab-font-size`, `--ease-panel-tab-font-weight`, `--ease-panel-tab-color`, `--ease-panel-tab-color-hover`, `--ease-panel-tab-color-active`, `--ease-panel-tab-background-active`, `--ease-panel-tab-radius` |
|
|
1034
1113
|
| Panel Actions | `--ease-panel-action-icon-size` |
|
|
1035
1114
|
| Panel Footer | `--ease-panel-footer-padding` |
|
|
1036
|
-
|
|
|
1115
|
+
| Folder | `--ease-folder-padding`, `--ease-folder-radius`, `--ease-folder-border-color`, `--ease-folder-background`, `--ease-folder-shadow`, `--ease-folder-gap`, `--ease-folder-title-font-size`, `--ease-folder-title-font-weight`, `--ease-folder-title-color`, `--ease-folder-icon-color`, `--ease-folder-chevron-color`, `--ease-folder-chevron-color-hover`, `--ease-folder-fade-size` |
|
|
1037
1116
|
| Field | `--ease-field-label-width`, `--ease-field-column-gap`, `--ease-field-row-gap` |
|
|
1038
1117
|
| Controls | Each control exposes `--ease-<component>-*` tokens |
|
|
1039
1118
|
|
|
@@ -1060,14 +1139,14 @@ interface WebKitController {
|
|
|
1060
1139
|
|
|
1061
1140
|
| Export | Description |
|
|
1062
1141
|
|--------|-------------|
|
|
1063
|
-
| `@easemate/web-kit` | Main entry (
|
|
1064
|
-
| `@easemate/web-kit/react` | React hooks, utilities, and JSX types |
|
|
1065
|
-
| `@easemate/web-kit/react/jsx` | JSX type augmentation only |
|
|
1066
|
-
| `@easemate/web-kit/register` | Side-effect
|
|
1067
|
-
| `@easemate/web-kit/elements` |
|
|
1068
|
-
| `@easemate/web-kit/decorators` | Component decorators |
|
|
1069
|
-
| `@easemate/web-kit/theme` |
|
|
1070
|
-
| `@easemate/web-kit/utils` |
|
|
1142
|
+
| `@easemate/web-kit` | Main entry: `initWebKit()`, theme utilities, and all types |
|
|
1143
|
+
| `@easemate/web-kit/react` | React hooks (`useWebKit`, `useEaseState`), provider, event utilities, and JSX types |
|
|
1144
|
+
| `@easemate/web-kit/react/jsx` | JSX type augmentation only (for TypeScript) |
|
|
1145
|
+
| `@easemate/web-kit/register` | Side-effect import that registers all components (SSR-safe) |
|
|
1146
|
+
| `@easemate/web-kit/elements` | Individual element classes (`Button`, `Slider`, `Panel`, etc.) |
|
|
1147
|
+
| `@easemate/web-kit/decorators` | `@Component`, `@Prop`, `@Watch`, `@Listen`, `@Query` decorators |
|
|
1148
|
+
| `@easemate/web-kit/theme` | Theme API: `applyTheme`, `createTheme`, `mergeTheme`, `registerTheme` |
|
|
1149
|
+
| `@easemate/web-kit/utils` | Template helpers: `classMap`, `styleMap`, `when`, `repeat`, etc. |
|
|
1071
1150
|
|
|
1072
1151
|
### Panel API
|
|
1073
1152
|
|
|
@@ -1077,7 +1156,9 @@ The `<ease-panel>` component provides the visual container.
|
|
|
1077
1156
|
|
|
1078
1157
|
| Property | Type | Default | Description |
|
|
1079
1158
|
|----------|------|---------|-------------|
|
|
1159
|
+
| `headline` | `string \| null` | `null` | Panel title text displayed in the header |
|
|
1080
1160
|
| `activeTab` | `number` | `0` | Zero-based index of the active tab |
|
|
1161
|
+
| `maxHeight` | `string \| null` | `null` | Maximum height for scrollable content (e.g., "250px") |
|
|
1081
1162
|
|
|
1082
1163
|
#### Methods
|
|
1083
1164
|
|
|
@@ -1089,7 +1170,6 @@ The `<ease-panel>` component provides the visual container.
|
|
|
1089
1170
|
|
|
1090
1171
|
| Slot | Description |
|
|
1091
1172
|
|------|-------------|
|
|
1092
|
-
| `headline` | Panel title text (hidden when tabs are present) |
|
|
1093
1173
|
| `actions` | Header action buttons, links, or dropdowns |
|
|
1094
1174
|
| (default) | Main content area (used when no tabs) |
|
|
1095
1175
|
| `tab-{id}` | Tab panel content (use `data-tab-label` for display name) |
|
|
@@ -1106,7 +1186,8 @@ The `<ease-panel>` component provides the visual container.
|
|
|
1106
1186
|
| `tab` | Individual tab button |
|
|
1107
1187
|
| `actions` | Actions container |
|
|
1108
1188
|
| `content` | Content wrapper (handles height animations) |
|
|
1109
|
-
| `body` | Inner body container |
|
|
1189
|
+
| `body` | Inner body container (scrollable when max-height is set) |
|
|
1190
|
+
| `items` | Grid container for slotted content |
|
|
1110
1191
|
| `tab-panel` | Individual tab panel |
|
|
1111
1192
|
| `footer` | Footer container |
|
|
1112
1193
|
|
|
@@ -1124,6 +1205,59 @@ interface TabChangeEventDetail {
|
|
|
1124
1205
|
}
|
|
1125
1206
|
```
|
|
1126
1207
|
|
|
1208
|
+
### Folder API
|
|
1209
|
+
|
|
1210
|
+
The `<ease-folder>` component provides a collapsible container for grouping controls.
|
|
1211
|
+
|
|
1212
|
+
#### Properties
|
|
1213
|
+
|
|
1214
|
+
| Property | Type | Default | Description |
|
|
1215
|
+
|----------|------|---------|-------------|
|
|
1216
|
+
| `headline` | `string \| null` | `null` | Folder title text displayed in the header |
|
|
1217
|
+
| `open` | `boolean` | `false` | Whether the folder is expanded |
|
|
1218
|
+
| `maxHeight` | `string \| null` | `null` | Maximum height for scrollable content (e.g., "150px") |
|
|
1219
|
+
|
|
1220
|
+
#### Methods
|
|
1221
|
+
|
|
1222
|
+
| Method | Signature | Description |
|
|
1223
|
+
|--------|-----------|-------------|
|
|
1224
|
+
| `toggle` | `() => void` | Toggle the folder open/closed state |
|
|
1225
|
+
|
|
1226
|
+
#### Slots
|
|
1227
|
+
|
|
1228
|
+
| Slot | Description |
|
|
1229
|
+
|------|-------------|
|
|
1230
|
+
| (default) | Folder content (fields and controls) |
|
|
1231
|
+
|
|
1232
|
+
#### CSS Parts
|
|
1233
|
+
|
|
1234
|
+
| Part | Description |
|
|
1235
|
+
|------|-------------|
|
|
1236
|
+
| `section` | Outer container |
|
|
1237
|
+
| `header` | Clickable header row |
|
|
1238
|
+
| `icon` | Folder icon |
|
|
1239
|
+
| `headline` | Title element |
|
|
1240
|
+
| `chevron` | Chevron icon (toggle indicator) |
|
|
1241
|
+
| `content` | Content wrapper (handles height animations) |
|
|
1242
|
+
| `body` | Inner body container (scrollable when max-height is set) |
|
|
1243
|
+
|
|
1244
|
+
#### Events
|
|
1245
|
+
|
|
1246
|
+
| Event | Detail Type | Description |
|
|
1247
|
+
|-------|-------------|-------------|
|
|
1248
|
+
| `folder-toggle` | `FolderToggleEventDetail` | Fired when the folder is opened or closed |
|
|
1249
|
+
|
|
1250
|
+
```typescript
|
|
1251
|
+
interface FolderToggleEventDetail {
|
|
1252
|
+
open: boolean; // Whether the folder is now open
|
|
1253
|
+
event: Event; // Original event
|
|
1254
|
+
}
|
|
1255
|
+
```
|
|
1256
|
+
|
|
1257
|
+
#### Scrollable Content
|
|
1258
|
+
|
|
1259
|
+
When `max-height` is set, the folder content becomes scrollable with fade gradient masks at the top and bottom edges. The masks automatically appear/disappear based on scroll position using scroll-driven animations.
|
|
1260
|
+
|
|
1127
1261
|
### State API
|
|
1128
1262
|
|
|
1129
1263
|
The `<ease-state>` component provides state management for controls.
|
|
@@ -1207,6 +1341,42 @@ const { ready, theme } = useWebKitContext();
|
|
|
1207
1341
|
|
|
1208
1342
|
---
|
|
1209
1343
|
|
|
1344
|
+
## Links
|
|
1345
|
+
|
|
1346
|
+
- [Website](https://ease.dev)
|
|
1347
|
+
- [Demo](https://ease.zip)
|
|
1348
|
+
- [𝕏](https://x.com/@easemate)
|
|
1349
|
+
- [GitHub](https://github.com/easemate)
|
|
1350
|
+
- [npm](https://www.npmjs.com/package/@easemate/web-kit)
|
|
1351
|
+
|
|
1352
|
+
## Authors
|
|
1353
|
+
|
|
1354
|
+
<p><strong>Aaron Iker</strong></p>
|
|
1355
|
+
<p valign="center">
|
|
1356
|
+
<a href="https://x.com/aaroniker">
|
|
1357
|
+
<img valign="top" src="https://img.shields.io/badge/@aaroniker-black?style=flat-square&logo=x" alt="X">
|
|
1358
|
+
</a>
|
|
1359
|
+
<span valign="center"> • </span>
|
|
1360
|
+
<a href="https://github.com/aaroniker">
|
|
1361
|
+
<img valign="top" src="https://img.shields.io/badge/GitHub-aaroniker-black?style=flat-square&logo=github" alt="GitHub">
|
|
1362
|
+
</a>
|
|
1363
|
+
<span valign="center"> • </span>
|
|
1364
|
+
<a href="https://www.linkedin.com/in/aaron-iker-15606897/">
|
|
1365
|
+
<img valign="top" src="https://img.shields.io/badge/LinkedIn-aaroniker-blue?style=flat-square&logo=linkedin" alt="LinkedIn">
|
|
1366
|
+
</a>
|
|
1367
|
+
</p>
|
|
1368
|
+
|
|
1369
|
+
<p><strong>Jakub Antalik</strong></p>
|
|
1370
|
+
<p valign="center">
|
|
1371
|
+
<a href="https://x.com/jakubantalik">
|
|
1372
|
+
<img valign="top" src="https://img.shields.io/badge/@jakubantalik-black?style=flat-square&logo=x" alt="X">
|
|
1373
|
+
</a>
|
|
1374
|
+
<span valign="center"> • </span>
|
|
1375
|
+
<a href="https://www.linkedin.com/in/jakubantalik/">
|
|
1376
|
+
<img valign="top" src="https://img.shields.io/badge/LinkedIn-jakubantalik-blue?style=flat-square&logo=linkedin" alt="LinkedIn">
|
|
1377
|
+
</a>
|
|
1378
|
+
</p>
|
|
1379
|
+
|
|
1210
1380
|
## License
|
|
1211
1381
|
|
|
1212
1382
|
MIT © [Aaron Iker](https://github.com/aaroniker)
|
package/build/decorators.cjs
CHANGED
|
@@ -29,7 +29,7 @@ __export(decorators_exports, {
|
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(decorators_exports);
|
|
31
31
|
|
|
32
|
-
// swc:/
|
|
32
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/Component.ts
|
|
33
33
|
var import_lit_html = require("lit-html");
|
|
34
34
|
var styleCache = /* @__PURE__ */ new Map();
|
|
35
35
|
var normalizeTemplate = (template) => {
|
|
@@ -163,7 +163,7 @@ var Component = (options) => (Base, _context) => {
|
|
|
163
163
|
return Decorated;
|
|
164
164
|
};
|
|
165
165
|
|
|
166
|
-
// swc:/
|
|
166
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/Listen.ts
|
|
167
167
|
var lifecycleHooks = {
|
|
168
168
|
connectedCallback: /* @__PURE__ */ new WeakMap(),
|
|
169
169
|
disconnectedCallback: /* @__PURE__ */ new WeakMap()
|
|
@@ -309,7 +309,7 @@ function Listen(eventName, selectorOrOptions) {
|
|
|
309
309
|
};
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
// swc:/
|
|
312
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/utils/dismiss-controller.ts
|
|
313
313
|
var DismissController = class {
|
|
314
314
|
#onDismiss;
|
|
315
315
|
#context;
|
|
@@ -460,7 +460,7 @@ var disconnectOutsideClickHandles = (host) => {
|
|
|
460
460
|
});
|
|
461
461
|
};
|
|
462
462
|
|
|
463
|
-
// swc:/
|
|
463
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/OutsideClick.ts
|
|
464
464
|
var lifecycleApplied = /* @__PURE__ */ new WeakSet();
|
|
465
465
|
var wrapMethod = (host, name, hook, callHookFirst = false) => {
|
|
466
466
|
const original = host[name];
|
|
@@ -518,7 +518,7 @@ function OutsideClick(options = {}) {
|
|
|
518
518
|
};
|
|
519
519
|
}
|
|
520
520
|
|
|
521
|
-
// swc:/
|
|
521
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/Prop.ts
|
|
522
522
|
var renderQueue = /* @__PURE__ */ new WeakMap();
|
|
523
523
|
var cleanupRegistry2 = /* @__PURE__ */ new WeakMap();
|
|
524
524
|
var observerRegistry = /* @__PURE__ */ new WeakMap();
|
|
@@ -783,7 +783,7 @@ function Prop(options = {}) {
|
|
|
783
783
|
};
|
|
784
784
|
}
|
|
785
785
|
|
|
786
|
-
// swc:/
|
|
786
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/Query.ts
|
|
787
787
|
var defaultOptions = {
|
|
788
788
|
all: false,
|
|
789
789
|
closest: false,
|
|
@@ -859,7 +859,7 @@ function Query(selector, userOptions) {
|
|
|
859
859
|
return createQueryDecorator(selector, merged);
|
|
860
860
|
}
|
|
861
861
|
|
|
862
|
-
// swc:/
|
|
862
|
+
// swc:/Users/aaroniker/Documents/GitHub/ease/web-kit/packages/core/src/decorators/Watch.ts
|
|
863
863
|
var renderQueue2 = /* @__PURE__ */ new WeakMap();
|
|
864
864
|
var scheduleRender2 = (instance) => {
|
|
865
865
|
if (typeof instance.requestRender === "function") {
|