@kubex/zinc 1.1.98 → 1.1.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/AGENTS.md +5 -0
  2. package/CLAUDE.md +5 -0
  3. package/dist/custom-elements.json +2930 -2072
  4. package/dist/vscode.html-custom-data.json +198 -59
  5. package/dist/web-types.json +501 -207
  6. package/dist/zn.d.ts +203 -9
  7. package/dist/zn.min.js +343 -297
  8. package/docs/pages/components/background.md +143 -0
  9. package/docs/pages/components/checkbox-group.md +13 -1
  10. package/docs/pages/components/checkbox.md +59 -1
  11. package/docs/pages/components/radio-group.md +12 -0
  12. package/docs/pages/components/radio.md +188 -0
  13. package/docs/pages/components/remarkd-editor.md +22 -0
  14. package/docs/pages/components/scroll-container.md +14 -15
  15. package/package.json +1 -1
  16. package/src/components/background/background.component.ts +111 -0
  17. package/src/components/background/background.scss +236 -0
  18. package/src/components/background/background.test.ts +120 -0
  19. package/src/components/background/index.ts +12 -0
  20. package/src/components/checkbox/checkbox.component.ts +62 -6
  21. package/src/components/checkbox/checkbox.scss +1 -0
  22. package/src/components/checkbox/checkbox.test.ts +56 -0
  23. package/src/components/checkbox-group/checkbox-group.component.ts +15 -0
  24. package/src/components/checkbox-group/checkbox-group.scss +23 -5
  25. package/src/components/checkbox-group/checkbox-group.test.ts +15 -0
  26. package/src/components/confirm/confirm.component.ts +3 -3
  27. package/src/components/confirm/confirm.test.ts +15 -0
  28. package/src/components/dialog/dialog.component.ts +3 -2
  29. package/src/components/editor/editor.component.ts +7 -6
  30. package/src/components/header/header.scss +1 -1
  31. package/src/components/navbar/navbar.scss +11 -0
  32. package/src/components/radio/radio.component.ts +63 -7
  33. package/src/components/radio/radio.scss +1 -0
  34. package/src/components/radio/radio.test.ts +56 -0
  35. package/src/components/radio-group/radio-group.component.ts +16 -3
  36. package/src/components/radio-group/radio-group.scss +23 -4
  37. package/src/components/radio-group/radio-group.test.ts +15 -0
  38. package/src/components/remarkd-editor/remarkd-editor.component.ts +118 -5
  39. package/src/components/remarkd-editor/remarkd-editor.scss +8 -1
  40. package/src/components/remarkd-editor/remarkd-editor.test.ts +96 -0
  41. package/src/components/scroll-container/scroll-container.component.ts +15 -1
  42. package/src/components/scroll-container/scroll-container.scss +4 -2
  43. package/src/components/scroll-container/scroll-container.test.ts +13 -0
  44. package/src/components/slideout/slideout.component.ts +3 -2
  45. package/src/components/thumbnail-group/thumbnail-group.scss +0 -1
  46. package/src/components/tile/tile.scss +4 -2
  47. package/src/components/translation-group/translation-group.test.ts +22 -0
  48. package/src/components/translations/translations.component.ts +18 -3
  49. package/src/form-control.scss +3 -1
  50. package/src/internal/conditional.ts +2 -2
  51. package/src/internal/form.ts +2 -1
  52. package/src/internal/selection-card.ts +19 -0
  53. package/src/selection-card.scss +187 -0
  54. package/src/utilities/query.test.ts +18 -1
  55. package/src/utilities/query.ts +8 -0
  56. package/src/zinc.ts +1 -0
@@ -13,6 +13,17 @@
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
+ },
16
27
  {
17
28
  "name": "zn-alert",
18
29
  "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.",
@@ -53,17 +64,6 @@
53
64
  }
54
65
  ]
55
66
  },
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",
@@ -138,6 +138,58 @@
138
138
  }
139
139
  ]
140
140
  },
141
+ {
142
+ "name": "zn-background",
143
+ "description": "Composes a colour, decorative image, image strength, optional motion and contrast overlay behind slotted content.\n---\n\n\n### **Slots:**\n - _default_ - Content displayed above the background layers.\n\n### **CSS Properties:**\n - **--zn-background-color** - Fallback colour when the `color` attribute is not set. _(default: undefined)_\n- **--zn-background-image-position** - Position of the background image. Defaults to `center`. _(default: undefined)_\n- **--zn-background-overlay-angle** - Direction of the overlay gradient. Defaults to `110deg`. _(default: undefined)_\n- **--zn-background-floating-icon-color** - Colour of the floating icons. Defaults to `currentColor`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's full-size background canvas.\n- **image** - The decorative background image.\n- **overlay** - The contrast overlay between the image and content.\n- **floating-icons** - The non-interactive layer containing the floating icons.\n- **floating-icon** - Each floating `zn-icon`.\n- **content** - The wrapper around the default slot.",
144
+ "attributes": [
145
+ {
146
+ "name": "image",
147
+ "description": "URL of the decorative background image.",
148
+ "values": []
149
+ },
150
+ {
151
+ "name": "color",
152
+ "description": "CSS colour painted beneath the image.",
153
+ "values": []
154
+ },
155
+ {
156
+ "name": "image-strength",
157
+ "description": "Visibility of the image: `soft` (30%), `medium` (62%) or `full` (100%).",
158
+ "values": [{ "name": "BackgroundImageStrength" }]
159
+ },
160
+ {
161
+ "name": "motion",
162
+ "description": "Subtle animation applied to the image. Motion stops when reduced motion is requested.",
163
+ "values": [{ "name": "BackgroundMotion" }]
164
+ },
165
+ {
166
+ "name": "overlay",
167
+ "description": "Strength of the contrast gradient above the image.",
168
+ "values": [{ "name": "BackgroundOverlay" }]
169
+ },
170
+ {
171
+ "name": "overlay-tone",
172
+ "description": "Whether the overlay uses a light or dark contrast treatment.",
173
+ "values": [{ "name": "BackgroundOverlayTone" }]
174
+ },
175
+ {
176
+ "name": "floating-icons",
177
+ "description": "Comma-separated Zinc icon names placed as ambient decoration. At most eight are rendered.",
178
+ "values": []
179
+ },
180
+ {
181
+ "name": "paused",
182
+ "description": "Pauses background motion without changing the selected motion treatment.",
183
+ "values": []
184
+ }
185
+ ],
186
+ "references": [
187
+ {
188
+ "name": "Documentation",
189
+ "url": "https://zinc.style/components/background"
190
+ }
191
+ ]
192
+ },
141
193
  {
142
194
  "name": "zn-bulk-actions",
143
195
  "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.",
@@ -566,7 +618,7 @@
566
618
  },
567
619
  {
568
620
  "name": "zn-checkbox",
569
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the checkbox loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the checkbox gains focus.\n- **zn-input** - Emitted when the checkbox receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the checkbox.\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox.\n- **blur()** - Removes focus from the checkbox.\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. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The checkbox's label.\n- **description** - A description of the checkbox's label. Serves as help text for a checkbox item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected checkbox item. Use only with the contained style.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the checkbox's checked state.\n- **control--checked** - Matches the control part when the checkbox is checked.\n- **control--indeterminate** - Matches the control part when the checkbox is indeterminate.\n- **checked-icon** - The checked icon, an `<zn-icon>` element.\n- **unchecked-icon** - The unchecked icon, an `<zn-icon>` element.\n- **indeterminate-icon** - The indeterminate icon, an `<zn-icon>` element.\n- **label** - The container that wraps the checkbox's label.\n- **description** - The container that wraps the checkbox's description.\n- **selected-content** - The container that wraps optional content that appears when a checkbox is checked.",
621
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the checkbox loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the checkbox gains focus.\n- **zn-input** - Emitted when the checkbox receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the checkbox.\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox.\n- **blur()** - Removes focus from the checkbox.\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. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The checkbox's label.\n- **image** - Replaces the built-in image used by contained checkboxes.\n- **description** - A description of the checkbox's label. Serves as help text for a checkbox item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected checkbox item. Use only with the contained style.\n\n### **CSS Properties:**\n - **--zn-selection-card-image-width** - Width of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-image-height** - Height of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-min-height** - Minimum height of a contained checkbox with an image. _(default: undefined)_\n- **--zn-selection-card-content-min-width** - Width the card text keeps before it wraps below the image. _(default: undefined)_\n- **--zn-selection-card-title-font-size** - Font size of a selection card title. _(default: undefined)_\n- **--zn-selection-card-padding** - Equal inset around the contents of a selection card. _(default: undefined)_\n- **--zn-selection-card-gap** - Space between the image, title, and indicator gutter. _(default: undefined)_\n- **--zn-selection-card-control-offset** - Distance between a positioned control and the card edge. _(default: undefined)_\n- **--zn-selection-card-border-radius** - Corner radius of a contained container. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the checkbox's checked state.\n- **control--checked** - Matches the control part when the checkbox is checked.\n- **control--indeterminate** - Matches the control part when the checkbox is indeterminate.\n- **checked-icon** - The checked icon, an `<zn-icon>` element.\n- **unchecked-icon** - The unchecked icon, an `<zn-icon>` element.\n- **indeterminate-icon** - The indeterminate icon, an `<zn-icon>` element.\n- **image-container** - The wrapper around the built-in image or image slot.\n- **image** - The built-in image.\n- **card-title** - The title inside a selection card.\n- **label** - The container that wraps the checkbox's label.\n- **description** - The container that wraps the checkbox's description.\n- **selected-content** - The container that wraps optional content that appears when a checkbox is checked.",
570
622
  "attributes": [
571
623
  { "name": "title", "values": [] },
572
624
  {
@@ -579,6 +631,11 @@
579
631
  "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
580
632
  "values": []
581
633
  },
634
+ {
635
+ "name": "card-title",
636
+ "description": "Title rendered inside the card. The default slot takes precedence when provided.",
637
+ "values": []
638
+ },
582
639
  {
583
640
  "name": "unchecked-value",
584
641
  "description": "The unchecked value of the checkbox, submitted as a name/value pair with form data.",
@@ -613,6 +670,31 @@
613
670
  "description": "Draws a container around the checkbox.",
614
671
  "values": []
615
672
  },
673
+ {
674
+ "name": "square",
675
+ "description": "Squares off the corners of the container drawn by `contained`, which is rounded by default.",
676
+ "values": []
677
+ },
678
+ {
679
+ "name": "src",
680
+ "description": "URL for the image shown in a contained checkbox.",
681
+ "values": []
682
+ },
683
+ {
684
+ "name": "image-alt",
685
+ "description": "Accessible text for the built-in image. Leave empty when the image is decorative.",
686
+ "values": []
687
+ },
688
+ {
689
+ "name": "image-position",
690
+ "description": "Places the image above, beside, or below the checkbox's text. Requires `contained`.",
691
+ "values": [{ "name": "SelectionCardImagePosition" }]
692
+ },
693
+ {
694
+ "name": "control-position",
695
+ "description": "Places the checkbox indicator within a contained card. Use `none` to hide the indicator so the card itself\nshows the selected state. Requires `contained`.",
696
+ "values": [{ "name": "SelectionCardControlPosition" }]
697
+ },
616
698
  {
617
699
  "name": "borderless",
618
700
  "description": "Removes a container around the checkbox.",
@@ -680,7 +762,7 @@
680
762
  },
681
763
  {
682
764
  "name": "zn-checkbox-group",
683
- "description": "Shotrt summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the checkbox group's selected value changes.\n- **zn-input** - Emitted when the checkbox group receives user input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\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(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where `<zn-checkbox>` elements are placed.\n- **label** - The checkbox group's label. Required for proper accessibility. 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- **help-text** - Text that describes how to use the checkbox group. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\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 input's wrapper.\n- **form-control-help-text** - The help text's wrapper.",
765
+ "description": "Shotrt summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-change** - Emitted when the checkbox group's selected value changes.\n- **zn-input** - Emitted when the checkbox group receives user input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\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(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where `<zn-checkbox>` elements are placed.\n- **label** - The checkbox group's label. Required for proper accessibility. 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- **help-text** - Text that describes how to use the checkbox group. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--zn-checkbox-group-column-width** - Minimum column width used by the horizontal contained grid, or the card basis when `wrap` is set. _(default: undefined)_\n\n### **CSS Parts:**\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 input's wrapper.\n- **form-control-help-text** - The help text's wrapper.",
684
766
  "attributes": [
685
767
  {
686
768
  "name": "label",
@@ -726,6 +808,16 @@
726
808
  "description": "The checkbox group's style. Changes the group's style from the default (plain) style to the 'contained' style. This style will be applied to all child checkboxes.",
727
809
  "values": []
728
810
  },
811
+ {
812
+ "name": "square",
813
+ "description": "Squares off the corners of every contained checkbox in the group, which are rounded by default.",
814
+ "values": []
815
+ },
816
+ {
817
+ "name": "wrap",
818
+ "description": "Lays horizontal contained checkboxes out as a wrapping row instead of an equal-width grid, so each one sizes from\n`--zn-checkbox-group-column-width` (set it to `auto` to size from content) and wraps onto a new line when needed.",
819
+ "values": []
820
+ },
729
821
  {
730
822
  "name": "form",
731
823
  "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
@@ -2730,45 +2822,6 @@
2730
2822
  }
2731
2823
  ]
2732
2824
  },
2733
- {
2734
- "name": "zn-page",
2735
- "description": "Combines a page header with tab navigation and tab panels.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n \n\n\n### **Slots:**\n - _default_ - Page content. Use zn-tab for named tabs and header-action/header-actions for header actions.\n- **description** - Rich subtitle/description content. Falls back to the `summary` attribute when empty.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters). Forwarded to the navbar's bottom 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.",
2736
- "attributes": [
2737
- { "name": "caption", "values": [] },
2738
- { "name": "entity-id", "values": [] },
2739
- { "name": "entity-id-show", "values": [] },
2740
- { "name": "full-location", "values": [] },
2741
- { "name": "modal", "values": [] },
2742
- { "name": "nested", "values": [] },
2743
- { "name": "primary", "values": [] },
2744
- { "name": "previous-path", "values": [] },
2745
- { "name": "previous-target", "values": [] },
2746
- { "name": "summary", "values": [] },
2747
- { "name": "master-id", "values": [] },
2748
- { "name": "default-uri", "values": [] },
2749
- { "name": "active", "values": [] },
2750
- { "name": "split", "values": [] },
2751
- { "name": "split-min", "values": [] },
2752
- { "name": "split-min-secondary", "values": [] },
2753
- { "name": "split-max", "values": [] },
2754
- { "name": "primary-caption", "values": [] },
2755
- { "name": "secondary-caption", "values": [] },
2756
- { "name": "no-prefetch", "values": [] },
2757
- { "name": "no-cache", "values": [] },
2758
- { "name": "local-storage", "values": [] },
2759
- { "name": "store-key", "values": [] },
2760
- { "name": "store-ttl", "values": [] },
2761
- { "name": "padded", "values": [] },
2762
- { "name": "fetch-style", "values": [] },
2763
- { "name": "full-width", "values": [] },
2764
- { "name": "padded-right", "values": [] },
2765
- { "name": "monitor", "values": [] },
2766
- { "name": "description", "values": [] }
2767
- ],
2768
- "references": [
2769
- { "name": "Documentation", "url": "https://zinc.style/components/page" }
2770
- ]
2771
- },
2772
2825
  {
2773
2826
  "name": "zn-page-builder",
2774
2827
  "description": "A config-driven page composer: a palette of predefined section types, a linear\ncanvas of section cards, and an inspector for editing each section's content.\n---\n\n\n### **Events:**\n - **zn-page-change** - Emitted whenever the page state changes. `event.detail.state` is the new PageState.\n- **zn-page-selection-change** - Emitted when the selected section changes. `event.detail.sectionId`.\n\n### **Methods:**\n - **checkValidity(): _boolean_** - Checks for validity but does not show a validation message.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(_message)** - Sets a custom validation message. Pass an empty string to restore validity.\n- **addSection(type: _string_, index: _number_): _PageSection | null_** - Adds a section of a registered type at `index` (default: end). Returns null for unknown types.\n- **addSectionToSlot(type: _string_, containerId: _string_, slotIndex: _number_): _PageSection | null_** - Adds a new section of a registered type into a container's slot. Returns null if not allowed.\n\n### **Slots:**\n - **config** - `<template type=\"…\">` declarations; never displayed. Each template's attributes (type, label, icon, icon-library, color, category, description, slots, accepts) declare a palette entry and its content declares the inspector form for that type. `slots` makes the section a container with that many child slots; `accepts` is a comma-separated list of the type keys its slots allow.\n- **header-left** - Actions shown on the left of the header bar.\n- **header-right** - Actions shown on the right of the header bar.\n\n### **CSS Parts:**\n - **base** - The grid wrapper.\n- **header** - The full-width header action bar (only rendered when header slots are filled).\n- **palette** - The left palette panel.\n- **canvas** - The centre section-card canvas.\n- **inspector** - The right panel while a section is selected.\n- **inspector-header** - The inspector's fixed header (icon, section name, type, close).\n- **inspector-body** - The inspector's scrolling form area.",
@@ -2818,6 +2871,45 @@
2818
2871
  }
2819
2872
  ]
2820
2873
  },
2874
+ {
2875
+ "name": "zn-page",
2876
+ "description": "Combines a page header with tab navigation and tab panels.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n \n\n\n### **Slots:**\n - _default_ - Page content. Use zn-tab for named tabs and header-action/header-actions for header actions.\n- **description** - Rich subtitle/description content. Falls back to the `summary` attribute when empty.\n- **bottom** - Content rendered below the navbar row (e.g. chips, filters). Forwarded to the navbar's bottom 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.",
2877
+ "attributes": [
2878
+ { "name": "caption", "values": [] },
2879
+ { "name": "entity-id", "values": [] },
2880
+ { "name": "entity-id-show", "values": [] },
2881
+ { "name": "full-location", "values": [] },
2882
+ { "name": "modal", "values": [] },
2883
+ { "name": "nested", "values": [] },
2884
+ { "name": "primary", "values": [] },
2885
+ { "name": "previous-path", "values": [] },
2886
+ { "name": "previous-target", "values": [] },
2887
+ { "name": "summary", "values": [] },
2888
+ { "name": "master-id", "values": [] },
2889
+ { "name": "default-uri", "values": [] },
2890
+ { "name": "active", "values": [] },
2891
+ { "name": "split", "values": [] },
2892
+ { "name": "split-min", "values": [] },
2893
+ { "name": "split-min-secondary", "values": [] },
2894
+ { "name": "split-max", "values": [] },
2895
+ { "name": "primary-caption", "values": [] },
2896
+ { "name": "secondary-caption", "values": [] },
2897
+ { "name": "no-prefetch", "values": [] },
2898
+ { "name": "no-cache", "values": [] },
2899
+ { "name": "local-storage", "values": [] },
2900
+ { "name": "store-key", "values": [] },
2901
+ { "name": "store-ttl", "values": [] },
2902
+ { "name": "padded", "values": [] },
2903
+ { "name": "fetch-style", "values": [] },
2904
+ { "name": "full-width", "values": [] },
2905
+ { "name": "padded-right", "values": [] },
2906
+ { "name": "monitor", "values": [] },
2907
+ { "name": "description", "values": [] }
2908
+ ],
2909
+ "references": [
2910
+ { "name": "Documentation", "url": "https://zinc.style/components/page" }
2911
+ ]
2912
+ },
2821
2913
  {
2822
2914
  "name": "zn-page-nav",
2823
2915
  "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\n \n\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.",
@@ -3254,7 +3346,7 @@
3254
3346
  },
3255
3347
  {
3256
3348
  "name": "zn-radio",
3257
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the radio loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the radio gains focus.\n- **zn-input** - Emitted when the radio receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the radio.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio.\n- **blur()** - Removes focus from the radio.\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. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The radio's label.\n- **description** - A description of the radio's label. Serves as help text for a radio item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected radio item. Use only with the contained style.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the radio's checked state.\n- **control--checked** - Matches the control part when the radio is checked.\n- **checked-icon** - The checked icon, an `<zn-icon>` element.\n- **label** - The container that wraps the radio's label.\n- **description** - The container that wraps the radio's description.\n- **selected-content** - The container that wraps optional content that appears when a radio is checked.",
3349
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-blur** - Emitted when the radio loses focus.\n- **zn-change** - Emitted when the checked state changes.\n- **zn-focus** - Emitted when the radio gains focus.\n- **zn-input** - Emitted when the radio receives input.\n- **zn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the radio.\n- **focus(options: _FocusOptions_)** - Sets focus on the radio.\n- **blur()** - Removes focus from the radio.\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. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The radio's label.\n- **image** - Replaces the built-in image used by contained radios.\n- **description** - A description of the radio's label. Serves as help text for a radio item. Alternatively, you can use the `description` attribute.\n- **selected-content** - Use to nest rich content (like an input) inside a selected radio item. Use only with the contained style.\n\n### **CSS Properties:**\n - **--zn-selection-card-image-width** - Width of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-image-height** - Height of the built-in card image. _(default: undefined)_\n- **--zn-selection-card-min-height** - Minimum height of a contained radio with an image. _(default: undefined)_\n- **--zn-selection-card-content-min-width** - Width the card text keeps before it wraps below the image. _(default: undefined)_\n- **--zn-selection-card-title-font-size** - Font size of a selection card title. _(default: undefined)_\n- **--zn-selection-card-padding** - Equal inset around the contents of a selection card. _(default: undefined)_\n- **--zn-selection-card-gap** - Space between the image, title, and indicator gutter. _(default: undefined)_\n- **--zn-selection-card-control-offset** - Distance between a positioned control and the card edge. _(default: undefined)_\n- **--zn-selection-card-border-radius** - Corner radius of a contained container. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the radio's checked state.\n- **control--checked** - Matches the control part when the radio is checked.\n- **checked-icon** - The checked icon, an `<zn-icon>` element.\n- **image-container** - The wrapper around the built-in image or image slot.\n- **image** - The built-in image.\n- **card-title** - The title inside a selection card.\n- **label** - The container that wraps the radio's label.\n- **description** - The container that wraps the radio's description.\n- **selected-content** - The container that wraps optional content that appears when a radio is checked.",
3258
3350
  "attributes": [
3259
3351
  { "name": "title", "values": [] },
3260
3352
  {
@@ -3267,6 +3359,11 @@
3267
3359
  "description": "The current value of the radio, submitted as a name/value pair with form data.",
3268
3360
  "values": []
3269
3361
  },
3362
+ {
3363
+ "name": "card-title",
3364
+ "description": "Title rendered inside the card. The default slot takes precedence when provided.",
3365
+ "values": []
3366
+ },
3270
3367
  {
3271
3368
  "name": "size",
3272
3369
  "description": "The radio's size.",
@@ -3291,6 +3388,31 @@
3291
3388
  "description": "Draws a container around the radio.",
3292
3389
  "values": []
3293
3390
  },
3391
+ {
3392
+ "name": "square",
3393
+ "description": "Squares off the corners of the container drawn by `contained`, which is rounded by default.",
3394
+ "values": []
3395
+ },
3396
+ {
3397
+ "name": "src",
3398
+ "description": "URL for the image shown in a contained radio.",
3399
+ "values": []
3400
+ },
3401
+ {
3402
+ "name": "image-alt",
3403
+ "description": "Accessible text for the built-in image. Leave empty when the image is decorative.",
3404
+ "values": []
3405
+ },
3406
+ {
3407
+ "name": "image-position",
3408
+ "description": "Places the image above, beside, or below the radio's text. Requires `contained`.",
3409
+ "values": [{ "name": "SelectionCardImagePosition" }]
3410
+ },
3411
+ {
3412
+ "name": "control-position",
3413
+ "description": "Places the radio indicator within a contained card. Use `none` to hide the indicator so the card itself\nshows the selected state. Requires `contained`.",
3414
+ "values": [{ "name": "SelectionCardControlPosition" }]
3415
+ },
3294
3416
  {
3295
3417
  "name": "horizontal",
3296
3418
  "description": "Applies styles relevant to radios in a horizontal layout.",
@@ -3323,7 +3445,7 @@
3323
3445
  },
3324
3446
  {
3325
3447
  "name": "zn-radio-group",
3326
- "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\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(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\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.",
3448
+ "description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Methods:**\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(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--zn-radio-group-column-width** - Minimum column width used by the horizontal contained grid, or the card basis when `wrap` is set. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3327
3449
  "attributes": [
3328
3450
  {
3329
3451
  "name": "label",
@@ -3361,12 +3483,22 @@
3361
3483
  },
3362
3484
  {
3363
3485
  "name": "horizontal",
3364
- "description": "The checkbox group's orientation. Changes the group's layout from the default (vertical) to horizontal.",
3486
+ "description": "The radio group's orientation. Changes the group's layout from the default (vertical) to horizontal.",
3365
3487
  "values": []
3366
3488
  },
3367
3489
  {
3368
3490
  "name": "contained",
3369
- "description": "The checkbox group's style. Changes the group's style from the default (plain) style to the 'contained' style. This style will be applied to all child checkboxes.",
3491
+ "description": "The radio group's style. Changes the group's style from the default (plain) style to the 'contained' style. This style will be applied to all child radios.",
3492
+ "values": []
3493
+ },
3494
+ {
3495
+ "name": "square",
3496
+ "description": "Squares off the corners of every contained radio in the group, which are rounded by default.",
3497
+ "values": []
3498
+ },
3499
+ {
3500
+ "name": "wrap",
3501
+ "description": "Lays horizontal contained radios out as a wrapping row instead of an equal-width grid, so each one sizes from\n`--zn-radio-group-column-width` (set it to `auto` to size from content) and wraps onto a new line when needed.",
3370
3502
  "values": []
3371
3503
  },
3372
3504
  {
@@ -3430,7 +3562,7 @@
3430
3562
  },
3431
3563
  {
3432
3564
  "name": "zn-remarkd-editor",
3433
- "description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block or raw edit.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **raw-toggle** - The button that switches between the block view and the raw source view.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **raw** - The full-document textarea shown in raw source mode.\n- **slash-menu** - The `zn-slash-menu` opened by typing \"/\" in an empty block.\n- **image-controls** - The caption / alignment / size panel shown when an image block is clicked.\n- **include** - The chip rendered in place of an `include::` directive.\n- **include-picker** - The inline Include picker opened from the toolbar or \"/include\".",
3565
+ "description": "A Notion-style block editor for remarkd content. Blocks render inline; click one to edit its source.\n---\n\n\n### **Events:**\n - **zn-input** - Emitted on each keystroke while editing a block.\n- **zn-change** - Emitted when a block edit is committed and the value changes.\n\n### **Methods:**\n - **focus()** - Starts editing the first block, or a new block if the document is empty.\n- **blur()** - Commits any in-progress block or raw edit.\n\n### **CSS Properties:**\n - **--remarkd-editor-max-height** - The tallest the editor grows before its body scrolls. Defaults to `100dvh`. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **toolbar** - The always-visible block-insert toolbar.\n- **raw-toggle** - The button that switches between the block view and the raw source view.\n- **block** - A rendered block wrapper.\n- **rendered** - The rendered remarkd output of a block.\n- **input** - The textarea shown while editing a block.\n- **raw** - The full-document textarea shown in raw source mode.\n- **slash-menu** - The `zn-slash-menu` opened by typing \"/\" in an empty block.\n- **image-controls** - The caption / alignment / size panel shown when an image block is clicked.\n- **include** - The chip rendered in place of an `include::` directive.\n- **include-picker** - The inline Include picker opened from the toolbar or \"/include\".",
3434
3566
  "attributes": [
3435
3567
  {
3436
3568
  "name": "slash-recent-key",
@@ -3640,8 +3772,15 @@
3640
3772
  },
3641
3773
  {
3642
3774
  "name": "zn-scroll-container",
3643
- "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.",
3644
- "attributes": [{ "name": "start-scrolled", "values": [] }],
3775
+ "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 - **--zn-scroll-container-height** - The height and maximum height of the scroll container. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
3776
+ "attributes": [
3777
+ {
3778
+ "name": "height",
3779
+ "description": "The height and maximum height of the scroll container.",
3780
+ "values": []
3781
+ },
3782
+ { "name": "start-scrolled", "values": [] }
3783
+ ],
3645
3784
  "references": [
3646
3785
  {
3647
3786
  "name": "Documentation",