@c2n/framework-types 0.0.9 → 0.0.10

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1.1,
3
- "$comment": "GENERATED by @c2n/framework-types@0.0.9. Do not edit by hand.",
3
+ "$comment": "GENERATED by @c2n/framework-types@0.0.10. Do not edit by hand.",
4
4
  "tags": [
5
5
  {
6
6
  "name": "c2-accordion",
@@ -270,6 +270,30 @@
270
270
  }
271
271
  ]
272
272
  },
273
+ {
274
+ "name": "c2-avatar-group",
275
+ "description": "Responsive stack of `c2-avatar` elements. It observes its rendered width and each avatar's actual size, then hides\nthe avatars that no longer fit and replaces them with a count. The host fills the available inline space up to\n`--c2-avatar-group--max-width`, so it also reacts when its parent becomes narrower.\n\n`@c2n/avatar`",
276
+ "references": [
277
+ {
278
+ "name": "@c2n/avatar on npm",
279
+ "url": "https://www.npmjs.com/package/@c2n/avatar"
280
+ }
281
+ ],
282
+ "attributes": [
283
+ {
284
+ "name": "max-visible",
285
+ "description": "Optional hard cap in addition to the automatically calculated responsive limit. Zero means no hard cap.\n\nDefault: `0`"
286
+ },
287
+ {
288
+ "name": "count-mode",
289
+ "description": "Whether the overflow indicator shows `+hidden` or the total number of avatars.\n\nDefault: `'hidden'`"
290
+ },
291
+ {
292
+ "name": "aria-label",
293
+ "description": "Accessible name for the group.\n\nDefault: `'Avatar group'`"
294
+ }
295
+ ]
296
+ },
273
297
  {
274
298
  "name": "c2-badge",
275
299
  "description": "Small status label: a tinted pill with text, a number or an icon, or a plain dot. Six `tone`s carry meaning\n(neutral, primary, success, warning, danger, info); each is a pair of CSS variables so a design system can recolour\nthem without touching the markup. Give it a `count` to show a number clamped at `max` (`99+`), or `dot` for a\npresence indicator that can `pulse`. Put an element in the `anchor` slot and the badge pins itself to one of its\ncorners (`placement`), for example a notification count on an icon button; `overlap=\"circular\"` moves it onto the\nedge of a round anchor such as an avatar.\n\n`@c2n/badge`",
@@ -314,6 +338,34 @@
314
338
  }
315
339
  ]
316
340
  },
341
+ {
342
+ "name": "c2-border-beam",
343
+ "description": "Decorative overlay that sends one or more soft highlights around the border of its containing block. Place it as\na direct child of a positioned container. The component inherits the container radius and uses a border mask, so\nthe highlight sits on the real border instead of drawing a second, offset outline.\n\n`@c2n/border-beam`",
344
+ "references": [
345
+ {
346
+ "name": "@c2n/border-beam on npm",
347
+ "url": "https://www.npmjs.com/package/@c2n/border-beam"
348
+ }
349
+ ],
350
+ "attributes": [
351
+ {
352
+ "name": "count",
353
+ "description": "Number of beams distributed evenly around the perimeter.\n\nDefault: `1`"
354
+ },
355
+ {
356
+ "name": "side",
357
+ "description": "Border followed by the beam. `all` loops around the perimeter; one edge moves forward then backward.\n\nDefault: `'all'`"
358
+ },
359
+ {
360
+ "name": "reverse",
361
+ "description": "Sends the beams around the perimeter in the opposite direction.\n\nDefault: `false`"
362
+ },
363
+ {
364
+ "name": "paused",
365
+ "description": "Freezes the beams at their current positions.\n\nDefault: `false`"
366
+ }
367
+ ]
368
+ },
317
369
  {
318
370
  "name": "c2-breadcrumb",
319
371
  "description": "Navigation trail. Every light-DOM child is one item, typically a `c2-link-button` with an `href`, and the last one\nis the current page: it is marked `aria-current=\"page\"` (through `selected` on a link button) and styled as text.\nA separator is drawn between items, a chevron by default or whatever is placed in the `separator` slot. The trail\nstays on one row: when the items do not fit the available width, some collapse behind an ellipsis, in priority\norder: the current page is always shown, then the first item, then the items closest to the current page while room\nremains. `max-items` caps how many are shown even when there is room. Clicking the ellipsis reveals every item\n(wrapping if needed).\n\n`@c2n/breadcrumb`",
@@ -2460,6 +2512,82 @@
2460
2512
  }
2461
2513
  ]
2462
2514
  },
2515
+ {
2516
+ "name": "c2-code-editor",
2517
+ "description": "Source-code field built on CodeMirror 6, which is an **optional peer dependency**: nothing is imported until an\neditor mounts, and when the peer is absent the element degrades to a plain `<textarea>` carrying the same value,\nthe same events and the same form behaviour — only without highlighting. Install what you need alongside it:\n\n`@c2n/code-editor`",
2518
+ "references": [
2519
+ {
2520
+ "name": "@c2n/code-editor on npm",
2521
+ "url": "https://www.npmjs.com/package/@c2n/code-editor"
2522
+ }
2523
+ ],
2524
+ "attributes": [
2525
+ {
2526
+ "name": "value",
2527
+ "description": "The source code. Assigning it replaces the document without losing scroll position or undo history.\n\nDefault: `''`"
2528
+ },
2529
+ {
2530
+ "name": "language",
2531
+ "description": "Language id: one of `BUILT_IN_LANGUAGES`, anything `languageLoader` resolves, or empty for no highlighting.\n\nDefault: `''`"
2532
+ },
2533
+ {
2534
+ "name": "name",
2535
+ "description": "Form field name.\n\nDefault: `''`"
2536
+ },
2537
+ {
2538
+ "name": "label",
2539
+ "description": "Label above the editor, when the `label` slot is empty.\n\nDefault: `''`"
2540
+ },
2541
+ {
2542
+ "name": "aria-label",
2543
+ "description": "Accessible name when nothing visible labels the editor.\n\nDefault: `null`"
2544
+ },
2545
+ {
2546
+ "name": "placeholder",
2547
+ "description": "Text shown while the document is empty.\n\nDefault: `''`"
2548
+ },
2549
+ {
2550
+ "name": "readonly",
2551
+ "description": "The document cannot be edited, but is still selectable and focusable.\n\nDefault: `false`"
2552
+ },
2553
+ {
2554
+ "name": "disabled",
2555
+ "description": "Blocks interaction entirely and dims the editor.\n\nDefault: `false`"
2556
+ },
2557
+ {
2558
+ "name": "required",
2559
+ "description": "The form is invalid while the value is empty.\n\nDefault: `false`"
2560
+ },
2561
+ {
2562
+ "name": "line-numbers",
2563
+ "description": "Show the line-number gutter.\n\nDefault: `false`"
2564
+ },
2565
+ {
2566
+ "name": "wrap",
2567
+ "description": "Wrap long lines instead of scrolling horizontally.\n\nDefault: `false`"
2568
+ },
2569
+ {
2570
+ "name": "autocomplete",
2571
+ "description": "Offer completions while typing (identifiers, and whatever the grammar contributes).\n\nDefault: `false`"
2572
+ },
2573
+ {
2574
+ "name": "tab-size",
2575
+ "description": "Width of a tab stop, in characters.\n\nDefault: `2`"
2576
+ },
2577
+ {
2578
+ "name": "error",
2579
+ "description": "Renders the error styling; `error-text` replaces the supporting text.\n\nDefault: `false`"
2580
+ },
2581
+ {
2582
+ "name": "error-text",
2583
+ "description": "Message shown in place of the supporting text while `error` is set.\n\nDefault: `''`"
2584
+ },
2585
+ {
2586
+ "name": "help",
2587
+ "description": "Help text under the editor, when the `supporting-text` slot is empty.\n\nDefault: `''`"
2588
+ }
2589
+ ]
2590
+ },
2463
2591
  {
2464
2592
  "name": "c2-code-viewer",
2465
2593
  "description": "Syntax-highlighted source code powered by shiki. Grammars and themes are loaded on demand into one shared\nhighlighter, so many viewers on a page cost one engine. The raw code renders immediately as plain text (also on the\nserver) and is upgraded in place once highlighted.\n\n`@c2n/code-viewer`",
@@ -31586,6 +31714,66 @@
31586
31714
  }
31587
31715
  ]
31588
31716
  },
31717
+ {
31718
+ "name": "c2-step",
31719
+ "description": "One row of a Steps list: a marker, a label with optional dimmed `detail`, and `trailing` text at the end\nof the row — a duration, a count, a timestamp.\n\n`@c2n/steps`",
31720
+ "references": [
31721
+ {
31722
+ "name": "@c2n/steps on npm",
31723
+ "url": "https://www.npmjs.com/package/@c2n/steps"
31724
+ }
31725
+ ],
31726
+ "attributes": [
31727
+ {
31728
+ "name": "status",
31729
+ "description": "State of the step. Drives the marker glyph and the accent colour, and reopens a folded group.\n\nDefault: `'pending'`"
31730
+ },
31731
+ {
31732
+ "name": "label",
31733
+ "description": "Primary text, when the `label` slot is empty.\n\nDefault: `''`"
31734
+ },
31735
+ {
31736
+ "name": "detail",
31737
+ "description": "Dimmed secondary text beside the label, when the `detail` slot is empty.\n\nDefault: `''`"
31738
+ },
31739
+ {
31740
+ "name": "trailing",
31741
+ "description": "Text at the end of the row, when the `trailing` slot is empty.\n\nDefault: `''`"
31742
+ },
31743
+ {
31744
+ "name": "collapsed",
31745
+ "description": "Whether this group is folded away. A group is expanded by default — every step in the list is a row you can\nsee — and only the reader, the markup or a reopening status ever changes that.\n\nDefault: `false`"
31746
+ }
31747
+ ]
31748
+ },
31749
+ {
31750
+ "name": "c2-steps",
31751
+ "description": "A vertical list of steps: the trace of a task as it runs, or a wizard's progress. Each row is a marker, a label,\nan optional dimmed `detail` beside it and `trailing` text at the end — a duration, a count, a timestamp.\n\n`@c2n/steps`",
31752
+ "references": [
31753
+ {
31754
+ "name": "@c2n/steps on npm",
31755
+ "url": "https://www.npmjs.com/package/@c2n/steps"
31756
+ }
31757
+ ],
31758
+ "attributes": [
31759
+ {
31760
+ "name": "marker",
31761
+ "description": "How each marker is drawn: a status glyph, the step's number, or nothing.\n\nDefault: `'icon'`"
31762
+ },
31763
+ {
31764
+ "name": "current",
31765
+ "description": "Index of the active step, for a wizard. `-1` (the default) leaves every status alone; otherwise a top-level\nstep with neither an explicit `status` nor sub-steps becomes `success` before this index, `current` at it and\n`pending` after it.\n\nDefault: `-1`"
31766
+ },
31767
+ {
31768
+ "name": "steps",
31769
+ "description": "The steps as data, instead of `c2-step` children. Takes precedence over the slot.\n\nDefault: `undefined`"
31770
+ },
31771
+ {
31772
+ "name": "aria-label",
31773
+ "description": "Accessible name for the list.\n\nDefault: `null`"
31774
+ }
31775
+ ]
31776
+ },
31589
31777
  {
31590
31778
  "name": "c2-switch",
31591
31779
  "description": "On/off toggle built on a native `<input type=\"checkbox\" role=\"switch\">`, so keyboard activation (Space), form value\nand the `switch` role come from the browser. The thumb can also be dragged: it follows the pointer and the side it is\nreleased on decides the state. The whole row is the label: text in the default slot and an optional `description`\nsit beside the track, and clicking them toggles it. Icons for either state can ride inside the thumb.\n\n`@c2n/switch`",
@@ -32123,6 +32311,81 @@
32123
32311
  }
32124
32312
  ]
32125
32313
  },
32314
+ {
32315
+ "name": "c2-theme-select",
32316
+ "description": "Colour-theme switcher. The trigger shows the icon of the mode currently in effect and clicking it steps to the next\none, wrapping around — a two-state control is therefore a plain light/dark toggle. With three or more modes the\ntrigger also opens a menu on hover (or focus, or ArrowDown) so any mode can be picked directly, while the click-to-\nadvance behaviour keeps working.\n\n`@c2n/theme-select`",
32317
+ "references": [
32318
+ {
32319
+ "name": "@c2n/theme-select on npm",
32320
+ "url": "https://www.npmjs.com/package/@c2n/theme-select"
32321
+ }
32322
+ ],
32323
+ "attributes": [
32324
+ {
32325
+ "name": "modes",
32326
+ "description": "The states to cycle through: `\"system,light,dark\"`, a JSON array, or objects from script.\n\nDefault: `['system', 'light', 'dark']`"
32327
+ },
32328
+ {
32329
+ "name": "value",
32330
+ "description": "The mode in effect. Assigning it selects that mode silently; `select()` and `next()` report the change.\n\nDefault: `''`"
32331
+ },
32332
+ {
32333
+ "name": "menu",
32334
+ "description": "When to offer the dropdown: `auto` (three or more modes), `always`, or `never`.\n\nDefault: `'auto'`",
32335
+ "values": [
32336
+ {
32337
+ "name": "auto"
32338
+ },
32339
+ {
32340
+ "name": "always"
32341
+ },
32342
+ {
32343
+ "name": "never"
32344
+ }
32345
+ ]
32346
+ },
32347
+ {
32348
+ "name": "placement",
32349
+ "description": "Preferred placement of the menu (floating-ui names).\n\nDefault: `'bottom'`"
32350
+ },
32351
+ {
32352
+ "name": "show-label",
32353
+ "description": "Show the current mode's label beside its icon.\n\nDefault: `false`"
32354
+ },
32355
+ {
32356
+ "name": "disabled",
32357
+ "description": "Blocks interaction and dims the control.\n\nDefault: `false`"
32358
+ },
32359
+ {
32360
+ "name": "manual",
32361
+ "description": "Do not touch the document or storage; the host applies the theme itself from `theme-change`.\n\nDefault: `false`"
32362
+ },
32363
+ {
32364
+ "name": "target",
32365
+ "description": "Element the scheme is written to, or the id of one. Defaults to `<html>`.\n\nDefault: `undefined`"
32366
+ },
32367
+ {
32368
+ "name": "theme-attribute",
32369
+ "description": "Attribute written on the target, `data-theme` by default.\n\nDefault: `'data-theme'`"
32370
+ },
32371
+ {
32372
+ "name": "storage-key",
32373
+ "description": "`localStorage` key the chosen mode is remembered under. Empty disables persistence.\n\nDefault: `'c2n-theme'`"
32374
+ },
32375
+ {
32376
+ "name": "open-delay",
32377
+ "description": "Milliseconds the pointer must rest on the trigger before the menu opens.\n\nDefault: `150`"
32378
+ },
32379
+ {
32380
+ "name": "close-delay",
32381
+ "description": "Milliseconds the menu stays open after the pointer leaves, so it can be crossed into.\n\nDefault: `200`"
32382
+ },
32383
+ {
32384
+ "name": "aria-label",
32385
+ "description": "Accessible name of the trigger. Defaults to `Theme: <current label>`."
32386
+ }
32387
+ ]
32388
+ },
32126
32389
  {
32127
32390
  "name": "c2-toast",
32128
32391
  "description": "A notification card. Use c2-toast-region to manage stacking, queueing and timed dismissal.\n\n`@c2n/toast`",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@c2n/framework-types",
4
- "version": "0.0.9",
4
+ "version": "0.0.10",
5
5
  "description": "GENERATED by @c2n/framework-types. Do not edit by hand.",
6
6
  "description-markup": "markdown",
7
7
  "contributions": {
@@ -650,6 +650,77 @@
650
650
  ]
651
651
  }
652
652
  },
653
+ {
654
+ "name": "c2-avatar-group",
655
+ "description": "Responsive stack of `c2-avatar` elements. It observes its rendered width and each avatar's actual size, then hides\nthe avatars that no longer fit and replaces them with a count. The host fills the available inline space up to\n`--c2-avatar-group--max-width`, so it also reacts when its parent becomes narrower.\n\n`@c2n/avatar`",
656
+ "attributes": [
657
+ {
658
+ "name": "max-visible",
659
+ "description": "Optional hard cap in addition to the automatically calculated responsive limit. Zero means no hard cap.",
660
+ "default": "0",
661
+ "value": {
662
+ "type": "number",
663
+ "kind": "expression"
664
+ }
665
+ },
666
+ {
667
+ "name": "count-mode",
668
+ "description": "Whether the overflow indicator shows `+hidden` or the total number of avatars.",
669
+ "default": "'hidden'",
670
+ "value": {
671
+ "type": "AvatarGroupCountMode",
672
+ "kind": "expression"
673
+ }
674
+ },
675
+ {
676
+ "name": "aria-label",
677
+ "description": "Accessible name for the group.",
678
+ "default": "'Avatar group'",
679
+ "value": {
680
+ "type": "string",
681
+ "kind": "expression"
682
+ }
683
+ }
684
+ ],
685
+ "js": {
686
+ "properties": [
687
+ {
688
+ "name": "maxVisible",
689
+ "description": "Optional hard cap in addition to the automatically calculated responsive limit. Zero means no hard cap.",
690
+ "value": {
691
+ "type": "number",
692
+ "kind": "expression"
693
+ }
694
+ },
695
+ {
696
+ "name": "countMode",
697
+ "description": "Whether the overflow indicator shows `+hidden` or the total number of avatars.",
698
+ "value": {
699
+ "type": "AvatarGroupCountMode",
700
+ "kind": "expression"
701
+ }
702
+ },
703
+ {
704
+ "name": "ariaLabel",
705
+ "description": "Accessible name for the group.",
706
+ "value": {
707
+ "type": "string",
708
+ "kind": "expression"
709
+ }
710
+ }
711
+ ],
712
+ "events": [
713
+ {
714
+ "name": "overflow-change",
715
+ "description": "Fired when resizing changes the visible or hidden counts.",
716
+ "value": {
717
+ "type": "CustomEvent<AvatarGroupOverflowDetail>",
718
+ "kind": "expression"
719
+ }
720
+ }
721
+ ]
722
+ }
723
+ },
653
724
  {
654
725
  "name": "c2-badge",
655
726
  "description": "Small status label: a tinted pill with text, a number or an icon, or a plain dot. Six `tone`s carry meaning\n(neutral, primary, success, warning, danger, info); each is a pair of CSS variables so a design system can recolour\nthem without touching the markup. Give it a `count` to show a number clamped at `max` (`99+`), or `dot` for a\npresence indicator that can `pulse`. Put an element in the `anchor` slot and the badge pins itself to one of its\ncorners (`placement`), for example a notification count on an icon button; `overlap=\"circular\"` moves it onto the\nedge of a round anchor such as an avatar.\n\n`@c2n/badge`",
@@ -741,6 +812,52 @@
741
812
  "events": []
742
813
  }
743
814
  },
815
+ {
816
+ "name": "c2-border-beam",
817
+ "description": "Decorative overlay that sends one or more soft highlights around the border of its containing block. Place it as\na direct child of a positioned container. The component inherits the container radius and uses a border mask, so\nthe highlight sits on the real border instead of drawing a second, offset outline.\n\n`@c2n/border-beam`",
818
+ "attributes": [
819
+ {
820
+ "name": "count",
821
+ "description": "Number of beams distributed evenly around the perimeter.",
822
+ "default": "1",
823
+ "value": {
824
+ "type": "number",
825
+ "kind": "expression"
826
+ }
827
+ },
828
+ {
829
+ "name": "side",
830
+ "description": "Border followed by the beam. `all` loops around the perimeter; one edge moves forward then backward.",
831
+ "default": "'all'",
832
+ "value": {
833
+ "type": "BorderBeamSide",
834
+ "kind": "expression"
835
+ }
836
+ },
837
+ {
838
+ "name": "reverse",
839
+ "description": "Sends the beams around the perimeter in the opposite direction.",
840
+ "default": "false",
841
+ "value": {
842
+ "type": "boolean",
843
+ "kind": "expression"
844
+ }
845
+ },
846
+ {
847
+ "name": "paused",
848
+ "description": "Freezes the beams at their current positions.",
849
+ "default": "false",
850
+ "value": {
851
+ "type": "boolean",
852
+ "kind": "expression"
853
+ }
854
+ }
855
+ ],
856
+ "js": {
857
+ "properties": [],
858
+ "events": []
859
+ }
860
+ },
744
861
  {
745
862
  "name": "c2-breadcrumb",
746
863
  "description": "Navigation trail. Every light-DOM child is one item, typically a `c2-link-button` with an `href`, and the last one\nis the current page: it is marked `aria-current=\"page\"` (through `selected` on a link button) and styled as text.\nA separator is drawn between items, a chevron by default or whatever is placed in the `separator` slot. The trail\nstays on one row: when the items do not fit the available width, some collapse behind an ellipsis, in priority\norder: the current page is always shown, then the first item, then the items closest to the current page while room\nremains. `max-items` caps how many are shown even when there is room. Clicking the ellipsis reveals every item\n(wrapping if needed).\n\n`@c2n/breadcrumb`",
@@ -4794,6 +4911,226 @@
4794
4911
  ]
4795
4912
  }
4796
4913
  },
4914
+ {
4915
+ "name": "c2-code-editor",
4916
+ "description": "Source-code field built on CodeMirror 6, which is an **optional peer dependency**: nothing is imported until an\neditor mounts, and when the peer is absent the element degrades to a plain `<textarea>` carrying the same value,\nthe same events and the same form behaviour — only without highlighting. Install what you need alongside it:\n\n`@c2n/code-editor`",
4917
+ "attributes": [
4918
+ {
4919
+ "name": "value",
4920
+ "description": "The source code. Assigning it replaces the document without losing scroll position or undo history.",
4921
+ "default": "''",
4922
+ "value": {
4923
+ "type": "string",
4924
+ "kind": "expression"
4925
+ }
4926
+ },
4927
+ {
4928
+ "name": "language",
4929
+ "description": "Language id: one of `BUILT_IN_LANGUAGES`, anything `languageLoader` resolves, or empty for no highlighting.",
4930
+ "default": "''",
4931
+ "value": {
4932
+ "type": "string",
4933
+ "kind": "expression"
4934
+ }
4935
+ },
4936
+ {
4937
+ "name": "name",
4938
+ "description": "Form field name.",
4939
+ "default": "''",
4940
+ "value": {
4941
+ "type": "string",
4942
+ "kind": "expression"
4943
+ }
4944
+ },
4945
+ {
4946
+ "name": "label",
4947
+ "description": "Label above the editor, when the `label` slot is empty.",
4948
+ "default": "''",
4949
+ "value": {
4950
+ "type": "string",
4951
+ "kind": "expression"
4952
+ }
4953
+ },
4954
+ {
4955
+ "name": "aria-label",
4956
+ "description": "Accessible name when nothing visible labels the editor.",
4957
+ "default": "null",
4958
+ "value": {
4959
+ "type": "string | null",
4960
+ "kind": "expression"
4961
+ }
4962
+ },
4963
+ {
4964
+ "name": "placeholder",
4965
+ "description": "Text shown while the document is empty.",
4966
+ "default": "''",
4967
+ "value": {
4968
+ "type": "string",
4969
+ "kind": "expression"
4970
+ }
4971
+ },
4972
+ {
4973
+ "name": "readonly",
4974
+ "description": "The document cannot be edited, but is still selectable and focusable.",
4975
+ "default": "false",
4976
+ "value": {
4977
+ "type": "boolean",
4978
+ "kind": "expression"
4979
+ }
4980
+ },
4981
+ {
4982
+ "name": "disabled",
4983
+ "description": "Blocks interaction entirely and dims the editor.",
4984
+ "default": "false",
4985
+ "value": {
4986
+ "type": "boolean",
4987
+ "kind": "expression"
4988
+ }
4989
+ },
4990
+ {
4991
+ "name": "required",
4992
+ "description": "The form is invalid while the value is empty.",
4993
+ "default": "false",
4994
+ "value": {
4995
+ "type": "boolean",
4996
+ "kind": "expression"
4997
+ }
4998
+ },
4999
+ {
5000
+ "name": "line-numbers",
5001
+ "description": "Show the line-number gutter.",
5002
+ "default": "false",
5003
+ "value": {
5004
+ "type": "boolean",
5005
+ "kind": "expression"
5006
+ }
5007
+ },
5008
+ {
5009
+ "name": "wrap",
5010
+ "description": "Wrap long lines instead of scrolling horizontally.",
5011
+ "default": "false",
5012
+ "value": {
5013
+ "type": "boolean",
5014
+ "kind": "expression"
5015
+ }
5016
+ },
5017
+ {
5018
+ "name": "autocomplete",
5019
+ "description": "Offer completions while typing (identifiers, and whatever the grammar contributes).",
5020
+ "default": "false",
5021
+ "value": {
5022
+ "type": "boolean",
5023
+ "kind": "expression"
5024
+ }
5025
+ },
5026
+ {
5027
+ "name": "tab-size",
5028
+ "description": "Width of a tab stop, in characters.",
5029
+ "default": "2",
5030
+ "value": {
5031
+ "type": "number",
5032
+ "kind": "expression"
5033
+ }
5034
+ },
5035
+ {
5036
+ "name": "error",
5037
+ "description": "Renders the error styling; `error-text` replaces the supporting text.",
5038
+ "default": "false",
5039
+ "value": {
5040
+ "type": "boolean",
5041
+ "kind": "expression"
5042
+ }
5043
+ },
5044
+ {
5045
+ "name": "error-text",
5046
+ "description": "Message shown in place of the supporting text while `error` is set.",
5047
+ "default": "''",
5048
+ "value": {
5049
+ "type": "string",
5050
+ "kind": "expression"
5051
+ }
5052
+ },
5053
+ {
5054
+ "name": "help",
5055
+ "description": "Help text under the editor, when the `supporting-text` slot is empty.",
5056
+ "default": "''",
5057
+ "value": {
5058
+ "type": "string",
5059
+ "kind": "expression"
5060
+ }
5061
+ }
5062
+ ],
5063
+ "js": {
5064
+ "properties": [
5065
+ {
5066
+ "name": "ariaLabel",
5067
+ "description": "Accessible name when nothing visible labels the editor.",
5068
+ "value": {
5069
+ "type": "string | null",
5070
+ "kind": "expression"
5071
+ }
5072
+ },
5073
+ {
5074
+ "name": "readOnly",
5075
+ "description": "The document cannot be edited, but is still selectable and focusable.",
5076
+ "value": {
5077
+ "type": "boolean",
5078
+ "kind": "expression"
5079
+ }
5080
+ },
5081
+ {
5082
+ "name": "lineNumbers",
5083
+ "description": "Show the line-number gutter.",
5084
+ "value": {
5085
+ "type": "boolean",
5086
+ "kind": "expression"
5087
+ }
5088
+ },
5089
+ {
5090
+ "name": "tabSize",
5091
+ "description": "Width of a tab stop, in characters.",
5092
+ "value": {
5093
+ "type": "number",
5094
+ "kind": "expression"
5095
+ }
5096
+ },
5097
+ {
5098
+ "name": "errorText",
5099
+ "description": "Message shown in place of the supporting text while `error` is set.",
5100
+ "value": {
5101
+ "type": "string",
5102
+ "kind": "expression"
5103
+ }
5104
+ }
5105
+ ],
5106
+ "events": [
5107
+ {
5108
+ "name": "ready",
5109
+ "description": "The engine settled, so tests and hosts can wait for it. Does not bubble.",
5110
+ "value": {
5111
+ "type": "CustomEvent<{ engine: 'codemirror' | 'basic' }>",
5112
+ "kind": "expression"
5113
+ }
5114
+ },
5115
+ {
5116
+ "name": "input",
5117
+ "description": "The document changed. Fires on every edit.",
5118
+ "value": {
5119
+ "type": "Event",
5120
+ "kind": "expression"
5121
+ }
5122
+ },
5123
+ {
5124
+ "name": "change",
5125
+ "description": "The value was committed: the editor lost focus after an edit, as a native control does.",
5126
+ "value": {
5127
+ "type": "Event",
5128
+ "kind": "expression"
5129
+ }
5130
+ }
5131
+ ]
5132
+ }
5133
+ },
4797
5134
  {
4798
5135
  "name": "c2-code-viewer",
4799
5136
  "description": "Syntax-highlighted source code powered by shiki. Grammars and themes are loaded on demand into one shared\nhighlighter, so many viewers on a page cost one engine. The raw code renders immediately as plain text (also on the\nserver) and is upgraded in place once highlighted.\n\n`@c2n/code-viewer`",
@@ -40290,6 +40627,134 @@
40290
40627
  "events": []
40291
40628
  }
40292
40629
  },
40630
+ {
40631
+ "name": "c2-step",
40632
+ "description": "One row of a Steps list: a marker, a label with optional dimmed `detail`, and `trailing` text at the end\nof the row — a duration, a count, a timestamp.\n\n`@c2n/steps`",
40633
+ "attributes": [
40634
+ {
40635
+ "name": "status",
40636
+ "description": "State of the step. Drives the marker glyph and the accent colour, and reopens a folded group.",
40637
+ "default": "'pending'",
40638
+ "value": {
40639
+ "type": "StepStatus",
40640
+ "kind": "expression"
40641
+ }
40642
+ },
40643
+ {
40644
+ "name": "label",
40645
+ "description": "Primary text, when the `label` slot is empty.",
40646
+ "default": "''",
40647
+ "value": {
40648
+ "type": "string",
40649
+ "kind": "expression"
40650
+ }
40651
+ },
40652
+ {
40653
+ "name": "detail",
40654
+ "description": "Dimmed secondary text beside the label, when the `detail` slot is empty.",
40655
+ "default": "''",
40656
+ "value": {
40657
+ "type": "string",
40658
+ "kind": "expression"
40659
+ }
40660
+ },
40661
+ {
40662
+ "name": "trailing",
40663
+ "description": "Text at the end of the row, when the `trailing` slot is empty.",
40664
+ "default": "''",
40665
+ "value": {
40666
+ "type": "string",
40667
+ "kind": "expression"
40668
+ }
40669
+ },
40670
+ {
40671
+ "name": "collapsed",
40672
+ "description": "Whether this group is folded away. A group is expanded by default — every step in the list is a row you can\nsee — and only the reader, the markup or a reopening status ever changes that.",
40673
+ "default": "false",
40674
+ "value": {
40675
+ "type": "boolean",
40676
+ "kind": "expression"
40677
+ }
40678
+ }
40679
+ ],
40680
+ "js": {
40681
+ "properties": [],
40682
+ "events": [
40683
+ {
40684
+ "name": "step-toggle",
40685
+ "description": "A group was folded away or brought back. Bubbles.",
40686
+ "value": {
40687
+ "type": "CustomEvent<StepToggleEventDetail>",
40688
+ "kind": "expression"
40689
+ }
40690
+ }
40691
+ ]
40692
+ }
40693
+ },
40694
+ {
40695
+ "name": "c2-steps",
40696
+ "description": "A vertical list of steps: the trace of a task as it runs, or a wizard's progress. Each row is a marker, a label,\nan optional dimmed `detail` beside it and `trailing` text at the end — a duration, a count, a timestamp.\n\n`@c2n/steps`",
40697
+ "attributes": [
40698
+ {
40699
+ "name": "marker",
40700
+ "description": "How each marker is drawn: a status glyph, the step's number, or nothing.",
40701
+ "default": "'icon'",
40702
+ "value": {
40703
+ "type": "StepsMarker",
40704
+ "kind": "expression"
40705
+ }
40706
+ },
40707
+ {
40708
+ "name": "current",
40709
+ "description": "Index of the active step, for a wizard. `-1` (the default) leaves every status alone; otherwise a top-level\nstep with neither an explicit `status` nor sub-steps becomes `success` before this index, `current` at it and\n`pending` after it.",
40710
+ "default": "-1",
40711
+ "value": {
40712
+ "type": "number",
40713
+ "kind": "expression"
40714
+ }
40715
+ },
40716
+ {
40717
+ "name": "steps",
40718
+ "description": "The steps as data, instead of `c2-step` children. Takes precedence over the slot.",
40719
+ "default": "undefined",
40720
+ "value": {
40721
+ "type": "StepNode[] | undefined",
40722
+ "kind": "expression"
40723
+ }
40724
+ },
40725
+ {
40726
+ "name": "aria-label",
40727
+ "description": "Accessible name for the list.",
40728
+ "default": "null",
40729
+ "value": {
40730
+ "type": "string | null",
40731
+ "kind": "expression"
40732
+ }
40733
+ }
40734
+ ],
40735
+ "js": {
40736
+ "properties": [
40737
+ {
40738
+ "name": "ariaLabel",
40739
+ "description": "Accessible name for the list.",
40740
+ "value": {
40741
+ "type": "string | null",
40742
+ "kind": "expression"
40743
+ }
40744
+ }
40745
+ ],
40746
+ "events": [
40747
+ {
40748
+ "name": "step-toggle",
40749
+ "description": "Fired by a `c2-step` when a group opens or closes, and bubbling to here. `event.target` is the step; `detail.path` says where it sits.",
40750
+ "value": {
40751
+ "type": "CustomEvent<StepToggleEventDetail>",
40752
+ "kind": "expression"
40753
+ }
40754
+ }
40755
+ ]
40756
+ }
40757
+ },
40293
40758
  {
40294
40759
  "name": "c2-switch",
40295
40760
  "description": "On/off toggle built on a native `<input type=\"checkbox\" role=\"switch\">`, so keyboard activation (Space), form value\nand the `switch` role come from the browser. The thumb can also be dragged: it follows the pointer and the side it is\nreleased on decides the state. The whole row is the label: text in the default slot and an optional `description`\nsit beside the track, and clicking them toggles it. Icons for either state can ride inside the thumb.\n\n`@c2n/switch`",
@@ -41676,6 +42141,190 @@
41676
42141
  ]
41677
42142
  }
41678
42143
  },
42144
+ {
42145
+ "name": "c2-theme-select",
42146
+ "description": "Colour-theme switcher. The trigger shows the icon of the mode currently in effect and clicking it steps to the next\none, wrapping around — a two-state control is therefore a plain light/dark toggle. With three or more modes the\ntrigger also opens a menu on hover (or focus, or ArrowDown) so any mode can be picked directly, while the click-to-\nadvance behaviour keeps working.\n\n`@c2n/theme-select`",
42147
+ "attributes": [
42148
+ {
42149
+ "name": "modes",
42150
+ "description": "The states to cycle through: `\"system,light,dark\"`, a JSON array, or objects from script.",
42151
+ "default": "['system', 'light', 'dark']",
42152
+ "value": {
42153
+ "type": "Array<string | ThemeSelectMode>",
42154
+ "kind": "expression"
42155
+ }
42156
+ },
42157
+ {
42158
+ "name": "value",
42159
+ "description": "The mode in effect. Assigning it selects that mode silently; `select()` and `next()` report the change.",
42160
+ "default": "''",
42161
+ "value": {
42162
+ "type": "string",
42163
+ "kind": "expression"
42164
+ }
42165
+ },
42166
+ {
42167
+ "name": "menu",
42168
+ "description": "When to offer the dropdown: `auto` (three or more modes), `always`, or `never`.",
42169
+ "default": "'auto'",
42170
+ "value": {
42171
+ "type": "'auto' | 'always' | 'never'",
42172
+ "kind": "expression"
42173
+ }
42174
+ },
42175
+ {
42176
+ "name": "placement",
42177
+ "description": "Preferred placement of the menu (floating-ui names).",
42178
+ "default": "'bottom'",
42179
+ "value": {
42180
+ "type": "Placement",
42181
+ "kind": "expression"
42182
+ }
42183
+ },
42184
+ {
42185
+ "name": "show-label",
42186
+ "description": "Show the current mode's label beside its icon.",
42187
+ "default": "false",
42188
+ "value": {
42189
+ "type": "boolean",
42190
+ "kind": "expression"
42191
+ }
42192
+ },
42193
+ {
42194
+ "name": "disabled",
42195
+ "description": "Blocks interaction and dims the control.",
42196
+ "default": "false",
42197
+ "value": {
42198
+ "type": "boolean",
42199
+ "kind": "expression"
42200
+ }
42201
+ },
42202
+ {
42203
+ "name": "manual",
42204
+ "description": "Do not touch the document or storage; the host applies the theme itself from `theme-change`.",
42205
+ "default": "false",
42206
+ "value": {
42207
+ "type": "boolean",
42208
+ "kind": "expression"
42209
+ }
42210
+ },
42211
+ {
42212
+ "name": "target",
42213
+ "description": "Element the scheme is written to, or the id of one. Defaults to `<html>`.",
42214
+ "default": "undefined",
42215
+ "value": {
42216
+ "type": "string | HTMLElement | undefined",
42217
+ "kind": "expression"
42218
+ }
42219
+ },
42220
+ {
42221
+ "name": "theme-attribute",
42222
+ "description": "Attribute written on the target, `data-theme` by default.",
42223
+ "default": "'data-theme'",
42224
+ "value": {
42225
+ "type": "string",
42226
+ "kind": "expression"
42227
+ }
42228
+ },
42229
+ {
42230
+ "name": "storage-key",
42231
+ "description": "`localStorage` key the chosen mode is remembered under. Empty disables persistence.",
42232
+ "default": "'c2n-theme'",
42233
+ "value": {
42234
+ "type": "string",
42235
+ "kind": "expression"
42236
+ }
42237
+ },
42238
+ {
42239
+ "name": "open-delay",
42240
+ "description": "Milliseconds the pointer must rest on the trigger before the menu opens.",
42241
+ "default": "150",
42242
+ "value": {
42243
+ "type": "number",
42244
+ "kind": "expression"
42245
+ }
42246
+ },
42247
+ {
42248
+ "name": "close-delay",
42249
+ "description": "Milliseconds the menu stays open after the pointer leaves, so it can be crossed into.",
42250
+ "default": "200",
42251
+ "value": {
42252
+ "type": "number",
42253
+ "kind": "expression"
42254
+ }
42255
+ },
42256
+ {
42257
+ "name": "aria-label",
42258
+ "description": "Accessible name of the trigger. Defaults to `Theme: <current label>`.",
42259
+ "value": {
42260
+ "type": "string",
42261
+ "kind": "expression"
42262
+ }
42263
+ }
42264
+ ],
42265
+ "js": {
42266
+ "properties": [
42267
+ {
42268
+ "name": "showLabel",
42269
+ "description": "Show the current mode's label beside its icon.",
42270
+ "value": {
42271
+ "type": "boolean",
42272
+ "kind": "expression"
42273
+ }
42274
+ },
42275
+ {
42276
+ "name": "themeAttribute",
42277
+ "description": "Attribute written on the target, `data-theme` by default.",
42278
+ "value": {
42279
+ "type": "string",
42280
+ "kind": "expression"
42281
+ }
42282
+ },
42283
+ {
42284
+ "name": "storageKey",
42285
+ "description": "`localStorage` key the chosen mode is remembered under. Empty disables persistence.",
42286
+ "value": {
42287
+ "type": "string",
42288
+ "kind": "expression"
42289
+ }
42290
+ },
42291
+ {
42292
+ "name": "openDelay",
42293
+ "description": "Milliseconds the pointer must rest on the trigger before the menu opens.",
42294
+ "value": {
42295
+ "type": "number",
42296
+ "kind": "expression"
42297
+ }
42298
+ },
42299
+ {
42300
+ "name": "closeDelay",
42301
+ "description": "Milliseconds the menu stays open after the pointer leaves, so it can be crossed into.",
42302
+ "value": {
42303
+ "type": "number",
42304
+ "kind": "expression"
42305
+ }
42306
+ },
42307
+ {
42308
+ "name": "ariaLabel",
42309
+ "description": "Accessible name of the trigger. Defaults to `Theme: <current label>`.",
42310
+ "value": {
42311
+ "type": "string",
42312
+ "kind": "expression"
42313
+ }
42314
+ }
42315
+ ],
42316
+ "events": [
42317
+ {
42318
+ "name": "theme-change",
42319
+ "description": "The scheme in effect changed: a mode was picked, or the OS preference moved while `system` was selected. `detail.value` is the mode, `detail.theme` the scheme it resolves to. Does not bubble; assigning `value` from script is silent.",
42320
+ "value": {
42321
+ "type": "CustomEvent<ThemeSelectChangeDetail>",
42322
+ "kind": "expression"
42323
+ }
42324
+ }
42325
+ ]
42326
+ }
42327
+ },
41679
42328
  {
41680
42329
  "name": "c2-toast",
41681
42330
  "description": "A notification card. Use c2-toast-region to manage stacking, queueing and timed dismissal.\n\n`@c2n/toast`",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c2n/framework-types",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "Editor metadata for the c2n web components: VS Code / Volar HTML custom data and JetBrains web-types, generated from the custom-elements manifests",
5
5
  "type": "module",
6
6
  "exports": {
@@ -51,5 +51,5 @@
51
51
  "command": "node scripts/framework-types/index.ts"
52
52
  }
53
53
  },
54
- "gitHead": "e4768cce5e0fbd5bc3165cd493a1e8d57cf0fff4"
54
+ "gitHead": "8d57710b3345fcb01cdb4cb15d2d43ba8bf21642"
55
55
  }
package/tsconfig.vue.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$comment": "GENERATED by @c2n/framework-types@0.0.9. Do not edit by hand. Add to a Vue app's tsconfig: \"extends\": [\"@c2n/config/tsconfig.lib.json\", \"@c2n/framework-types/tsconfig.vue.json\"] — and declare no \"vueCompilerOptions\" of your own, because a local one replaces the inherited object rather than merging with it.",
2
+ "$comment": "GENERATED by @c2n/framework-types@0.0.10. Do not edit by hand. Add to a Vue app's tsconfig: \"extends\": [\"@c2n/config/tsconfig.lib.json\", \"@c2n/framework-types/tsconfig.vue.json\"] — and declare no \"vueCompilerOptions\" of your own, because a local one replaces the inherited object rather than merging with it.",
3
3
  "vueCompilerOptions": {
4
4
  "strictTemplates": true,
5
5
  "experimentalModelPropName": {
@@ -15,6 +15,7 @@
15
15
  "c2-autocomplete": true,
16
16
  "c2-cascader": true,
17
17
  "c2-chat-input": true,
18
+ "c2-code-editor": true,
18
19
  "c2-date-input": true,
19
20
  "c2-number-input": true,
20
21
  "c2-radio-group": true,