@wirecore/wirelayer-vue 0.8.0 → 0.9.0

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.
Files changed (52) hide show
  1. package/dist/{ContextMenu-B6agwyf_.js → ContextMenu-CBE9YnDW.js} +607 -597
  2. package/dist/{Select-CeZbSy6K.js → Select-q8FUIWLi.js} +46 -45
  3. package/dist/Tree-B-0NXpUq.js +839 -0
  4. package/dist/components/Avatar/Avatar.vue.d.ts +2 -0
  5. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  6. package/dist/components/Card/Card.vue.d.ts +2 -0
  7. package/dist/components/Card/Card.vue.d.ts.map +1 -1
  8. package/dist/components/Code/Code.vue.d.ts +21 -0
  9. package/dist/components/Code/Code.vue.d.ts.map +1 -0
  10. package/dist/components/ContextMenu/ContextMenu.vue.d.ts +3 -3
  11. package/dist/components/ContextMenu/ContextMenu.vue.d.ts.map +1 -1
  12. package/dist/components/Dialog/Dialog.vue.d.ts.map +1 -1
  13. package/dist/components/Dialog/DialogContent.vue.d.ts +7 -1
  14. package/dist/components/Dialog/DialogContent.vue.d.ts.map +1 -1
  15. package/dist/components/Dialog/context.d.ts +3 -1
  16. package/dist/components/Dialog/context.d.ts.map +1 -1
  17. package/dist/components/NativeSelect/NativeSelect.vue.d.ts +13 -10
  18. package/dist/components/NativeSelect/NativeSelect.vue.d.ts.map +1 -1
  19. package/dist/components/NumberInput/NumberInput.vue.d.ts +27 -20
  20. package/dist/components/NumberInput/NumberInput.vue.d.ts.map +1 -1
  21. package/dist/components/Progress/Progress.vue.d.ts +5 -2
  22. package/dist/components/Progress/Progress.vue.d.ts.map +1 -1
  23. package/dist/components/RadioGroup/RadioGroup.vue.d.ts +14 -7
  24. package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
  25. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts +14 -6
  26. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
  27. package/dist/components/Select/Select.vue.d.ts +13 -7
  28. package/dist/components/Select/Select.vue.d.ts.map +1 -1
  29. package/dist/components/Stepper/Stepper.vue.d.ts +2 -0
  30. package/dist/components/Stepper/Stepper.vue.d.ts.map +1 -1
  31. package/dist/components/Tabs/Tabs.vue.d.ts +6 -3
  32. package/dist/components/Tabs/Tabs.vue.d.ts.map +1 -1
  33. package/dist/components/Tabs/TabsTrigger.vue.d.ts +6 -0
  34. package/dist/components/Tabs/TabsTrigger.vue.d.ts.map +1 -1
  35. package/dist/components/Tabs/context.d.ts +4 -0
  36. package/dist/components/Tabs/context.d.ts.map +1 -0
  37. package/dist/components/Wizard/Wizard.vue.d.ts +10 -2
  38. package/dist/components/Wizard/Wizard.vue.d.ts.map +1 -1
  39. package/dist/composables/index.d.ts +1 -1
  40. package/dist/composables/index.d.ts.map +1 -1
  41. package/dist/composables/media.d.ts +8 -1
  42. package/dist/composables/media.d.ts.map +1 -1
  43. package/dist/data-table.js +2 -2
  44. package/dist/index.d.ts +5 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1765 -1718
  47. package/dist/pdf.js +2 -2
  48. package/dist/sources/Code.css +2 -0
  49. package/llms-full.txt +56 -12
  50. package/llms.txt +1 -0
  51. package/package.json +3 -3
  52. package/dist/Tree-DgHt0P5P.js +0 -807
package/dist/pdf.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { a as e, i as t, n } from "./recipes-BlM9aKyt.js";
2
2
  import { t as r } from "./Button-BpMOPs8b.js";
3
3
  import { t as i } from "./Field-Cqe2BG_x.js";
4
- import { i as a, t as o } from "./Select-CeZbSy6K.js";
5
- import { c as s, i as c, l, n as u, o as d, r as ee, s as te, t as ne } from "./Tree-DgHt0P5P.js";
4
+ import { i as a, t as o } from "./Select-q8FUIWLi.js";
5
+ import { c as s, i as c, l, n as u, o as d, r as ee, s as te, t as ne } from "./Tree-B-0NXpUq.js";
6
6
  import { Fragment as f, computed as p, createBlock as re, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createTextVNode as _, createVNode as v, defineComponent as y, mergeProps as ie, nextTick as ae, normalizeClass as b, normalizeStyle as oe, onBeforeUnmount as se, onMounted as ce, openBlock as x, reactive as le, ref as S, renderList as ue, resolveDynamicComponent as de, toDisplayString as C, unref as w, useAttrs as fe, useId as pe, useTemplateRef as T, vModelText as me, watch as E, withCtx as D, withDirectives as he, withModifiers as ge } from "vue";
7
7
  import { CaseSensitive as _e, ChevronDown as ve, ChevronUp as ye, Download as be, FileWarning as xe, Maximize as Se, Minimize as Ce, PanelLeft as we, Printer as Te, RotateCw as Ee, Search as De, X as Oe, ZoomIn as ke, ZoomOut as Ae } from "@lucide/vue";
8
8
  import { PDF_ZOOM_MAX as je, PDF_ZOOM_MIN as Me, clampPdfPage as Ne, clampPdfZoom as Pe, downloadBytes as Fe, input as Ie, normalizePdfRotation as O, parsePdfPage as Le, pdfFileName as Re, pdfKeyAction as ze, pdfPrintDocument as k, pdfSearchText as Be, pdfThumbnailSize as Ve, pdfTools as A, pdfViewer as He, pdfZoomFromKey as Ue, pdfZoomKey as We, pdfZoomStep as Ge, pdfZoomSteps as j, pdfZoomSteps as Ke, resolvePdfTools as qe, setupToolbar as Je } from "@wirecore/wirelayer-recipes";
@@ -0,0 +1,2 @@
1
+ /* Classes of Code – generated by scripts/sources.ts, do not edit */
2
+ @import '@wirecore/wirelayer-recipes/sources/inlineCode.css';
package/llms-full.txt CHANGED
@@ -356,6 +356,7 @@ Image, initials or icon of a person or organisation; `as="button"` makes it a tr
356
356
  | Prop | Type | Description |
357
357
  | --- | --- | --- |
358
358
  | name? | `string` | Person or organisation – accessible name of the avatar and source of the initials |
359
+ | initials? | `string` | Own initials instead of the ones taken from `name`, e.g. "MS" for "my-server" |
359
360
  | src? | `string` | Image URL; initials (or the icon) are shown while it loads or if it fails |
360
361
  | icon? | `Component` | Icon shown when there is neither an image nor a name (default: user icon) |
361
362
  | variant? | `AvatarVariant` | |
@@ -698,6 +699,7 @@ Surface for grouped content, optionally with title, media and footer; interactiv
698
699
  | subtitle? | `string` | Line below the title (also via #subtitle) |
699
700
  | title-tag? | `'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6' \| 'p'` | Element of the title – pick the level that fits the page outline |
700
701
  | orientation? | `'vertical' \| 'horizontal'` | `horizontal`: media at the start, the content beside it |
702
+ | size? | `'sm' \| 'md'` | `sm`: smaller radius, padding and title, e.g. for cards in a list inside a dialog |
701
703
  | classes? | `RecipeClasses<typeof cardRecipe> & RecipeClasses<typeof cardPartsRecipe>` | Extra classes per part of the component, e.g. { base: "…", title: "…" } (see the recipes card and cardParts) |
702
704
 
703
705
  | Slot | Slot props | Description |
@@ -1104,6 +1106,21 @@ Filter chips: one or several options as toggle buttons
1104
1106
  | v-model | `value: string[]` | |
1105
1107
 
1106
1108
 
1109
+ ### Code
1110
+
1111
+ Code inside a sentence, without syntax colours: the look of InlineCode (/code) without shiki
1112
+
1113
+ - Import: `import { Code } from '@wirecore/wirelayer-vue'`
1114
+ - Category: Data
1115
+ - Example: https://wirecore.github.io/WireLayer/?path=/story/vue_data-code--playground
1116
+ - Other attributes go to the root element (<code>)
1117
+
1118
+ | Prop | Type | Description |
1119
+ | --- | --- | --- |
1120
+ | code? | `string` | The code (one line) – or pass it as the content |
1121
+ | classes? | `RecipeClasses<typeof inlineCodeRecipe>` | Extra classes of the recipe (see the recipe inlineCode) |
1122
+
1123
+
1107
1124
  ### CodeHighlight
1108
1125
 
1109
1126
  Code block with syntax colours; the scroll area is focusable, the copy button copies the plain code
@@ -1549,7 +1566,7 @@ Opens at the pointer on right click, on touch screens with a long press (and wit
1549
1566
  | @checked-change | `value: string, checked: boolean` | A checkbox item was switched |
1550
1567
  | @value-change | `name: string, value: string` | A radio group got a new value |
1551
1568
  | v-model:open | `open: boolean` | |
1552
- | @before-open | `target: Element` | A right click, long press or the menu key is opening the menu, on this element (e.g. the row under the pointer – select it before the menu shows) |
1569
+ | @before-open | `target: Element, details: ContextMenuOpenDetails` | A right click, long press or the menu key is opening the menu, on this element (e.g. the row under the pointer – select it before the menu shows); `details.source` tells pointer from keyboard, with the keyboard `details.focused` is the focused element (e.g. the row with the focus) |
1553
1570
 
1554
1571
  | Slot | Slot props | Description |
1555
1572
  | --- | --- | --- |
@@ -3797,7 +3814,7 @@ The browser's select: its own keyboard and mobile pickers; inside a Field it is
3797
3814
  | --- | --- | --- |
3798
3815
  | items | `readonly NativeSelectOption<V>[]` | |
3799
3816
  | v-model? (modelValue) | `V \| ''` | Chosen value – use with v-model; the placeholder option gives an empty string |
3800
- | placeholder? | `string` | First, empty option, e.g. "Please choose" |
3817
+ | placeholder? | `P` | First, empty option, e.g. "Please choose" – without it v-model only gets values (typed `V`, not `V \| ''`) |
3801
3818
  | size? | `Size` | |
3802
3819
  | invalid? | `boolean` | |
3803
3820
  | disabled? | `boolean` | |
@@ -3805,7 +3822,7 @@ The browser's select: its own keyboard and mobile pickers; inside a Field it is
3805
3822
 
3806
3823
  | Event | Payload | Description |
3807
3824
  | --- | --- | --- |
3808
- | v-model | `value: V \| ''` | |
3825
+ | v-model | `value: P extends string ? V \| '' : V` | |
3809
3826
 
3810
3827
 
3811
3828
  ### NavigationMenu
@@ -3923,6 +3940,7 @@ Number field with − / + buttons, arrow keys and locale formatting ("1,234.5");
3923
3940
  | allow-decimal? | `boolean` | Allows decimals (default); false blocks the decimal separator and rounds to whole numbers |
3924
3941
  | decimals? | `number` | Exactly this many decimals, e.g. 2 → "12.50" |
3925
3942
  | clamp-behavior? | `'blur' \| 'strict' \| 'none'` | Out of min/max: `blur` corrects the value when the field is left (default), `strict` does not let it leave the range, `none` keeps it (mark it invalid yourself) |
3943
+ | empty-fallback? | `F` | A number is always set: an emptied field falls back to `min` (or 0) or to the last valid number (`previous`) when it is left or Enter is pressed – v-model then only gets numbers (typed `number`, not `number \| null`) |
3926
3944
  | select-on-focus? | `boolean` | Selects the whole number when the field gets the focus |
3927
3945
  | loading? | `boolean` | Shows a spinner in the field and marks it busy (aria-busy) |
3928
3946
  | clearable? | `boolean` | Shows a button that empties the field while it has a value |
@@ -3932,7 +3950,7 @@ Number field with − / + buttons, arrow keys and locale formatting ("1,234.5");
3932
3950
 
3933
3951
  | Event | Payload | Description |
3934
3952
  | --- | --- | --- |
3935
- | v-model | `value: number \| null` | |
3953
+ | v-model | `value: F extends string ? number : number \| null` | |
3936
3954
 
3937
3955
 
3938
3956
  ### OrderList
@@ -4430,7 +4448,7 @@ Ark names the progressbar after its value; the label is the name, the value its
4430
4448
  | animated? | `boolean` | Moving stripes (only without reduced motion) |
4431
4449
  | orientation? | `'horizontal' \| 'vertical'` | Vertical bar (fills the height of its parent) |
4432
4450
  | size? | `'xs' \| 'md'` | `xs`: a thin bar with small text, e.g. in a list or a status bar |
4433
- | status? | `'info' \| 'success' \| 'warn' \| 'danger'` | Colour of the filled part by its state, e.g. `danger` for a failed transfer |
4451
+ | status? | `'info' \| 'success' \| 'warn' \| 'danger' \| 'neutral'` | Colour of the filled part by its state, e.g. `danger` for a failed transfer, `neutral` (grey) for a cancelled one |
4434
4452
  | hide-label? | `boolean` | The label only for screen readers – it still names the progress bar |
4435
4453
  | bar-text? | `string` | Short text in the bar, e.g. "42 %", "waiting" or "failed" (a taller bar; horizontal, without segments or steps) – screen readers get it after the value |
4436
4454
  | classes? | `RecipeClasses<typeof progressRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
@@ -4567,13 +4585,13 @@ One choice out of several (role="radiogroup", arrow keys), horizontal or vertica
4567
4585
  | columns? | `number` | Cards in a grid with this many columns (one column on small screens) – for RadioCard |
4568
4586
  | disabled? | `boolean` | |
4569
4587
  | invalid? | `boolean` | |
4570
- | required? | `boolean` | |
4588
+ | required? | `R & boolean` | A choice is required (aria-required). v-model then only gets values (typed `V`, not `V \| null`): a form reset back to an empty start is not passed on |
4571
4589
  | name? | `string` | |
4572
4590
  | classes? | `RecipeClasses<typeof radioGroupRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
4573
4591
 
4574
4592
  | Event | Payload | Description |
4575
4593
  | --- | --- | --- |
4576
- | v-model | `value: V \| null` | |
4594
+ | v-model | `value: R extends true ? V : V \| null` | |
4577
4595
 
4578
4596
 
4579
4597
  ### RadioGroupItem
@@ -4894,12 +4912,13 @@ Few exclusive options as a segmented switch (radio group)
4894
4912
  | label? | `string` | Accessible name of the group (visually hidden) – inside a Field with a label, the Field's label names it |
4895
4913
  | size? | `SegmentedControlSize` | |
4896
4914
  | disabled? | `boolean` | |
4915
+ | required? | `R & boolean` | A value is required (aria-required). v-model then only gets values (typed `V`, not `V \| null`): a form reset back to an empty start is not passed on |
4897
4916
  | name? | `string` | |
4898
4917
  | classes? | `RecipeClasses<typeof segmentedControlRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
4899
4918
 
4900
4919
  | Event | Payload | Description |
4901
4920
  | --- | --- | --- |
4902
- | v-model | `value: V \| null` | |
4921
+ | v-model | `value: R extends true ? V : V \| null` | |
4903
4922
 
4904
4923
 
4905
4924
  ### SegmentedControlItem
@@ -4931,8 +4950,9 @@ Dropdown list for one option: arrow keys, typeahead, Escape; native select hidde
4931
4950
  | Prop | Type | Description |
4932
4951
  | --- | --- | --- |
4933
4952
  | items | `readonly T[]` | Options: SelectItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled/itemGroup |
4934
- | v-model? (modelValue) | `V \| null` | Selected value – use with v-model; any type (string, number, boolean, object) |
4935
- | default-value? | `V \| null` | |
4953
+ | v-model? (modelValue) | `V \| NoInfer<E> \| null` | Selected value – use with v-model; any type (string, number, boolean, object) |
4954
+ | default-value? | `V \| NoInfer<E> \| null` | |
4955
+ | empty-value? | `E` | The value that means "nothing chosen" instead of null, e.g. `""`: it shows the placeholder, and clearing gives it back (v-model is then typed `V \| E`, without null) |
4936
4956
  | placeholder? | `string` | |
4937
4957
  | disabled? | `boolean` | |
4938
4958
  | invalid? | `boolean` | |
@@ -4963,7 +4983,7 @@ Dropdown list for one option: arrow keys, typeahead, Escape; native select hidde
4963
4983
 
4964
4984
  | Event | Payload | Description |
4965
4985
  | --- | --- | --- |
4966
- | v-model | `value: V \| null` | |
4986
+ | v-model | `value: V \| NoInfer<E>` | |
4967
4987
  | @filter-change | `text: string` | Text of the search field (filter) – e.g. to load matching items from a server (manualFilter) |
4968
4988
  | @load-more | – | The end of the list was scrolled into view (hasMore) |
4969
4989
  | v-model:open | `open: boolean` | The list opened or closed |
@@ -5417,6 +5437,7 @@ Steps list (tabs) with one panel per step and back/next buttons; the last "Next"
5417
5437
  | is-step-valid? | `(index: number) => boolean` | Blocks "Next" while a step is not valid (with linear) |
5418
5438
  | orientation? | `'horizontal' \| 'vertical'` | Steps listed top to bottom beside the content |
5419
5439
  | label-placement? | `'end' \| 'bottom'` | Label beside the number (default) or below it |
5440
+ | finish-label? | `string` | Text of the last "Next" button, e.g. "Create" (default "Finish") |
5420
5441
  | classes? | `RecipeClasses<typeof stepperRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
5421
5442
 
5422
5443
  | Event | Payload | Description |
@@ -5551,7 +5572,7 @@ Tab panels: tab list with arrow keys, one panel visible
5551
5572
 
5552
5573
  | Prop | Type | Description |
5553
5574
  | --- | --- | --- |
5554
- | v-model? (modelValue) | `string` | Selected tab – use with v-model |
5575
+ | v-model? (modelValue) | `string \| null` | Selected tab – use with v-model; `null`: no tab selected (e.g. tabs of panels that live elsewhere – the first tab stays reachable with Tab) |
5555
5576
  | default-value? | `string` | |
5556
5577
  | label? | `string` | Accessible name of the tab list |
5557
5578
  | orientation? | `'horizontal' \| 'vertical'` | Tab list above (default) or beside the panels |
@@ -5609,6 +5630,7 @@ One tab button
5609
5630
  | icon? | `Component` | Icon component before the label |
5610
5631
  | disabled? | `boolean` | |
5611
5632
  | closable? | `boolean` | Shows a close button (pointer) and closes with the Delete key; `close` reports it – remove the tab (and select another one) yourself. The focus moves to the neighbouring tab |
5633
+ | controls? | `string \| null` | Id of the element the tab shows, when it is not a TabsContent of these Tabs (e.g. a pane elsewhere shown with v-show) – `null`: none (tabs without panels) |
5612
5634
  | classes? | `RecipeClasses<typeof tabsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
5613
5635
 
5614
5636
  | Event | Payload | Description |
@@ -6326,6 +6348,8 @@ Multi-step form on the Stepper: "Next" checks the step (async with a spinner), "
6326
6348
  | default-step? | `number` | |
6327
6349
  | summary-label? | `string` | Name of the summary step – the step appears with the #summary slot (default "Summary") |
6328
6350
  | orientation? | `'horizontal' \| 'vertical'` | Steps listed top to bottom beside the content |
6351
+ | finish-label? | `string` | Text of the last button, e.g. "Create" (default "Finish") |
6352
+ | focus-on-step-change? | `boolean` | Moves the focus into a new step when the step changes: to the element marked data-autoselect (text selected), data-autofocus or autofocus, otherwise to the step's first field |
6329
6353
  | classes? | `RecipeClasses<typeof wizardRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
6330
6354
 
6331
6355
  | Event | Payload | Description |
@@ -6397,6 +6421,7 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
6397
6421
  - `emptyConditionGroup` (`@wirecore/wirelayer-vue`): –
6398
6422
  - `expandRecurrence` (`@wirecore/wirelayer-vue`): –
6399
6423
  - `firstError` (`@wirecore/wirelayer-vue/form`): First readable message of TanStack Form errors (strings or Standard Schema issues).
6424
+ - `focusFirst` (`@wirecore/wirelayer-vue`): –
6400
6425
  - `formatColor` (`@wirecore/wirelayer-vue`): –
6401
6426
  - `formatHotkey` (`@wirecore/wirelayer-vue`): –
6402
6427
  - `formatHotkeyText` (`@wirecore/wirelayer-vue`): –
@@ -6429,6 +6454,7 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
6429
6454
  - `provideRecipes` (`@wirecore/wirelayer-vue`): Adds overrides for the components below (inner ones win) – used by RecipesProvider
6430
6455
  - `registerLocale` (`@wirecore/wirelayer-vue`): –
6431
6456
  - `removeTreeNode` (`@wirecore/wirelayer-vue`): –
6457
+ - `resolveTokens` (`@wirecore/wirelayer-vue`): –
6432
6458
  - `rowsToDataSource` (`@wirecore/wirelayer-vue/data-table`): –
6433
6459
  - `toast` (`@wirecore/wirelayer-vue`): –
6434
6460
  - `toaster` (`@wirecore/wirelayer-vue`): –
@@ -6466,6 +6492,7 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
6466
6492
  - `useReducedMotion` (`@wirecore/wirelayer-vue`): Whether the user asked for less motion (prefers-reduced-motion: reduce)
6467
6493
  - `useRegisteredHotkeys` (`@wirecore/wirelayer-vue`): The registered shortcuts (enabled, with a description), updated as components register them
6468
6494
  - `useResizeObserver` (`@wirecore/wirelayer-vue`): The content box of an element as it changes (bind `ref` to it)
6495
+ - `useResolvedTokens` (`@wirecore/wirelayer-vue`): The token colours as fixed values (hex, see resolveTokens) – for canvas libraries like xterm.js that cannot read CSS variables; new values when the mode, the theme or the system colour scheme changes. On the server: the light base colours as written
6469
6496
  - `useScrollSpy` (`@wirecore/wirelayer-vue`): The id of the section being read: the last of `ids` whose top passed `offset` px (e.g. a sticky header) – for a table of contents
6470
6497
  - `useSelection` (`@wirecore/wirelayer-vue`): Selected items of a list: toggle, select all, clear – with "all"/"some" for a header checkbox
6471
6498
  - `useSessionStorage` (`@wirecore/wirelayer-vue`): Like useLocalStorage, in sessionStorage (this tab only, gone when it closes)
@@ -6477,6 +6504,7 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
6477
6504
  - `useWindowScroll` (`@wirecore/wirelayer-vue`): Scroll position of the window and `scrollTo` (0 on the server)
6478
6505
  - `validateFields` (`@wirecore/wirelayer-vue/form`): Validates some fields of a TanStack form (e.g. one Wizard step) and marks them touched, so their errors show. Resolves with true when none has an error.
6479
6506
  - `virtualRows` (`@wirecore/wirelayer-vue/virtual`): DataTable feature: only the visible rows are rendered with `virtual` – `<DataTable :features="[virtualRows]" virtual>`
6507
+ - `watchTokens` (`@wirecore/wirelayer-vue`): –
6480
6508
 
6481
6509
  ## Guides
6482
6510
 
@@ -7184,6 +7212,22 @@ as `pdfjs-dist` (Apache-2.0), Chart.js, Tiptap and Shiki are installed by the ap
7184
7212
  numbers); `Checkbox` with a boolean model gives booleans.
7185
7213
  - **Compact parts:** `Progress size="xs"` with `hide-label`, `bar-text` and `status`; `Alert #actions`; `mono` on text
7186
7214
  fields; `DialogContent title-position="header"` puts the title next to the close button.
7215
+ - **Values that are never empty:** with `required`, `RadioGroup` and `SegmentedControl` give v-model `V` instead of
7216
+ `V | null`; `NativeSelect` without `placeholder` gives `V` instead of `V | ''`; `NumberInput empty-fallback="min"` or
7217
+ `"previous"` refills an emptied field when it is left (typed `number`). `Select empty-value=""` treats an empty string
7218
+ like null – the placeholder shows, clearing gives `""` back.
7219
+ - **Focus in dialogs and wizards:** `data-autoselect` focuses a field and selects its text when the dialog opens (e.g. a
7220
+ prefilled name). For content that changes while it is open, `DialogContent` exposes `focusFirst()` (React:
7221
+ `focusFirst(element)`), and `Wizard focus-on-step-change` moves the focus into each new step. `Wizard finish-label`
7222
+ names the last button; `validate` may return a text, shown as the step's error.
7223
+ - **Panels elsewhere:** `TabsTrigger controls="pane-id"` points a tab at a pane outside the Tabs (`:controls="null"`
7224
+ for none); `Tabs` takes `null` for "no tab selected" – the first tab stays reachable with Tab.
7225
+ - **Context menus by keyboard:** `@before-open` gets a second argument `{ source: 'pointer' | 'keyboard', focused }` –
7226
+ with Shift+F10 or the menu key `focused` is the element with the focus (e.g. the list row).
7227
+ - **Canvas libraries** (xterm.js, charts): `resolveTokens()` gives the token colours of the current mode and theme as hex;
7228
+ `useResolvedTokens()` updates when the mode, the theme or the system colour scheme changes.
7229
+ - **More compact parts:** `Card size="sm"` for lists in dialogs, `Progress status="neutral"` for cancelled work,
7230
+ `Avatar initials="MS"`, and `Code` for code in a sentence without shiki (the look of `InlineCode` from `/code`).
7187
7231
 
7188
7232
  ### Custom theme
7189
7233
 
package/llms.txt CHANGED
@@ -58,6 +58,7 @@ Full API (props, events, slots, examples) in llms-full.txt next to this file. MC
58
58
  - [ChatThinking](https://wirecore.github.io/WireLayer/?path=/story/vue_data-chat--playground): The reasoning of an answer: collapsed by default, "Thinking …" while it is being written (`@wirecore/wirelayer-vue`)
59
59
  - [ChatToolCall](https://wirecore.github.io/WireLayer/?path=/story/vue_data-chat--playground): A tool call of an assistant: name and status in the summary, arguments and result inside (`@wirecore/wirelayer-vue`)
60
60
  - [Chip](https://wirecore.github.io/WireLayer/?path=/story/vue_data-chip--playground): One option of a ChipGroup (a toggle button); outside a ChipGroup a standalone chip, optionally removable (`@wirecore/wirelayer-vue`)
61
+ - [Code](https://wirecore.github.io/WireLayer/?path=/story/vue_data-code--playground): Code inside a sentence, without syntax colours: the look of InlineCode (/code) without shiki (`@wirecore/wirelayer-vue`)
61
62
  - [CodeHighlight](https://wirecore.github.io/WireLayer/?path=/story/vue_data-codehighlight--playground): Code block with syntax colours; the scroll area is focusable, the copy button copies the plain code (`@wirecore/wirelayer-vue/code`)
62
63
  - [CodeHighlightTabs](https://wirecore.github.io/WireLayer/?path=/story/vue_data-codehighlight--playground): Several files: tabs with the file names (and an icon by type) above the shown code (`@wirecore/wirelayer-vue/code`)
63
64
  - [CompositeChart](https://wirecore.github.io/WireLayer/?path=/story/vue_data-compositechart--playground): Bars and lines in one chart (series[].type), e.g. revenue as bars and margin as a line on a second axis (`@wirecore/wirelayer-vue/chart`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecore/wirelayer-vue",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "WireLayer components for Vue 3",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -166,8 +166,8 @@
166
166
  "@ark-ui/vue": "^5.39.3",
167
167
  "@internationalized/date": "^3.12.4",
168
168
  "@lucide/vue": "^1.59.0",
169
- "@wirecore/wirelayer-recipes": "^0.7.0",
170
- "@wirecore/wirelayer-tokens": "^0.4.0"
169
+ "@wirecore/wirelayer-recipes": "^0.8.0",
170
+ "@wirecore/wirelayer-tokens": "^0.5.0"
171
171
  },
172
172
  "devDependencies": {
173
173
  "@storybook/addon-a11y": "^10.6.2",