@phcdevworks/spectre-components 1.17.0 → 1.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +15 -7
  2. package/dist/alert.cjs.map +1 -1
  3. package/dist/alert.d.cts +2 -2
  4. package/dist/alert.d.ts +2 -2
  5. package/dist/alert.js.map +1 -1
  6. package/dist/avatar.cjs.map +1 -1
  7. package/dist/avatar.d.cts +2 -2
  8. package/dist/avatar.d.ts +2 -2
  9. package/dist/avatar.js.map +1 -1
  10. package/dist/badge.cjs +2 -1
  11. package/dist/badge.cjs.map +1 -1
  12. package/dist/badge.d.cts +2 -2
  13. package/dist/badge.d.ts +2 -2
  14. package/dist/badge.js +2 -1
  15. package/dist/badge.js.map +1 -1
  16. package/dist/button.cjs +2 -1
  17. package/dist/button.cjs.map +1 -1
  18. package/dist/button.d.cts +2 -2
  19. package/dist/button.d.ts +2 -2
  20. package/dist/button.js +2 -1
  21. package/dist/button.js.map +1 -1
  22. package/dist/card.cjs +21 -3
  23. package/dist/card.cjs.map +1 -1
  24. package/dist/card.d.cts +7 -6
  25. package/dist/card.d.ts +7 -6
  26. package/dist/card.js +21 -3
  27. package/dist/card.js.map +1 -1
  28. package/dist/container.cjs.map +1 -1
  29. package/dist/container.d.cts +2 -2
  30. package/dist/container.d.ts +2 -2
  31. package/dist/container.js.map +1 -1
  32. package/dist/dropdown.cjs +11 -3
  33. package/dist/dropdown.cjs.map +1 -1
  34. package/dist/dropdown.d.cts +2 -2
  35. package/dist/dropdown.d.ts +2 -2
  36. package/dist/dropdown.js +11 -3
  37. package/dist/dropdown.js.map +1 -1
  38. package/dist/footer.cjs.map +1 -1
  39. package/dist/footer.js.map +1 -1
  40. package/dist/{form-CVRAWo0Q.d.cts → form-TvtLcoW0.d.cts} +6 -4
  41. package/dist/{form-CVRAWo0Q.d.ts → form-TvtLcoW0.d.ts} +6 -4
  42. package/dist/grid.cjs +49 -0
  43. package/dist/grid.cjs.map +1 -1
  44. package/dist/grid.d.cts +10 -2
  45. package/dist/grid.d.ts +10 -2
  46. package/dist/grid.js +49 -0
  47. package/dist/grid.js.map +1 -1
  48. package/dist/icon-box.cjs.map +1 -1
  49. package/dist/icon-box.d.cts +2 -2
  50. package/dist/icon-box.d.ts +2 -2
  51. package/dist/icon-box.js.map +1 -1
  52. package/dist/index.cjs +100 -13
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +1 -1
  55. package/dist/index.d.ts +1 -1
  56. package/dist/index.js +100 -13
  57. package/dist/index.js.map +1 -1
  58. package/dist/input.cjs.map +1 -1
  59. package/dist/input.d.cts +2 -2
  60. package/dist/input.d.ts +2 -2
  61. package/dist/input.js.map +1 -1
  62. package/dist/nav-item.cjs.map +1 -1
  63. package/dist/nav-item.d.cts +1 -1
  64. package/dist/nav-item.d.ts +1 -1
  65. package/dist/nav-item.js.map +1 -1
  66. package/dist/nav.cjs.map +1 -1
  67. package/dist/nav.d.cts +1 -1
  68. package/dist/nav.d.ts +1 -1
  69. package/dist/nav.js.map +1 -1
  70. package/dist/radio.cjs +3 -2
  71. package/dist/radio.cjs.map +1 -1
  72. package/dist/radio.js +3 -2
  73. package/dist/radio.js.map +1 -1
  74. package/dist/rating.cjs.map +1 -1
  75. package/dist/rating.d.cts +2 -2
  76. package/dist/rating.d.ts +2 -2
  77. package/dist/rating.js.map +1 -1
  78. package/dist/section.cjs.map +1 -1
  79. package/dist/section.js.map +1 -1
  80. package/dist/select.cjs.map +1 -1
  81. package/dist/select.d.cts +1 -1
  82. package/dist/select.d.ts +1 -1
  83. package/dist/select.js.map +1 -1
  84. package/dist/sidebar-link.cjs.map +1 -1
  85. package/dist/sidebar-link.d.cts +1 -1
  86. package/dist/sidebar-link.d.ts +1 -1
  87. package/dist/sidebar-link.js.map +1 -1
  88. package/dist/spinner.cjs.map +1 -1
  89. package/dist/spinner.d.cts +2 -2
  90. package/dist/spinner.d.ts +2 -2
  91. package/dist/spinner.js.map +1 -1
  92. package/dist/stack.cjs.map +1 -1
  93. package/dist/stack.d.cts +2 -2
  94. package/dist/stack.d.ts +2 -2
  95. package/dist/stack.js.map +1 -1
  96. package/dist/tag.cjs.map +1 -1
  97. package/dist/tag.d.cts +2 -2
  98. package/dist/tag.d.ts +2 -2
  99. package/dist/tag.js.map +1 -1
  100. package/dist/testimonial.cjs.map +1 -1
  101. package/dist/testimonial.d.cts +2 -2
  102. package/dist/testimonial.d.ts +2 -2
  103. package/dist/testimonial.js.map +1 -1
  104. package/dist/text.cjs +3 -1
  105. package/dist/text.cjs.map +1 -1
  106. package/dist/text.d.cts +2 -2
  107. package/dist/text.d.ts +2 -2
  108. package/dist/text.js +3 -1
  109. package/dist/text.js.map +1 -1
  110. package/dist/textarea.cjs.map +1 -1
  111. package/dist/textarea.d.cts +1 -1
  112. package/dist/textarea.d.ts +1 -1
  113. package/dist/textarea.js.map +1 -1
  114. package/dist/toast.cjs.map +1 -1
  115. package/dist/toast.d.cts +2 -2
  116. package/dist/toast.d.ts +2 -2
  117. package/dist/toast.js.map +1 -1
  118. package/dist/tooltip.cjs +9 -2
  119. package/dist/tooltip.cjs.map +1 -1
  120. package/dist/tooltip.d.cts +2 -2
  121. package/dist/tooltip.d.ts +2 -2
  122. package/dist/tooltip.js +9 -2
  123. package/dist/tooltip.js.map +1 -1
  124. package/package.json +18 -14
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- export { S as SpectreAlertSize, a as SpectreAlertVariant, b as SpectreAvatarShape, c as SpectreAvatarSize, S as SpectreBadgeSize, d as SpectreBadgeVariant, S as SpectreButtonSize, e as SpectreButtonType, f as SpectreButtonVariant, g as SpectreCardVariant, h as SpectreContainerMaxWidth, i as SpectreDropdownPlacement, j as SpectreGridAlign, k as SpectreGridColumns, l as SpectreGridGap, S as SpectreIconBoxSize, m as SpectreIconBoxVariant, S as SpectreInputSize, n as SpectreInputType, S as SpectreRatingSize, S as SpectreSpinnerSize, o as SpectreSpinnerVariant, p as SpectreStackAlign, q as SpectreStackBasis, r as SpectreStackDirection, s as SpectreStackGap, S as SpectreTagSize, t as SpectreTagVariant, u as SpectreTestimonialVariant, v as SpectreTextFamily, w as SpectreTextLevel, x as SpectreTextSize, y as SpectreTextVariant, z as SpectreToastVariant, A as SpectreTooltipPlacement, B as spectreAlertSizes, C as spectreAlertVariants, D as spectreAvatarShapes, E as spectreAvatarSizes, B as spectreBadgeSizes, F as spectreBadgeVariants, B as spectreButtonSizes, G as spectreButtonTypes, H as spectreButtonVariants, I as spectreCardVariants, J as spectreContainerMaxWidths, K as spectreDropdownPlacements, L as spectreGridAligns, M as spectreGridColumns, N as spectreGridGaps, B as spectreIconBoxSizes, O as spectreIconBoxVariants, B as spectreInputSizes, P as spectreInputTypes, B as spectreRatingSizes, B as spectreSpinnerSizes, Q as spectreSpinnerVariants, R as spectreStackAligns, T as spectreStackBases, U as spectreStackDirections, V as spectreStackGaps, B as spectreTagSizes, W as spectreTagVariants, X as spectreTestimonialVariants, Y as spectreTextFamilies, Z as spectreTextLevels, _ as spectreTextSizes, $ as spectreTextVariants, a0 as spectreToastVariants, a1 as spectreTooltipPlacements } from './form-CVRAWo0Q.cjs';
1
+ export { S as SpectreAlertSize, a as SpectreAlertVariant, b as SpectreAvatarShape, c as SpectreAvatarSize, S as SpectreBadgeSize, d as SpectreBadgeVariant, S as SpectreButtonSize, e as SpectreButtonType, f as SpectreButtonVariant, g as SpectreCardVariant, h as SpectreContainerMaxWidth, i as SpectreDropdownPlacement, j as SpectreGridAlign, k as SpectreGridColumns, l as SpectreGridGap, S as SpectreIconBoxSize, m as SpectreIconBoxVariant, S as SpectreInputSize, n as SpectreInputType, S as SpectreRatingSize, S as SpectreSpinnerSize, o as SpectreSpinnerVariant, p as SpectreStackAlign, q as SpectreStackBasis, r as SpectreStackDirection, s as SpectreStackGap, S as SpectreTagSize, t as SpectreTagVariant, u as SpectreTestimonialVariant, v as SpectreTextFamily, w as SpectreTextLevel, x as SpectreTextSize, y as SpectreTextVariant, z as SpectreToastVariant, A as SpectreTooltipPlacement, B as spectreAlertSizes, C as spectreAlertVariants, D as spectreAvatarShapes, E as spectreAvatarSizes, B as spectreBadgeSizes, F as spectreBadgeVariants, B as spectreButtonSizes, G as spectreButtonTypes, H as spectreButtonVariants, I as spectreCardVariants, J as spectreContainerMaxWidths, K as spectreDropdownPlacements, L as spectreGridAligns, M as spectreGridColumns, N as spectreGridGaps, B as spectreIconBoxSizes, O as spectreIconBoxVariants, B as spectreInputSizes, P as spectreInputTypes, B as spectreRatingSizes, B as spectreSpinnerSizes, Q as spectreSpinnerVariants, R as spectreStackAligns, T as spectreStackBases, U as spectreStackDirections, V as spectreStackGaps, B as spectreTagSizes, W as spectreTagVariants, X as spectreTestimonialVariants, Y as spectreTextFamilies, Z as spectreTextLevels, _ as spectreTextSizes, $ as spectreTextVariants, a0 as spectreToastVariants, a1 as spectreTooltipPlacements } from './form-TvtLcoW0.cjs';
2
2
  export { SpectreButtonElement, SpectreButtonProps, SpectreButtonTarget, defineSpectreButton } from './button.cjs';
3
3
  export { SpectreInputElement, SpectreInputProps, defineSpectreInput } from './input.cjs';
4
4
  export { SpectreTextareaElement, SpectreTextareaProps, defineSpectreTextarea } from './textarea.cjs';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { S as SpectreAlertSize, a as SpectreAlertVariant, b as SpectreAvatarShape, c as SpectreAvatarSize, S as SpectreBadgeSize, d as SpectreBadgeVariant, S as SpectreButtonSize, e as SpectreButtonType, f as SpectreButtonVariant, g as SpectreCardVariant, h as SpectreContainerMaxWidth, i as SpectreDropdownPlacement, j as SpectreGridAlign, k as SpectreGridColumns, l as SpectreGridGap, S as SpectreIconBoxSize, m as SpectreIconBoxVariant, S as SpectreInputSize, n as SpectreInputType, S as SpectreRatingSize, S as SpectreSpinnerSize, o as SpectreSpinnerVariant, p as SpectreStackAlign, q as SpectreStackBasis, r as SpectreStackDirection, s as SpectreStackGap, S as SpectreTagSize, t as SpectreTagVariant, u as SpectreTestimonialVariant, v as SpectreTextFamily, w as SpectreTextLevel, x as SpectreTextSize, y as SpectreTextVariant, z as SpectreToastVariant, A as SpectreTooltipPlacement, B as spectreAlertSizes, C as spectreAlertVariants, D as spectreAvatarShapes, E as spectreAvatarSizes, B as spectreBadgeSizes, F as spectreBadgeVariants, B as spectreButtonSizes, G as spectreButtonTypes, H as spectreButtonVariants, I as spectreCardVariants, J as spectreContainerMaxWidths, K as spectreDropdownPlacements, L as spectreGridAligns, M as spectreGridColumns, N as spectreGridGaps, B as spectreIconBoxSizes, O as spectreIconBoxVariants, B as spectreInputSizes, P as spectreInputTypes, B as spectreRatingSizes, B as spectreSpinnerSizes, Q as spectreSpinnerVariants, R as spectreStackAligns, T as spectreStackBases, U as spectreStackDirections, V as spectreStackGaps, B as spectreTagSizes, W as spectreTagVariants, X as spectreTestimonialVariants, Y as spectreTextFamilies, Z as spectreTextLevels, _ as spectreTextSizes, $ as spectreTextVariants, a0 as spectreToastVariants, a1 as spectreTooltipPlacements } from './form-CVRAWo0Q.js';
1
+ export { S as SpectreAlertSize, a as SpectreAlertVariant, b as SpectreAvatarShape, c as SpectreAvatarSize, S as SpectreBadgeSize, d as SpectreBadgeVariant, S as SpectreButtonSize, e as SpectreButtonType, f as SpectreButtonVariant, g as SpectreCardVariant, h as SpectreContainerMaxWidth, i as SpectreDropdownPlacement, j as SpectreGridAlign, k as SpectreGridColumns, l as SpectreGridGap, S as SpectreIconBoxSize, m as SpectreIconBoxVariant, S as SpectreInputSize, n as SpectreInputType, S as SpectreRatingSize, S as SpectreSpinnerSize, o as SpectreSpinnerVariant, p as SpectreStackAlign, q as SpectreStackBasis, r as SpectreStackDirection, s as SpectreStackGap, S as SpectreTagSize, t as SpectreTagVariant, u as SpectreTestimonialVariant, v as SpectreTextFamily, w as SpectreTextLevel, x as SpectreTextSize, y as SpectreTextVariant, z as SpectreToastVariant, A as SpectreTooltipPlacement, B as spectreAlertSizes, C as spectreAlertVariants, D as spectreAvatarShapes, E as spectreAvatarSizes, B as spectreBadgeSizes, F as spectreBadgeVariants, B as spectreButtonSizes, G as spectreButtonTypes, H as spectreButtonVariants, I as spectreCardVariants, J as spectreContainerMaxWidths, K as spectreDropdownPlacements, L as spectreGridAligns, M as spectreGridColumns, N as spectreGridGaps, B as spectreIconBoxSizes, O as spectreIconBoxVariants, B as spectreInputSizes, P as spectreInputTypes, B as spectreRatingSizes, B as spectreSpinnerSizes, Q as spectreSpinnerVariants, R as spectreStackAligns, T as spectreStackBases, U as spectreStackDirections, V as spectreStackGaps, B as spectreTagSizes, W as spectreTagVariants, X as spectreTestimonialVariants, Y as spectreTextFamilies, Z as spectreTextLevels, _ as spectreTextSizes, $ as spectreTextVariants, a0 as spectreToastVariants, a1 as spectreTooltipPlacements } from './form-TvtLcoW0.js';
2
2
  export { SpectreButtonElement, SpectreButtonProps, SpectreButtonTarget, defineSpectreButton } from './button.js';
3
3
  export { SpectreInputElement, SpectreInputProps, defineSpectreInput } from './input.js';
4
4
  export { SpectreTextareaElement, SpectreTextareaProps, defineSpectreTextarea } from './textarea.js';
package/dist/index.js CHANGED
@@ -16,7 +16,8 @@ var spectreButtonVariants = [
16
16
  "danger",
17
17
  "success",
18
18
  "cta",
19
- "accent"
19
+ "accent",
20
+ "inverse"
20
21
  ];
21
22
  function isButtonVariant(value) {
22
23
  return spectreButtonVariants.includes(value);
@@ -53,7 +54,8 @@ var spectreBadgeVariants = [
53
54
  "ghost",
54
55
  "outline",
55
56
  "accent",
56
- "cta"
57
+ "cta",
58
+ "inverse"
57
59
  ];
58
60
  function isBadgeVariant(value) {
59
61
  return spectreBadgeVariants.includes(value);
@@ -77,6 +79,12 @@ var spectreCardVariants = [
77
79
  function isCardVariant(value) {
78
80
  return spectreCardVariants.includes(value);
79
81
  }
82
+ var spectreCardPaddingSizes = ["sm", "md", "lg"];
83
+ function isCardPaddingSize(value) {
84
+ return spectreCardPaddingSizes.includes(
85
+ value
86
+ );
87
+ }
80
88
  var spectreIconBoxVariants = [
81
89
  "primary",
82
90
  "secondary",
@@ -371,7 +379,9 @@ var spectreTextVariants = [
371
379
  "muted",
372
380
  "subtle",
373
381
  "meta",
374
- "brand"
382
+ "brand",
383
+ "onInverse",
384
+ "onInverseMuted"
375
385
  ];
376
386
  function isTextVariant(value) {
377
387
  return spectreTextVariants.includes(value);
@@ -1700,7 +1710,7 @@ var SpectreRadioElement = class extends SpectreProjectableElement {
1700
1710
  }
1701
1711
  updated(changedProperties) {
1702
1712
  super.updated(changedProperties);
1703
- if ((changedProperties.has("checked") || changedProperties.has("name")) && this.checked && this.name) {
1713
+ if ((changedProperties.has("checked") || changedProperties.has("name") || changedProperties.has("form")) && this.checked && this.name) {
1704
1714
  this.syncGroup();
1705
1715
  }
1706
1716
  }
@@ -1712,8 +1722,9 @@ var SpectreRadioElement = class extends SpectreProjectableElement {
1712
1722
  const radios = root.querySelectorAll(
1713
1723
  "sp-radio"
1714
1724
  );
1725
+ const form = this.nativeInput?.form;
1715
1726
  radios.forEach((radio) => {
1716
- if (radio !== this && radio.name === this.name && radio.checked) {
1727
+ if (radio !== this && radio.name === this.name && radio.nativeInput?.form === form && radio.checked) {
1717
1728
  radio.checked = false;
1718
1729
  }
1719
1730
  });
@@ -2058,10 +2069,22 @@ function defineSpectreBadge(tagName = "sp-badge") {
2058
2069
  }
2059
2070
  var paddedConverter = {
2060
2071
  fromAttribute(value) {
2061
- return value !== "false";
2072
+ if (value === "false") {
2073
+ return false;
2074
+ }
2075
+ if (value != null && isCardPaddingSize(value)) {
2076
+ return value;
2077
+ }
2078
+ return true;
2062
2079
  },
2063
2080
  toAttribute(value) {
2064
- return value ? null : "false";
2081
+ if (value === false) {
2082
+ return "false";
2083
+ }
2084
+ if (value === true) {
2085
+ return null;
2086
+ }
2087
+ return value;
2065
2088
  }
2066
2089
  };
2067
2090
  var SpectreCardElement = class extends SpectreProjectableElement {
@@ -2110,7 +2133,7 @@ var SpectreCardElement = class extends SpectreProjectableElement {
2110
2133
  if (changedProperties.has("loading") && this.loading == null) {
2111
2134
  this.loading = false;
2112
2135
  }
2113
- if (changedProperties.has("padded") && this.padded == null) {
2136
+ if (changedProperties.has("padded") && (this.padded == null || typeof this.padded !== "boolean" && !isCardPaddingSize(this.padded))) {
2114
2137
  this.padded = true;
2115
2138
  }
2116
2139
  if (changedProperties.has("variant") && (this.variant == null || !isCardVariant(this.variant))) {
@@ -2999,6 +3022,7 @@ var SpectreGridElement = class extends SpectreProjectableElement {
2999
3022
  this.innerClass = void 0;
3000
3023
  this.leadingTracks = void 0;
3001
3024
  this.rowGap = void 0;
3025
+ this._role = null;
3002
3026
  }
3003
3027
  get id() {
3004
3028
  return super.id;
@@ -3012,9 +3036,56 @@ var SpectreGridElement = class extends SpectreProjectableElement {
3012
3036
  set title(value) {
3013
3037
  super.title = value;
3014
3038
  }
3039
+ get role() {
3040
+ return this._role;
3041
+ }
3042
+ set role(value) {
3043
+ const normalizedValue = value?.trim() || null;
3044
+ if (this._role === normalizedValue) {
3045
+ return;
3046
+ }
3047
+ this._role = normalizedValue;
3048
+ if (HTMLElement.prototype.hasAttribute.call(this, "role")) {
3049
+ HTMLElement.prototype.removeAttribute.call(this, "role");
3050
+ }
3051
+ this.requestUpdate();
3052
+ }
3053
+ getAttribute(qualifiedName) {
3054
+ if (qualifiedName === "role") {
3055
+ return this.role;
3056
+ }
3057
+ return super.getAttribute(qualifiedName);
3058
+ }
3059
+ hasAttribute(qualifiedName) {
3060
+ if (qualifiedName === "role") {
3061
+ return this.role !== null;
3062
+ }
3063
+ return super.hasAttribute(qualifiedName);
3064
+ }
3065
+ setAttribute(qualifiedName, value) {
3066
+ if (qualifiedName === "role") {
3067
+ this.role = value;
3068
+ return;
3069
+ }
3070
+ super.setAttribute(qualifiedName, value);
3071
+ }
3072
+ removeAttribute(qualifiedName) {
3073
+ if (qualifiedName === "role") {
3074
+ this.role = null;
3075
+ return;
3076
+ }
3077
+ super.removeAttribute(qualifiedName);
3078
+ }
3015
3079
  connectedCallback() {
3016
3080
  var _a;
3081
+ const initialRole = HTMLElement.prototype.getAttribute.call(this, "role");
3082
+ if (initialRole !== null) {
3083
+ HTMLElement.prototype.removeAttribute.call(this, "role");
3084
+ }
3017
3085
  super.connectedCallback();
3086
+ if (initialRole !== null) {
3087
+ this.role = initialRole;
3088
+ }
3018
3089
  (_a = this.style).display || (_a.display = "block");
3019
3090
  }
3020
3091
  getContentContainer() {
@@ -3114,6 +3185,7 @@ var SpectreGridElement = class extends SpectreProjectableElement {
3114
3185
  class="${this.gridClasses}"
3115
3186
  data-sp-grid-native
3116
3187
  id="${ifDefined(this.id || void 0)}"
3188
+ role="${ifDefined(this.role ?? void 0)}"
3117
3189
  title="${ifDefined(this.title || void 0)}"
3118
3190
  >
3119
3191
  ${this.hasProjectedContent ? this.projectedContent : nothing}
@@ -3337,13 +3409,20 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
3337
3409
  return false;
3338
3410
  }
3339
3411
  const el = node;
3340
- return el.hasAttribute("data-sp-dropdown-menu") || el.hasAttribute("data-sp-dropdown-trigger");
3412
+ return el.hasAttribute("data-sp-dropdown-native") || el.hasAttribute("data-sp-dropdown-menu") || el.hasAttribute("data-sp-dropdown-trigger");
3341
3413
  }
3342
3414
  syncProjectedContent() {
3343
3415
  const nextTriggerContent = [];
3344
3416
  const nextMenuContent = [];
3345
- this.childNodes.forEach((node) => {
3346
- if (this.isInternalNode(node)) {
3417
+ const sourceNodes = [
3418
+ ...this.triggerContent.filter((node) => this.contains(node)),
3419
+ ...this.menuContent.filter((node) => this.contains(node)),
3420
+ ...Array.from(this.childNodes).filter(
3421
+ (node) => !this.hasUpdated || node.nodeType !== Node.TEXT_NODE || node.textContent?.trim()
3422
+ )
3423
+ ];
3424
+ new Set(sourceNodes).forEach((node) => {
3425
+ if (node.nodeType === Node.COMMENT_NODE || this.isInternalNode(node)) {
3347
3426
  return;
3348
3427
  }
3349
3428
  const isTriggerSlot = node.nodeType === Node.ELEMENT_NODE && node.getAttribute("slot") === "trigger";
@@ -3456,6 +3535,7 @@ var SpectreDropdownElement = class extends SpectreBaseElement {
3456
3535
  render() {
3457
3536
  return html`<div
3458
3537
  class="${this.dropdownClasses}"
3538
+ data-sp-dropdown-native
3459
3539
  id="${ifDefined(this.id || void 0)}"
3460
3540
  title="${ifDefined(this.title || void 0)}"
3461
3541
  >
@@ -4686,8 +4766,15 @@ var SpectreTooltipElement = class extends SpectreBaseElement {
4686
4766
  syncProjectedContent() {
4687
4767
  const nextTooltipContent = [];
4688
4768
  const nextTriggerContent = [];
4689
- this.childNodes.forEach((node) => {
4690
- if (this.isInternalNode(node)) {
4769
+ const sourceNodes = [
4770
+ ...this.triggerContent.filter((node) => this.contains(node)),
4771
+ ...this.tooltipContent.filter((node) => this.contains(node)),
4772
+ ...Array.from(this.childNodes).filter(
4773
+ (node) => !this.hasUpdated || node.nodeType !== Node.TEXT_NODE || node.textContent?.trim()
4774
+ )
4775
+ ];
4776
+ new Set(sourceNodes).forEach((node) => {
4777
+ if (node.nodeType === Node.COMMENT_NODE || this.isInternalNode(node)) {
4691
4778
  return;
4692
4779
  }
4693
4780
  const isTooltipSlot = node.nodeType === Node.ELEMENT_NODE && node.getAttribute("slot") === "tooltip";