@vielzeug/codex 26.10.18 → 26.10.20

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/data/catalog.json CHANGED
@@ -35,7 +35,7 @@
35
35
  "rune"
36
36
  ],
37
37
  "slug": "archive",
38
- "version": "26.10.17"
38
+ "version": "26.10.19"
39
39
  },
40
40
  {
41
41
  "availableDocPages": [
@@ -108,7 +108,7 @@
108
108
  "coins"
109
109
  ],
110
110
  "slug": "arsenal",
111
- "version": "26.10.17"
111
+ "version": "26.10.19"
112
112
  },
113
113
  {
114
114
  "availableDocPages": [
@@ -160,7 +160,7 @@
160
160
  "refine"
161
161
  ],
162
162
  "slug": "assay",
163
- "version": "26.10.17"
163
+ "version": "26.10.19"
164
164
  },
165
165
  {
166
166
  "availableDocPages": [
@@ -199,7 +199,7 @@
199
199
  "vault"
200
200
  ],
201
201
  "slug": "beacon",
202
- "version": "26.10.17"
202
+ "version": "26.10.19"
203
203
  },
204
204
  {
205
205
  "availableDocPages": [
@@ -241,7 +241,7 @@
241
241
  "ward"
242
242
  ],
243
243
  "slug": "clockwork",
244
- "version": "26.10.17"
244
+ "version": "26.10.19"
245
245
  },
246
246
  {
247
247
  "availableDocPages": [
@@ -273,7 +273,7 @@
273
273
  "refine"
274
274
  ],
275
275
  "slug": "codex",
276
- "version": "26.10.17"
276
+ "version": "26.10.19"
277
277
  },
278
278
  {
279
279
  "availableDocPages": [
@@ -343,7 +343,7 @@
343
343
  "spell"
344
344
  ],
345
345
  "slug": "coins",
346
- "version": "26.10.17"
346
+ "version": "26.10.19"
347
347
  },
348
348
  {
349
349
  "availableDocPages": [
@@ -384,7 +384,7 @@
384
384
  "rune"
385
385
  ],
386
386
  "slug": "conduit",
387
- "version": "26.10.17"
387
+ "version": "26.10.19"
388
388
  },
389
389
  {
390
390
  "availableDocPages": [
@@ -426,7 +426,7 @@
426
426
  "postmaster"
427
427
  ],
428
428
  "slug": "courier",
429
- "version": "26.10.17"
429
+ "version": "26.10.19"
430
430
  },
431
431
  {
432
432
  "availableDocPages": [
@@ -472,7 +472,7 @@
472
472
  "refine"
473
473
  ],
474
474
  "slug": "dnd",
475
- "version": "26.10.17"
475
+ "version": "26.10.19"
476
476
  },
477
477
  {
478
478
  "availableDocPages": [
@@ -514,7 +514,7 @@
514
514
  "herald"
515
515
  ],
516
516
  "slug": "familiar",
517
- "version": "26.10.17"
517
+ "version": "26.10.19"
518
518
  },
519
519
  {
520
520
  "availableDocPages": [
@@ -581,7 +581,7 @@
581
581
  "courier"
582
582
  ],
583
583
  "slug": "flux",
584
- "version": "26.10.17"
584
+ "version": "26.10.19"
585
585
  },
586
586
  {
587
587
  "availableDocPages": [
@@ -621,7 +621,7 @@
621
621
  "ore"
622
622
  ],
623
623
  "slug": "focus",
624
- "version": "26.10.17"
624
+ "version": "26.10.19"
625
625
  },
626
626
  {
627
627
  "availableDocPages": [
@@ -662,7 +662,7 @@
662
662
  "assay"
663
663
  ],
664
664
  "slug": "forge",
665
- "version": "26.10.17"
665
+ "version": "26.10.19"
666
666
  },
667
667
  {
668
668
  "availableDocPages": [
@@ -700,7 +700,7 @@
700
700
  "keymap"
701
701
  ],
702
702
  "slug": "gesture",
703
- "version": "26.10.17"
703
+ "version": "26.10.19"
704
704
  },
705
705
  {
706
706
  "availableDocPages": [
@@ -744,7 +744,7 @@
744
744
  "familiar"
745
745
  ],
746
746
  "slug": "herald",
747
- "version": "26.10.17"
747
+ "version": "26.10.19"
748
748
  },
749
749
  {
750
750
  "availableDocPages": [
@@ -787,7 +787,7 @@
787
787
  "tempo"
788
788
  ],
789
789
  "slug": "illusionist",
790
- "version": "26.10.17"
790
+ "version": "26.10.19"
791
791
  },
792
792
  {
793
793
  "availableDocPages": [
@@ -832,7 +832,7 @@
832
832
  "ore"
833
833
  ],
834
834
  "slug": "keymap",
835
- "version": "26.10.17"
835
+ "version": "26.10.19"
836
836
  },
837
837
  {
838
838
  "availableDocPages": [
@@ -879,7 +879,7 @@
879
879
  "vault"
880
880
  ],
881
881
  "slug": "ledger",
882
- "version": "26.10.17"
882
+ "version": "26.10.19"
883
883
  },
884
884
  {
885
885
  "availableDocPages": [
@@ -925,7 +925,7 @@
925
925
  "courier"
926
926
  ],
927
927
  "slug": "lingua",
928
- "version": "26.10.17"
928
+ "version": "26.10.19"
929
929
  },
930
930
  {
931
931
  "availableDocPages": [
@@ -963,7 +963,7 @@
963
963
  "herald"
964
964
  ],
965
965
  "slug": "mesh",
966
- "version": "26.10.17"
966
+ "version": "26.10.19"
967
967
  },
968
968
  {
969
969
  "availableDocPages": [
@@ -1000,7 +1000,7 @@
1000
1000
  "ore"
1001
1001
  ],
1002
1002
  "slug": "necromancer",
1003
- "version": "26.10.17"
1003
+ "version": "26.10.19"
1004
1004
  },
1005
1005
  {
1006
1006
  "availableDocPages": [
@@ -1040,7 +1040,7 @@
1040
1040
  "prism"
1041
1041
  ],
1042
1042
  "slug": "orbit",
1043
- "version": "26.10.17"
1043
+ "version": "26.10.19"
1044
1044
  },
1045
1045
  {
1046
1046
  "availableDocPages": [
@@ -1105,7 +1105,7 @@
1105
1105
  "orbit"
1106
1106
  ],
1107
1107
  "slug": "ore",
1108
- "version": "26.10.17"
1108
+ "version": "26.10.19"
1109
1109
  },
1110
1110
  {
1111
1111
  "availableDocPages": [
@@ -1149,7 +1149,7 @@
1149
1149
  "ripple"
1150
1150
  ],
1151
1151
  "slug": "postmaster",
1152
- "version": "26.10.17"
1152
+ "version": "26.10.19"
1153
1153
  },
1154
1154
  {
1155
1155
  "availableDocPages": [
@@ -1189,7 +1189,7 @@
1189
1189
  "orbit"
1190
1190
  ],
1191
1191
  "slug": "prism",
1192
- "version": "26.10.17"
1192
+ "version": "26.10.19"
1193
1193
  },
1194
1194
  {
1195
1195
  "availableDocPages": [
@@ -1253,7 +1253,7 @@
1253
1253
  "clockwork"
1254
1254
  ],
1255
1255
  "slug": "pulse",
1256
- "version": "26.10.17"
1256
+ "version": "26.10.19"
1257
1257
  },
1258
1258
  {
1259
1259
  "availableDocPages": [
@@ -1375,7 +1375,7 @@
1375
1375
  "keymap"
1376
1376
  ],
1377
1377
  "slug": "refine",
1378
- "version": "26.10.17"
1378
+ "version": "26.10.19"
1379
1379
  },
1380
1380
  {
1381
1381
  "availableDocPages": [
@@ -1420,7 +1420,7 @@
1420
1420
  "ledger"
1421
1421
  ],
1422
1422
  "slug": "ripple",
1423
- "version": "26.10.17"
1423
+ "version": "26.10.19"
1424
1424
  },
1425
1425
  {
1426
1426
  "availableDocPages": [
@@ -1474,7 +1474,7 @@
1474
1474
  "familiar"
1475
1475
  ],
1476
1476
  "slug": "rune",
1477
- "version": "26.10.17"
1477
+ "version": "26.10.19"
1478
1478
  },
1479
1479
  {
1480
1480
  "availableDocPages": [
@@ -1515,7 +1515,7 @@
1515
1515
  "refine"
1516
1516
  ],
1517
1517
  "slug": "sandbox",
1518
- "version": "26.10.17"
1518
+ "version": "26.10.19"
1519
1519
  },
1520
1520
  {
1521
1521
  "availableDocPages": [
@@ -1566,7 +1566,7 @@
1566
1566
  "ripple"
1567
1567
  ],
1568
1568
  "slug": "scout",
1569
- "version": "26.10.17"
1569
+ "version": "26.10.19"
1570
1570
  },
1571
1571
  {
1572
1572
  "availableDocPages": [
@@ -1619,7 +1619,7 @@
1619
1619
  "refine"
1620
1620
  ],
1621
1621
  "slug": "scroll",
1622
- "version": "26.10.17"
1622
+ "version": "26.10.19"
1623
1623
  },
1624
1624
  {
1625
1625
  "availableDocPages": [
@@ -1666,7 +1666,7 @@
1666
1666
  "gesture"
1667
1667
  ],
1668
1668
  "slug": "sentinel",
1669
- "version": "26.10.17"
1669
+ "version": "26.10.19"
1670
1670
  },
1671
1671
  {
1672
1672
  "availableDocPages": [
@@ -1706,7 +1706,7 @@
1706
1706
  "refine"
1707
1707
  ],
1708
1708
  "slug": "sigil",
1709
- "version": "26.10.17"
1709
+ "version": "26.10.19"
1710
1710
  },
1711
1711
  {
1712
1712
  "availableDocPages": [
@@ -1751,7 +1751,7 @@
1751
1751
  "wayfinder"
1752
1752
  ],
1753
1753
  "slug": "sourcerer",
1754
- "version": "26.10.17"
1754
+ "version": "26.10.19"
1755
1755
  },
1756
1756
  {
1757
1757
  "availableDocPages": [
@@ -1810,7 +1810,7 @@
1810
1810
  "vault"
1811
1811
  ],
1812
1812
  "slug": "spell",
1813
- "version": "26.10.17"
1813
+ "version": "26.10.19"
1814
1814
  },
1815
1815
  {
1816
1816
  "availableDocPages": [
@@ -1851,7 +1851,7 @@
1851
1851
  "ripple"
1852
1852
  ],
1853
1853
  "slug": "tandem",
1854
- "version": "26.10.17"
1854
+ "version": "26.10.19"
1855
1855
  },
1856
1856
  {
1857
1857
  "availableDocPages": [
@@ -1895,7 +1895,7 @@
1895
1895
  "herald"
1896
1896
  ],
1897
1897
  "slug": "tavern",
1898
- "version": "26.10.17"
1898
+ "version": "26.10.19"
1899
1899
  },
1900
1900
  {
1901
1901
  "availableDocPages": [
@@ -1963,7 +1963,7 @@
1963
1963
  "vault"
1964
1964
  ],
1965
1965
  "slug": "tempo",
1966
- "version": "26.10.17"
1966
+ "version": "26.10.19"
1967
1967
  },
1968
1968
  {
1969
1969
  "availableDocPages": [
@@ -2014,7 +2014,7 @@
2014
2014
  "ripple"
2015
2015
  ],
2016
2016
  "slug": "vault",
2017
- "version": "26.10.17"
2017
+ "version": "26.10.19"
2018
2018
  },
2019
2019
  {
2020
2020
  "availableDocPages": [
@@ -2060,7 +2060,7 @@
2060
2060
  "refine"
2061
2061
  ],
2062
2062
  "slug": "ward",
2063
- "version": "26.10.17"
2063
+ "version": "26.10.19"
2064
2064
  },
2065
2065
  {
2066
2066
  "availableDocPages": [
@@ -2114,8 +2114,8 @@
2114
2114
  "herald"
2115
2115
  ],
2116
2116
  "slug": "wayfinder",
2117
- "version": "26.10.17"
2117
+ "version": "26.10.19"
2118
2118
  }
2119
2119
  ],
2120
- "version": "26.10.17"
2120
+ "version": "26.10.19"
2121
2121
  }
@@ -1,6 +1,6 @@
1
1
  # Vielzeug: Full Documentation
2
2
 
3
- > Complete documentation for 43 packages. Version: 26.10.17
3
+ > Complete documentation for 43 packages. Version: 26.10.19
4
4
 
5
5
  ---
6
6
 
package/data/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vielzeug
2
2
 
3
- > 43 focused TypeScript packages. Version: 26.10.17
3
+ > 43 focused TypeScript packages. Version: 26.10.19
4
4
 
5
5
  Install any package independently: `pnpm add @vielzeug/<name>`
6
6
 
@@ -4,5 +4,5 @@
4
4
  "refine": "refine.json",
5
5
  "schemaVersion": 1,
6
6
  "search": "search.json",
7
- "version": "26.10.17"
7
+ "version": "26.10.19"
8
8
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "apiSource": "/**\n * Refine components register through their explicit component entry points.\n *\n * Keeping the package root free of registration side effects makes dependency\n * ownership and bundle contents obvious to application code.\n */\n\nexport { RefineError } from './errors';\nexport type { IconAttributes, IconDefinition, IconElement } from './icons';\nexport { registerIcons } from './icons';\nexport { eventFieldChecked, eventFieldValue } from './inputs/shared/native-field-event';\n",
2
+ "apiSource": "/**\n * Refine components register through their explicit component entry points.\n *\n * Keeping the package root free of registration side effects makes dependency\n * ownership and bundle contents obvious to application code.\n */\n\nexport { RefineError } from './errors';\nexport type { IconAttributes, IconDefinition, IconElement } from './icons';\nexport { registerIcons } from './icons';\nexport { eventFieldChecked, eventFieldValue } from './inputs/shared/native-field-event';\nexport { getMotionMode, MOTION_MODES, type MotionMode, setMotionMode } from './motion';\n",
3
3
  "docs": {
4
4
  "index": "---\ntitle: 'Refine: Web component library'\ndescription: Accessible, themeable web components built with Ore for framework and vanilla DOM apps.\npackage: refine\ncategory: ui-components\nkeywords: [web-components, accessible, themeable, ui, components, design-system]\nrelated: [ore, orbit, forge, keymap]\nexports:\n [\n ore-accordion,\n ore-accordion-item,\n ore-alert,\n ore-async,\n ore-avatar,\n ore-avatar-group,\n ore-badge,\n ore-box,\n ore-breadcrumb,\n ore-breadcrumb-item,\n ore-button,\n ore-button-group,\n ore-calendar,\n ore-card,\n ore-carousel,\n ore-carousel-slide,\n ore-chat-message,\n ore-checkbox,\n ore-checkbox-group,\n ore-chip,\n ore-code-window,\n ore-column,\n ore-combobox,\n ore-combobox-option,\n ore-command-palette,\n ore-command-palette-item,\n ore-cookie-banner,\n ore-copy-command,\n ore-counter,\n ore-datagrid,\n ore-date-picker,\n ore-dialog,\n ore-drawer,\n ore-file-input,\n ore-grid,\n ore-grid-item,\n ore-icon,\n ore-input,\n ore-keyboard-key,\n ore-keyboard-shortcut,\n ore-list,\n ore-list-item,\n ore-marquee,\n ore-menu,\n ore-menu-item,\n ore-menu-separator,\n ore-message-composer,\n ore-navbar,\n ore-navbar-item,\n ore-navigation-menu,\n ore-navigation-menu-item,\n ore-navigation-menu-panel,\n ore-number-input,\n ore-otp-input,\n ore-pagination,\n ore-password-strength,\n ore-popover,\n ore-progress,\n ore-qr-code,\n ore-qr-scanner,\n ore-query-bar,\n ore-radio,\n ore-radio-group,\n ore-rating,\n ore-select,\n ore-separator,\n ore-sidebar,\n ore-sidebar-group,\n ore-sidebar-item,\n ore-skeleton,\n ore-slider,\n ore-speech-player,\n ore-speed-reading,\n ore-spotlight,\n ore-stats,\n ore-step,\n ore-stepper,\n ore-switch,\n ore-tab-item,\n ore-tab-panel,\n ore-table,\n ore-tabs,\n ore-td,\n ore-text,\n ore-th,\n ore-tr,\n ore-textarea,\n ore-time-picker,\n ore-toast,\n ore-tooltip,\n ore-tour,\n ore-typing-indicator,\n ]\nenvironments: [browser]\n---\n\n<!-- markdownlint-disable MD025 MD033 MD060 -->\n\n<PackageHero package=\"refine\" />\n\n## Why Refine?\n\nEvery project needs UI primitives. Refine provides accessible web components that work natively anywhere HTML is rendered, no framework required.\n\n```html\n<!-- Before: roll your own button with ARIA -->\n<button class=\"btn btn-primary\" role=\"button\" aria-pressed=\"false\" tabindex=\"0\">\n <span class=\"btn-spinner\" aria-hidden=\"true\"></span>\n Save\n</button>\n\n<!-- After: Refine -->\n<ore-button variant=\"solid\" color=\"primary\" loading>Save</ore-button>\n```\n\n| Feature | Refine | Shoelace | Material Web |\n| ------------------ | ------------------------------------------- | ------------------------------------------ | ------------------------------------------ |\n| Bundle size | <PackageInfo package=\"refine\" type=\"size\" /> | ~145 kB | ~200 kB |\n| Built with | Ore | Lit | Lit |\n| Runtime dependencies | Vielzeug UI primitives; Lucide only for the opt-in full-library registrar | Lit + utilities | Lit + Material foundations |\n| Accessible | WCAG AA | WCAG AA | WCAG AA |\n| Framework agnostic | <ore-icon name=\"check\" size=\"16\"></ore-icon> | <ore-icon name=\"check\" size=\"16\"></ore-icon> | <ore-icon name=\"check\" size=\"16\"></ore-icon> |\n\n<div class=\"decision-callout\">\n\n**Use Refine when** you want accessible web components that match the Vielzeug design system without a heavy framework dependency.\n\n**Consider Shoelace or Material Web** if your team is already standardized on those ecosystems and you need their established component catalogs.\n\n</div>\n\n## Installation\n\n::: code-group\n\n```sh [pnpm]\npnpm add @vielzeug/refine\n```\n\n```sh [npm]\nnpm install @vielzeug/refine\n```\n\n```sh [yarn]\nyarn add @vielzeug/refine\n```\n\n:::\n\n## Quick Start\n\n```ts\n// 1. Import global styles once\nimport '@vielzeug/refine/fouc.css'; // Hide unupgraded custom elements until first paint\nimport '@vielzeug/refine/tokens.css'; // Tokens, animations, cascade layers\n\n// 2. Register only the elements you need\nimport '@vielzeug/refine/button';\nimport '@vielzeug/refine/input';\nimport '@vielzeug/refine/card';\n```\n\n```html\n<ore-button variant=\"solid\" color=\"primary\">Save</ore-button>\n<ore-input label=\"Email\" type=\"email\" required></ore-input>\n<ore-card padding=\"lg\">\n <span slot=\"header\">Account</span>\n <p>Card content goes here.</p>\n</ore-card>\n```\n\n```ts\n```\n\n### CDN / Vanilla HTML\n\nUse the self-contained IIFE bundle to load Refine directly from a CDN in any HTML page: no build step required:\n\n```html\n<!-- 1. Styles -->\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@vielzeug/refine/dist/styles/fouc.css\" />\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@vielzeug/refine/dist/styles/tokens.css\" />\n\n<!-- 2. All components (IIFE: registers global Refine namespace) -->\n<script src=\"https://unpkg.com/@vielzeug/refine/dist/refine.iife.js\"></script>\n```\n\nFor bundler-based projects that still want a CDN URL, use the ESM bundle via an import map:\n\n```html\n<script type=\"importmap\">\n {\n \"imports\": {\n \"@vielzeug/refine\": \"https://esm.sh/@vielzeug/refine\",\n \"@vielzeug/refine/button\": \"https://esm.sh/@vielzeug/refine/button\",\n \"@vielzeug/refine/input\": \"https://esm.sh/@vielzeug/refine/input\"\n }\n }\n</script>\n\n<script type=\"module\">\n import '@vielzeug/refine/button';\n import '@vielzeug/refine/input';\n</script>\n```\n\n### Package Entry Points\n\n| Import | Purpose |\n| ------------------------ | ----------------------------------------- |\n| `@vielzeug/refine/fouc.css` | FOUC suppression for unupgraded custom elements |\n| `@vielzeug/refine/tokens.css` | Global design tokens and cascade layers |\n| `@vielzeug/refine/styles/preflight.css` | Optional browser-default reset (includes FOUC suppression) |\n\nComponent registration happens through side-effect imports such as `@vielzeug/refine/button` and `@vielzeug/refine/dialog`.\n\n### Components\n\n**Content:** `ore-avatar`, `ore-avatar-group`, `ore-breadcrumb`, `ore-card`, `ore-carousel`, `ore-carousel-slide`, `ore-chat-message`, `ore-icon`, `ore-keyboard-key`, `ore-keyboard-shortcut`, `ore-list`, `ore-list-item`, `ore-marquee`, `ore-pagination`, `ore-qr-code`, `ore-separator`, `ore-speed-reading`, `ore-stats`, `ore-step`, `ore-stepper`, `ore-table`, `ore-text`\n\n**Disclosure:** `ore-accordion`, `ore-accordion-item`, `ore-tabs`, `ore-tab-item`, `ore-tab-panel`\n\n**Feedback:** `ore-alert`, `ore-async`, `ore-badge`, `ore-chip`, `ore-cookie-banner`, `ore-password-strength`, `ore-progress`, `ore-skeleton`, `ore-toast`, `ore-typing-indicator`\n\n**Inputs:** `ore-button`, `ore-button-group`, `ore-calendar`, `ore-checkbox`, `ore-checkbox-group`, `ore-column`, `ore-combobox`, `ore-counter`, `ore-datagrid`, `ore-date-picker`, `ore-file-input`, `ore-input`, `ore-message-composer`, `ore-number-input`, `ore-otp-input`, `ore-qr-scanner`, `ore-query-bar`, `ore-radio`, `ore-radio-group`, `ore-rating`, `ore-select`, `ore-slider`, `ore-switch`, `ore-textarea`, `ore-time-picker`\n\n**Layout:** `ore-box`, `ore-grid`, `ore-grid-item`, `ore-navbar`, `ore-sidebar`\n\n**Overlay:** `ore-command-palette`, `ore-command-palette-item`, `ore-dialog`, `ore-drawer`, `ore-menu`, `ore-popover`, `ore-spotlight`, `ore-tooltip`, `ore-tour`\n\n## Component portfolio\n\nRefine keeps one public package and classifies components by composition level rather than stability. All listed components remain supported and tested.\n\n- **Foundations**: buttons, inputs, selection controls, disclosure, dialogs, menus, tooltips, layout primitives, and feedback indicators. Start here when building an application-specific interface.\n- **Composed patterns**: data grids, command palettes, navigation menus, steppers, calendars, date/time pickers, file inputs, and message composers. These package recurring accessibility and interaction behavior that is costly to rebuild correctly.\n- **Presentation patterns**: cards, chat messages, code windows, stats, marquees, avatars, badges, and skeletons. Use these when their product vocabulary matches the application; prefer foundations when it does not.\n\nClassification guides discovery and bundle selection. It is not a reason to remove working components or move them into unstable packages; per-component subpath imports remain the tree-shaking boundary.\n\n## Features\n\n<div class=\"features-grid\">\n\n- **Accessible**: keyboard navigation, ARIA wiring, and focus management across interactive components\n- **Themeable**: global tokens plus component-level CSS custom properties\n- **Framework agnostic**: works anywhere HTML can be rendered\n- **Tree-shakeable**: import only the component entry points you register\n- **Comprehensive surface**: inputs, content, disclosure, feedback, layout, and overlay primitives\n- **Native form integration**: form-associated controls submit values, validate supported required constraints, and reset with their form\n- **Typed framework declarations**: DOM, React, and Vue tags derive from the component property contracts\n\n</div>\n\n### Prerequisites\n\n- Browser runtime with Custom Elements support.\n- Import `@vielzeug/refine/fouc.css` and `@vielzeug/refine/tokens.css` before rendering components.\n- For SSR, render placeholders server-side and hydrate components only on the client.\n\n## Documentation\n\n<div class=\"doc-links\">\n\n- [Usage Guide](./usage.md)\n- [API Reference](./api.md)\n- [Migration Guide](./migration.md)\n\n</div>\n\n## See Also\n\n<div class=\"see-also\">\n\n- [Ore](/ore/): Web component runtime that powers Refine\n- [Orbit](/orbit/): Floating UI positioning used in Refine's overlays\n- [Forge](/forge/): Form state management for use with Refine inputs\n- [Keymap](/keymap/): Keyboard shortcut manager that powers the command palette's global trigger\n\n</div>\n\n<!-- markdownlint-enable MD025 MD033 MD060 -->\n",
5
5
  "api": "---\ntitle: 'Refine: API Reference'\ndescription: Published component, stylesheet, framework type, and error entry points for @vielzeug/refine.\n---\n\n[[toc]]\n\n## API Overview\n\n| Symbol | Purpose | Execution mode | Common gotcha |\n| --- | --- | --- | --- |\n| `@vielzeug/refine/<component>` | Register one custom element and export its public types | Sync | Importing a type alone does not register the element |\n| `@vielzeug/refine/tokens.css` | Load required theme tokens, animations, and cascade layers | CSS | Import once before components render |\n| `@vielzeug/refine/fouc.css` | Hide unregistered `ore-*` elements until upgrade | CSS | Load before first paint |\n| `@vielzeug/refine/styles/preflight.css` | Apply the optional browser reset | CSS | The reset affects global elements |\n| `@vielzeug/refine/frameworks/elements` | Register typed DOM tag mappings | Types only | Import for side effects in TypeScript |\n| `@vielzeug/refine/frameworks/react` | Register typed React JSX elements | Types only | Does not provide runtime wrappers |\n| `@vielzeug/refine/frameworks/vue` | Register typed Vue global components | Types only | Does not install a Vue plugin |\n| `@vielzeug/refine/theme` | `createThemeController()`: light/dark/system document theme | Sync | Does not persist the preference or set an accent color |\n| `eventFieldValue()` / `eventFieldChecked()` | Read a form control's value/checked from `event.currentTarget` | Sync | Exported from the package root; guards non-field targets |\n| `RefineError` | Base class for package-defined public errors | Sync | Component configuration warnings do not throw this error |\n\n## Package Entry Point\n\n| Import | Purpose |\n| --- | --- |\n| `@vielzeug/refine` | Export `registerIcons`, icon definition types, `RefineError`, and the field readers without registering components |\n| `@vielzeug/refine/<component>` | Register one component and export its tag constant, props, events, and related types |\n| `@vielzeug/refine/theme` | `createThemeController()` and its theme types |\n| `@vielzeug/refine/tokens.css` | Required global design contract |\n| `@vielzeug/refine/fouc.css` | Optional pre-upgrade visibility rule |\n| `@vielzeug/refine/styles/*` | Focused theme, animation, layer, and preflight stylesheets |\n| `@vielzeug/refine/frameworks/*` | TypeScript augmentations for DOM, React, and Vue |\n\n## Icon Registration and Adapters\n\n`registerIcons(icons: Readonly<Record<string, IconDefinition>>): void` is available from `@vielzeug/refine/icons`, `@vielzeug/refine`, and `@vielzeug/refine/icon`. The common `icons` entry and root remain free of component registration side effects.\n\n`IconDefinition`, `IconElement`, and `IconAttributes` are exported from all three entries. Shared definition and registration modules live in `src/icons/`, alongside adapters and internal SVG helpers/defaults. Definitions contain a numeric `viewBox` tuple, optional presentation attributes, and recursive SVG children; they do not require a provider identity. Invalid registrations throw the root-exported `RefineError` atomically.\n\n| Entry | Export | Purpose |\n| --- | --- | --- |\n| `@vielzeug/refine/icons` | `registerIcons`, `IconDefinition`, `IconElement`, `IconAttributes` | Common library-neutral registration and definition API |\n| `@vielzeug/refine/icons/lucide` | `lucideIcons`, `LucideIconData` | Pure adapter for selected structural Lucide SVG data |\n| `@vielzeug/refine/icons/lucide/all` | Side-effect registration | Explicitly register the full installed Lucide library |\n| `@vielzeug/refine/icons/heroicons` | `heroiconsIcons`, `IconifyIcon` | Convert a caller-named map of individual Heroicons Iconify data |\n| `@vielzeug/refine/icons/tabler` | `tablerIcons`, `IconifyIcon` | Convert a caller-named map of individual Tabler Iconify data |\n| `@vielzeug/refine/icons/mdi` | `mdiIcons`, `IconifyIcon` | Convert a caller-named map of individual MDI Iconify data |\n| `@vielzeug/refine/icons/iconify` | `iconifyIcon`, `iconifyIcons` | Convert individual Iconify data or selected/complete collections |\n| `@vielzeug/refine/icons/iconify` | `IconifyIcon`, `IconifyAlias`, `IconifyCollection`, `IconifyTransform` | Structural data types; no Iconify dependency required |\n\nLucide is an optional peer, not a mandatory dependency. Only `icons/lucide/all` requires an installed `lucide` package; consumers selecting that entry declare it themselves. The structural `icons/lucide` adapter accepts supplied data without importing Lucide.\n\nThe standalone IIFE exposes `registerIcons`, `lucideIcons`, `heroiconsIcons`, `tablerIcons`, `mdiIcons`, `iconifyIcon`, and `iconifyIcons` under `Refine.components.content`. Neither the IIFE nor component entries import Lucide. Iconify conversion drops provider `class` metadata, validates finite numeric offsets and positive finite dimensions before transforms, and retains the strict SVG allowlist. See the [icon reference](./components/icon.md) for presentation overrides, local SVG ID rewriting, supported families, and licenses.\n\nThe three family adapters share this signature:\n\n```ts\nheroiconsIcons(icons: Readonly<Record<string, IconifyIcon>>): Record<string, IconDefinition>;\ntablerIcons(icons: Readonly<Record<string, IconifyIcon>>): Record<string, IconDefinition>;\nmdiIcons(icons: Readonly<Record<string, IconifyIcon>>): Record<string, IconDefinition>;\n```\n\nEach accepts individual Iconify SVG data, preserves input keys without adding a namespace, and returns definitions without registering them. They require `DOMParser`, preserve each icon's geometry/presentation/transforms, and throw `RefineError` for invalid Iconify data. They do not accept React/Vue components, collection JSON, or raw SVG path strings. Use `iconifyIcons(collection, names?)` for collections and alias resolution.\n\n## Styles\n\n```ts\nimport '@vielzeug/refine/fouc.css';\nimport '@vielzeug/refine/tokens.css';\nimport '@vielzeug/refine/styles/preflight.css';\n```\n\n`tokens.css` is required. It defines tokens, animations, and cascade-layer order without resetting global elements. `preflight.css` is optional and includes FOUC suppression.\n\n| Import path | Purpose |\n| --- | --- |\n| `@vielzeug/refine/fouc.css` | FOUC suppression for unupgraded custom elements |\n| `@vielzeug/refine/tokens.css` | Tokens, animation helpers, and cascade layers |\n| `@vielzeug/refine/styles/theme.css` | Theme token declarations |\n| `@vielzeug/refine/styles/animation.css` | Animation helpers |\n| `@vielzeug/refine/styles/layers.css` | Cascade layer declarations |\n| `@vielzeug/refine/styles/preflight.css` | Optional browser reset and FOUC suppression |\n\n## Components\n\nEach component uses one registration and type entry point:\n\n```ts\nimport '@vielzeug/refine/button';\nimport type { OreButtonProps } from '@vielzeug/refine/button';\n```\n\n| Area | Components |\n| --- | --- |\n| Content | `avatar`, `avatar-group`, `breadcrumb`, `card`, `carousel`, `chat-message`, `code-window`, `copy-command`, `icon`, `keyboard-key`, `list`, `list-item`, `marquee`, `pagination`, `separator`, `speech-player`, `speed-reading`, `stats`, `step`, `stepper`, `table`, `text` |\n| Disclosure | `accordion`, `accordion-item`, `tabs`, `tab-item`, `tab-panel` |\n| Feedback | `alert`, `async`, `badge`, `chip`, `cookie-banner`, `password-strength`, `progress`, `skeleton`, `toast`, `typing-indicator` |\n| Inputs | `button`, `button-group`, `calendar`, `checkbox`, `checkbox-group`, `combobox`, `counter`, `datagrid`, `date-picker`, `file-input`, `input`, `message-composer`, `number-input`, `otp-input`, `query-bar`, `radio`, `radio-group`, `rating`, `select`, `slider`, `switch`, `textarea`, `time-picker` |\n| Layout | `box`, `grid`, `grid-item`, `navbar`, `sidebar` |\n| Overlays | `command-palette`, `dialog`, `drawer`, `menu`, `navigation-menu`, `popover`, `tooltip` |\n\nEach component page lists its attributes, JavaScript properties, events, slots, parts, and CSS custom properties.\n\nThe [`query-bar`](./components/query-bar.md) entry also exports `QueryState`, `QueryTokenDef`, `QueryQuickFilter`, `QueryBarLabels`, and pure grammar helpers. Vocabulary entries default to single selection; `selection: 'multiple'` allows distinct values for the same key. `anyLabel` customizes the unrestricted single-selection choice, such as “Default order” for sorting. Options accept an optional `icon` (registered `ore-icon` name), displayed beside their labels in the drawer. `tokenValues(state, key)` reads all values, `removeToken(state, token)` removes an exact pair, and `clearTokens(state, key)` clears a group. Its unified field contains applied filters, with a compact secondary row for filter entry, quick toggles, and a `toolbar-end` slot for application content such as a result count. Drawer selection uses the same state and vocabulary as typed suggestions. Pending edits block incidental backdrop/swipe dismissal; explicit Cancel, Close, and Escape discard them. Search-hidden selections remain visible in a summary.\n\n## Framework Types\n\n```ts\nimport type {} from '@vielzeug/refine/frameworks/elements';\nimport type {} from '@vielzeug/refine/frameworks/react';\nimport type {} from '@vielzeug/refine/frameworks/vue';\n```\n\nThe declarations cover every supported tag and derive component properties from Refine's authoritative `HTMLElementTagNameMap`. They provide types only; component registration still uses component subpaths.\n\n## Events and Form Controls\n\nForm controls expose `.value` or `.checked` and dispatch standard `input` and `change` events. Read the property from `event.currentTarget`.\n\nFinite-choice properties use Ore's `prop.oneOf()` parsing: values outside a component's documented options resolve to\nthe declared default, or `undefined` when no default is declared.\n\nForm-associated controls participate in native form submission, validity checks, and reset. A named control's value\nis available through `new FormData(form)`, and supported `required` constraints affect `form.checkValidity()`,\n`form.reportValidity()`, and submit blocking. The `error` property renders and announces feedback; it does not by\nitself set native constraint validity.\n\nStateful overlays expose controlled `open`, optional `default-open`, and an `open-change` custom event with `{ open, reason }` detail. Component pages define additional detail fields and reasons.\n\n## Utilities\n\n### `createThemeController(options?)`\n\n```ts\nimport { createThemeController } from '@vielzeug/refine/theme';\n\nconst theme = createThemeController(); // starts in 'system' mode\ntheme.setPreference('dark');\ntheme.dispose();\n```\n\nOwns the light/dark/system theme for the document: a reactive `preference` signal, the effective `resolved` mode (`'dark' | 'light'` after resolving `system` against the OS), and the DOM application `styles/theme.css` expects: the `.dark` class plus the `color-scheme` property on the root element, so every `light-dark()` token resolves to the right branch. While in `system` mode the controller tracks the OS `prefers-color-scheme` via sentinel's `createMediaQuery`.\n\nThe controller does **not** persist the preference or expose an accent color: those are consumer concerns (wire `watch(controller.preference, save)` for persistence; set `--color-primary-hue` yourself). Options: `initial` (starting preference, default `'system'`), `root` (element carrying the classes, default `document.documentElement`), `target` (window whose `matchMedia` backs `system`). The handle is disposable: `dispose()`, `disposed`, `disposalSignal`, `[Symbol.dispose]`.\n\n### `eventFieldValue(event)` / `eventFieldChecked(event)`\n\n```ts\nimport { eventFieldChecked, eventFieldValue } from '@vielzeug/refine';\n\ninput.addEventListener('input', (event) => {\n const value = eventFieldValue(event); // string | undefined: never a blind cast\n});\n```\n\nGuarded readers for the standard `input`/`change` event pattern above: they read `value`/`checked` from `event.currentTarget` only when the target actually carries it, so a handler wired to the wrong element yields `undefined`/`false` instead of a crash or a lie. Exported from the package root, which registers no components.\n\n## Types\n\nComponent props follow the `Ore<Component>Props` naming pattern. Event maps follow `Ore<Component>Events`. Import both from the component subpath that owns them.\n\n`RefineElementMap`, `RefineReactIntrinsicElements`, and `RefineVueGlobalComponents` are exported from their respective `frameworks/*` type entry points.\n\n## Errors\n\n### `RefineError`\n\n```ts\nclass RefineError extends Error {\n constructor(message: string, opts?: ErrorOptions);\n}\n```\n\nBase class for public Refine errors. It preserves `cause` through `ErrorOptions`.\n",
@@ -13,6 +13,10 @@
13
13
  "IconElement": "export type { IconAttributes, IconDefinition, IconElement } from './icons';",
14
14
  "registerIcons": "export { registerIcons } from './icons';",
15
15
  "eventFieldChecked": "export { eventFieldChecked, eventFieldValue } from './inputs/shared/native-field-event';",
16
- "eventFieldValue": "export { eventFieldChecked, eventFieldValue } from './inputs/shared/native-field-event';"
16
+ "eventFieldValue": "export { eventFieldChecked, eventFieldValue } from './inputs/shared/native-field-event';",
17
+ "getMotionMode": "export { getMotionMode, MOTION_MODES, type MotionMode, setMotionMode } from './motion';",
18
+ "MOTION_MODES": "export { getMotionMode, MOTION_MODES, type MotionMode, setMotionMode } from './motion';",
19
+ "MotionMode": "export { getMotionMode, MOTION_MODES, type MotionMode, setMotionMode } from './motion';",
20
+ "setMotionMode": "export { getMotionMode, MOTION_MODES, type MotionMode, setMotionMode } from './motion';"
17
21
  }
18
22
  }
package/data/refine.json CHANGED
@@ -33,6 +33,43 @@
33
33
  }
34
34
  ]
35
35
  },
36
+ {
37
+ "kind": "variable",
38
+ "name": "MOTION_MODES",
39
+ "type": {
40
+ "text": "['full', 'reduced', 'system']"
41
+ },
42
+ "default": "['full', 'reduced', 'system']",
43
+ "description": "App-level motion mode, mirroring `@vielzeug/necromancer`'s `MotionMode`:\nthe operating-system preference is the default, and an application with its\nown \"reduce motion\" setting can force either direction.\n\nThe mode is one attribute on `<html>` (`data-motion`), which the Reduced\nMotion block in `theme.css` reads: `'reduced'` zeroes every duration and\ntransition token and switches the `--_motion-*` escape hatches to `none`,\n`'full'` opts back in despite an OS-level reduction, and `'system'` (the\ndefault) removes the attribute. Because the tokens drive every CSS\nanimation and transition in the library, one call restyles all motion."
44
+ },
45
+ {
46
+ "kind": "function",
47
+ "name": "getMotionMode",
48
+ "return": {
49
+ "type": {
50
+ "text": "MotionMode"
51
+ }
52
+ },
53
+ "description": "Reads the current motion mode from `<html>`; `'system'` when unset."
54
+ },
55
+ {
56
+ "kind": "function",
57
+ "name": "setMotionMode",
58
+ "return": {
59
+ "type": {
60
+ "text": "MotionMode"
61
+ }
62
+ },
63
+ "parameters": [
64
+ {
65
+ "name": "mode",
66
+ "type": {
67
+ "text": "MotionMode"
68
+ }
69
+ }
70
+ ],
71
+ "description": "Sets the app-level motion mode by writing (or removing, for `'system'`)\nthe `data-motion` attribute on `<html>`. Returns the applied mode so\ncallers can round-trip a value they don't control."
72
+ },
36
73
  {
37
74
  "kind": "variable",
38
75
  "name": "components",
@@ -850,6 +887,49 @@
850
887
  }
851
888
  ]
852
889
  },
890
+ {
891
+ "kind": "function",
892
+ "name": "applyTruncationReveal",
893
+ "return": {
894
+ "type": {
895
+ "text": "TruncationRevealHandle"
896
+ }
897
+ },
898
+ "parameters": [
899
+ {
900
+ "name": "el",
901
+ "type": {
902
+ "text": "HTMLElement"
903
+ }
904
+ },
905
+ {
906
+ "name": "options",
907
+ "default": "{}",
908
+ "type": {
909
+ "text": "{ bothAxes?: boolean; slot?: HTMLSlotElement | null }"
910
+ }
911
+ }
912
+ ]
913
+ },
914
+ {
915
+ "kind": "function",
916
+ "name": "truncationRevealRef",
917
+ "return": {
918
+ "type": {
919
+ "text": "((el: HTMLElement | null) => void)"
920
+ }
921
+ },
922
+ "parameters": [
923
+ {
924
+ "name": "options",
925
+ "default": "{}",
926
+ "type": {
927
+ "text": "{ bothAxes?: boolean }"
928
+ }
929
+ }
930
+ ],
931
+ "description": "An ore `ref` callback that applies applyTruncationReveal when the label\nmounts and detaches it when the label unmounts. Prefer this for a label inside\na conditionally rendered template: ore re-invokes the callback with the new\nelement (and `null` for the old one) whenever that branch re-renders, so the\nreveal can never be left pointing at a detached node. The handle is tracked\nlocally rather than via `onCleanup`, because a re-render can fire the callback\noutside the setup context where `onCleanup` is unavailable.\n\nThe label's own `<slot>` child is used automatically."
932
+ },
853
933
  {
854
934
  "kind": "function",
855
935
  "name": "mapIconifyIcons",
@@ -1180,6 +1260,48 @@
1180
1260
  ],
1181
1261
  "description": "The container width to test against a breakpoint, falling back to the element itself."
1182
1262
  },
1263
+ {
1264
+ "kind": "function",
1265
+ "name": "createLayoutMotion",
1266
+ "return": {
1267
+ "type": {
1268
+ "text": "LayoutMotion"
1269
+ }
1270
+ },
1271
+ "parameters": [
1272
+ {
1273
+ "name": "host",
1274
+ "type": {
1275
+ "text": "HTMLElement"
1276
+ },
1277
+ "description": "The element whose computed style carries the timing tokens\n(usually the component host; its shadow root holds the tracked elements)."
1278
+ },
1279
+ {
1280
+ "name": "signal",
1281
+ "type": {
1282
+ "text": "AbortSignal"
1283
+ },
1284
+ "description": "Lifecycle signal: disposing it cancels in-flight animations."
1285
+ },
1286
+ {
1287
+ "name": "options",
1288
+ "type": {
1289
+ "text": "LayoutMotionOptions"
1290
+ }
1291
+ }
1292
+ ],
1293
+ "description": "Builds a reflow-motion helper for one host element."
1294
+ },
1295
+ {
1296
+ "kind": "function",
1297
+ "name": "motionReduced",
1298
+ "return": {
1299
+ "type": {
1300
+ "text": "boolean"
1301
+ }
1302
+ },
1303
+ "description": "Point-in-time check for the two components whose JavaScript *starts* motion\n(the rating's sparkle burst, the drawer's swipe-close snap) and therefore\ncannot rely on the CSS layer alone: a spawned animation with a zeroed\nduration still runs its lifecycle (and its DOM nodes still accumulate), and\nan inline `style.transition` set from a gesture bypasses every token.\n\nEverything else reduces through CSS: `--duration-*`/`--transition-*` zero out\nand the `--_motion-*` hatches switch declarations off at `:root`, which is\nalso why components must never write their own\n`@media (prefers-reduced-motion)` block - it would ignore `data-motion='full'`.\n\nDelegates the three-state resolution to necromancer's `shouldReduceMotion`,\nthe same rule `theme.css` implements in CSS."
1304
+ },
1183
1305
  {
1184
1306
  "kind": "variable",
1185
1307
  "name": "themableBundle",
@@ -3207,8 +3329,8 @@
3207
3329
  "type": {
3208
3330
  "text": "boolean"
3209
3331
  },
3210
- "description": "Pause while hovered (default: false)",
3211
- "default": "false"
3332
+ "description": "Pause while hovered or focused (default: true; set false to keep scrolling)",
3333
+ "default": "true; set false to keep scrolling"
3212
3334
  },
3213
3335
  {
3214
3336
  "name": "show-controls",
@@ -4893,6 +5015,27 @@
4893
5015
  },
4894
5016
  "description": "Clamp to N lines with ellipsis (multi-line truncation)"
4895
5017
  },
5018
+ {
5019
+ "name": "expandable",
5020
+ "type": {
5021
+ "text": "boolean"
5022
+ },
5023
+ "description": "Reveal clipped text on click/tap (pairs with `truncate` or `lines`)"
5024
+ },
5025
+ {
5026
+ "name": "expanded",
5027
+ "type": {
5028
+ "text": "boolean"
5029
+ },
5030
+ "description": "Controlled expanded state for an `expandable` text"
5031
+ },
5032
+ {
5033
+ "name": "default-expanded",
5034
+ "type": {
5035
+ "text": "boolean"
5036
+ },
5037
+ "description": "Initial uncontrolled expanded state"
5038
+ },
4896
5039
  {
4897
5040
  "name": "italic",
4898
5041
  "type": {
@@ -4908,6 +5051,15 @@
4908
5051
  "description": "Semantic HTML element: 'span' | 'p' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label' | 'code'"
4909
5052
  }
4910
5053
  ],
5054
+ "events": [
5055
+ {
5056
+ "name": "expand-change",
5057
+ "description": "Fired when an `expandable` text is toggled. detail: { expanded: boolean }",
5058
+ "type": {
5059
+ "text": "CustomEvent"
5060
+ }
5061
+ }
5062
+ ],
4911
5063
  "slots": [
4912
5064
  {
4913
5065
  "name": "",
@@ -4939,7 +5091,7 @@
4939
5091
  "demos": [
4940
5092
  {
4941
5093
  "url": "",
4942
- "description": "```html\n<ore-text variant=\"heading\" size=\"2xl\" weight=\"bold\">Welcome</ore-text>\n<ore-text as=\"h2\" variant=\"heading\" size=\"xl\">Section title</ore-text>\n<ore-text color=\"primary\" weight=\"semibold\">Important notice</ore-text>\n<ore-text variant=\"code\">npm install</ore-text>\n<ore-text lines=\"2\">Long paragraph that clamps at two lines…</ore-text>\n```"
5094
+ "description": "```html\n<ore-text variant=\"heading\" size=\"2xl\" weight=\"bold\">Welcome</ore-text>\n<ore-text as=\"h2\" variant=\"heading\" size=\"xl\">Section title</ore-text>\n<ore-text color=\"primary\" weight=\"semibold\">Important notice</ore-text>\n<ore-text variant=\"code\">npm install</ore-text>\n<ore-text lines=\"2\">Long paragraph that clamps at two lines…</ore-text>\n<!-- Clamp and let the reader expand -->\n<ore-text lines=\"2\" expandable>Long paragraph, tap to read the rest…</ore-text>\n```"
4943
5095
  }
4944
5096
  ]
4945
5097
  },
@@ -6679,6 +6831,15 @@
6679
6831
  }
6680
6832
  ]
6681
6833
  },
6834
+ {
6835
+ "kind": "variable",
6836
+ "name": "TOAST_STATUSES",
6837
+ "type": {
6838
+ "text": "['neutral', 'info', 'success', 'warning', 'danger']"
6839
+ },
6840
+ "default": "['neutral', 'info', 'success', 'warning', 'danger']",
6841
+ "description": "Notification severity. Drives the status icon, the accent color, and the\ndefault screen-reader urgency; it never fills the surface, which stays a\nneutral light/dark card so a stack of notifications stays calm and legible."
6842
+ },
6682
6843
  {
6683
6844
  "kind": "variable",
6684
6845
  "name": "id"
@@ -6743,7 +6904,23 @@
6743
6904
  },
6744
6905
  {
6745
6906
  "name": "--toast-bg",
6746
- "description": "Opaque surface for flat/bordered notifications."
6907
+ "description": "Neutral notification surface (default the elevated contrast surface)."
6908
+ },
6909
+ {
6910
+ "name": "--toast-color",
6911
+ "description": "Notification text color."
6912
+ },
6913
+ {
6914
+ "name": "--toast-border-color",
6915
+ "description": "Notification border."
6916
+ },
6917
+ {
6918
+ "name": "--toast-icon-size",
6919
+ "description": "Status icon size (default --size-5)."
6920
+ },
6921
+ {
6922
+ "name": "--toast-avatar-size",
6923
+ "description": "Leading avatar diameter (default --size-8)."
6747
6924
  },
6748
6925
  {
6749
6926
  "name": "--toast-shadow",
@@ -6883,6 +7060,15 @@
6883
7060
  "default": "['shine', 'rainbow']",
6884
7061
  "description": "Animated border effect for ore-button."
6885
7062
  },
7063
+ {
7064
+ "kind": "variable",
7065
+ "name": "BUTTON_EMPHASIS",
7066
+ "type": {
7067
+ "text": "['normal', 'primary', 'cancel', 'destructive']"
7068
+ },
7069
+ "default": "['normal', 'primary', 'cancel', 'destructive']",
7070
+ "description": "Semantic role of a button's action, following the four-role model Apple's\nHuman Interface Guidelines use for buttons: Normal, Primary, Cancel,\nDestructive. The role picks the treatment, so prominence stops being a\nstyling accident:\n\n- `primary` — the action most people will choose: accent fill (solid).\n- `cancel` — dismiss without changing anything: neutral ghost.\n- `destructive` — deletes or is otherwise hard to undo: error ink with no\n filled background (HIG's destructive treatment is red text, not a red\n slab; a filled error button can be mistaken for a primary action).\n- `normal` — the default treatment, unchanged from no emphasis at all.\n\nAn explicit `color`/`variant` attribute always wins over the mapping, so\n`emphasis` is a shortcut, not a lock-in."
7071
+ },
6886
7072
  {
6887
7073
  "kind": "variable",
6888
7074
  "name": "BUTTON_TAG",
@@ -6956,6 +7142,20 @@
6956
7142
  },
6957
7143
  "description": "Animated border effect: 'shine' | 'rainbow'"
6958
7144
  },
7145
+ {
7146
+ "name": "emphasis",
7147
+ "type": {
7148
+ "text": "'normal' | 'primary' | 'cancel' | 'destructive'"
7149
+ },
7150
+ "description": "Semantic role: 'normal' | 'primary' | 'cancel' | 'destructive' (explicit color/variant wins)"
7151
+ },
7152
+ {
7153
+ "name": "elevation",
7154
+ "type": {
7155
+ "text": "number"
7156
+ },
7157
+ "description": "Resting shadow depth: 0-5 (flat at rest when omitted)"
7158
+ },
6959
7159
  {
6960
7160
  "name": "icon-only",
6961
7161
  "type": {
@@ -7048,6 +7248,10 @@
7048
7248
  "name": "--button-font-size",
7049
7249
  "description": "Font size override"
7050
7250
  },
7251
+ {
7252
+ "name": "--button-min-height",
7253
+ "description": "Minimum height override (defaults to the 44px touch target)"
7254
+ },
7051
7255
  {
7052
7256
  "name": "--button-frost-active-bg",
7053
7257
  "description": "Background when pressed (frost variant)"
@@ -7055,12 +7259,20 @@
7055
7259
  {
7056
7260
  "name": "--button-frost-active-border-color",
7057
7261
  "description": "Border color when pressed (frost variant)"
7262
+ },
7263
+ {
7264
+ "name": "--button-shadow",
7265
+ "description": "Resting shadow for an elevated button (default: the color family's halo)"
7266
+ },
7267
+ {
7268
+ "name": "--button-shadow-contact",
7269
+ "description": "Neutral contact shadow layered under --button-shadow"
7058
7270
  }
7059
7271
  ],
7060
7272
  "demos": [
7061
7273
  {
7062
7274
  "url": "",
7063
- "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n```"
7275
+ "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n<ore-button elevation=\"1\" emphasis=\"primary\">CTA</ore-button>\n```"
7064
7276
  }
7065
7277
  ]
7066
7278
  },
@@ -7247,8 +7459,8 @@
7247
7459
  "description": "Colour of today's date number"
7248
7460
  },
7249
7461
  {
7250
- "name": "--calendar-day-outside-opacity",
7251
- "description": "Opacity of days outside visible month"
7462
+ "name": "--calendar-day-outside-color",
7463
+ "description": "Colour of day numbers outside the visible month"
7252
7464
  }
7253
7465
  ],
7254
7466
  "demos": [
@@ -8083,6 +8295,32 @@
8083
8295
  ],
8084
8296
  "description": "Feature-owned state and transform pipeline for `ore-datagrid`.\n\nRows flow through the active view, query, filters, sorting, and pagination in order. Selection\nand column visibility share the same model so every interactive grid concern\nhas one reactive owner. Source-backed grids retain their server-owned rows by\nsetting `clientSide` to false."
8085
8297
  },
8298
+ {
8299
+ "kind": "function",
8300
+ "name": "createRowMotion",
8301
+ "return": {
8302
+ "type": {
8303
+ "text": "LayoutMotion"
8304
+ }
8305
+ },
8306
+ "parameters": [
8307
+ {
8308
+ "name": "host",
8309
+ "type": {
8310
+ "text": "HTMLElement"
8311
+ },
8312
+ "description": "The grid host element (its shadow root holds the rows)."
8313
+ },
8314
+ {
8315
+ "name": "signal",
8316
+ "type": {
8317
+ "text": "AbortSignal"
8318
+ },
8319
+ "description": "Lifecycle signal: disposing it cancels in-flight animations."
8320
+ }
8321
+ ],
8322
+ "description": "Builds the grid's row-motion helper."
8323
+ },
8086
8324
  {
8087
8325
  "kind": "function",
8088
8326
  "name": "createGridNav",
@@ -8396,8 +8634,8 @@
8396
8634
  "description": "Color of today's date number"
8397
8635
  },
8398
8636
  {
8399
- "name": "--date-picker-day-outside-opacity",
8400
- "description": "Opacity of days outside visible month"
8637
+ "name": "--date-picker-day-outside-color",
8638
+ "description": "Color of day numbers outside the visible month"
8401
8639
  }
8402
8640
  ],
8403
8641
  "demos": [
@@ -11899,14 +12137,14 @@
11899
12137
  "text": "'ore-grid'"
11900
12138
  },
11901
12139
  "default": "'ore-grid'",
11902
- "description": "ore-grid: Flexible grid layout with responsive column control.\n\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set."
12140
+ "description": "ore-grid: Flexible grid layout with responsive column control.\n\nThe grid is container-responsive: `cols-*` breakpoints compare against the\nelement's own width (measured with a ResizeObserver), not the viewport, so a\nnarrow grid in a sidebar gets its mobile layout even on a wide screen.\nBreakpoint thresholds come from the `--size-screen-*` tokens. Fixed counts\nresolve through the `--grid-1`–`--grid-12` tokens; the responsive floor uses\n`--grid-min-item-width`. CSS custom properties `--grid-cols`, `--grid-rows`,\n`--grid-gap`, `--grid-row-gap`, `--grid-col-gap` are honoured as fallbacks\nwhen no attribute is set."
11903
12141
  },
11904
12142
  {
11905
12143
  "kind": "class",
11906
12144
  "name": "OreGridElement",
11907
12145
  "tagName": "ore-grid",
11908
12146
  "customElement": true,
11909
- "description": "ore-grid: Flexible grid layout with responsive column control.\nColumns are computed in JS and applied as `--_cols` inline, so they respond\nto the element's own width via ResizeObserver. CSS custom properties\n`--grid-cols`, `--grid-rows`, `--grid-gap`, `--grid-row-gap`, `--grid-col-gap`\nare honoured as fallbacks when no attribute is set.",
12147
+ "description": "ore-grid: Flexible grid layout with responsive column control.\nThe grid is container-responsive: `cols-*` breakpoints compare against the\nelement's own width (measured with a ResizeObserver), not the viewport, so a\nnarrow grid in a sidebar gets its mobile layout even on a wide screen.\nBreakpoint thresholds come from the `--size-screen-*` tokens. Fixed counts\nresolve through the `--grid-1`–`--grid-12` tokens; the responsive floor uses\n`--grid-min-item-width`. CSS custom properties `--grid-cols`, `--grid-rows`,\n`--grid-gap`, `--grid-row-gap`, `--grid-col-gap` are honoured as fallbacks\nwhen no attribute is set.",
11910
12148
  "summary": "",
11911
12149
  "attributes": [
11912
12150
  {
@@ -11998,8 +12236,8 @@
11998
12236
  "type": {
11999
12237
  "text": "string"
12000
12238
  },
12001
- "description": "Min column width for responsive mode (default: 250px)",
12002
- "default": "250px"
12239
+ "description": "Min column width for responsive mode (default: var(--grid-min-item-width))",
12240
+ "default": "var(--grid-min-item-width"
12003
12241
  },
12004
12242
  {
12005
12243
  "name": "fullwidth",
@@ -12062,6 +12300,10 @@
12062
12300
  "name": "--grid-cols",
12063
12301
  "description": "Fallback column template (used when no cols attr is set)"
12064
12302
  },
12303
+ {
12304
+ "name": "--grid-min-item-width",
12305
+ "description": "Floor for auto-fit column width (default: 250px)"
12306
+ },
12065
12307
  {
12066
12308
  "name": "--grid-rows",
12067
12309
  "description": "Fallback row template"
@@ -14359,7 +14601,7 @@
14359
14601
  },
14360
14602
  {
14361
14603
  "name": "--spotlight-transition",
14362
- "description": "Geometry transition (default: 240ms ease)"
14604
+ "description": "Geometry transition (default: var(--duration-250) var(--ease-spring))"
14363
14605
  }
14364
14606
  ],
14365
14607
  "demos": [
@@ -14413,8 +14655,16 @@
14413
14655
  "type": {
14414
14656
  "text": "number"
14415
14657
  },
14416
- "description": "Show delay in milliseconds (default: 0)",
14417
- "default": "0"
14658
+ "description": "Show delay in milliseconds (default: 300 on hover, immediate on focus/click)",
14659
+ "default": "300 on hover, immediate on focus/click"
14660
+ },
14661
+ {
14662
+ "name": "close-delay",
14663
+ "type": {
14664
+ "text": "number"
14665
+ },
14666
+ "description": "Hide delay in milliseconds (default: 100 on pointer leave, immediate on focus out)",
14667
+ "default": "100 on pointer leave, immediate on focus out"
14418
14668
  },
14419
14669
  {
14420
14670
  "name": "open",
package/data/search.json CHANGED
@@ -1066,7 +1066,7 @@
1066
1066
  "name": "@vielzeug/refine",
1067
1067
  "related": "ore orbit forge keymap",
1068
1068
  "slug": "refine",
1069
- "source": "/**\n * refine components register through their explicit component entry points.\n *\n * keeping the package root free of registration side effects makes dependency\n * ownership and bundle contents obvious to application code.\n */\n\nexport { refineerror } from './errors';\nexport type { iconattributes, icondefinition, iconelement } from './icons';\nexport { registericons } from './icons';\nexport { eventfieldchecked, eventfieldvalue } from './inputs/shared/native field event';\n"
1069
+ "source": "/**\n * refine components register through their explicit component entry points.\n *\n * keeping the package root free of registration side effects makes dependency\n * ownership and bundle contents obvious to application code.\n */\n\nexport { refineerror } from './errors';\nexport type { iconattributes, icondefinition, iconelement } from './icons';\nexport { registericons } from './icons';\nexport { eventfieldchecked, eventfieldvalue } from './inputs/shared/native field event';\nexport { getmotionmode, motion_modes, type motionmode, setmotionmode } from './motion';\n"
1070
1070
  },
1071
1071
  {
1072
1072
  "category": "state",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vielzeug/codex",
3
- "version": "26.10.18",
3
+ "version": "26.10.20",
4
4
  "description": "MCP server exposing all Vielzeug docs to AI clients",
5
5
  "repository": {
6
6
  "type": "git",
@@ -63,7 +63,7 @@
63
63
  },
64
64
  "devDependencies": {
65
65
  "@types/node": "^26.6.5",
66
- "@vielzeug/refine": "26.10.18",
66
+ "@vielzeug/refine": "26.10.20",
67
67
  "typescript": "^6.0.3",
68
68
  "vitest": "^5.0.5"
69
69
  }