@kubex/zinc 1.1.10 → 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.
@@ -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"
23566
+ "description": "Whether the priority list is disabled.",
23567
+ "attribute": "disabled",
23568
+ "reflects": true
23522
23569
  },
23523
23570
  {
23524
23571
  "kind": "field",
23525
- "name": "flipFallbackPlacements",
23572
+ "name": "required",
23526
23573
  "type": {
23527
- "text": "string"
23574
+ "text": "boolean"
23528
23575
  },
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"
23576
+ "default": "false",
23577
+ "description": "Ensures the form control has a value before allowing submission.",
23578
+ "attribute": "required",
23579
+ "reflects": true
23532
23580
  },
23533
23581
  {
23534
23582
  "kind": "field",
23535
- "name": "flipFallbackStrategy",
23583
+ "name": "priorityStart",
23536
23584
  "type": {
23537
- "text": "'best-fit' | 'initial'"
23585
+ "text": "number"
23538
23586
  },
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"
23587
+ "default": "1",
23588
+ "description": "The starting priority number. Defaults to 1.",
23589
+ "attribute": "priority-start"
23542
23590
  },
23543
23591
  {
23544
23592
  "kind": "field",
23545
- "name": "flipBoundary",
23593
+ "name": "formAction",
23546
23594
  "type": {
23547
- "text": "Element | Element[]"
23595
+ "text": "string"
23548
23596
  },
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"
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"
23551
23599
  },
23552
23600
  {
23553
23601
  "kind": "field",
23554
- "name": "flipPadding",
23602
+ "name": "order",
23555
23603
  "type": {
23556
- "text": "number"
23604
+ "text": "string"
23557
23605
  },
23558
- "default": "0",
23559
- "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
23560
- "attribute": "flip-padding"
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"
23561
23609
  },
23562
23610
  {
23563
23611
  "kind": "field",
23564
- "name": "shift",
23612
+ "name": "draggedKey",
23565
23613
  "type": {
23566
- "text": "boolean"
23614
+ "text": "string | null"
23567
23615
  },
23568
- "default": "false",
23569
- "description": "Moves the popup along the axis to keep it in view when clipped.",
23570
- "attribute": "shift"
23616
+ "privacy": "private",
23617
+ "default": "null"
23571
23618
  },
23572
23619
  {
23573
23620
  "kind": "field",
23574
- "name": "shiftBoundary",
23621
+ "name": "isDragging",
23575
23622
  "type": {
23576
- "text": "Element | Element[]"
23623
+ "text": "boolean"
23577
23624
  },
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"
23625
+ "privacy": "private",
23626
+ "default": "false"
23580
23627
  },
23581
23628
  {
23582
23629
  "kind": "field",
23583
- "name": "shiftPadding",
23630
+ "name": "dragOverKey",
23584
23631
  "type": {
23585
- "text": "number"
23632
+ "text": "string | null"
23586
23633
  },
23587
- "default": "0",
23588
- "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
23589
- "attribute": "shift-padding"
23634
+ "privacy": "private",
23635
+ "default": "null"
23590
23636
  },
23591
23637
  {
23592
23638
  "kind": "field",
23593
- "name": "autoSize",
23639
+ "name": "validity",
23594
23640
  "type": {
23595
- "text": "'horizontal' | 'vertical' | 'both'"
23641
+ "text": "ValidityState"
23596
23642
  },
23597
- "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
23598
- "attribute": "auto-size"
23643
+ "description": "Gets the validity state object.",
23644
+ "readonly": true
23599
23645
  },
23600
23646
  {
23601
23647
  "kind": "field",
23602
- "name": "sync",
23648
+ "name": "validationMessage",
23603
23649
  "type": {
23604
- "text": "'width' | 'height' | 'both'"
23650
+ "text": "string"
23605
23651
  },
23606
- "description": "Syncs the popup's width or height to that of the anchor element.",
23607
- "attribute": "sync"
23652
+ "description": "Gets the validation message.",
23653
+ "readonly": true
23608
23654
  },
23609
23655
  {
23610
- "kind": "field",
23611
- "name": "autoSizeBoundary",
23612
- "type": {
23613
- "text": "Element | Element[]"
23614
- },
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"
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."
23617
23660
  },
23618
23661
  {
23619
- "kind": "field",
23620
- "name": "autoSizePadding",
23621
- "type": {
23622
- "text": "number"
23662
+ "kind": "method",
23663
+ "name": "_getSlottedItems",
23664
+ "privacy": "private",
23665
+ "return": {
23666
+ "type": {
23667
+ "text": "HTMLElement[]"
23668
+ }
23623
23669
  },
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"
23670
+ "description": "Gets all direct children with a `value` attribute (excluding those in reserved slots)."
23627
23671
  },
23628
23672
  {
23629
- "kind": "field",
23630
- "name": "hoverBridge",
23631
- "type": {
23632
- "text": "boolean"
23633
- },
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"
23673
+ "kind": "method",
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."
23637
23677
  },
23638
23678
  {
23639
23679
  "kind": "method",
23640
- "name": "handleAnchorChange",
23641
- "privacy": "private"
23680
+ "name": "getPriorityMap",
23681
+ "return": {
23682
+ "type": {
23683
+ "text": "PriorityItem[]"
23684
+ }
23685
+ },
23686
+ "description": "Returns the priority map: an array of { key, priority } objects."
23642
23687
  },
23643
23688
  {
23644
- "kind": "field",
23645
- "name": "handleAnchorHover",
23646
- "privacy": "public"
23689
+ "kind": "method",
23690
+ "name": "_syncHiddenInputs",
23691
+ "privacy": "private",
23692
+ "description": "Syncs hidden inputs so form data includes priority values."
23647
23693
  },
23648
23694
  {
23649
23695
  "kind": "method",
23650
- "name": "start",
23651
- "privacy": "private"
23696
+ "name": "_moveItem",
23697
+ "privacy": "private",
23698
+ "parameters": [
23699
+ {
23700
+ "name": "fromIndex",
23701
+ "type": {
23702
+ "text": "number"
23703
+ }
23704
+ },
23705
+ {
23706
+ "name": "toIndex",
23707
+ "type": {
23708
+ "text": "number"
23709
+ }
23710
+ }
23711
+ ],
23712
+ "description": "Moves an item from one index to another."
23652
23713
  },
23653
23714
  {
23654
23715
  "kind": "method",
23655
- "name": "stop",
23716
+ "name": "_submitForm",
23656
23717
  "privacy": "private",
23657
- "return": {
23658
- "type": {
23659
- "text": "Promise<void>"
23660
- }
23661
- }
23718
+ "description": "Submits the associated form if a `formaction` attribute is set."
23662
23719
  },
23663
23720
  {
23664
23721
  "kind": "method",
23665
- "name": "reposition",
23666
- "description": "Forces the popup to recalculate and reposition itself."
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
+ ]
23667
23738
  },
23668
23739
  {
23669
- "kind": "field",
23670
- "name": "updateHoverBridge",
23740
+ "kind": "method",
23741
+ "name": "_handleDragEnd",
23671
23742
  "privacy": "private"
23672
- }
23673
- ],
23674
- "events": [
23675
- {
23676
- "description": "Emitted as an example.",
23677
- "name": "zn-event-name"
23678
- }
23679
- ],
23680
- "attributes": [
23681
- {
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"
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
24198
- },
24199
- {
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."
24246
+ "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
24247
+ "attribute": "auto-size"
24204
24248
  },
24205
24249
  {
24206
- "kind": "method",
24207
- "name": "_getSlottedItems",
24208
- "privacy": "private",
24209
- "return": {
24210
- "type": {
24211
- "text": "HTMLElement[]"
24212
- }
24250
+ "kind": "field",
24251
+ "name": "sync",
24252
+ "type": {
24253
+ "text": "'width' | 'height' | 'both'"
24213
24254
  },
24214
- "description": "Gets all direct children with a `value` attribute (excluding those in reserved slots)."
24215
- },
24216
- {
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."
24255
+ "description": "Syncs the popup's width or height to that of the anchor element.",
24256
+ "attribute": "sync"
24221
24257
  },
24222
24258
  {
24223
- "kind": "method",
24224
- "name": "getPriorityMap",
24225
- "return": {
24226
- "type": {
24227
- "text": "PriorityItem[]"
24228
- }
24259
+ "kind": "field",
24260
+ "name": "autoSizeBoundary",
24261
+ "type": {
24262
+ "text": "Element | Element[]"
24229
24263
  },
24230
- "description": "Returns the priority map: an array of { key, priority } objects."
24231
- },
24232
- {
24233
- "kind": "method",
24234
- "name": "_syncHiddenInputs",
24235
- "privacy": "private",
24236
- "description": "Syncs hidden inputs so form data includes priority values."
24237
- },
24238
- {
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."
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"
24257
24266
  },
24258
24267
  {
24259
- "kind": "method",
24260
- "name": "_submitForm",
24261
- "privacy": "private",
24262
- "description": "Submits the associated form if a `formaction` attribute is set."
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"
24263
24276
  },
24264
24277
  {
24265
- "kind": "method",
24266
- "name": "_handleDragStart",
24267
- "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
- }
24280
- }
24281
- ]
24278
+ "kind": "field",
24279
+ "name": "hoverBridge",
24280
+ "type": {
24281
+ "text": "boolean"
24282
+ },
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"
24282
24286
  },
24283
24287
  {
24284
24288
  "kind": "method",
24285
- "name": "_handleDragEnd",
24289
+ "name": "handleAnchorChange",
24286
24290
  "privacy": "private"
24287
24291
  },
24288
24292
  {
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
- },
24307
- {
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
- },
24326
- {
24327
- "kind": "method",
24328
- "name": "_handleDrop",
24329
- "privacy": "private",
24330
- "parameters": [
24331
- {
24332
- "name": "event",
24333
- "type": {
24334
- "text": "DragEvent"
24335
- }
24336
- }
24337
- ]
24338
- },
24339
- {
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
- ]
24357
- },
24358
- {
24359
- "kind": "method",
24360
- "name": "_handleSlotChange",
24361
- "privacy": "private"
24293
+ "kind": "field",
24294
+ "name": "handleAnchorHover",
24295
+ "privacy": "public"
24362
24296
  },
24363
24297
  {
24364
24298
  "kind": "method",
24365
- "name": "checkValidity",
24366
- "return": {
24367
- "type": {
24368
- "text": "boolean"
24369
- }
24370
- },
24371
- "description": "Checks for validity but does not show a validation message."
24299
+ "name": "start",
24300
+ "privacy": "private"
24372
24301
  },
24373
24302
  {
24374
24303
  "kind": "method",
24375
- "name": "getForm",
24304
+ "name": "stop",
24305
+ "privacy": "private",
24376
24306
  "return": {
24377
24307
  "type": {
24378
- "text": "HTMLFormElement | null"
24308
+ "text": "Promise<void>"
24379
24309
  }
24380
- },
24381
- "description": "Gets the associated form, if one exists."
24310
+ }
24382
24311
  },
24383
24312
  {
24384
24313
  "kind": "method",
24385
- "name": "reportValidity",
24386
- "return": {
24387
- "type": {
24388
- "text": "boolean"
24389
- }
24390
- },
24391
- "description": "Checks for validity and shows the browser's validation message if the control is invalid."
24314
+ "name": "reposition",
24315
+ "description": "Forces the popup to recalculate and reposition itself."
24392
24316
  },
24393
24317
  {
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."
24318
+ "kind": "field",
24319
+ "name": "updateHoverBridge",
24320
+ "privacy": "private"
24403
24321
  }
24404
24322
  ],
24405
24323
  "events": [
24406
24324
  {
24407
- "description": "Emitted when the order of items changes.",
24408
- "name": "zn-change"
24409
- },
24410
- {
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"
24325
+ "description": "Emitted as an example.",
24326
+ "name": "zn-event-name"
24413
24327
  }
24414
24328
  ],
24415
24329
  "attributes": [
24416
24330
  {
24417
- "name": "name",
24331
+ "name": "anchor",
24418
24332
  "type": {
24419
- "text": "string"
24333
+ "text": "Element | string | VirtualElement"
24420
24334
  },
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"
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"
24424
24337
  },
24425
24338
  {
24426
- "name": "value",
24339
+ "name": "active",
24427
24340
  "type": {
24428
- "text": "string[]"
24341
+ "text": "boolean"
24429
24342
  },
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"
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"
24432
24346
  },
24433
24347
  {
24434
- "name": "label",
24348
+ "name": "placement",
24435
24349
  "type": {
24436
- "text": "string"
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'"
24437
24351
  },
24438
- "default": "''",
24439
- "description": "The component's label. Required for proper accessibility.",
24440
- "fieldName": "label"
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"
24441
24355
  },
24442
24356
  {
24443
- "name": "label-tooltip",
24357
+ "name": "strategy",
24444
24358
  "type": {
24445
- "text": "string"
24359
+ "text": "'absolute' | 'fixed'"
24446
24360
  },
24447
- "default": "''",
24448
- "description": "Text that appears in a tooltip next to the label.",
24449
- "fieldName": "labelTooltip"
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"
24450
24364
  },
24451
24365
  {
24452
- "name": "help-text",
24366
+ "name": "distance",
24453
24367
  "type": {
24454
- "text": "string"
24368
+ "text": "number"
24455
24369
  },
24456
- "default": "''",
24457
- "description": "Help text that describes how to use the component.",
24458
- "fieldName": "helpText"
24370
+ "default": "0",
24371
+ "description": "The distance in pixels from which to offset the panel away from its anchor.",
24372
+ "fieldName": "distance"
24459
24373
  },
24460
24374
  {
24461
- "name": "form",
24375
+ "name": "skidding",
24462
24376
  "type": {
24463
- "text": "string"
24377
+ "text": "number"
24464
24378
  },
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"
24379
+ "default": "0",
24380
+ "description": "The distance in pixels from which to offset the panel along its anchor.",
24381
+ "fieldName": "skidding"
24468
24382
  },
24469
24383
  {
24470
- "name": "size",
24384
+ "name": "arrow",
24471
24385
  "type": {
24472
- "text": "'small' | 'medium' | 'large'"
24386
+ "text": "boolean"
24473
24387
  },
24474
- "default": "'medium'",
24475
- "description": "The size of the list items.",
24476
- "fieldName": "size"
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"
24477
24391
  },
24478
24392
  {
24479
- "name": "disabled",
24393
+ "name": "arrow-placement",
24394
+ "type": {
24395
+ "text": "'start' | 'end' | 'center' | 'anchor'"
24396
+ },
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"
24400
+ },
24401
+ {
24402
+ "name": "arrow-padding",
24403
+ "type": {
24404
+ "text": "number"
24405
+ },
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"
24409
+ },
24410
+ {
24411
+ "name": "flip",
24480
24412
  "type": {
24481
24413
  "text": "boolean"
24482
24414
  },
24483
24415
  "default": "false",
24484
- "description": "Whether the priority list is disabled.",
24485
- "fieldName": "disabled"
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"
24486
24418
  },
24487
24419
  {
24488
- "name": "required",
24420
+ "name": "flip-fallback-placements",
24421
+ "type": {
24422
+ "text": "string"
24423
+ },
24424
+ "default": "''",
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"
24427
+ },
24428
+ {
24429
+ "name": "flip-fallback-strategy",
24430
+ "type": {
24431
+ "text": "'best-fit' | 'initial'"
24432
+ },
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"
24436
+ },
24437
+ {
24438
+ "name": "flipBoundary",
24439
+ "type": {
24440
+ "text": "Element | Element[]"
24441
+ },
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"
24444
+ },
24445
+ {
24446
+ "name": "flip-padding",
24447
+ "type": {
24448
+ "text": "number"
24449
+ },
24450
+ "default": "0",
24451
+ "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
24452
+ "fieldName": "flipPadding"
24453
+ },
24454
+ {
24455
+ "name": "shift",
24489
24456
  "type": {
24490
24457
  "text": "boolean"
24491
24458
  },
24492
24459
  "default": "false",
24493
- "description": "Ensures the form control has a value before allowing submission.",
24494
- "fieldName": "required"
24460
+ "description": "Moves the popup along the axis to keep it in view when clipped.",
24461
+ "fieldName": "shift"
24495
24462
  },
24496
24463
  {
24497
- "name": "priority-start",
24464
+ "name": "shiftBoundary",
24465
+ "type": {
24466
+ "text": "Element | Element[]"
24467
+ },
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"
24470
+ },
24471
+ {
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.10",
36371
+ "version": "1.1.12",
36372
36372
  "author": "",
36373
36373
  "license": "MIT"
36374
36374
  }