@easemate/web-kit 0.3.2 → 0.3.3

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 CHANGED
@@ -66,6 +66,8 @@ A modern, framework-agnostic UI kit of web components for building animation con
66
66
  - [State API](#state-api)
67
67
  - [Accessibility](#accessibility)
68
68
  - [SSR Support](#ssr-support)
69
+ - [Links](#links)
70
+ - [Authors](#authors)
69
71
  - [License](#license)
70
72
 
71
73
  ---
@@ -186,7 +188,11 @@ The library provides first-class React integration via `@easemate/web-kit/react`
186
188
 
187
189
  ### JSX Types
188
190
 
189
- Importing `@easemate/web-kit/react` automatically adds JSX types for all `ease-*` custom elements:
191
+ Importing `@easemate/web-kit/react` automatically adds JSX types for all `ease-*` custom elements, including:
192
+ - All control components (`ease-slider`, `ease-toggle`, `ease-input`, etc.)
193
+ - Layout components (`ease-panel`, `ease-state`, `ease-field`, etc.)
194
+ - Advanced components (`ease-curve`, `ease-code`, `ease-monitor-fps`, etc.)
195
+ - All icon components (`ease-icon-settings`, `ease-icon-bezier`, etc.)
190
196
 
191
197
  ```tsx
192
198
  import '@easemate/web-kit/react';
@@ -197,12 +203,26 @@ import '@easemate/web-kit/react';
197
203
  </ease-panel>
198
204
  ```
199
205
 
200
- You can also import just the JSX types separately:
206
+ You can also import just the JSX types separately (useful for type-only imports):
201
207
 
202
208
  ```tsx
203
209
  import '@easemate/web-kit/react/jsx';
204
210
  ```
205
211
 
212
+ The types include proper ref types for accessing component methods:
213
+
214
+ ```tsx
215
+ import type { StateElement, PanelElement } from '@easemate/web-kit/react';
216
+
217
+ const stateRef = useRef<StateElement>(null);
218
+ const panelRef = useRef<PanelElement>(null);
219
+
220
+ // Access typed methods
221
+ stateRef.current?.get('volume');
222
+ stateRef.current?.reset();
223
+ panelRef.current?.setActiveTab(1);
224
+ ```
225
+
206
226
  ### Basic Setup
207
227
 
208
228
  ```tsx
@@ -462,13 +482,39 @@ const handleChange = createEventHandler<ControlChangeEvent>((e) => {
462
482
 
463
483
  ### Icons
464
484
 
465
- All icon components follow the pattern `<ease-icon-*>`:
466
-
467
- - `ease-icon-settings`, `ease-icon-dots`, `ease-icon-plus`, `ease-icon-minus`
468
- - `ease-icon-check`, `ease-icon-chevron`, `ease-icon-code`
469
- - `ease-icon-bezier`, `ease-icon-bezier-*` (bezier tools)
470
- - `ease-icon-anchor-add`, `ease-icon-anchor-remove`
471
- - And more...
485
+ All icon components follow the pattern `<ease-icon-*>`. All icons are typed in JSX when importing `@easemate/web-kit/react`.
486
+
487
+ **Interface Icons:**
488
+ | Tag | Description |
489
+ |-----|-------------|
490
+ | `ease-icon-settings` | Settings gear icon |
491
+ | `ease-icon-dots` | Three dots / more menu icon |
492
+ | `ease-icon-plus` | Plus / add icon |
493
+ | `ease-icon-minus` | Minus / remove icon |
494
+ | `ease-icon-check` | Checkmark icon |
495
+ | `ease-icon-code` | Code brackets icon |
496
+ | `ease-icon-picker` | Eyedropper picker icon |
497
+ | `ease-icon-mention` | @ mention icon |
498
+ | `ease-icon-arrow-up` | Up arrow icon |
499
+ | `ease-icon-arrows-vertical` | Vertical arrows icon |
500
+ | `ease-icon-circle-arrow-left` | Left arrow in circle |
501
+ | `ease-icon-circle-arrow-right` | Right arrow in circle |
502
+ | `ease-icon-anchor-add` | Add anchor point |
503
+ | `ease-icon-anchor-remove` | Remove anchor point |
504
+ | `ease-icon-bezier` | Bezier curve icon |
505
+ | `ease-icon-bezier-angle` | Bezier angle tool |
506
+ | `ease-icon-bezier-distribute` | Distribute bezier points |
507
+ | `ease-icon-bezier-length` | Bezier length tool |
508
+ | `ease-icon-bezier-mirror` | Mirror bezier handles |
509
+
510
+ **Animation Icons:**
511
+ | Tag | Description |
512
+ |-----|-------------|
513
+ | `ease-icon-chevron` | Animated chevron (expands/collapses) |
514
+ | `ease-icon-clear` | Animated clear/X icon |
515
+ | `ease-icon-grid` | Animated grid icon |
516
+ | `ease-icon-loading` | Animated loading spinner |
517
+ | `ease-icon-snap` | Animated snap indicator |
472
518
 
473
519
  ---
474
520
 
@@ -1060,14 +1106,14 @@ interface WebKitController {
1060
1106
 
1061
1107
  | Export | Description |
1062
1108
  |--------|-------------|
1063
- | `@easemate/web-kit` | Main entry (initWebKit + theme + types) |
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 registration (all components) |
1067
- | `@easemate/web-kit/elements` | UI components only |
1068
- | `@easemate/web-kit/decorators` | Component decorators |
1069
- | `@easemate/web-kit/theme` | Theming utilities |
1070
- | `@easemate/web-kit/utils` | Utility functions |
1109
+ | `@easemate/web-kit` | Main entry: `initWebKit()`, theme utilities, and all types |
1110
+ | `@easemate/web-kit/react` | React hooks (`useWebKit`, `useEaseState`), provider, event utilities, and JSX types |
1111
+ | `@easemate/web-kit/react/jsx` | JSX type augmentation only (for TypeScript) |
1112
+ | `@easemate/web-kit/register` | Side-effect import that registers all components (SSR-safe) |
1113
+ | `@easemate/web-kit/elements` | Individual element classes (`Button`, `Slider`, `Panel`, etc.) |
1114
+ | `@easemate/web-kit/decorators` | `@Component`, `@Prop`, `@Watch`, `@Listen`, `@Query` decorators |
1115
+ | `@easemate/web-kit/theme` | Theme API: `applyTheme`, `createTheme`, `mergeTheme`, `registerTheme` |
1116
+ | `@easemate/web-kit/utils` | Template helpers: `classMap`, `styleMap`, `when`, `repeat`, etc. |
1071
1117
 
1072
1118
  ### Panel API
1073
1119
 
@@ -1207,6 +1253,42 @@ const { ready, theme } = useWebKitContext();
1207
1253
 
1208
1254
  ---
1209
1255
 
1256
+ ## Links
1257
+
1258
+ - [Website](https://ease.dev)
1259
+ - [Demo](https://ease.zip)
1260
+ - [𝕏](https://x.com/@easemate)
1261
+ - [GitHub](https://github.com/easemate)
1262
+ - [npm](https://www.npmjs.com/package/@easemate/web-kit)
1263
+
1264
+ ## Authors
1265
+
1266
+ <p><strong>Aaron Iker</strong></p>
1267
+ <p valign="center">
1268
+ <a href="https://x.com/aaroniker">
1269
+ <img valign="top" src="https://img.shields.io/badge/@aaroniker-black?style=flat-square&logo=x" alt="X">
1270
+ </a>
1271
+ <span valign="center">&nbsp; • &nbsp;</span>
1272
+ <a href="https://github.com/aaroniker">
1273
+ <img valign="top" src="https://img.shields.io/badge/GitHub-aaroniker-black?style=flat-square&logo=github" alt="GitHub">
1274
+ </a>
1275
+ <span valign="center">&nbsp; • &nbsp;</span>
1276
+ <a href="https://www.linkedin.com/in/aaron-iker-15606897/">
1277
+ <img valign="top" src="https://img.shields.io/badge/LinkedIn-aaroniker-blue?style=flat-square&logo=linkedin" alt="LinkedIn">
1278
+ </a>
1279
+ </p>
1280
+
1281
+ <p><strong>Jakub Antalik</strong></p>
1282
+ <p valign="center">
1283
+ <a href="https://x.com/jakubantalik">
1284
+ <img valign="top" src="https://img.shields.io/badge/@jakubantalik-black?style=flat-square&logo=x" alt="X">
1285
+ </a>
1286
+ <span valign="center">&nbsp; • &nbsp;</span>
1287
+ <a href="https://www.linkedin.com/in/jakubantalik/">
1288
+ <img valign="top" src="https://img.shields.io/badge/LinkedIn-jakubantalik-blue?style=flat-square&logo=linkedin" alt="LinkedIn">
1289
+ </a>
1290
+ </p>
1291
+
1210
1292
  ## License
1211
1293
 
1212
1294
  MIT © [Aaron Iker](https://github.com/aaroniker)