@kubex/zinc 1.1.115 → 1.1.117

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.
@@ -56,79 +56,6 @@
56
56
  }
57
57
  ]
58
58
  },
59
- {
60
- "kind": "javascript-module",
61
- "path": "components/action-bar/action-bar.js",
62
- "declarations": [
63
- {
64
- "kind": "class",
65
- "description": "",
66
- "name": "ZnActionBar",
67
- "cssProperties": [
68
- {
69
- "description": "An example CSS custom property.",
70
- "name": "--example"
71
- }
72
- ],
73
- "cssParts": [
74
- {
75
- "description": "The component's base wrapper.",
76
- "name": "base"
77
- }
78
- ],
79
- "slots": [
80
- {
81
- "description": "The default slot.",
82
- "name": ""
83
- },
84
- {
85
- "description": "An example slot.",
86
- "name": "example"
87
- }
88
- ],
89
- "members": [
90
- {
91
- "kind": "field",
92
- "name": "localize",
93
- "privacy": "private",
94
- "readonly": true,
95
- "default": "new LocalizeController(this)"
96
- }
97
- ],
98
- "events": [
99
- {
100
- "description": "Emitted as an example.",
101
- "name": "zn-event-name"
102
- }
103
- ],
104
- "superclass": {
105
- "name": "ZincElement",
106
- "module": "/src/internal/zinc-element"
107
- },
108
- "summary": "Short summary of the component's intended use.",
109
- "tagNameWithoutPrefix": "action-bar",
110
- "tagName": "zn-action-bar",
111
- "customElement": true,
112
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
113
- "documentation": "https://zinc.style/components/action-bar",
114
- "status": "experimental",
115
- "since": "1.0",
116
- "dependencies": [
117
- "zn-example"
118
- ]
119
- }
120
- ],
121
- "exports": [
122
- {
123
- "kind": "js",
124
- "name": "default",
125
- "declaration": {
126
- "name": "ZnActionBar",
127
- "module": "components/action-bar/action-bar.js"
128
- }
129
- }
130
- ]
131
- },
132
59
  {
133
60
  "kind": "javascript-module",
134
61
  "path": "components/alert/alert.js",
@@ -323,6 +250,79 @@
323
250
  }
324
251
  ]
325
252
  },
253
+ {
254
+ "kind": "javascript-module",
255
+ "path": "components/action-bar/action-bar.js",
256
+ "declarations": [
257
+ {
258
+ "kind": "class",
259
+ "description": "",
260
+ "name": "ZnActionBar",
261
+ "cssProperties": [
262
+ {
263
+ "description": "An example CSS custom property.",
264
+ "name": "--example"
265
+ }
266
+ ],
267
+ "cssParts": [
268
+ {
269
+ "description": "The component's base wrapper.",
270
+ "name": "base"
271
+ }
272
+ ],
273
+ "slots": [
274
+ {
275
+ "description": "The default slot.",
276
+ "name": ""
277
+ },
278
+ {
279
+ "description": "An example slot.",
280
+ "name": "example"
281
+ }
282
+ ],
283
+ "members": [
284
+ {
285
+ "kind": "field",
286
+ "name": "localize",
287
+ "privacy": "private",
288
+ "readonly": true,
289
+ "default": "new LocalizeController(this)"
290
+ }
291
+ ],
292
+ "events": [
293
+ {
294
+ "description": "Emitted as an example.",
295
+ "name": "zn-event-name"
296
+ }
297
+ ],
298
+ "superclass": {
299
+ "name": "ZincElement",
300
+ "module": "/src/internal/zinc-element"
301
+ },
302
+ "summary": "Short summary of the component's intended use.",
303
+ "tagNameWithoutPrefix": "action-bar",
304
+ "tagName": "zn-action-bar",
305
+ "customElement": true,
306
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
307
+ "documentation": "https://zinc.style/components/action-bar",
308
+ "status": "experimental",
309
+ "since": "1.0",
310
+ "dependencies": [
311
+ "zn-example"
312
+ ]
313
+ }
314
+ ],
315
+ "exports": [
316
+ {
317
+ "kind": "js",
318
+ "name": "default",
319
+ "declaration": {
320
+ "name": "ZnActionBar",
321
+ "module": "components/action-bar/action-bar.js"
322
+ }
323
+ }
324
+ ]
325
+ },
326
326
  {
327
327
  "kind": "javascript-module",
328
328
  "path": "components/animated-button/animated-button.js",
@@ -16461,6 +16461,18 @@
16461
16461
  "kind": "class",
16462
16462
  "description": "",
16463
16463
  "name": "ZnFormGroup",
16464
+ "cssProperties": [
16465
+ {
16466
+ "description": "Offset the label column sticks at while the inputs scroll past.",
16467
+ "name": "--zn-form-group-sticky-top"
16468
+ }
16469
+ ],
16470
+ "cssParts": [
16471
+ {
16472
+ "description": "The column holding the label, help text and chip.",
16473
+ "name": "form-control-text"
16474
+ }
16475
+ ],
16464
16476
  "slots": [
16465
16477
  {
16466
16478
  "description": "The default slot.",
@@ -16535,6 +16547,201 @@
16535
16547
  },
16536
16548
  "default": "false",
16537
16549
  "attribute": "pad"
16550
+ },
16551
+ {
16552
+ "kind": "field",
16553
+ "name": "tracked",
16554
+ "type": {
16555
+ "text": "HTMLElement | null"
16556
+ },
16557
+ "privacy": "private",
16558
+ "default": "null",
16559
+ "description": "The scroller the label is tracked against by hand; null while native sticky is enough."
16560
+ },
16561
+ {
16562
+ "kind": "field",
16563
+ "name": "frame",
16564
+ "type": {
16565
+ "text": "number"
16566
+ },
16567
+ "privacy": "private",
16568
+ "default": "0"
16569
+ },
16570
+ {
16571
+ "kind": "field",
16572
+ "name": "rebind",
16573
+ "type": {
16574
+ "text": "boolean"
16575
+ },
16576
+ "privacy": "private",
16577
+ "default": "false"
16578
+ },
16579
+ {
16580
+ "kind": "field",
16581
+ "name": "offset",
16582
+ "type": {
16583
+ "text": "number"
16584
+ },
16585
+ "privacy": "private",
16586
+ "default": "0"
16587
+ },
16588
+ {
16589
+ "kind": "field",
16590
+ "name": "resizeObserver",
16591
+ "type": {
16592
+ "text": "ResizeObserver | null"
16593
+ },
16594
+ "privacy": "private",
16595
+ "default": "null"
16596
+ },
16597
+ {
16598
+ "kind": "field",
16599
+ "name": "labelColumn",
16600
+ "type": {
16601
+ "text": "HTMLElement | null"
16602
+ },
16603
+ "privacy": "private",
16604
+ "readonly": true
16605
+ },
16606
+ {
16607
+ "kind": "method",
16608
+ "name": "schedule",
16609
+ "privacy": "private",
16610
+ "parameters": [
16611
+ {
16612
+ "name": "rebind",
16613
+ "default": "false",
16614
+ "type": {
16615
+ "text": "boolean"
16616
+ }
16617
+ }
16618
+ ],
16619
+ "description": "Coalesces scroll and resize work into one frame, and out of the ResizeObserver callback."
16620
+ },
16621
+ {
16622
+ "kind": "method",
16623
+ "name": "findScroller",
16624
+ "privacy": "private",
16625
+ "description": "Native sticky only follows the nearest scroll container. Where that container isn't the one\nthe user actually scrolls — a `zn-panel` body sized to its content inside a scrolling\nslideout, say — the label never moves, so it gets translated by hand instead."
16626
+ },
16627
+ {
16628
+ "kind": "method",
16629
+ "name": "trackScroller",
16630
+ "privacy": "private",
16631
+ "parameters": [
16632
+ {
16633
+ "name": "scroller",
16634
+ "type": {
16635
+ "text": "HTMLElement | null"
16636
+ }
16637
+ }
16638
+ ]
16639
+ },
16640
+ {
16641
+ "kind": "method",
16642
+ "name": "scrollTarget",
16643
+ "privacy": "private",
16644
+ "return": {
16645
+ "type": {
16646
+ "text": "EventTarget | null"
16647
+ }
16648
+ },
16649
+ "parameters": [
16650
+ {
16651
+ "name": "scroller",
16652
+ "type": {
16653
+ "text": "HTMLElement | null"
16654
+ }
16655
+ }
16656
+ ],
16657
+ "description": "The document scrolls through the window, every other scroller reports its own events."
16658
+ },
16659
+ {
16660
+ "kind": "field",
16661
+ "name": "onScroll",
16662
+ "privacy": "private",
16663
+ "readonly": true
16664
+ },
16665
+ {
16666
+ "kind": "field",
16667
+ "name": "onViewportResize",
16668
+ "privacy": "private",
16669
+ "readonly": true
16670
+ },
16671
+ {
16672
+ "kind": "method",
16673
+ "name": "positionLabel",
16674
+ "privacy": "private"
16675
+ },
16676
+ {
16677
+ "kind": "method",
16678
+ "name": "nearestScrollContainer",
16679
+ "privacy": "private",
16680
+ "return": {
16681
+ "type": {
16682
+ "text": "HTMLElement | null"
16683
+ }
16684
+ },
16685
+ "parameters": [
16686
+ {
16687
+ "name": "from",
16688
+ "type": {
16689
+ "text": "HTMLElement"
16690
+ }
16691
+ }
16692
+ ],
16693
+ "description": "The box native sticky would anchor to, whether or not it can be scrolled."
16694
+ },
16695
+ {
16696
+ "kind": "method",
16697
+ "name": "scrollingAncestor",
16698
+ "privacy": "private",
16699
+ "return": {
16700
+ "type": {
16701
+ "text": "HTMLElement | null"
16702
+ }
16703
+ },
16704
+ "parameters": [
16705
+ {
16706
+ "name": "from",
16707
+ "type": {
16708
+ "text": "HTMLElement"
16709
+ }
16710
+ }
16711
+ ],
16712
+ "description": "The nearest ancestor the user can actually scroll, falling back to the document."
16713
+ },
16714
+ {
16715
+ "kind": "method",
16716
+ "name": "isScrollContainer",
16717
+ "privacy": "private",
16718
+ "parameters": [
16719
+ {
16720
+ "name": "overflow",
16721
+ "type": {
16722
+ "text": "string"
16723
+ }
16724
+ }
16725
+ ]
16726
+ },
16727
+ {
16728
+ "kind": "method",
16729
+ "name": "ancestors",
16730
+ "privacy": "private",
16731
+ "return": {
16732
+ "type": {
16733
+ "text": "HTMLElement[]"
16734
+ }
16735
+ },
16736
+ "parameters": [
16737
+ {
16738
+ "name": "from",
16739
+ "type": {
16740
+ "text": "HTMLElement"
16741
+ }
16742
+ }
16743
+ ],
16744
+ "description": "Walks the flattened tree, so slots and shadow boundaries are crossed the way layout does."
16538
16745
  }
16539
16746
  ],
16540
16747
  "attributes": [
@@ -16598,7 +16805,7 @@
16598
16805
  "tagNameWithoutPrefix": "form-group",
16599
16806
  "tagName": "zn-form-group",
16600
16807
  "customElement": true,
16601
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/form-group\n * @status experimental\n * @since 1.0\n *\n * @slot - The default slot.\n * @slot chip - A chip displayed under the form group's help text.\n *\n */",
16808
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/form-group\n * @status experimental\n * @since 1.0\n *\n * @slot - The default slot.\n * @slot chip - A chip displayed under the form group's help text.\n *\n * @csspart form-control-text - The column holding the label, help text and chip.\n *\n * @cssproperty --zn-form-group-sticky-top - Offset the label column sticks at while the inputs scroll past.\n *\n */",
16602
16809
  "documentation": "https://zinc.style/components/form-group",
16603
16810
  "status": "experimental",
16604
16811
  "since": "1.0"
@@ -16633,6 +16840,10 @@
16633
16840
  {
16634
16841
  "description": "The component's base wrapper.",
16635
16842
  "name": "base"
16843
+ },
16844
+ {
16845
+ "description": "The container that wraps the actions slot.",
16846
+ "name": "header-right"
16636
16847
  }
16637
16848
  ],
16638
16849
  "slots": [
@@ -16861,7 +17072,7 @@
16861
17072
  "tagNameWithoutPrefix": "header",
16862
17073
  "tagName": "zn-header",
16863
17074
  "customElement": true,
16864
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/header\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
17075
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/header\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n * @csspart header-right - The container that wraps the actions slot.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
16865
17076
  "documentation": "https://zinc.style/components/header",
16866
17077
  "status": "experimental",
16867
17078
  "since": "1.0",
@@ -37950,6 +38161,10 @@
37950
38161
  "description": "The container that wraps the prefix slot.",
37951
38162
  "name": "prefix"
37952
38163
  },
38164
+ {
38165
+ "description": "The container that wraps the suffix slot.",
38166
+ "name": "suffix"
38167
+ },
37953
38168
  {
37954
38169
  "description": "The element that displays the selected option's label, an `<input>` element.",
37955
38170
  "name": "display-input"
@@ -38012,6 +38227,10 @@
38012
38227
  "description": "Used to prepend a presentational icon or similar element to the combobox.",
38013
38228
  "name": "prefix"
38014
38229
  },
38230
+ {
38231
+ "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.",
38232
+ "name": "suffix"
38233
+ },
38015
38234
  {
38016
38235
  "description": "An icon to use in lieu of the default clear icon.",
38017
38236
  "name": "clear-icon"
@@ -39462,7 +39681,7 @@
39462
39681
  "tagNameWithoutPrefix": "select",
39463
39682
  "tagName": "zn-select",
39464
39683
  "customElement": true,
39465
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/select\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n * @dependency zn-opt-group\n * @dependency zn-option\n * @dependency zn-popup\n * @dependency zn-tag\n *\n * @slot - 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 * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot 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 * @slot 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 * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event zn-change - Emitted when the control's value changes.\n * @event zn-clear - Emitted when the control's value is cleared.\n * @event zn-input - Emitted when the control receives input.\n * @event zn-focus - Emitted when the control gains focus.\n * @event zn-blur - Emitted when the control loses focus.\n * @event zn-show - Emitted when the select's menu opens.\n * @event zn-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event zn-hide - Emitted when the select's menu closes.\n * @event zn-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event zn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event zn-load - Emitted when options have been successfully loaded from the `src` URL.\n * @event zn-error - Emitted when loading options from the `src` URL fails.\n *\n * @csspart search-loading - The container shown while a remote search request is in flight.\n * @csspart max-results-indicator - The message shown when results are truncated by `max-results`.\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */",
39684
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/select\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n * @dependency zn-opt-group\n * @dependency zn-option\n * @dependency zn-popup\n * @dependency zn-tag\n *\n * @slot - 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 * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot 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 * @slot 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 * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot suffix - Used to append a presentational element — a chip marking the selected option's state, for\n * instance — to the combobox, between the value and the clear and expand icons.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event zn-change - Emitted when the control's value changes.\n * @event zn-clear - Emitted when the control's value is cleared.\n * @event zn-input - Emitted when the control receives input.\n * @event zn-focus - Emitted when the control gains focus.\n * @event zn-blur - Emitted when the control loses focus.\n * @event zn-show - Emitted when the select's menu opens.\n * @event zn-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event zn-hide - Emitted when the select's menu closes.\n * @event zn-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event zn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n * @event zn-load - Emitted when options have been successfully loaded from the `src` URL.\n * @event zn-error - Emitted when loading options from the `src` URL fails.\n *\n * @csspart search-loading - The container shown while a remote search request is in flight.\n * @csspart max-results-indicator - The message shown when results are truncated by `max-results`.\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart suffix - The container that wraps the suffix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */",
39466
39685
  "documentation": "https://zinc.style/components/select",
39467
39686
  "status": "experimental",
39468
39687
  "since": "1.0",
@@ -49492,11 +49711,23 @@
49492
49711
  "name": "ZnPanel",
49493
49712
  "module": "src/components/panel/panel.component.ts"
49494
49713
  }
49714
+ },
49715
+ {
49716
+ "description": "The row of buttons at the bottom of the body.",
49717
+ "name": "actions"
49718
+ },
49719
+ {
49720
+ "description": "The label and select that choose the language every child is editing.",
49721
+ "name": "language-field"
49722
+ },
49723
+ {
49724
+ "description": "The select itself.",
49725
+ "name": "language-select"
49495
49726
  }
49496
49727
  ],
49497
49728
  "slots": [
49498
49729
  {
49499
- "description": "Default slot for `<zn-translations>` elements.",
49730
+ "description": "The `zn-translations` fields the select drives.",
49500
49731
  "name": "",
49501
49732
  "inheritedFrom": {
49502
49733
  "name": "ZnPanel",
@@ -49504,7 +49735,7 @@
49504
49735
  }
49505
49736
  },
49506
49737
  {
49507
- "description": "Actions displayed in the panel header alongside language buttons.",
49738
+ "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.",
49508
49739
  "name": "actions",
49509
49740
  "inheritedFrom": {
49510
49741
  "name": "ZnPanel",
@@ -49512,7 +49743,7 @@
49512
49743
  }
49513
49744
  },
49514
49745
  {
49515
- "description": "Content displayed in the panel footer.",
49746
+ "description": "Content displayed in the grey panel footer. The header belongs to the language select; nothing else is slotted into it.",
49516
49747
  "name": "footer",
49517
49748
  "inheritedFrom": {
49518
49749
  "name": "ZnPanel",
@@ -49528,7 +49759,7 @@
49528
49759
  "text": "object"
49529
49760
  },
49530
49761
  "static": true,
49531
- "default": "{ 'zn-button': ZnButton, 'zn-button-group': ZnButtonGroup, 'zn-dropdown': ZnDropdown, 'zn-header': ZnHeader, 'zn-menu': ZnMenu }"
49762
+ "default": "{ 'zn-chip': ZnChip, 'zn-header': ZnHeader, 'zn-option': ZnOption, 'zn-select': ZnSelect }"
49532
49763
  },
49533
49764
  {
49534
49765
  "kind": "field",
@@ -49544,95 +49775,119 @@
49544
49775
  "text": "string"
49545
49776
  },
49546
49777
  "default": "''",
49547
- "description": "The group label displayed in the panel header.",
49778
+ "description": "The caption shown in the panel header. An alias for the inherited `caption`, which wins where both are set.",
49548
49779
  "attribute": "label"
49549
49780
  },
49550
49781
  {
49551
49782
  "kind": "field",
49552
- "name": "languages",
49783
+ "name": "inline",
49553
49784
  "type": {
49554
- "text": "Record<string, string>"
49785
+ "text": "boolean"
49555
49786
  },
49556
- "default": "{ 'en': 'EN' }",
49557
- "description": "The available languages for the group.",
49558
- "attribute": "languages"
49787
+ "default": "false",
49788
+ "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.",
49789
+ "attribute": "inline",
49790
+ "reflects": true
49559
49791
  },
49560
49792
  {
49561
49793
  "kind": "field",
49562
- "name": "_activeLanguage",
49794
+ "name": "languageLabel",
49563
49795
  "type": {
49564
49796
  "text": "string"
49565
49797
  },
49566
- "privacy": "private",
49567
- "default": "'en'"
49568
- },
49569
- {
49570
- "kind": "field",
49571
- "name": "_activatedLanguages",
49572
- "type": {
49573
- "text": "string[]"
49574
- },
49575
- "privacy": "private",
49576
- "default": "['en']",
49577
- "description": "Tracks all language codes that have been activated across children."
49798
+ "default": "'Edit Languages'",
49799
+ "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.",
49800
+ "attribute": "language-label"
49578
49801
  },
49579
49802
  {
49580
49803
  "kind": "field",
49581
- "name": "_overflowIndex",
49804
+ "name": "languages",
49582
49805
  "type": {
49583
- "text": "number"
49806
+ "text": "Record<string, string>"
49584
49807
  },
49585
- "privacy": "private",
49586
- "default": "-1"
49808
+ "default": "{ 'en': 'EN' }",
49809
+ "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.",
49810
+ "attribute": "languages"
49587
49811
  },
49588
49812
  {
49589
49813
  "kind": "field",
49590
- "name": "_lastObservedWidth",
49814
+ "name": "_activeLanguage",
49591
49815
  "type": {
49592
- "text": "number"
49816
+ "text": "string"
49593
49817
  },
49594
49818
  "privacy": "private",
49595
- "default": "0"
49819
+ "default": "'en'",
49820
+ "description": "The language every child is currently editing."
49596
49821
  },
49597
49822
  {
49598
49823
  "kind": "field",
49599
- "name": "_measureRafId",
49824
+ "name": "_form",
49600
49825
  "type": {
49601
- "text": "number"
49826
+ "text": "HTMLFormElement | null"
49602
49827
  },
49603
49828
  "privacy": "private",
49604
- "default": "0"
49829
+ "default": "null"
49605
49830
  },
49606
49831
  {
49607
49832
  "kind": "method",
49608
- "name": "_scheduleLangOverflow",
49609
- "privacy": "private"
49833
+ "name": "getAllTranslations",
49834
+ "privacy": "private",
49835
+ "return": {
49836
+ "type": {
49837
+ "text": "ZnTranslations[]"
49838
+ }
49839
+ },
49840
+ "description": "The children the select drives. Read live rather than cached, so markup added later is picked up."
49610
49841
  },
49611
49842
  {
49612
49843
  "kind": "method",
49613
- "name": "_computeLangOverflow",
49614
- "privacy": "private"
49844
+ "name": "syncChildren",
49845
+ "privacy": "private",
49846
+ "description": "Sync grouped state, languages, and active language to all children."
49615
49847
  },
49616
49848
  {
49617
49849
  "kind": "method",
49618
- "name": "getAllTranslations",
49850
+ "name": "languageState",
49619
49851
  "privacy": "private",
49620
49852
  "return": {
49621
49853
  "type": {
49622
- "text": "ZnTranslations[]"
49854
+ "text": "{ type: 'success' | 'warning' | 'error'; label: string }"
49623
49855
  }
49624
- }
49856
+ },
49857
+ "parameters": [
49858
+ {
49859
+ "name": "language",
49860
+ "type": {
49861
+ "text": "string"
49862
+ }
49863
+ }
49864
+ ],
49865
+ "description": "A language is translated once every child carries a value for it, partial while only some do. The chips and the\ncount are read off the children, so a child's edit has to bring the group back round."
49625
49866
  },
49626
49867
  {
49627
49868
  "kind": "method",
49628
- "name": "syncChildren",
49869
+ "name": "displayName",
49629
49870
  "privacy": "private",
49630
- "description": "Sync grouped state, languages, and active language to all children."
49871
+ "return": {
49872
+ "type": {
49873
+ "text": "string"
49874
+ }
49875
+ },
49876
+ "parameters": [
49877
+ {
49878
+ "name": "language",
49879
+ "type": {
49880
+ "text": "string"
49881
+ }
49882
+ }
49883
+ ],
49884
+ "description": "`English (EN)`, or the code alone where the configured name already is the code."
49631
49885
  },
49632
49886
  {
49633
49887
  "kind": "method",
49634
49888
  "name": "syncChildLanguages",
49635
- "privacy": "private"
49889
+ "privacy": "private",
49890
+ "description": "Children take their language list from the group, so a change to `languages` has to reach them."
49636
49891
  },
49637
49892
  {
49638
49893
  "kind": "field",
@@ -49650,18 +49905,32 @@
49650
49905
  "text": "string"
49651
49906
  }
49652
49907
  }
49653
- ]
49908
+ ],
49909
+ "description": "Moves every child onto `lang` and announces it. Does not touch their values."
49654
49910
  },
49655
49911
  {
49656
49912
  "kind": "field",
49657
- "name": "handleLanguageAdd",
49658
- "privacy": "private"
49913
+ "name": "handleLanguageSelect",
49914
+ "privacy": "private",
49915
+ "description": "The select's own change and input events describe the language being browsed, not a translation being edited, so\nthey are stopped rather than allowed to reach a consumer listening for a child's value change."
49659
49916
  },
49660
49917
  {
49661
49918
  "kind": "field",
49662
- "name": "handleOverflowSelect",
49919
+ "name": "handleLanguageInput",
49663
49920
  "privacy": "private"
49664
49921
  },
49922
+ {
49923
+ "kind": "field",
49924
+ "name": "handleChildChange",
49925
+ "privacy": "private",
49926
+ "description": "A child's edit changes which chips the select shows, and the translated count above it."
49927
+ },
49928
+ {
49929
+ "kind": "field",
49930
+ "name": "handleFormReset",
49931
+ "privacy": "private",
49932
+ "description": "The children restore their own values on the form's reset event without announcing it, and the chips and the\ncount are read off them — so re-read once every listener on that event has run."
49933
+ },
49665
49934
  {
49666
49935
  "kind": "field",
49667
49936
  "name": "hasSlotController",
@@ -49831,16 +50100,34 @@
49831
50100
  "text": "string"
49832
50101
  },
49833
50102
  "default": "''",
49834
- "description": "The group label displayed in the panel header.",
50103
+ "description": "The caption shown in the panel header. An alias for the inherited `caption`, which wins where both are set.",
49835
50104
  "fieldName": "label"
49836
50105
  },
50106
+ {
50107
+ "name": "inline",
50108
+ "type": {
50109
+ "text": "boolean"
50110
+ },
50111
+ "default": "false",
50112
+ "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.",
50113
+ "fieldName": "inline"
50114
+ },
50115
+ {
50116
+ "name": "language-label",
50117
+ "type": {
50118
+ "text": "string"
50119
+ },
50120
+ "default": "'Edit Languages'",
50121
+ "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.",
50122
+ "fieldName": "languageLabel"
50123
+ },
49837
50124
  {
49838
50125
  "name": "languages",
49839
50126
  "type": {
49840
50127
  "text": "Record<string, string>"
49841
50128
  },
49842
50129
  "default": "{ 'en': 'EN' }",
49843
- "description": "The available languages for the group.",
50130
+ "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.",
49844
50131
  "fieldName": "languages"
49845
50132
  },
49846
50133
  {
@@ -49980,16 +50267,19 @@
49980
50267
  "name": "ZnPanel",
49981
50268
  "module": "/src/components/panel/panel.component"
49982
50269
  },
49983
- "summary": "A panel-styled container that provides a shared language toggle for multiple zn-translations children.",
50270
+ "summary": "Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\ntranslated a language at a time.",
49984
50271
  "tagNameWithoutPrefix": "translation-group",
49985
50272
  "tagName": "zn-translation-group",
49986
50273
  "customElement": true,
49987
- "jsDoc": "/**\n * @summary A panel-styled container that provides a shared language toggle for multiple zn-translations children.\n *\n * @dependency zn-button\n * @dependency zn-button-group\n * @dependency zn-dropdown\n * @dependency zn-menu\n *\n * @event zn-language-change - Emitted when the active language changes. Detail: `{ language: string }`.\n *\n * @slot - Default slot for `<zn-translations>` elements.\n * @slot actions - Actions displayed in the panel header alongside language buttons.\n *\n * @csspart base - The component's base wrapper.\n */",
50274
+ "jsDoc": "/**\n * @summary Puts several zn-translations fields behind one language select, so a whole form's worth of copy is\n * translated a language at a time.\n * @documentation https://zinc.style/components/translation-group\n * @status experimental\n * @since 1.0\n *\n * The select sits at the top right of the header, opposite the caption. Choosing a language switches every child at\n * once, and each child hides its own select while it is in a group — `grouped` is set on them here.\n *\n * Closed, the select carries how many target languages are done — `1/5`. Its options each carry a chip aggregated\n * across the children:\n *\n * - `Translated` — every child has a value for it\n * - `Partial` — only some children do\n * - `English` — none do, so all of them fall back to the English text\n *\n * `Empty` replaces the last of those for English itself, which has nothing to fall back to. English is the source\n * rather than a translation, so it is also left out of the `n of m translated` count beside the label.\n *\n * The children own their values; this component only chooses which language is shown and reports on what they hold.\n * It reads them back on every child `zn-change`, so the chips and the count follow an edit as it is typed.\n *\n * Extends `zn-panel`, so `caption`, `icon`, `flush`, `transparent` and the `footer` slot behave as they do there.\n * Nested inside another panel, add `inline` to drop the chrome and keep the fields aligned with the surrounding form.\n *\n * @dependency zn-chip\n * @dependency zn-header\n * @dependency zn-option\n * @dependency zn-select\n *\n * @event zn-language-change - Emitted when the active language changes. Detail: `{ language: string }`.\n *\n * @slot - The `zn-translations` fields the select drives.\n * @slot actions - Buttons for the bottom of the panel, on the white body rather than the grey footer. They sit on\n * the right, as zinc's form action rows do; `align=\"start\"` moves one to the left. Write them in the order they\n * should be read — the sides are set by CSS ordering, so markup order is what a keyboard follows.\n * @slot footer - Content displayed in the grey panel footer. The header belongs to the language select; nothing\n * else is slotted into it.\n *\n * @csspart base - The component's base wrapper.\n * @csspart actions - The row of buttons at the bottom of the body.\n * @csspart language-field - The label and select that choose the language every child is editing.\n * @csspart language-select - The select itself.\n */",
50275
+ "documentation": "https://zinc.style/components/translation-group",
50276
+ "status": "experimental",
50277
+ "since": "1.0",
49988
50278
  "dependencies": [
49989
- "zn-button",
49990
- "zn-button-group",
49991
- "zn-dropdown",
49992
- "zn-menu"
50279
+ "zn-chip",
50280
+ "zn-header",
50281
+ "zn-option",
50282
+ "zn-select"
49993
50283
  ],
49994
50284
  "cssProperties": [
49995
50285
  {
@@ -50022,6 +50312,38 @@
50022
50312
  "kind": "class",
50023
50313
  "description": "",
50024
50314
  "name": "ZnTranslations",
50315
+ "cssParts": [
50316
+ {
50317
+ "description": "The form control that wraps the label, the language select, the field and the help text.",
50318
+ "name": "form-control"
50319
+ },
50320
+ {
50321
+ "description": "The label's wrapper.",
50322
+ "name": "form-control-label"
50323
+ },
50324
+ {
50325
+ "description": "The wrapper around the field being edited.",
50326
+ "name": "form-control-input"
50327
+ },
50328
+ {
50329
+ "description": "The help text's wrapper.",
50330
+ "name": "form-control-help-text"
50331
+ },
50332
+ {
50333
+ "description": "The select that chooses the language being edited.",
50334
+ "name": "language-select"
50335
+ }
50336
+ ],
50337
+ "slots": [
50338
+ {
50339
+ "description": "The field's label. Alternatively, use the `label` attribute.",
50340
+ "name": "label"
50341
+ },
50342
+ {
50343
+ "description": "Text describing how to fill the field in, shown below it and shared by every language. Alternatively, use the `help-text` attribute.",
50344
+ "name": "help-text"
50345
+ }
50346
+ ],
50025
50347
  "members": [
50026
50348
  {
50027
50349
  "kind": "field",
@@ -50030,7 +50352,7 @@
50030
50352
  "text": "object"
50031
50353
  },
50032
50354
  "static": true,
50033
- "default": "{ 'zn-button': ZnButton, 'zn-button-group': ZnButtonGroup, 'zn-dropdown': ZnDropdown, 'zn-inline-edit': ZnInlineEdit, 'zn-input': ZnInput, 'zn-menu': ZnMenu }"
50355
+ "default": "{ 'zn-chip': ZnChip, 'zn-inline-edit': ZnInlineEdit, 'zn-input': ZnInput, 'zn-option': ZnOption, 'zn-select': ZnSelect, 'zn-textarea': ZnTextarea }"
50034
50356
  },
50035
50357
  {
50036
50358
  "kind": "field",
@@ -50047,7 +50369,7 @@
50047
50369
  "name": "hasSlotController",
50048
50370
  "privacy": "private",
50049
50371
  "readonly": true,
50050
- "default": "new HasSlotController(this, 'label', 'expand', 'help-text')"
50372
+ "default": "new HasSlotController(this, 'label', 'help-text')"
50051
50373
  },
50052
50374
  {
50053
50375
  "kind": "field",
@@ -50056,6 +50378,7 @@
50056
50378
  "text": "string"
50057
50379
  },
50058
50380
  "default": "''",
50381
+ "description": "The name submitted with the form.",
50059
50382
  "attribute": "name"
50060
50383
  },
50061
50384
  {
@@ -50065,6 +50388,7 @@
50065
50388
  "text": "string"
50066
50389
  },
50067
50390
  "default": "'{\"en\":\"\"}'",
50391
+ "description": "The translations as a JSON object keyed by language code. The mirror of `values` in attribute form.",
50068
50392
  "attribute": "value"
50069
50393
  },
50070
50394
  {
@@ -50074,6 +50398,7 @@
50074
50398
  "text": "string"
50075
50399
  },
50076
50400
  "default": "''",
50401
+ "description": "The label shown above the field. If you need HTML, use the `label` slot instead.",
50077
50402
  "attribute": "label"
50078
50403
  },
50079
50404
  {
@@ -50093,6 +50418,7 @@
50093
50418
  "text": "boolean"
50094
50419
  },
50095
50420
  "default": "false",
50421
+ "description": "Disables editing in every language.",
50096
50422
  "attribute": "disabled",
50097
50423
  "reflects": true
50098
50424
  },
@@ -50103,6 +50429,7 @@
50103
50429
  "text": "boolean"
50104
50430
  },
50105
50431
  "default": "false",
50432
+ "description": "Marks the label required. Validity is not enforced per language.",
50106
50433
  "attribute": "required",
50107
50434
  "reflects": true
50108
50435
  },
@@ -50113,6 +50440,7 @@
50113
50440
  "text": "boolean"
50114
50441
  },
50115
50442
  "default": "false",
50443
+ "description": "Removes the component's own padding.",
50116
50444
  "attribute": "flush",
50117
50445
  "reflects": true
50118
50446
  },
@@ -50120,9 +50448,10 @@
50120
50448
  "kind": "field",
50121
50449
  "name": "inputType",
50122
50450
  "type": {
50123
- "text": "'select' | 'text' | 'number' | 'textarea'"
50451
+ "text": "'text' | 'number' | 'textarea'"
50124
50452
  },
50125
50453
  "default": "'text'",
50454
+ "description": "The control each translation is edited through.",
50126
50455
  "attribute": "input-type"
50127
50456
  },
50128
50457
  {
@@ -50131,8 +50460,20 @@
50131
50460
  "type": {
50132
50461
  "text": "number | undefined"
50133
50462
  },
50463
+ "description": "Rows of the textarea, when `input-type` is `textarea`.",
50134
50464
  "attribute": "textarea-rows"
50135
50465
  },
50466
+ {
50467
+ "kind": "field",
50468
+ "name": "inlineEdit",
50469
+ "type": {
50470
+ "text": "boolean"
50471
+ },
50472
+ "default": "false",
50473
+ "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.",
50474
+ "attribute": "inline-edit",
50475
+ "reflects": true
50476
+ },
50136
50477
  {
50137
50478
  "kind": "field",
50138
50479
  "name": "slashItems",
@@ -50208,7 +50549,7 @@
50208
50549
  "text": "boolean"
50209
50550
  },
50210
50551
  "default": "false",
50211
- "description": "When true, hides the individual language navbar and defers language control to a parent zn-translation-group.",
50552
+ "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.",
50212
50553
  "attribute": "grouped",
50213
50554
  "reflects": true
50214
50555
  },
@@ -50219,6 +50560,7 @@
50219
50560
  "text": "Record<string, string>"
50220
50561
  },
50221
50562
  "default": "{ 'en': 'EN' }",
50563
+ "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.",
50222
50564
  "attribute": "languages"
50223
50565
  },
50224
50566
  {
@@ -50228,43 +50570,26 @@
50228
50570
  "text": "Record<string, string>"
50229
50571
  },
50230
50572
  "default": "{}",
50573
+ "description": "The translations as an object keyed by language code. The mirror of `value` in property form.",
50231
50574
  "attribute": "values"
50232
50575
  },
50233
50576
  {
50234
50577
  "kind": "field",
50235
- "name": "_activeLanguage",
50578
+ "name": "defaultValue",
50236
50579
  "type": {
50237
50580
  "text": "string"
50238
50581
  },
50239
- "privacy": "private",
50240
- "default": "'en'"
50241
- },
50242
- {
50243
- "kind": "field",
50244
- "name": "_overflowIndex",
50245
- "type": {
50246
- "text": "number"
50247
- },
50248
- "privacy": "private",
50249
- "default": "-1"
50250
- },
50251
- {
50252
- "kind": "field",
50253
- "name": "_lastObservedWidth",
50254
- "type": {
50255
- "text": "number"
50256
- },
50257
- "privacy": "private",
50258
- "default": "0"
50582
+ "default": "'{\"en\":\"\"}'",
50583
+ "description": "The serialized translations a form reset restores. Taken from the `value` attribute where there is one."
50259
50584
  },
50260
50585
  {
50261
50586
  "kind": "field",
50262
- "name": "_measureRafId",
50587
+ "name": "_activeLanguage",
50263
50588
  "type": {
50264
- "text": "number"
50589
+ "text": "string"
50265
50590
  },
50266
50591
  "privacy": "private",
50267
- "default": "0"
50592
+ "default": "'en'"
50268
50593
  },
50269
50594
  {
50270
50595
  "kind": "field",
@@ -50307,7 +50632,7 @@
50307
50632
  }
50308
50633
  }
50309
50634
  ],
50310
- "description": "Sets the active language externally. Used by zn-translation-group."
50635
+ "description": "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."
50311
50636
  },
50312
50637
  {
50313
50638
  "kind": "method",
@@ -50347,39 +50672,88 @@
50347
50672
  },
50348
50673
  {
50349
50674
  "kind": "method",
50350
- "name": "pendingValues",
50675
+ "name": "hasTranslation",
50676
+ "privacy": "public",
50677
+ "return": {
50678
+ "type": {
50679
+ "text": "boolean"
50680
+ }
50681
+ },
50682
+ "parameters": [
50683
+ {
50684
+ "name": "language",
50685
+ "type": {
50686
+ "text": "string"
50687
+ }
50688
+ }
50689
+ ],
50690
+ "description": "Whether the language carries a translation of its own, rather than falling back to English."
50691
+ },
50692
+ {
50693
+ "kind": "method",
50694
+ "name": "languageState",
50351
50695
  "privacy": "private",
50352
50696
  "return": {
50353
50697
  "type": {
50354
- "text": "Record<string, string>"
50698
+ "text": "{ type: 'success' | 'error'; label: string }"
50355
50699
  }
50356
50700
  },
50357
- "description": "`values`, falling back to the `value` attribute it is built from while that is still pending. A parent\nzn-translation-group syncs its children from its own first update, which runs before theirs, so reading\n`values` alone would see it empty and overwrite the value the server rendered."
50701
+ "parameters": [
50702
+ {
50703
+ "name": "language",
50704
+ "type": {
50705
+ "text": "string"
50706
+ }
50707
+ }
50708
+ ],
50709
+ "description": "The chip shown against a language, in the select's value and against each of its options."
50358
50710
  },
50359
50711
  {
50360
50712
  "kind": "method",
50361
- "name": "_scheduleLangOverflow",
50362
- "privacy": "private"
50713
+ "name": "languageLabel",
50714
+ "privacy": "private",
50715
+ "return": {
50716
+ "type": {
50717
+ "text": "string"
50718
+ }
50719
+ },
50720
+ "parameters": [
50721
+ {
50722
+ "name": "language",
50723
+ "type": {
50724
+ "text": "string"
50725
+ }
50726
+ }
50727
+ ],
50728
+ "description": "`English (EN)` — the configured name plus its code, unless the name already is the code, in which case the code\nalone. `languages` is written both ways: `{\"en\": \"English\"}` and `{\"en\": \"EN\"}`."
50363
50729
  },
50364
50730
  {
50365
50731
  "kind": "method",
50366
- "name": "_computeLangOverflow",
50367
- "privacy": "private"
50732
+ "name": "pendingValues",
50733
+ "privacy": "private",
50734
+ "return": {
50735
+ "type": {
50736
+ "text": "Record<string, string>"
50737
+ }
50738
+ },
50739
+ "description": "`values`, falling back to the `value` attribute it is built from while that is still pending. A parent\nzn-translation-group syncs its children from its own first update, which runs before theirs, so reading\n`values` alone would see it empty and overwrite the value the server rendered."
50368
50740
  },
50369
50741
  {
50370
50742
  "kind": "field",
50371
- "name": "handleLanguageAdd",
50372
- "privacy": "private"
50743
+ "name": "handleLanguageSelect",
50744
+ "privacy": "private",
50745
+ "description": "The select's own change and input events are stopped here: they describe the language being browsed, not the\ntranslation being edited, and a consumer listening on zn-translations reads either as a value change."
50373
50746
  },
50374
50747
  {
50375
50748
  "kind": "field",
50376
- "name": "handleOverflowSelect",
50749
+ "name": "handleLanguageInput",
50377
50750
  "privacy": "private"
50378
50751
  },
50379
50752
  {
50380
50753
  "kind": "field",
50381
50754
  "name": "switchLanguage",
50382
- "privacy": "private"
50755
+ "privacy": "private",
50756
+ "description": "The language shown in the field, without touching `values`."
50383
50757
  },
50384
50758
  {
50385
50759
  "kind": "field",
@@ -50401,6 +50775,32 @@
50401
50775
  "name": "handleSubmit",
50402
50776
  "privacy": "private"
50403
50777
  },
50778
+ {
50779
+ "kind": "method",
50780
+ "name": "renderField",
50781
+ "privacy": "private",
50782
+ "parameters": [
50783
+ {
50784
+ "name": "value",
50785
+ "type": {
50786
+ "text": "string"
50787
+ }
50788
+ },
50789
+ {
50790
+ "name": "placeholder",
50791
+ "type": {
50792
+ "text": "string"
50793
+ }
50794
+ },
50795
+ {
50796
+ "name": "isRTL",
50797
+ "type": {
50798
+ "text": "boolean"
50799
+ }
50800
+ }
50801
+ ],
50802
+ "description": "The control the active language's translation is edited through."
50803
+ },
50404
50804
  {
50405
50805
  "kind": "method",
50406
50806
  "name": "isRTLLanguage",
@@ -50417,7 +50817,18 @@
50417
50817
  "text": "string"
50418
50818
  }
50419
50819
  }
50420
- ]
50820
+ ],
50821
+ "description": "Arabic and Hebrew read right to left, so the field's `dir` follows the language being edited."
50822
+ }
50823
+ ],
50824
+ "events": [
50825
+ {
50826
+ "description": "Emitted when a translation's value changes.",
50827
+ "name": "zn-change"
50828
+ },
50829
+ {
50830
+ "description": "Emitted when a translation receives input.",
50831
+ "name": "zn-input"
50421
50832
  }
50422
50833
  ],
50423
50834
  "attributes": [
@@ -50427,6 +50838,7 @@
50427
50838
  "text": "string"
50428
50839
  },
50429
50840
  "default": "''",
50841
+ "description": "The name submitted with the form.",
50430
50842
  "fieldName": "name"
50431
50843
  },
50432
50844
  {
@@ -50435,6 +50847,7 @@
50435
50847
  "text": "string"
50436
50848
  },
50437
50849
  "default": "'{\"en\":\"\"}'",
50850
+ "description": "The translations as a JSON object keyed by language code. The mirror of `values` in attribute form.",
50438
50851
  "fieldName": "value"
50439
50852
  },
50440
50853
  {
@@ -50443,6 +50856,7 @@
50443
50856
  "text": "string"
50444
50857
  },
50445
50858
  "default": "''",
50859
+ "description": "The label shown above the field. If you need HTML, use the `label` slot instead.",
50446
50860
  "fieldName": "label"
50447
50861
  },
50448
50862
  {
@@ -50460,6 +50874,7 @@
50460
50874
  "text": "boolean"
50461
50875
  },
50462
50876
  "default": "false",
50877
+ "description": "Disables editing in every language.",
50463
50878
  "fieldName": "disabled"
50464
50879
  },
50465
50880
  {
@@ -50468,6 +50883,7 @@
50468
50883
  "text": "boolean"
50469
50884
  },
50470
50885
  "default": "false",
50886
+ "description": "Marks the label required. Validity is not enforced per language.",
50471
50887
  "fieldName": "required"
50472
50888
  },
50473
50889
  {
@@ -50476,14 +50892,16 @@
50476
50892
  "text": "boolean"
50477
50893
  },
50478
50894
  "default": "false",
50895
+ "description": "Removes the component's own padding.",
50479
50896
  "fieldName": "flush"
50480
50897
  },
50481
50898
  {
50482
50899
  "name": "input-type",
50483
50900
  "type": {
50484
- "text": "'select' | 'text' | 'number' | 'textarea'"
50901
+ "text": "'text' | 'number' | 'textarea'"
50485
50902
  },
50486
50903
  "default": "'text'",
50904
+ "description": "The control each translation is edited through.",
50487
50905
  "fieldName": "inputType"
50488
50906
  },
50489
50907
  {
@@ -50491,8 +50909,18 @@
50491
50909
  "type": {
50492
50910
  "text": "number | undefined"
50493
50911
  },
50912
+ "description": "Rows of the textarea, when `input-type` is `textarea`.",
50494
50913
  "fieldName": "textareaRows"
50495
50914
  },
50915
+ {
50916
+ "name": "inline-edit",
50917
+ "type": {
50918
+ "text": "boolean"
50919
+ },
50920
+ "default": "false",
50921
+ "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.",
50922
+ "fieldName": "inlineEdit"
50923
+ },
50496
50924
  {
50497
50925
  "name": "slash-items",
50498
50926
  "type": {
@@ -50553,7 +50981,7 @@
50553
50981
  "text": "boolean"
50554
50982
  },
50555
50983
  "default": "false",
50556
- "description": "When true, hides the individual language navbar and defers language control to a parent zn-translation-group.",
50984
+ "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.",
50557
50985
  "fieldName": "grouped"
50558
50986
  },
50559
50987
  {
@@ -50562,6 +50990,7 @@
50562
50990
  "text": "Record<string, string>"
50563
50991
  },
50564
50992
  "default": "{ 'en': 'EN' }",
50993
+ "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.",
50565
50994
  "fieldName": "languages"
50566
50995
  },
50567
50996
  {
@@ -50570,6 +50999,7 @@
50570
50999
  "text": "Record<string, string>"
50571
51000
  },
50572
51001
  "default": "{}",
51002
+ "description": "The translations as an object keyed by language code. The mirror of `value` in property form.",
50573
51003
  "fieldName": "values"
50574
51004
  }
50575
51005
  ],
@@ -50577,9 +51007,22 @@
50577
51007
  "name": "ZincElement",
50578
51008
  "module": "/src/internal/zinc-element"
50579
51009
  },
51010
+ "summary": "Collects one piece of text in several languages, one language at a time.",
50580
51011
  "tagNameWithoutPrefix": "translations",
50581
51012
  "tagName": "zn-translations",
50582
- "customElement": true
51013
+ "customElement": true,
51014
+ "jsDoc": "/**\n * @summary Collects one piece of text in several languages, one language at a time.\n * @documentation https://zinc.style/components/translations\n * @status experimental\n * @since 1.0\n *\n * A select above the field chooses the language being edited. Closed, it carries how many languages are translated —\n * `1/5`; open, every language it offers carries a chip saying whether it has a translation of its own or falls back\n * to English. Blank languages fall back to English at render\n * time, so a blank field shows the English text as its placeholder rather than looking empty.\n *\n * The value submitted is a JSON object keyed by language code. A language stays out of it until it is typed into, so\n * browsing the languages does not pad the payload with empty translations.\n *\n * Put several of these in a `zn-translation-group` to have one select drive all of them.\n *\n * @dependency zn-chip\n * @dependency zn-inline-edit\n * @dependency zn-input\n * @dependency zn-option\n * @dependency zn-select\n * @dependency zn-textarea\n *\n * @slot label - The field's label. Alternatively, use the `label` attribute.\n * @slot help-text - Text describing how to fill the field in, shown below it and shared by every language.\n * Alternatively, use the `help-text` attribute.\n *\n * @event zn-change - Emitted when a translation's value changes.\n * @event zn-input - Emitted when a translation receives input.\n *\n * @csspart form-control - The form control that wraps the label, the language select, the field and the help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The wrapper around the field being edited.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart language-select - The select that chooses the language being edited.\n */",
51015
+ "documentation": "https://zinc.style/components/translations",
51016
+ "status": "experimental",
51017
+ "since": "1.0",
51018
+ "dependencies": [
51019
+ "zn-chip",
51020
+ "zn-inline-edit",
51021
+ "zn-input",
51022
+ "zn-option",
51023
+ "zn-select",
51024
+ "zn-textarea"
51025
+ ]
50583
51026
  }
50584
51027
  ],
50585
51028
  "exports": [
@@ -50889,7 +51332,7 @@
50889
51332
  "package": {
50890
51333
  "name": "@kubex/zinc",
50891
51334
  "description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
50892
- "version": "1.1.115",
51335
+ "version": "1.1.117",
50893
51336
  "author": "",
50894
51337
  "license": "MIT"
50895
51338
  }