@kubex/zinc 1.1.11 → 1.1.12

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.
@@ -47,79 +47,6 @@
47
47
  }
48
48
  ]
49
49
  },
50
- {
51
- "kind": "javascript-module",
52
- "path": "components/action-bar/action-bar.js",
53
- "declarations": [
54
- {
55
- "kind": "class",
56
- "description": "",
57
- "name": "ZnActionBar",
58
- "cssProperties": [
59
- {
60
- "description": "An example CSS custom property.",
61
- "name": "--example"
62
- }
63
- ],
64
- "cssParts": [
65
- {
66
- "description": "The component's base wrapper.",
67
- "name": "base"
68
- }
69
- ],
70
- "slots": [
71
- {
72
- "description": "The default slot.",
73
- "name": ""
74
- },
75
- {
76
- "description": "An example slot.",
77
- "name": "example"
78
- }
79
- ],
80
- "members": [
81
- {
82
- "kind": "field",
83
- "name": "localize",
84
- "privacy": "private",
85
- "readonly": true,
86
- "default": "new LocalizeController(this)"
87
- }
88
- ],
89
- "events": [
90
- {
91
- "description": "Emitted as an example.",
92
- "name": "zn-event-name"
93
- }
94
- ],
95
- "superclass": {
96
- "name": "ZincElement",
97
- "module": "/src/internal/zinc-element"
98
- },
99
- "summary": "Short summary of the component's intended use.",
100
- "tagNameWithoutPrefix": "action-bar",
101
- "tagName": "zn-action-bar",
102
- "customElement": true,
103
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
104
- "documentation": "https://zinc.style/components/action-bar",
105
- "status": "experimental",
106
- "since": "1.0",
107
- "dependencies": [
108
- "zn-example"
109
- ]
110
- }
111
- ],
112
- "exports": [
113
- {
114
- "kind": "js",
115
- "name": "default",
116
- "declaration": {
117
- "name": "ZnActionBar",
118
- "module": "components/action-bar/action-bar.js"
119
- }
120
- }
121
- ]
122
- },
123
50
  {
124
51
  "kind": "javascript-module",
125
52
  "path": "components/alert/alert.js",
@@ -296,6 +223,79 @@
296
223
  }
297
224
  ]
298
225
  },
226
+ {
227
+ "kind": "javascript-module",
228
+ "path": "components/action-bar/action-bar.js",
229
+ "declarations": [
230
+ {
231
+ "kind": "class",
232
+ "description": "",
233
+ "name": "ZnActionBar",
234
+ "cssProperties": [
235
+ {
236
+ "description": "An example CSS custom property.",
237
+ "name": "--example"
238
+ }
239
+ ],
240
+ "cssParts": [
241
+ {
242
+ "description": "The component's base wrapper.",
243
+ "name": "base"
244
+ }
245
+ ],
246
+ "slots": [
247
+ {
248
+ "description": "The default slot.",
249
+ "name": ""
250
+ },
251
+ {
252
+ "description": "An example slot.",
253
+ "name": "example"
254
+ }
255
+ ],
256
+ "members": [
257
+ {
258
+ "kind": "field",
259
+ "name": "localize",
260
+ "privacy": "private",
261
+ "readonly": true,
262
+ "default": "new LocalizeController(this)"
263
+ }
264
+ ],
265
+ "events": [
266
+ {
267
+ "description": "Emitted as an example.",
268
+ "name": "zn-event-name"
269
+ }
270
+ ],
271
+ "superclass": {
272
+ "name": "ZincElement",
273
+ "module": "/src/internal/zinc-element"
274
+ },
275
+ "summary": "Short summary of the component's intended use.",
276
+ "tagNameWithoutPrefix": "action-bar",
277
+ "tagName": "zn-action-bar",
278
+ "customElement": true,
279
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/action-bar\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
280
+ "documentation": "https://zinc.style/components/action-bar",
281
+ "status": "experimental",
282
+ "since": "1.0",
283
+ "dependencies": [
284
+ "zn-example"
285
+ ]
286
+ }
287
+ ],
288
+ "exports": [
289
+ {
290
+ "kind": "js",
291
+ "name": "default",
292
+ "declaration": {
293
+ "name": "ZnActionBar",
294
+ "module": "components/action-bar/action-bar.js"
295
+ }
296
+ }
297
+ ]
298
+ },
299
299
  {
300
300
  "kind": "javascript-module",
301
301
  "path": "components/animated-button/animated-button.js",
@@ -23357,534 +23357,639 @@
23357
23357
  },
23358
23358
  {
23359
23359
  "kind": "javascript-module",
23360
- "path": "components/popup/popup.js",
23360
+ "path": "components/priority-list/priority-list.js",
23361
23361
  "declarations": [
23362
23362
  {
23363
23363
  "kind": "class",
23364
23364
  "description": "",
23365
- "name": "ZnPopup",
23365
+ "name": "ZnPriorityList",
23366
23366
  "cssProperties": [
23367
23367
  {
23368
- "description": "An example CSS custom property.",
23369
- "name": "--example"
23368
+ "description": "The gap between list items. Defaults to `var(--zn-spacing-2x-small)`.",
23369
+ "name": "--zn-priority-list-item-gap"
23370
+ },
23371
+ {
23372
+ "description": "The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`.",
23373
+ "name": "--zn-priority-list-item-padding"
23374
+ },
23375
+ {
23376
+ "description": "The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`.",
23377
+ "name": "--zn-priority-list-handle-color"
23378
+ },
23379
+ {
23380
+ "description": "The color of the priority number. Defaults to `var(--zn-color-neutral-600)`.",
23381
+ "name": "--zn-priority-list-priority-color"
23370
23382
  }
23371
23383
  ],
23372
23384
  "cssParts": [
23373
23385
  {
23374
- "description": "The component's base wrapper.",
23375
- "name": "base"
23386
+ "description": "The form control wrapper.",
23387
+ "name": "form-control"
23388
+ },
23389
+ {
23390
+ "description": "The label wrapper.",
23391
+ "name": "form-control-label"
23392
+ },
23393
+ {
23394
+ "description": "The input area wrapper.",
23395
+ "name": "form-control-input"
23396
+ },
23397
+ {
23398
+ "description": "The help text wrapper.",
23399
+ "name": "form-control-help-text"
23400
+ },
23401
+ {
23402
+ "description": "The list container.",
23403
+ "name": "list"
23404
+ },
23405
+ {
23406
+ "description": "An individual list item row.",
23407
+ "name": "item"
23408
+ },
23409
+ {
23410
+ "description": "The drag handle icon.",
23411
+ "name": "drag-handle"
23412
+ },
23413
+ {
23414
+ "description": "The priority number badge.",
23415
+ "name": "priority"
23416
+ },
23417
+ {
23418
+ "description": "The content area of an item.",
23419
+ "name": "content"
23376
23420
  }
23377
23421
  ],
23378
23422
  "slots": [
23379
23423
  {
23380
- "description": "The default slot.",
23424
+ "description": "The default slot where list items are placed. Each slotted element must have a `value` attribute that uniquely identifies the item. The component automatically assigns slot names to project each item into the correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing).",
23381
23425
  "name": ""
23382
23426
  },
23383
23427
  {
23384
- "description": "An example slot.",
23385
- "name": "example"
23428
+ "description": "The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.",
23429
+ "name": "label"
23430
+ },
23431
+ {
23432
+ "description": "Used to add text displayed in a tooltip next to the label.",
23433
+ "name": "label-tooltip"
23434
+ },
23435
+ {
23436
+ "description": "Text that describes how to use the component. Alternatively, use the `help-text` attribute.",
23437
+ "name": "help-text"
23386
23438
  }
23387
23439
  ],
23388
23440
  "members": [
23389
23441
  {
23390
23442
  "kind": "field",
23391
- "name": "anchorEl",
23443
+ "name": "dependencies",
23392
23444
  "type": {
23393
- "text": "Element | VirtualElement | null"
23445
+ "text": "object"
23394
23446
  },
23395
- "privacy": "private"
23447
+ "static": true,
23448
+ "default": "{ 'zn-icon': ZnIcon, }"
23396
23449
  },
23397
23450
  {
23398
23451
  "kind": "field",
23399
- "name": "cleanup",
23400
- "type": {
23401
- "text": "ReturnType<typeof autoUpdate> | undefined"
23402
- },
23403
- "privacy": "private"
23452
+ "name": "formControlController",
23453
+ "privacy": "protected",
23454
+ "readonly": true,
23455
+ "default": "new FormControlController(this, { value: (control: ZnPriorityList) => { return JSON.stringify(control.getPriorityMap()); }, defaultValue: (control: ZnPriorityList) => control.defaultValue, setValue: (control: ZnPriorityList, value: string) => { if (value) { try { const parsed: unknown = JSON.parse(value); if (Array.isArray(parsed) && parsed.every((item: unknown): item is string => typeof item === 'string')) { control.value = parsed as string[]; } } catch { // ignore parse errors } } }, })"
23404
23456
  },
23405
23457
  {
23406
23458
  "kind": "field",
23407
- "name": "popup",
23408
- "type": {
23409
- "text": "HTMLElement"
23410
- },
23411
- "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript."
23459
+ "name": "hasSlotController",
23460
+ "privacy": "private",
23461
+ "readonly": true,
23462
+ "default": "new HasSlotController(this, 'help-text', 'label')"
23412
23463
  },
23413
23464
  {
23414
23465
  "kind": "field",
23415
- "name": "arrowEl",
23466
+ "name": "hiddenInputsContainer",
23416
23467
  "type": {
23417
- "text": "HTMLElement"
23418
- },
23419
- "privacy": "private"
23468
+ "text": "HTMLDivElement"
23469
+ }
23420
23470
  },
23421
23471
  {
23422
23472
  "kind": "field",
23423
- "name": "anchor",
23473
+ "name": "name",
23424
23474
  "type": {
23425
- "text": "Element | string | VirtualElement"
23475
+ "text": "string"
23426
23476
  },
23427
- "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.",
23428
- "attribute": "anchor"
23477
+ "default": "''",
23478
+ "description": "The name prefix for form submission. Each item generates a hidden input named `{name}[{itemValue}]`\nwith the priority number as its value.",
23479
+ "attribute": "name"
23429
23480
  },
23430
23481
  {
23431
23482
  "kind": "field",
23432
- "name": "active",
23483
+ "name": "value",
23433
23484
  "type": {
23434
- "text": "boolean"
23485
+ "text": "string[]"
23435
23486
  },
23436
- "default": "false",
23437
- "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.",
23438
- "attribute": "active",
23439
- "reflects": true
23487
+ "description": "The current ordered list of item keys, reflecting the visual order. This is the source of truth for ordering.\nEach entry should match a `value` attribute on a slotted child element.",
23488
+ "attribute": "value"
23440
23489
  },
23441
23490
  {
23442
23491
  "kind": "field",
23443
- "name": "placement",
23492
+ "name": "_value",
23444
23493
  "type": {
23445
- "text": "| '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'"
23494
+ "text": "string[]"
23446
23495
  },
23447
- "default": "'top'",
23448
- "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
23449
- "attribute": "placement",
23450
- "reflects": true
23496
+ "privacy": "private",
23497
+ "default": "[]"
23451
23498
  },
23452
23499
  {
23453
23500
  "kind": "field",
23454
- "name": "strategy",
23501
+ "name": "defaultValue",
23455
23502
  "type": {
23456
- "text": "'absolute' | 'fixed'"
23503
+ "text": "string[]"
23457
23504
  },
23458
- "default": "'fixed'",
23459
- "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.",
23460
- "attribute": "strategy",
23461
- "reflects": true
23505
+ "default": "[]"
23462
23506
  },
23463
23507
  {
23464
23508
  "kind": "field",
23465
- "name": "distance",
23509
+ "name": "label",
23466
23510
  "type": {
23467
- "text": "number"
23511
+ "text": "string"
23468
23512
  },
23469
- "default": "0",
23470
- "description": "The distance in pixels from which to offset the panel away from its anchor.",
23471
- "attribute": "distance"
23513
+ "default": "''",
23514
+ "description": "The component's label. Required for proper accessibility.",
23515
+ "attribute": "label"
23472
23516
  },
23473
23517
  {
23474
23518
  "kind": "field",
23475
- "name": "skidding",
23519
+ "name": "labelTooltip",
23476
23520
  "type": {
23477
- "text": "number"
23521
+ "text": "string"
23478
23522
  },
23479
- "default": "0",
23480
- "description": "The distance in pixels from which to offset the panel along its anchor.",
23481
- "attribute": "skidding"
23523
+ "default": "''",
23524
+ "description": "Text that appears in a tooltip next to the label.",
23525
+ "attribute": "label-tooltip"
23482
23526
  },
23483
23527
  {
23484
23528
  "kind": "field",
23485
- "name": "arrow",
23529
+ "name": "helpText",
23486
23530
  "type": {
23487
- "text": "boolean"
23531
+ "text": "string"
23488
23532
  },
23489
- "default": "false",
23490
- "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.",
23491
- "attribute": "arrow"
23533
+ "default": "''",
23534
+ "description": "Help text that describes how to use the component.",
23535
+ "attribute": "help-text"
23492
23536
  },
23493
23537
  {
23494
23538
  "kind": "field",
23495
- "name": "arrowPlacement",
23539
+ "name": "form",
23496
23540
  "type": {
23497
- "text": "'start' | 'end' | 'center' | 'anchor'"
23541
+ "text": "string"
23498
23542
  },
23499
- "default": "'anchor'",
23500
- "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.",
23501
- "attribute": "arrow-placement"
23543
+ "default": "''",
23544
+ "description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
23545
+ "attribute": "form",
23546
+ "reflects": true
23502
23547
  },
23503
23548
  {
23504
23549
  "kind": "field",
23505
- "name": "arrowPadding",
23550
+ "name": "size",
23506
23551
  "type": {
23507
- "text": "number"
23552
+ "text": "'small' | 'medium' | 'large'"
23508
23553
  },
23509
- "default": "10",
23510
- "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.",
23511
- "attribute": "arrow-padding"
23554
+ "default": "'medium'",
23555
+ "description": "The size of the list items.",
23556
+ "attribute": "size",
23557
+ "reflects": true
23512
23558
  },
23513
23559
  {
23514
23560
  "kind": "field",
23515
- "name": "flip",
23561
+ "name": "disabled",
23516
23562
  "type": {
23517
23563
  "text": "boolean"
23518
23564
  },
23519
23565
  "default": "false",
23520
- "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.",
23521
- "attribute": "flip"
23522
- },
23523
- {
23524
- "kind": "field",
23525
- "name": "flipFallbackPlacements",
23526
- "type": {
23527
- "text": "string"
23528
- },
23529
- "default": "''",
23530
- "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.",
23531
- "attribute": "flip-fallback-placements"
23566
+ "description": "Whether the priority list is disabled.",
23567
+ "attribute": "disabled",
23568
+ "reflects": true
23532
23569
  },
23533
23570
  {
23534
23571
  "kind": "field",
23535
- "name": "flipFallbackStrategy",
23572
+ "name": "required",
23536
23573
  "type": {
23537
- "text": "'best-fit' | 'initial'"
23574
+ "text": "boolean"
23538
23575
  },
23539
- "default": "'best-fit'",
23540
- "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.",
23541
- "attribute": "flip-fallback-strategy"
23576
+ "default": "false",
23577
+ "description": "Ensures the form control has a value before allowing submission.",
23578
+ "attribute": "required",
23579
+ "reflects": true
23542
23580
  },
23543
23581
  {
23544
23582
  "kind": "field",
23545
- "name": "flipBoundary",
23583
+ "name": "priorityStart",
23546
23584
  "type": {
23547
- "text": "Element | Element[]"
23585
+ "text": "number"
23548
23586
  },
23549
- "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.",
23550
- "attribute": "flipBoundary"
23587
+ "default": "1",
23588
+ "description": "The starting priority number. Defaults to 1.",
23589
+ "attribute": "priority-start"
23551
23590
  },
23552
23591
  {
23553
23592
  "kind": "field",
23554
- "name": "flipPadding",
23593
+ "name": "formAction",
23555
23594
  "type": {
23556
- "text": "number"
23595
+ "text": "string"
23557
23596
  },
23558
- "default": "0",
23559
- "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
23560
- "attribute": "flip-padding"
23597
+ "description": "When set, the associated form will be submitted with the given action URL whenever items are reordered.\nIf set to an empty string, the form will be submitted using its existing action.",
23598
+ "attribute": "formaction"
23561
23599
  },
23562
23600
  {
23563
23601
  "kind": "field",
23564
- "name": "shift",
23602
+ "name": "order",
23565
23603
  "type": {
23566
- "text": "boolean"
23604
+ "text": "string"
23567
23605
  },
23568
- "default": "false",
23569
- "description": "Moves the popup along the axis to keep it in view when clipped.",
23570
- "attribute": "shift"
23606
+ "default": "''",
23607
+ "description": "A comma-separated list of item keys defining the initial display order.\nKeys must match the `value` attributes on slotted children.\nAny slotted items not listed are appended at the end in DOM order.",
23608
+ "attribute": "order"
23571
23609
  },
23572
23610
  {
23573
23611
  "kind": "field",
23574
- "name": "shiftBoundary",
23612
+ "name": "draggedKey",
23575
23613
  "type": {
23576
- "text": "Element | Element[]"
23614
+ "text": "string | null"
23577
23615
  },
23578
- "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.",
23579
- "attribute": "shiftBoundary"
23616
+ "privacy": "private",
23617
+ "default": "null"
23580
23618
  },
23581
23619
  {
23582
23620
  "kind": "field",
23583
- "name": "shiftPadding",
23621
+ "name": "isDragging",
23584
23622
  "type": {
23585
- "text": "number"
23623
+ "text": "boolean"
23586
23624
  },
23587
- "default": "0",
23588
- "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
23589
- "attribute": "shift-padding"
23625
+ "privacy": "private",
23626
+ "default": "false"
23590
23627
  },
23591
23628
  {
23592
23629
  "kind": "field",
23593
- "name": "autoSize",
23630
+ "name": "dragOverKey",
23594
23631
  "type": {
23595
- "text": "'horizontal' | 'vertical' | 'both'"
23632
+ "text": "string | null"
23596
23633
  },
23597
- "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
23598
- "attribute": "auto-size"
23634
+ "privacy": "private",
23635
+ "default": "null"
23599
23636
  },
23600
23637
  {
23601
23638
  "kind": "field",
23602
- "name": "sync",
23639
+ "name": "validity",
23603
23640
  "type": {
23604
- "text": "'width' | 'height' | 'both'"
23641
+ "text": "ValidityState"
23605
23642
  },
23606
- "description": "Syncs the popup's width or height to that of the anchor element.",
23607
- "attribute": "sync"
23643
+ "description": "Gets the validity state object.",
23644
+ "readonly": true
23608
23645
  },
23609
23646
  {
23610
23647
  "kind": "field",
23611
- "name": "autoSizeBoundary",
23648
+ "name": "validationMessage",
23612
23649
  "type": {
23613
- "text": "Element | Element[]"
23650
+ "text": "string"
23614
23651
  },
23615
- "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.",
23616
- "attribute": "autoSizeBoundary"
23652
+ "description": "Gets the validation message.",
23653
+ "readonly": true
23617
23654
  },
23618
23655
  {
23619
- "kind": "field",
23620
- "name": "autoSizePadding",
23621
- "type": {
23622
- "text": "number"
23623
- },
23624
- "default": "0",
23625
- "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
23626
- "attribute": "auto-size-padding"
23656
+ "kind": "method",
23657
+ "name": "_initializeOrderFromSlot",
23658
+ "privacy": "private",
23659
+ "description": "Initialize item order from slotted children if no explicit value was provided.\nIf an `order` attribute is set, use it to define the initial order,\nappending any slotted items not listed in the order at the end."
23627
23660
  },
23628
23661
  {
23629
- "kind": "field",
23630
- "name": "hoverBridge",
23631
- "type": {
23632
- "text": "boolean"
23662
+ "kind": "method",
23663
+ "name": "_getSlottedItems",
23664
+ "privacy": "private",
23665
+ "return": {
23666
+ "type": {
23667
+ "text": "HTMLElement[]"
23668
+ }
23633
23669
  },
23634
- "default": "false",
23635
- "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.",
23636
- "attribute": "hover-bridge"
23670
+ "description": "Gets all direct children with a `value` attribute (excluding those in reserved slots)."
23637
23671
  },
23638
23672
  {
23639
23673
  "kind": "method",
23640
- "name": "handleAnchorChange",
23641
- "privacy": "private"
23674
+ "name": "_assignSlotNames",
23675
+ "privacy": "private",
23676
+ "description": "Assigns `slot` attributes to light DOM children based on their `value` attribute,\nso they project into the correct named slot in the shadow DOM."
23642
23677
  },
23643
23678
  {
23644
- "kind": "field",
23645
- "name": "handleAnchorHover",
23646
- "privacy": "public"
23679
+ "kind": "method",
23680
+ "name": "getPriorityMap",
23681
+ "return": {
23682
+ "type": {
23683
+ "text": "PriorityItem[]"
23684
+ }
23685
+ },
23686
+ "description": "Returns the priority map: an array of { key, priority } objects."
23647
23687
  },
23648
23688
  {
23649
23689
  "kind": "method",
23650
- "name": "start",
23651
- "privacy": "private"
23690
+ "name": "_syncHiddenInputs",
23691
+ "privacy": "private",
23692
+ "description": "Syncs hidden inputs so form data includes priority values."
23652
23693
  },
23653
23694
  {
23654
23695
  "kind": "method",
23655
- "name": "stop",
23696
+ "name": "_moveItem",
23656
23697
  "privacy": "private",
23657
- "return": {
23658
- "type": {
23659
- "text": "Promise<void>"
23698
+ "parameters": [
23699
+ {
23700
+ "name": "fromIndex",
23701
+ "type": {
23702
+ "text": "number"
23703
+ }
23704
+ },
23705
+ {
23706
+ "name": "toIndex",
23707
+ "type": {
23708
+ "text": "number"
23709
+ }
23660
23710
  }
23661
- }
23711
+ ],
23712
+ "description": "Moves an item from one index to another."
23662
23713
  },
23663
23714
  {
23664
23715
  "kind": "method",
23665
- "name": "reposition",
23666
- "description": "Forces the popup to recalculate and reposition itself."
23716
+ "name": "_submitForm",
23717
+ "privacy": "private",
23718
+ "description": "Submits the associated form if a `formaction` attribute is set."
23667
23719
  },
23668
23720
  {
23669
- "kind": "field",
23670
- "name": "updateHoverBridge",
23671
- "privacy": "private"
23672
- }
23673
- ],
23674
- "events": [
23675
- {
23676
- "description": "Emitted as an example.",
23677
- "name": "zn-event-name"
23678
- }
23679
- ],
23680
- "attributes": [
23721
+ "kind": "method",
23722
+ "name": "_handleDragStart",
23723
+ "privacy": "private",
23724
+ "parameters": [
23725
+ {
23726
+ "name": "event",
23727
+ "type": {
23728
+ "text": "DragEvent"
23729
+ }
23730
+ },
23731
+ {
23732
+ "name": "key",
23733
+ "type": {
23734
+ "text": "string"
23735
+ }
23736
+ }
23737
+ ]
23738
+ },
23681
23739
  {
23682
- "name": "anchor",
23683
- "type": {
23684
- "text": "Element | string | VirtualElement"
23685
- },
23686
- "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.",
23687
- "fieldName": "anchor"
23740
+ "kind": "method",
23741
+ "name": "_handleDragEnd",
23742
+ "privacy": "private"
23688
23743
  },
23689
23744
  {
23690
- "name": "active",
23691
- "type": {
23692
- "text": "boolean"
23693
- },
23694
- "default": "false",
23695
- "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.",
23696
- "fieldName": "active"
23745
+ "kind": "method",
23746
+ "name": "_handleDragOver",
23747
+ "privacy": "private",
23748
+ "parameters": [
23749
+ {
23750
+ "name": "event",
23751
+ "type": {
23752
+ "text": "DragEvent"
23753
+ }
23754
+ },
23755
+ {
23756
+ "name": "key",
23757
+ "type": {
23758
+ "text": "string"
23759
+ }
23760
+ }
23761
+ ]
23697
23762
  },
23698
23763
  {
23699
- "name": "placement",
23700
- "type": {
23701
- "text": "| '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'"
23702
- },
23703
- "default": "'top'",
23704
- "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
23705
- "fieldName": "placement"
23764
+ "kind": "method",
23765
+ "name": "_handleDragLeave",
23766
+ "privacy": "private",
23767
+ "parameters": [
23768
+ {
23769
+ "name": "event",
23770
+ "type": {
23771
+ "text": "DragEvent"
23772
+ }
23773
+ },
23774
+ {
23775
+ "name": "key",
23776
+ "type": {
23777
+ "text": "string"
23778
+ }
23779
+ }
23780
+ ]
23706
23781
  },
23707
23782
  {
23708
- "name": "strategy",
23709
- "type": {
23710
- "text": "'absolute' | 'fixed'"
23711
- },
23712
- "default": "'fixed'",
23713
- "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.",
23714
- "fieldName": "strategy"
23783
+ "kind": "method",
23784
+ "name": "_handleDrop",
23785
+ "privacy": "private",
23786
+ "parameters": [
23787
+ {
23788
+ "name": "event",
23789
+ "type": {
23790
+ "text": "DragEvent"
23791
+ }
23792
+ }
23793
+ ]
23715
23794
  },
23716
23795
  {
23717
- "name": "distance",
23718
- "type": {
23719
- "text": "number"
23720
- },
23721
- "default": "0",
23722
- "description": "The distance in pixels from which to offset the panel away from its anchor.",
23723
- "fieldName": "distance"
23796
+ "kind": "method",
23797
+ "name": "_handleKeyDown",
23798
+ "privacy": "private",
23799
+ "parameters": [
23800
+ {
23801
+ "name": "event",
23802
+ "type": {
23803
+ "text": "KeyboardEvent"
23804
+ }
23805
+ },
23806
+ {
23807
+ "name": "key",
23808
+ "type": {
23809
+ "text": "string"
23810
+ }
23811
+ }
23812
+ ]
23724
23813
  },
23725
23814
  {
23726
- "name": "skidding",
23727
- "type": {
23728
- "text": "number"
23729
- },
23730
- "default": "0",
23731
- "description": "The distance in pixels from which to offset the panel along its anchor.",
23732
- "fieldName": "skidding"
23815
+ "kind": "method",
23816
+ "name": "_handleSlotChange",
23817
+ "privacy": "private"
23733
23818
  },
23734
23819
  {
23735
- "name": "arrow",
23736
- "type": {
23737
- "text": "boolean"
23820
+ "kind": "method",
23821
+ "name": "checkValidity",
23822
+ "return": {
23823
+ "type": {
23824
+ "text": "boolean"
23825
+ }
23738
23826
  },
23739
- "default": "false",
23740
- "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.",
23741
- "fieldName": "arrow"
23827
+ "description": "Checks for validity but does not show a validation message."
23742
23828
  },
23743
23829
  {
23744
- "name": "arrow-placement",
23745
- "type": {
23746
- "text": "'start' | 'end' | 'center' | 'anchor'"
23830
+ "kind": "method",
23831
+ "name": "getForm",
23832
+ "return": {
23833
+ "type": {
23834
+ "text": "HTMLFormElement | null"
23835
+ }
23747
23836
  },
23748
- "default": "'anchor'",
23749
- "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.",
23750
- "fieldName": "arrowPlacement"
23837
+ "description": "Gets the associated form, if one exists."
23751
23838
  },
23752
23839
  {
23753
- "name": "arrow-padding",
23754
- "type": {
23755
- "text": "number"
23840
+ "kind": "method",
23841
+ "name": "reportValidity",
23842
+ "return": {
23843
+ "type": {
23844
+ "text": "boolean"
23845
+ }
23756
23846
  },
23757
- "default": "10",
23758
- "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.",
23759
- "fieldName": "arrowPadding"
23847
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
23760
23848
  },
23761
23849
  {
23762
- "name": "flip",
23763
- "type": {
23764
- "text": "boolean"
23765
- },
23766
- "default": "false",
23767
- "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.",
23768
- "fieldName": "flip"
23850
+ "kind": "method",
23851
+ "name": "setCustomValidity",
23852
+ "parameters": [
23853
+ {
23854
+ "name": "_message",
23855
+ "default": "''"
23856
+ }
23857
+ ],
23858
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
23859
+ }
23860
+ ],
23861
+ "events": [
23862
+ {
23863
+ "description": "Emitted when the order of items changes.",
23864
+ "name": "zn-change"
23769
23865
  },
23770
23866
  {
23771
- "name": "flip-fallback-placements",
23867
+ "description": "Emitted when items are reordered. Call `getPriorityMap()` on the component to get the updated `{ key: string, priority: number }[]` array.",
23868
+ "name": "zn-reorder"
23869
+ }
23870
+ ],
23871
+ "attributes": [
23872
+ {
23873
+ "name": "name",
23772
23874
  "type": {
23773
23875
  "text": "string"
23774
23876
  },
23775
23877
  "default": "''",
23776
- "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.",
23777
- "fieldName": "flipFallbackPlacements"
23878
+ "description": "The name prefix for form submission. Each item generates a hidden input named `{name}[{itemValue}]`\nwith the priority number as its value.",
23879
+ "fieldName": "name"
23778
23880
  },
23779
23881
  {
23780
- "name": "flip-fallback-strategy",
23882
+ "name": "value",
23781
23883
  "type": {
23782
- "text": "'best-fit' | 'initial'"
23884
+ "text": "string[]"
23783
23885
  },
23784
- "default": "'best-fit'",
23785
- "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.",
23786
- "fieldName": "flipFallbackStrategy"
23886
+ "description": "The current ordered list of item keys, reflecting the visual order. This is the source of truth for ordering.\nEach entry should match a `value` attribute on a slotted child element.",
23887
+ "fieldName": "value"
23787
23888
  },
23788
23889
  {
23789
- "name": "flipBoundary",
23890
+ "name": "label",
23790
23891
  "type": {
23791
- "text": "Element | Element[]"
23892
+ "text": "string"
23792
23893
  },
23793
- "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.",
23794
- "fieldName": "flipBoundary"
23894
+ "default": "''",
23895
+ "description": "The component's label. Required for proper accessibility.",
23896
+ "fieldName": "label"
23795
23897
  },
23796
23898
  {
23797
- "name": "flip-padding",
23899
+ "name": "label-tooltip",
23798
23900
  "type": {
23799
- "text": "number"
23901
+ "text": "string"
23800
23902
  },
23801
- "default": "0",
23802
- "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
23803
- "fieldName": "flipPadding"
23903
+ "default": "''",
23904
+ "description": "Text that appears in a tooltip next to the label.",
23905
+ "fieldName": "labelTooltip"
23804
23906
  },
23805
23907
  {
23806
- "name": "shift",
23908
+ "name": "help-text",
23807
23909
  "type": {
23808
- "text": "boolean"
23910
+ "text": "string"
23809
23911
  },
23810
- "default": "false",
23811
- "description": "Moves the popup along the axis to keep it in view when clipped.",
23812
- "fieldName": "shift"
23912
+ "default": "''",
23913
+ "description": "Help text that describes how to use the component.",
23914
+ "fieldName": "helpText"
23813
23915
  },
23814
23916
  {
23815
- "name": "shiftBoundary",
23917
+ "name": "form",
23816
23918
  "type": {
23817
- "text": "Element | Element[]"
23919
+ "text": "string"
23818
23920
  },
23819
- "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.",
23820
- "fieldName": "shiftBoundary"
23921
+ "default": "''",
23922
+ "description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
23923
+ "fieldName": "form"
23821
23924
  },
23822
23925
  {
23823
- "name": "shift-padding",
23926
+ "name": "size",
23824
23927
  "type": {
23825
- "text": "number"
23928
+ "text": "'small' | 'medium' | 'large'"
23826
23929
  },
23827
- "default": "0",
23828
- "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
23829
- "fieldName": "shiftPadding"
23930
+ "default": "'medium'",
23931
+ "description": "The size of the list items.",
23932
+ "fieldName": "size"
23830
23933
  },
23831
23934
  {
23832
- "name": "auto-size",
23935
+ "name": "disabled",
23833
23936
  "type": {
23834
- "text": "'horizontal' | 'vertical' | 'both'"
23937
+ "text": "boolean"
23835
23938
  },
23836
- "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
23837
- "fieldName": "autoSize"
23939
+ "default": "false",
23940
+ "description": "Whether the priority list is disabled.",
23941
+ "fieldName": "disabled"
23838
23942
  },
23839
23943
  {
23840
- "name": "sync",
23944
+ "name": "required",
23841
23945
  "type": {
23842
- "text": "'width' | 'height' | 'both'"
23946
+ "text": "boolean"
23843
23947
  },
23844
- "description": "Syncs the popup's width or height to that of the anchor element.",
23845
- "fieldName": "sync"
23948
+ "default": "false",
23949
+ "description": "Ensures the form control has a value before allowing submission.",
23950
+ "fieldName": "required"
23846
23951
  },
23847
23952
  {
23848
- "name": "autoSizeBoundary",
23953
+ "name": "priority-start",
23849
23954
  "type": {
23850
- "text": "Element | Element[]"
23955
+ "text": "number"
23851
23956
  },
23852
- "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.",
23853
- "fieldName": "autoSizeBoundary"
23957
+ "default": "1",
23958
+ "description": "The starting priority number. Defaults to 1.",
23959
+ "fieldName": "priorityStart"
23854
23960
  },
23855
23961
  {
23856
- "name": "auto-size-padding",
23962
+ "name": "formaction",
23857
23963
  "type": {
23858
- "text": "number"
23964
+ "text": "string"
23859
23965
  },
23860
- "default": "0",
23861
- "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
23862
- "fieldName": "autoSizePadding"
23966
+ "description": "When set, the associated form will be submitted with the given action URL whenever items are reordered.\nIf set to an empty string, the form will be submitted using its existing action.",
23967
+ "fieldName": "formAction"
23863
23968
  },
23864
23969
  {
23865
- "name": "hover-bridge",
23970
+ "name": "order",
23866
23971
  "type": {
23867
- "text": "boolean"
23972
+ "text": "string"
23868
23973
  },
23869
- "default": "false",
23870
- "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.",
23871
- "fieldName": "hoverBridge"
23974
+ "default": "''",
23975
+ "description": "A comma-separated list of item keys defining the initial display order.\nKeys must match the `value` attributes on slotted children.\nAny slotted items not listed are appended at the end in DOM order.",
23976
+ "fieldName": "order"
23872
23977
  }
23873
23978
  ],
23874
23979
  "superclass": {
23875
23980
  "name": "ZincElement",
23876
23981
  "module": "/src/internal/zinc-element"
23877
23982
  },
23878
- "summary": "Short summary of the component's intended use.",
23879
- "tagNameWithoutPrefix": "popup",
23880
- "tagName": "zn-popup",
23983
+ "summary": "A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\nand keyboard reordering. Priority values are submitted as form data via hidden inputs.",
23984
+ "tagNameWithoutPrefix": "priority-list",
23985
+ "tagName": "zn-priority-list",
23881
23986
  "customElement": true,
23882
- "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/popup\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
23883
- "documentation": "https://zinc.style/components/popup",
23987
+ "jsDoc": "/**\n * @summary A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\n * and keyboard reordering. Priority values are submitted as form data via hidden inputs.\n *\n * @documentation https://zinc.style/components/priority-list\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n *\n * @slot - The default slot where list items are placed. Each slotted element must have a `value` attribute that\n * uniquely identifies the item. The component automatically assigns slot names to project each item into the\n * correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing).\n * @slot label - The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.\n * @slot label-tooltip - Used to add text displayed in a tooltip next to the label.\n * @slot help-text - Text that describes how to use the component. Alternatively, use the `help-text` attribute.\n *\n * @event zn-change - Emitted when the order of items changes.\n * @event zn-reorder - Emitted when items are reordered. Call `getPriorityMap()` on the component to get\n * the updated `{ key: string, priority: number }[]` array.\n *\n * @csspart form-control - The form control wrapper.\n * @csspart form-control-label - The label wrapper.\n * @csspart form-control-input - The input area wrapper.\n * @csspart form-control-help-text - The help text wrapper.\n * @csspart list - The list container.\n * @csspart item - An individual list item row.\n * @csspart drag-handle - The drag handle icon.\n * @csspart priority - The priority number badge.\n * @csspart content - The content area of an item.\n *\n * @cssproperty --zn-priority-list-item-gap - The gap between list items. Defaults to `var(--zn-spacing-2x-small)`.\n * @cssproperty --zn-priority-list-item-padding - The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`.\n * @cssproperty --zn-priority-list-handle-color - The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`.\n * @cssproperty --zn-priority-list-priority-color - The color of the priority number. Defaults to `var(--zn-color-neutral-600)`.\n */",
23988
+ "documentation": "https://zinc.style/components/priority-list",
23884
23989
  "status": "experimental",
23885
23990
  "since": "1.0",
23886
23991
  "dependencies": [
23887
- "zn-example"
23992
+ "zn-icon"
23888
23993
  ]
23889
23994
  }
23890
23995
  ],
@@ -23893,647 +23998,542 @@
23893
23998
  "kind": "js",
23894
23999
  "name": "default",
23895
24000
  "declaration": {
23896
- "name": "ZnPopup",
23897
- "module": "components/popup/popup.js"
24001
+ "name": "ZnPriorityList",
24002
+ "module": "components/priority-list/priority-list.js"
23898
24003
  }
23899
24004
  }
23900
24005
  ]
23901
24006
  },
23902
24007
  {
23903
24008
  "kind": "javascript-module",
23904
- "path": "components/priority-list/priority-list.js",
24009
+ "path": "components/popup/popup.js",
23905
24010
  "declarations": [
23906
24011
  {
23907
24012
  "kind": "class",
23908
24013
  "description": "",
23909
- "name": "ZnPriorityList",
24014
+ "name": "ZnPopup",
23910
24015
  "cssProperties": [
23911
24016
  {
23912
- "description": "The gap between list items. Defaults to `var(--zn-spacing-2x-small)`.",
23913
- "name": "--zn-priority-list-item-gap"
23914
- },
23915
- {
23916
- "description": "The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`.",
23917
- "name": "--zn-priority-list-item-padding"
23918
- },
23919
- {
23920
- "description": "The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`.",
23921
- "name": "--zn-priority-list-handle-color"
23922
- },
23923
- {
23924
- "description": "The color of the priority number. Defaults to `var(--zn-color-neutral-600)`.",
23925
- "name": "--zn-priority-list-priority-color"
24017
+ "description": "An example CSS custom property.",
24018
+ "name": "--example"
23926
24019
  }
23927
24020
  ],
23928
24021
  "cssParts": [
23929
24022
  {
23930
- "description": "The form control wrapper.",
23931
- "name": "form-control"
23932
- },
23933
- {
23934
- "description": "The label wrapper.",
23935
- "name": "form-control-label"
23936
- },
23937
- {
23938
- "description": "The input area wrapper.",
23939
- "name": "form-control-input"
23940
- },
23941
- {
23942
- "description": "The help text wrapper.",
23943
- "name": "form-control-help-text"
23944
- },
23945
- {
23946
- "description": "The list container.",
23947
- "name": "list"
23948
- },
23949
- {
23950
- "description": "An individual list item row.",
23951
- "name": "item"
23952
- },
23953
- {
23954
- "description": "The drag handle icon.",
23955
- "name": "drag-handle"
23956
- },
23957
- {
23958
- "description": "The priority number badge.",
23959
- "name": "priority"
23960
- },
23961
- {
23962
- "description": "The content area of an item.",
23963
- "name": "content"
24023
+ "description": "The component's base wrapper.",
24024
+ "name": "base"
23964
24025
  }
23965
24026
  ],
23966
24027
  "slots": [
23967
24028
  {
23968
- "description": "The default slot where list items are placed. Each slotted element must have a `value` attribute that uniquely identifies the item. The component automatically assigns slot names to project each item into the correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing).",
24029
+ "description": "The default slot.",
23969
24030
  "name": ""
23970
24031
  },
23971
24032
  {
23972
- "description": "The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.",
23973
- "name": "label"
23974
- },
23975
- {
23976
- "description": "Used to add text displayed in a tooltip next to the label.",
23977
- "name": "label-tooltip"
23978
- },
23979
- {
23980
- "description": "Text that describes how to use the component. Alternatively, use the `help-text` attribute.",
23981
- "name": "help-text"
24033
+ "description": "An example slot.",
24034
+ "name": "example"
23982
24035
  }
23983
24036
  ],
23984
24037
  "members": [
23985
24038
  {
23986
24039
  "kind": "field",
23987
- "name": "dependencies",
24040
+ "name": "anchorEl",
23988
24041
  "type": {
23989
- "text": "object"
24042
+ "text": "Element | VirtualElement | null"
23990
24043
  },
23991
- "static": true,
23992
- "default": "{ 'zn-icon': ZnIcon, }"
23993
- },
23994
- {
23995
- "kind": "field",
23996
- "name": "formControlController",
23997
- "privacy": "protected",
23998
- "readonly": true,
23999
- "default": "new FormControlController(this, { value: (control: ZnPriorityList) => { return JSON.stringify(control.getPriorityMap()); }, defaultValue: (control: ZnPriorityList) => control.defaultValue, setValue: (control: ZnPriorityList, value: string) => { if (value) { try { const parsed: unknown = JSON.parse(value); if (Array.isArray(parsed) && parsed.every((item: unknown): item is string => typeof item === 'string')) { control.value = parsed as string[]; } } catch { // ignore parse errors } } }, })"
24044
+ "privacy": "private"
24000
24045
  },
24001
24046
  {
24002
24047
  "kind": "field",
24003
- "name": "hasSlotController",
24004
- "privacy": "private",
24005
- "readonly": true,
24006
- "default": "new HasSlotController(this, 'help-text', 'label')"
24048
+ "name": "cleanup",
24049
+ "type": {
24050
+ "text": "ReturnType<typeof autoUpdate> | undefined"
24051
+ },
24052
+ "privacy": "private"
24007
24053
  },
24008
24054
  {
24009
24055
  "kind": "field",
24010
- "name": "hiddenInputsContainer",
24056
+ "name": "popup",
24011
24057
  "type": {
24012
- "text": "HTMLDivElement"
24013
- }
24058
+ "text": "HTMLElement"
24059
+ },
24060
+ "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript."
24014
24061
  },
24015
24062
  {
24016
24063
  "kind": "field",
24017
- "name": "name",
24064
+ "name": "arrowEl",
24018
24065
  "type": {
24019
- "text": "string"
24066
+ "text": "HTMLElement"
24020
24067
  },
24021
- "default": "''",
24022
- "description": "The name prefix for form submission. Each item generates a hidden input named `{name}[{itemValue}]`\nwith the priority number as its value.",
24023
- "attribute": "name"
24068
+ "privacy": "private"
24024
24069
  },
24025
24070
  {
24026
24071
  "kind": "field",
24027
- "name": "value",
24072
+ "name": "anchor",
24028
24073
  "type": {
24029
- "text": "string[]"
24074
+ "text": "Element | string | VirtualElement"
24030
24075
  },
24031
- "description": "The current ordered list of item keys, reflecting the visual order. This is the source of truth for ordering.\nEach entry should match a `value` attribute on a slotted child element.",
24032
- "attribute": "value"
24076
+ "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.",
24077
+ "attribute": "anchor"
24033
24078
  },
24034
24079
  {
24035
24080
  "kind": "field",
24036
- "name": "_value",
24081
+ "name": "active",
24037
24082
  "type": {
24038
- "text": "string[]"
24083
+ "text": "boolean"
24039
24084
  },
24040
- "privacy": "private",
24041
- "default": "[]"
24085
+ "default": "false",
24086
+ "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.",
24087
+ "attribute": "active",
24088
+ "reflects": true
24042
24089
  },
24043
24090
  {
24044
24091
  "kind": "field",
24045
- "name": "defaultValue",
24092
+ "name": "placement",
24046
24093
  "type": {
24047
- "text": "string[]"
24094
+ "text": "| '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'"
24048
24095
  },
24049
- "default": "[]"
24096
+ "default": "'top'",
24097
+ "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
24098
+ "attribute": "placement",
24099
+ "reflects": true
24050
24100
  },
24051
24101
  {
24052
24102
  "kind": "field",
24053
- "name": "label",
24103
+ "name": "strategy",
24054
24104
  "type": {
24055
- "text": "string"
24105
+ "text": "'absolute' | 'fixed'"
24056
24106
  },
24057
- "default": "''",
24058
- "description": "The component's label. Required for proper accessibility.",
24059
- "attribute": "label"
24107
+ "default": "'fixed'",
24108
+ "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.",
24109
+ "attribute": "strategy",
24110
+ "reflects": true
24060
24111
  },
24061
24112
  {
24062
24113
  "kind": "field",
24063
- "name": "labelTooltip",
24114
+ "name": "distance",
24064
24115
  "type": {
24065
- "text": "string"
24116
+ "text": "number"
24066
24117
  },
24067
- "default": "''",
24068
- "description": "Text that appears in a tooltip next to the label.",
24069
- "attribute": "label-tooltip"
24118
+ "default": "0",
24119
+ "description": "The distance in pixels from which to offset the panel away from its anchor.",
24120
+ "attribute": "distance"
24070
24121
  },
24071
24122
  {
24072
24123
  "kind": "field",
24073
- "name": "helpText",
24124
+ "name": "skidding",
24074
24125
  "type": {
24075
- "text": "string"
24126
+ "text": "number"
24076
24127
  },
24077
- "default": "''",
24078
- "description": "Help text that describes how to use the component.",
24079
- "attribute": "help-text"
24128
+ "default": "0",
24129
+ "description": "The distance in pixels from which to offset the panel along its anchor.",
24130
+ "attribute": "skidding"
24080
24131
  },
24081
24132
  {
24082
24133
  "kind": "field",
24083
- "name": "form",
24134
+ "name": "arrow",
24084
24135
  "type": {
24085
- "text": "string"
24136
+ "text": "boolean"
24086
24137
  },
24087
- "default": "''",
24088
- "description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
24089
- "attribute": "form",
24090
- "reflects": true
24138
+ "default": "false",
24139
+ "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.",
24140
+ "attribute": "arrow"
24091
24141
  },
24092
24142
  {
24093
24143
  "kind": "field",
24094
- "name": "size",
24144
+ "name": "arrowPlacement",
24095
24145
  "type": {
24096
- "text": "'small' | 'medium' | 'large'"
24146
+ "text": "'start' | 'end' | 'center' | 'anchor'"
24097
24147
  },
24098
- "default": "'medium'",
24099
- "description": "The size of the list items.",
24100
- "attribute": "size",
24101
- "reflects": true
24148
+ "default": "'anchor'",
24149
+ "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.",
24150
+ "attribute": "arrow-placement"
24102
24151
  },
24103
24152
  {
24104
24153
  "kind": "field",
24105
- "name": "disabled",
24154
+ "name": "arrowPadding",
24106
24155
  "type": {
24107
- "text": "boolean"
24156
+ "text": "number"
24108
24157
  },
24109
- "default": "false",
24110
- "description": "Whether the priority list is disabled.",
24111
- "attribute": "disabled",
24112
- "reflects": true
24158
+ "default": "10",
24159
+ "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.",
24160
+ "attribute": "arrow-padding"
24113
24161
  },
24114
24162
  {
24115
24163
  "kind": "field",
24116
- "name": "required",
24164
+ "name": "flip",
24117
24165
  "type": {
24118
24166
  "text": "boolean"
24119
24167
  },
24120
24168
  "default": "false",
24121
- "description": "Ensures the form control has a value before allowing submission.",
24122
- "attribute": "required",
24123
- "reflects": true
24169
+ "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.",
24170
+ "attribute": "flip"
24124
24171
  },
24125
24172
  {
24126
24173
  "kind": "field",
24127
- "name": "priorityStart",
24174
+ "name": "flipFallbackPlacements",
24128
24175
  "type": {
24129
- "text": "number"
24176
+ "text": "string"
24130
24177
  },
24131
- "default": "1",
24132
- "description": "The starting priority number. Defaults to 1.",
24133
- "attribute": "priority-start"
24178
+ "default": "''",
24179
+ "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.",
24180
+ "attribute": "flip-fallback-placements"
24134
24181
  },
24135
24182
  {
24136
24183
  "kind": "field",
24137
- "name": "formAction",
24184
+ "name": "flipFallbackStrategy",
24138
24185
  "type": {
24139
- "text": "string"
24186
+ "text": "'best-fit' | 'initial'"
24140
24187
  },
24141
- "description": "When set, the associated form will be submitted with the given action URL whenever items are reordered.\nIf set to an empty string, the form will be submitted using its existing action.",
24142
- "attribute": "formaction"
24188
+ "default": "'best-fit'",
24189
+ "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.",
24190
+ "attribute": "flip-fallback-strategy"
24143
24191
  },
24144
24192
  {
24145
24193
  "kind": "field",
24146
- "name": "order",
24194
+ "name": "flipBoundary",
24147
24195
  "type": {
24148
- "text": "string"
24196
+ "text": "Element | Element[]"
24149
24197
  },
24150
- "default": "''",
24151
- "description": "A comma-separated list of item keys defining the initial display order.\nKeys must match the `value` attributes on slotted children.\nAny slotted items not listed are appended at the end in DOM order.",
24152
- "attribute": "order"
24198
+ "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.",
24199
+ "attribute": "flipBoundary"
24153
24200
  },
24154
24201
  {
24155
24202
  "kind": "field",
24156
- "name": "draggedKey",
24203
+ "name": "flipPadding",
24157
24204
  "type": {
24158
- "text": "string | null"
24205
+ "text": "number"
24159
24206
  },
24160
- "privacy": "private",
24161
- "default": "null"
24207
+ "default": "0",
24208
+ "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
24209
+ "attribute": "flip-padding"
24162
24210
  },
24163
24211
  {
24164
24212
  "kind": "field",
24165
- "name": "isDragging",
24213
+ "name": "shift",
24166
24214
  "type": {
24167
24215
  "text": "boolean"
24168
24216
  },
24169
- "privacy": "private",
24170
- "default": "false"
24217
+ "default": "false",
24218
+ "description": "Moves the popup along the axis to keep it in view when clipped.",
24219
+ "attribute": "shift"
24171
24220
  },
24172
24221
  {
24173
24222
  "kind": "field",
24174
- "name": "dragOverKey",
24223
+ "name": "shiftBoundary",
24175
24224
  "type": {
24176
- "text": "string | null"
24225
+ "text": "Element | Element[]"
24177
24226
  },
24178
- "privacy": "private",
24179
- "default": "null"
24227
+ "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.",
24228
+ "attribute": "shiftBoundary"
24180
24229
  },
24181
24230
  {
24182
24231
  "kind": "field",
24183
- "name": "validity",
24232
+ "name": "shiftPadding",
24184
24233
  "type": {
24185
- "text": "ValidityState"
24234
+ "text": "number"
24186
24235
  },
24187
- "description": "Gets the validity state object.",
24188
- "readonly": true
24236
+ "default": "0",
24237
+ "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
24238
+ "attribute": "shift-padding"
24189
24239
  },
24190
24240
  {
24191
24241
  "kind": "field",
24192
- "name": "validationMessage",
24242
+ "name": "autoSize",
24193
24243
  "type": {
24194
- "text": "string"
24244
+ "text": "'horizontal' | 'vertical' | 'both'"
24195
24245
  },
24196
- "description": "Gets the validation message.",
24197
- "readonly": true
24246
+ "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
24247
+ "attribute": "auto-size"
24198
24248
  },
24199
24249
  {
24200
- "kind": "method",
24201
- "name": "_initializeOrderFromSlot",
24202
- "privacy": "private",
24203
- "description": "Initialize item order from slotted children if no explicit value was provided.\nIf an `order` attribute is set, use it to define the initial order,\nappending any slotted items not listed in the order at the end."
24250
+ "kind": "field",
24251
+ "name": "sync",
24252
+ "type": {
24253
+ "text": "'width' | 'height' | 'both'"
24254
+ },
24255
+ "description": "Syncs the popup's width or height to that of the anchor element.",
24256
+ "attribute": "sync"
24204
24257
  },
24205
24258
  {
24206
- "kind": "method",
24207
- "name": "_getSlottedItems",
24208
- "privacy": "private",
24209
- "return": {
24210
- "type": {
24211
- "text": "HTMLElement[]"
24212
- }
24259
+ "kind": "field",
24260
+ "name": "autoSizeBoundary",
24261
+ "type": {
24262
+ "text": "Element | Element[]"
24213
24263
  },
24214
- "description": "Gets all direct children with a `value` attribute (excluding those in reserved slots)."
24264
+ "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.",
24265
+ "attribute": "autoSizeBoundary"
24215
24266
  },
24216
24267
  {
24217
- "kind": "method",
24218
- "name": "_assignSlotNames",
24219
- "privacy": "private",
24220
- "description": "Assigns `slot` attributes to light DOM children based on their `value` attribute,\nso they project into the correct named slot in the shadow DOM."
24268
+ "kind": "field",
24269
+ "name": "autoSizePadding",
24270
+ "type": {
24271
+ "text": "number"
24272
+ },
24273
+ "default": "0",
24274
+ "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
24275
+ "attribute": "auto-size-padding"
24221
24276
  },
24222
24277
  {
24223
- "kind": "method",
24224
- "name": "getPriorityMap",
24225
- "return": {
24226
- "type": {
24227
- "text": "PriorityItem[]"
24228
- }
24278
+ "kind": "field",
24279
+ "name": "hoverBridge",
24280
+ "type": {
24281
+ "text": "boolean"
24229
24282
  },
24230
- "description": "Returns the priority map: an array of { key, priority } objects."
24283
+ "default": "false",
24284
+ "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.",
24285
+ "attribute": "hover-bridge"
24231
24286
  },
24232
24287
  {
24233
24288
  "kind": "method",
24234
- "name": "_syncHiddenInputs",
24235
- "privacy": "private",
24236
- "description": "Syncs hidden inputs so form data includes priority values."
24289
+ "name": "handleAnchorChange",
24290
+ "privacy": "private"
24237
24291
  },
24238
24292
  {
24239
- "kind": "method",
24240
- "name": "_moveItem",
24241
- "privacy": "private",
24242
- "parameters": [
24243
- {
24244
- "name": "fromIndex",
24245
- "type": {
24246
- "text": "number"
24247
- }
24248
- },
24249
- {
24250
- "name": "toIndex",
24251
- "type": {
24252
- "text": "number"
24253
- }
24254
- }
24255
- ],
24256
- "description": "Moves an item from one index to another."
24293
+ "kind": "field",
24294
+ "name": "handleAnchorHover",
24295
+ "privacy": "public"
24257
24296
  },
24258
24297
  {
24259
24298
  "kind": "method",
24260
- "name": "_submitForm",
24261
- "privacy": "private",
24262
- "description": "Submits the associated form if a `formaction` attribute is set."
24299
+ "name": "start",
24300
+ "privacy": "private"
24263
24301
  },
24264
24302
  {
24265
24303
  "kind": "method",
24266
- "name": "_handleDragStart",
24304
+ "name": "stop",
24267
24305
  "privacy": "private",
24268
- "parameters": [
24269
- {
24270
- "name": "event",
24271
- "type": {
24272
- "text": "DragEvent"
24273
- }
24274
- },
24275
- {
24276
- "name": "key",
24277
- "type": {
24278
- "text": "string"
24279
- }
24306
+ "return": {
24307
+ "type": {
24308
+ "text": "Promise<void>"
24280
24309
  }
24281
- ]
24310
+ }
24282
24311
  },
24283
24312
  {
24284
24313
  "kind": "method",
24285
- "name": "_handleDragEnd",
24286
- "privacy": "private"
24314
+ "name": "reposition",
24315
+ "description": "Forces the popup to recalculate and reposition itself."
24287
24316
  },
24288
24317
  {
24289
- "kind": "method",
24290
- "name": "_handleDragOver",
24291
- "privacy": "private",
24292
- "parameters": [
24293
- {
24294
- "name": "event",
24295
- "type": {
24296
- "text": "DragEvent"
24297
- }
24298
- },
24299
- {
24300
- "name": "key",
24301
- "type": {
24302
- "text": "string"
24303
- }
24304
- }
24305
- ]
24306
- },
24318
+ "kind": "field",
24319
+ "name": "updateHoverBridge",
24320
+ "privacy": "private"
24321
+ }
24322
+ ],
24323
+ "events": [
24307
24324
  {
24308
- "kind": "method",
24309
- "name": "_handleDragLeave",
24310
- "privacy": "private",
24311
- "parameters": [
24312
- {
24313
- "name": "event",
24314
- "type": {
24315
- "text": "DragEvent"
24316
- }
24317
- },
24318
- {
24319
- "name": "key",
24320
- "type": {
24321
- "text": "string"
24322
- }
24323
- }
24324
- ]
24325
- },
24325
+ "description": "Emitted as an example.",
24326
+ "name": "zn-event-name"
24327
+ }
24328
+ ],
24329
+ "attributes": [
24326
24330
  {
24327
- "kind": "method",
24328
- "name": "_handleDrop",
24329
- "privacy": "private",
24330
- "parameters": [
24331
- {
24332
- "name": "event",
24333
- "type": {
24334
- "text": "DragEvent"
24335
- }
24336
- }
24337
- ]
24331
+ "name": "anchor",
24332
+ "type": {
24333
+ "text": "Element | string | VirtualElement"
24334
+ },
24335
+ "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.",
24336
+ "fieldName": "anchor"
24338
24337
  },
24339
24338
  {
24340
- "kind": "method",
24341
- "name": "_handleKeyDown",
24342
- "privacy": "private",
24343
- "parameters": [
24344
- {
24345
- "name": "event",
24346
- "type": {
24347
- "text": "KeyboardEvent"
24348
- }
24349
- },
24350
- {
24351
- "name": "key",
24352
- "type": {
24353
- "text": "string"
24354
- }
24355
- }
24356
- ]
24339
+ "name": "active",
24340
+ "type": {
24341
+ "text": "boolean"
24342
+ },
24343
+ "default": "false",
24344
+ "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.",
24345
+ "fieldName": "active"
24357
24346
  },
24358
24347
  {
24359
- "kind": "method",
24360
- "name": "_handleSlotChange",
24361
- "privacy": "private"
24348
+ "name": "placement",
24349
+ "type": {
24350
+ "text": "| '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'"
24351
+ },
24352
+ "default": "'top'",
24353
+ "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
24354
+ "fieldName": "placement"
24362
24355
  },
24363
24356
  {
24364
- "kind": "method",
24365
- "name": "checkValidity",
24366
- "return": {
24367
- "type": {
24368
- "text": "boolean"
24369
- }
24357
+ "name": "strategy",
24358
+ "type": {
24359
+ "text": "'absolute' | 'fixed'"
24370
24360
  },
24371
- "description": "Checks for validity but does not show a validation message."
24361
+ "default": "'fixed'",
24362
+ "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.",
24363
+ "fieldName": "strategy"
24372
24364
  },
24373
24365
  {
24374
- "kind": "method",
24375
- "name": "getForm",
24376
- "return": {
24377
- "type": {
24378
- "text": "HTMLFormElement | null"
24379
- }
24366
+ "name": "distance",
24367
+ "type": {
24368
+ "text": "number"
24380
24369
  },
24381
- "description": "Gets the associated form, if one exists."
24370
+ "default": "0",
24371
+ "description": "The distance in pixels from which to offset the panel away from its anchor.",
24372
+ "fieldName": "distance"
24382
24373
  },
24383
24374
  {
24384
- "kind": "method",
24385
- "name": "reportValidity",
24386
- "return": {
24387
- "type": {
24388
- "text": "boolean"
24389
- }
24375
+ "name": "skidding",
24376
+ "type": {
24377
+ "text": "number"
24390
24378
  },
24391
- "description": "Checks for validity and shows the browser's validation message if the control is invalid."
24379
+ "default": "0",
24380
+ "description": "The distance in pixels from which to offset the panel along its anchor.",
24381
+ "fieldName": "skidding"
24392
24382
  },
24393
24383
  {
24394
- "kind": "method",
24395
- "name": "setCustomValidity",
24396
- "parameters": [
24397
- {
24398
- "name": "_message",
24399
- "default": "''"
24400
- }
24401
- ],
24402
- "description": "Sets a custom validation message. Pass an empty string to restore validity."
24403
- }
24404
- ],
24405
- "events": [
24406
- {
24407
- "description": "Emitted when the order of items changes.",
24408
- "name": "zn-change"
24384
+ "name": "arrow",
24385
+ "type": {
24386
+ "text": "boolean"
24387
+ },
24388
+ "default": "false",
24389
+ "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.",
24390
+ "fieldName": "arrow"
24409
24391
  },
24410
24392
  {
24411
- "description": "Emitted when items are reordered. Call `getPriorityMap()` on the component to get the updated `{ key: string, priority: number }[]` array.",
24412
- "name": "zn-reorder"
24413
- }
24414
- ],
24415
- "attributes": [
24416
- {
24417
- "name": "name",
24393
+ "name": "arrow-placement",
24418
24394
  "type": {
24419
- "text": "string"
24395
+ "text": "'start' | 'end' | 'center' | 'anchor'"
24420
24396
  },
24421
- "default": "''",
24422
- "description": "The name prefix for form submission. Each item generates a hidden input named `{name}[{itemValue}]`\nwith the priority number as its value.",
24423
- "fieldName": "name"
24397
+ "default": "'anchor'",
24398
+ "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.",
24399
+ "fieldName": "arrowPlacement"
24424
24400
  },
24425
24401
  {
24426
- "name": "value",
24402
+ "name": "arrow-padding",
24427
24403
  "type": {
24428
- "text": "string[]"
24404
+ "text": "number"
24429
24405
  },
24430
- "description": "The current ordered list of item keys, reflecting the visual order. This is the source of truth for ordering.\nEach entry should match a `value` attribute on a slotted child element.",
24431
- "fieldName": "value"
24406
+ "default": "10",
24407
+ "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.",
24408
+ "fieldName": "arrowPadding"
24432
24409
  },
24433
24410
  {
24434
- "name": "label",
24411
+ "name": "flip",
24435
24412
  "type": {
24436
- "text": "string"
24413
+ "text": "boolean"
24437
24414
  },
24438
- "default": "''",
24439
- "description": "The component's label. Required for proper accessibility.",
24440
- "fieldName": "label"
24415
+ "default": "false",
24416
+ "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.",
24417
+ "fieldName": "flip"
24441
24418
  },
24442
24419
  {
24443
- "name": "label-tooltip",
24420
+ "name": "flip-fallback-placements",
24444
24421
  "type": {
24445
24422
  "text": "string"
24446
24423
  },
24447
24424
  "default": "''",
24448
- "description": "Text that appears in a tooltip next to the label.",
24449
- "fieldName": "labelTooltip"
24425
+ "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.",
24426
+ "fieldName": "flipFallbackPlacements"
24450
24427
  },
24451
24428
  {
24452
- "name": "help-text",
24429
+ "name": "flip-fallback-strategy",
24453
24430
  "type": {
24454
- "text": "string"
24431
+ "text": "'best-fit' | 'initial'"
24455
24432
  },
24456
- "default": "''",
24457
- "description": "Help text that describes how to use the component.",
24458
- "fieldName": "helpText"
24433
+ "default": "'best-fit'",
24434
+ "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.",
24435
+ "fieldName": "flipFallbackStrategy"
24459
24436
  },
24460
24437
  {
24461
- "name": "form",
24438
+ "name": "flipBoundary",
24462
24439
  "type": {
24463
- "text": "string"
24440
+ "text": "Element | Element[]"
24464
24441
  },
24465
- "default": "''",
24466
- "description": "Associates the control with a form by id. The form must be in the same document or shadow root.",
24467
- "fieldName": "form"
24442
+ "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.",
24443
+ "fieldName": "flipBoundary"
24468
24444
  },
24469
24445
  {
24470
- "name": "size",
24446
+ "name": "flip-padding",
24471
24447
  "type": {
24472
- "text": "'small' | 'medium' | 'large'"
24448
+ "text": "number"
24473
24449
  },
24474
- "default": "'medium'",
24475
- "description": "The size of the list items.",
24476
- "fieldName": "size"
24450
+ "default": "0",
24451
+ "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
24452
+ "fieldName": "flipPadding"
24477
24453
  },
24478
24454
  {
24479
- "name": "disabled",
24455
+ "name": "shift",
24480
24456
  "type": {
24481
24457
  "text": "boolean"
24482
24458
  },
24483
24459
  "default": "false",
24484
- "description": "Whether the priority list is disabled.",
24485
- "fieldName": "disabled"
24460
+ "description": "Moves the popup along the axis to keep it in view when clipped.",
24461
+ "fieldName": "shift"
24486
24462
  },
24487
24463
  {
24488
- "name": "required",
24464
+ "name": "shiftBoundary",
24489
24465
  "type": {
24490
- "text": "boolean"
24466
+ "text": "Element | Element[]"
24491
24467
  },
24492
- "default": "false",
24493
- "description": "Ensures the form control has a value before allowing submission.",
24494
- "fieldName": "required"
24468
+ "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.",
24469
+ "fieldName": "shiftBoundary"
24495
24470
  },
24496
24471
  {
24497
- "name": "priority-start",
24472
+ "name": "shift-padding",
24498
24473
  "type": {
24499
24474
  "text": "number"
24500
24475
  },
24501
- "default": "1",
24502
- "description": "The starting priority number. Defaults to 1.",
24503
- "fieldName": "priorityStart"
24476
+ "default": "0",
24477
+ "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
24478
+ "fieldName": "shiftPadding"
24504
24479
  },
24505
24480
  {
24506
- "name": "formaction",
24481
+ "name": "auto-size",
24507
24482
  "type": {
24508
- "text": "string"
24483
+ "text": "'horizontal' | 'vertical' | 'both'"
24509
24484
  },
24510
- "description": "When set, the associated form will be submitted with the given action URL whenever items are reordered.\nIf set to an empty string, the form will be submitted using its existing action.",
24511
- "fieldName": "formAction"
24485
+ "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
24486
+ "fieldName": "autoSize"
24512
24487
  },
24513
24488
  {
24514
- "name": "order",
24489
+ "name": "sync",
24515
24490
  "type": {
24516
- "text": "string"
24491
+ "text": "'width' | 'height' | 'both'"
24517
24492
  },
24518
- "default": "''",
24519
- "description": "A comma-separated list of item keys defining the initial display order.\nKeys must match the `value` attributes on slotted children.\nAny slotted items not listed are appended at the end in DOM order.",
24520
- "fieldName": "order"
24493
+ "description": "Syncs the popup's width or height to that of the anchor element.",
24494
+ "fieldName": "sync"
24495
+ },
24496
+ {
24497
+ "name": "autoSizeBoundary",
24498
+ "type": {
24499
+ "text": "Element | Element[]"
24500
+ },
24501
+ "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.",
24502
+ "fieldName": "autoSizeBoundary"
24503
+ },
24504
+ {
24505
+ "name": "auto-size-padding",
24506
+ "type": {
24507
+ "text": "number"
24508
+ },
24509
+ "default": "0",
24510
+ "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
24511
+ "fieldName": "autoSizePadding"
24512
+ },
24513
+ {
24514
+ "name": "hover-bridge",
24515
+ "type": {
24516
+ "text": "boolean"
24517
+ },
24518
+ "default": "false",
24519
+ "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.",
24520
+ "fieldName": "hoverBridge"
24521
24521
  }
24522
24522
  ],
24523
24523
  "superclass": {
24524
24524
  "name": "ZincElement",
24525
24525
  "module": "/src/internal/zinc-element"
24526
24526
  },
24527
- "summary": "A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\nand keyboard reordering. Priority values are submitted as form data via hidden inputs.",
24528
- "tagNameWithoutPrefix": "priority-list",
24529
- "tagName": "zn-priority-list",
24527
+ "summary": "Short summary of the component's intended use.",
24528
+ "tagNameWithoutPrefix": "popup",
24529
+ "tagName": "zn-popup",
24530
24530
  "customElement": true,
24531
- "jsDoc": "/**\n * @summary A reorderable list where each item receives a numerical priority based on its position. Supports drag-and-drop\n * and keyboard reordering. Priority values are submitted as form data via hidden inputs.\n *\n * @documentation https://zinc.style/components/priority-list\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-icon\n *\n * @slot - The default slot where list items are placed. Each slotted element must have a `value` attribute that\n * uniquely identifies the item. The component automatically assigns slot names to project each item into the\n * correct position. The item's position in the list determines its priority (top = `priority-start`, incrementing).\n * @slot label - The component's label. Required for proper accessibility. Alternatively, use the `label` attribute.\n * @slot label-tooltip - Used to add text displayed in a tooltip next to the label.\n * @slot help-text - Text that describes how to use the component. Alternatively, use the `help-text` attribute.\n *\n * @event zn-change - Emitted when the order of items changes.\n * @event zn-reorder - Emitted when items are reordered. Call `getPriorityMap()` on the component to get\n * the updated `{ key: string, priority: number }[]` array.\n *\n * @csspart form-control - The form control wrapper.\n * @csspart form-control-label - The label wrapper.\n * @csspart form-control-input - The input area wrapper.\n * @csspart form-control-help-text - The help text wrapper.\n * @csspart list - The list container.\n * @csspart item - An individual list item row.\n * @csspart drag-handle - The drag handle icon.\n * @csspart priority - The priority number badge.\n * @csspart content - The content area of an item.\n *\n * @cssproperty --zn-priority-list-item-gap - The gap between list items. Defaults to `var(--zn-spacing-2x-small)`.\n * @cssproperty --zn-priority-list-item-padding - The padding inside each item. Defaults to `var(--zn-spacing-small) var(--zn-spacing-medium)`.\n * @cssproperty --zn-priority-list-handle-color - The color of the drag handle. Defaults to `var(--zn-color-neutral-500)`.\n * @cssproperty --zn-priority-list-priority-color - The color of the priority number. Defaults to `var(--zn-color-neutral-600)`.\n */",
24532
- "documentation": "https://zinc.style/components/priority-list",
24531
+ "jsDoc": "/**\n * @summary Short summary of the component's intended use.\n * @documentation https://zinc.style/components/popup\n * @status experimental\n * @since 1.0\n *\n * @dependency zn-example\n *\n * @event zn-event-name - Emitted as an example.\n *\n * @slot - The default slot.\n * @slot example - An example slot.\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --example - An example CSS custom property.\n */",
24532
+ "documentation": "https://zinc.style/components/popup",
24533
24533
  "status": "experimental",
24534
24534
  "since": "1.0",
24535
24535
  "dependencies": [
24536
- "zn-icon"
24536
+ "zn-example"
24537
24537
  ]
24538
24538
  }
24539
24539
  ],
@@ -24542,8 +24542,8 @@
24542
24542
  "kind": "js",
24543
24543
  "name": "default",
24544
24544
  "declaration": {
24545
- "name": "ZnPriorityList",
24546
- "module": "components/priority-list/priority-list.js"
24545
+ "name": "ZnPopup",
24546
+ "module": "components/popup/popup.js"
24547
24547
  }
24548
24548
  }
24549
24549
  ]
@@ -36368,7 +36368,7 @@
36368
36368
  "package": {
36369
36369
  "name": "@kubex/zinc",
36370
36370
  "description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
36371
- "version": "1.1.11",
36371
+ "version": "1.1.12",
36372
36372
  "author": "",
36373
36373
  "license": "MIT"
36374
36374
  }