@nanoporetech-digital/components 8.12.3 → 8.14.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 (95) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/nano-alert.cjs.entry.js +1 -1
  3. package/dist/cjs/nano-avatar_5.cjs.entry.js +1 -1
  4. package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
  5. package/dist/cjs/nano-components.cjs.js +1 -1
  6. package/dist/cjs/{nano-data-table-B07AITiQ.js → nano-data-table-CiPPql2J.js} +3 -3
  7. package/dist/cjs/nano-data-table.cjs.entry.js +1 -1
  8. package/dist/cjs/nano-datalist_3.cjs.entry.js +5 -5
  9. package/dist/cjs/nano-details.cjs.entry.js +1 -1
  10. package/dist/cjs/nano-dialog.cjs.entry.js +1 -1
  11. package/dist/cjs/nano-dropdown_2.cjs.entry.js +1 -1
  12. package/dist/cjs/nano-in-page-nav.cjs.entry.js +1 -1
  13. package/dist/cjs/nano-input-otp.cjs.entry.js +19 -6
  14. package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
  15. package/dist/cjs/nano-nav-item.cjs.entry.js +1 -1
  16. package/dist/cjs/{slot-BUMYLmup.js → slot-CM4lrtVE.js} +3 -2
  17. package/dist/cjs/{table.worker-Ctqp7IJT.js → table.worker-D7SJpZlV.js} +1 -1
  18. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  19. package/dist/collection/components/checkbox/checkbox-group.css +5 -3
  20. package/dist/collection/components/data-table/table.cell.js +1 -1
  21. package/dist/collection/components/data-table/table.utils.js +1 -1
  22. package/dist/collection/components/datalist/datalist.js +5 -5
  23. package/dist/collection/components/icon/pictogram/accessible-and-affordable.svg +6 -0
  24. package/dist/collection/components/icon/pictogram/faster-results.svg +3 -0
  25. package/dist/collection/components/icon/pictogram/richer-insights.svg +9 -0
  26. package/dist/collection/components/input-otp/input-otp.js +49 -5
  27. package/dist/collection/utils/slot.js +3 -2
  28. package/dist/components/datalist.js +5 -5
  29. package/dist/components/nano-checkbox-group.js +1 -1
  30. package/dist/components/nano-data-table.js +2 -2
  31. package/dist/components/nano-input-otp.js +20 -6
  32. package/dist/components/slot.js +3 -2
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/esm/nano-alert.entry.js +1 -1
  35. package/dist/esm/nano-avatar_5.entry.js +1 -1
  36. package/dist/esm/nano-checkbox-group.entry.js +1 -1
  37. package/dist/esm/nano-components.js +1 -1
  38. package/dist/esm/{nano-data-table-B3_-hFqj.js → nano-data-table-BXdzSqWC.js} +3 -3
  39. package/dist/esm/nano-data-table.entry.js +1 -1
  40. package/dist/esm/nano-datalist_3.entry.js +5 -5
  41. package/dist/esm/nano-details.entry.js +1 -1
  42. package/dist/esm/nano-dialog.entry.js +1 -1
  43. package/dist/esm/nano-dropdown_2.entry.js +1 -1
  44. package/dist/esm/nano-in-page-nav.entry.js +1 -1
  45. package/dist/esm/nano-input-otp.entry.js +19 -6
  46. package/dist/esm/nano-menu-drawer.entry.js +1 -1
  47. package/dist/esm/nano-nav-item.entry.js +1 -1
  48. package/dist/esm/{slot-D31cEKyt.js → slot-BeXeAw-u.js} +3 -2
  49. package/dist/esm/{table.worker-By3ZdRHH.js → table.worker-DftFV8Z7.js} +1 -1
  50. package/dist/nano-assets/hash.txt +1 -1
  51. package/dist/nano-assets/icon/pictogram/accessible-and-affordable.svg +6 -0
  52. package/dist/nano-assets/icon/pictogram/faster-results.svg +3 -0
  53. package/dist/nano-assets/icon/pictogram/richer-insights.svg +9 -0
  54. package/dist/nano-components/nano-alert.entry.js +1 -1
  55. package/dist/nano-components/nano-avatar_5.entry.js +1 -1
  56. package/dist/nano-components/nano-checkbox-group.entry.js +1 -1
  57. package/dist/nano-components/nano-components.css +1 -1
  58. package/dist/nano-components/nano-components.esm.js +1 -1
  59. package/dist/nano-components/{nano-data-table-B3_-hFqj.js → nano-data-table-BXdzSqWC.js} +1 -1
  60. package/dist/nano-components/nano-data-table.entry.js +1 -1
  61. package/dist/nano-components/nano-datalist_3.entry.js +1 -1
  62. package/dist/nano-components/nano-details.entry.js +1 -1
  63. package/dist/nano-components/nano-dialog.entry.js +1 -1
  64. package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
  65. package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
  66. package/dist/nano-components/nano-input-otp.entry.js +1 -1
  67. package/dist/nano-components/nano-menu-drawer.entry.js +1 -1
  68. package/dist/nano-components/nano-nav-item.entry.js +1 -1
  69. package/dist/nano-components/pictogram/accessible-and-affordable.svg +6 -0
  70. package/dist/nano-components/pictogram/faster-results.svg +3 -0
  71. package/dist/nano-components/pictogram/richer-insights.svg +9 -0
  72. package/dist/nano-components/slot-BeXeAw-u.js +4 -0
  73. package/dist/nano-components/{table.worker-By3ZdRHH.js → table.worker-DftFV8Z7.js} +1 -1
  74. package/dist/style/components.css +1 -1
  75. package/dist/style/components.css.map +1 -1
  76. package/dist/style/nano.css +1 -1
  77. package/dist/style/nano.css.map +1 -1
  78. package/dist/types/components/input-otp/input-otp.d.ts +8 -0
  79. package/dist/types/components.d.ts +9 -0
  80. package/dist/types/utils/renderer.d.ts +1 -1
  81. package/docs-json.json +43 -2
  82. package/hydrate/index.js +31 -16
  83. package/hydrate/index.mjs +31 -16
  84. package/package.json +2 -2
  85. package/dist/nano-components/slot-D31cEKyt.js +0 -4
  86. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/generate-vue-component.d.ts +0 -0
  87. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/index.d.ts +0 -0
  88. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/output-vue.d.ts +0 -0
  89. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/plugin.d.ts +0 -0
  90. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/types.d.ts +0 -0
  91. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/plugins/stencil/vue-output/utils.d.ts +0 -0
  92. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -0
  93. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -0
  94. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
  95. /package/dist/types/builds/{vSRqAuzi → RG1Ezkr-}/0/Digital/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
@@ -5,7 +5,7 @@
5
5
 
6
6
  var index = require('./index-DGttnXif.js');
7
7
  var renderer = require('./renderer-jVpDRMfV.js');
8
- var slot = require('./slot-BUMYLmup.js');
8
+ var slot = require('./slot-CM4lrtVE.js');
9
9
  require('./dom-Dxk5vXYq.js');
10
10
 
11
11
  const detailsCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{font-family:inherit;font-size:inherit;font-stretch:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;--padding:var(--nano-spacing-md);--btn-padding:var(--padding);--btn-bg-color:transparent;--btn-bg-color--hover:var(--nano-color-primary-100);--btn-bg-color--active:var(--nano-color-primary-300);--content-padding:var(--padding);display:block;border:1px solid var(--nano-color-neutral-300);color:var(--nano-color-neutral-1400)}:host([size=small]){--padding:var(--nano-spacing-sm) 0.9375rem}:host([size=large]){--padding:var(--nano-spacing-l)}:host([size=large]) .header{font-weight:var(--nano-font-weight-normal);font-size:var(--nano-font-size-lg);line-height:var(--nano-line-height-dense);text-wrap:balance}:host([disabled]){opacity:0.5}.header{all:unset;cursor:pointer;padding:var(--btn-padding);position:relative;display:flex;flex-wrap:wrap;align-items:center;background:var(--btn-bg-color);color:inherit;font-weight:var(--nano-font-weight-normal);font-size:var(--nano-font-size-md);line-height:var(--nano-line-height-dense);text-wrap:balance}.header::-webkit-details-marker{display:none}.header:focus{outline:none}.header:not([aria-disabled=true]):focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}.header:not([aria-disabled=true]):hover{background:var(--btn-bg-color--hover)}.header:not([aria-disabled=true]):active{background:var(--btn-bg-color--active)}.disabled .header{cursor:not-allowed}.header .label{inline-size:100%;max-inline-size:100%;max-block-size:100%;flex:1;display:inline-block}.header .icon{line-height:0;flex-direction:column;justify-content:center;display:inline-block;color:var(--nano-color-primary-1200)}.header .icon .default-icon{rotate:0deg;transform-origin:center;transition:var(--nano-transition-x-fast) ease rotate}:host([open]) .header .icon .default-icon{rotate:180deg}.header .icon--start{margin-inline:0 var(--btn-padding);margin-block:0}.header .icon--end{margin-inline:var(--btn-padding) 0;margin-block:0}.header .icon ::slotted(.nano-icon),.header .icon::slotted(.nano-icon){color:currentcolor;transition:var(--nano-transition-x-fast) ease rotate;transform-origin:center}.body{display:grid;grid-template-rows:0fr;transition:all var(--nano-transition-fast) ease-out;opacity:0}:host([open]) .body{grid-template-rows:1fr;opacity:1}.content-wrapper{overflow:hidden}.content{padding:var(--content-padding)}";
@@ -7,7 +7,7 @@ var index = require('./index-DGttnXif.js');
7
7
  var renderer = require('./renderer-jVpDRMfV.js');
8
8
  var modal = require('./modal-BlzeVZW4.js');
9
9
  var scroll = require('./scroll-C6pO9RvO.js');
10
- var slot = require('./slot-BUMYLmup.js');
10
+ var slot = require('./slot-CM4lrtVE.js');
11
11
  var componentStore = require('./component-store-C5eBOK0w.js');
12
12
  var tabbable = require('./tabbable-C-YwPfjA.js');
13
13
  require('./dom-Dxk5vXYq.js');
@@ -9,7 +9,7 @@ var popover = require('./popover-CU5-yMCD.js');
9
9
  var tabbable = require('./tabbable-C-YwPfjA.js');
10
10
  var renderer = require('./renderer-jVpDRMfV.js');
11
11
  var dom = require('./dom-Dxk5vXYq.js');
12
- var slot = require('./slot-BUMYLmup.js');
12
+ var slot = require('./slot-CM4lrtVE.js');
13
13
 
14
14
  const dropdownCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{--width:auto;--border:none;--border-radius:0px;--background:var(--nano-color-neutral-75);--padding:0 0;--overflow:auto;--dropdown-z-index:var(--nano-z-index-dropdown);--min-width:0;--max-height:none;--box-shadow:var(--nano-shadow-l2);--menu-height:calc(100vh - 200px);display:inline-block}.dropdown{position:relative}.dropdown__trigger{display:block}.dropdown__positioner{position:absolute;z-index:var(--dropdown-z-index);min-inline-size:var(--min-width);border:0;background:none;padding:0;overflow:visible;color:unset}.dropdown__positioner::backdrop{display:none}.dropdown__positioner[popover],.dropdown__positioner:popover-open{inset:unset}@media (width <= 35.9375em){.dropdown__positioner{z-index:100}}.dropdown__panel{padding:var(--padding);background:var(--background);min-inline-size:var(--min-width);inline-size:var(--width);border:var(--border);border-radius:var(--border-radius);color:currentcolor;box-shadow:var(--box-shadow);opacity:0;transition:var(--nano-transition-x-fast) ease opacity, var(--nano-transition-x-fast) ease transform, var(--nano-transition-fast) ease min-block-size;min-block-size:20px;overflow:var(--overflow);max-block-size:var(--max-height);box-sizing:content-box !important}.dropdown__panel.loading{overflow-y:hidden}.dropdown__panel.top{transform:translateY(-20px) translateZ(0)}.dropdown__panel.bottom{transform:translateY(20px) translateZ(0)}.dropdown__positioner.popover-visible .dropdown__panel{opacity:1;transform:translateY(0) translateZ(0)}.dropdown__panel ::slotted(.nano-menu){max-block-size:var(--menu-height)}.dropdown__accessible-title{clip-path:inset(50%);block-size:1px;overflow:hidden;position:absolute;white-space:nowrap;inline-size:1px}";
15
15
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  var index = require('./index-DGttnXif.js');
7
7
  var renderer = require('./renderer-jVpDRMfV.js');
8
- var slot = require('./slot-BUMYLmup.js');
8
+ var slot = require('./slot-CM4lrtVE.js');
9
9
  var dom = require('./dom-Dxk5vXYq.js');
10
10
  var scroll = require('./scroll-C6pO9RvO.js');
11
11
 
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  var index = require('./index-DGttnXif.js');
7
- var slot = require('./slot-BUMYLmup.js');
7
+ var slot = require('./slot-CM4lrtVE.js');
8
8
  require('./dom-Dxk5vXYq.js');
9
9
 
10
10
  const inputOtpCss = ".sc-nano-input-otp-h,*.sc-nano-input-otp,*.sc-nano-input-otp::before,*.sc-nano-input-otp::after{box-sizing:border-box}[hidden].sc-nano-input-otp{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-input-otp-h,*.sc-nano-input-otp,*.sc-nano-input-otp::before,*.sc-nano-input-otp::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-input-otp-h,*.sc-nano-input-otp,*.sc-nano-input-otp::before,*.sc-nano-input-otp::after{box-sizing:border-box}[hidden].sc-nano-input-otp{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-input-otp-h,*.sc-nano-input-otp,*.sc-nano-input-otp::before,*.sc-nano-input-otp::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-input-otp-h{--color:initial;--min-width:40px;--width:40px;--height:50px;--gap:8px;--icon-size:var(--nano-pictogram-size-small);--inline-padding:calc(var(--icon-size) + var(--gap));--spacing:var(--nano-spacing-xl);--separator-width:7px;--separator-height:1px;--separator-border-radius:0;--separator-color:var(--nano-color-primary-1000);--highlight-color-valid:var(--nano-color-success-1100);--highlight-color-invalid:var(--nano-color-warning-1100);--border-radius:8px;--border-color:var(--nano-color-neutral-700);--border-width:1px;display:block;position:relative;margin-inline:var(--inline-padding)}.input-otp-container.sc-nano-input-otp{position:relative;inline-size:fit-content;block-size:fit-content;margin:0 auto}.input-otp-group.sc-nano-input-otp{display:flex;align-items:center;justify-content:center;gap:var(--gap)}.native-wrapper.sc-nano-input-otp{display:flex;align-items:center;justify-content:center;min-inline-size:var(--min-width)}.native-input.sc-nano-input-otp{border-radius:var(--border-radius);inline-size:var(--width);min-inline-size:inherit;block-size:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;appearance:none}.input-otp-description.sc-nano-input-otp{color:currentcolor;font-size:var(--nano-font-size-xs);line-height:var(--nano-line-height-normal);text-align:center;position:relative;margin-block-start:var(--spacing)}.input-otp-description-hidden.sc-nano-input-otp{display:none}.input-otp-separator.sc-nano-input-otp{border-radius:var(--separator-border-radius);flex-shrink:0;inline-size:var(--separator-width);block-size:var(--separator-height);background:var(--separator-color)}.input-otp-disabled.sc-nano-input-otp-h .input-otp-description.sc-nano-input-otp,.input-otp-disabled.sc-nano-input-otp-h .input-otp-group.sc-nano-input-otp{--color:var(--nano-color-neutral-700);opacity:0.5}.input-otp-disabled.sc-nano-input-otp-h,.input-otp-disabled.sc-nano-input-otp-h .native-input.sc-nano-input-otp:disabled{cursor:not-allowed}.has-focus.sc-nano-input-otp-h .native-input.sc-nano-input-otp:focus{outline:var(--nano-focus-ring)}.nano-invalid.sc-nano-input-otp-h .native-input.sc-nano-input-otp{border-color:var(--highlight-color-invalid)}.nano-valid.sc-nano-input-otp-h .native-input.sc-nano-input-otp{border-color:var(--highlight-color-valid)}.input-otp-icon.sc-nano-input-otp{position:absolute;inset-block-start:50%;transform:translateY(-43%);inset-inline-end:calc((var(--gap) + var(--icon-size)) * -1);inline-size:var(--icon-size);block-size:var(--icon-size);display:flex;align-items:center}.input-otp-icon--valid.sc-nano-input-otp{color:var(--nano-color-success-1100)}.input-otp-icon--invalid.sc-nano-input-otp{color:var(--nano-color-warning-1100)}";
@@ -16,6 +16,7 @@ const InputOTP = class {
16
16
  this.nanoChange = index.createEvent(this, "nanoChange", 7);
17
17
  this.nanoComplete = index.createEvent(this, "nanoComplete", 7);
18
18
  this.nanoBlur = index.createEvent(this, "nanoBlur", 7);
19
+ this.nanoClear = index.createEvent(this, "nanoClear", 7);
19
20
  this.nanoFocus = index.createEvent(this, "nanoFocus", 7);
20
21
  }
21
22
  inputRefs = [];
@@ -119,6 +120,10 @@ const InputOTP = class {
119
120
  * Emitted when the input group loses focus.
120
121
  */
121
122
  nanoBlur;
123
+ /**
124
+ * Emitted when the input group is cleared.
125
+ */
126
+ nanoClear;
122
127
  /**
123
128
  * Emitted when the input group has focus.
124
129
  */
@@ -139,6 +144,16 @@ const InputOTP = class {
139
144
  this.inputRefs[tabbableIndex]?.focus();
140
145
  }
141
146
  }
147
+ /**
148
+ * Resets the input boxes to empty values.
149
+ */
150
+ async clear() {
151
+ this.value = '';
152
+ this.inputRefs.forEach((input, index) => {
153
+ input.value = this.inputValues[index] || '';
154
+ });
155
+ this.nanoClear.emit();
156
+ }
142
157
  valueChanged() {
143
158
  this.initializeValues();
144
159
  this.updateTabIndexes();
@@ -679,31 +694,29 @@ const InputOTP = class {
679
694
  * - `valid` is true if all input boxes are filled with valid values.
680
695
  */
681
696
  computeValidity() {
682
- const { inputValues } = this;
683
697
  this.invalid =
684
698
  this.allowInvalid &&
685
699
  this.inputValues.some((val) => val !== '' && !this.validKeyPattern.test(val));
686
700
  this.valid =
687
701
  this.inputValues.length === this.length &&
688
702
  this.inputValues.every((val) => val !== '' && this.validKeyPattern.test(val));
689
- inputValues.some((v) => v !== '' && !this.validKeyPattern.test(v));
690
703
  }
691
704
  render() {
692
705
  const { disabled, hasFocus, inputId, inputRefs, inputValues, length, readonly, invalid, valid, } = this;
693
706
  const inputmode = this.getInputmode();
694
707
  const tabbableIndex = this.getTabbableIndex();
695
708
  const pattern = this.getPattern();
696
- return (index.h(index.Host, { key: '9b64211ca6a227c5f905a76a50ca3a44eff0a96b', class: {
709
+ return (index.h(index.Host, { key: '69c1b3c4a4cae21665bb7e3646a27a89f8d0a73b', class: {
697
710
  'has-focus': hasFocus,
698
711
  'input-otp-disabled': disabled,
699
712
  'input-otp-readonly': readonly,
700
713
  'nano-invalid': invalid,
701
714
  'nano-valid': valid,
702
- } }, index.h("div", { key: 'cc7fb4411962398f143d2dd17c40448111956e80', class: "input-otp-container" }, index.h("div", { key: '4408d19628b34a25cb3bc39a0df1dd859700399f', class: "input-otp-group", role: "group", "aria-label": "One-time password input" }, Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper" }, index.h("input", { class: "native-input", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && (index.h("div", { class: "input-otp-separator" })))))), this.showValidity && (index.h("div", { key: 'cc45bac1e7f7675b467bae6153d9ffa586ec6655', class: {
715
+ } }, index.h("div", { key: '9fcd9882d552cde88adfa7578e556155651bbb4d', class: "input-otp-container" }, index.h("div", { key: '3e2c1a83282c08c1ccef81c4f13a895f1efeec13', class: "input-otp-group", role: "group", "aria-label": "One-time password input" }, Array.from({ length }).map((_, index$1) => (index.h(index.Fragment, null, index.h("div", { class: "native-wrapper" }, index.h("input", { class: "native-input", id: `${inputId}-${index$1}`, "aria-label": `Input ${index$1 + 1} of ${length}`, type: "text", inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index$1 === tabbableIndex ? 0 : -1, value: inputValues[index$1] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index$1] = el), onInput: this.onInput(index$1), onBlur: this.onBlur, onFocus: this.onFocus(index$1), onKeyDown: this.onKeyDown(index$1), onPaste: this.onPaste })), this.showSeparator(index$1) && (index.h("div", { class: "input-otp-separator" })))))), this.showValidity && (index.h("div", { key: 'b5d9d9f3023cca6fcf9d8a394287de2333eeff54', class: {
703
716
  'input-otp-icon': true,
704
717
  'input-otp-icon--valid': valid,
705
718
  'input-otp-icon--invalid': invalid,
706
- }, part: "validity-icon" }, index.h("slot", { key: '84bd77959eaa572898cd48525512d93b6406b6b6', name: "validity-icon" }, index.h("nano-icon", { key: 'c903d61964571e006aca28afea7a911f47527d43', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (index.h("div", { key: 'ddbf6145b86b48ad942227ec15ab419612e5ef41', class: "input-otp-description" }, index.h("slot", { key: '56862b93b96aee7ecad1b36472666f94f2021a5f' })))));
719
+ }, part: "validity-icon" }, index.h("slot", { key: 'd4a3123b713487f579a503ea1158e73b97a35198', name: "validity-icon" }, index.h("nano-icon", { key: '2d7886aadaaa786f3594ace3d4fa3d2ebbdc30c3', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (index.h("div", { key: '32b6883425e8f62bda344ad6f92ff63a5fef98f4', class: "input-otp-description" }, index.h("slot", { key: '81b5c65f7c8bab2f8bf371c03bc5a2ae455b6c3f' })))));
707
720
  }
708
721
  static get watchers() { return {
709
722
  "value": ["valueChanged"]
@@ -6,7 +6,7 @@
6
6
  var index = require('./index-DGttnXif.js');
7
7
  var dom = require('./dom-Dxk5vXYq.js');
8
8
  var renderer = require('./renderer-jVpDRMfV.js');
9
- var slot = require('./slot-BUMYLmup.js');
9
+ var slot = require('./slot-CM4lrtVE.js');
10
10
 
11
11
  const menuDrawerCss = ":host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host,*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}@media (prefers-reduced-motion: reduce){:host,*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}:host{--padding-top:13px;--padding-end:13px;--padding-bottom:13px;--padding-start:13px;--icon-size:19px;--font-size:var(--nano-font-size-xs);--bg-color:var(--nano-color-surface-50);--bg-color-hover:var(--nano-color-neutral-75);--bg-color-selected:var(--nano-color-neutral-300);--bg-color-open:var(--nano-color-neutral-300);--content-color:var(--nano-color-neutral-1400);--divider-color:var(--nano-color-neutral-300);--global-nav-height:76px;--menu-width:calc((var(--padding-end) + var(--padding-start)) + var(--icon-size));color-scheme:dark;display:block;z-index:1;background:var(--bg-color);color:var(--content-color);min-block-size:100%}:host(.hide){display:none}.head{border-block-end:var(--divider-color) 1px solid}.container{inset-inline-end:auto;color:var(--content-color);inline-size:var(--menu-width);transition:inline-size 0.3s ease;inset-block-start:var(--global-nav-height);position:sticky;display:flex;flex-direction:column;block-size:100%;max-block-size:calc(100vh - var(--global-nav-height))}:host(.open) .container{inline-size:auto}.content-wrap{inset-inline-start:0;inset-block-start:0;inline-size:inherit;background:var(--bg-color);font-size:var(--font-size);line-height:1;display:flex;flex-direction:column;align-items:stretch;flex:1;box-shadow:var(--nano-shadow-ls)}.content-wrap.secondary-open{box-shadow:none}.content-wrap::after{content:\"\";position:absolute;inset:calc(var(--global-nav-height) * -1) 0 0;background-color:var(--bg-color);z-index:-1}.content{inline-size:auto;display:flex;flex-direction:column;overflow:hidden visible;flex:1}.collapse-btn{all:unset;padding-block:6px;margin-block-start:5px;padding-inline:var(--padding-start) var(--padding-end);inline-size:100%;display:flex;justify-items:flex-start;appearance:none;cursor:pointer;font-size:var(--icon-size)}.collapse-btn:focus-visible{outline:var(--nano-focus-ring);outline-offset:var(--nano-focus-ring-offset)}.collapse-btn:hover{background-color:var(--bg-color-hover)}.collapse-btn:active{background-color:var(--bg-color-selected)}.collapse-btn .nano-icon{transition:var(--nano-transition-x-fast) rotate ease-in-out;rotate:0deg}:host(.open) .collapse-btn .nano-icon{rotate:180deg}.visually-hidden{clip-path:inset(50%);block-size:1px;overflow:hidden;position:absolute;white-space:nowrap;inline-size:1px}.foot{margin-block:auto var(--padding-bottom)}";
12
12
 
@@ -7,7 +7,7 @@ var index = require('./index-DGttnXif.js');
7
7
  var dom = require('./dom-Dxk5vXYq.js');
8
8
  var tabbable = require('./tabbable-C-YwPfjA.js');
9
9
  var renderer = require('./renderer-jVpDRMfV.js');
10
- var slot = require('./slot-BUMYLmup.js');
10
+ var slot = require('./slot-CM4lrtVE.js');
11
11
  var activeElement = require('./active-element-Vtuxns0n.js');
12
12
 
13
13
  /**
@@ -68,7 +68,8 @@ class HasSlotController {
68
68
  // * Regular shadow DOM component *
69
69
  childNodes = [...this.host.shadowRoot.childNodes];
70
70
  }
71
- else if (!this.host.classList.contains('hydrated')) {
71
+ else if (!this.host.classList.contains('hydrated') &&
72
+ this.host.__childNodes) {
72
73
  // * Non-shadow, polyfilled component *
73
74
  // Component has not done initial render. Return component internals
74
75
  childNodes = [...(this.host?.__childNodes ?? [])];
@@ -78,7 +79,7 @@ class HasSlotController {
78
79
  childNodes = [...this.host.childNodes];
79
80
  }
80
81
  return childNodes.some((node) => {
81
- if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
82
+ if (node.nodeType === Node.TEXT_NODE && !!node.textContent.trim()) {
82
83
  return true;
83
84
  }
84
85
  if (node.nodeType === Node.ELEMENT_NODE) {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var nanoDataTable_entry = require('./nano-data-table-B07AITiQ.js');
6
+ var nanoDataTable_entry = require('./nano-data-table-CiPPql2J.js');
7
7
  require('./index-DGttnXif.js');
8
8
  require('./renderer-jVpDRMfV.js');
9
9
  require('./math-DIjJ3V87.js');
@@ -89,7 +89,7 @@ export class NanoBreadcrumb {
89
89
  "references": {
90
90
  "Breadcrumb": {
91
91
  "location": "local",
92
- "path": "/builds/vSRqAuzi/0/Digital/nano-components/packages/components/src/components/breadcrumb/breadcrumb.tsx",
92
+ "path": "/builds/RG1Ezkr-/0/Digital/nano-components/packages/components/src/components/breadcrumb/breadcrumb.tsx",
93
93
  "id": "src/components/breadcrumb/breadcrumb.tsx::Breadcrumb"
94
94
  }
95
95
  }
@@ -44,12 +44,14 @@
44
44
  * @prop --invalid-msg-color: The color of the error message. Defaults to var(--nano-color-danger-1100).
45
45
  * @prop --help-msg-color: The color of the help message. Defaults to var(--nano-color-base-1000).
46
46
  * @prop --more-font-size: The font size of the more information text (either help or error messaging). Defaults to var(--nano-font-size-2xs).
47
+ * @prop --gap: The gap between checkboxes. Defaults to var(--nano-spacing-md).
47
48
  */
48
49
  --label-color: var(--nano-color-base-1000);
49
50
  --label-font-size: var(--nano-font-size-xs);
50
51
  --invalid-msg-color: var(--nano-color-danger-1100);
51
52
  --help-msg-color: var(--nano-color-base-1000);
52
53
  --more-font-size: var(--nano-font-size-2xs);
54
+ --gap: var(--nano-spacing-md);
53
55
  display: block;
54
56
  inline-size: 100%;
55
57
  }
@@ -141,13 +143,13 @@
141
143
  padding: 0;
142
144
  display: flex;
143
145
  flex-direction: column;
144
- gap: var(--nano-spacing-md);
146
+ gap: var(--gap);
145
147
  }
146
148
  :host(.types-segment) .cbgroup__cbs {
147
149
  flex-direction: row;
148
- gap: 0;
150
+ --gap: 0;
149
151
  }
150
152
  :host(.types-tag) .cbgroup__cbs {
151
153
  flex-direction: row;
152
- gap: var(--nano-spacing-sm);
154
+ --gap: var(--nano-spacing-sm);
153
155
  }
@@ -49,7 +49,7 @@ function cellRender(rowIndex, colIndex) {
49
49
  // custom rendering can render to the templateEle OR return a promise<string>
50
50
  tplResult = result && result['then'] ? result : templateEle;
51
51
  }
52
- return tplResult ? (tplResult) : model.cellModel !== undefined && model.cellModel !== null ? (h(Fragment, null, model.cellModel?.toString())) : ('');
52
+ return tplResult ? tplResult : model.cellModel !== undefined && model.cellModel !== null ? (h(Fragment, null, model.cellModel?.toString())) : ('');
53
53
  }
54
54
  export const baseCellClasses = (colIndex, toString = false) => {
55
55
  const store = fetchStores();
@@ -105,7 +105,7 @@ export function mergeCellProperties(rowIndex, colIndex, defaultProps) {
105
105
  */
106
106
  export function colheadFootRender(col) {
107
107
  const tpl = col?.columnTemplate;
108
- return tpl ? (tpl(h, col)) : (h(Fragment, null, col.title));
108
+ return tpl ? tpl(h, col) : (h(Fragment, null, col.title));
109
109
  }
110
110
  export function headerPinClasses(type, vPinned, toString = false) {
111
111
  const classes = {
@@ -533,18 +533,18 @@ export class DataList {
533
533
  }
534
534
  }
535
535
  render() {
536
- return (h(Host, { key: '269f57e6eccd251685f84a94d53f380d6545a3cb', class: "nano-datalist", role: this.actvOptEles.length ? 'listbox' : undefined, "aria-owns": this.optionIds.length ? this.optionIds.join(' ') : undefined, "aria-label": this.optionIds.length
536
+ return (h(Host, { key: '8acb3be76246d665171db96444cff3a5141e1132', class: "nano-datalist", role: this.actvOptEles.length ? 'listbox' : undefined, "aria-owns": this.optionIds.length ? this.optionIds.join(' ') : undefined, "aria-label": this.optionIds.length
537
537
  ? 'Select options from the list below'
538
- : undefined }, h("nano-dropdown", { key: 'ee6398b356dc1a0ff9fa35e84955314fc95435b6', part: "dropdown", exportparts: "trigger:dropdown__trigger, panel:dropdown__panel", ...this.dropDownConfig, ref: (el) => (this.nanoDropdown = el), dialogTitle: "Select options from the list below", class: {
538
+ : undefined }, h("nano-dropdown", { key: '56c051873a20a3dab17a36eec1a2f040f83247fa', part: "dropdown", exportparts: "trigger:dropdown__trigger, panel:dropdown__panel", ...this.dropDownConfig, ref: (el) => (this.nanoDropdown = el), dialogTitle: "Select options from the list below", class: {
539
539
  dlist__dropdown: true,
540
540
  'dlist--isfiltered': this.isFiltered,
541
- }, onNanoAfterShow: this.handleShow, onNanoAfterHide: this.handleHide, role: "group" }, h("nano-menu", { key: 'f80006a5ba62c227094da52672b4abf6ee6335dc', part: "main-menu", ref: (el) => (this.listBox = el), hidden: !this.actvOptEles.length, type: "listbox", label: this.inputLabel ? this.inputLabel.textContent : undefined, class: {
541
+ }, onNanoAfterShow: this.handleShow, onNanoAfterHide: this.handleHide, role: "group" }, h("nano-menu", { key: '7559b648617c8d32f61c670e4dc78c0d60d36dc4', part: "main-menu", ref: (el) => (this.listBox = el), hidden: !this.actvOptEles.length, type: "listbox", label: this.inputLabel ? this.inputLabel.textContent : undefined, class: {
542
542
  dlist__menu: true,
543
543
  'dlist__menu--open': this.dropwdownOpen,
544
- }, tabIndex: -1, onNanoSelect: this.optSelected, onKeyDown: this.optionKeyDown }, h("slot", { key: '8a2d3160b990c99baeaf4fd9bdd7bb04229d642c', name: "list-top" }), h("slot", { key: '2230e4458be0998d59d18250e1d22188baf2f6b1' }), h("slot", { key: 'fca84cbd01495e4b62ba95c4c07681f506939d3f', name: "internal-opts" }), h("slot", { key: '076fd81c15f5ac6590e5311503262a07f60e8454', name: "list-bottom" })), h("nano-menu", { key: 'd4878bc502b4fcc0de01f67b5065ad017f445f75', part: "no-result-menu", type: "listbox", label: "No results found", hidden: !!this.actvOptEles.length, class: {
544
+ }, tabIndex: -1, onNanoSelect: this.optSelected, onKeyDown: this.optionKeyDown }, h("slot", { key: '02bd8ba511db314637e8991d29234a22967cf27d', name: "list-top" }), h("slot", { key: 'cb0234e0dd103293c1f1292af62575dd766af730' }), h("slot", { key: '0adac42b20ee0338de74217e6e91c00be6b5b6a7', name: "internal-opts" }), h("slot", { key: '906255e4e6fdc87fa8bf6e278ad076f179553925', name: "list-bottom" })), h("nano-menu", { key: '9aa978054227c9bb928c06ce93303ceda48cbf29', part: "no-result-menu", type: "listbox", label: "No results found", hidden: !!this.actvOptEles.length, class: {
545
545
  dlist__menu: true,
546
546
  'dlist__menu--open': this.dropwdownOpen,
547
- } }, h("slot", { key: '2ac583af3ac8b24ace627637ab86471999df9465', name: "no-result" })), !!this.actvOptEles && (h("div", { key: '4971780255baf694fcc447756ca02e1115ece871', class: "dlist__status" }, this.actvOptEles.length, " result", this.actvOptEles.length > 1 ? 's' : '', " available.")))));
547
+ } }, h("slot", { key: '4e2ce9dcb39d0c823ed27f13dc8c9a8873f0ca9f', name: "no-result" })), !!this.actvOptEles && (h("div", { key: 'c6bf0c88d7b1fcd24b2882c7db851ffca2e77ba3', class: "dlist__status" }, this.actvOptEles.length, " result", this.actvOptEles.length > 1 ? 's' : '', " available.")))));
548
548
  }
549
549
  static get is() { return "nano-datalist"; }
550
550
  static get encapsulation() { return "shadow"; }
@@ -0,0 +1,6 @@
1
+ <svg width="48" height="40" viewBox="0 0 48 40">
2
+ <path d="M46.8222 19.4092C44.5863 17.1568 40.9487 17.158 38.7128 19.4092L32.6099 25.5572L33.2351 26.1871L39.338 20.0391C41.2293 18.1352 44.3057 18.1339 46.1969 20.0391L46.7495 20.5957L32.8399 34.6086C29.9589 37.5109 26.1283 39.1092 22.0542 39.1092H0V40H22.0542C26.3645 40 30.4171 38.3091 33.4651 35.2385L48 20.5957L46.8222 19.4092Z" />
3
+ <path d="M7.13331 25.6088C9.83358 24.0819 13.0562 23.8092 15.9698 24.8615C18.2433 25.6814 20.6199 26.097 23.0334 26.097H28.4426C29.8387 26.097 30.9739 27.2407 30.9739 28.647C30.9739 30.0528 29.8387 31.1964 28.4426 31.1964H16.6617V32.0872H28.4426C30.3258 32.0872 31.8582 30.5442 31.8582 28.647C31.8582 26.7499 30.3258 25.2062 28.4426 25.2062H23.0334C20.7216 25.2062 18.4456 24.808 16.2682 24.0229C13.1117 22.8842 9.62393 23.1793 6.70104 24.8323L5.60897 25.4485C3.89964 26.4145 1.95969 26.9251 0 26.9251V27.8159C2.11138 27.8159 4.20056 27.2655 6.04124 26.225L7.13331 25.6088Z" />
4
+ <path d="M23.9497 20.4758C29.5538 20.4758 34.1126 15.8833 34.1126 10.2379C34.1126 4.5925 29.5538 0 23.9497 0C18.3457 0 13.7863 4.5925 13.7863 10.2379C13.7863 15.8833 18.3457 20.4758 23.9497 20.4758ZM23.9497 0.890794C29.066 0.890794 33.2284 5.08386 33.2284 10.2379C33.2284 15.392 29.066 19.585 23.9497 19.585C18.8329 19.585 14.6705 15.392 14.6705 10.2379C14.6705 5.08386 18.8329 0.890794 23.9497 0.890794Z" />
5
+ <path d="M24.0823 14.5416C22.9773 14.5416 22.0782 13.6359 22.0782 12.5227H21.194C21.194 13.9747 22.2581 15.171 23.6402 15.3873V16.9996H24.5245V15.3873C25.9067 15.171 26.9713 13.9747 26.9713 12.5227C26.9713 10.9181 25.6751 9.61237 24.0823 9.61237C22.9773 9.61237 22.0782 8.70667 22.0782 7.59349C22.0782 6.47969 22.9773 5.57398 24.0823 5.57398C25.188 5.57398 26.087 6.47969 26.087 7.59349H26.9713C26.9713 6.14145 25.9067 4.94471 24.5245 4.72823V3.11405H23.6402V4.72823C22.2581 4.94471 21.194 6.14145 21.194 7.59349C21.194 9.19804 22.4895 10.5032 24.0823 10.5032C25.188 10.5032 26.087 11.4089 26.087 12.5227C26.087 13.6359 25.188 14.5416 24.0823 14.5416Z" />
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="43" height="44" viewBox="0 0 43 44">
2
+ <path d="M43 22L21.0145 0V21.0283L0 0V44L21.0145 22.9717V44L43 22ZM0.972794 41.6499V2.35009L20.6098 22L0.972794 41.6499ZM21.9872 2.35009L41.6243 22L21.9872 41.6499V2.35009Z" />
3
+ </svg>
@@ -0,0 +1,9 @@
1
+ <svg width="48" height="42" viewBox="0 0 48 42">
2
+ <path d="M48 41.0615H0V42H48V41.0615Z" />
3
+ <path d="M16.3525 5.45348H31.4498C30.9561 5.10562 30.4484 4.78655 29.9209 4.51493H17.881C17.3537 4.78655 16.8462 5.10562 16.3525 5.45348Z" />
4
+ <path d="M12.2811 10.0814C12.1206 10.3889 11.9792 10.7032 11.845 11.02H35.9692C35.8338 10.7014 35.6847 10.3886 35.5239 10.0814H12.2811Z" />
5
+ <path d="M10.8257 16.5865H36.983C36.9884 16.4306 37.0058 16.2768 37.0058 16.1198C37.0058 15.9611 36.9884 15.8057 36.9828 15.6479H10.8259C10.8147 15.961 10.8146 16.2735 10.8257 16.5865Z" />
6
+ <path d="M12.2788 22.153H35.5262C35.6869 21.8457 35.8363 21.5332 35.9715 21.2145H11.8427C11.9767 21.5312 12.1185 21.8456 12.2788 22.153Z" />
7
+ <path d="M17.8676 27.7202H29.9352C30.4642 27.4456 30.9716 27.129 31.4619 26.7816H16.3407C16.831 27.129 17.3383 27.4456 17.8676 27.7202Z" />
8
+ <path d="M48 2.90879H33.1773C27.6267 -0.969598 20.1764 -0.969598 14.6258 2.90879H0V3.84734H13.4081C13.0844 4.12289 12.7616 4.40039 12.4558 4.70539C9.42602 7.72721 7.86699 11.6589 7.74623 15.6263H0V16.5649H7.74394C7.85321 20.5488 9.41371 24.5002 12.4558 27.5343C12.7444 27.8221 13.0499 28.0824 13.3543 28.3439H0V29.2824H14.5599C17.3498 31.2528 20.6214 32.2539 23.9016 32.2539C27.1735 32.2539 30.4373 31.2581 33.2224 29.2977L42.4734 38.5233C42.9833 39.0319 43.6527 39.2858 44.3221 39.2858C44.9922 39.2858 45.6616 39.0319 46.1716 38.5233L46.3665 38.3289C47.3857 37.3125 47.3857 35.6579 46.3665 34.6415L40.9931 29.2824H48V28.3439H40.052L37.1154 25.4152C38.9917 22.764 39.9734 19.6783 40.0588 16.5649H48V15.6263H40.0564C39.9358 11.6589 38.3768 7.72721 35.3473 4.70539C35.0415 4.40039 34.7188 4.12289 34.395 3.84734H48V2.90879ZM45.701 35.3051C46.0173 35.6206 46.1913 36.0395 46.1913 36.4852C46.1913 36.9309 46.0173 37.3498 45.701 37.6653L45.5061 37.8596C44.8734 38.4893 43.7715 38.4906 43.1388 37.8596L33.9898 28.7356C34.458 28.3627 34.9138 27.9666 35.3473 27.5343C35.7808 27.102 36.1779 26.6474 36.5519 26.1805L45.701 35.3051ZM34.6818 26.8706C28.7371 32.7984 19.0647 32.7984 13.1213 26.8706C10.2415 23.9987 8.65586 20.181 8.65586 16.1198C8.65586 12.0587 10.2415 8.24099 13.1213 5.36905C16.0936 2.40548 19.9973 0.923701 23.9016 0.923701C27.8058 0.923701 31.7095 2.40548 34.6818 5.36905C40.6246 11.2968 40.6252 20.9428 34.6818 26.8706Z" />
9
+ </svg>
@@ -116,6 +116,10 @@ export class InputOTP {
116
116
  * Emitted when the input group loses focus.
117
117
  */
118
118
  nanoBlur;
119
+ /**
120
+ * Emitted when the input group is cleared.
121
+ */
122
+ nanoClear;
119
123
  /**
120
124
  * Emitted when the input group has focus.
121
125
  */
@@ -136,6 +140,16 @@ export class InputOTP {
136
140
  this.inputRefs[tabbableIndex]?.focus();
137
141
  }
138
142
  }
143
+ /**
144
+ * Resets the input boxes to empty values.
145
+ */
146
+ async clear() {
147
+ this.value = '';
148
+ this.inputRefs.forEach((input, index) => {
149
+ input.value = this.inputValues[index] || '';
150
+ });
151
+ this.nanoClear.emit();
152
+ }
139
153
  valueChanged() {
140
154
  this.initializeValues();
141
155
  this.updateTabIndexes();
@@ -676,31 +690,29 @@ export class InputOTP {
676
690
  * - `valid` is true if all input boxes are filled with valid values.
677
691
  */
678
692
  computeValidity() {
679
- const { inputValues } = this;
680
693
  this.invalid =
681
694
  this.allowInvalid &&
682
695
  this.inputValues.some((val) => val !== '' && !this.validKeyPattern.test(val));
683
696
  this.valid =
684
697
  this.inputValues.length === this.length &&
685
698
  this.inputValues.every((val) => val !== '' && this.validKeyPattern.test(val));
686
- inputValues.some((v) => v !== '' && !this.validKeyPattern.test(v));
687
699
  }
688
700
  render() {
689
701
  const { disabled, hasFocus, inputId, inputRefs, inputValues, length, readonly, invalid, valid, } = this;
690
702
  const inputmode = this.getInputmode();
691
703
  const tabbableIndex = this.getTabbableIndex();
692
704
  const pattern = this.getPattern();
693
- return (h(Host, { key: '9b64211ca6a227c5f905a76a50ca3a44eff0a96b', class: {
705
+ return (h(Host, { key: '69c1b3c4a4cae21665bb7e3646a27a89f8d0a73b', class: {
694
706
  'has-focus': hasFocus,
695
707
  'input-otp-disabled': disabled,
696
708
  'input-otp-readonly': readonly,
697
709
  'nano-invalid': invalid,
698
710
  'nano-valid': valid,
699
- } }, h("div", { key: 'cc7fb4411962398f143d2dd17c40448111956e80', class: "input-otp-container" }, h("div", { key: '4408d19628b34a25cb3bc39a0df1dd859700399f', 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: 'cc45bac1e7f7675b467bae6153d9ffa586ec6655', class: {
711
+ } }, h("div", { key: '9fcd9882d552cde88adfa7578e556155651bbb4d', class: "input-otp-container" }, h("div", { key: '3e2c1a83282c08c1ccef81c4f13a895f1efeec13', 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: 'b5d9d9f3023cca6fcf9d8a394287de2333eeff54', class: {
700
712
  'input-otp-icon': true,
701
713
  'input-otp-icon--valid': valid,
702
714
  'input-otp-icon--invalid': invalid,
703
- }, part: "validity-icon" }, h("slot", { key: '84bd77959eaa572898cd48525512d93b6406b6b6', name: "validity-icon" }, h("nano-icon", { key: 'c903d61964571e006aca28afea7a911f47527d43', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (h("div", { key: 'ddbf6145b86b48ad942227ec15ab419612e5ef41', class: "input-otp-description" }, h("slot", { key: '56862b93b96aee7ecad1b36472666f94f2021a5f' })))));
715
+ }, part: "validity-icon" }, h("slot", { key: 'd4a3123b713487f579a503ea1158e73b97a35198', name: "validity-icon" }, h("nano-icon", { key: '2d7886aadaaa786f3594ace3d4fa3d2ebbdc30c3', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (h("div", { key: '32b6883425e8f62bda344ad6f92ff63a5fef98f4', class: "input-otp-description" }, h("slot", { key: '81b5c65f7c8bab2f8bf371c03bc5a2ae455b6c3f' })))));
704
716
  }
705
717
  static get is() { return "nano-input-otp"; }
706
718
  static get encapsulation() { return "scoped"; }
@@ -989,6 +1001,21 @@ export class InputOTP {
989
1001
  }
990
1002
  }
991
1003
  }
1004
+ }, {
1005
+ "method": "nanoClear",
1006
+ "name": "nanoClear",
1007
+ "bubbles": true,
1008
+ "cancelable": true,
1009
+ "composed": true,
1010
+ "docs": {
1011
+ "tags": [],
1012
+ "text": "Emitted when the input group is cleared."
1013
+ },
1014
+ "complexType": {
1015
+ "original": "void",
1016
+ "resolved": "void",
1017
+ "references": {}
1018
+ }
992
1019
  }, {
993
1020
  "method": "nanoFocus",
994
1021
  "name": "nanoFocus",
@@ -1036,6 +1063,23 @@ export class InputOTP {
1036
1063
  "text": "index - The index of the input box to focus (0-based).\nIf provided and the input box has a value, the input box at that index will be focused.\nOtherwise, the first empty input box or the last input if all are filled will be focused."
1037
1064
  }]
1038
1065
  }
1066
+ },
1067
+ "clear": {
1068
+ "complexType": {
1069
+ "signature": "() => Promise<void>",
1070
+ "parameters": [],
1071
+ "references": {
1072
+ "Promise": {
1073
+ "location": "global",
1074
+ "id": "global::Promise"
1075
+ }
1076
+ },
1077
+ "return": "Promise<void>"
1078
+ },
1079
+ "docs": {
1080
+ "text": "Resets the input boxes to empty values.",
1081
+ "tags": []
1082
+ }
1039
1083
  }
1040
1084
  };
1041
1085
  }
@@ -84,7 +84,8 @@ export class HasSlotController {
84
84
  // * Regular shadow DOM component *
85
85
  childNodes = [...this.host.shadowRoot.childNodes];
86
86
  }
87
- else if (!this.host.classList.contains('hydrated')) {
87
+ else if (!this.host.classList.contains('hydrated') &&
88
+ this.host.__childNodes) {
88
89
  // * Non-shadow, polyfilled component *
89
90
  // Component has not done initial render. Return component internals
90
91
  childNodes = [...(this.host?.__childNodes ?? [])];
@@ -94,7 +95,7 @@ export class HasSlotController {
94
95
  childNodes = [...this.host.childNodes];
95
96
  }
96
97
  return childNodes.some((node) => {
97
- if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
98
+ if (node.nodeType === Node.TEXT_NODE && !!node.textContent.trim()) {
98
99
  return true;
99
100
  }
100
101
  if (node.nodeType === Node.ELEMENT_NODE) {
@@ -529,18 +529,18 @@ const DataList = /*@__PURE__*/ proxyCustomElement(class DataList extends HTMLEle
529
529
  }
530
530
  }
531
531
  render() {
532
- return (h(Host, { key: '269f57e6eccd251685f84a94d53f380d6545a3cb', class: "nano-datalist", role: this.actvOptEles.length ? 'listbox' : undefined, "aria-owns": this.optionIds.length ? this.optionIds.join(' ') : undefined, "aria-label": this.optionIds.length
532
+ return (h(Host, { key: '8acb3be76246d665171db96444cff3a5141e1132', class: "nano-datalist", role: this.actvOptEles.length ? 'listbox' : undefined, "aria-owns": this.optionIds.length ? this.optionIds.join(' ') : undefined, "aria-label": this.optionIds.length
533
533
  ? 'Select options from the list below'
534
- : undefined }, h("nano-dropdown", { key: 'ee6398b356dc1a0ff9fa35e84955314fc95435b6', part: "dropdown", exportparts: "trigger:dropdown__trigger, panel:dropdown__panel", ...this.dropDownConfig, ref: (el) => (this.nanoDropdown = el), dialogTitle: "Select options from the list below", class: {
534
+ : undefined }, h("nano-dropdown", { key: '56c051873a20a3dab17a36eec1a2f040f83247fa', part: "dropdown", exportparts: "trigger:dropdown__trigger, panel:dropdown__panel", ...this.dropDownConfig, ref: (el) => (this.nanoDropdown = el), dialogTitle: "Select options from the list below", class: {
535
535
  dlist__dropdown: true,
536
536
  'dlist--isfiltered': this.isFiltered,
537
- }, onNanoAfterShow: this.handleShow, onNanoAfterHide: this.handleHide, role: "group" }, h("nano-menu", { key: 'f80006a5ba62c227094da52672b4abf6ee6335dc', part: "main-menu", ref: (el) => (this.listBox = el), hidden: !this.actvOptEles.length, type: "listbox", label: this.inputLabel ? this.inputLabel.textContent : undefined, class: {
537
+ }, onNanoAfterShow: this.handleShow, onNanoAfterHide: this.handleHide, role: "group" }, h("nano-menu", { key: '7559b648617c8d32f61c670e4dc78c0d60d36dc4', part: "main-menu", ref: (el) => (this.listBox = el), hidden: !this.actvOptEles.length, type: "listbox", label: this.inputLabel ? this.inputLabel.textContent : undefined, class: {
538
538
  dlist__menu: true,
539
539
  'dlist__menu--open': this.dropwdownOpen,
540
- }, tabIndex: -1, onNanoSelect: this.optSelected, onKeyDown: this.optionKeyDown }, h("slot", { key: '8a2d3160b990c99baeaf4fd9bdd7bb04229d642c', name: "list-top" }), h("slot", { key: '2230e4458be0998d59d18250e1d22188baf2f6b1' }), h("slot", { key: 'fca84cbd01495e4b62ba95c4c07681f506939d3f', name: "internal-opts" }), h("slot", { key: '076fd81c15f5ac6590e5311503262a07f60e8454', name: "list-bottom" })), h("nano-menu", { key: 'd4878bc502b4fcc0de01f67b5065ad017f445f75', part: "no-result-menu", type: "listbox", label: "No results found", hidden: !!this.actvOptEles.length, class: {
540
+ }, tabIndex: -1, onNanoSelect: this.optSelected, onKeyDown: this.optionKeyDown }, h("slot", { key: '02bd8ba511db314637e8991d29234a22967cf27d', name: "list-top" }), h("slot", { key: 'cb0234e0dd103293c1f1292af62575dd766af730' }), h("slot", { key: '0adac42b20ee0338de74217e6e91c00be6b5b6a7', name: "internal-opts" }), h("slot", { key: '906255e4e6fdc87fa8bf6e278ad076f179553925', name: "list-bottom" })), h("nano-menu", { key: '9aa978054227c9bb928c06ce93303ceda48cbf29', part: "no-result-menu", type: "listbox", label: "No results found", hidden: !!this.actvOptEles.length, class: {
541
541
  dlist__menu: true,
542
542
  'dlist__menu--open': this.dropwdownOpen,
543
- } }, h("slot", { key: '2ac583af3ac8b24ace627637ab86471999df9465', name: "no-result" })), !!this.actvOptEles && (h("div", { key: '4971780255baf694fcc447756ca02e1115ece871', class: "dlist__status" }, this.actvOptEles.length, " result", this.actvOptEles.length > 1 ? 's' : '', " available.")))));
543
+ } }, h("slot", { key: '4e2ce9dcb39d0c823ed27f13dc8c9a8873f0ca9f', name: "no-result" })), !!this.actvOptEles && (h("div", { key: 'c6bf0c88d7b1fcd24b2882c7db851ffca2e77ba3', class: "dlist__status" }, this.actvOptEles.length, " result", this.actvOptEles.length > 1 ? 's' : '', " available.")))));
544
544
  }
545
545
  static get watchers() { return {
546
546
  "open": ["openWatcher"],
@@ -6,7 +6,7 @@ import { g as getClassMap } from './theme.js';
6
6
  import { d as debounce } from './throttle.js';
7
7
  import { t as transformTag, h } from './renderer.js';
8
8
 
9
- const checkboxGroupCss = ".sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-checkbox-group-h{--label-color:var(--nano-color-base-1000);--label-font-size:var(--nano-font-size-xs);--invalid-msg-color:var(--nano-color-danger-1100);--help-msg-color:var(--nano-color-base-1000);--more-font-size:var(--nano-font-size-2xs);display:block;inline-size:100%}.sc-nano-checkbox-group-h *.sc-nano-checkbox-group{box-sizing:inherit}.cbgroup.sc-nano-checkbox-group{margin:0;padding:0;border:0}.cbgroup__error.sc-nano-checkbox-group,.cbgroup__help.sc-nano-checkbox-group,.cbgroup__more.sc-nano-checkbox-group{display:block;inline-size:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cbgroup__error.sc-nano-checkbox-group,.cbgroup__help.sc-nano-checkbox-group{inset-block-start:0;inset-inline-start:0;position:absolute;font-size:var(--more-font-size);line-height:1.2;transition:0.3s ease-out opacity;font-style:italic}.show-error.sc-nano-checkbox-group .cbgroup__error.sc-nano-checkbox-group,.show-error.sc-nano-checkbox-group .cbgroup__help.sc-nano-checkbox-group{opacity:1}.cbgroup__error.sc-nano-checkbox-group{color:var(--invalid-msg-color);opacity:0}.has-error.sc-nano-checkbox-group .cbgroup__error.sc-nano-checkbox-group{opacity:1}.cbgroup__help.sc-nano-checkbox-group{opacity:1;color:var(--help-msg-color)}.has-error.sc-nano-checkbox-group .cbgroup__help.sc-nano-checkbox-group{opacity:0}.cbgroup__more.sc-nano-checkbox-group{block-size:1em;margin-block:var(--nano-spacing-sm) 0;position:relative;opacity:0;display:none;transition:all var(--nano-transition-fast) ease;transition-behavior:allow-discrete}.has-helper.sc-nano-checkbox-group .cbgroup__more.sc-nano-checkbox-group,.has-error.sc-nano-checkbox-group .cbgroup__more.sc-nano-checkbox-group{display:block;opacity:1}.cbgroup__legend.sc-nano-checkbox-group{font-size:var(--nano-font-size-xs);line-height:var(--nano-line-height-normal);letter-spacing:var(--nano-letter-spacing-loose);padding:0 0 0.9375rem;margin:0;display:block;inline-size:100%}.cbgroup__legend.visually-hide.sc-nano-checkbox-group{clip-path:inset(50%);block-size:1px;overflow:hidden;position:absolute;white-space:nowrap;inline-size:1px}.cbgroup__cbs.sc-nano-checkbox-group{margin:0;padding:0;display:flex;flex-direction:column;gap:var(--nano-spacing-md)}.types-segment.sc-nano-checkbox-group-h .cbgroup__cbs.sc-nano-checkbox-group{flex-direction:row;gap:0}.types-tag.sc-nano-checkbox-group-h .cbgroup__cbs.sc-nano-checkbox-group{flex-direction:row;gap:var(--nano-spacing-sm)}";
9
+ const checkboxGroupCss = ".sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{box-sizing:border-box}[hidden].sc-nano-checkbox-group{display:none !important}@media (prefers-reduced-motion: reduce){.sc-nano-checkbox-group-h,*.sc-nano-checkbox-group,*.sc-nano-checkbox-group::before,*.sc-nano-checkbox-group::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}}.sc-nano-checkbox-group-h{--label-color:var(--nano-color-base-1000);--label-font-size:var(--nano-font-size-xs);--invalid-msg-color:var(--nano-color-danger-1100);--help-msg-color:var(--nano-color-base-1000);--more-font-size:var(--nano-font-size-2xs);--gap:var(--nano-spacing-md);display:block;inline-size:100%}.sc-nano-checkbox-group-h *.sc-nano-checkbox-group{box-sizing:inherit}.cbgroup.sc-nano-checkbox-group{margin:0;padding:0;border:0}.cbgroup__error.sc-nano-checkbox-group,.cbgroup__help.sc-nano-checkbox-group,.cbgroup__more.sc-nano-checkbox-group{display:block;inline-size:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cbgroup__error.sc-nano-checkbox-group,.cbgroup__help.sc-nano-checkbox-group{inset-block-start:0;inset-inline-start:0;position:absolute;font-size:var(--more-font-size);line-height:1.2;transition:0.3s ease-out opacity;font-style:italic}.show-error.sc-nano-checkbox-group .cbgroup__error.sc-nano-checkbox-group,.show-error.sc-nano-checkbox-group .cbgroup__help.sc-nano-checkbox-group{opacity:1}.cbgroup__error.sc-nano-checkbox-group{color:var(--invalid-msg-color);opacity:0}.has-error.sc-nano-checkbox-group .cbgroup__error.sc-nano-checkbox-group{opacity:1}.cbgroup__help.sc-nano-checkbox-group{opacity:1;color:var(--help-msg-color)}.has-error.sc-nano-checkbox-group .cbgroup__help.sc-nano-checkbox-group{opacity:0}.cbgroup__more.sc-nano-checkbox-group{block-size:1em;margin-block:var(--nano-spacing-sm) 0;position:relative;opacity:0;display:none;transition:all var(--nano-transition-fast) ease;transition-behavior:allow-discrete}.has-helper.sc-nano-checkbox-group .cbgroup__more.sc-nano-checkbox-group,.has-error.sc-nano-checkbox-group .cbgroup__more.sc-nano-checkbox-group{display:block;opacity:1}.cbgroup__legend.sc-nano-checkbox-group{font-size:var(--nano-font-size-xs);line-height:var(--nano-line-height-normal);letter-spacing:var(--nano-letter-spacing-loose);padding:0 0 0.9375rem;margin:0;display:block;inline-size:100%}.cbgroup__legend.visually-hide.sc-nano-checkbox-group{clip-path:inset(50%);block-size:1px;overflow:hidden;position:absolute;white-space:nowrap;inline-size:1px}.cbgroup__cbs.sc-nano-checkbox-group{margin:0;padding:0;display:flex;flex-direction:column;gap:var(--gap)}.types-segment.sc-nano-checkbox-group-h .cbgroup__cbs.sc-nano-checkbox-group{flex-direction:row;--gap:0}.types-tag.sc-nano-checkbox-group-h .cbgroup__cbs.sc-nano-checkbox-group{flex-direction:row;--gap:var(--nano-spacing-sm)}";
10
10
 
11
11
  const CheckboxGroup = /*@__PURE__*/ proxyCustomElement(class CheckboxGroup extends HTMLElement {
12
12
  constructor() {
@@ -367,7 +367,7 @@ function mergeCellProperties(rowIndex, colIndex, defaultProps) {
367
367
  */
368
368
  function colheadFootRender(col) {
369
369
  const tpl = col?.columnTemplate;
370
- return tpl ? (tpl(h, col)) : (h(Fragment, null, col.title));
370
+ return tpl ? tpl(h, col) : (h(Fragment, null, col.title));
371
371
  }
372
372
  function headerPinClasses(type, vPinned, toString = false) {
373
373
  const classes = {
@@ -504,7 +504,7 @@ function cellRender(rowIndex, colIndex) {
504
504
  // custom rendering can render to the templateEle OR return a promise<string>
505
505
  tplResult = result && result['then'] ? result : templateEle;
506
506
  }
507
- return tplResult ? (tplResult) : model.cellModel !== undefined && model.cellModel !== null ? (h$1(Fragment, null, model.cellModel?.toString())) : ('');
507
+ return tplResult ? tplResult : model.cellModel !== undefined && model.cellModel !== null ? (h$1(Fragment, null, model.cellModel?.toString())) : ('');
508
508
  }
509
509
  const baseCellClasses = (colIndex, toString = false) => {
510
510
  const store = fetchStores();
@@ -15,6 +15,7 @@ const InputOTP = /*@__PURE__*/ proxyCustomElement(class InputOTP extends HTMLEle
15
15
  this.nanoChange = createEvent(this, "nanoChange", 7);
16
16
  this.nanoComplete = createEvent(this, "nanoComplete", 7);
17
17
  this.nanoBlur = createEvent(this, "nanoBlur", 7);
18
+ this.nanoClear = createEvent(this, "nanoClear", 7);
18
19
  this.nanoFocus = createEvent(this, "nanoFocus", 7);
19
20
  }
20
21
  inputRefs = [];
@@ -118,6 +119,10 @@ const InputOTP = /*@__PURE__*/ proxyCustomElement(class InputOTP extends HTMLEle
118
119
  * Emitted when the input group loses focus.
119
120
  */
120
121
  nanoBlur;
122
+ /**
123
+ * Emitted when the input group is cleared.
124
+ */
125
+ nanoClear;
121
126
  /**
122
127
  * Emitted when the input group has focus.
123
128
  */
@@ -138,6 +143,16 @@ const InputOTP = /*@__PURE__*/ proxyCustomElement(class InputOTP extends HTMLEle
138
143
  this.inputRefs[tabbableIndex]?.focus();
139
144
  }
140
145
  }
146
+ /**
147
+ * Resets the input boxes to empty values.
148
+ */
149
+ async clear() {
150
+ this.value = '';
151
+ this.inputRefs.forEach((input, index) => {
152
+ input.value = this.inputValues[index] || '';
153
+ });
154
+ this.nanoClear.emit();
155
+ }
141
156
  valueChanged() {
142
157
  this.initializeValues();
143
158
  this.updateTabIndexes();
@@ -678,31 +693,29 @@ const InputOTP = /*@__PURE__*/ proxyCustomElement(class InputOTP extends HTMLEle
678
693
  * - `valid` is true if all input boxes are filled with valid values.
679
694
  */
680
695
  computeValidity() {
681
- const { inputValues } = this;
682
696
  this.invalid =
683
697
  this.allowInvalid &&
684
698
  this.inputValues.some((val) => val !== '' && !this.validKeyPattern.test(val));
685
699
  this.valid =
686
700
  this.inputValues.length === this.length &&
687
701
  this.inputValues.every((val) => val !== '' && this.validKeyPattern.test(val));
688
- inputValues.some((v) => v !== '' && !this.validKeyPattern.test(v));
689
702
  }
690
703
  render() {
691
704
  const { disabled, hasFocus, inputId, inputRefs, inputValues, length, readonly, invalid, valid, } = this;
692
705
  const inputmode = this.getInputmode();
693
706
  const tabbableIndex = this.getTabbableIndex();
694
707
  const pattern = this.getPattern();
695
- return (h(Host, { key: '9b64211ca6a227c5f905a76a50ca3a44eff0a96b', class: {
708
+ return (h(Host, { key: '69c1b3c4a4cae21665bb7e3646a27a89f8d0a73b', class: {
696
709
  'has-focus': hasFocus,
697
710
  'input-otp-disabled': disabled,
698
711
  'input-otp-readonly': readonly,
699
712
  'nano-invalid': invalid,
700
713
  'nano-valid': valid,
701
- } }, h("div", { key: 'cc7fb4411962398f143d2dd17c40448111956e80', class: "input-otp-container" }, h("div", { key: '4408d19628b34a25cb3bc39a0df1dd859700399f', 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: 'cc45bac1e7f7675b467bae6153d9ffa586ec6655', class: {
714
+ } }, h("div", { key: '9fcd9882d552cde88adfa7578e556155651bbb4d', class: "input-otp-container" }, h("div", { key: '3e2c1a83282c08c1ccef81c4f13a895f1efeec13', 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: 'b5d9d9f3023cca6fcf9d8a394287de2333eeff54', class: {
702
715
  'input-otp-icon': true,
703
716
  'input-otp-icon--valid': valid,
704
717
  'input-otp-icon--invalid': invalid,
705
- }, part: "validity-icon" }, h("slot", { key: '84bd77959eaa572898cd48525512d93b6406b6b6', name: "validity-icon" }, h("nano-icon", { key: 'c903d61964571e006aca28afea7a911f47527d43', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (h("div", { key: 'ddbf6145b86b48ad942227ec15ab419612e5ef41', class: "input-otp-description" }, h("slot", { key: '56862b93b96aee7ecad1b36472666f94f2021a5f' })))));
718
+ }, part: "validity-icon" }, h("slot", { key: 'd4a3123b713487f579a503ea1158e73b97a35198', name: "validity-icon" }, h("nano-icon", { key: '2d7886aadaaa786f3594ace3d4fa3d2ebbdc30c3', hidden: !valid, name: "light/circle-check", class: "input-otp-valid-icon", "aria-label": "Valid input" }))))), this.slotCtrl.has('[default]') && (h("div", { key: '32b6883425e8f62bda344ad6f92ff63a5fef98f4', class: "input-otp-description" }, h("slot", { key: '81b5c65f7c8bab2f8bf371c03bc5a2ae455b6c3f' })))));
706
719
  }
707
720
  static get watchers() { return {
708
721
  "value": ["valueChanged"]
@@ -723,7 +736,8 @@ const InputOTP = /*@__PURE__*/ proxyCustomElement(class InputOTP extends HTMLEle
723
736
  "previousInputValues": [32],
724
737
  "invalid": [32],
725
738
  "valid": [32],
726
- "setFocus": [64]
739
+ "setFocus": [64],
740
+ "clear": [64]
727
741
  }, undefined, {
728
742
  "value": ["valueChanged"]
729
743
  }]);