@josecortez1/c42-core
v0.1.0
Published
Headless UI controllers in vanilla TypeScript.
Maintainers
Readme
@josecortez1/c42-core
Headless UI controllers written in vanilla TypeScript. Each controller enhances
your own markup, leaving styling entirely up to you — pair it with
@josecortez1/c42-styles for a ready-made theme, or bring your own CSS.
npm install @josecortez1/c42-coreUsage
Every controller follows the same HeadlessController contract
(on / destroy / optional update / getState):
import { Accordion } from '@josecortez1/c42-core';
const accordion = new Accordion(document.querySelector('[data-c42-accordion]')!, {
multiple: true,
});
accordion.on('change', (detail) => console.log(detail));
// later
accordion.destroy();Subpath imports keep bundles small — import only the controllers you use:
import { Tabs } from '@josecortez1/c42-core/tabs';
import '@josecortez1/c42-core/tabs/style.css';Manifest
The package ships a manifest.json describing every component — its options,
events, methods and data-c42-* markup contract. It is the single source of
truth consumed by the docs, the framework adapters
(@josecortez1/c42-react, @josecortez1/c42-vue) and @josecortez1/c42-blade.
import manifest from '@josecortez1/c42-core/manifest.json';Framework adapters
- React →
@josecortez1/c42-react - Vue 3 →
@josecortez1/c42-vue - Blade / plain markup auto-mount →
@josecortez1/c42-blade
License
MIT © Laravel42
