@nanoporetech-digital/components 5.11.1 → 5.11.3

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 (77) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/{form-control-f100407e.js → form-control-cae1e493.js} +2 -2
  3. package/dist/cjs/form-control-cae1e493.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/nano-components.cjs.js +1 -1
  6. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +2 -2
  7. package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
  8. package/dist/cjs/nano-global-nav.cjs.entry.js +7 -7
  9. package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
  10. package/dist/cjs/nano-icon.cjs.entry.js +24 -7
  11. package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
  12. package/dist/cjs/nano-input.cjs.entry.js +1 -1
  13. package/dist/cjs/{nano-table-bbd65636.js → nano-table-43f4377f.js} +2 -2
  14. package/dist/cjs/{nano-table-bbd65636.js.map → nano-table-43f4377f.js.map} +1 -1
  15. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  16. package/dist/cjs/{table.worker-ea98a8dd.js → table.worker-399650a3.js} +2 -2
  17. package/dist/cjs/table.worker-399650a3.js.map +1 -0
  18. package/dist/collection/components/form-control/form-control.js +1 -1
  19. package/dist/collection/components/form-control/form-control.js.map +1 -1
  20. package/dist/collection/components/global-nav/global-nav-user-profile.js +1 -1
  21. package/dist/collection/components/global-nav/global-nav-user-profile.js.map +1 -1
  22. package/dist/collection/components/global-nav/global-nav.js +7 -7
  23. package/dist/collection/components/global-nav/global-nav.js.map +1 -1
  24. package/dist/collection/components/icon/icon.js +48 -7
  25. package/dist/collection/components/icon/icon.js.map +1 -1
  26. package/dist/components/form-control.js +1 -1
  27. package/dist/components/form-control.js.map +1 -1
  28. package/dist/components/global-nav-user-profile.js +1 -1
  29. package/dist/components/global-nav-user-profile.js.map +1 -1
  30. package/dist/components/icon.js +25 -7
  31. package/dist/components/icon.js.map +1 -1
  32. package/dist/components/nano-global-nav.js +7 -7
  33. package/dist/components/nano-global-nav.js.map +1 -1
  34. package/dist/esm/{form-control-881fa3af.js → form-control-8c2750f9.js} +2 -2
  35. package/dist/esm/form-control-8c2750f9.js.map +1 -0
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/esm/nano-components.js +1 -1
  38. package/dist/esm/nano-global-nav-user-profile_3.entry.js +2 -2
  39. package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
  40. package/dist/esm/nano-global-nav.entry.js +7 -7
  41. package/dist/esm/nano-global-nav.entry.js.map +1 -1
  42. package/dist/esm/nano-icon.entry.js +24 -7
  43. package/dist/esm/nano-icon.entry.js.map +1 -1
  44. package/dist/esm/nano-input.entry.js +1 -1
  45. package/dist/esm/{nano-table-3ab8cd85.js → nano-table-85d83eb2.js} +2 -2
  46. package/dist/esm/{nano-table-3ab8cd85.js.map → nano-table-85d83eb2.js.map} +1 -1
  47. package/dist/esm/nano-table.entry.js +1 -1
  48. package/dist/esm/{table.worker-75d6e1d2.js → table.worker-c5463b23.js} +2 -2
  49. package/dist/esm/table.worker-c5463b23.js.map +1 -0
  50. package/dist/nano-components/{form-control-881fa3af.js → form-control-8c2750f9.js} +2 -2
  51. package/dist/nano-components/form-control-8c2750f9.js.map +1 -0
  52. package/dist/nano-components/nano-components.esm.js +1 -1
  53. package/dist/nano-components/nano-components.esm.js.map +1 -1
  54. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +1 -1
  55. package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -1
  56. package/dist/nano-components/nano-global-nav.entry.js +1 -1
  57. package/dist/nano-components/nano-global-nav.entry.js.map +1 -1
  58. package/dist/nano-components/nano-icon.entry.js +1 -1
  59. package/dist/nano-components/nano-icon.entry.js.map +1 -1
  60. package/dist/nano-components/nano-input.entry.js +1 -1
  61. package/dist/nano-components/{nano-table-3ab8cd85.js → nano-table-85d83eb2.js} +2 -2
  62. package/dist/nano-components/nano-table.entry.js +1 -1
  63. package/dist/nano-components/table.worker-c5463b23.js +5 -0
  64. package/dist/types/components/icon/icon.d.ts +6 -1
  65. package/dist/types/components.d.ts +8 -0
  66. package/docs-json.json +20 -1
  67. package/docs-vscode.json +4 -0
  68. package/hydrate/index.js +35 -17
  69. package/package.json +2 -2
  70. package/dist/cjs/form-control-f100407e.js.map +0 -1
  71. package/dist/cjs/table.worker-ea98a8dd.js.map +0 -1
  72. package/dist/esm/form-control-881fa3af.js.map +0 -1
  73. package/dist/esm/table.worker-75d6e1d2.js.map +0 -1
  74. package/dist/nano-components/form-control-881fa3af.js.map +0 -1
  75. package/dist/nano-components/table.worker-75d6e1d2.js +0 -5
  76. /package/dist/nano-components/{nano-table-3ab8cd85.js.map → nano-table-85d83eb2.js.map} +0 -0
  77. /package/dist/nano-components/{table.worker-75d6e1d2.js.map → table.worker-c5463b23.js.map} +0 -0
package/hydrate/index.js CHANGED
@@ -18085,7 +18085,7 @@ class GlobalNav {
18085
18085
  }, slot: "end", onClick: (e) => {
18086
18086
  this.searchValInternal = this.searchInput.value;
18087
18087
  this.onSearchSubmit(e);
18088
- } }, hAsync("nano-icon", { name: "light/search" })), hAsync("span", { class: {
18088
+ } }, hAsync("nano-icon", { name: "light/search", role: "img", ariaLabel: "Search now" })), hAsync("span", { class: {
18089
18089
  'search-icon': true,
18090
18090
  'search-icon--loader': true,
18091
18091
  'search-icon--show': this.searchLoading,
@@ -18114,13 +18114,13 @@ class GlobalNav {
18114
18114
  'has-promotion': this.hasPromotionSlot,
18115
18115
  'menu-full-screen': this.menuFullScreen,
18116
18116
  'secondary-open': !!this.secondaryMenuOpen,
18117
- }, "aria-expanded": this.modalOpen ? 'true' : 'false', ref: (div) => (this.menuDiv = div), part: "burger" }, hAsync("div", { class: "gn-menu_wrap", ref: (div) => (this.menuWrapDiv = div), tabindex: "-1", part: "burger-menu" }, hAsync("div", { class: "gn-menu_actions", part: "burger-actions-bar" }, hAsync("button", { class: "menu-btn icon-btn icon-btn", onMouseDown: this.onMenuBtnClick, onKeyDown: this.onMenuBtnKeyDown }, this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.login && (hAsync("nano-icon", { name: "light/times", "aria-label": "close menu" })), this.threshold >= THRESHOLDLIMIT - THRESHOLDBREAKS.login && (hAsync("nano-icon", { name: "light/bars", "aria-label": "close menu" }))), this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [
18117
+ }, "aria-expanded": this.modalOpen ? 'true' : 'false', ref: (div) => (this.menuDiv = div), part: "burger" }, hAsync("div", { class: "gn-menu_wrap", ref: (div) => (this.menuWrapDiv = div), tabindex: "-1", part: "burger-menu" }, hAsync("div", { class: "gn-menu_actions", part: "burger-actions-bar" }, hAsync("button", { class: "menu-btn icon-btn icon-btn", onMouseDown: this.onMenuBtnClick, onKeyDown: this.onMenuBtnKeyDown }, this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.login && (hAsync("nano-icon", { name: "light/times", "aria-label": "close menu", role: "img" })), this.threshold >= THRESHOLDLIMIT - THRESHOLDBREAKS.login && (hAsync("nano-icon", { name: "light/bars", "aria-label": "close menu", role: "img" }))), this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [
18118
18118
  !!this.iconSlotLen && hAsync("slot", { name: "icon" }),
18119
18119
  this.myAccData &&
18120
18120
  (!this.activeMyAccountSections ||
18121
18121
  this.activeMyAccountSections.includes('icons')) && [
18122
- this.msgUrl && (hAsync("a", { href: this.msgUrl, class: "icon-btn" }, hAsync("nano-icon", { name: "light/bell" }), this.msgCount > 0 && (hAsync("span", { class: "gn-menu_actions-counter" }, this.msgCount)))),
18123
- this.cartUrl && (hAsync("a", { href: this.cartUrl, class: "icon-btn" }, hAsync("nano-icon", { name: "light/shopping-cart" }), this.cartCount > 0 && (hAsync("span", { class: "gn-menu_actions-counter" }, this.cartCount)))),
18122
+ this.msgUrl && (hAsync("a", { href: this.msgUrl, class: "icon-btn" }, hAsync("nano-icon", { name: "light/bell", role: "img", ariaLabel: "Check notifications" }), this.msgCount > 0 && (hAsync("span", { class: "gn-menu_actions-counter" }, this.msgCount)))),
18123
+ this.cartUrl && (hAsync("a", { href: this.cartUrl, class: "icon-btn" }, hAsync("nano-icon", { name: "light/shopping-cart", role: "img", ariaLabel: "Go to cart" }), this.cartCount > 0 && (hAsync("span", { class: "gn-menu_actions-counter" }, this.cartCount)))),
18124
18124
  ],
18125
18125
  ], this.myAccData && this.myAccData.urls.login && (hAsync("a", { href: this.myAccData.urls.login + this.ssoRedirect, class: "login-btn" }, "Login / Register", ' ', hAsync("nano-icon", { name: "solid/chevron-right" })))), hAsync("div", { class: "content-wrap", ref: (div) => (this.menuContentDiv = div) }, hAsync("div", { class: "content", part: "burger-content" }, hAsync("nav", { class: "nav-links nav-links--main", role: "menu" }, hAsync("slot", { name: "overflow", onSlotchange: this.assessSlottedContent }), this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.main &&
18126
18126
  !!this.mainSlotLen && (hAsync("slot", { name: "main", onSlotchange: this.assessSlottedContent }))), (((!!this.aboutSlotLen || !!this.aboutNavItms.length) &&
@@ -18133,12 +18133,12 @@ class GlobalNav {
18133
18133
  })))),
18134
18134
  ((this.threshold < THRESHOLDLIMIT - 2 &&
18135
18135
  this.mainSlotLen >= 2) ||
18136
- this.overflowSlotLen >= 2) && (hAsync("nav", { class: "nav-links", "aria-label": "Different company site links" }, hAsync("nano-nav-item", { class: "nano-global-nav nano-global-nav-menu", closeOnBlur: false }, "Sites", hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-right" }), hAsync("div", { slot: "secondary" }, hAsync("div", { class: "content" }, hAsync("button", { class: "back-btn", onClick: this.subMenuClose }, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-left", "aria-label": "go back" }), "Sites"), hAsync("div", { class: "content--sub" }, hAsync("slot", { name: "site", onSlotchange: this.assessSlottedContent }), this.siteNavItms.map((link) => {
18136
+ this.overflowSlotLen >= 2) && (hAsync("nav", { class: "nav-links", "aria-label": "Different company site links" }, hAsync("nano-nav-item", { class: "nano-global-nav nano-global-nav-menu", closeOnBlur: false }, "Sites", hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-right" }), hAsync("div", { slot: "secondary" }, hAsync("div", { class: "content" }, hAsync("button", { class: "back-btn", onClick: this.subMenuClose }, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-left", "aria-label": "go back", role: "img" }), "Sites"), hAsync("div", { class: "content--sub" }, hAsync("slot", { name: "site", onSlotchange: this.assessSlottedContent }), this.siteNavItms.map((link) => {
18137
18137
  return (hAsync("nano-nav-item", { class: "nano-global-nav nano-global-nav-menu" }, hAsync("a", { href: link.address, target: link.target }, link.title)));
18138
18138
  }))))))),
18139
18139
  ]))), this.isLoggedIn &&
18140
18140
  this.threshold < THRESHOLDLIMIT - THRESHOLDBREAKS.login &&
18141
- (this.loggedInNavItms.length || this.hasLoggedinSlot) && (hAsync("nav", { class: "nav-links", "aria-label": "Your user account links" }, hAsync("nano-nav-item", { class: "nano-global-nav user-nav nano-global-nav-menu", closeOnBlur: false }, this.myAccountUser.name, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-right" }), hAsync("div", { slot: "secondary" }, hAsync("div", { class: "content" }, hAsync("button", { class: "back-btn", onClick: this.subMenuClose }, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-left", "aria-label": "go back" }), this.myAccountUser.name), !!((_a = this.myAccountUser) === null || _a === void 0 ? void 0 : _a.small_avatar_url) && (hAsync("nano-global-nav-user-profile", { myAccountUser: this.myAccountUser, userProfileUrl: this.userProfileUrl })), hAsync("div", { class: "content--sub" }, hAsync("slot", { name: "loggedin", onSlotchange: this.assessSlottedContent }), this.loggedInNavItms.map((link) => {
18141
+ (this.loggedInNavItms.length || this.hasLoggedinSlot) && (hAsync("nav", { class: "nav-links", "aria-label": "Your user account links" }, hAsync("nano-nav-item", { class: "nano-global-nav user-nav nano-global-nav-menu", closeOnBlur: false }, this.myAccountUser.name, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-right" }), hAsync("div", { slot: "secondary" }, hAsync("div", { class: "content" }, hAsync("button", { class: "back-btn", onClick: this.subMenuClose }, hAsync("nano-icon", { slot: "icon-end", name: "solid/chevron-left", "aria-label": "go back", role: "img" }), this.myAccountUser.name), !!((_a = this.myAccountUser) === null || _a === void 0 ? void 0 : _a.small_avatar_url) && (hAsync("nano-global-nav-user-profile", { myAccountUser: this.myAccountUser, userProfileUrl: this.userProfileUrl })), hAsync("div", { class: "content--sub" }, hAsync("slot", { name: "loggedin", onSlotchange: this.assessSlottedContent }), this.loggedInNavItms.map((link) => {
18142
18142
  return (hAsync("nano-nav-item", { class: "nano-global-nav nano-global-nav-menu" }, hAsync("a", { href: link.address, target: link.target }, link.title)));
18143
18143
  }), hAsync("nano-nav-item", { class: "nano-global-nav nano-global-nav-menu" }, hAsync("a", { href: this.myAccData.urls.forgot_password +
18144
18144
  this.ssoRedirect }, "Change Password")))))))), hAsync("slot", { name: "promotion", onSlotchange: this.assessSlottedContent }), this.myAccData && this.myAccData.urls.logout && (hAsync("div", { class: "login-btn logout-btn" }, hAsync("a", { href: this.myAccData.urls.logout + this.ssoRedirect }, "Logout")))))), hAsync("div", { class: "sticker-trigger" }), hAsync("nano-sticker", { "auto-resize": "false", "break-point-max": "800", quietMode: { h: 600, w: 800 }, part: "sticker" }, hAsync("div", { class: "bars", part: "bars" }, hAsync("nav", { part: "main-bar", class: "main-bar", "aria-label": "Main site navigation", tabindex: "-1", ref: (div) => (this.mainBarDiv = div) }, (this.hasPromotionSlot ||
@@ -18167,7 +18167,7 @@ class GlobalNav {
18167
18167
  'icon-btn': true,
18168
18168
  'search-btn': true,
18169
18169
  'search-btn--open': this.searchBarShown,
18170
- }, "aria-controls": "global-nav-search-bar", "aria-expanded": this.searchBarShown ? 'true' : 'false', onClick: this.onSearchBtnClick, onKeyDown: this.onSearchBtnKeyDown }, hAsync("nano-icon", { name: "light/search" }))), this.threshold >= THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [
18170
+ }, "aria-controls": "global-nav-search-bar", "aria-expanded": this.searchBarShown ? 'true' : 'false', onClick: this.onSearchBtnClick, onKeyDown: this.onSearchBtnKeyDown }, hAsync("nano-icon", { name: "light/search", role: "img", ariaLabel: "Do search" }))), this.threshold >= THRESHOLDLIMIT - THRESHOLDBREAKS.icon && [
18171
18171
  !!this.iconSlotLen && hAsync("slot", { name: "icon" }),
18172
18172
  this.myAccData &&
18173
18173
  (!this.activeMyAccountSections ||
@@ -18390,7 +18390,7 @@ class GlobalNavUserProfile {
18390
18390
  // Render output
18391
18391
  render() {
18392
18392
  var _a;
18393
- return (!!this.myAccountUser && (hAsync("a", { href: this.userProfileUrl, class: "user-profile" }, hAsync("div", { class: "left" }, hAsync("div", { class: "avatar-container" }, hAsync("img", { class: "avatar", src: (_a = this.myAccountUser) === null || _a === void 0 ? void 0 : _a.small_avatar_url, alt: "User Avatar", height: 75, width: 75 }), this.myAccountUser.is_nanopore_user && (hAsync("img", { class: "logo-small", src: getAssetPath(`../nano-assets/ont-wheel-light.svg`), alt: "Nanopore Logo" }))), hAsync("div", { class: "user-details" }, hAsync("span", { class: "name" }, this.myAccountUser.name), hAsync("span", { class: "bio" }, this.myAccountUser.job_title, " at ", this.myAccountUser.company))), hAsync("div", { class: "right" }, hAsync("div", { class: "chevron-right" }, hAsync("nano-icon", { slot: "icon-end", name: "light/chevron-right", "aria-label": "navigate to ..." }))))));
18393
+ return (!!this.myAccountUser && (hAsync("a", { href: this.userProfileUrl, class: "user-profile" }, hAsync("div", { class: "left" }, hAsync("div", { class: "avatar-container" }, hAsync("img", { class: "avatar", src: (_a = this.myAccountUser) === null || _a === void 0 ? void 0 : _a.small_avatar_url, alt: "User Avatar", height: 75, width: 75 }), this.myAccountUser.is_nanopore_user && (hAsync("img", { class: "logo-small", src: getAssetPath(`../nano-assets/ont-wheel-light.svg`), alt: "Nanopore Logo" }))), hAsync("div", { class: "user-details" }, hAsync("span", { class: "name" }, this.myAccountUser.name), hAsync("span", { class: "bio" }, this.myAccountUser.job_title, " at ", this.myAccountUser.company))), hAsync("div", { class: "right" }, hAsync("div", { class: "chevron-right" }, hAsync("nano-icon", { slot: "icon-end", name: "light/chevron-right" }))))));
18394
18394
  }
18395
18395
  static get cmpMeta() { return {
18396
18396
  "$flags$": 0,
@@ -19567,6 +19567,7 @@ class Icon {
19567
19567
  this.isVisible = false;
19568
19568
  this.isLoading = true;
19569
19569
  this.color = undefined;
19570
+ this.role = 'presentation';
19570
19571
  this.ariaLabel = undefined;
19571
19572
  this.flipRtl = undefined;
19572
19573
  this.name = undefined;
@@ -19575,15 +19576,29 @@ class Icon {
19575
19576
  this.size = undefined;
19576
19577
  this.lazy = true;
19577
19578
  }
19579
+ udpateRole() {
19580
+ // force the role to br 'img' if the aria-label is explicitly set
19581
+ if (!!this.ariaLabel && this.role === 'presentation')
19582
+ this.role = 'img';
19583
+ else if (!this.ariaLabel && !this.role)
19584
+ this.role = 'presentation';
19585
+ }
19578
19586
  setAriaLabel() {
19579
- if (!this.ariaLabel && this.el.role && this.el.role !== 'presentation') {
19580
- const label = getName(this.name, this.icon);
19581
- // user did not provide a label
19582
- // come up with the label based on the icon name
19583
- if (label) {
19584
- this.ariaLabel = label.split('/').slice(-1)[0].replace(/\-/g, ' ');
19587
+ if (!this.ariaLabel) {
19588
+ if (!this.role || this.role !== 'presentation') {
19589
+ // if the role is not 'presentation' and the user did not explicitly set a role,
19590
+ // let's try and derive one from the icon name
19591
+ const label = getName(this.name, this.icon);
19592
+ // user did not provide a label
19593
+ // come up with the label based on the icon name
19594
+ if (label) {
19595
+ this.ariaLabel = label.split('/').slice(-1)[0].replace(/\-/g, ' ');
19596
+ }
19585
19597
  }
19586
19598
  }
19599
+ else if (this.role === 'presentation') {
19600
+ this.ariaLabel = undefined;
19601
+ }
19587
19602
  }
19588
19603
  connectedCallback() {
19589
19604
  // purposely do not return the promise here because loading
@@ -19620,10 +19635,12 @@ class Icon {
19620
19635
  this.name.indexOf('chevron') > -1) &&
19621
19636
  this.el.ownerDocument.dir === 'rtl' &&
19622
19637
  this.flipRtl !== false);
19623
- return (hAsync(Host, { role: this.el.role || 'presentation', class: Object.assign(Object.assign({}, createColorClasses(this.color)), { loading: this.isLoading, [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl }) }, (hAsync("div", { class: "icon-inner" }))));
19638
+ return (hAsync(Host, { class: Object.assign(Object.assign({}, createColorClasses(this.color)), { loading: this.isLoading, [`icon-${this.size}`]: !!this.size, 'flip-rtl': !!flipRtl }) }, (hAsync("div", { class: "icon-inner" }))));
19624
19639
  }
19625
19640
  get el() { return getElement(this); }
19626
19641
  static get watchers() { return {
19642
+ "ariaLabel": ["udpateRole"],
19643
+ "role": ["setAriaLabel"],
19627
19644
  "name": ["loadIcon"],
19628
19645
  "src": ["loadIcon"],
19629
19646
  "icon": ["loadIcon"]
@@ -19634,6 +19651,7 @@ class Icon {
19634
19651
  "$tagName$": "nano-icon",
19635
19652
  "$members$": {
19636
19653
  "color": [1],
19654
+ "role": [1537],
19637
19655
  "ariaLabel": [1537, "aria-label"],
19638
19656
  "flipRtl": [4, "flip-rtl"],
19639
19657
  "name": [1],
@@ -19647,7 +19665,7 @@ class Icon {
19647
19665
  },
19648
19666
  "$listeners$": undefined,
19649
19667
  "$lazyBundleId$": "-",
19650
- "$attrsToReflect$": [["ariaLabel", "aria-label"]]
19668
+ "$attrsToReflect$": [["role", "role"], ["ariaLabel", "aria-label"]]
19651
19669
  }; }
19652
19670
  }
19653
19671
 
@@ -19988,7 +20006,7 @@ const FormControl = (props, children) => {
19988
20006
  startSlot),
19989
20007
  children,
19990
20008
  clearControl && !readonly && !disabled && (hAsync("button", { type: "button", class: "icon form-ctrl__clear-btn", tabindex: "-1", onTouchStart: onClearText, onMouseDown: onClearText },
19991
- hAsync("nano-icon", { name: "light/times" }))),
20009
+ hAsync("nano-icon", { name: "light/times", role: "img", ariaLabel: "Clear content" }))),
19992
20010
  hAsync("span", { class: "form-ctrl__slot-value-end", onClick: clickThrough },
19993
20011
  hAsync("slot", { name: "value-end" }),
19994
20012
  endValueSlot),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanoporetech-digital/components",
3
- "version": "5.11.1",
3
+ "version": "5.11.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://git.oxfordnanolabs.local/Digital/nano-components"
@@ -129,7 +129,7 @@
129
129
  "nanopore",
130
130
  "digital"
131
131
  ],
132
- "gitHead": "f5780a47added7547ad386700d5f24c1ebff45c4",
132
+ "gitHead": "0f1fea59255c587681f27a948faeb4c9534f27e7",
133
133
  "volta": {
134
134
  "node": "18.14.0"
135
135
  }
@@ -1 +0,0 @@
1
- {"file":"form-control-f100407e.js","mappings":"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","names":["h"],"sources":["./src/components/form-control/form-control.tsx"],"sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport type { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n helperEndId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n hasHelperEndSlot?: boolean;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"form-ctrl__float-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength ? ` ${charCount}/${maxlength}` : ` ${charCount}`}\n </span>\n )}\n </label>\n );\n } else {\n return (\n <label\n class={{ 'form-ctrl__label': true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"form-ctrl__label-wrap\">\n {placeholder && hasValue && rtl && (\n <span class=\"form-ctrl__label-placeholder\">{placeholder} / </span>\n )}\n <span class=\"form-ctrl__labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"form-ctrl__label-placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n helperEndId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n hasHelperEndSlot,\n } = props;\n\n return (\n <div\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n 'has-helper-end': hasHelperEndSlot,\n rtl,\n 'form-ctrl': true,\n }}\n >\n <div class=\"form-ctrl__wrapper\">\n {!floatLabel ? renderLabel({ ...props }) : ''}\n <div\n class={{\n 'form-ctrl__input': true,\n 'form-ctrl__textarea': type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>\n {showInlineError || hasHelperSlot ? (\n <div class=\"form-ctrl__more\" id={moreId}>\n {!!showInlineError ? (\n <div class=\"form-ctrl__error\" aria-live=\"polite\">\n {errorMessage}\n </div>\n ) : (\n ''\n )}\n <div class=\"form-ctrl__helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n {hasHelperEndSlot ? (\n <div class=\"form-ctrl__helper-end\" id={helperEndId}>\n <slot name=\"helper-end\" />\n </div>\n ) : (\n ''\n )}\n </div>\n );\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"form-ctrl__input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"form-ctrl__slot-start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon form-ctrl__clear-btn\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"form-ctrl__slot-value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"form-ctrl__slot-end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"table.worker-ea98a8dd.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1 +0,0 @@
1
- {"file":"form-control-881fa3af.js","mappings":"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","names":[],"sources":["./src/components/form-control/form-control.tsx"],"sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport type { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n helperEndId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n hasHelperEndSlot?: boolean;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"form-ctrl__float-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength ? ` ${charCount}/${maxlength}` : ` ${charCount}`}\n </span>\n )}\n </label>\n );\n } else {\n return (\n <label\n class={{ 'form-ctrl__label': true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"form-ctrl__label-wrap\">\n {placeholder && hasValue && rtl && (\n <span class=\"form-ctrl__label-placeholder\">{placeholder} / </span>\n )}\n <span class=\"form-ctrl__labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"form-ctrl__label-placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n helperEndId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n hasHelperEndSlot,\n } = props;\n\n return (\n <div\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n 'has-helper-end': hasHelperEndSlot,\n rtl,\n 'form-ctrl': true,\n }}\n >\n <div class=\"form-ctrl__wrapper\">\n {!floatLabel ? renderLabel({ ...props }) : ''}\n <div\n class={{\n 'form-ctrl__input': true,\n 'form-ctrl__textarea': type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>\n {showInlineError || hasHelperSlot ? (\n <div class=\"form-ctrl__more\" id={moreId}>\n {!!showInlineError ? (\n <div class=\"form-ctrl__error\" aria-live=\"polite\">\n {errorMessage}\n </div>\n ) : (\n ''\n )}\n <div class=\"form-ctrl__helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n {hasHelperEndSlot ? (\n <div class=\"form-ctrl__helper-end\" id={helperEndId}>\n <slot name=\"helper-end\" />\n </div>\n ) : (\n ''\n )}\n </div>\n );\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"form-ctrl__input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"form-ctrl__slot-start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon form-ctrl__clear-btn\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"form-ctrl__slot-value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"form-ctrl__slot-end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"table.worker-75d6e1d2.js","mappings":";;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"names":["renderLabel","label","hasLabelSlot","controlId","labelId","floatLabel","placeholder","hideLabel","hasValue","rtl","showCharCount","maxlength","charCount","h","class","htmlFor","id","name","FormControlWrap","props","children","moreId","helperEndId","type","hasHelperSlot","showInlineError","errorMessage","hasHelperEndSlot","Object","assign","FormControl","clearControl","onClearText","readonly","disabled","control","ref","endSlot","endValueSlot","startSlot","clickThrough","setFocus","el","tabindex","onTouchStart","onMouseDown","onClick"],"sources":["./src/components/form-control/form-control.tsx"],"sourcesContent":["import { FunctionalComponent, h, VNode } from '@stencil/core';\nimport type { TextFieldTypes } from '../../interface';\n\ninterface FormControlWrapProps {\n rtl: boolean;\n floatLabel: boolean;\n labelId: string;\n label: string;\n moreId: string;\n helperEndId: string;\n type?: TextFieldTypes;\n showInlineError: boolean;\n hasHelperSlot: boolean;\n errorMessage: string;\n controlId: string;\n hasLabelSlot: boolean;\n hideLabel: boolean;\n placeholder: string;\n hasValue: boolean;\n showCharCount?: boolean;\n maxlength?: number;\n charCount?: number;\n hasHelperEndSlot?: boolean;\n}\n\ninterface FormControlProps {\n clearControl: boolean;\n onClearText?: () => void;\n readonly: boolean;\n disabled: boolean;\n control: HTMLNanoInputElement | HTMLNanoSelectElement;\n ref?: (elm?: HTMLElement) => void;\n endSlot?: VNode;\n endValueSlot?: VNode;\n startSlot?: VNode;\n}\n\ninterface LabelProps extends FormControlWrapProps {\n rtl: boolean;\n}\n\nconst renderLabel = ({\n label,\n hasLabelSlot,\n controlId,\n labelId,\n floatLabel,\n placeholder,\n hideLabel,\n hasValue,\n rtl,\n showCharCount,\n maxlength,\n charCount,\n}: LabelProps) => {\n if (!label && !hasLabelSlot) return;\n if (floatLabel) {\n return (\n <label class=\"form-ctrl__float-label\" htmlFor={controlId} id={labelId}>\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength ? ` ${charCount}/${maxlength}` : ` ${charCount}`}\n </span>\n )}\n </label>\n );\n } else {\n return (\n <label\n class={{ 'form-ctrl__label': true, 'visually-hide': hideLabel }}\n htmlFor={controlId}\n id={labelId}\n >\n <div class=\"form-ctrl__label-wrap\">\n {placeholder && hasValue && rtl && (\n <span class=\"form-ctrl__label-placeholder\">{placeholder} / </span>\n )}\n <span class=\"form-ctrl__labeltext\">\n {label && label}\n {!label && hasLabelSlot && <slot name=\"label\" />}\n </span>\n {placeholder && hasValue && !rtl && (\n <span class=\"form-ctrl__label-placeholder\"> / {placeholder}</span>\n )}\n </div>\n {showCharCount && (\n <span class=\"form-ctrl__label-charcount\">\n {maxlength\n ? maxlength - charCount + ' left'\n : charCount + ' characters'}\n </span>\n )}\n </label>\n );\n }\n};\n\nexport const FormControlWrap: FunctionalComponent<FormControlWrapProps> = (\n props: FormControlWrapProps,\n children\n) => {\n const {\n rtl,\n floatLabel,\n label,\n moreId,\n helperEndId,\n type,\n hasHelperSlot,\n showInlineError,\n errorMessage,\n hasHelperEndSlot,\n } = props;\n\n return (\n <div\n class={{\n 'has-label': label !== null && !floatLabel,\n 'has-float-label': label !== null && floatLabel,\n 'has-helper-end': hasHelperEndSlot,\n rtl,\n 'form-ctrl': true,\n }}\n >\n <div class=\"form-ctrl__wrapper\">\n {!floatLabel ? renderLabel({ ...props }) : ''}\n <div\n class={{\n 'form-ctrl__input': true,\n 'form-ctrl__textarea': type === 'textarea',\n }}\n >\n {floatLabel && renderLabel({ ...props, rtl })}\n {children}\n </div>\n {showInlineError || hasHelperSlot ? (\n <div class=\"form-ctrl__more\" id={moreId}>\n {!!showInlineError ? (\n <div class=\"form-ctrl__error\" aria-live=\"polite\">\n {errorMessage}\n </div>\n ) : (\n ''\n )}\n <div class=\"form-ctrl__helper\">\n <slot name=\"helper\" />\n </div>\n </div>\n ) : (\n ''\n )}\n </div>\n {hasHelperEndSlot ? (\n <div class=\"form-ctrl__helper-end\" id={helperEndId}>\n <slot name=\"helper-end\" />\n </div>\n ) : (\n ''\n )}\n </div>\n );\n};\n\nexport const FormControl: FunctionalComponent<FormControlProps> = (\n props: FormControlProps,\n children\n) => {\n const {\n clearControl,\n onClearText,\n readonly,\n disabled,\n control,\n ref,\n endSlot,\n endValueSlot,\n startSlot,\n } = props;\n const clickThrough = () => {\n control.setFocus();\n };\n\n return (\n <div\n class=\"form-ctrl__input-wrap\"\n ref={(el) => {\n if (ref) ref(el);\n }}\n >\n <span class=\"form-ctrl__slot-start\">\n <slot name=\"start\" />\n {startSlot}\n </span>\n {children}\n {clearControl && !readonly && !disabled && (\n <button\n type=\"button\"\n class=\"icon form-ctrl__clear-btn\"\n tabindex=\"-1\"\n onTouchStart={onClearText}\n onMouseDown={onClearText}\n >\n <nano-icon name=\"light/times\"></nano-icon>\n </button>\n )}\n <span class=\"form-ctrl__slot-value-end\" onClick={clickThrough}>\n <slot name=\"value-end\" />\n {endValueSlot}\n </span>\n <span class=\"form-ctrl__slot-end\">\n <slot name=\"end\" />\n {endSlot}\n </span>\n </div>\n );\n};\n"],"mappings":";;;wCAyCA,MAAMA,EAAc,EAClBC,QACAC,eACAC,YACAC,UACAC,aACAC,cACAC,YACAC,WACAC,MACAC,gBACAC,YACAC,gBAEA,IAAKX,IAAUC,EAAc,OAC7B,GAAIG,EAAY,CACd,OACEQ,EAAA,SAAOC,MAAM,yBAAyBC,QAASZ,EAAWa,GAAIZ,GAC3DH,GAASA,GACRA,GAASC,GAAgBW,EAAA,QAAMI,KAAK,UACrCP,GACCG,EAAA,QAAMC,MAAM,8BACTH,EAAY,IAAIC,KAAaD,IAAc,IAAIC,K,KAKnD,CACL,OACEC,EAAA,SACEC,MAAO,CAAE,mBAAoB,KAAM,gBAAiBP,GACpDQ,QAASZ,EACTa,GAAIZ,GAEJS,EAAA,OAAKC,MAAM,yBACRR,GAAeE,GAAYC,GAC1BI,EAAA,QAAMC,MAAM,gCAAgCR,E,OAE9CO,EAAA,QAAMC,MAAM,wBACTb,GAASA,GACRA,GAASC,GAAgBW,EAAA,QAAMI,KAAK,WAEvCX,GAAeE,IAAaC,GAC3BI,EAAA,QAAMC,MAAM,gC,MAAmCR,IAGlDI,GACCG,EAAA,QAAMC,MAAM,8BACTH,EACGA,EAAYC,EAAY,QACxBA,EAAY,e,SAQfM,EAA6D,CACxEC,EACAC,KAEA,MAAMX,IACJA,EAAGJ,WACHA,EAAUJ,MACVA,EAAKoB,OACLA,EAAMC,YACNA,EAAWC,KACXA,EAAIC,cACJA,EAAaC,gBACbA,EAAeC,aACfA,EAAYC,iBACZA,GACER,EAEJ,OACEN,EAAA,OACEC,MAAO,CACL,YAAab,IAAU,OAASI,EAChC,kBAAmBJ,IAAU,MAAQI,EACrC,iBAAkBsB,EAClBlB,MACA,YAAa,OAGfI,EAAA,OAAKC,MAAM,uBACPT,EAAaL,EAAW4B,OAAAC,OAAA,GAAMV,IAAW,GAC3CN,EAAA,OACEC,MAAO,CACL,mBAAoB,KACpB,sBAAuBS,IAAS,aAGjClB,GAAcL,EAAW4B,OAAAC,OAAAD,OAAAC,OAAA,GAAMV,GAAK,CAAEV,SACtCW,GAEFK,GAAmBD,EAClBX,EAAA,OAAKC,MAAM,kBAAkBE,GAAIK,KAC5BI,EACDZ,EAAA,OAAKC,MAAM,mBAAkB,YAAW,UACrCY,GACG,GAIRb,EAAA,OAAKC,MAAM,qBACTD,EAAA,QAAMI,KAAK,aAET,IAKTU,EACCd,EAAA,OAAKC,MAAM,wBAAwBE,GAAIM,GACrCT,EAAA,QAAMI,KAAK,gBACP,GAIJ,E,MAIGa,EAAqD,CAChEX,EACAC,KAEA,MAAMW,aACJA,EAAYC,YACZA,EAAWC,SACXA,EAAQC,SACRA,EAAQC,QACRA,EAAOC,IACPA,EAAGC,QACHA,EAAOC,aACPA,EAAYC,UACZA,GACEpB,EACJ,MAAMqB,EAAe,KACnBL,EAAQM,UAAU,EAGpB,OACE5B,EAAA,OACEC,MAAM,wBACNsB,IAAMM,IACJ,GAAIN,EAAKA,EAAIM,EAAG,GAGlB7B,EAAA,QAAMC,MAAM,yBACVD,EAAA,QAAMI,KAAK,UACVsB,GAEFnB,EACAW,IAAiBE,IAAaC,GAC7BrB,EAAA,UACEU,KAAK,SACLT,MAAM,4BACN6B,SAAS,KACTC,aAAcZ,EACda,YAAab,GAEbnB,EAAA,aAAWI,KAAK,iBAGpBJ,EAAA,QAAMC,MAAM,4BAA4BgC,QAASN,GAC/C3B,EAAA,QAAMI,KAAK,cACVqB,GAEHzB,EAAA,QAAMC,MAAM,uBACVD,EAAA,QAAMI,KAAK,QACVoB,GAEC,S"}
@@ -1,5 +0,0 @@
1
- /*!
2
- * Web Components for Nanopore digital Web Apps
3
- */
4
- import{c as t}from"./nano-table-3ab8cd85.js";import"./index-9695db0a.js";import"./math-c02ddfda.js";import"./throttle-ac4fcefa.js";import"./index-3003356f.js";const o="table.worker";const r="stencil.table.worker";const e=new URL("table.worker-f258383d.js",import.meta.url).href;const s=new Blob(['importScripts("'+e+'")'],{type:"text/javascript"});const a=URL.createObjectURL(s);const c=t(a,o,r);URL.revokeObjectURL(a);export{c as worker,r as workerMsgId,o as workerName,e as workerPath};
5
- //# sourceMappingURL=table.worker-75d6e1d2.js.map