@nanoporetech-digital/components 5.7.0 → 5.8.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 (111) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/nano-components.cjs.js +1 -1
  4. package/dist/cjs/nano-details.cjs.entry.js +70 -56
  5. package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
  6. package/dist/cjs/nano-grid_2.cjs.entry.js +10 -8
  7. package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nano-slide.cjs.entry.js +1 -1
  9. package/dist/cjs/nano-slide.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nano-slides.cjs.entry.js +1 -1
  11. package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nano-tab-group.cjs.entry.js +1 -1
  13. package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
  14. package/dist/cjs/nano-tab.cjs.entry.js +2 -2
  15. package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
  16. package/dist/cjs/{nano-table-e0a0c40f.js → nano-table-31c953f4.js} +15 -5
  17. package/dist/cjs/nano-table-31c953f4.js.map +1 -0
  18. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  19. package/dist/cjs/{table.worker-249333f1.js → table.worker-31839f14.js} +2 -2
  20. package/dist/cjs/table.worker-31839f14.js.map +1 -0
  21. package/dist/collection/components/details/details.css +29 -54
  22. package/dist/collection/components/details/details.js +95 -91
  23. package/dist/collection/components/details/details.js.map +1 -1
  24. package/dist/collection/components/grid/grid.js +19 -17
  25. package/dist/collection/components/grid/grid.js.map +1 -1
  26. package/dist/collection/components/slides/slide.css +4 -0
  27. package/dist/collection/components/slides/slides.css +2 -1
  28. package/dist/collection/components/table/table-interface.js.map +1 -1
  29. package/dist/collection/components/table/table.cell.js +13 -3
  30. package/dist/collection/components/table/table.cell.js.map +1 -1
  31. package/dist/collection/components/table/table.js +5 -2
  32. package/dist/collection/components/table/table.js.map +1 -1
  33. package/dist/collection/components/tabs/tab-group.js +1 -1
  34. package/dist/collection/components/tabs/tab-group.js.map +1 -1
  35. package/dist/collection/components/tabs/tab.js +2 -2
  36. package/dist/collection/components/tabs/tab.js.map +1 -1
  37. package/dist/components/grid.js +19 -17
  38. package/dist/components/grid.js.map +1 -1
  39. package/dist/components/nano-details.js +73 -63
  40. package/dist/components/nano-details.js.map +1 -1
  41. package/dist/components/nano-slide.js +1 -1
  42. package/dist/components/nano-slide.js.map +1 -1
  43. package/dist/components/nano-slides.js +1 -1
  44. package/dist/components/nano-slides.js.map +1 -1
  45. package/dist/components/nano-tab-group.js +1 -1
  46. package/dist/components/nano-tab-group.js.map +1 -1
  47. package/dist/components/nano-tab.js +2 -2
  48. package/dist/components/nano-tab.js.map +1 -1
  49. package/dist/components/table.js +13 -3
  50. package/dist/components/table.js.map +1 -1
  51. package/dist/esm/loader.js +1 -1
  52. package/dist/esm/nano-components.js +1 -1
  53. package/dist/esm/nano-details.entry.js +71 -57
  54. package/dist/esm/nano-details.entry.js.map +1 -1
  55. package/dist/esm/nano-grid_2.entry.js +10 -8
  56. package/dist/esm/nano-grid_2.entry.js.map +1 -1
  57. package/dist/esm/nano-slide.entry.js +1 -1
  58. package/dist/esm/nano-slide.entry.js.map +1 -1
  59. package/dist/esm/nano-slides.entry.js +1 -1
  60. package/dist/esm/nano-slides.entry.js.map +1 -1
  61. package/dist/esm/nano-tab-group.entry.js +1 -1
  62. package/dist/esm/nano-tab-group.entry.js.map +1 -1
  63. package/dist/esm/nano-tab.entry.js +2 -2
  64. package/dist/esm/nano-tab.entry.js.map +1 -1
  65. package/dist/esm/{nano-table-d769b1dd.js → nano-table-c365bb42.js} +15 -5
  66. package/dist/esm/nano-table-c365bb42.js.map +1 -0
  67. package/dist/esm/nano-table.entry.js +1 -1
  68. package/dist/esm/{table.worker-cb6af8ab.js → table.worker-66324663.js} +2 -2
  69. package/dist/esm/table.worker-66324663.js.map +1 -0
  70. package/dist/nano-components/nano-components.esm.js +1 -1
  71. package/dist/nano-components/nano-components.esm.js.map +1 -1
  72. package/dist/nano-components/p-20086faa.entry.js +5 -0
  73. package/dist/nano-components/p-20086faa.entry.js.map +1 -0
  74. package/dist/nano-components/p-2cc0faeb.js +5 -0
  75. package/dist/nano-components/{p-d62b48bc.entry.js → p-3cac5f6d.entry.js} +2 -2
  76. package/dist/nano-components/{p-d62b48bc.entry.js.map → p-3cac5f6d.entry.js.map} +1 -1
  77. package/dist/nano-components/p-3d8fb8a1.entry.js +5 -0
  78. package/dist/nano-components/p-3d8fb8a1.entry.js.map +1 -0
  79. package/dist/nano-components/p-512194c4.entry.js +5 -0
  80. package/dist/nano-components/p-512194c4.entry.js.map +1 -0
  81. package/dist/nano-components/p-7c0c892a.js +5 -0
  82. package/dist/nano-components/p-7c0c892a.js.map +1 -0
  83. package/dist/nano-components/{p-bedada62.entry.js → p-92195a83.entry.js} +2 -2
  84. package/dist/nano-components/{p-bedada62.entry.js.map → p-92195a83.entry.js.map} +1 -1
  85. package/dist/nano-components/{p-6106c383.entry.js → p-935968b8.entry.js} +3 -3
  86. package/dist/nano-components/{p-6106c383.entry.js.map → p-935968b8.entry.js.map} +1 -1
  87. package/dist/nano-components/{p-6ae6d4a6.entry.js → p-c2ccac87.entry.js} +2 -2
  88. package/dist/types/components/details/details.d.ts +14 -26
  89. package/dist/types/components/grid/grid.d.ts +1 -0
  90. package/dist/types/components/table/table-interface.d.ts +2 -1
  91. package/dist/types/components/table/table.d.ts +1 -1
  92. package/dist/types/components.d.ts +16 -10
  93. package/docs-json.json +44 -67
  94. package/docs-vscode.json +4 -33
  95. package/hydrate/index.js +114 -83
  96. package/package.json +2 -2
  97. package/dist/cjs/nano-table-e0a0c40f.js.map +0 -1
  98. package/dist/cjs/table.worker-249333f1.js.map +0 -1
  99. package/dist/esm/nano-table-d769b1dd.js.map +0 -1
  100. package/dist/esm/table.worker-cb6af8ab.js.map +0 -1
  101. package/dist/nano-components/p-3018d4df.js +0 -5
  102. package/dist/nano-components/p-3018d4df.js.map +0 -1
  103. package/dist/nano-components/p-50f2fdb3.entry.js +0 -5
  104. package/dist/nano-components/p-50f2fdb3.entry.js.map +0 -1
  105. package/dist/nano-components/p-94b4479b.js +0 -5
  106. package/dist/nano-components/p-9d65f5de.entry.js +0 -5
  107. package/dist/nano-components/p-9d65f5de.entry.js.map +0 -1
  108. package/dist/nano-components/p-a03993f9.entry.js +0 -5
  109. package/dist/nano-components/p-a03993f9.entry.js.map +0 -1
  110. /package/dist/nano-components/{p-6ae6d4a6.entry.js.map → p-2cc0faeb.js.map} +0 -0
  111. /package/dist/nano-components/{p-94b4479b.js.map → p-c2ccac87.entry.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -12195,7 +12195,7 @@ const displayTransition = (el, className, show = true, showDisplay = 'block') =>
12195
12195
  });
12196
12196
  };
12197
12197
 
12198
- const detailsCss = "/*!@:host*/.sc-nano-details-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-details,*.sc-nano-details::before,*.sc-nano-details::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-details{display:none !important}/*!@:host*/.sc-nano-details-h{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:1em;--btn-padding:var(--padding);--btn-bg-color:var(--nano-color-contrast, #dad6d3);--btn-bg-color--open:var(--nano-color-base, #dad6d3);--btn-bg-color--hover:var(--nano-color-tint, #f9f9fb);--btn-text-color:var(--nano-color-base, #455556);--btn-text-color--open:var(--nano-color-contrast, var(--btn-text-color));--btn-text-color--hover:var(--nano-color-contrast, var(--btn-text-color));--content-bg-color:transparent;--content-text-color:#455556;--content-transition:height 0.2s ease-out;--border-width:none;--border-color:none;--border-style:none;--border-radius:none;--box-shadow:none;--focus-style:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:block;border-style:var(--border-style);border-width:var(--border-width-dims);border-color:var(--border-color);border-radius:var(--border-radius-dims);box-shadow:var(--box-shadow)}/*!@:host(:last-of-type)*/.sc-nano-details-h:last-of-type{--border-width-dims:0 var(--border-width) var(--border-width);--border-radius-dims:0 0 var(--border-radius) var(--border-radius)}/*!@:host(:last-of-type) .open .content*/.sc-nano-details-h:last-of-type .open.sc-nano-details .content.sc-nano-details{border-radius:0 0 var(--border-radius) var(--border-radius)}/*!@:host(:first-of-type)*/.sc-nano-details-h:first-of-type{--border-radius-dims:var(--border-radius) var(--border-radius) 0 0;--border-width-dims:var(--border-width)}/*!@:host(:first-of-type:last-of-type)*/.sc-nano-details-h:first-of-type:last-of-type{--border-radius-dims:var(--border-radius);--border-width-dims:var(--border-width)}/*!@:host(:not(:last-of-type):not(:first-of-type))*/.sc-nano-details-h:not(:last-of-type):not(:first-of-type){--border-width-dims:0 var(--border-width) var(--border-width)}/*!@:host(.nano-color)*/.nano-color.sc-nano-details-h{--btn-bg-color:var(--nano-color-contrast, var(--nano-color-primary-contrast, #fff));--btn-bg-color--open:var(--nano-color-base, var(--nano-color-primary, #007495));--btn-bg-color--hover:var(--nano-color-tint, var(--nano-color-primary-tint, #2689a5));--btn-text-color:var(--nano-color-base, var(--nano-color-primary, #007495));--btn-text-color--open:var(\n --nano-color-contrast,\n var(--nano-color-primary-contrast, #fff)\n );--btn-text-color--hover:var(\n --nano-color-contrast,\n var(--nano-color-primary-contrast, #fff)\n )}/*!@button*/button.sc-nano-details{inset-block:0;inset-inline:auto;margin:0;inline-size:100%;block-size:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none;outline:none;height:auto;padding:var(--btn-padding);text-align:inherit;position:relative;font-size:1em;margin:0;transition:0.3s ease background, 0.3s ease color, 0.15s ease box-shadow;display:flex;align-items:center;background:var(--btn-bg-color);color:var(--btn-text-color);border-radius:var(--border-radius-dims)}/*!@button::-moz-focus-inner*/button.sc-nano-details::-moz-focus-inner{border:0}/*!@button:focus*/button.sc-nano-details:focus{box-shadow:var(--focus-style);outline:none;position:relative;z-index:1}/*!@:hover button*/.sc-nano-details:hover button.sc-nano-details{background:var(--btn-bg-color--hover);color:var(--btn-text-color--hover)}/*!@.open button*/.open.sc-nano-details button.sc-nano-details{background:var(--btn-bg-color--open);color:var(--btn-text-color--open);border-end-end-radius:0;border-end-start-radius:0}/*!@button .label*/button.sc-nano-details .label.sc-nano-details{width:100%;max-width:100%;max-height:100%;flex:1;display:inline-block}/*!@button .icon*/button.sc-nano-details .icon.sc-nano-details{line-height:0;flex-direction:column;justify-content:center;display:inline-block;color:currentcolor;transition:0.3s ease transform;transform-origin:center}/*!@button .icon--start*/button.sc-nano-details .icon--start.sc-nano-details{margin-inline:0 var(--padding);margin-block:0}/*!@button .icon--end*/button.sc-nano-details .icon--end.sc-nano-details{margin-inline:var(--padding) 0;margin-block:0}/*!@button .icon ::slotted(nano-icon)*/button .icon .sc-nano-details-s>nano-icon{--color:currentcolor}/*!@.content*/.content.sc-nano-details{color:var(--content-text-color);background:var(--content-bg-color);height:0;overflow:hidden;transition:0.2s ease border-radius;outline:none}/*!@.loaded .content*/.loaded.sc-nano-details .content.sc-nano-details{transition:var(--content-transition), 0.2s ease border-radius}/*!@.content > **/.content.sc-nano-details>*.sc-nano-details{opacity:0;transition:opacity 0.2s ease-out}/*!@.open .content > **/.open.sc-nano-details .content.sc-nano-details>*.sc-nano-details{opacity:1}/*!@.content__area*/.content__area.sc-nano-details{padding:var(--padding)}";
12198
+ const detailsCss = "/*!@:host*/.sc-nano-details-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-details,*.sc-nano-details::before,*.sc-nano-details::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-details{display:none !important}/*!@:host*/.sc-nano-details-h{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:1em;--btn-padding:var(--padding);--btn-bg-color:var(--nano-color-contrast, #dad6d3);--btn-bg-color--open:var(--nano-color-base, #dad6d3);--btn-bg-color--hover:var(--nano-color-tint, #f9f9fb);--btn-text-color:var(--nano-color-base, #455556);--btn-text-color--open:var(--nano-color-contrast, var(--btn-text-color));--btn-text-color--hover:var(--nano-color-contrast, var(--btn-text-color));--content-transition:height 0.2s ease-out;--border-width:none;--border-color:none;--border-style:none;--border-radius:none;--box-shadow:none;--focus-style:var(--nano-control-focus-shadow, 0 0 0 0.1875rem var(--nano-control-focus-color, rgba(144, 198, 231, 0.8)));display:block;border-style:var(--border-style);border-width:var(--border-width-dims);border-color:var(--border-color);border-radius:var(--border-radius-dims);box-shadow:var(--box-shadow)}/*!@:host([disabled])*/[disabled].sc-nano-details-h{opacity:0.5}/*!@:host(:last-of-type)*/.sc-nano-details-h:last-of-type{--border-width-dims:0 var(--border-width) var(--border-width);--border-radius-dims:0 0 var(--border-radius) var(--border-radius)}/*!@:host(:last-of-type) .open .content*/.sc-nano-details-h:last-of-type .open.sc-nano-details .content.sc-nano-details{border-radius:0 0 var(--border-radius) var(--border-radius)}/*!@:host(:first-of-type)*/.sc-nano-details-h:first-of-type{--border-radius-dims:var(--border-radius) var(--border-radius) 0 0;--border-width-dims:var(--border-width)}/*!@:host(:first-of-type:last-of-type)*/.sc-nano-details-h:first-of-type:last-of-type{--border-radius-dims:var(--border-radius);--border-width-dims:var(--border-width)}/*!@:host(:not(:last-of-type):not(:first-of-type))*/.sc-nano-details-h:not(:last-of-type):not(:first-of-type){--border-width-dims:0 var(--border-width) var(--border-width)}/*!@.header*/.header.sc-nano-details{height:auto;padding:var(--btn-padding);text-align:inherit;position:relative;font-size:1em;line-height:1;margin:0;transition:0.3s ease background, 0.3s ease color, 0.15s ease box-shadow;display:flex;align-items:center;background:var(--btn-bg-color);color:var(--btn-text-color);border-radius:var(--border-radius-dims);cursor:pointer}/*!@.header::-webkit-details-marker*/.header.sc-nano-details::-webkit-details-marker{display:none}/*!@.header:focus*/.header.sc-nano-details:focus{outline:none}/*!@.header:focus-visible*/.header.sc-nano-details:focus-visible{box-shadow:var(--focus-style);outline:none;position:relative;z-index:1}/*!@.header:hover*/.header.sc-nano-details:hover{background:var(--btn-bg-color--hover);color:var(--btn-text-color--hover)}/*!@.open .header*/.open.sc-nano-details .header.sc-nano-details{background:var(--btn-bg-color--open);color:var(--btn-text-color--open);border-end-end-radius:0;border-end-start-radius:0}/*!@.disabled .header*/.disabled.sc-nano-details .header.sc-nano-details{cursor:not-allowed}/*!@.header .label*/.header.sc-nano-details .label.sc-nano-details{width:100%;max-width:100%;max-height:100%;flex:1;display:inline-block}/*!@.header .icon*/.header.sc-nano-details .icon.sc-nano-details{line-height:0;flex-direction:column;justify-content:center;display:inline-block;color:currentcolor;transition:0.3s ease transform;transform-origin:center}/*!@.header .icon--start*/.header.sc-nano-details .icon--start.sc-nano-details{margin-inline:0 var(--padding);margin-block:0}/*!@.header .icon--end*/.header.sc-nano-details .icon--end.sc-nano-details{margin-inline:var(--padding) 0;margin-block:0}/*!@.header .icon ::slotted(nano-icon)*/.header .icon .sc-nano-details-s>nano-icon{--color:currentcolor}/*!@.body*/.body.sc-nano-details{overflow:hidden;transition:var(--content-transition), 0.2s ease border-radius;outline:none}/*!@.body > **/.body.sc-nano-details>*.sc-nano-details{opacity:0;transition:opacity 0.2s ease-out}/*!@.open .body > **/.open.sc-nano-details .body.sc-nano-details>*.sc-nano-details{opacity:1}/*!@.content*/.content.sc-nano-details{padding:var(--padding)}";
12199
12199
 
12200
12200
  /**
12201
12201
  * A simple element used to hide or reveal more content with slide effect. Can be used independently or nested within a [accordion](story/components-accordion--accordion) element to add 'one item open at a time' support.
@@ -12206,10 +12206,12 @@ const detailsCss = "/*!@:host*/.sc-nano-details-h{box-sizing:border-box}/*!@*,\n
12206
12206
  * @slot label - can be used when you wish to insert complex label markup
12207
12207
  * @slot icon-end - used for icons at the end of the handle
12208
12208
  *
12209
- * @part button - the main details ui control
12209
+ * @part base - the root `details` element
12210
+ * @part header - the main `summary` ui control
12210
12211
  * @part label - the text wrapper of the ui control
12211
12212
  * @part icon--start - the icon wrapper at the start of the ui control
12212
12213
  * @part icon--end - the icon wrapper at the end of the ui control
12214
+ * @part body - the wrapper around content
12213
12215
  * @part content - the main content wrapper
12214
12216
  */
12215
12217
  class Details {
@@ -12217,27 +12219,38 @@ class Details {
12217
12219
  registerInstance(this, hostRef);
12218
12220
  this.nanoOpened = createEvent(this, "nanoOpened", 7);
12219
12221
  this.nanoClosed = createEvent(this, "nanoClosed", 7);
12220
- this.slideId = `nano-details-${slideIds++}`;
12221
12222
  this.stateChanging = false;
12222
- this.onKeyDown = (ev) => {
12223
- switch (ev.key) {
12223
+ this.onKeyDown = (e) => {
12224
+ if (this.stateChanging || this.disabled)
12225
+ return;
12226
+ switch (e.key) {
12224
12227
  case 'Enter':
12225
12228
  case ' ':
12229
+ e.preventDefault();
12226
12230
  this.open = !this.open;
12227
12231
  break;
12232
+ case 'ArrowUp':
12233
+ e.preventDefault();
12234
+ this.open = false;
12235
+ break;
12236
+ case 'ArrowDown':
12237
+ e.preventDefault();
12238
+ this.open = true;
12239
+ break;
12228
12240
  }
12229
12241
  };
12230
- this.onMouseDown = () => {
12231
- if (this.stateChanging)
12242
+ this.onMouseDown = (e) => {
12243
+ e.preventDefault();
12244
+ this.headerEl.focus();
12245
+ if (this.stateChanging || this.disabled)
12232
12246
  return;
12233
12247
  this.open = !this.open;
12234
12248
  };
12235
- this.isLoading = true;
12236
12249
  this.label = '';
12237
12250
  this.open = false;
12251
+ this.disabled = false;
12238
12252
  this.noHandle = false;
12239
12253
  this.iconRotation = 90;
12240
- this.color = undefined;
12241
12254
  }
12242
12255
  toggleClick() {
12243
12256
  this.stateChanging = true;
@@ -12247,72 +12260,80 @@ class Details {
12247
12260
  this.hide();
12248
12261
  }
12249
12262
  hide() {
12250
- this.nanoClosed.emit(this.open);
12251
- displayTransition(this.contentEl, 'is-shown', false).then(() => (this.stateChanging = false));
12252
- this.contentEl.style.height = '0px';
12263
+ const nanoClose = this.nanoClosed.emit(this.open);
12264
+ if (nanoClose.defaultPrevented) {
12265
+ this.open = true;
12266
+ this.detailsEl.open = true;
12267
+ return;
12268
+ }
12269
+ this.bodyEl.style.height = this.contentEl.scrollHeight + 'px';
12270
+ displayTransition(this.bodyEl, 'is-shown', false).then(() => {
12271
+ this.stateChanging = false;
12272
+ this.detailsEl.open = false;
12273
+ });
12274
+ requestAnimationFrame(() => {
12275
+ this.bodyEl.style.height = '0px';
12276
+ });
12253
12277
  }
12254
12278
  show() {
12255
- this.nanoOpened.emit();
12256
- displayTransition(this.contentEl, 'is-shown', true).then(() => {
12279
+ const nanoOpen = this.nanoOpened.emit();
12280
+ this.detailsEl.open = true;
12281
+ if (nanoOpen.defaultPrevented) {
12282
+ this.open = false;
12283
+ this.detailsEl.open = false;
12284
+ return;
12285
+ }
12286
+ displayTransition(this.bodyEl, 'is-shown', true).then(() => {
12257
12287
  this.stateChanging = false;
12288
+ this.bodyEl.style.height = 'auto';
12258
12289
  });
12259
- this.contentEl.style.height = this.contentArea.scrollHeight + 'px';
12290
+ this.bodyEl.style.height = this.contentEl.scrollHeight + 'px';
12260
12291
  }
12261
- resize() {
12262
- if (!this.open ||
12263
- !this.contentArea ||
12264
- !this.contentEl ||
12265
- this.stateChanging)
12292
+ attachMo() {
12293
+ if (this.mo || !this.detailsEl || !Build.isBrowser)
12266
12294
  return;
12267
- readTask(() => {
12268
- if (this.contentArea.scrollHeight > 0) {
12269
- writeTask(() => {
12270
- this.contentEl.style.height = this.contentArea.scrollHeight + 'px';
12271
- });
12295
+ this.mo = new MutationObserver((changes) => {
12296
+ if (this.stateChanging)
12297
+ return;
12298
+ for (const change of changes) {
12299
+ if (change.type === 'attributes' && change.attributeName === 'open') {
12300
+ this.open = this.detailsEl.open;
12301
+ }
12272
12302
  }
12273
12303
  });
12274
- }
12275
- attachRO() {
12276
- if (this.ro || !this.contentArea)
12277
- return;
12278
- const ro = (this.ro = new ResizeObserver(() => this.resize()));
12279
- ro.observe(this.contentArea);
12304
+ this.mo.observe(this.detailsEl, { attributes: true });
12280
12305
  }
12281
12306
  componentWillLoad() {
12282
- this.hasStartSlot = !!this.el.querySelector('[slot="icon-start"]');
12283
- this.hasEndSlot = !!this.el.querySelector('[slot="icon-end"]');
12284
- setTimeout(() => {
12285
- this.isLoading = false;
12286
- }, 100);
12307
+ this.hasStartSlot = !!this.host.querySelector('[slot="icon-start"]');
12308
+ this.hasEndSlot = !!this.host.querySelector('[slot="icon-end"]');
12287
12309
  }
12288
12310
  componentDidLoad() {
12289
- if (this.open) {
12290
- // disable animation on start
12291
- setTimeout(() => {
12292
- this.show();
12293
- }, 0);
12294
- }
12311
+ this.bodyEl.style.height = this.open ? 'auto' : '0';
12312
+ if (this.open)
12313
+ this.detailsEl.setAttribute('open', 'true');
12314
+ this.attachMo();
12295
12315
  }
12296
12316
  connectedCallback() {
12297
- return;
12317
+ this.attachMo();
12298
12318
  }
12299
12319
  disconnectedCallback() {
12300
- if (this.mo)
12320
+ if (this.mo) {
12301
12321
  this.mo.disconnect();
12302
- if (this.ro)
12303
- this.ro.disconnect();
12322
+ this.mo = undefined;
12323
+ }
12304
12324
  }
12305
12325
  render() {
12306
- return (hAsync(Host, { class: Object.assign({}, createColorClasses(this.color)) }, hAsync("div", { class: {
12326
+ return (hAsync("details", { part: "base", ref: (d) => (this.detailsEl = d), class: {
12327
+ details: true,
12307
12328
  open: this.open,
12308
- loaded: !this.isLoading,
12309
- } }, hAsync("button", { onKeyDown: this.onKeyDown, onMouseDown: this.onMouseDown, onTouchEnd: this.onMouseDown, "aria-controls": this.slideId, "aria-expanded": this.open ? 'true' : 'false', style: { display: this.noHandle ? 'none' : '' }, part: "button" }, this.hasStartSlot ? (hAsync("span", { part: "icon--start", class: "icon icon--start", style: {
12329
+ disabled: this.disabled,
12330
+ } }, hAsync("summary", { part: "header", "aria-controls": "content", "aria-expanded": this.open ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', tabindex: this.disabled ? '-1' : '0', style: { display: this.noHandle ? 'none' : '' }, id: "header", role: "button", class: "header", ref: (s) => (this.headerEl = s), onKeyDown: this.onKeyDown, onClick: this.onMouseDown }, this.hasStartSlot ? (hAsync("span", { part: "icon--start", class: "icon icon--start", style: {
12310
12331
  transform: this.open ? `rotate(${this.iconRotation}deg)` : '',
12311
- } }, hAsync("slot", { name: "icon-start" }))) : (''), hAsync("div", { class: "label", part: "label" }, this.label ? this.label : hAsync("slot", { name: "label" })), this.hasEndSlot ? (hAsync("span", { part: "icon--end", class: "icon icon--end", style: {
12332
+ } }, hAsync("slot", { name: "icon-start" }))) : (''), hAsync("div", { part: "label", class: "label" }, this.label ? this.label : hAsync("slot", { name: "label" })), this.hasEndSlot ? (hAsync("span", { part: "icon--end", class: "icon icon--end", style: {
12312
12333
  transform: this.open ? `rotate(${this.iconRotation}deg)` : '',
12313
- } }, hAsync("slot", { name: "icon-end" }))) : ('')), hAsync("div", { class: "content", ref: (div) => (this.contentEl = div), tabindex: "-1", id: this.slideId, part: "content" }, hAsync("div", { ref: (div) => (this.contentArea = div), class: "content__area" }, hAsync("slot", null))))));
12334
+ } }, hAsync("slot", { name: "icon-end" }))) : ('')), hAsync("div", { part: "body", class: "body", ref: (div) => (this.bodyEl = div), tabindex: "-1", role: "region", "aria-labelledby": "header" }, hAsync("div", { part: "content", ref: (div) => (this.contentEl = div), class: "content", id: "content" }, hAsync("slot", null)))));
12314
12335
  }
12315
- get el() { return getElement(this); }
12336
+ get host() { return getElement(this); }
12316
12337
  static get watchers() { return {
12317
12338
  "open": ["toggleClick"]
12318
12339
  }; }
@@ -12323,17 +12344,15 @@ class Details {
12323
12344
  "$members$": {
12324
12345
  "label": [1],
12325
12346
  "open": [1540],
12347
+ "disabled": [1540],
12326
12348
  "noHandle": [4, "no-handle"],
12327
- "iconRotation": [2, "icon-rotation"],
12328
- "color": [1],
12329
- "isLoading": [32]
12349
+ "iconRotation": [2, "icon-rotation"]
12330
12350
  },
12331
12351
  "$listeners$": undefined,
12332
12352
  "$lazyBundleId$": "-",
12333
- "$attrsToReflect$": [["open", "open"]]
12353
+ "$attrsToReflect$": [["open", "open"], ["disabled", "disabled"]]
12334
12354
  }; }
12335
12355
  }
12336
- let slideIds = 0;
12337
12356
 
12338
12357
  /**
12339
12358
  * Given a slot, this function iterates over all of its assigned elements and text nodes and returns the concatenated
@@ -18312,6 +18331,7 @@ var __metadata = (undefined && undefined.__metadata) || function (k, v) {
18312
18331
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
18313
18332
  return Reflect.metadata(k, v);
18314
18333
  };
18334
+ let gridId = 0;
18315
18335
  /**
18316
18336
  * A lightweight, context-aware CSS grid implementation.
18317
18337
  *
@@ -18330,6 +18350,7 @@ class Grid {
18330
18350
  constructor(hostRef) {
18331
18351
  registerInstance(this, hostRef);
18332
18352
  this.grids = [];
18353
+ this.gridId = 'nano-grid-' + gridId++;
18333
18354
  this.styles = () => {
18334
18355
  const css = /* css */ `
18335
18356
  ${this.grids
@@ -18337,7 +18358,7 @@ class Grid {
18337
18358
  @container (min-width: ${typeof bp.breakpoint === 'number'
18338
18359
  ? bp.breakpoint + 1 + 'px'
18339
18360
  : bp.breakpoint}) {
18340
- .grid {
18361
+ #${this.gridId}.grid {
18341
18362
  --current-grid-size: "grid size: ${bp.name}";
18342
18363
  ${bp.template
18343
18364
  ? `grid-template: ${bp.template};`
@@ -18347,11 +18368,11 @@ class Grid {
18347
18368
  .map((_, i) => {
18348
18369
  const gItm = i + 1;
18349
18370
  return /* css */ `
18350
- .grid > [grid-states~="${bp.name}-col-start-${gItm}"],
18371
+ #${this.gridId}.grid > [grid-states~="${bp.name}-col-start-${gItm}"],
18351
18372
  ::slotted([grid-states~="${bp.name}-col-start-${gItm}"]) {
18352
18373
  grid-column-start: ${gItm} !important;
18353
18374
  }
18354
- .grid > [grid-states~="${bp.name}-col-span-${gItm}"],
18375
+ #${this.gridId}.grid > [grid-states~="${bp.name}-col-span-${gItm}"],
18355
18376
  ::slotted([grid-states~="${bp.name}-col-span-${gItm}"]) {
18356
18377
  grid-column-end: span ${gItm} !important;
18357
18378
  }
@@ -18362,11 +18383,11 @@ class Grid {
18362
18383
  .map((_, i) => {
18363
18384
  const gItm = i + 1;
18364
18385
  return /* css */ `
18365
- .grid > [grid-states~="${bp.name}-row-start-${gItm}"],
18386
+ #${this.gridId}.grid > [grid-states~="${bp.name}-row-start-${gItm}"],
18366
18387
  ::slotted([grid-states~="${bp.name}-row-start-${gItm}"]) {
18367
18388
  grid-row-start: ${gItm} !important;
18368
18389
  }
18369
- .grid > [grid-states~="${bp.name}-row-span-${gItm}"],
18390
+ #${this.gridId}.grid > [grid-states~="${bp.name}-row-span-${gItm}"],
18370
18391
  ::slotted([grid-states~="${bp.name}-row-span-${gItm}"]) {
18371
18392
  grid-row-end: span ${gItm} !important;
18372
18393
  }
@@ -18375,7 +18396,7 @@ class Grid {
18375
18396
  .join('')}
18376
18397
  ${this.showHelper &&
18377
18398
  /* css */ `
18378
- .grid--helper :nth-child(-n+${bp.cols}) {
18399
+ #${this.gridId} .grid--helper :nth-child(-n+${bp.cols}) {
18379
18400
  display: block !important;
18380
18401
  }
18381
18402
  `}
@@ -18418,7 +18439,7 @@ class Grid {
18418
18439
  name: 'm',
18419
18440
  template: this.mTpl,
18420
18441
  });
18421
- if (this.lSize)
18442
+ if (this.lCols)
18422
18443
  this.grids.push({
18423
18444
  cols: this.lCols,
18424
18445
  breakpoint: this.mSize,
@@ -18450,7 +18471,7 @@ class Grid {
18450
18471
  this.constructSizeArray();
18451
18472
  }
18452
18473
  render() {
18453
- return (hAsync(Host, null, hAsync("div", { part: "grid", class: "grid" }, hAsync("slot", null)), this.showHelper && (hAsync("div", { class: "grid grid--helper", part: "helper" }, [...Array(24)].map(() => (hAsync("div", { class: "grid__helper-item" })))))));
18474
+ return (hAsync(Host, null, hAsync("div", { part: "grid", class: "grid", id: this.gridId }, hAsync("slot", null)), this.showHelper && (hAsync("div", { class: "grid grid--helper", part: "helper" }, [...Array(24)].map(() => (hAsync("div", { class: "grid__helper-item" })))))));
18454
18475
  }
18455
18476
  static get watchers() { return {
18456
18477
  "sTpl": ["constructSizeArray"],
@@ -18474,15 +18495,15 @@ class Grid {
18474
18495
  "$flags$": 9,
18475
18496
  "$tagName$": "nano-grid",
18476
18497
  "$members$": {
18477
- "sSize": [8, "s-size"],
18478
- "mSize": [8, "m-size"],
18479
- "lSize": [8, "l-size"],
18480
- "xlSize": [8, "xl-size"],
18481
- "sCols": [2, "s-cols"],
18482
- "mCols": [2, "m-cols"],
18483
- "lCols": [2, "l-cols"],
18484
- "xlCols": [2, "xl-cols"],
18485
- "xxlCols": [2, "xxl-cols"],
18498
+ "sSize": [520, "s-size"],
18499
+ "mSize": [520, "m-size"],
18500
+ "lSize": [520, "l-size"],
18501
+ "xlSize": [520, "xl-size"],
18502
+ "sCols": [514, "s-cols"],
18503
+ "mCols": [514, "m-cols"],
18504
+ "lCols": [514, "l-cols"],
18505
+ "xlCols": [514, "xl-cols"],
18506
+ "xxlCols": [514, "xxl-cols"],
18486
18507
  "sTpl": [1, "s-tpl"],
18487
18508
  "mTpl": [1, "m-tpl"],
18488
18509
  "lTpl": [1, "l-tpl"],
@@ -18493,7 +18514,7 @@ class Grid {
18493
18514
  },
18494
18515
  "$listeners$": undefined,
18495
18516
  "$lazyBundleId$": "-",
18496
- "$attrsToReflect$": [["showHelper", "show-helper"]]
18517
+ "$attrsToReflect$": [["sSize", "s-size"], ["mSize", "m-size"], ["lSize", "l-size"], ["xlSize", "xl-size"], ["sCols", "s-cols"], ["mCols", "m-cols"], ["lCols", "l-cols"], ["xlCols", "xl-cols"], ["xxlCols", "xxl-cols"], ["showHelper", "show-helper"]]
18497
18518
  }; }
18498
18519
  }
18499
18520
  __decorate([
@@ -22237,7 +22258,7 @@ class Skeleton {
22237
22258
  }; }
22238
22259
  }
22239
22260
 
22240
- const slideCss = "/*!@:host*/.sc-nano-slide-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-slide,*.sc-nano-slide::before,*.sc-nano-slide::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-slide{display:none !important}/*!@:host*/.sc-nano-slide-h{display:flex;align-items:center;justify-content:center;inline-size:100%;min-block-size:100%;font-size:18px;text-align:center;box-sizing:border-box;overflow:hidden;transition:opacity 0.2s;opacity:0;flex-direction:column}/*!@:host([ready])*/[ready].sc-nano-slide-h{opacity:1}";
22261
+ const slideCss = "/*!@:host*/.sc-nano-slide-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-slide,*.sc-nano-slide::before,*.sc-nano-slide::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-slide{display:none !important}/*!@:host*/.sc-nano-slide-h{display:flex;align-items:center;justify-content:center;inline-size:100%;min-block-size:100%;font-size:18px;text-align:center;box-sizing:border-box;overflow:hidden;transition:opacity 0.2s;opacity:0;flex-direction:column}/*!@:host([ready])*/[ready].sc-nano-slide-h{opacity:1}/*!@:host(:not([ready]))*/.sc-nano-slide-h:not([ready]){flex:1 0 auto}";
22241
22262
 
22242
22263
  class Slide$2 {
22243
22264
  constructor(hostRef) {
@@ -26121,7 +26142,7 @@ proto.shiftWrapCells = function () {
26121
26142
 
26122
26143
  const flickity = Flickity;
26123
26144
 
26124
- const slidesCss = "/*!@:host*/.sc-nano-slides-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-slides,*.sc-nano-slides::before,*.sc-nano-slides::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-slides{display:none !important}/*!@:host*/.sc-nano-slides-h{--dot-color:#ccc;--dot-color-active:var(--nano-color-primary, #007495);--navbtns-icon-color:var(--dot-color-active);--navbtns-bg-color:white;--navbtns-icon-color-disabled:var(--dot-color-active);--navbtns-bg-color-disabled:white;--fsbtn-icon-color:var(--dot-color-active);--fsbtn-bg-color:white;display:block;-webkit-user-select:none;user-select:none;overflow:hidden;transition:opacity 0.2s;opacity:0;max-width:100vw}/*!@:host([ready])*/[ready].sc-nano-slides-h{opacity:1}/*!@.slideshow*/.slideshow.sc-nano-slides{max-height:100%;min-height:inherit;height:inherit;position:relative}/*!@.slideshow.not-ready*/.slideshow.not-ready.sc-nano-slides{max-width:98vw}/*!@.flickity-container*/.flickity-container.sc-nano-slides{opacity:0;transition:opacity 0.2s;display:flex;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}/*!@.not-ready .flickity-container*/.not-ready.sc-nano-slides .flickity-container.sc-nano-slides{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}/*!@.flickity-container.slides-ready*/.flickity-container.slides-ready.sc-nano-slides{min-height:inherit;max-height:inherit;height:inherit;width:auto}/*!@[hidden]*/[hidden].sc-nano-slides{display:none !important}/*!@.ui-extras*/.ui-extras.sc-nano-slides{pointer-events:none;position:absolute;block-size:100%;inline-size:100%;inset-block-start:0;inset-inline-start:0}/*!@.ui-extras **/.ui-extras.sc-nano-slides *.sc-nano-slides{pointer-events:all}/*!@.flickity-enabled*/.flickity-enabled.sc-nano-slides{position:relative;opacity:1}/*!@.flickity-enabled:focus*/.flickity-enabled.sc-nano-slides:focus{outline:none}/*!@.flickity-viewport*/.flickity-viewport.sc-nano-slides{overflow:hidden;position:relative;min-block-size:100%;flex:1}/*!@.flickity-slider*/.flickity-slider.sc-nano-slides{position:absolute;inline-size:100%;block-size:100%}/*!@.flickity-enabled.is-draggable*/.flickity-enabled.is-draggable.sc-nano-slides{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}/*!@.flickity-enabled.is-draggable .flickity-viewport*/.flickity-enabled.is-draggable.sc-nano-slides .flickity-viewport.sc-nano-slides{cursor:move;cursor:grab;cursor:grab}/*!@.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down*/.flickity-enabled.is-draggable.sc-nano-slides .flickity-viewport.is-pointer-down.sc-nano-slides{cursor:grabbing}/*!@.flickity-button*/.flickity-button.sc-nano-slides{position:absolute;background:var(--navbtns-bg-color);border:none;color:#333;opacity:0.75}/*!@.flickity-button:hover*/.flickity-button.sc-nano-slides:hover{opacity:1;cursor:pointer}/*!@.flickity-button:focus*/.flickity-button.sc-nano-slides:focus{outline:none;box-shadow:0 0 0 5px #19f}/*!@.flickity-button:active*/.flickity-button.sc-nano-slides:active{opacity:0.6}/*!@.flickity-button:disabled*/.flickity-button.sc-nano-slides:disabled{opacity:0.3;cursor:auto;pointer-events:none;background:var(--navbtns-bg-color-disabled)}/*!@.flickity-button-icon*/.flickity-button-icon.sc-nano-slides{fill:var(--navbtns-icon-color)}/*!@.flickity-button:disabled .flickity-button-icon*/.flickity-button.sc-nano-slides:disabled .flickity-button-icon.sc-nano-slides{fill:var(--navbtns-icon-color-disabled)}/*!@.flickity-prev-next-button*/.flickity-prev-next-button.sc-nano-slides{inset-block-start:50%;inline-size:44px;block-size:44px;border-radius:50%;transform:translateY(-50%)}/*!@.flickity-prev-next-button.previous*/.flickity-prev-next-button.previous.sc-nano-slides{inset-inline-start:10px}/*!@.flickity-prev-next-button.next*/.flickity-prev-next-button.next.sc-nano-slides{inset-inline-end:10px}/*!@.flickity-rtl .flickity-prev-next-button.previous*/.flickity-rtl.sc-nano-slides .flickity-prev-next-button.previous.sc-nano-slides{inset-inline:auto 10px}/*!@.flickity-rtl .flickity-prev-next-button.next*/.flickity-rtl.sc-nano-slides .flickity-prev-next-button.next.sc-nano-slides{inset-inline:10px auto}/*!@.flickity-prev-next-button .flickity-button-icon*/.flickity-prev-next-button.sc-nano-slides .flickity-button-icon.sc-nano-slides{position:absolute;inset-inline-start:20%;inset-block-start:20%;inline-size:60%;block-size:60%}/*!@.flickity-page-dots*/.flickity-page-dots.sc-nano-slides{position:absolute;inline-size:100%;inset-block-end:10px;padding:0;margin:0;list-style:none;text-align:center;line-height:1;z-index:4}/*!@.flickity-rtl .flickity-page-dots*/.flickity-rtl.sc-nano-slides .flickity-page-dots.sc-nano-slides{direction:rtl}/*!@.flickity-page-dots .dot*/.flickity-page-dots.sc-nano-slides .dot.sc-nano-slides{display:inline-block;inline-size:10px;block-size:10px;margin-block:0;margin-inline:8px;border-radius:50%;cursor:pointer;background:var(--dot-color)}/*!@.flickity-page-dots .dot.is-selected*/.flickity-page-dots.sc-nano-slides .dot.is-selected.sc-nano-slides{opacity:1;background:var(--dot-color-active)}/*!@.flickity-enabled.is-fullscreen*/.flickity-enabled.is-fullscreen.sc-nano-slides{position:fixed;inset-inline-start:0;inset-block-start:0;inline-size:100%;block-size:100%;background:rgba(0, 0, 0, 0.9);-webkit-padding-after:35px;padding-block-end:35px;z-index:100}/*!@.flickity-enabled.is-fullscreen .flickity-page-dots*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-page-dots.sc-nano-slides{inset-block-end:45px}/*!@html.is-flickity-fullscreen*/html.is-flickity-fullscreen.sc-nano-slides{overflow:hidden}/*!@.flickity-fullscreen-button*/.flickity-fullscreen-button.sc-nano-slides{display:block;inset-inline-end:10px;inset-block-start:10px;inline-size:24px;block-size:24px;border-radius:4px;background:var(--fsbtn-bg-color);fill:var(--fsbtn-icon-color)}/*!@.flickity-rtl .flickity-fullscreen-button*/.flickity-rtl.sc-nano-slides .flickity-fullscreen-button.sc-nano-slides{inset-inline:10px auto}/*!@.flickity-fullscreen-button-exit*/.flickity-fullscreen-button-exit.sc-nano-slides{display:none}/*!@.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-fullscreen-button-exit.sc-nano-slides{display:block}/*!@.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-fullscreen-button-view.sc-nano-slides{display:none}/*!@.flickity-fullscreen-button .flickity-button-icon*/.flickity-fullscreen-button.sc-nano-slides .flickity-button-icon.sc-nano-slides{position:absolute;inline-size:16px;block-size:16px;inset-inline-start:4px;inset-block-start:4px}/*!@.flickity-enabled.is-fade .flickity-slider > **/.flickity-enabled.is-fade.sc-nano-slides .flickity-slider.sc-nano-slides>*.sc-nano-slides{pointer-events:none;z-index:0}/*!@.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected)*/.flickity-enabled.is-fade .flickity-slider .sc-nano-slides-s>.is-selected{pointer-events:auto;z-index:1}";
26145
+ const slidesCss = "/*!@:host*/.sc-nano-slides-h{box-sizing:border-box}/*!@*,\n*::before,\n*::after*/*.sc-nano-slides,*.sc-nano-slides::before,*.sc-nano-slides::after{box-sizing:border-box}/*!@[hidden]*/[hidden].sc-nano-slides{display:none !important}/*!@:host*/.sc-nano-slides-h{--dot-color:#ccc;--dot-color-active:var(--nano-color-primary, #007495);--navbtns-icon-color:var(--dot-color-active);--navbtns-bg-color:white;--navbtns-icon-color-disabled:var(--dot-color-active);--navbtns-bg-color-disabled:white;--fsbtn-icon-color:var(--dot-color-active);--fsbtn-bg-color:white;display:block;-webkit-user-select:none;user-select:none;overflow:hidden;transition:opacity 0.2s;opacity:0;max-width:100vw}/*!@:host([ready])*/[ready].sc-nano-slides-h{opacity:1}/*!@.slideshow*/.slideshow.sc-nano-slides{max-height:100%;min-height:inherit;height:inherit;position:relative}/*!@.slideshow.not-ready*/.slideshow.not-ready.sc-nano-slides{width:100%;overflow:hidden}/*!@.flickity-container*/.flickity-container.sc-nano-slides{opacity:0;transition:opacity 0.2s;display:flex;width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}/*!@.not-ready .flickity-container*/.not-ready.sc-nano-slides .flickity-container.sc-nano-slides{width:-moz-fit-content;width:fit-content;height:-moz-fit-content;height:fit-content}/*!@.flickity-container.slides-ready*/.flickity-container.slides-ready.sc-nano-slides{min-height:inherit;max-height:inherit;height:inherit;width:auto}/*!@[hidden]*/[hidden].sc-nano-slides{display:none !important}/*!@.ui-extras*/.ui-extras.sc-nano-slides{pointer-events:none;position:absolute;block-size:100%;inline-size:100%;inset-block-start:0;inset-inline-start:0}/*!@.ui-extras **/.ui-extras.sc-nano-slides *.sc-nano-slides{pointer-events:all}/*!@.flickity-enabled*/.flickity-enabled.sc-nano-slides{position:relative;opacity:1}/*!@.flickity-enabled:focus*/.flickity-enabled.sc-nano-slides:focus{outline:none}/*!@.flickity-viewport*/.flickity-viewport.sc-nano-slides{overflow:hidden;position:relative;min-block-size:100%;flex:1}/*!@.flickity-slider*/.flickity-slider.sc-nano-slides{position:absolute;inline-size:100%;block-size:100%}/*!@.flickity-enabled.is-draggable*/.flickity-enabled.is-draggable.sc-nano-slides{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}/*!@.flickity-enabled.is-draggable .flickity-viewport*/.flickity-enabled.is-draggable.sc-nano-slides .flickity-viewport.sc-nano-slides{cursor:move;cursor:grab;cursor:grab}/*!@.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down*/.flickity-enabled.is-draggable.sc-nano-slides .flickity-viewport.is-pointer-down.sc-nano-slides{cursor:grabbing}/*!@.flickity-button*/.flickity-button.sc-nano-slides{position:absolute;background:var(--navbtns-bg-color);border:none;color:#333;opacity:0.75}/*!@.flickity-button:hover*/.flickity-button.sc-nano-slides:hover{opacity:1;cursor:pointer}/*!@.flickity-button:focus*/.flickity-button.sc-nano-slides:focus{outline:none;box-shadow:0 0 0 5px #19f}/*!@.flickity-button:active*/.flickity-button.sc-nano-slides:active{opacity:0.6}/*!@.flickity-button:disabled*/.flickity-button.sc-nano-slides:disabled{opacity:0.3;cursor:auto;pointer-events:none;background:var(--navbtns-bg-color-disabled)}/*!@.flickity-button-icon*/.flickity-button-icon.sc-nano-slides{fill:var(--navbtns-icon-color)}/*!@.flickity-button:disabled .flickity-button-icon*/.flickity-button.sc-nano-slides:disabled .flickity-button-icon.sc-nano-slides{fill:var(--navbtns-icon-color-disabled)}/*!@.flickity-prev-next-button*/.flickity-prev-next-button.sc-nano-slides{inset-block-start:50%;inline-size:44px;block-size:44px;border-radius:50%;transform:translateY(-50%)}/*!@.flickity-prev-next-button.previous*/.flickity-prev-next-button.previous.sc-nano-slides{inset-inline-start:10px}/*!@.flickity-prev-next-button.next*/.flickity-prev-next-button.next.sc-nano-slides{inset-inline-end:10px}/*!@.flickity-rtl .flickity-prev-next-button.previous*/.flickity-rtl.sc-nano-slides .flickity-prev-next-button.previous.sc-nano-slides{inset-inline:auto 10px}/*!@.flickity-rtl .flickity-prev-next-button.next*/.flickity-rtl.sc-nano-slides .flickity-prev-next-button.next.sc-nano-slides{inset-inline:10px auto}/*!@.flickity-prev-next-button .flickity-button-icon*/.flickity-prev-next-button.sc-nano-slides .flickity-button-icon.sc-nano-slides{position:absolute;inset-inline-start:20%;inset-block-start:20%;inline-size:60%;block-size:60%}/*!@.flickity-page-dots*/.flickity-page-dots.sc-nano-slides{position:absolute;inline-size:100%;inset-block-end:10px;padding:0;margin:0;list-style:none;text-align:center;line-height:1;z-index:4}/*!@.flickity-rtl .flickity-page-dots*/.flickity-rtl.sc-nano-slides .flickity-page-dots.sc-nano-slides{direction:rtl}/*!@.flickity-page-dots .dot*/.flickity-page-dots.sc-nano-slides .dot.sc-nano-slides{display:inline-block;inline-size:10px;block-size:10px;margin-block:0;margin-inline:8px;border-radius:50%;cursor:pointer;background:var(--dot-color)}/*!@.flickity-page-dots .dot.is-selected*/.flickity-page-dots.sc-nano-slides .dot.is-selected.sc-nano-slides{opacity:1;background:var(--dot-color-active)}/*!@.flickity-enabled.is-fullscreen*/.flickity-enabled.is-fullscreen.sc-nano-slides{position:fixed;inset-inline-start:0;inset-block-start:0;inline-size:100%;block-size:100%;background:rgba(0, 0, 0, 0.9);-webkit-padding-after:35px;padding-block-end:35px;z-index:100}/*!@.flickity-enabled.is-fullscreen .flickity-page-dots*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-page-dots.sc-nano-slides{inset-block-end:45px}/*!@html.is-flickity-fullscreen*/html.is-flickity-fullscreen.sc-nano-slides{overflow:hidden}/*!@.flickity-fullscreen-button*/.flickity-fullscreen-button.sc-nano-slides{display:block;inset-inline-end:10px;inset-block-start:10px;inline-size:24px;block-size:24px;border-radius:4px;background:var(--fsbtn-bg-color);fill:var(--fsbtn-icon-color)}/*!@.flickity-rtl .flickity-fullscreen-button*/.flickity-rtl.sc-nano-slides .flickity-fullscreen-button.sc-nano-slides{inset-inline:10px auto}/*!@.flickity-fullscreen-button-exit*/.flickity-fullscreen-button-exit.sc-nano-slides{display:none}/*!@.flickity-enabled.is-fullscreen .flickity-fullscreen-button-exit*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-fullscreen-button-exit.sc-nano-slides{display:block}/*!@.flickity-enabled.is-fullscreen .flickity-fullscreen-button-view*/.flickity-enabled.is-fullscreen.sc-nano-slides .flickity-fullscreen-button-view.sc-nano-slides{display:none}/*!@.flickity-fullscreen-button .flickity-button-icon*/.flickity-fullscreen-button.sc-nano-slides .flickity-button-icon.sc-nano-slides{position:absolute;inline-size:16px;block-size:16px;inset-inline-start:4px;inset-block-start:4px}/*!@.flickity-enabled.is-fade .flickity-slider > **/.flickity-enabled.is-fade.sc-nano-slides .flickity-slider.sc-nano-slides>*.sc-nano-slides{pointer-events:none;z-index:0}/*!@.flickity-enabled.is-fade .flickity-slider ::slotted(.is-selected)*/.flickity-enabled.is-fade .flickity-slider .sc-nano-slides-s>.is-selected{pointer-events:auto;z-index:1}";
26125
26146
 
26126
26147
  const modulo = (num, div) => {
26127
26148
  return ((num % div) + div) % div;
@@ -28372,12 +28393,12 @@ class Tab {
28372
28393
  this.tab.blur();
28373
28394
  }
28374
28395
  render() {
28375
- return (hAsync(Host, { id: this.host.id || this.tabId }, hAsync("div", { part: "base", class: {
28396
+ return (hAsync(Host, { id: this.host.id || this.tabId, role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false' }, hAsync("div", { part: "base", class: {
28376
28397
  nanotab: true,
28377
28398
  'nanotab--active': this.active,
28378
28399
  'nanotab--disabled': this.disabled,
28379
28400
  'nanotab--closable': this.closable,
28380
- } }, hAsync("slot", { name: "start" }), hAsync("div", { part: "tab", ref: (el) => (this.tab = el), role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', tabindex: this.disabled || !this.active ? '-1' : '0', class: "nanotab__tab" }, hAsync("slot", null)), this.closable && !this.disabled && (hAsync("nano-icon-button", { label: "Close this tab", iconName: "light/times", class: "nanotab__close-button", onClick: this.handleCloseClick, onKeyDown: this.handleCloseKeydown, part: "close-btn" })), hAsync("slot", { name: "end" }))));
28401
+ } }, hAsync("slot", { name: "start" }), hAsync("div", { part: "tab", ref: (el) => (this.tab = el), tabindex: this.disabled || !this.active ? '-1' : '0', class: "nanotab__tab" }, hAsync("slot", null)), this.closable && !this.disabled && (hAsync("nano-icon-button", { label: "Close this tab", iconName: "light/times", class: "nanotab__close-button", onClick: this.handleCloseClick, onKeyDown: this.handleCloseKeydown, part: "close-btn" })), hAsync("slot", { name: "end" }))));
28381
28402
  }
28382
28403
  get host() { return getElement(this); }
28383
28404
  static get style() { return tabCss; }
@@ -28827,7 +28848,7 @@ class TabGroup {
28827
28848
  }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, hAsync("div", { class: "nano-tab-group__nav-container", part: "nav" }, this.placement === 'top' && (hAsync("button", { disabled: !this.hasScrollControls, class: {
28828
28849
  'nano-tab-group__scroll-button': true,
28829
28850
  'nano-tab-group__scroll-button--left': true,
28830
- }, ref: (btn) => (this.leftBtn = btn), onClick: () => this.handleBtnClick(false) }, hAsync("nano-icon", { name: "light/chevron-left" }))), hAsync("div", { ref: (el) => (this.nav = el), class: "nano-tab-group__nav", onScroll: this.handleTabScroll }, hAsync("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "nano-tab-group__tabs", role: "tablist" }, hAsync("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "nano-tab-group__active-tab-indicator" }), hAsync("slot", { name: "tabs", onSlotchange: this.handleTabSlotChange }))), this.placement === 'top' && (hAsync("button", { disabled: !this.hasScrollControls, class: {
28851
+ }, ref: (btn) => (this.leftBtn = btn), onClick: () => this.handleBtnClick(false) }, hAsync("nano-icon", { name: "light/chevron-left" }))), hAsync("div", { ref: (el) => (this.nav = el), class: "nano-tab-group__nav", onScroll: this.handleTabScroll }, hAsync("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "nano-tab-group__tabs", role: "tablist", "aria-orientation": this.placement === 'start' ? 'vertical' : 'horizontal' }, hAsync("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "nano-tab-group__active-tab-indicator" }), hAsync("slot", { name: "tabs", onSlotchange: this.handleTabSlotChange }))), this.placement === 'top' && (hAsync("button", { disabled: !this.hasScrollControls, class: {
28831
28852
  'nano-tab-group__scroll-button': true,
28832
28853
  'nano-tab-group__scroll-button--right': true,
28833
28854
  }, ref: (btn) => (this.rightBtn = btn), onClick: () => this.handleBtnClick(true) }, hAsync("nano-icon", { name: "light/chevron-right" })))), hAsync("slot", { name: "tab-content-header" }), hAsync("div", { part: "body", class: "nano-tab-group__body", onTouchStart: this.handleTouchStart, onTouchEnd: this.handleTouchEnd }, hAsync("slot", { onSlotchange: this.handleContentSlotChange })))));
@@ -30175,8 +30196,9 @@ function cellRender(rowIndex, colIndex) {
30175
30196
  // Render it now and output it later.
30176
30197
  const templateEle = document.createElement('template');
30177
30198
  // @ts-expect-error
30178
- tableInstance.customRenderer(tplResult, templateEle.content);
30179
- tplResult = templateEle;
30199
+ const result = tableInstance.customRenderer(tplResult, templateEle.content);
30200
+ // custom rendering can render to the templateEle OR return a promise<string>
30201
+ tplResult = result && result['then'] ? result : templateEle;
30180
30202
  }
30181
30203
  return tplResult ? (tplResult) : model.cellModel !== undefined && model.cellModel !== null ? (hAsync(Fragment, null, (_b = model.cellModel) === null || _b === void 0 ? void 0 : _b.toString())) : ('');
30182
30204
  }
@@ -30214,16 +30236,25 @@ const TableCell = ({ rowIndex, colIndex, nestedContent, }) => {
30214
30236
  const ContentWrap = (props) => {
30215
30237
  const content = Content();
30216
30238
  return (hAsync("div", Object.assign({ ref: (d) => {
30217
- if (d && content instanceof Element) {
30239
+ if (!d)
30240
+ return;
30241
+ if (content instanceof Element) {
30242
+ // custom rendered an element
30218
30243
  d.replaceChildren();
30219
30244
  d.append(content['content'] || content);
30220
30245
  }
30246
+ else if (content['then']) {
30247
+ // custom rendered a promise. Most likely within SSR.
30248
+ // @ts-expect-error
30249
+ content.then((res) => (d.innerHTML = res));
30250
+ }
30221
30251
  } }, props, { class: {
30222
30252
  [`${CSSNAMESPACE}__cell-content`]: true,
30223
30253
  [`${CSSNAMESPACE}__cell-content--wrap`]: !!column.wrap,
30224
30254
  }, innerHTML: typeof content === 'string' && content.includes('<')
30225
30255
  ? content
30226
30256
  : undefined }), (typeof content !== 'string' || !content.includes('<')) &&
30257
+ !content['then'] &&
30227
30258
  !(content instanceof Element) &&
30228
30259
  content));
30229
30260
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanoporetech-digital/components",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://git.oxfordnanolabs.local/Digital/nano-components"
@@ -131,7 +131,7 @@
131
131
  "nanopore",
132
132
  "digital"
133
133
  ],
134
- "gitHead": "1a54e7d34a188d439757541b7c190b1fd51c62b7",
134
+ "gitHead": "3561b3fd583125bb874ecc8bb961c2ae3e892049",
135
135
  "volta": {
136
136
  "node": "14.18.1",
137
137
  "npm": "8.6.0"