@nanoporetech-digital/components 8.10.0 → 8.10.2

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 (151) hide show
  1. package/dist/cjs/{fade-BUa4h2hW.js → fade-CPjR03EH.js} +1 -1
  2. package/dist/cjs/{fullscreen-Dro71U7W.js → fullscreen-Bzjv2HGI.js} +1 -1
  3. package/dist/cjs/{lazyload-CTZM4xbV.js → lazyload-BNO_n6W8.js} +1 -1
  4. package/dist/cjs/nano-alert.cjs.entry.js +1 -1
  5. package/dist/cjs/nano-avatar_5.cjs.entry.js +8 -8
  6. package/dist/cjs/nano-details.cjs.entry.js +1 -1
  7. package/dist/cjs/nano-dialog.cjs.entry.js +1 -1
  8. package/dist/cjs/nano-dropdown_2.cjs.entry.js +1 -1
  9. package/dist/cjs/nano-icon-button_2.cjs.entry.js +2 -2
  10. package/dist/cjs/nano-in-page-nav.cjs.entry.js +1 -1
  11. package/dist/cjs/nano-input-otp.cjs.entry.js +8 -10
  12. package/dist/cjs/nano-intersection-observe.cjs.entry.js +1 -1
  13. package/dist/cjs/nano-masked-overflow.cjs.entry.js +3 -3
  14. package/dist/cjs/nano-menu-drawer.cjs.entry.js +3 -3
  15. package/dist/cjs/nano-more-less.cjs.entry.js +2 -2
  16. package/dist/cjs/nano-nav-item.cjs.entry.js +1 -1
  17. package/dist/cjs/nano-rating.cjs.entry.js +4 -4
  18. package/dist/cjs/nano-resize-observe.cjs.entry.js +2 -2
  19. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  20. package/dist/cjs/{nano-slides-Dg9sFuVO.js → nano-slides-C2K7j1yc.js} +7 -7
  21. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  22. package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
  23. package/dist/cjs/nano-step-accordion.cjs.entry.js +1 -1
  24. package/dist/cjs/nano-step-breadcrumb.cjs.entry.js +2 -2
  25. package/dist/cjs/nano-sticker.cjs.entry.js +2 -2
  26. package/dist/cjs/nano-tab-content.cjs.entry.js +2 -2
  27. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  28. package/dist/cjs/nano-table.cjs.entry.js +2 -2
  29. package/dist/cjs/{page-dots-CaQhBKfq.js → page-dots-Db7Ce8kX.js} +1 -1
  30. package/dist/cjs/{slot-CJgcluNw.js → slot-BUMYLmup.js} +19 -3
  31. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  32. package/dist/collection/components/input-otp/input-otp.css +24 -23
  33. package/dist/collection/components/input-otp/input-otp.js +8 -9
  34. package/dist/collection/components/intersection-observe/intersection-observe.js +1 -1
  35. package/dist/collection/components/masked-overflow/masked-overflow.js +3 -3
  36. package/dist/collection/components/menu-drawer/menu-drawer.js +2 -2
  37. package/dist/collection/components/more-less/more-less.js +2 -2
  38. package/dist/collection/components/rating/rating.js +4 -4
  39. package/dist/collection/components/resize-observe/resize-observe.js +2 -2
  40. package/dist/collection/components/select/select.js +7 -7
  41. package/dist/collection/components/slides/slide.js +1 -1
  42. package/dist/collection/components/slides/slides.js +3 -3
  43. package/dist/collection/components/sortable/sortable.js +1 -1
  44. package/dist/collection/components/step-accordion/step-accordion.js +1 -1
  45. package/dist/collection/components/step-breadcrumb/step-breadcrumb.js +2 -2
  46. package/dist/collection/components/sticker/sticker.js +2 -2
  47. package/dist/collection/components/table/table.js +2 -2
  48. package/dist/collection/components/tabs/tab-content.js +2 -2
  49. package/dist/collection/components/tabs/tab.js +2 -2
  50. package/dist/collection/components/tooltip/tooltip.js +2 -2
  51. package/dist/collection/utils/slot.js +19 -3
  52. package/dist/components/masked-overflow.js +3 -3
  53. package/dist/components/nano-input-otp.js +7 -10
  54. package/dist/components/nano-intersection-observe.js +1 -1
  55. package/dist/components/nano-menu-drawer.js +2 -2
  56. package/dist/components/nano-more-less.js +2 -2
  57. package/dist/components/nano-rating.js +4 -4
  58. package/dist/components/nano-slide.js +1 -1
  59. package/dist/components/nano-sortable.js +1 -1
  60. package/dist/components/nano-step-accordion.js +1 -1
  61. package/dist/components/nano-step-breadcrumb.js +2 -2
  62. package/dist/components/nano-tab-content.js +2 -2
  63. package/dist/components/nano-tab.js +2 -2
  64. package/dist/components/nano-table.js +2 -2
  65. package/dist/components/resize-observe.js +2 -2
  66. package/dist/components/select.js +7 -7
  67. package/dist/components/slides.js +3 -3
  68. package/dist/components/slot.js +19 -3
  69. package/dist/components/sticker.js +2 -2
  70. package/dist/components/tooltip.js +2 -2
  71. package/dist/esm/{fade-bCJIX80t.js → fade-DWf-ekic.js} +1 -1
  72. package/dist/esm/{fullscreen-DOYo_j8C.js → fullscreen-DWET5K4U.js} +1 -1
  73. package/dist/esm/{lazyload-D2MQBzOR.js → lazyload-BSH0U2zW.js} +1 -1
  74. package/dist/esm/nano-alert.entry.js +1 -1
  75. package/dist/esm/nano-avatar_5.entry.js +8 -8
  76. package/dist/esm/nano-details.entry.js +1 -1
  77. package/dist/esm/nano-dialog.entry.js +1 -1
  78. package/dist/esm/nano-dropdown_2.entry.js +1 -1
  79. package/dist/esm/nano-icon-button_2.entry.js +2 -2
  80. package/dist/esm/nano-in-page-nav.entry.js +1 -1
  81. package/dist/esm/nano-input-otp.entry.js +8 -10
  82. package/dist/esm/nano-intersection-observe.entry.js +1 -1
  83. package/dist/esm/nano-masked-overflow.entry.js +3 -3
  84. package/dist/esm/nano-menu-drawer.entry.js +3 -3
  85. package/dist/esm/nano-more-less.entry.js +2 -2
  86. package/dist/esm/nano-nav-item.entry.js +1 -1
  87. package/dist/esm/nano-rating.entry.js +4 -4
  88. package/dist/esm/nano-resize-observe.entry.js +2 -2
  89. package/dist/esm/nano-slide.entry.js +1 -1
  90. package/dist/esm/{nano-slides-CuEgW0Us.js → nano-slides-BU8CjO-X.js} +7 -7
  91. package/dist/esm/nano-slides.entry.js +1 -1
  92. package/dist/esm/nano-sortable.entry.js +1 -1
  93. package/dist/esm/nano-step-accordion.entry.js +1 -1
  94. package/dist/esm/nano-step-breadcrumb.entry.js +2 -2
  95. package/dist/esm/nano-sticker.entry.js +2 -2
  96. package/dist/esm/nano-tab-content.entry.js +2 -2
  97. package/dist/esm/nano-tab.entry.js +2 -2
  98. package/dist/esm/nano-table.entry.js +2 -2
  99. package/dist/esm/{page-dots-D6hhv2PU.js → page-dots-Ckyic5vY.js} +1 -1
  100. package/dist/esm/{slot-CFTP7C_Z.js → slot-D31cEKyt.js} +19 -3
  101. package/dist/nano-components/{fade-bCJIX80t.js → fade-DWf-ekic.js} +1 -1
  102. package/dist/nano-components/{fullscreen-DOYo_j8C.js → fullscreen-DWET5K4U.js} +1 -1
  103. package/dist/nano-components/{lazyload-D2MQBzOR.js → lazyload-BSH0U2zW.js} +1 -1
  104. package/dist/nano-components/nano-alert.entry.js +1 -1
  105. package/dist/nano-components/nano-avatar_5.entry.js +1 -1
  106. package/dist/nano-components/nano-components.css +31 -6
  107. package/dist/nano-components/nano-details.entry.js +1 -1
  108. package/dist/nano-components/nano-dialog.entry.js +1 -1
  109. package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
  110. package/dist/nano-components/nano-icon-button_2.entry.js +1 -1
  111. package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
  112. package/dist/nano-components/nano-input-otp.entry.js +1 -1
  113. package/dist/nano-components/nano-intersection-observe.entry.js +1 -1
  114. package/dist/nano-components/nano-masked-overflow.entry.js +1 -1
  115. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  116. package/dist/nano-components/nano-more-less.entry.js +1 -1
  117. package/dist/nano-components/nano-nav-item.entry.js +1 -1
  118. package/dist/nano-components/nano-rating.entry.js +1 -1
  119. package/dist/nano-components/nano-resize-observe.entry.js +1 -1
  120. package/dist/nano-components/nano-slide.entry.js +1 -1
  121. package/dist/nano-components/{nano-slides-CuEgW0Us.js → nano-slides-BU8CjO-X.js} +2 -2
  122. package/dist/nano-components/nano-slides.entry.js +1 -1
  123. package/dist/nano-components/nano-sortable.entry.js +1 -1
  124. package/dist/nano-components/nano-step-accordion.entry.js +1 -1
  125. package/dist/nano-components/nano-step-breadcrumb.entry.js +1 -1
  126. package/dist/nano-components/nano-sticker.entry.js +1 -1
  127. package/dist/nano-components/nano-tab-content.entry.js +1 -1
  128. package/dist/nano-components/nano-tab.entry.js +1 -1
  129. package/dist/nano-components/nano-table.entry.js +1 -1
  130. package/dist/nano-components/{page-dots-D6hhv2PU.js → page-dots-Ckyic5vY.js} +1 -1
  131. package/dist/nano-components/slot-D31cEKyt.js +4 -0
  132. package/dist/style/components.css +1 -1
  133. package/dist/style/components.css.map +1 -1
  134. package/dist/style/nano.css +1 -1
  135. package/dist/style/nano.css.map +1 -1
  136. package/dist/types/components/input-otp/input-otp.d.ts +3 -0
  137. package/docs-json.json +21 -37
  138. package/hydrate/index.js +62 -50
  139. package/hydrate/index.mjs +62 -50
  140. package/package.json +2 -2
  141. package/dist/nano-components/slot-CFTP7C_Z.js +0 -4
  142. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/generate-vue-component.d.ts +0 -0
  143. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/index.d.ts +0 -0
  144. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/output-vue.d.ts +0 -0
  145. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/plugin.d.ts +0 -0
  146. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/types.d.ts +0 -0
  147. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/utils.d.ts +0 -0
  148. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  149. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  150. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  151. /package/dist/types/builds/{z1_PBzhd → _6Vabn6i}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -63,7 +63,21 @@ class HasSlotController {
63
63
  hasDefaultSlot() {
64
64
  if (!this.host)
65
65
  return false;
66
- return [...this.host.childNodes].some((node) => {
66
+ let childNodes;
67
+ if (this.host.shadowRoot) {
68
+ // * Regular shadow DOM component *
69
+ childNodes = [...this.host.shadowRoot.childNodes];
70
+ }
71
+ else if (!this.host.classList.contains('hydrated')) {
72
+ // * Non-shadow, polyfilled component *
73
+ // Component has not done initial render. Return component internals
74
+ childNodes = [...(this.host?.__childNodes ?? [])];
75
+ }
76
+ else {
77
+ // Component is ready, return 'light DOM' children
78
+ childNodes = [...this.host.childNodes];
79
+ }
80
+ return childNodes.some((node) => {
67
81
  if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
68
82
  return true;
69
83
  }
@@ -88,12 +102,14 @@ class HasSlotController {
88
102
  : this.hasNamedSlot(slotName);
89
103
  }
90
104
  hostConnected() {
91
- this.host.shadowRoot.addEventListener('slotchange', this.handleSlotChange);
105
+ const listenTarget = this.host.shadowRoot ?? this.host;
106
+ listenTarget.addEventListener('slotchange', this.handleSlotChange);
92
107
  }
93
108
  hostDisconnected() {
94
109
  if (!this.host)
95
110
  return;
96
- this.host.shadowRoot.removeEventListener('slotchange', this.handleSlotChange);
111
+ const listenTarget = this.host.shadowRoot ?? this.host;
112
+ listenTarget.removeEventListener('slotchange', this.handleSlotChange);
97
113
  }
98
114
  handleSlotChange = (event) => {
99
115
  const slot = event.target;
@@ -89,7 +89,7 @@ export class NanoBreadcrumb {
89
89
  "references": {
90
90
  "Breadcrumb": {
91
91
  "location": "local",
92
- "path": "/builds/z1_PBzhd/0/Digital/nano-components/packages/components/src/components/breadcrumb/breadcrumb.tsx",
92
+ "path": "/builds/_6Vabn6i/0/Digital/nano-components/packages/components/src/components/breadcrumb/breadcrumb.tsx",
93
93
  "id": "src/components/breadcrumb/breadcrumb.tsx::Breadcrumb"
94
94
  }
95
95
  }
@@ -47,21 +47,17 @@
47
47
  *
48
48
  * @prop --color: Text color of the input
49
49
  *
50
- * @prop --margin-top: Top margin of the input group
51
- * @prop --margin-end: Right margin if direction is left-to-right, and left margin if direction is right-to-left of the input group
52
- * @prop --margin-bottom: Bottom margin of the input group
53
- * @prop --margin-start: Left margin if direction is left-to-right, and right margin if direction is right-to-left of the input group
54
- *
55
- * @prop --padding-top: Top padding of the input group
56
- * @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the input group
57
- * @prop --padding-bottom: Bottom padding of the input group
58
- * @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the input group
50
+ * @prop --icon-size: Size of the validity icon
59
51
  *
60
52
  * @prop --min-width: Minimum width of input boxes
61
53
  * @prop --height: Height of input boxes
62
54
  * @prop --width: Width of input boxes
63
55
  * @prop --gap: Gap between input boxes
64
- *
56
+
57
+ * @prop --inline-padding: Horizontal padding surrounding the input boxes
58
+
59
+ * @prop --spacing: Spacing between input boxes and description
60
+
65
61
  * @prop --separator-color: Color of the separator between boxes
66
62
  * @prop --separator-width: Width of the separator between boxes
67
63
  * @prop --separator-height: Height of the separator between boxes
@@ -70,19 +66,14 @@
70
66
  * @prop --highlight-color-valid: The color of the highlight on the input when valid
71
67
  * @prop --highlight-color-invalid: The color of the highlight on the input when invalid
72
68
  */
73
- --margin-top: 0;
74
- --margin-end: 0;
75
- --margin-bottom: 0;
76
- --margin-start: 0;
77
- --padding-top: var(--nano-spacing-md);
78
- --padding-end: 0;
79
- --padding-bottom: var(--nano-spacing-xl);
80
- --padding-start: 0;
81
69
  --color: initial;
82
70
  --min-width: 40px;
83
71
  --width: 40px;
84
72
  --height: 50px;
85
73
  --gap: 8px;
74
+ --icon-size: var(--nano-pictogram-size-small);
75
+ --inline-padding: calc(var(--icon-size) + var(--gap));
76
+ --spacing: var(--nano-spacing-xl);
86
77
  --separator-width: 7px;
87
78
  --separator-height: 1px;
88
79
  --separator-border-radius: 0;
@@ -94,11 +85,17 @@
94
85
  --border-width: 1px;
95
86
  display: block;
96
87
  position: relative;
88
+ margin-inline: var(--inline-padding);
89
+ }
90
+
91
+ .input-otp-container {
92
+ position: relative;
93
+ inline-size: fit-content;
94
+ block-size: fit-content;
95
+ margin: 0 auto;
97
96
  }
98
97
 
99
98
  .input-otp-group {
100
- margin: var(--margin-top) var(--margin-end) var(--margin-bottom) var(--margin-start);
101
- padding: var(--padding-top) var(--padding-end) var(--padding-bottom) var(--padding-start);
102
99
  display: flex;
103
100
  align-items: center;
104
101
  justify-content: center;
@@ -133,7 +130,7 @@
133
130
  line-height: var(--nano-line-height-normal);
134
131
  text-align: center;
135
132
  position: relative;
136
- inset-inline-start: -24px;
133
+ margin-inline-start: var(--spacing);
137
134
  }
138
135
 
139
136
  .input-otp-description-hidden {
@@ -171,8 +168,12 @@
171
168
  }
172
169
 
173
170
  .input-otp-icon {
174
- inline-size: 24px;
175
- block-size: 24px;
171
+ position: absolute;
172
+ inset-block-start: 50%;
173
+ transform: translateY(-43%);
174
+ inset-inline-end: calc((var(--gap) + var(--icon-size)) * -1);
175
+ inline-size: var(--icon-size);
176
+ block-size: var(--icon-size);
176
177
  display: flex;
177
178
  align-items: center;
178
179
  }
@@ -2,6 +2,7 @@
2
2
  * Custom elements for Nanopore-Digital Web applications
3
3
  */
4
4
  import { Fragment, Host, h, } from "@stencil/core";
5
+ import { HasSlotController } from "../../utils/slot";
5
6
  /**
6
7
  * A component for entering one-time passwords (OTP) with multiple input fields.
7
8
  *
@@ -10,10 +11,13 @@ import { Fragment, Host, h, } from "@stencil/core";
10
11
  *
11
12
  * @slot - The default slot for the input description.
12
13
  * @slot validity-icon - A slot for a custom validity icon. If not provided, a default icon will be used.
14
+ *
15
+ * @part validity-icon - The validity icon.
13
16
  */
14
17
  export class InputOTP {
15
18
  inputRefs = [];
16
19
  inputId = `nano-input-otp-${inputIds++}`;
20
+ slotCtrl = new HasSlotController(this, '[default]');
17
21
  /**
18
22
  * Stores the initial value of the input when it receives focus.
19
23
  * Used to determine if the value changed during the focus session
@@ -675,26 +679,21 @@ export class InputOTP {
675
679
  inputValues.some((v) => v !== '' && !this.validKeyPattern.test(v));
676
680
  }
677
681
  render() {
678
- const { disabled, el, hasFocus, inputId, inputRefs, inputValues, length, readonly, invalid, valid, } = this;
682
+ const { disabled, hasFocus, inputId, inputRefs, inputValues, length, readonly, invalid, valid, } = this;
679
683
  const inputmode = this.getInputmode();
680
684
  const tabbableIndex = this.getTabbableIndex();
681
685
  const pattern = this.getPattern();
682
- const hasDescription = el.querySelector('.input-otp-description')?.textContent?.trim() !== '';
683
- return (h(Host, { key: 'f397a0775d2d961ccc9013206fae72a8d0ad90ae', class: {
686
+ return (h(Host, { key: 'fb427bd3cb9bda29ec05c851e23a522c6966f4c0', class: {
684
687
  'has-focus': hasFocus,
685
688
  'input-otp-disabled': disabled,
686
689
  'input-otp-readonly': readonly,
687
690
  'nano-invalid': invalid,
688
691
  'nano-valid': valid,
689
- } }, h("div", { key: 'add5fe905af87f4c9b87d29c66134ede52ff2b6b', role: "group", "aria-label": "One-time password input", class: "input-otp-group" }, Array.from({ length }).map((_, index) => (h(Fragment, null, h("div", { class: "native-wrapper" }, h("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && h("div", { class: "input-otp-separator" })))), this.showValidity && (h("div", { key: '71d38d8f343be559d187f1c5710a64733cf7ceaa', class: {
692
+ } }, h("div", { key: '7b5067c8e3f91b71d9110c26e7ec6a91c560de8c', class: "input-otp-container" }, h("div", { key: 'a2420e14e2392429eca041ed0ce70e2b387d4922', class: "input-otp-group", role: "group", "aria-label": "One-time password input" }, Array.from({ length }).map((_, index) => (h(Fragment, null, h("div", { class: "native-wrapper" }, h("input", { class: "native-input", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && (h("div", { class: "input-otp-separator" })))))), this.showValidity && (h("div", { key: '345be96b0c208d367804822eef00fbfdee3ecbfe', class: {
690
693
  'input-otp-icon': true,
691
694
  'input-otp-icon--valid': valid,
692
695
  'input-otp-icon--invalid': invalid,
693
- } }, h("slot", { key: '14529ecc57a6268932bc1485f0a425bb6cb45c51', name: "validity-icon" }, h("nano-icon", { key: '65669a6b4ca76011b721e76fb68b7f9bfeb87092', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), h("div", { key: '3e677ab8517765759a0cc4a0aa6f0fec58767c90', class: {
694
- 'input-otp-description': true,
695
- 'input-otp-description-hidden': !hasDescription,
696
- 'input-otp-description-inset': this.showValidity,
697
- } }, h("slot", { key: 'e875d5c5d7ed8f804b9866618b7ed5e5211dd7b1' }))));
696
+ }, part: "validity-icon" }, h("slot", { key: '7d4a86988e4097f3422aaa2f0ee5df4518da1d41', name: "validity-icon" }, h("nano-icon", { key: '6b81e7a0430e36c0381b7787558509f525f7eed5', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (h("div", { key: '6d97b65cc7fad0f1828608887773081312f3bf92', class: "input-otp-description" }, h("slot", { key: '459b7f12a59fec36ff465126c79083f14dce4a8a' })))));
698
697
  }
699
698
  static get is() { return "nano-input-otp"; }
700
699
  static get encapsulation() { return "scoped"; }
@@ -143,7 +143,7 @@ export class IntersectionObserve {
143
143
  this.removeIO();
144
144
  }
145
145
  render() {
146
- return (h(Host, { key: 'c837369d760b533f7bbed5ade5994206923e6ffa', class: "nano-intersection-observe" }, h("slot", { key: 'c12806aaf721afbd10a14a3f6c23bd08217128b6', ref: (slot) => (this.defaultSlot = slot), onSlotchange: this.handleSlotChange })));
146
+ return (h(Host, { key: '6ed0913499a9caede509c0394a2be337ddbcfc7c', class: "nano-intersection-observe" }, h("slot", { key: 'a55eeb8c1527dd62aba761b60b6a0764cbd5bfa4', ref: (slot) => (this.defaultSlot = slot), onSlotchange: this.handleSlotChange })));
147
147
  }
148
148
  static get is() { return "nano-intersection-observe"; }
149
149
  static get encapsulation() { return "shadow"; }
@@ -327,7 +327,7 @@ export class MaskedOverflow {
327
327
  }
328
328
  }
329
329
  render() {
330
- return (h(Host, { key: 'cace0ef58ad901ea08d057420906d95ffa2600dd', dir: this.isRtl ? 'rtl' : null, class: "nano-masked-overflow", "has-scroll-controls": this.hasScrollControls }, h("div", { key: '6133235c4eb2be34c93cb681cd612ae7d227e8eb', part: "base", class: {
330
+ return (h(Host, { key: 'f09154c9daef9d42d1ac6bf1ae1cab43b25fc759', dir: this.isRtl ? 'rtl' : null, class: "nano-masked-overflow", "has-scroll-controls": this.hasScrollControls }, h("div", { key: 'c08a301b623b69a8a8936e846fb4d61c3d7a5d42', part: "base", class: {
331
331
  onav: true,
332
332
  [`onav--${this.orientation}`]: true,
333
333
  'onav--has-scroll-controls': this.hasScrollControls,
@@ -336,12 +336,12 @@ export class MaskedOverflow {
336
336
  'onav--no-transitions': this.instantReCalc,
337
337
  'onnav--has-indicator': this.showIndicator,
338
338
  'onnav--hide-scrollbars': this.hideScrollbars && this.hideScrollbars !== 'false',
339
- }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { key: '56f5264594f6963dddbdbad7ecd6c25ae4c0732a', class: "onav__nav" }, this.scrollControls && (h("nano-icon-button", { key: 'be07616305b1753d843f346420149055b59f8023', part: "scroll-button scroll-button-prev", class: {
339
+ }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { key: '4430bfab6920f77fe64885eb12c7a1f2ebfdbf31', class: "onav__nav" }, this.scrollControls && (h("nano-icon-button", { key: '800ac8de65485ebaa4060c26a7f0b3432348c8d1', part: "scroll-button scroll-button-prev", class: {
340
340
  'onav__scroll-button': true,
341
341
  'onav__scroll-button--start': true,
342
342
  }, ref: (btn) => (this.startBtn = btn), onClick: () => this.handleBtnClick(false), label: "Click to scroll", iconName: this.orientation === 'horizontal'
343
343
  ? 'light/chevron-left'
344
- : 'light/chevron-up' })), h("div", { key: '33c5125be511e2ed550ea4a4130ada309d6d4884', part: "scroller", ref: (el) => (this.nav = el), class: "onav__scroller", onScroll: this.handleScroll, tabindex: this.hasScrollControls ? 0 : undefined, role: "region", "aria-label": this.label || undefined }, h("div", { key: 'c7e3fa9f1272bcd57694aa7dd433f2da1ca4d4cb', part: "items", ref: (el) => (this.itemContainer = el), class: "onav__items" }, this.showIndicator && (h("div", { key: '5029cad9fb763501e8e670f3347e55e7eafbcb87', part: "indicator", ref: (el) => (this.activeIndicator = el), class: "onav__active-indicator" })), h("slot", { key: '1438ac0d40a0ec2952cf9b66bc2f854d5b96c690', onSlotchange: this.slotChangeHandler }))), this.scrollControls && (h("nano-icon-button", { key: '05dea3796c9d9e758c229f76fcb4dde2bd90fa65', part: "scroll-button scroll-button-next", class: {
344
+ : 'light/chevron-up' })), h("div", { key: '48fff7814d1c8a864ca9f29c0b4bc2196c7b4a98', part: "scroller", ref: (el) => (this.nav = el), class: "onav__scroller", onScroll: this.handleScroll, tabindex: this.hasScrollControls ? 0 : undefined, role: "region", "aria-label": this.label || undefined }, h("div", { key: '376a6e0007b1e9e35d3226e6575d0ca840b1f75a', part: "items", ref: (el) => (this.itemContainer = el), class: "onav__items" }, this.showIndicator && (h("div", { key: 'c0b933b6b29071de0f5b3d3b97497de231b45801', part: "indicator", ref: (el) => (this.activeIndicator = el), class: "onav__active-indicator" })), h("slot", { key: '2bff315c99ce804c26240ef5e134c1f08fed0547', onSlotchange: this.slotChangeHandler }))), this.scrollControls && (h("nano-icon-button", { key: 'd568e4adaf25dbf10127e433220fa6900298e31f', part: "scroll-button scroll-button-next", class: {
345
345
  'onav__scroll-button': true,
346
346
  'onav__scroll-button--end': true,
347
347
  }, ref: (btn) => (this.endBtn = btn), onClick: () => this.handleBtnClick(true), label: "Click to scroll", iconName: this.orientation === 'horizontal'
@@ -147,14 +147,14 @@ export class MenuDrawer {
147
147
  }
148
148
  }
149
149
  render() {
150
- return (h(Host, { key: '48267091ca0646f3a1717e2dc3ab21ab3d4b9b28', class: {
150
+ return (h(Host, { key: 'bed821db8e5a30f26c3c9bad45b01321bdf4ca77', class: {
151
151
  open: this.open,
152
152
  'secondary-open': this.secondaryOpen,
153
153
  hide: this.hide,
154
154
  loading: this.isLoading,
155
155
  'has-global-nav': !!this.globalNav,
156
156
  'nano-menu-drawer': true,
157
- }, dir: this.el.ownerDocument.dir === 'rtl' ? 'rtl' : null }, h("div", { key: 'f73a9c15c9760493b38ac5b199f2d374eb99ffd0', ref: (div) => (this.containerDiv = div), class: "container" }, h("div", { key: 'a2a254a08025a5d4f33ecd10fb25ee2bedddc657', class: `content-wrap ${this.secondaryOpen ? 'secondary-open' : ''}` }, h("nav", { key: '4c93989684795be81b332aa12638424493eda51f', ref: (div) => (this.contentDiv = div), class: "content" }, h("div", { key: 'fb7fdba72b7e211dd99020b9a78dde35c11f0c7e', class: "head" }, h("button", { key: '1829973a4d5bb9c4053bd5a5b8d7d24befc02599', onClick: this.toggle, class: "collapse-btn" }, h("nano-icon", { key: '614bca81c5086ed499a62d38540f6c107f5c779e', name: "light/arrow-right-to-line" }), h("span", { key: 'da6cbb5a0c0f0a908afac83b01322bc5bfede0b5', class: "visually-hidden" }, "collapse / expand menu"))), h("slot", { key: 'd3ddb04ad19784a71575ff50c2cbd4410b70dcb6' }), this.slotCtrl.has('foot') && (h("div", { key: '5282ecb332f91aaedf7996f1a86165656187f12a', class: "foot" }, h("slot", { key: 'c0c227384d0ec749a03c1fdfe5764923f08c2405', name: "foot" }))))))));
157
+ }, dir: this.el.ownerDocument.dir === 'rtl' ? 'rtl' : null }, h("div", { key: 'e80fe18a73873359fc1d86ca93a06b8c6d3173c1', ref: (div) => (this.containerDiv = div), class: "container" }, h("div", { key: 'fe83b1858bacd94f3e0540ee3933d1018f7bfb9d', class: `content-wrap ${this.secondaryOpen ? 'secondary-open' : ''}` }, h("nav", { key: 'bed3b6c253cf16f8a796393be71c2c1b9aebd266', ref: (div) => (this.contentDiv = div), class: "content" }, h("div", { key: 'a8ea363c51345c83fcbf8723a32627bd99c5a9cf', class: "head" }, h("button", { key: 'fa9765354704685582e64771ded73c30c88e0374', onClick: this.toggle, class: "collapse-btn" }, h("nano-icon", { key: '0489c46c0c76a72720daf6656e26c2946433bccc', name: "light/arrow-right-to-line" }), h("span", { key: '81b00aaf09a528d6137351df20e23149a5325bf0', class: "visually-hidden" }, "collapse / expand menu"))), h("slot", { key: 'ab5f6ed3b81b2d5f741a1d102a12db5b0f68bae7' }), this.slotCtrl.has('foot') && (h("div", { key: 'dbb8345173ee78b9685cc46c6dcde5c2d617a868', class: "foot" }, h("slot", { key: '93bfeb1493a1d5e9a420803a09e64dced877591b', name: "foot" }))))))));
158
158
  }
159
159
  static get is() { return "nano-menu-drawer"; }
160
160
  static get encapsulation() { return "shadow"; }
@@ -65,8 +65,8 @@ export class Rating {
65
65
  this.handleShowHideElements();
66
66
  }
67
67
  render() {
68
- return (h(Host, { key: '85aea064a37e2a66a31e8bab208eba423aa32a4e', class: "nano-more-less" }, h("slot", { key: 'c7288c755fa9cb24abb335158fe9ae1e116a012e', onSlotchange: () => this.handleShowHideElements() }), this.children?.length > this.maxToShow && [
69
- h("div", { key: 'ff18caab62f14cdff9cc5953cda9d4980e6e4b6a', style: { display: this.show ? 'none' : 'contents' }, class: "button-wrapper", part: "button-wrapper button-wrapper--less", onClick: (e) => this.handleClick(e) }, h("slot", { key: '8a7a856af8fca1221c308c2a0982e09b9c9da74f', name: "less" }, h("button", { key: '33578129514a86169e642f32fb9a66d257412719', part: "button button--less" }, "Show more (+", this.children.length - this.maxToShow, ")"))),
68
+ return (h(Host, { key: 'b129148afdc959f912a16d1e2642c3e920a0a381', class: "nano-more-less" }, h("slot", { key: '92aa96b6301d14f7b4d9aee9cc4cafbf0ff75431', onSlotchange: () => this.handleShowHideElements() }), this.children?.length > this.maxToShow && [
69
+ h("div", { key: '73a5c457e8243cd8cf8e8ec1e681aa2c62244936', style: { display: this.show ? 'none' : 'contents' }, class: "button-wrapper", part: "button-wrapper button-wrapper--less", onClick: (e) => this.handleClick(e) }, h("slot", { key: '48802275120ff78676a19b25f792806dd03db2c1', name: "less" }, h("button", { key: '703d054e4560cf22d571a29838dfbd649062f7ca', part: "button button--less" }, "Show more (+", this.children.length - this.maxToShow, ")"))),
70
70
  !this.noHideBtn ? (h("div", { style: { display: this.show ? 'contents' : 'none' }, class: "button-wrapper", part: "button-wrapper button-wrapper--more", onClick: (e) => this.handleClick(e) }, h("slot", { name: "more" }, h("button", { part: "button button--more" }, "Show less (-", this.children.length - this.maxToShow, ")")))) : (''),
71
71
  ]));
72
72
  }
@@ -192,20 +192,20 @@ export class Rating {
192
192
  else {
193
193
  displayValue = this.isHovering ? this.hoverValue : this.value;
194
194
  }
195
- return (h(Host, { key: 'b28d1a7ff7743338ff5ae18c386e49ee20f8df8e', class: "nano-rating" }, h("label", { key: '6fda8cf5da0b9ed38776ec3a9b93ec4fc02598b0', class: `rating-label${this.hideLabel ? ' visually-hidden' : ''}`, part: "label", htmlFor: this.name }, h("slot", { key: 'e92e2482a6aefd90bd27b5831ec75f0fb12fcd8b', name: "label" }, this.label)), h("input", { key: 'ef40cee201942dc8f0851f2ee4d785d3b1d27936', class: "range-input visually-hidden", name: this.name, id: this.name, disabled: this.disabled || this.readonly, required: this.required, value: this.value, onFocus: () => {
195
+ return (h(Host, { key: '3011ba88cafed0ec3c79d823a3abac433f68b5d1', class: "nano-rating" }, h("label", { key: 'ea6a01bc5a7f8e7fecbb16a905c472b5e1c62328', class: `rating-label${this.hideLabel ? ' visually-hidden' : ''}`, part: "label", htmlFor: this.name }, h("slot", { key: '22e31eeaed0aca337a71c1bbb39c238413f1c00c', name: "label" }, this.label)), h("input", { key: '265bd0055cbd05911611e0a5e45828d4dab7ac8c', class: "range-input visually-hidden", name: this.name, id: this.name, disabled: this.disabled || this.readonly, required: this.required, value: this.value, onFocus: () => {
196
196
  this.setFocus();
197
- } }), h("div", { key: '46c610322bc3b802d822cd22bfdcf3ad32f7e4d2', class: "rating-wrap" }, h("div", { key: 'fd509ff1f80a8172c00f2b320e6f5dbfd1252676', dir: this.isRtl ? 'rtl' : null, ref: (el) => (this.rating = el), part: "base", class: {
197
+ } }), h("div", { key: '4c0af619c68c230a5994871efdf5608870fb83e0', class: "rating-wrap" }, h("div", { key: 'e6f94c258bc04b6a4a6aad66c9364c1c811f859a', dir: this.isRtl ? 'rtl' : null, ref: (el) => (this.rating = el), part: "base", class: {
198
198
  rating: true,
199
199
  'rating--readonly': this.readonly,
200
200
  'rating--disabled': this.disabled,
201
- }, "aria-disabled": this.disabled ? 'true' : 'false', "aria-readonly": this.readonly ? 'true' : 'false', "aria-valuenow": this.value, "aria-valuemin": 0, "aria-valuemax": this.max, tabIndex: this.disabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onMouseMove: this.handleMouseMove, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: 'd03101004803060722fd234f3500a5f7ac6e0603', class: "rating__symbols rating__symbols--inactive" }, counter.map((index) => (h("span", { class: {
201
+ }, "aria-disabled": this.disabled ? 'true' : 'false', "aria-readonly": this.readonly ? 'true' : 'false', "aria-valuenow": this.value, "aria-valuemin": 0, "aria-valuemax": this.max, tabIndex: this.disabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onMouseMove: this.handleMouseMove, onFocus: this.handleFocus, onBlur: this.handleBlur }, h("span", { key: 'd514ae0f85be4d59ab6a2ae4496357c5d6601ba9', class: "rating__symbols rating__symbols--inactive" }, counter.map((index) => (h("span", { class: {
202
202
  rating__symbol: true,
203
203
  'rating__symbol--hover': this.isHovering && Math.ceil(displayValue) === index + 1,
204
204
  },
205
205
  // Users can click the current value to clear the rating. When this happens, we set this.isHovering to
206
206
  // false to prevent the hover state from confusing them as they move the mouse out of the control. This
207
207
  // extra mouseenter will reinstate it if they happen to mouse over an adjacent symbol.
208
- onMouseEnter: this.handleMouseEnter, innerHTML: this.symbol(index + 1) })))), h("span", { key: '2e5b35988ef0b699c515fd86a5ab14b3a98f9215', ref: (span) => (this.indicator = span), class: "rating__symbols rating__symbols--indicator", style: {
208
+ onMouseEnter: this.handleMouseEnter, innerHTML: this.symbol(index + 1) })))), h("span", { key: '0caf2f0561d3b74e6891e6c2a4b970fef53298f3', ref: (span) => (this.indicator = span), class: "rating__symbols rating__symbols--indicator", style: {
209
209
  clip: this.clip(displayValue),
210
210
  } }, counter.map((index) => (h("span", { class: {
211
211
  rating__symbol: true,
@@ -230,13 +230,13 @@ export class ResizeObserve {
230
230
  }
231
231
  }
232
232
  render() {
233
- return (h(Host, { key: '5db8e84066e7fd3d903f19e2256844331580947a', class: {
233
+ return (h(Host, { key: 'a2c57218f65a9af2297e6662c29d3a7c853092df', class: {
234
234
  'nano-resize-observe': true,
235
235
  'content-fit-x': this.contentFitX,
236
236
  'content-fit-y': this.contentFitY,
237
237
  'content-nofit-x': this.contentFitX === false,
238
238
  'content-nofit-y': this.contentFitY === false,
239
- } }, h("slot", { key: 'ee5842c110b25f82eacbb4ba618d33dad345e732' }), !!this.notifyContentFit &&
239
+ } }, h("slot", { key: 'cf0faa31f7c1daa08238555a46699c1b731e13b8' }), !!this.notifyContentFit &&
240
240
  (this.contentFitX !== null || this.contentFitY !== null) && [
241
241
  this.contentFitX ? (h("slot", { name: "content-fit-x" })) : (h("slot", { name: "content-nofit-x" })),
242
242
  this.contentFitY ? (h("slot", { name: "content-fit-y" })) : (h("slot", { name: "content-nofit-y" })),
@@ -705,30 +705,30 @@ export class Select {
705
705
  disabled,
706
706
  clearControl: this.clearable,
707
707
  }))(this);
708
- return (h(Host, { key: 'fff4c3c510b9c343af91cd44cd31a437bbd15a78', type: this.multiple ? 'select-multiple' : 'select-one', "aria-disabled": this.disabled ? 'true' : null, class: {
708
+ return (h(Host, { key: 'a2c56f43fef750f8e336a1612644761293b19bd4', type: this.multiple ? 'select-multiple' : 'select-one', "aria-disabled": this.disabled ? 'true' : null, class: {
709
709
  'has-value': !!this.value.length || !!this.inputSearchVal.length,
710
710
  'has-focus': this.hasFocus,
711
711
  'is-invalid': this._invalid === true,
712
712
  'is-valid': this._invalid === false,
713
713
  'nano-select': true,
714
- } }, h(FormControlWrap, { key: '57e3eca97027e9195328c5da6e10c46000ffe67e', ...wrapOptions, class: {
714
+ } }, h(FormControlWrap, { key: '632d901cdff60d36ae1a410f6c252c671eac8e63', ...wrapOptions, class: {
715
715
  'has-error': !!this.errorMessage &&
716
716
  this.showInlineError &&
717
717
  this._invalid === true,
718
718
  'has-helper': this.hasHelperSlot,
719
719
  'is-open': this.hasOpened,
720
720
  masked: this.mask,
721
- } }, h(FormControl, { key: 'be1a38b3b662d7cd40ce738ef9185d18dae22318', ...controlOptions, ref: (el) => (this.selectWrap = el), onClearText: this.clearSelectValue, control: this.el, endValueSlot: h("slot", { name: "down-arrow" }, h("nano-icon", { class: "select__down-arrow", name: "light/chevron-down" })), showInlineError: this.showInlineError }, this.multiple && (h("div", { key: '89b7b5b75ef67513c228f230c11122333448408f', class: "select__multi-wrap select" }, this.multipleValues(labelId, moreId, helperEndId))), !this.multiple && [
722
- this.mask && (h("div", { key: 'efd35e47435a363be382ceae43d4348479cd50b5', class: "select__mask" }, this.getLabel(this.value))),
723
- h("input", { key: '236a63937ee3c981bbc2e4d77d72516f4d614326', ref: (input) => (this.inputCtrl = input), id: this.selectId, class: "select__native-input", "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, form: this.form, placeholder: this.placeholder, readonly: true, required: this.required, value: this.getLabel(this.value), onFocus: this.onFocus }),
724
- ])), !this.readonly && !this.disabled && (h("nano-datalist", { key: 'c0e2707266e76ed2714cbd91727c828e4e0e9861', ref: (el) => (this.datalist = el), selected: this.valArray, type: this.multiple ? 'selectMulti' : 'select', options: this._options.length ? this._options : undefined, onNanoDeselect: (e) => {
721
+ } }, h(FormControl, { key: '387a55518ed1c74ea944008c750a0ca42a6bbbe8', ...controlOptions, ref: (el) => (this.selectWrap = el), onClearText: this.clearSelectValue, control: this.el, endValueSlot: h("slot", { name: "down-arrow" }, h("nano-icon", { class: "select__down-arrow", name: "light/chevron-down" })), showInlineError: this.showInlineError }, this.multiple && (h("div", { key: '660b70b098520471d4f7653af5cc50388625cd1c', class: "select__multi-wrap select" }, this.multipleValues(labelId, moreId, helperEndId))), !this.multiple && [
722
+ this.mask && (h("div", { key: '44f53317d26f2f8b85b5c8b397ccfd68a26eebb5', class: "select__mask" }, this.getLabel(this.value))),
723
+ h("input", { key: '04f3935c7f759e3767f32faecb9e6ef81a36c777', ref: (input) => (this.inputCtrl = input), id: this.selectId, class: "select__native-input", "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, form: this.form, placeholder: this.placeholder, readonly: true, required: this.required, value: this.getLabel(this.value), onFocus: this.onFocus }),
724
+ ])), !this.readonly && !this.disabled && (h("nano-datalist", { key: 'aae86b85c3bd2c2c562468f2a33e52c7036ad69b', ref: (el) => (this.datalist = el), selected: this.valArray, type: this.multiple ? 'selectMulti' : 'select', options: this._options.length ? this._options : undefined, onNanoDeselect: (e) => {
725
725
  e.preventDefault();
726
726
  this.removeValue(e.detail.value);
727
727
  }, onNanoOptionsUpdated: this.setOptions, onNanoSelect: this.setValue,
728
728
  // @ts-expect-error - this bubbles from the nano-dropdown
729
729
  onNanoShow: () => (this.hasOpened = true), onNanoHide: () => (this.hasOpened = false) }, this.allowCustomValues &&
730
730
  this.multiple &&
731
- !!this.inputSearchVal && (h("nano-option", { key: 'bfc7c0f31d962d89369ff173236bebbca134885d', slot: "list-top", value: this.inputSearchVal, selected: false, label: this.inputSearchVal, onNanoSelect: () => this.inputCtrl.focus() }, h("span", { key: '2f2f299440d4aca0c718308ad819873cf5f71163', slot: "check-icon" }), "Add '", this.inputSearchVal, "'")), h("slot", { key: '5c41abf1e6e6c7b897538beb6b4509ae5f845ce6' }))), h("select", { key: '3443483daf9d524e98cb3614f67a630b349b033f', id: this.selectId + '-hidden', class: "select__native-ctrl", ref: (select) => (this.nativeSelect = select), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, form: this.form, multiple: this.multiple, name: this.name, required: this.required, onInvalid: this.handleInvalid }, this.allowCustomValues &&
731
+ !!this.inputSearchVal && (h("nano-option", { key: 'cf744eb6bbad3ce2d8d05354d5edaf3eab07a207', slot: "list-top", value: this.inputSearchVal, selected: false, label: this.inputSearchVal, onNanoSelect: () => this.inputCtrl.focus() }, h("span", { key: '990e00208c403d92d1586fb0b2c4618768f5fda5', slot: "check-icon" }), "Add '", this.inputSearchVal, "'")), h("slot", { key: '54fce41f95c01e0b2ff1619209ebb15a28383677' }))), h("select", { key: '1c5ff40ac84be25c6b7075ef031b29f2b6f9b007', id: this.selectId + '-hidden', class: "select__native-ctrl", ref: (select) => (this.nativeSelect = select), "aria-labelledby": labelId + ' ' + moreId + ' ' + helperEndId, disabled: this.disabled, form: this.form, multiple: this.multiple, name: this.name, required: this.required, onInvalid: this.handleInvalid }, this.allowCustomValues &&
732
732
  this.valArray.map((val) => {
733
733
  return (h("option", { value: val, selected: true }, val));
734
734
  }), !this.allowCustomValues &&
@@ -38,7 +38,7 @@ export class Slide {
38
38
  });
39
39
  }
40
40
  render() {
41
- return (h(Host, { key: '599510bff6daf72dca9b1de41767aea575eae98a', class: "nano-slide" }, h("slot", { key: '911f54eb0ad7ee91d7ea358f2e581d55793416ee' })));
41
+ return (h(Host, { key: '3de94ff45cb6dddcca7f0097f3376361c2666f7e', class: "nano-slide" }, h("slot", { key: '9998d9102bdc69eecd28752b4a2c130497b34d06' })));
42
42
  }
43
43
  static get is() { return "nano-slide"; }
44
44
  static get encapsulation() { return "shadow"; }
@@ -502,15 +502,15 @@ export class Slides {
502
502
  this.destroyflickity();
503
503
  }
504
504
  render() {
505
- return (h(Host, { key: 'e259a3a5de2c5dc025ab6dc61c3a41e1f812f077', class: "nano-slides" }, h("div", { key: '74abbe2dd44755ae5e5c5c766e6833c74c152aa8', class: {
505
+ return (h(Host, { key: '3a10721073af3ef6658047ba47aef766698df2c1', class: "nano-slides" }, h("div", { key: '2603091b764a61836422c2b1edacfa99f2275533', class: {
506
506
  slideshow: true,
507
507
  ready: this.ready,
508
508
  'not-ready': !this.ready,
509
- }, part: "base" }, h("div", { key: '1a0a00d3ad6651a06fe46f1beff537f9cd483fc7', ref: (div) => (this.flickityEl = div), class: {
509
+ }, part: "base" }, h("div", { key: 'a7c997143a864dd9d458deed4ea8034701c4e270', ref: (div) => (this.flickityEl = div), class: {
510
510
  'flickity-container': true,
511
511
  'slides-ready': this.slidesReady,
512
512
  'slides-not-ready': !this.slidesReady,
513
- }, part: "slide-container" }, h("slot", { key: '7a0edeee40901099cc455337acad6e798041f4f1' })), h("div", { key: 'bef46a7658a4ff89d02a2feb6dbcdd64d8e965f2', class: "ui-extras" }, h("slot", { key: '2f0603645945a8e77de9252036363e770e8e424d', name: "ui" })))));
513
+ }, part: "slide-container" }, h("slot", { key: '366fbe336c1f7a77781327d4b887da201a59c732' })), h("div", { key: 'e2d9004f2e5e4e95d98275f80d63073d7ea2518b', class: "ui-extras" }, h("slot", { key: '0e88f115692ab91d33040f4ee03422f99ac10771', name: "ui" })))));
514
514
  }
515
515
  static get is() { return "nano-slides"; }
516
516
  static get encapsulation() { return "shadow"; }
@@ -732,7 +732,7 @@ export class Sortable {
732
732
  }
733
733
  }
734
734
  render() {
735
- return (h(Host, { key: 'db8dbc8b62755164c30650a9485205f8ea2c6107', class: "nano-sortable" }, h("div", { key: '0c4646d0cf095e9970787ae4a5101765f0f5fe4f', class: "sortable__live-region", "aria-live": "polite", "aria-relevant": "additions", "aria-atomic": "true", role: "log", part: "announcements" }, this.ariaTextList.map((str) => (h("div", null, str)))), h("slot", { key: '41e538783cb246a7ada58353374228a833b4fc4a' })));
735
+ return (h(Host, { key: '290c407551a2742f1aea13b69bf6e76783ac04cf', class: "nano-sortable" }, h("div", { key: '85d9c75f73d2c010bf8a8944855ef4b9af8ca24e', class: "sortable__live-region", "aria-live": "polite", "aria-relevant": "additions", "aria-atomic": "true", role: "log", part: "announcements" }, this.ariaTextList.map((str) => (h("div", null, str)))), h("slot", { key: '9c7984602c800c36731218593811876aac6ed948' })));
736
736
  }
737
737
  static get is() { return "nano-sortable"; }
738
738
  static get encapsulation() { return "shadow"; }
@@ -83,7 +83,7 @@ export class NanoStepAccordion {
83
83
  }
84
84
  }
85
85
  render() {
86
- return (h("nano-accordion", { key: '1edc585b390f5dd6c1fe6edaf103e096b8d02d06', alwaysOpen: true, onNanoToggle: (event) => this.handleToggle(event) }, this.steps.map((step, index) => (h("nano-details", { open: index === this.activeStep, disabled: !step.enabled, class: {
86
+ return (h("nano-accordion", { key: '3676ae38e897988059d679e2f3b3291641a4a2b0', alwaysOpen: true, onNanoToggle: (event) => this.handleToggle(event) }, this.steps.map((step, index) => (h("nano-details", { open: index === this.activeStep, disabled: !step.enabled, class: {
87
87
  step: true,
88
88
  'step--active': index === this.activeStep,
89
89
  'step--complete': step.complete,
@@ -104,10 +104,10 @@ export class NanoStepBreadcrumb {
104
104
  };
105
105
  render() {
106
106
  const Wrapper = this.steps.filter((step) => step.href).length > 0 ? 'nav' : 'div';
107
- return (h(Host, { key: 'e54c227339a1e973cad1889abb1828cef81061a1' }, h(Wrapper, { key: '9a9ef044e63d1cebb713c0e9184ed58ed7865a32', class: "step-wrapper" }, h("ul", { key: 'cf3ef2fa474ae023be0059434fc03f1bfeade40c', class: `step-list desktop ${this.cacheKey}` }, this.steps.map((step, index) => (h("li", { class: "step-item-wrapper", key: index }, h(this.ControlTag, { step: step, index: index }))))), h("div", { key: '18a9e9e00597e8ef15df7134a29dabb5f51fad93', class: `step-list mobile ${this.cacheKey}` }, h("nano-dropdown", { key: '0e174964823bc2c6e1cc0bcd4e1d320bc3e74e11', dialogTitle: "Steps", class: "step-dropdown" }, h("button", { key: '75863494b5e948c53b91f15e083270ac142abe61', slot: "trigger", class: "step-trigger" }, h("div", { key: '093819821dc278086f12d5f8cb008649b43b3230', class: "step-progress-circle", role: "progressbar", "aria-valuenow": "2", "aria-valuemin": "0", "aria-valuemax": "5", style: {
107
+ return (h(Host, { key: 'c1b1866d4889830fa70d570df0bea118561df7bf' }, h(Wrapper, { key: '630fc450433bd177410e4e69730781cec88b0ea5', class: "step-wrapper" }, h("ul", { key: 'd8b35166bbb9b01df388387997f4b2a4dc612f55', class: `step-list desktop ${this.cacheKey}` }, this.steps.map((step, index) => (h("li", { class: "step-item-wrapper", key: index }, h(this.ControlTag, { step: step, index: index }))))), h("div", { key: 'aa8e3119c641c02f4ac960d4e415c7c327249c8e', class: `step-list mobile ${this.cacheKey}` }, h("nano-dropdown", { key: '61172362d21ec93527e431ab96d9f66075aa52dc', dialogTitle: "Steps", class: "step-dropdown" }, h("button", { key: '8edb7e0ddac43cff9b001ba504f003d6df64895f', slot: "trigger", class: "step-trigger" }, h("div", { key: 'a7ba7d9b0c6724ce19bd556cbfef2fdd9dc36f2b', class: "step-progress-circle", role: "progressbar", "aria-valuenow": "2", "aria-valuemin": "0", "aria-valuemax": "5", style: {
108
108
  '--value': '' + (this.activeStep + 1),
109
109
  '--max': '' + this.steps.length,
110
- } }, h("span", { key: 'da12da205c5e4942dc6b158ab4366a87b3d600c0', class: "step-progress-text" }, h("strong", { key: '15298a28fd78508485b54ed24df255087560e627' }, this.activeStep + 1), " of", ' ', this.steps.length)), h("div", { key: 'a67108bd294391381e5e9fa17e6132844eb510c4', class: "step-trigger-text" }, h("div", { key: '46906878f501008c8ceab76276d4f5b47469d9e3', class: "step-trigger-now" }, this.steps[this.activeStep | 0]?.title || 'Select a step'), h("div", { key: '898e4abb1800652352efe446e45c48d3673a656c', class: "step-trigger-next" }, this.steps[this.activeStep + 1]?.title || 'Next step')), h("nano-icon", { key: 'f972d82aaed693d49536862f45c268646dd8742b', class: "step-trigger-icon", name: "light/chevron-down" })), h("nano-menu", { key: '2b6555a0ef2743486e940d75cb3486110f88cad1' }, this.steps.map((step, index) => (h("nano-nav-item", { class: {
110
+ } }, h("span", { key: 'd84750e092190edd64cd3cecc7a36e2b8b400fbe', class: "step-progress-text" }, h("strong", { key: '6b2f3cd970a2e64299c0d9f85ee59cd93a041858' }, this.activeStep + 1), " of", ' ', this.steps.length)), h("div", { key: '53ebc1b869804b2bae5dc6e9a8cdb2e78027c0c2', class: "step-trigger-text" }, h("div", { key: 'b419abee3f2fa764f19f9f3910347dac89f7b278', class: "step-trigger-now" }, this.steps[this.activeStep | 0]?.title || 'Select a step'), h("div", { key: '6c307ffcd845df90950811e0e88e624ebec495a4', class: "step-trigger-next" }, this.steps[this.activeStep + 1]?.title || 'Next step')), h("nano-icon", { key: '1c012c4bf4e264a328dad23317f73451148176fc', class: "step-trigger-icon", name: "light/chevron-down" })), h("nano-menu", { key: 'ef2bac97f59de0f9b63837cb5c0d67958b32d3ce' }, this.steps.map((step, index) => (h("nano-nav-item", { class: {
111
111
  'step-item-mobile': true,
112
112
  'step-item-mobile step-item--active': index === this.activeStep,
113
113
  'step-item-mobile step-item--complete': step.complete,
@@ -603,12 +603,12 @@ export class Sticker {
603
603
  this.hasBootstrapped = false;
604
604
  }
605
605
  render() {
606
- return (h(Host, { key: '6626d945b580e7e23d940db522958250e89261ad', sticky: !this.isRootSticker && !this.stickToEle && this.isSticky, hide: this.hide && this.isStuck, siblings: this.stuckCounter, index: this.stickerIndex, stuck: this.isStuck && this.isSticky, "placed-bottom": this.positions.includes('bottom'), "placed-top": this.positions.includes('top'), "placed-end": this.positions.includes('end'), "placed-start": this.positions.includes('start'), class: "nano-sticker" }, h("div", { key: '1e4b7f859218a5ed2256f7f860dcffa4b1b8f5be', class: {
606
+ return (h(Host, { key: 'f339585bb8f9d509f374404a6462b482ee7f7001', sticky: !this.isRootSticker && !this.stickToEle && this.isSticky, hide: this.hide && this.isStuck, siblings: this.stuckCounter, index: this.stickerIndex, stuck: this.isStuck && this.isSticky, "placed-bottom": this.positions.includes('bottom'), "placed-top": this.positions.includes('top'), "placed-end": this.positions.includes('end'), "placed-start": this.positions.includes('start'), class: "nano-sticker" }, h("div", { key: 'a0825842c7fb6fd7ab7e15a6775547693e38c1cb', class: {
607
607
  sticker: true,
608
608
  sticky: this.isRootSticker && this.isSticky,
609
609
  stuck: this.isStuck && this.isRootSticker && this.isSticky,
610
610
  hide: this.isRootSticker && this.hide && this.isStuck,
611
- }, ref: (div) => (this.sticker = div) }, h("div", { key: '4f7cd61f38b78433296a9708ddbd702d97cf2435', class: "sticker-content", ref: (div) => (this.content = div) }, h("slot", { key: 'a88a8500ee1ea99324f9b1b7390675486035496c' })))));
611
+ }, ref: (div) => (this.sticker = div) }, h("div", { key: '3693b4a7c4daf5b5208b36a158b0d0b1f3ced9b0', class: "sticker-content", ref: (div) => (this.content = div) }, h("slot", { key: '526f2d5e88882133ec67866d90cdf18b95ce86cc' })))));
612
612
  }
613
613
  static get is() { return "nano-sticker"; }
614
614
  static get encapsulation() { return "shadow"; }
@@ -231,10 +231,10 @@ export class NanoTable {
231
231
  this.cleanUpObservers();
232
232
  }
233
233
  render() {
234
- return (h(Host, { key: '75c4089a6d670a16eea3fca8d079ac9a827c4cfa', class: {
234
+ return (h(Host, { key: 'e2ee468673f70252fc559a82e48b74f12273e416', class: {
235
235
  'nano-table': true,
236
236
  'nano-table--props-ready': this.propsReady,
237
- } }, this.scrollable && (h("nano-masked-overflow", { key: '90a1e07d2daa97047c3be1381717a8ae3b53b5e1', hideScrollbars: false, scrollControls: false, label: this.caption?.textContent || undefined, class: "nano-table__overflow-container" }, h("div", { key: 'badc595c9931fb6198ab38b4e09cdf4201fcc064', class: "nano-table__overflow" }))), h("slot", { key: 'd3fd5902fccc42b3412e9cb1950b054b5a69a525' })));
237
+ } }, this.scrollable && (h("nano-masked-overflow", { key: '63091df4a07695276d762d2a5ad5f535c9ed67dd', hideScrollbars: false, scrollControls: false, label: this.caption?.textContent || undefined, class: "nano-table__overflow-container" }, h("div", { key: '2defbb73d6077d95351c50685c70e6c32f05fd87', class: "nano-table__overflow" }))), h("slot", { key: '71a9d57114363f976eb139d494a8383795a67a8b' })));
238
238
  }
239
239
  static get is() { return "nano-table"; }
240
240
  static get encapsulation() { return "scoped"; }
@@ -24,10 +24,10 @@ export class NanoTabContent {
24
24
  requestAnimationFrame(() => (this.ready = true));
25
25
  }
26
26
  render() {
27
- return (h(Host, { key: '3118031c009c947f2a7882a8dd65556b686d1c9d', id: this.host.id || this.tabContentId, style: { display: this.active ? 'block' : 'none' }, role: "tabpanel", "aria-hidden": this.active ? 'false' : 'true', class: {
27
+ return (h(Host, { key: '7899878aa521145bc4fe77a7e81ddbd2d48b739e', id: this.host.id || this.tabContentId, style: { display: this.active ? 'block' : 'none' }, role: "tabpanel", "aria-hidden": this.active ? 'false' : 'true', class: {
28
28
  ready: this.ready,
29
29
  'nano-tab-content': true,
30
- } }, h("div", { key: 'cab097ece6d3473e5fc425dbde951fcaf399c5ba', part: "base", class: "nano-tab-content" }, h("slot", { key: 'b4ce04af8ea780022c5a9e63a16f1d087432a931' }))));
30
+ } }, h("div", { key: '68d1c780cf1f6d4d0ef77b1dafa7766aa08ba52b', part: "base", class: "nano-tab-content" }, h("slot", { key: 'd8be1c667173f69f74fbead600d79bf96da42cbe' }))));
31
31
  }
32
32
  static get is() { return "nano-tab-content"; }
33
33
  static get encapsulation() { return "shadow"; }
@@ -51,12 +51,12 @@ export class NanoTab {
51
51
  }
52
52
  };
53
53
  render() {
54
- return (h(Host, { key: 'ad80886d87f28ad3a2ae019f361662f21c6617b3', id: this.host.id || this.tabId, role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', class: "nano-tab" }, h("div", { key: '445b8acdf4a87b4541f8bc1b9354c91bad6d77a4', part: `base${this.active ? ' base--active' : ''}${this.disabled ? ' base--disabled' : ''}${this.closable ? ' base--closable' : ''}`, class: {
54
+ return (h(Host, { key: '735b30efba4aecf7bfa515f1fc33d9c507d8ded0', id: this.host.id || this.tabId, role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', class: "nano-tab" }, h("div", { key: '400e6997781a7499613f0b04cf559ee8598801e2', part: `base${this.active ? ' base--active' : ''}${this.disabled ? ' base--disabled' : ''}${this.closable ? ' base--closable' : ''}`, class: {
55
55
  tab: true,
56
56
  'tab--active': this.active,
57
57
  'tab--disabled': this.disabled,
58
58
  'tab--closable': this.closable,
59
- } }, h("slot", { key: 'a72a156f0792fb7943c46d7edc6da51d222f4285', name: "start" }), h("div", { key: 'e7c654c4efe7bafaa41fdbafaae96976f4089f67', part: "label", ref: (el) => (this.tab = el), tabindex: this.disabled || !this.active ? '-1' : '0', class: "tab__label" }, h("slot", { key: '65f9a3b5342dfca0a8e6ec9be289f3ad4bb5da4e' })), h("slot", { key: 'e044937dc98a2650b58f7a792e0e190de80e2d00', name: "end" }), this.closable && !this.disabled && (h("nano-icon-button", { key: 'c7809dea53cb6ca1660f58f06f3a861f18950cba', label: "Close this tab", iconName: "light/xmark", class: "tab__close-button", onClick: this.handleCloseClick, onKeyDown: this.handleCloseKeydown, part: "close-button" })))));
59
+ } }, h("slot", { key: '059131aa192ceac9ca9b61db2daf7029c0153d66', name: "start" }), h("div", { key: '76fba07c2ded5f4a2d93f9540fd222655c507517', part: "label", ref: (el) => (this.tab = el), tabindex: this.disabled || !this.active ? '-1' : '0', class: "tab__label" }, h("slot", { key: '2ac34a7e63e38ed4821d39e35b276b1155e2edd3' })), h("slot", { key: '7d1b2f561c64e3be7a464d9e24ea7fd5d2a56b66', name: "end" }), this.closable && !this.disabled && (h("nano-icon-button", { key: '72497156f9858f16c0d4521cbc6d559cd2266be8', label: "Close this tab", iconName: "light/xmark", class: "tab__close-button", onClick: this.handleCloseClick, onKeyDown: this.handleCloseKeydown, part: "close-button" })))));
60
60
  }
61
61
  static get is() { return "nano-tab"; }
62
62
  static get encapsulation() { return "shadow"; }
@@ -227,10 +227,10 @@ export class Tooltip {
227
227
  this.popover.destroy();
228
228
  }
229
229
  render() {
230
- return (h(Host, { key: '30c71d884cf8fc1c2e97092dad0fb5d6695c77a8', onKeyDown: this.handleKeyDown, onMouseOver: this.handleMouseOver, onMouseOut: this.handleMouseOut, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.handleClick, class: "nano-tooltip" }, h("slot", { key: 'b7e7893c178d99abeb0f1e5a35892fddc8ab302a', onSlotchange: this.handleSlotChange }), h("div", { key: '83aae47d9745dcce88f6119ffa63b3bea809dc17', ref: (el) => (this.tooltipPositioner = el), class: "tooltip-positioner", popover: "manual" }, h("div", { key: 'f5cd2aa11ef281358d11057c866b298202398fc2', part: "base", ref: (el) => (this.tooltip = el), class: {
230
+ return (h(Host, { key: '4e1a851a25fb3b85f17ce51e6d3ca6c4ef88096b', onKeyDown: this.handleKeyDown, onMouseOver: this.handleMouseOver, onMouseOut: this.handleMouseOut, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.handleClick, class: "nano-tooltip" }, h("slot", { key: '040fd84cf165db44447013c4f830c127f9c3cffa', onSlotchange: this.handleSlotChange }), h("div", { key: 'ce342385aa99cb783ee5438812eba7eb6d52993a', ref: (el) => (this.tooltipPositioner = el), class: "tooltip-positioner", popover: "manual" }, h("div", { key: '37c9a935a2e9b9d1970a1bf4269aea5fd959176b', part: "base", ref: (el) => (this.tooltip = el), class: {
231
231
  tooltip: true,
232
232
  'tooltip--open': this.open,
233
- }, role: "tooltip", "aria-hidden": this.open ? 'false' : 'true' }, h("slot", { key: '0dc5a5f28b439406f2d19dc4822b221bbb65a9e8', name: "content", onSlotchange: () => this.setLabel() }, this.content), h("div", { key: 'd196bcffcfd4b26cf085ec21cc7965a369dd55ab', class: "tooltip-arrow", "data-popper-arrow": true })))));
233
+ }, role: "tooltip", "aria-hidden": this.open ? 'false' : 'true' }, h("slot", { key: '2131e35600ffcf0bf1531f84a2dbc0d954083ab8', name: "content", onSlotchange: () => this.setLabel() }, this.content), h("div", { key: '98953a383fbc4f68c96015e1e44a5618fb6efb97', class: "tooltip-arrow", "data-popper-arrow": true })))));
234
234
  }
235
235
  static get is() { return "nano-tooltip"; }
236
236
  static get encapsulation() { return "shadow"; }
@@ -79,7 +79,21 @@ export class HasSlotController {
79
79
  hasDefaultSlot() {
80
80
  if (!this.host)
81
81
  return false;
82
- return [...this.host.childNodes].some((node) => {
82
+ let childNodes;
83
+ if (this.host.shadowRoot) {
84
+ // * Regular shadow DOM component *
85
+ childNodes = [...this.host.shadowRoot.childNodes];
86
+ }
87
+ else if (!this.host.classList.contains('hydrated')) {
88
+ // * Non-shadow, polyfilled component *
89
+ // Component has not done initial render. Return component internals
90
+ childNodes = [...(this.host?.__childNodes ?? [])];
91
+ }
92
+ else {
93
+ // Component is ready, return 'light DOM' children
94
+ childNodes = [...this.host.childNodes];
95
+ }
96
+ return childNodes.some((node) => {
83
97
  if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
84
98
  return true;
85
99
  }
@@ -106,12 +120,14 @@ export class HasSlotController {
106
120
  hostConnected() {
107
121
  if (Build.isServer)
108
122
  return;
109
- this.host.shadowRoot.addEventListener('slotchange', this.handleSlotChange);
123
+ const listenTarget = this.host.shadowRoot ?? this.host;
124
+ listenTarget.addEventListener('slotchange', this.handleSlotChange);
110
125
  }
111
126
  hostDisconnected() {
112
127
  if (Build.isServer || !this.host)
113
128
  return;
114
- this.host.shadowRoot.removeEventListener('slotchange', this.handleSlotChange);
129
+ const listenTarget = this.host.shadowRoot ?? this.host;
130
+ listenTarget.removeEventListener('slotchange', this.handleSlotChange);
115
131
  }
116
132
  handleSlotChange = (event) => {
117
133
  const slot = event.target;