@kubex/zinc 1.1.115 → 1.1.116

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.
@@ -13,17 +13,6 @@
13
13
  }
14
14
  ]
15
15
  },
16
- {
17
- "name": "zn-action-bar",
18
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
19
- "attributes": [],
20
- "references": [
21
- {
22
- "name": "Documentation",
23
- "url": "https://zinc.style/components/action-bar"
24
- }
25
- ]
26
- },
27
16
  {
28
17
  "name": "zn-alert",
29
18
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -64,6 +53,17 @@
64
53
  }
65
54
  ]
66
55
  },
56
+ {
57
+ "name": "zn-action-bar",
58
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
59
+ "attributes": [],
60
+ "references": [
61
+ {
62
+ "name": "Documentation",
63
+ "url": "https://zinc.style/components/action-bar"
64
+ }
65
+ ]
66
+ },
67
67
  {
68
68
  "name": "zn-animated-button",
69
69
  "description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
@@ -1952,7 +1952,7 @@
1952
1952
  },
1953
1953
  {
1954
1954
  "name": "zn-header",
1955
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
1955
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header-right** - The container that wraps the actions slot.",
1956
1956
  "attributes": [
1957
1957
  { "name": "full-location", "values": [] },
1958
1958
  { "name": "entity-id", "values": [] },
@@ -3847,7 +3847,7 @@
3847
3847
  },
3848
3848
  {
3849
3849
  "name": "zn-select",
3850
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the control's value changes.\n- **zn-clear** - Emitted when the control's value is cleared.\n- **zn-input** - Emitted when the control receives input.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-blur** - Emitted when the control loses focus.\n- **zn-show** - Emitted when the select's menu opens.\n- **zn-after-show** - Emitted after the select's menu opens and all animations are complete.\n- **zn-hide** - Emitted when the select's menu closes.\n- **zn-after-hide** - Emitted after the select's menu closes and all animations are complete.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-load** - Emitted when options have been successfully loaded from the `src` URL.\n- **zn-error** - Emitted when loading options from the `src` URL fails.\n\n### **Methods:**\n - **fetchOptions(searchQuery: _string_)** - Fetches options from the URL specified by the `data-uri` property. Optionally appends a search query.\n- **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the control.\n- **blur()** - Removes focus from the control.\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<zn-option>` elements. You can use `<zn-opt-group>` to group options under a labeled header, or `<zn-divider>` to group items visually.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **expand-icon** - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **search-loading** - The container shown while a remote search request is in flight.\n- **max-results-indicator** - The message shown when results are truncated by `max-results`.\n- **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **tags** - The container that houses option tags when `multiselect` is used.\n- **tag** - The individual tags that represent each multiselect option.\n- **tag__base** - The tag's base part.\n- **tag__content** - The tag's content part.\n- **tag__remove-button** - The tag's remove button.\n- **tag__remove-button__base** - The tag's remove button base part.\n- **clear-button** - The clear button.\n- **expand-icon** - The container that wraps the expand icon.",
3850
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the control's value changes.\n- **zn-clear** - Emitted when the control's value is cleared.\n- **zn-input** - Emitted when the control receives input.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-blur** - Emitted when the control loses focus.\n- **zn-show** - Emitted when the select's menu opens.\n- **zn-after-show** - Emitted after the select's menu opens and all animations are complete.\n- **zn-hide** - Emitted when the select's menu closes.\n- **zn-after-hide** - Emitted after the select's menu closes and all animations are complete.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-load** - Emitted when options have been successfully loaded from the `src` URL.\n- **zn-error** - Emitted when loading options from the `src` URL fails.\n\n### **Methods:**\n - **fetchOptions(searchQuery: _string_)** - Fetches options from the URL specified by the `data-uri` property. Optionally appends a search query.\n- **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the control.\n- **blur()** - Removes focus from the control.\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<zn-option>` elements. You can use `<zn-opt-group>` to group options under a labeled header, or `<zn-divider>` to group items visually.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **suffix** - Used to append a presentational element — a chip marking the selected option's state, for instance — to the combobox, between the value and the clear and expand icons.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **expand-icon** - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **search-loading** - The container shown while a remote search request is in flight.\n- **max-results-indicator** - The message shown when results are truncated by `max-results`.\n- **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **suffix** - The container that wraps the suffix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **tags** - The container that houses option tags when `multiselect` is used.\n- **tag** - The individual tags that represent each multiselect option.\n- **tag__base** - The tag's base part.\n- **tag__content** - The tag's content part.\n- **tag__remove-button** - The tag's remove button.\n- **tag__remove-button__base** - The tag's remove button base part.\n- **clear-button** - The clear button.\n- **expand-icon** - The container that wraps the expand icon.",
3851
3851
  "attributes": [
3852
3852
  {
3853
3853
  "name": "name",
@@ -5181,16 +5181,26 @@
5181
5181
  },
5182
5182
  {
5183
5183
  "name": "zn-translation-group",
5184
- "description": "A panel-styled container that provides a shared language toggle for multiple zn-translations children.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - Default slot for `<zn-translations>` elements.\n- **actions** - Actions displayed in the panel header alongside language buttons.\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
5184
+ "description": "Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\ntranslated a language at a time.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - The `zn-translations` fields the select drives.\n- **actions** - Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows.\n- **footer** - Content displayed in the grey panel footer. The header belongs to the language select; nothing else is slotted into it.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **actions** - The row of buttons at the bottom of the body.\n- **language-field** - The label and select that choose the language every child is editing.\n- **language-select** - The select itself.",
5185
5185
  "attributes": [
5186
5186
  {
5187
5187
  "name": "label",
5188
- "description": "The group label displayed in the panel header.",
5188
+ "description": "The caption shown in the panel header. An alias for the inherited `caption`, which wins where both are set.",
5189
+ "values": []
5190
+ },
5191
+ {
5192
+ "name": "inline",
5193
+ "description": "Drops the panel chrome — border, background and padding — so the group reads as a section of the form around it\nrather than a panel of its own. For groups nested inside another panel, where the fields would otherwise sit\nindented behind a second border.",
5194
+ "values": []
5195
+ },
5196
+ {
5197
+ "name": "language-label",
5198
+ "description": "The select's accessible name. Not shown — the caption is what names the section on screen — but read out by a\nscreen reader, which has nothing else to go on once the visible label is gone.",
5189
5199
  "values": []
5190
5200
  },
5191
5201
  {
5192
5202
  "name": "languages",
5193
- "description": "The available languages for the group.",
5203
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to. Set on every\nchild, so they do not need their own copy.",
5194
5204
  "values": [{ "name": "Record<string" }, { "name": "string>" }]
5195
5205
  },
5196
5206
  { "name": "basis-px", "values": [] },
@@ -5215,29 +5225,62 @@
5215
5225
  },
5216
5226
  {
5217
5227
  "name": "zn-translations",
5218
- "description": "\n---\n\n\n### **Methods:**\n - **setActiveLanguage(language: _string_)** - Sets the active language externally. Used by zn-translation-group.\n- **getActiveLanguage(): _string_** - Returns the currently active language.\n- **addLanguageKey(languageCode: _string_)** - Adds a language key to this component's values if not already present. Used by zn-translation-group.\n- **getValueLanguages(): _string[]_** - Returns all language codes that have values.",
5228
+ "description": "Collects one piece of text in several languages, one language at a time.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when a translation's value changes.\n- **zn-input** - Emitted when a translation receives input.\n\n### **Methods:**\n - **setActiveLanguage(language: _string_)** - Sets the active language externally. Used by zn-translation-group. Browsing to a language does not create a key\nfor it — an untouched language stays absent from `values` so it is not submitted as an empty translation.\n- **getActiveLanguage(): _string_** - Returns the currently active language.\n- **addLanguageKey(languageCode: _string_)** - Adds a language key to this component's values if not already present. Used by zn-translation-group.\n- **getValueLanguages(): _string[]_** - Returns all language codes that have values.\n- **hasTranslation(language: _string_): _boolean_** - Whether the language carries a translation of its own, rather than falling back to English.\n\n### **Slots:**\n - **label** - The field's label. Alternatively, use the `label` attribute.\n- **help-text** - Text describing how to fill the field in, shown below it and shared by every language. Alternatively, use the `help-text` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, the language select, the field and the help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The wrapper around the field being edited.\n- **form-control-help-text** - The help text's wrapper.\n- **language-select** - The select that chooses the language being edited.",
5219
5229
  "attributes": [
5220
- { "name": "name", "values": [] },
5221
- { "name": "value", "values": [] },
5222
- { "name": "label", "values": [] },
5230
+ {
5231
+ "name": "name",
5232
+ "description": "The name submitted with the form.",
5233
+ "values": []
5234
+ },
5235
+ {
5236
+ "name": "value",
5237
+ "description": "The translations as a JSON object keyed by language code. The mirror of `values` in attribute form.",
5238
+ "values": []
5239
+ },
5240
+ {
5241
+ "name": "label",
5242
+ "description": "The label shown above the field. If you need HTML, use the `label` slot instead.",
5243
+ "values": []
5244
+ },
5223
5245
  {
5224
5246
  "name": "help-text",
5225
5247
  "description": "Text shown below the field, describing how to fill it in. Applies to every language. If you need HTML, use the\n`help-text` slot instead.",
5226
5248
  "values": []
5227
5249
  },
5228
- { "name": "disabled", "values": [] },
5229
- { "name": "required", "values": [] },
5230
- { "name": "flush", "values": [] },
5250
+ {
5251
+ "name": "disabled",
5252
+ "description": "Disables editing in every language.",
5253
+ "values": []
5254
+ },
5255
+ {
5256
+ "name": "required",
5257
+ "description": "Marks the label required. Validity is not enforced per language.",
5258
+ "values": []
5259
+ },
5260
+ {
5261
+ "name": "flush",
5262
+ "description": "Removes the component's own padding.",
5263
+ "values": []
5264
+ },
5231
5265
  {
5232
5266
  "name": "input-type",
5267
+ "description": "The control each translation is edited through.",
5233
5268
  "values": [
5234
- { "name": "select" },
5235
5269
  { "name": "text" },
5236
5270
  { "name": "number" },
5237
5271
  { "name": "textarea" }
5238
5272
  ]
5239
5273
  },
5240
- { "name": "textarea-rows", "values": [] },
5274
+ {
5275
+ "name": "textarea-rows",
5276
+ "description": "Rows of the textarea, when `input-type` is `textarea`.",
5277
+ "values": []
5278
+ },
5279
+ {
5280
+ "name": "inline-edit",
5281
+ "description": "Edits the translation through a `zn-inline-edit` — the value reads as text until it is clicked — rather than a\nplain input or textarea.",
5282
+ "values": []
5283
+ },
5241
5284
  {
5242
5285
  "name": "slash-items",
5243
5286
  "description": "Quick insertions offered by the slash menu on `text` and `textarea` inputs. Accepts a JSON array of items, or\nthe shorthand `Brand name={{BRAND_NAME}}, Support email={{SUPPORT_EMAIL}}`. Every language shares the list.",
@@ -5270,15 +5313,17 @@
5270
5313
  },
5271
5314
  {
5272
5315
  "name": "grouped",
5273
- "description": "When true, hides the individual language navbar and defers language control to a parent zn-translation-group.",
5316
+ "description": "Hides this component's own language select and defers the choice to a parent zn-translation-group. The group sets\nthis on its children itself.",
5274
5317
  "values": []
5275
5318
  },
5276
5319
  {
5277
5320
  "name": "languages",
5321
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to.",
5278
5322
  "values": [{ "name": "Record<string" }, { "name": "string>" }]
5279
5323
  },
5280
5324
  {
5281
5325
  "name": "values",
5326
+ "description": "The translations as an object keyed by language code. The mirror of `value` in property form.",
5282
5327
  "values": [{ "name": "Record<string" }, { "name": "string>" }]
5283
5328
  }
5284
5329
  ],
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@kubex/zinc",
4
- "version": "1.1.115",
4
+ "version": "1.1.116",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -15,28 +15,6 @@
15
15
  "events": [],
16
16
  "js": { "properties": [], "events": [] }
17
17
  },
18
- {
19
- "name": "zn-action-bar",
20
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
21
- "doc-url": "",
22
- "attributes": [],
23
- "slots": [
24
- { "name": "", "description": "The default slot." },
25
- { "name": "example", "description": "An example slot." }
26
- ],
27
- "events": [
28
- { "name": "zn-event-name", "description": "Emitted as an example." }
29
- ],
30
- "js": {
31
- "properties": [],
32
- "events": [
33
- {
34
- "name": "zn-event-name",
35
- "description": "Emitted as an example."
36
- }
37
- ]
38
- }
39
- },
40
18
  {
41
19
  "name": "zn-alert",
42
20
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
@@ -105,6 +83,28 @@
105
83
  ]
106
84
  }
107
85
  },
86
+ {
87
+ "name": "zn-action-bar",
88
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
89
+ "doc-url": "",
90
+ "attributes": [],
91
+ "slots": [
92
+ { "name": "", "description": "The default slot." },
93
+ { "name": "example", "description": "An example slot." }
94
+ ],
95
+ "events": [
96
+ { "name": "zn-event-name", "description": "Emitted as an example." }
97
+ ],
98
+ "js": {
99
+ "properties": [],
100
+ "events": [
101
+ {
102
+ "name": "zn-event-name",
103
+ "description": "Emitted as an example."
104
+ }
105
+ ]
106
+ }
107
+ },
108
108
  {
109
109
  "name": "zn-animated-button",
110
110
  "description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
@@ -4574,7 +4574,7 @@
4574
4574
  },
4575
4575
  {
4576
4576
  "name": "zn-header",
4577
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
4577
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **header-right** - The container that wraps the actions slot.",
4578
4578
  "doc-url": "",
4579
4579
  "attributes": [
4580
4580
  { "name": "full-location", "value": { "type": "string" } },
@@ -8967,7 +8967,7 @@
8967
8967
  },
8968
8968
  {
8969
8969
  "name": "zn-select",
8970
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the control's value changes.\n- **zn-clear** - Emitted when the control's value is cleared.\n- **zn-input** - Emitted when the control receives input.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-blur** - Emitted when the control loses focus.\n- **zn-show** - Emitted when the select's menu opens.\n- **zn-after-show** - Emitted after the select's menu opens and all animations are complete.\n- **zn-hide** - Emitted when the select's menu closes.\n- **zn-after-hide** - Emitted after the select's menu closes and all animations are complete.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-load** - Emitted when options have been successfully loaded from the `src` URL.\n- **zn-error** - Emitted when loading options from the `src` URL fails.\n\n### **Methods:**\n - **fetchOptions(searchQuery: _string_)** - Fetches options from the URL specified by the `data-uri` property. Optionally appends a search query.\n- **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the control.\n- **blur()** - Removes focus from the control.\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<zn-option>` elements. You can use `<zn-opt-group>` to group options under a labeled header, or `<zn-divider>` to group items visually.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **expand-icon** - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **search-loading** - The container shown while a remote search request is in flight.\n- **max-results-indicator** - The message shown when results are truncated by `max-results`.\n- **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **tags** - The container that houses option tags when `multiselect` is used.\n- **tag** - The individual tags that represent each multiselect option.\n- **tag__base** - The tag's base part.\n- **tag__content** - The tag's content part.\n- **tag__remove-button** - The tag's remove button.\n- **tag__remove-button__base** - The tag's remove button base part.\n- **clear-button** - The clear button.\n- **expand-icon** - The container that wraps the expand icon.",
8970
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the control's value changes.\n- **zn-clear** - Emitted when the control's value is cleared.\n- **zn-input** - Emitted when the control receives input.\n- **zn-focus** - Emitted when the control gains focus.\n- **zn-blur** - Emitted when the control loses focus.\n- **zn-show** - Emitted when the select's menu opens.\n- **zn-after-show** - Emitted after the select's menu opens and all animations are complete.\n- **zn-hide** - Emitted when the select's menu closes.\n- **zn-after-hide** - Emitted after the select's menu closes and all animations are complete.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n- **zn-load** - Emitted when options have been successfully loaded from the `src` URL.\n- **zn-error** - Emitted when loading options from the `src` URL fails.\n\n### **Methods:**\n - **fetchOptions(searchQuery: _string_)** - Fetches options from the URL specified by the `data-uri` property. Optionally appends a search query.\n- **show()** - Shows the listbox.\n- **hide()** - Hides the listbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **focus(options: _FocusOptions_)** - Sets focus on the control.\n- **blur()** - Removes focus from the control.\n\n### **Slots:**\n - _default_ - The listbox options. Must be `<zn-option>` elements. You can use `<zn-opt-group>` to group options under a labeled header, or `<zn-divider>` to group items visually.\n- **label** - The input's label. Alternatively, you can use the `label` attribute.\n- **label-tooltip** - Used to add text that is displayed in a tooltip next to the label. Alternatively, you can use the `label-tooltip` attribute.\n- **context-note** - Used to add contextual text that is displayed above the select, on the right. Alternatively, you can use the `context-note` attribute.\n- **prefix** - Used to prepend a presentational icon or similar element to the combobox.\n- **suffix** - Used to append a presentational element — a chip marking the selected option's state, for instance — to the combobox, between the value and the clear and expand icons.\n- **clear-icon** - An icon to use in lieu of the default clear icon.\n- **expand-icon** - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n- **help-text** - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **search-loading** - The container shown while a remote search request is in flight.\n- **max-results-indicator** - The message shown when results are truncated by `max-results`.\n- **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The select's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **combobox** - The container the wraps the prefix, combobox, clear icon, and expand button.\n- **prefix** - The container that wraps the prefix slot.\n- **suffix** - The container that wraps the suffix slot.\n- **display-input** - The element that displays the selected option's label, an `<input>` element.\n- **listbox** - The listbox container where options are slotted.\n- **tags** - The container that houses option tags when `multiselect` is used.\n- **tag** - The individual tags that represent each multiselect option.\n- **tag__base** - The tag's base part.\n- **tag__content** - The tag's content part.\n- **tag__remove-button** - The tag's remove button.\n- **tag__remove-button__base** - The tag's remove button base part.\n- **clear-button** - The clear button.\n- **expand-icon** - The container that wraps the expand icon.",
8971
8971
  "doc-url": "",
8972
8972
  "attributes": [
8973
8973
  {
@@ -9162,6 +9162,10 @@
9162
9162
  "name": "prefix",
9163
9163
  "description": "Used to prepend a presentational icon or similar element to the combobox."
9164
9164
  },
9165
+ {
9166
+ "name": "suffix",
9167
+ "description": "Used to append a presentational element — a chip marking the selected option's state, for instance — to the combobox, between the value and the clear and expand icons."
9168
+ },
9165
9169
  {
9166
9170
  "name": "clear-icon",
9167
9171
  "description": "An icon to use in lieu of the default clear icon."
@@ -12207,17 +12211,27 @@
12207
12211
  },
12208
12212
  {
12209
12213
  "name": "zn-translation-group",
12210
- "description": "A panel-styled container that provides a shared language toggle for multiple zn-translations children.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - Default slot for `<zn-translations>` elements.\n- **actions** - Actions displayed in the panel header alongside language buttons.\n- **footer** - Content displayed in the panel footer.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
12214
+ "description": "Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\ntranslated a language at a time.\n---\n\n\n### **Events:**\n - **zn-language-change** - Emitted when the active language changes. Detail: `{ language: string }`.\n\n### **Slots:**\n - _default_ - The `zn-translations` fields the select drives.\n- **actions** - Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows.\n- **footer** - Content displayed in the grey panel footer. The header belongs to the language select; nothing else is slotted into it.\n\n### **CSS Properties:**\n - **--zn-panel-basis** - The flex-basis of the panel. Can be set using the basis-px attribute. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **actions** - The row of buttons at the bottom of the body.\n- **language-field** - The label and select that choose the language every child is editing.\n- **language-select** - The select itself.",
12211
12215
  "doc-url": "",
12212
12216
  "attributes": [
12213
12217
  {
12214
12218
  "name": "label",
12215
- "description": "The group label displayed in the panel header.",
12219
+ "description": "The caption shown in the panel header. An alias for the inherited `caption`, which wins where both are set.",
12216
12220
  "value": { "type": "string", "default": "''" }
12217
12221
  },
12222
+ {
12223
+ "name": "inline",
12224
+ "description": "Drops the panel chrome — border, background and padding — so the group reads as a section of the form around it\nrather than a panel of its own. For groups nested inside another panel, where the fields would otherwise sit\nindented behind a second border.",
12225
+ "value": { "type": "boolean", "default": "false" }
12226
+ },
12227
+ {
12228
+ "name": "language-label",
12229
+ "description": "The select's accessible name. Not shown — the caption is what names the section on screen — but read out by a\nscreen reader, which has nothing else to go on once the visible label is gone.",
12230
+ "value": { "type": "string", "default": "'Edit Languages'" }
12231
+ },
12218
12232
  {
12219
12233
  "name": "languages",
12220
- "description": "The available languages for the group.",
12234
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to. Set on every\nchild, so they do not need their own copy.",
12221
12235
  "value": {
12222
12236
  "type": "Record<string, string>",
12223
12237
  "default": "{ 'en': 'EN' }"
@@ -12239,15 +12253,15 @@
12239
12253
  "slots": [
12240
12254
  {
12241
12255
  "name": "",
12242
- "description": "Default slot for `<zn-translations>` elements."
12256
+ "description": "The `zn-translations` fields the select drives."
12243
12257
  },
12244
12258
  {
12245
12259
  "name": "actions",
12246
- "description": "Actions displayed in the panel header alongside language buttons."
12260
+ "description": "Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows."
12247
12261
  },
12248
12262
  {
12249
12263
  "name": "footer",
12250
- "description": "Content displayed in the panel footer."
12264
+ "description": "Content displayed in the grey panel footer. The header belongs to the language select; nothing else is slotted into it."
12251
12265
  }
12252
12266
  ],
12253
12267
  "events": [
@@ -12260,12 +12274,22 @@
12260
12274
  "properties": [
12261
12275
  {
12262
12276
  "name": "label",
12263
- "description": "The group label displayed in the panel header.",
12277
+ "description": "The caption shown in the panel header. An alias for the inherited `caption`, which wins where both are set.",
12278
+ "type": "string"
12279
+ },
12280
+ {
12281
+ "name": "inline",
12282
+ "description": "Drops the panel chrome — border, background and padding — so the group reads as a section of the form around it\nrather than a panel of its own. For groups nested inside another panel, where the fields would otherwise sit\nindented behind a second border.",
12283
+ "type": "boolean"
12284
+ },
12285
+ {
12286
+ "name": "languageLabel",
12287
+ "description": "The select's accessible name. Not shown — the caption is what names the section on screen — but read out by a\nscreen reader, which has nothing else to go on once the visible label is gone.",
12264
12288
  "type": "string"
12265
12289
  },
12266
12290
  {
12267
12291
  "name": "languages",
12268
- "description": "The available languages for the group.",
12292
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to. Set on every\nchild, so they do not need their own copy.",
12269
12293
  "type": "Record<string, string>"
12270
12294
  },
12271
12295
  { "name": "basis", "type": "number" },
@@ -12291,15 +12315,24 @@
12291
12315
  },
12292
12316
  {
12293
12317
  "name": "zn-translations",
12294
- "description": "\n---\n\n\n### **Methods:**\n - **setActiveLanguage(language: _string_)** - Sets the active language externally. Used by zn-translation-group.\n- **getActiveLanguage(): _string_** - Returns the currently active language.\n- **addLanguageKey(languageCode: _string_)** - Adds a language key to this component's values if not already present. Used by zn-translation-group.\n- **getValueLanguages(): _string[]_** - Returns all language codes that have values.",
12318
+ "description": "Collects one piece of text in several languages, one language at a time.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when a translation's value changes.\n- **zn-input** - Emitted when a translation receives input.\n\n### **Methods:**\n - **setActiveLanguage(language: _string_)** - Sets the active language externally. Used by zn-translation-group. Browsing to a language does not create a key\nfor it — an untouched language stays absent from `values` so it is not submitted as an empty translation.\n- **getActiveLanguage(): _string_** - Returns the currently active language.\n- **addLanguageKey(languageCode: _string_)** - Adds a language key to this component's values if not already present. Used by zn-translation-group.\n- **getValueLanguages(): _string[]_** - Returns all language codes that have values.\n- **hasTranslation(language: _string_): _boolean_** - Whether the language carries a translation of its own, rather than falling back to English.\n\n### **Slots:**\n - **label** - The field's label. Alternatively, use the `label` attribute.\n- **help-text** - Text describing how to fill the field in, shown below it and shared by every language. Alternatively, use the `help-text` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, the language select, the field and the help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The wrapper around the field being edited.\n- **form-control-help-text** - The help text's wrapper.\n- **language-select** - The select that chooses the language being edited.",
12295
12319
  "doc-url": "",
12296
12320
  "attributes": [
12297
- { "name": "name", "value": { "type": "string", "default": "''" } },
12321
+ {
12322
+ "name": "name",
12323
+ "description": "The name submitted with the form.",
12324
+ "value": { "type": "string", "default": "''" }
12325
+ },
12298
12326
  {
12299
12327
  "name": "value",
12328
+ "description": "The translations as a JSON object keyed by language code. The mirror of `values` in attribute form.",
12300
12329
  "value": { "type": "string", "default": "'{\"en\":\"\"}'" }
12301
12330
  },
12302
- { "name": "label", "value": { "type": "string", "default": "''" } },
12331
+ {
12332
+ "name": "label",
12333
+ "description": "The label shown above the field. If you need HTML, use the `label` slot instead.",
12334
+ "value": { "type": "string", "default": "''" }
12335
+ },
12303
12336
  {
12304
12337
  "name": "help-text",
12305
12338
  "description": "Text shown below the field, describing how to fill it in. Applies to every language. If you need HTML, use the\n`help-text` slot instead.",
@@ -12307,27 +12340,37 @@
12307
12340
  },
12308
12341
  {
12309
12342
  "name": "disabled",
12343
+ "description": "Disables editing in every language.",
12310
12344
  "value": { "type": "boolean", "default": "false" }
12311
12345
  },
12312
12346
  {
12313
12347
  "name": "required",
12348
+ "description": "Marks the label required. Validity is not enforced per language.",
12314
12349
  "value": { "type": "boolean", "default": "false" }
12315
12350
  },
12316
12351
  {
12317
12352
  "name": "flush",
12353
+ "description": "Removes the component's own padding.",
12318
12354
  "value": { "type": "boolean", "default": "false" }
12319
12355
  },
12320
12356
  {
12321
12357
  "name": "input-type",
12358
+ "description": "The control each translation is edited through.",
12322
12359
  "value": {
12323
- "type": "'select' | 'text' | 'number' | 'textarea'",
12360
+ "type": "'text' | 'number' | 'textarea'",
12324
12361
  "default": "'text'"
12325
12362
  }
12326
12363
  },
12327
12364
  {
12328
12365
  "name": "textarea-rows",
12366
+ "description": "Rows of the textarea, when `input-type` is `textarea`.",
12329
12367
  "value": { "type": "number | undefined" }
12330
12368
  },
12369
+ {
12370
+ "name": "inline-edit",
12371
+ "description": "Edits the translation through a `zn-inline-edit` — the value reads as text until it is clicked — rather than a\nplain input or textarea.",
12372
+ "value": { "type": "boolean", "default": "false" }
12373
+ },
12331
12374
  {
12332
12375
  "name": "slash-items",
12333
12376
  "description": "Quick insertions offered by the slash menu on `text` and `textarea` inputs. Accepts a JSON array of items, or\nthe shorthand `Brand name={{BRAND_NAME}}, Support email={{SUPPORT_EMAIL}}`. Every language shares the list.",
@@ -12360,11 +12403,12 @@
12360
12403
  },
12361
12404
  {
12362
12405
  "name": "grouped",
12363
- "description": "When true, hides the individual language navbar and defers language control to a parent zn-translation-group.",
12406
+ "description": "Hides this component's own language select and defers the choice to a parent zn-translation-group. The group sets\nthis on its children itself.",
12364
12407
  "value": { "type": "boolean", "default": "false" }
12365
12408
  },
12366
12409
  {
12367
12410
  "name": "languages",
12411
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to.",
12368
12412
  "value": {
12369
12413
  "type": "Record<string, string>",
12370
12414
  "default": "{ 'en': 'EN' }"
@@ -12372,28 +12416,82 @@
12372
12416
  },
12373
12417
  {
12374
12418
  "name": "values",
12419
+ "description": "The translations as an object keyed by language code. The mirror of `value` in property form.",
12375
12420
  "value": { "type": "Record<string, string>", "default": "{}" }
12376
12421
  }
12377
12422
  ],
12378
- "events": [],
12423
+ "slots": [
12424
+ {
12425
+ "name": "label",
12426
+ "description": "The field's label. Alternatively, use the `label` attribute."
12427
+ },
12428
+ {
12429
+ "name": "help-text",
12430
+ "description": "Text describing how to fill the field in, shown below it and shared by every language. Alternatively, use the `help-text` attribute."
12431
+ }
12432
+ ],
12433
+ "events": [
12434
+ {
12435
+ "name": "zn-change",
12436
+ "description": "Emitted when a translation's value changes."
12437
+ },
12438
+ {
12439
+ "name": "zn-input",
12440
+ "description": "Emitted when a translation receives input."
12441
+ }
12442
+ ],
12379
12443
  "js": {
12380
12444
  "properties": [
12381
- { "name": "name", "type": "string" },
12382
- { "name": "value", "type": "string" },
12383
- { "name": "label", "type": "string" },
12445
+ {
12446
+ "name": "name",
12447
+ "description": "The name submitted with the form.",
12448
+ "type": "string"
12449
+ },
12450
+ {
12451
+ "name": "value",
12452
+ "description": "The translations as a JSON object keyed by language code. The mirror of `values` in attribute form.",
12453
+ "type": "string"
12454
+ },
12455
+ {
12456
+ "name": "label",
12457
+ "description": "The label shown above the field. If you need HTML, use the `label` slot instead.",
12458
+ "type": "string"
12459
+ },
12384
12460
  {
12385
12461
  "name": "helpText",
12386
12462
  "description": "Text shown below the field, describing how to fill it in. Applies to every language. If you need HTML, use the\n`help-text` slot instead.",
12387
12463
  "type": "string"
12388
12464
  },
12389
- { "name": "disabled", "type": "boolean" },
12390
- { "name": "required", "type": "boolean" },
12391
- { "name": "flush", "type": "boolean" },
12465
+ {
12466
+ "name": "disabled",
12467
+ "description": "Disables editing in every language.",
12468
+ "type": "boolean"
12469
+ },
12470
+ {
12471
+ "name": "required",
12472
+ "description": "Marks the label required. Validity is not enforced per language.",
12473
+ "type": "boolean"
12474
+ },
12475
+ {
12476
+ "name": "flush",
12477
+ "description": "Removes the component's own padding.",
12478
+ "type": "boolean"
12479
+ },
12392
12480
  {
12393
12481
  "name": "inputType",
12394
- "type": "'select' | 'text' | 'number' | 'textarea'"
12482
+ "description": "The control each translation is edited through.",
12483
+ "type": "'text' | 'number' | 'textarea'"
12484
+ },
12485
+ {
12486
+ "name": "textareaRows",
12487
+ "description": "Rows of the textarea, when `input-type` is `textarea`.",
12488
+ "type": "number | undefined"
12489
+ },
12490
+ {
12491
+ "name": "inlineEdit",
12492
+ "description": "Edits the translation through a `zn-inline-edit` — the value reads as text until it is clicked — rather than a\nplain input or textarea.",
12493
+ "type": "boolean"
12395
12494
  },
12396
- { "name": "textareaRows", "type": "number | undefined" },
12397
12495
  {
12398
12496
  "name": "slashItems",
12399
12497
  "description": "Quick insertions offered by the slash menu on `text` and `textarea` inputs. Accepts a JSON array of items, or\nthe shorthand `Brand name={{BRAND_NAME}}, Support email={{SUPPORT_EMAIL}}`. Every language shares the list.",
@@ -12431,15 +12529,37 @@
12431
12529
  },
12432
12530
  {
12433
12531
  "name": "grouped",
12434
- "description": "When true, hides the individual language navbar and defers language control to a parent zn-translation-group.",
12532
+ "description": "Hides this component's own language select and defers the choice to a parent zn-translation-group. The group sets\nthis on its children itself.",
12435
12533
  "type": "boolean"
12436
12534
  },
12437
- { "name": "languages", "type": "Record<string, string>" },
12438
- { "name": "values", "type": "Record<string, string>" },
12535
+ {
12536
+ "name": "languages",
12537
+ "description": "The languages on offer, as language code to display name — `{\"en\": \"English\", \"fr\": \"French\"}`. Writing the code\nas the name (`{\"en\": \"EN\"}`) is also accepted. `en` is the language every other one falls back to.",
12538
+ "type": "Record<string, string>"
12539
+ },
12540
+ {
12541
+ "name": "values",
12542
+ "description": "The translations as an object keyed by language code. The mirror of `value` in property form.",
12543
+ "type": "Record<string, string>"
12544
+ },
12545
+ {
12546
+ "name": "defaultValue",
12547
+ "description": "The serialized translations a form reset restores. Taken from the `value` attribute where there is one.",
12548
+ "type": "string"
12549
+ },
12439
12550
  { "name": "validity", "type": "ValidityState" },
12440
12551
  { "name": "validationMessage" }
12441
12552
  ],
12442
- "events": []
12553
+ "events": [
12554
+ {
12555
+ "name": "zn-change",
12556
+ "description": "Emitted when a translation's value changes."
12557
+ },
12558
+ {
12559
+ "name": "zn-input",
12560
+ "description": "Emitted when a translation receives input."
12561
+ }
12562
+ ]
12443
12563
  }
12444
12564
  },
12445
12565
  {