KinWin
A minimalist DOM manipulation library with TypeScript support.
Installation
Note: Package will be available on npm soon. For now, you can install directly from GitHub:
npm install github:aliirz/kinwin.js
Usage
TypeScript
import { kw, Http } from 'kinwin'; // DOM Manipulation const element = kw('#myId') .addClass('active') .attr('title', 'Active Element') .html('New Content'); // Event Handling kw('.button').on('click', (e: Event) => { console.log('Clicked!', e.target); }); // Form Handling const form = kw('#myForm'); form.on('submit', async (e: Event) => { e.preventDefault(); const data = form.serialize(); // HTTP Requests try { const response = await Http.post('/api/submit', data); console.log('Success:', response); } catch (error) { console.error('Error:', error); } }); // Animations await kw('.modal') .fadeIn(300) .addClass('visible'); // Event Delegation kw('#list').delegate('click', '.item', (e: Event) => { kw(e.target as Element).toggleClass('selected'); });
JavaScript
// DOM Manipulation const element = kw('#myId') .addClass('active') .attr('title', 'Active Element') .html('New Content'); // Event Handling kw('.button').on('click', (e) => { console.log('Clicked!', e.target); }); // Form Handling const form = kw('#myForm'); form.on('submit', async (e) => { e.preventDefault(); const data = form.serialize(); // HTTP Requests try { const response = await Http.post('/api/submit', data); console.log('Success:', response); } catch (error) { console.error('Error:', error); } }); // Animations kw('.modal') .fadeIn(300) .addClass('visible') .then(() => console.log('Animation complete')); // Event Delegation kw('#list').delegate('click', '.item', (e) => { kw(e.target).toggleClass('selected'); });
Selectors
KinWin supports multiple selector types:
- ID:
kw('#id-attribute')- select by ID - Class:
kw('.class-attribute')- select by class - Name:
kw('@name-attribute')- select by name attribute - Tag:
kw('=tagname')- select by tag name
Available Methods
DOM Manipulation
html()- Get/set HTML contentattr()- Get/set attributesval()- Get/set form valuesshow()- Show elementshide()- Hide elementsappend()- Append contentprepend()- Prepend contentremove()- Remove elements
Class Manipulation
addClass()- Add classesremoveClass()- Remove classestoggleClass()- Toggle classeshasClass()- Check class existence
Events
on()- Add event listenerdelegate()- Event delegationoff()- Remove event listener
Forms
serialize()- Serialize form dataval()- Get/set form values
HTTP (via Http utility)
Http.get()- GET requestHttp.post()- POST requestHttp.put()- PUT requestHttp.delete()- DELETE request
Animations
fadeIn()- Fade infadeOut()- Fade outslideIn()- Slide in
Browser Support
KinWin supports all modern browsers (Chrome, Firefox, Safari, Edge).
License
MIT