@kubex/zinc 1.1.134 → 1.1.135
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.
- package/dist/custom-elements.json +1065 -1008
- package/dist/vscode.html-custom-data.json +175 -160
- package/dist/web-types.json +384 -354
- package/dist/zn.d.ts +25 -1
- package/dist/zn.min.js +228 -227
- package/package.json +1 -1
- package/src/components/data-select/data-select.component.ts +7 -0
- package/src/components/inline-edit/inline-edit.component.ts +6 -0
- package/src/components/select/select.component.ts +16 -2
- package/src/components/select/select.test.ts +103 -0
- package/src/internal/conditional.ts +53 -35
package/dist/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
|
|
3
3
|
"name": "@kubex/zinc",
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.135",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -15,28 +15,6 @@
|
|
|
15
15
|
"events": [],
|
|
16
16
|
"js": { "properties": [], "events": [] }
|
|
17
17
|
},
|
|
18
|
-
{
|
|
19
|
-
"name": "zn-action-bar",
|
|
20
|
-
"description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
21
|
-
"doc-url": "",
|
|
22
|
-
"attributes": [],
|
|
23
|
-
"slots": [
|
|
24
|
-
{ "name": "", "description": "The default slot." },
|
|
25
|
-
{ "name": "example", "description": "An example slot." }
|
|
26
|
-
],
|
|
27
|
-
"events": [
|
|
28
|
-
{ "name": "zn-event-name", "description": "Emitted as an example." }
|
|
29
|
-
],
|
|
30
|
-
"js": {
|
|
31
|
-
"properties": [],
|
|
32
|
-
"events": [
|
|
33
|
-
{
|
|
34
|
-
"name": "zn-event-name",
|
|
35
|
-
"description": "Emitted as an example."
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
18
|
{
|
|
41
19
|
"name": "zn-alert",
|
|
42
20
|
"description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
@@ -105,6 +83,28 @@
|
|
|
105
83
|
]
|
|
106
84
|
}
|
|
107
85
|
},
|
|
86
|
+
{
|
|
87
|
+
"name": "zn-action-bar",
|
|
88
|
+
"description": "Short summary of the component's intended use.\n---\n\n\n### **Events:**\n - **zn-event-name** - Emitted as an example.\n\n### **Slots:**\n - _default_ - The default slot.\n- **example** - An example slot.\n\n### **CSS Properties:**\n - **--example** - An example CSS custom property. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
|
|
89
|
+
"doc-url": "",
|
|
90
|
+
"attributes": [],
|
|
91
|
+
"slots": [
|
|
92
|
+
{ "name": "", "description": "The default slot." },
|
|
93
|
+
{ "name": "example", "description": "An example slot." }
|
|
94
|
+
],
|
|
95
|
+
"events": [
|
|
96
|
+
{ "name": "zn-event-name", "description": "Emitted as an example." }
|
|
97
|
+
],
|
|
98
|
+
"js": {
|
|
99
|
+
"properties": [],
|
|
100
|
+
"events": [
|
|
101
|
+
{
|
|
102
|
+
"name": "zn-event-name",
|
|
103
|
+
"description": "Emitted as an example."
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
108
|
{
|
|
109
109
|
"name": "zn-animated-button",
|
|
110
110
|
"description": "\n---\n\n\n### **Methods:**\n - **purchase(): _void_** - Programmatically trigger the purchase flow\n- **setSuccess(): _void_** - Set the button to success state manually\n- **setFailure(message): _void_** - Set the button to failure state manually with optional error message\n- **reset(): _void_** - Reset the button to idle state",
|
|
@@ -2515,6 +2515,11 @@
|
|
|
2515
2515
|
{
|
|
2516
2516
|
"name": "conditional",
|
|
2517
2517
|
"value": { "type": "string", "default": "\"\"" }
|
|
2518
|
+
},
|
|
2519
|
+
{
|
|
2520
|
+
"name": "requires",
|
|
2521
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated. Forwarded to the underlying select.",
|
|
2522
|
+
"value": { "type": "string", "default": "\"\"" }
|
|
2518
2523
|
}
|
|
2519
2524
|
],
|
|
2520
2525
|
"slots": [
|
|
@@ -2642,6 +2647,11 @@
|
|
|
2642
2647
|
{ "name": "selectFirst", "type": "boolean" },
|
|
2643
2648
|
{ "name": "distinct", "type": "string" },
|
|
2644
2649
|
{ "name": "conditional", "type": "string" },
|
|
2650
|
+
{
|
|
2651
|
+
"name": "requires",
|
|
2652
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated. Forwarded to the underlying select.",
|
|
2653
|
+
"type": "string"
|
|
2654
|
+
},
|
|
2645
2655
|
{ "name": "validationMessage" },
|
|
2646
2656
|
{ "name": "validity", "type": "ValidityState" },
|
|
2647
2657
|
{ "name": "closeOnTab" },
|
|
@@ -4977,6 +4987,11 @@
|
|
|
4977
4987
|
"name": "conditional",
|
|
4978
4988
|
"value": { "type": "string", "default": "''" }
|
|
4979
4989
|
},
|
|
4990
|
+
{
|
|
4991
|
+
"name": "requires",
|
|
4992
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated.",
|
|
4993
|
+
"value": { "type": "string", "default": "''" }
|
|
4994
|
+
},
|
|
4980
4995
|
{ "name": "disabled", "value": { "type": "boolean" } },
|
|
4981
4996
|
{ "name": "inline", "value": { "type": "boolean" } },
|
|
4982
4997
|
{ "name": "padded", "value": { "type": "boolean" } },
|
|
@@ -5111,6 +5126,11 @@
|
|
|
5111
5126
|
"type": "boolean"
|
|
5112
5127
|
},
|
|
5113
5128
|
{ "name": "conditional", "type": "string" },
|
|
5129
|
+
{
|
|
5130
|
+
"name": "requires",
|
|
5131
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated.",
|
|
5132
|
+
"type": "string"
|
|
5133
|
+
},
|
|
5114
5134
|
{ "name": "disabled", "type": "boolean" },
|
|
5115
5135
|
{ "name": "inline", "type": "boolean" },
|
|
5116
5136
|
{ "name": "padded", "type": "boolean" },
|
|
@@ -7300,392 +7320,133 @@
|
|
|
7300
7320
|
}
|
|
7301
7321
|
},
|
|
7302
7322
|
{
|
|
7303
|
-
"name": "zn-
|
|
7304
|
-
"description": "
|
|
7323
|
+
"name": "zn-preview-frame",
|
|
7324
|
+
"description": "Embeds a live preview iframe and drives the hp-preview postMessage\nprotocol: answers the frame's ready handshake with a config payload fetched\nfrom data-uri, auto-saves watched forms on change, refreshes the preview\nafter each save (its own, or a shell-driven save of a `refresh-on` form),\naccepts a theme payload via setTheme() that is retained and replayed\nafter every ready handshake, and grows the frame to a content height the\nembed reports so the panel scrolls an overflowing page.\n---\n\n\n### **Events:**\n - **zn-error** - Emitted when the preview reports a render error or a save fails.\n\n### **Methods:**\n - **refresh()** - Re-fetches the payload and pushes a fresh config to the preview.\n- **setTheme(theme: _Record<string, unknown>_)** - Pushes a theme payload into the preview. The payload is retained and\nre-posted after every ready handshake, so a frame reload doesn't drop an\nin-progress theme.\n\n### **CSS Properties:**\n - **--zn-preview-frame-dot-spacing** - Spacing of the backdrop dot grid (`backdrop=\"dots\"`). Defaults to 20px. _(default: undefined)_\n- **--zn-preview-frame-dot-opacity** - Opacity of the backdrop dots (`backdrop=\"dots\"`). Defaults to 0.08. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **stage** - The device-width wrapper around the iframe.\n- **iframe** - The preview iframe.\n- **error** - The error overlay.",
|
|
7305
7325
|
"doc-url": "",
|
|
7306
7326
|
"attributes": [
|
|
7307
7327
|
{
|
|
7308
|
-
"name": "
|
|
7309
|
-
"description": "
|
|
7310
|
-
"value": { "type": "Element | string | VirtualElement" }
|
|
7311
|
-
},
|
|
7312
|
-
{
|
|
7313
|
-
"name": "active",
|
|
7314
|
-
"description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
|
|
7315
|
-
"value": { "type": "boolean", "default": "false" }
|
|
7316
|
-
},
|
|
7317
|
-
{
|
|
7318
|
-
"name": "placement",
|
|
7319
|
-
"description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
|
|
7320
|
-
"value": {
|
|
7321
|
-
"type": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'",
|
|
7322
|
-
"default": "'top'"
|
|
7323
|
-
}
|
|
7324
|
-
},
|
|
7325
|
-
{
|
|
7326
|
-
"name": "strategy",
|
|
7327
|
-
"description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
|
|
7328
|
-
"value": { "type": "'absolute' | 'fixed'", "default": "'fixed'" }
|
|
7329
|
-
},
|
|
7330
|
-
{
|
|
7331
|
-
"name": "distance",
|
|
7332
|
-
"description": "The distance in pixels from which to offset the panel away from its anchor.",
|
|
7333
|
-
"value": { "type": "number", "default": "0" }
|
|
7334
|
-
},
|
|
7335
|
-
{
|
|
7336
|
-
"name": "skidding",
|
|
7337
|
-
"description": "The distance in pixels from which to offset the panel along its anchor.",
|
|
7338
|
-
"value": { "type": "number", "default": "0" }
|
|
7339
|
-
},
|
|
7340
|
-
{
|
|
7341
|
-
"name": "arrow",
|
|
7342
|
-
"description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
|
|
7343
|
-
"value": { "type": "boolean", "default": "false" }
|
|
7344
|
-
},
|
|
7345
|
-
{
|
|
7346
|
-
"name": "arrow-placement",
|
|
7347
|
-
"description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
|
|
7348
|
-
"value": {
|
|
7349
|
-
"type": "'start' | 'end' | 'center' | 'anchor'",
|
|
7350
|
-
"default": "'anchor'"
|
|
7351
|
-
}
|
|
7352
|
-
},
|
|
7353
|
-
{
|
|
7354
|
-
"name": "arrow-padding",
|
|
7355
|
-
"description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
|
|
7356
|
-
"value": { "type": "number", "default": "10" }
|
|
7357
|
-
},
|
|
7358
|
-
{
|
|
7359
|
-
"name": "flip",
|
|
7360
|
-
"description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
|
|
7361
|
-
"value": { "type": "boolean", "default": "false" }
|
|
7362
|
-
},
|
|
7363
|
-
{
|
|
7364
|
-
"name": "flip-fallback-placements",
|
|
7365
|
-
"description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
|
|
7328
|
+
"name": "src",
|
|
7329
|
+
"description": "URL of the preview shell page (tokened embed URL).",
|
|
7366
7330
|
"value": { "type": "string", "default": "''" }
|
|
7367
7331
|
},
|
|
7368
7332
|
{
|
|
7369
|
-
"name": "
|
|
7370
|
-
"description": "
|
|
7371
|
-
"value": {
|
|
7372
|
-
"type": "'best-fit' | 'initial'",
|
|
7373
|
-
"default": "'best-fit'"
|
|
7374
|
-
}
|
|
7333
|
+
"name": "frame-origin",
|
|
7334
|
+
"description": "Expected origin of the iframe; all postMessage traffic is checked against it.",
|
|
7335
|
+
"value": { "type": "string", "default": "''" }
|
|
7375
7336
|
},
|
|
7376
7337
|
{
|
|
7377
|
-
"name": "
|
|
7378
|
-
"description": "
|
|
7379
|
-
"value": { "type": "
|
|
7338
|
+
"name": "data-uri",
|
|
7339
|
+
"description": "Endpoint returning the hp-preview:config payload JSON. The console proxy rewrites this attribute to an app-prefixed path for proper fetch resolution.",
|
|
7340
|
+
"value": { "type": "string", "default": "''" }
|
|
7380
7341
|
},
|
|
7381
7342
|
{
|
|
7382
|
-
"name": "
|
|
7383
|
-
"description": "
|
|
7384
|
-
"value": { "type": "
|
|
7343
|
+
"name": "watch",
|
|
7344
|
+
"description": "Selector (resolved against the component's root node) for the forms to watch.\nDefaults to only forms explicitly opted in via a `data-auto-save` attribute —\nunmarked forms keep normal submit behavior and are never intercepted,\nauto-saved, or used to trigger a preview refresh. Override to widen the scope.",
|
|
7345
|
+
"value": { "type": "string", "default": "'form[data-auto-save]'" }
|
|
7385
7346
|
},
|
|
7386
7347
|
{
|
|
7387
|
-
"name": "
|
|
7388
|
-
"description": "
|
|
7389
|
-
"value": { "type": "
|
|
7348
|
+
"name": "refresh-on",
|
|
7349
|
+
"description": "Selector for forms whose saves are left to the shell but should still\nrefresh the preview. These are never intercepted: the shell submits them\n(so its own response handling — alerts, refreshes — runs as normal) and the\npreview re-fetches its config once the shell reports the save complete.\nMatched by delegation on the shell's bubbled `complete` event rather than\nby attaching to the forms themselves, so a save anywhere on the page\nrefreshes the preview — including forms in a different DOM root, e.g. a\npage-level form saved while the preview sits inside a tab panel's shadow\nroot (a page's Template select lives on one tab, its preview on another).\nSet empty to disable.",
|
|
7350
|
+
"value": { "type": "string", "default": "'form'" }
|
|
7390
7351
|
},
|
|
7391
7352
|
{
|
|
7392
|
-
"name": "
|
|
7393
|
-
"description": "
|
|
7394
|
-
"value": { "type": "
|
|
7353
|
+
"name": "debounce",
|
|
7354
|
+
"description": "Debounce in ms between a form change and its auto-save.",
|
|
7355
|
+
"value": { "type": "number", "default": "400" }
|
|
7395
7356
|
},
|
|
7396
7357
|
{
|
|
7397
|
-
"name": "
|
|
7398
|
-
"description": "The
|
|
7399
|
-
"value": { "type": "number", "default": "
|
|
7358
|
+
"name": "zoom",
|
|
7359
|
+
"description": "Zooms the previewed page out (0–1]. The frame always fills the panel;\nzoom shrinks the content browser-style, so 0.4 shows the page at 40%\nsize with correspondingly more of it visible. 1 = natural size.\nIgnored when `fill` is set.",
|
|
7360
|
+
"value": { "type": "number", "default": "1" }
|
|
7400
7361
|
},
|
|
7401
7362
|
{
|
|
7402
|
-
"name": "
|
|
7403
|
-
"description": "
|
|
7404
|
-
"value": { "type": "
|
|
7363
|
+
"name": "min-height",
|
|
7364
|
+
"description": "The visible height (in CSS pixels) of the preview panel. Fixed rather\nthan measured, because a measured height would feed back into the\nscaled iframe's layout box and grow unbounded. With `fill` set, this\nbecomes a `min-height` floor instead of the height.",
|
|
7365
|
+
"value": { "type": "number", "default": "480" }
|
|
7405
7366
|
},
|
|
7406
7367
|
{
|
|
7407
|
-
"name": "
|
|
7408
|
-
"description": "
|
|
7409
|
-
"value": { "type": "
|
|
7368
|
+
"name": "fill",
|
|
7369
|
+
"description": "Fills the panel's own column height instead of using a fixed\n`min-height` pixel height — for hosts (like zn-theme-editor) whose\nlayout already stretches the column to match a taller sibling.\n`zoom` is ignored when set: its oversize maths depends on a known\npixel height, which `fill` deliberately doesn't have.",
|
|
7370
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7410
7371
|
},
|
|
7411
7372
|
{
|
|
7412
|
-
"name": "
|
|
7413
|
-
"description": "
|
|
7414
|
-
"value": { "type": "
|
|
7373
|
+
"name": "device",
|
|
7374
|
+
"description": "Constrains and centres the preview to a device width: `desktop` (100%),\n`tablet` (768px) or `mobile` (390px). The iframe element itself is\nnarrowed, so the embedded page's own media queries fire.",
|
|
7375
|
+
"value": { "type": "PreviewFrameDevice", "default": "'desktop'" }
|
|
7415
7376
|
},
|
|
7416
7377
|
{
|
|
7417
|
-
"name": "
|
|
7418
|
-
"description": "
|
|
7419
|
-
"value": { "type": "
|
|
7378
|
+
"name": "backdrop",
|
|
7379
|
+
"description": "Backdrop behind the stage: `dots` (default) is the canvas dot grid; `panel` is a plain `rgb(var(--zn-panel))` fill.",
|
|
7380
|
+
"value": { "type": "'dots' | 'panel'", "default": "'dots'" }
|
|
7420
7381
|
},
|
|
7421
7382
|
{
|
|
7422
|
-
"name": "
|
|
7423
|
-
"description": "
|
|
7383
|
+
"name": "interactive",
|
|
7384
|
+
"description": "Lets pointer input through to the embedded page. The preview is inert by\ndefault: clicks never reach the frame, so the previewed page can't be\nnavigated or submitted from inside the preview. Cross-origin content can't\nbe reached from here to cancel its own handlers, so this blocks pointer\ninput entirely — hover goes with it. Scrolling doesn't: an overflowing\npage is scrolled by the panel rather than by the frame (see _contentHeight).\n\nSet, the frame becomes a real viewport instead: it stays the panel's own\nheight and the embed scrolls itself, so there is one scrollbar rather than\na panel scrolling an oversized frame, and the embed's viewport-relative\nlayout (`100vh`, `position: fixed`, sticky headers) sizes to what's on\nscreen. _contentHeight is ignored while this is set.",
|
|
7424
7385
|
"value": { "type": "boolean", "default": "false" }
|
|
7425
7386
|
}
|
|
7426
7387
|
],
|
|
7427
|
-
"slots": [
|
|
7428
|
-
{ "name": "", "description": "The default slot." },
|
|
7429
|
-
{ "name": "example", "description": "An example slot." }
|
|
7430
|
-
],
|
|
7431
7388
|
"events": [
|
|
7432
|
-
{
|
|
7389
|
+
{
|
|
7390
|
+
"name": "zn-error",
|
|
7391
|
+
"description": "Emitted when the preview reports a render error or a save fails."
|
|
7392
|
+
}
|
|
7433
7393
|
],
|
|
7434
7394
|
"js": {
|
|
7435
7395
|
"properties": [
|
|
7436
7396
|
{
|
|
7437
|
-
"name": "
|
|
7438
|
-
"description": "
|
|
7439
|
-
"type": "
|
|
7397
|
+
"name": "src",
|
|
7398
|
+
"description": "URL of the preview shell page (tokened embed URL).",
|
|
7399
|
+
"type": "string"
|
|
7440
7400
|
},
|
|
7441
7401
|
{
|
|
7442
|
-
"name": "
|
|
7443
|
-
"description": "
|
|
7444
|
-
"type": "
|
|
7402
|
+
"name": "frameOrigin",
|
|
7403
|
+
"description": "Expected origin of the iframe; all postMessage traffic is checked against it.",
|
|
7404
|
+
"type": "string"
|
|
7445
7405
|
},
|
|
7446
7406
|
{
|
|
7447
|
-
"name": "
|
|
7448
|
-
"description": "
|
|
7449
|
-
"type": "
|
|
7407
|
+
"name": "dataUri",
|
|
7408
|
+
"description": "Endpoint returning the hp-preview:config payload JSON. The console proxy rewrites this attribute to an app-prefixed path for proper fetch resolution.",
|
|
7409
|
+
"type": "string"
|
|
7450
7410
|
},
|
|
7451
7411
|
{
|
|
7452
|
-
"name": "
|
|
7453
|
-
"description": "
|
|
7454
|
-
"type": "
|
|
7412
|
+
"name": "watch",
|
|
7413
|
+
"description": "Selector (resolved against the component's root node) for the forms to watch.\nDefaults to only forms explicitly opted in via a `data-auto-save` attribute —\nunmarked forms keep normal submit behavior and are never intercepted,\nauto-saved, or used to trigger a preview refresh. Override to widen the scope.",
|
|
7414
|
+
"type": "string"
|
|
7455
7415
|
},
|
|
7456
7416
|
{
|
|
7457
|
-
"name": "
|
|
7458
|
-
"description": "
|
|
7459
|
-
"type": "
|
|
7417
|
+
"name": "refreshOn",
|
|
7418
|
+
"description": "Selector for forms whose saves are left to the shell but should still\nrefresh the preview. These are never intercepted: the shell submits them\n(so its own response handling — alerts, refreshes — runs as normal) and the\npreview re-fetches its config once the shell reports the save complete.\nMatched by delegation on the shell's bubbled `complete` event rather than\nby attaching to the forms themselves, so a save anywhere on the page\nrefreshes the preview — including forms in a different DOM root, e.g. a\npage-level form saved while the preview sits inside a tab panel's shadow\nroot (a page's Template select lives on one tab, its preview on another).\nSet empty to disable.",
|
|
7419
|
+
"type": "string"
|
|
7460
7420
|
},
|
|
7461
7421
|
{
|
|
7462
|
-
"name": "
|
|
7463
|
-
"description": "
|
|
7422
|
+
"name": "debounce",
|
|
7423
|
+
"description": "Debounce in ms between a form change and its auto-save.",
|
|
7464
7424
|
"type": "number"
|
|
7465
7425
|
},
|
|
7466
7426
|
{
|
|
7467
|
-
"name": "
|
|
7468
|
-
"description": "
|
|
7427
|
+
"name": "zoom",
|
|
7428
|
+
"description": "Zooms the previewed page out (0–1]. The frame always fills the panel;\nzoom shrinks the content browser-style, so 0.4 shows the page at 40%\nsize with correspondingly more of it visible. 1 = natural size.\nIgnored when `fill` is set.",
|
|
7469
7429
|
"type": "number"
|
|
7470
7430
|
},
|
|
7471
7431
|
{
|
|
7472
|
-
"name": "
|
|
7473
|
-
"description": "
|
|
7432
|
+
"name": "minHeight",
|
|
7433
|
+
"description": "The visible height (in CSS pixels) of the preview panel. Fixed rather\nthan measured, because a measured height would feed back into the\nscaled iframe's layout box and grow unbounded. With `fill` set, this\nbecomes a `min-height` floor instead of the height.",
|
|
7434
|
+
"type": "number"
|
|
7435
|
+
},
|
|
7436
|
+
{
|
|
7437
|
+
"name": "fill",
|
|
7438
|
+
"description": "Fills the panel's own column height instead of using a fixed\n`min-height` pixel height — for hosts (like zn-theme-editor) whose\nlayout already stretches the column to match a taller sibling.\n`zoom` is ignored when set: its oversize maths depends on a known\npixel height, which `fill` deliberately doesn't have.",
|
|
7474
7439
|
"type": "boolean"
|
|
7475
7440
|
},
|
|
7476
7441
|
{
|
|
7477
|
-
"name": "
|
|
7478
|
-
"description": "
|
|
7479
|
-
"type": "
|
|
7442
|
+
"name": "device",
|
|
7443
|
+
"description": "Constrains and centres the preview to a device width: `desktop` (100%),\n`tablet` (768px) or `mobile` (390px). The iframe element itself is\nnarrowed, so the embedded page's own media queries fire.",
|
|
7444
|
+
"type": "PreviewFrameDevice"
|
|
7480
7445
|
},
|
|
7481
7446
|
{
|
|
7482
|
-
"name": "
|
|
7483
|
-
"description": "
|
|
7484
|
-
"type": "
|
|
7485
|
-
},
|
|
7486
|
-
{
|
|
7487
|
-
"name": "flip",
|
|
7488
|
-
"description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
|
|
7489
|
-
"type": "boolean"
|
|
7490
|
-
},
|
|
7491
|
-
{
|
|
7492
|
-
"name": "flipFallbackPlacements",
|
|
7493
|
-
"description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
|
|
7494
|
-
"type": "string"
|
|
7495
|
-
},
|
|
7496
|
-
{
|
|
7497
|
-
"name": "flipFallbackStrategy",
|
|
7498
|
-
"description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
|
|
7499
|
-
"type": "'best-fit' | 'initial'"
|
|
7500
|
-
},
|
|
7501
|
-
{
|
|
7502
|
-
"name": "flipBoundary",
|
|
7503
|
-
"description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7504
|
-
"type": "Element | Element[]"
|
|
7505
|
-
},
|
|
7506
|
-
{
|
|
7507
|
-
"name": "flipPadding",
|
|
7508
|
-
"description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
|
|
7509
|
-
"type": "number"
|
|
7510
|
-
},
|
|
7511
|
-
{
|
|
7512
|
-
"name": "shift",
|
|
7513
|
-
"description": "Moves the popup along the axis to keep it in view when clipped.",
|
|
7514
|
-
"type": "boolean"
|
|
7515
|
-
},
|
|
7516
|
-
{
|
|
7517
|
-
"name": "shiftBoundary",
|
|
7518
|
-
"description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7519
|
-
"type": "Element | Element[]"
|
|
7520
|
-
},
|
|
7521
|
-
{
|
|
7522
|
-
"name": "shiftPadding",
|
|
7523
|
-
"description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
|
|
7524
|
-
"type": "number"
|
|
7525
|
-
},
|
|
7526
|
-
{
|
|
7527
|
-
"name": "autoSize",
|
|
7528
|
-
"description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
|
|
7529
|
-
"type": "'horizontal' | 'vertical' | 'both'"
|
|
7530
|
-
},
|
|
7531
|
-
{
|
|
7532
|
-
"name": "sync",
|
|
7533
|
-
"description": "Syncs the popup's width or height to that of the anchor element.",
|
|
7534
|
-
"type": "'width' | 'height' | 'both'"
|
|
7535
|
-
},
|
|
7536
|
-
{
|
|
7537
|
-
"name": "autoSizeBoundary",
|
|
7538
|
-
"description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7539
|
-
"type": "Element | Element[]"
|
|
7540
|
-
},
|
|
7541
|
-
{
|
|
7542
|
-
"name": "autoSizePadding",
|
|
7543
|
-
"description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
|
|
7544
|
-
"type": "number"
|
|
7545
|
-
},
|
|
7546
|
-
{
|
|
7547
|
-
"name": "hoverBridge",
|
|
7548
|
-
"description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
|
|
7549
|
-
"type": "boolean"
|
|
7550
|
-
},
|
|
7551
|
-
{ "name": "handleAnchorHover" }
|
|
7552
|
-
],
|
|
7553
|
-
"events": [
|
|
7554
|
-
{
|
|
7555
|
-
"name": "zn-event-name",
|
|
7556
|
-
"description": "Emitted as an example."
|
|
7557
|
-
}
|
|
7558
|
-
]
|
|
7559
|
-
}
|
|
7560
|
-
},
|
|
7561
|
-
{
|
|
7562
|
-
"name": "zn-preview-frame",
|
|
7563
|
-
"description": "Embeds a live preview iframe and drives the hp-preview postMessage\nprotocol: answers the frame's ready handshake with a config payload fetched\nfrom data-uri, auto-saves watched forms on change, refreshes the preview\nafter each save (its own, or a shell-driven save of a `refresh-on` form),\naccepts a theme payload via setTheme() that is retained and replayed\nafter every ready handshake, and grows the frame to a content height the\nembed reports so the panel scrolls an overflowing page.\n---\n\n\n### **Events:**\n - **zn-error** - Emitted when the preview reports a render error or a save fails.\n\n### **Methods:**\n - **refresh()** - Re-fetches the payload and pushes a fresh config to the preview.\n- **setTheme(theme: _Record<string, unknown>_)** - Pushes a theme payload into the preview. The payload is retained and\nre-posted after every ready handshake, so a frame reload doesn't drop an\nin-progress theme.\n\n### **CSS Properties:**\n - **--zn-preview-frame-dot-spacing** - Spacing of the backdrop dot grid (`backdrop=\"dots\"`). Defaults to 20px. _(default: undefined)_\n- **--zn-preview-frame-dot-opacity** - Opacity of the backdrop dots (`backdrop=\"dots\"`). Defaults to 0.08. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **stage** - The device-width wrapper around the iframe.\n- **iframe** - The preview iframe.\n- **error** - The error overlay.",
|
|
7564
|
-
"doc-url": "",
|
|
7565
|
-
"attributes": [
|
|
7566
|
-
{
|
|
7567
|
-
"name": "src",
|
|
7568
|
-
"description": "URL of the preview shell page (tokened embed URL).",
|
|
7569
|
-
"value": { "type": "string", "default": "''" }
|
|
7570
|
-
},
|
|
7571
|
-
{
|
|
7572
|
-
"name": "frame-origin",
|
|
7573
|
-
"description": "Expected origin of the iframe; all postMessage traffic is checked against it.",
|
|
7574
|
-
"value": { "type": "string", "default": "''" }
|
|
7575
|
-
},
|
|
7576
|
-
{
|
|
7577
|
-
"name": "data-uri",
|
|
7578
|
-
"description": "Endpoint returning the hp-preview:config payload JSON. The console proxy rewrites this attribute to an app-prefixed path for proper fetch resolution.",
|
|
7579
|
-
"value": { "type": "string", "default": "''" }
|
|
7580
|
-
},
|
|
7581
|
-
{
|
|
7582
|
-
"name": "watch",
|
|
7583
|
-
"description": "Selector (resolved against the component's root node) for the forms to watch.\nDefaults to only forms explicitly opted in via a `data-auto-save` attribute —\nunmarked forms keep normal submit behavior and are never intercepted,\nauto-saved, or used to trigger a preview refresh. Override to widen the scope.",
|
|
7584
|
-
"value": { "type": "string", "default": "'form[data-auto-save]'" }
|
|
7585
|
-
},
|
|
7586
|
-
{
|
|
7587
|
-
"name": "refresh-on",
|
|
7588
|
-
"description": "Selector for forms whose saves are left to the shell but should still\nrefresh the preview. These are never intercepted: the shell submits them\n(so its own response handling — alerts, refreshes — runs as normal) and the\npreview re-fetches its config once the shell reports the save complete.\nMatched by delegation on the shell's bubbled `complete` event rather than\nby attaching to the forms themselves, so a save anywhere on the page\nrefreshes the preview — including forms in a different DOM root, e.g. a\npage-level form saved while the preview sits inside a tab panel's shadow\nroot (a page's Template select lives on one tab, its preview on another).\nSet empty to disable.",
|
|
7589
|
-
"value": { "type": "string", "default": "'form'" }
|
|
7590
|
-
},
|
|
7591
|
-
{
|
|
7592
|
-
"name": "debounce",
|
|
7593
|
-
"description": "Debounce in ms between a form change and its auto-save.",
|
|
7594
|
-
"value": { "type": "number", "default": "400" }
|
|
7595
|
-
},
|
|
7596
|
-
{
|
|
7597
|
-
"name": "zoom",
|
|
7598
|
-
"description": "Zooms the previewed page out (0–1]. The frame always fills the panel;\nzoom shrinks the content browser-style, so 0.4 shows the page at 40%\nsize with correspondingly more of it visible. 1 = natural size.\nIgnored when `fill` is set.",
|
|
7599
|
-
"value": { "type": "number", "default": "1" }
|
|
7600
|
-
},
|
|
7601
|
-
{
|
|
7602
|
-
"name": "min-height",
|
|
7603
|
-
"description": "The visible height (in CSS pixels) of the preview panel. Fixed rather\nthan measured, because a measured height would feed back into the\nscaled iframe's layout box and grow unbounded. With `fill` set, this\nbecomes a `min-height` floor instead of the height.",
|
|
7604
|
-
"value": { "type": "number", "default": "480" }
|
|
7605
|
-
},
|
|
7606
|
-
{
|
|
7607
|
-
"name": "fill",
|
|
7608
|
-
"description": "Fills the panel's own column height instead of using a fixed\n`min-height` pixel height — for hosts (like zn-theme-editor) whose\nlayout already stretches the column to match a taller sibling.\n`zoom` is ignored when set: its oversize maths depends on a known\npixel height, which `fill` deliberately doesn't have.",
|
|
7609
|
-
"value": { "type": "boolean", "default": "false" }
|
|
7610
|
-
},
|
|
7611
|
-
{
|
|
7612
|
-
"name": "device",
|
|
7613
|
-
"description": "Constrains and centres the preview to a device width: `desktop` (100%),\n`tablet` (768px) or `mobile` (390px). The iframe element itself is\nnarrowed, so the embedded page's own media queries fire.",
|
|
7614
|
-
"value": { "type": "PreviewFrameDevice", "default": "'desktop'" }
|
|
7615
|
-
},
|
|
7616
|
-
{
|
|
7617
|
-
"name": "backdrop",
|
|
7618
|
-
"description": "Backdrop behind the stage: `dots` (default) is the canvas dot grid; `panel` is a plain `rgb(var(--zn-panel))` fill.",
|
|
7619
|
-
"value": { "type": "'dots' | 'panel'", "default": "'dots'" }
|
|
7620
|
-
},
|
|
7621
|
-
{
|
|
7622
|
-
"name": "interactive",
|
|
7623
|
-
"description": "Lets pointer input through to the embedded page. The preview is inert by\ndefault: clicks never reach the frame, so the previewed page can't be\nnavigated or submitted from inside the preview. Cross-origin content can't\nbe reached from here to cancel its own handlers, so this blocks pointer\ninput entirely — hover goes with it. Scrolling doesn't: an overflowing\npage is scrolled by the panel rather than by the frame (see _contentHeight).\n\nSet, the frame becomes a real viewport instead: it stays the panel's own\nheight and the embed scrolls itself, so there is one scrollbar rather than\na panel scrolling an oversized frame, and the embed's viewport-relative\nlayout (`100vh`, `position: fixed`, sticky headers) sizes to what's on\nscreen. _contentHeight is ignored while this is set.",
|
|
7624
|
-
"value": { "type": "boolean", "default": "false" }
|
|
7625
|
-
}
|
|
7626
|
-
],
|
|
7627
|
-
"events": [
|
|
7628
|
-
{
|
|
7629
|
-
"name": "zn-error",
|
|
7630
|
-
"description": "Emitted when the preview reports a render error or a save fails."
|
|
7631
|
-
}
|
|
7632
|
-
],
|
|
7633
|
-
"js": {
|
|
7634
|
-
"properties": [
|
|
7635
|
-
{
|
|
7636
|
-
"name": "src",
|
|
7637
|
-
"description": "URL of the preview shell page (tokened embed URL).",
|
|
7638
|
-
"type": "string"
|
|
7639
|
-
},
|
|
7640
|
-
{
|
|
7641
|
-
"name": "frameOrigin",
|
|
7642
|
-
"description": "Expected origin of the iframe; all postMessage traffic is checked against it.",
|
|
7643
|
-
"type": "string"
|
|
7644
|
-
},
|
|
7645
|
-
{
|
|
7646
|
-
"name": "dataUri",
|
|
7647
|
-
"description": "Endpoint returning the hp-preview:config payload JSON. The console proxy rewrites this attribute to an app-prefixed path for proper fetch resolution.",
|
|
7648
|
-
"type": "string"
|
|
7649
|
-
},
|
|
7650
|
-
{
|
|
7651
|
-
"name": "watch",
|
|
7652
|
-
"description": "Selector (resolved against the component's root node) for the forms to watch.\nDefaults to only forms explicitly opted in via a `data-auto-save` attribute —\nunmarked forms keep normal submit behavior and are never intercepted,\nauto-saved, or used to trigger a preview refresh. Override to widen the scope.",
|
|
7653
|
-
"type": "string"
|
|
7654
|
-
},
|
|
7655
|
-
{
|
|
7656
|
-
"name": "refreshOn",
|
|
7657
|
-
"description": "Selector for forms whose saves are left to the shell but should still\nrefresh the preview. These are never intercepted: the shell submits them\n(so its own response handling — alerts, refreshes — runs as normal) and the\npreview re-fetches its config once the shell reports the save complete.\nMatched by delegation on the shell's bubbled `complete` event rather than\nby attaching to the forms themselves, so a save anywhere on the page\nrefreshes the preview — including forms in a different DOM root, e.g. a\npage-level form saved while the preview sits inside a tab panel's shadow\nroot (a page's Template select lives on one tab, its preview on another).\nSet empty to disable.",
|
|
7658
|
-
"type": "string"
|
|
7659
|
-
},
|
|
7660
|
-
{
|
|
7661
|
-
"name": "debounce",
|
|
7662
|
-
"description": "Debounce in ms between a form change and its auto-save.",
|
|
7663
|
-
"type": "number"
|
|
7664
|
-
},
|
|
7665
|
-
{
|
|
7666
|
-
"name": "zoom",
|
|
7667
|
-
"description": "Zooms the previewed page out (0–1]. The frame always fills the panel;\nzoom shrinks the content browser-style, so 0.4 shows the page at 40%\nsize with correspondingly more of it visible. 1 = natural size.\nIgnored when `fill` is set.",
|
|
7668
|
-
"type": "number"
|
|
7669
|
-
},
|
|
7670
|
-
{
|
|
7671
|
-
"name": "minHeight",
|
|
7672
|
-
"description": "The visible height (in CSS pixels) of the preview panel. Fixed rather\nthan measured, because a measured height would feed back into the\nscaled iframe's layout box and grow unbounded. With `fill` set, this\nbecomes a `min-height` floor instead of the height.",
|
|
7673
|
-
"type": "number"
|
|
7674
|
-
},
|
|
7675
|
-
{
|
|
7676
|
-
"name": "fill",
|
|
7677
|
-
"description": "Fills the panel's own column height instead of using a fixed\n`min-height` pixel height — for hosts (like zn-theme-editor) whose\nlayout already stretches the column to match a taller sibling.\n`zoom` is ignored when set: its oversize maths depends on a known\npixel height, which `fill` deliberately doesn't have.",
|
|
7678
|
-
"type": "boolean"
|
|
7679
|
-
},
|
|
7680
|
-
{
|
|
7681
|
-
"name": "device",
|
|
7682
|
-
"description": "Constrains and centres the preview to a device width: `desktop` (100%),\n`tablet` (768px) or `mobile` (390px). The iframe element itself is\nnarrowed, so the embedded page's own media queries fire.",
|
|
7683
|
-
"type": "PreviewFrameDevice"
|
|
7684
|
-
},
|
|
7685
|
-
{
|
|
7686
|
-
"name": "backdrop",
|
|
7687
|
-
"description": "Backdrop behind the stage: `dots` (default) is the canvas dot grid; `panel` is a plain `rgb(var(--zn-panel))` fill.",
|
|
7688
|
-
"type": "'dots' | 'panel'"
|
|
7447
|
+
"name": "backdrop",
|
|
7448
|
+
"description": "Backdrop behind the stage: `dots` (default) is the canvas dot grid; `panel` is a plain `rgb(var(--zn-panel))` fill.",
|
|
7449
|
+
"type": "'dots' | 'panel'"
|
|
7689
7450
|
},
|
|
7690
7451
|
{
|
|
7691
7452
|
"name": "interactive",
|
|
@@ -7886,6 +7647,265 @@
|
|
|
7886
7647
|
]
|
|
7887
7648
|
}
|
|
7888
7649
|
},
|
|
7650
|
+
{
|
|
7651
|
+
"name": "zn-popup",
|
|
7652
|
+
"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 - **reposition()** - Forces the popup to recalculate and reposition itself.\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.",
|
|
7653
|
+
"doc-url": "",
|
|
7654
|
+
"attributes": [
|
|
7655
|
+
{
|
|
7656
|
+
"name": "anchor",
|
|
7657
|
+
"description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
|
|
7658
|
+
"value": { "type": "Element | string | VirtualElement" }
|
|
7659
|
+
},
|
|
7660
|
+
{
|
|
7661
|
+
"name": "active",
|
|
7662
|
+
"description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
|
|
7663
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7664
|
+
},
|
|
7665
|
+
{
|
|
7666
|
+
"name": "placement",
|
|
7667
|
+
"description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
|
|
7668
|
+
"value": {
|
|
7669
|
+
"type": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'",
|
|
7670
|
+
"default": "'top'"
|
|
7671
|
+
}
|
|
7672
|
+
},
|
|
7673
|
+
{
|
|
7674
|
+
"name": "strategy",
|
|
7675
|
+
"description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
|
|
7676
|
+
"value": { "type": "'absolute' | 'fixed'", "default": "'fixed'" }
|
|
7677
|
+
},
|
|
7678
|
+
{
|
|
7679
|
+
"name": "distance",
|
|
7680
|
+
"description": "The distance in pixels from which to offset the panel away from its anchor.",
|
|
7681
|
+
"value": { "type": "number", "default": "0" }
|
|
7682
|
+
},
|
|
7683
|
+
{
|
|
7684
|
+
"name": "skidding",
|
|
7685
|
+
"description": "The distance in pixels from which to offset the panel along its anchor.",
|
|
7686
|
+
"value": { "type": "number", "default": "0" }
|
|
7687
|
+
},
|
|
7688
|
+
{
|
|
7689
|
+
"name": "arrow",
|
|
7690
|
+
"description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
|
|
7691
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7692
|
+
},
|
|
7693
|
+
{
|
|
7694
|
+
"name": "arrow-placement",
|
|
7695
|
+
"description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
|
|
7696
|
+
"value": {
|
|
7697
|
+
"type": "'start' | 'end' | 'center' | 'anchor'",
|
|
7698
|
+
"default": "'anchor'"
|
|
7699
|
+
}
|
|
7700
|
+
},
|
|
7701
|
+
{
|
|
7702
|
+
"name": "arrow-padding",
|
|
7703
|
+
"description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
|
|
7704
|
+
"value": { "type": "number", "default": "10" }
|
|
7705
|
+
},
|
|
7706
|
+
{
|
|
7707
|
+
"name": "flip",
|
|
7708
|
+
"description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
|
|
7709
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7710
|
+
},
|
|
7711
|
+
{
|
|
7712
|
+
"name": "flip-fallback-placements",
|
|
7713
|
+
"description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
|
|
7714
|
+
"value": { "type": "string", "default": "''" }
|
|
7715
|
+
},
|
|
7716
|
+
{
|
|
7717
|
+
"name": "flip-fallback-strategy",
|
|
7718
|
+
"description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
|
|
7719
|
+
"value": {
|
|
7720
|
+
"type": "'best-fit' | 'initial'",
|
|
7721
|
+
"default": "'best-fit'"
|
|
7722
|
+
}
|
|
7723
|
+
},
|
|
7724
|
+
{
|
|
7725
|
+
"name": "flipBoundary",
|
|
7726
|
+
"description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7727
|
+
"value": { "type": "Element | Element[]" }
|
|
7728
|
+
},
|
|
7729
|
+
{
|
|
7730
|
+
"name": "flip-padding",
|
|
7731
|
+
"description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
|
|
7732
|
+
"value": { "type": "number", "default": "0" }
|
|
7733
|
+
},
|
|
7734
|
+
{
|
|
7735
|
+
"name": "shift",
|
|
7736
|
+
"description": "Moves the popup along the axis to keep it in view when clipped.",
|
|
7737
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7738
|
+
},
|
|
7739
|
+
{
|
|
7740
|
+
"name": "shiftBoundary",
|
|
7741
|
+
"description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7742
|
+
"value": { "type": "Element | Element[]" }
|
|
7743
|
+
},
|
|
7744
|
+
{
|
|
7745
|
+
"name": "shift-padding",
|
|
7746
|
+
"description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
|
|
7747
|
+
"value": { "type": "number", "default": "0" }
|
|
7748
|
+
},
|
|
7749
|
+
{
|
|
7750
|
+
"name": "auto-size",
|
|
7751
|
+
"description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
|
|
7752
|
+
"value": { "type": "'horizontal' | 'vertical' | 'both'" }
|
|
7753
|
+
},
|
|
7754
|
+
{
|
|
7755
|
+
"name": "sync",
|
|
7756
|
+
"description": "Syncs the popup's width or height to that of the anchor element.",
|
|
7757
|
+
"value": { "type": "'width' | 'height' | 'both'" }
|
|
7758
|
+
},
|
|
7759
|
+
{
|
|
7760
|
+
"name": "autoSizeBoundary",
|
|
7761
|
+
"description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7762
|
+
"value": { "type": "Element | Element[]" }
|
|
7763
|
+
},
|
|
7764
|
+
{
|
|
7765
|
+
"name": "auto-size-padding",
|
|
7766
|
+
"description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
|
|
7767
|
+
"value": { "type": "number", "default": "0" }
|
|
7768
|
+
},
|
|
7769
|
+
{
|
|
7770
|
+
"name": "hover-bridge",
|
|
7771
|
+
"description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
|
|
7772
|
+
"value": { "type": "boolean", "default": "false" }
|
|
7773
|
+
}
|
|
7774
|
+
],
|
|
7775
|
+
"slots": [
|
|
7776
|
+
{ "name": "", "description": "The default slot." },
|
|
7777
|
+
{ "name": "example", "description": "An example slot." }
|
|
7778
|
+
],
|
|
7779
|
+
"events": [
|
|
7780
|
+
{ "name": "zn-event-name", "description": "Emitted as an example." }
|
|
7781
|
+
],
|
|
7782
|
+
"js": {
|
|
7783
|
+
"properties": [
|
|
7784
|
+
{
|
|
7785
|
+
"name": "popup",
|
|
7786
|
+
"description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript.",
|
|
7787
|
+
"type": "HTMLElement"
|
|
7788
|
+
},
|
|
7789
|
+
{
|
|
7790
|
+
"name": "anchor",
|
|
7791
|
+
"description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
|
|
7792
|
+
"type": "Element | string | VirtualElement"
|
|
7793
|
+
},
|
|
7794
|
+
{
|
|
7795
|
+
"name": "active",
|
|
7796
|
+
"description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
|
|
7797
|
+
"type": "boolean"
|
|
7798
|
+
},
|
|
7799
|
+
{
|
|
7800
|
+
"name": "placement",
|
|
7801
|
+
"description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
|
|
7802
|
+
"type": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'"
|
|
7803
|
+
},
|
|
7804
|
+
{
|
|
7805
|
+
"name": "strategy",
|
|
7806
|
+
"description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
|
|
7807
|
+
"type": "'absolute' | 'fixed'"
|
|
7808
|
+
},
|
|
7809
|
+
{
|
|
7810
|
+
"name": "distance",
|
|
7811
|
+
"description": "The distance in pixels from which to offset the panel away from its anchor.",
|
|
7812
|
+
"type": "number"
|
|
7813
|
+
},
|
|
7814
|
+
{
|
|
7815
|
+
"name": "skidding",
|
|
7816
|
+
"description": "The distance in pixels from which to offset the panel along its anchor.",
|
|
7817
|
+
"type": "number"
|
|
7818
|
+
},
|
|
7819
|
+
{
|
|
7820
|
+
"name": "arrow",
|
|
7821
|
+
"description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
|
|
7822
|
+
"type": "boolean"
|
|
7823
|
+
},
|
|
7824
|
+
{
|
|
7825
|
+
"name": "arrowPlacement",
|
|
7826
|
+
"description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
|
|
7827
|
+
"type": "'start' | 'end' | 'center' | 'anchor'"
|
|
7828
|
+
},
|
|
7829
|
+
{
|
|
7830
|
+
"name": "arrowPadding",
|
|
7831
|
+
"description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
|
|
7832
|
+
"type": "number"
|
|
7833
|
+
},
|
|
7834
|
+
{
|
|
7835
|
+
"name": "flip",
|
|
7836
|
+
"description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
|
|
7837
|
+
"type": "boolean"
|
|
7838
|
+
},
|
|
7839
|
+
{
|
|
7840
|
+
"name": "flipFallbackPlacements",
|
|
7841
|
+
"description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
|
|
7842
|
+
"type": "string"
|
|
7843
|
+
},
|
|
7844
|
+
{
|
|
7845
|
+
"name": "flipFallbackStrategy",
|
|
7846
|
+
"description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
|
|
7847
|
+
"type": "'best-fit' | 'initial'"
|
|
7848
|
+
},
|
|
7849
|
+
{
|
|
7850
|
+
"name": "flipBoundary",
|
|
7851
|
+
"description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7852
|
+
"type": "Element | Element[]"
|
|
7853
|
+
},
|
|
7854
|
+
{
|
|
7855
|
+
"name": "flipPadding",
|
|
7856
|
+
"description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
|
|
7857
|
+
"type": "number"
|
|
7858
|
+
},
|
|
7859
|
+
{
|
|
7860
|
+
"name": "shift",
|
|
7861
|
+
"description": "Moves the popup along the axis to keep it in view when clipped.",
|
|
7862
|
+
"type": "boolean"
|
|
7863
|
+
},
|
|
7864
|
+
{
|
|
7865
|
+
"name": "shiftBoundary",
|
|
7866
|
+
"description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7867
|
+
"type": "Element | Element[]"
|
|
7868
|
+
},
|
|
7869
|
+
{
|
|
7870
|
+
"name": "shiftPadding",
|
|
7871
|
+
"description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
|
|
7872
|
+
"type": "number"
|
|
7873
|
+
},
|
|
7874
|
+
{
|
|
7875
|
+
"name": "autoSize",
|
|
7876
|
+
"description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
|
|
7877
|
+
"type": "'horizontal' | 'vertical' | 'both'"
|
|
7878
|
+
},
|
|
7879
|
+
{
|
|
7880
|
+
"name": "sync",
|
|
7881
|
+
"description": "Syncs the popup's width or height to that of the anchor element.",
|
|
7882
|
+
"type": "'width' | 'height' | 'both'"
|
|
7883
|
+
},
|
|
7884
|
+
{
|
|
7885
|
+
"name": "autoSizeBoundary",
|
|
7886
|
+
"description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
|
|
7887
|
+
"type": "Element | Element[]"
|
|
7888
|
+
},
|
|
7889
|
+
{
|
|
7890
|
+
"name": "autoSizePadding",
|
|
7891
|
+
"description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
|
|
7892
|
+
"type": "number"
|
|
7893
|
+
},
|
|
7894
|
+
{
|
|
7895
|
+
"name": "hoverBridge",
|
|
7896
|
+
"description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
|
|
7897
|
+
"type": "boolean"
|
|
7898
|
+
},
|
|
7899
|
+
{ "name": "handleAnchorHover" }
|
|
7900
|
+
],
|
|
7901
|
+
"events": [
|
|
7902
|
+
{
|
|
7903
|
+
"name": "zn-event-name",
|
|
7904
|
+
"description": "Emitted as an example."
|
|
7905
|
+
}
|
|
7906
|
+
]
|
|
7907
|
+
}
|
|
7908
|
+
},
|
|
7889
7909
|
{
|
|
7890
7910
|
"name": "zn-progress-bar",
|
|
7891
7911
|
"description": "Progress bars provide visual feedback about the completion status of a task or process.\n---\n\n\n### **CSS Properties:**\n - **--zn-border-color** - The color of the progress bar background track. _(default: undefined)_\n- **--zn-progress-bar-color** - The color of the progress bar fill. _(default: undefined)_\n- **--zn-text-heading** - The color of the caption text. _(default: undefined)_\n- **--zn-text** - The color of the progress percentage and description text. _(default: undefined)_\n- **--zn-spacing-x-small** - The spacing between header/footer and the progress bar. _(default: undefined)_\n\n### **CSS Parts:**\n - **header** - The header container that contains the caption and progress text.\n- **caption** - The caption text element.\n- **progress** - The progress percentage text element.\n- **bar** - The SVG element containing the progress bar.\n- **track** - The background track of the progress bar.\n- **fill** - The filled portion of the progress bar indicating progress.\n- **footer** - The footer container that contains the description.\n- **info** - The description text element.",
|
|
@@ -9196,6 +9216,11 @@
|
|
|
9196
9216
|
"name": "conditional",
|
|
9197
9217
|
"value": { "type": "string", "default": "\"\"" }
|
|
9198
9218
|
},
|
|
9219
|
+
{
|
|
9220
|
+
"name": "requires",
|
|
9221
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated. The control stays disabled until every one of them\nis filled, and is disabled again if any is cleared.",
|
|
9222
|
+
"value": { "type": "string", "default": "\"\"" }
|
|
9223
|
+
},
|
|
9199
9224
|
{
|
|
9200
9225
|
"name": "data-uri",
|
|
9201
9226
|
"description": "The URL to fetch options from. When set, the component fetches JSON from this URL and renders the results as\noptions. The expected format is an array of objects with `key` and `value` properties:\n`[{\"key\": \"us\", \"value\": \"United States\"}, ...]`\nWhen not set, the component works exactly as before using slotted `<zn-option>` elements.",
|
|
@@ -9450,6 +9475,11 @@
|
|
|
9450
9475
|
},
|
|
9451
9476
|
{ "name": "distinct", "type": "string" },
|
|
9452
9477
|
{ "name": "conditional", "type": "string" },
|
|
9478
|
+
{
|
|
9479
|
+
"name": "requires",
|
|
9480
|
+
"description": "Ids or names of controls that must have a value before this one becomes\nusable, comma separated. The control stays disabled until every one of them\nis filled, and is disabled again if any is cleared.",
|
|
9481
|
+
"type": "string"
|
|
9482
|
+
},
|
|
9453
9483
|
{
|
|
9454
9484
|
"name": "dataUri",
|
|
9455
9485
|
"description": "The URL to fetch options from. When set, the component fetches JSON from this URL and renders the results as\noptions. The expected format is an array of objects with `key` and `value` properties:\n`[{\"key\": \"us\", \"value\": \"United States\"}, ...]`\nWhen not set, the component works exactly as before using slotted `<zn-option>` elements.",
|