Commit Graph

26 Commits

Author SHA1 Message Date
robonen 225c3b8530 Merge pull request #142 from robonen/docs
feat(storage): enhance useStorageAsync with cross-instance sync and e…
2026-06-10 15:13:40 +07:00
robonen a82f5f2dfd feat(storage): enhance useStorageAsync with cross-instance sync and event handling 2026-06-10 15:09:46 +07:00
robonen 98e243dc04 Merge pull request #141 from robonen/docs
feat(forms): add useMaskedField and useMaskedInput composables for in…
2026-06-09 13:58:53 +07:00
robonen 07937e26db feat(forms): add useMaskedField and useMaskedInput composables for input masking 2026-06-09 13:54:52 +07:00
renovate[bot] a0154dabf5 chore(deps): update all non-major dependencies (#120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-09 01:15:28 +00:00
robonen 53c725d3b2 docs(editor): richer playground (drag, multiplayer, live output) + drop contenteditable outline
Reworks the editor playground into a tabbed showcase:
- Rich text & blocks: drag-to-reorder handles, bubble/slash menus, and a live output panel (block/word counts, selection readout, document JSON).
- Multiplayer: two CRDT replicas synced over an in-memory channel with remote cursors, an in-sync indicator, and a Connected/Offline toggle that demonstrates divergence → convergence.
Also removes the focus outline on the contenteditable (outline: none on the editable surface).
2026-06-08 21:02:30 +07:00
robonen 024685e265 docs(editor): add an interactive editor playground
A live @robonen/editor instance (default registry) as a doc section at /editor/playground: a reactive formatting toolbar, the bubble/slash menus, and a sample document exercising every block and mark — styled with the docs design tokens and wrapped in <ClientOnly> for SSR. Links it from the editor intro.
2026-06-08 20:37:51 +07:00
robonen f4cc6e45eb test(vue): avoid CSS-wide keyword as a custom-property value in useCssVar test
Setting a custom property to 'initial' (a CSS-wide keyword) computes to the guaranteed-invalid value, so getComputedStyle returns '' — correct per spec and now implemented by jsdom 29 (the deps bump from jsdom 28). Use a normal token ('start') so the read returns the value.
2026-06-08 17:32:29 +07:00
robonen f335c7db61 test(editor): wait for async selectionchange in cross-block selection test
selectionchange is dispatched on a macrotask, so awaiting nextTick (microtasks) didn't wait for the editor to sync the native selection into the model — the assertion saw the initial selection. Poll with vi.waitFor instead. (Surfaced now that per-package CI runs editor's browser tests, which the root vitest projects list omitted.)
2026-06-08 17:20:40 +07:00
robonen 73e701a2c5 chore: update all deps 2026-06-08 17:11:14 +07:00
robonen 53f2d7ceef docs: add package introductions and the @robonen/crdt guide
An intro.vue landing for all 12 packages, plus a multi-section crdt guide (Concepts, Primitives, Replication & Sync, and an interactive convergence Playground).
2026-06-08 15:52:03 +07:00
robonen def1db8b6c fix(primitives): component fixes and test cleanup 2026-06-08 15:51:30 +07:00
robonen 9ef8125965 chore(editor): view, selection-bridge, and type fixes 2026-06-08 15:51:30 +07:00
robonen e83f10fe32 docs(vue): add interactive demo for every composable
A beautiful, SSR-safe demo.vue next to each composable, auto-discovered by the docs extractor and rendered client-only on each composable's page.
2026-06-08 15:51:16 +07:00
robonen 59e995d0b5 feat(vue): expand @robonen/vue composable collection
Composables, tests, category barrels, and README for @robonen/vue.
2026-06-08 15:51:16 +07:00
robonen 23a2795523 chore(stories): eslint/tsconfig migration
Migrate Storybook package to eslint flat config + composite tsconfig.
2026-06-07 16:30:05 +07:00
robonen 09272dffeb feat(editor): eslint/tsconfig migration + type fixes
@robonen/editor: migrate to eslint flat config + composite tsconfig; fix
convergence test type annotations.
2026-06-07 16:30:05 +07:00
robonen 626fbc70d8 fix(primitives): eslint/tsconfig migration, asChild refactor, type fixes
- Migrate to eslint flat config + composite tsconfig.
- Complete the asChild→as="template" refactor (remove asChild prop + :as-child
  bindings across components, matching Primitive's slot model).
- Fix test type errors and source type-safety (useGraceArea hull/point math,
  FocusScope/util ref typing).

Note: ~53 vue-tsc errors remain (HTML attr/event passthrough typing on
transparent wrapper components + a couple of duplicate-export naming
collisions) — not gated by CI (build/lint/test green); pending a
component-attribute-typing design decision.
2026-06-07 16:29:56 +07:00
robonen c7644ade69 fix(vue): eslint/tsconfig migration + resolve type errors
@robonen/vue (toolkit): migrate to eslint flat config + composite tsconfig;
fix composable + test type errors (writable computed returns, null guards,
overload-compatible signatures, typed test helpers) — all type-level.
2026-06-07 16:29:39 +07:00
robonen 1d3efa5028 feat(primitives): add menu, dropdown-menu, context-menu, and menubar primitives
Implements WAI-ARIA APG-compliant headless menu primitive families:

- menu: base primitive with MenuRoot, MenuContent, MenuItem,
  MenuCheckboxItem, MenuRadioGroup/Item, MenuSub, and helpers
- dropdown-menu: DropdownMenuRoot with trigger anchoring
- context-menu: ContextMenuRoot with right-click virtual anchor
- menubar: MenubarRoot with keyboard navigation between menus

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-17 18:48:43 +07:00
robonen 333a18cbaf refactor(presence): enhance slot handling and attribute forwarding 2026-03-26 17:19:31 +07:00
robonen 5fa38110b7 feat(vue/primitives): remove execArgv option from test configuration 2026-03-10 18:36:45 +07:00
robonen 4574bae0b6 feat(vue/primitives): add FocusScope component with auto-focus and focus trap functionality 2026-03-10 18:28:52 +07:00
robonen a996eb74b9 feat: update package.json exports to support new module formats and types 2026-03-08 08:19:01 +07:00
robonen bcc9cb2915 feat(vue/primitives): implement pagination components with accessibility and testing 2026-03-08 04:18:10 +07:00
robonen 41d5e18f6b feat(monorepo): migrate vue packages and apply oxlint refactors 2026-03-07 18:07:22 +07:00