@nanoporetech-digital/components 8.0.0-alpha.5 → 8.0.0-alpha.6
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.
- package/dist/cjs/nano-alert.cjs.entry.js +2 -2
- package/dist/cjs/nano-avatar_5.cjs.entry.js +1 -1
- package/dist/cjs/nano-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/nano-details.cjs.entry.js +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +1 -1
- package/dist/cjs/nano-dropdown_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-in-page-nav.cjs.entry.js +1 -1
- package/dist/cjs/nano-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/{slot-Hlplqf1Z.js → slot-DJxvnd35.js} +5 -5
- package/dist/collection/components/alert/alert.css +1 -1
- package/dist/collection/components/breadcrumb/breadcrumb.css +132 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/collection/utils/slot.js +5 -5
- package/dist/components/nano-alert.js +1 -1
- package/dist/components/nano-breadcrumb.js +2 -2
- package/dist/components/slot.js +5 -5
- package/dist/esm/nano-alert.entry.js +2 -2
- package/dist/esm/nano-avatar_5.entry.js +1 -1
- package/dist/esm/nano-breadcrumb.entry.js +2 -2
- package/dist/esm/nano-details.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +1 -1
- package/dist/esm/nano-dropdown_2.entry.js +1 -1
- package/dist/esm/nano-in-page-nav.entry.js +1 -1
- package/dist/esm/nano-nav-item.entry.js +1 -1
- package/dist/esm/{slot-DYFgWo5f.js → slot-Db9r1aLM.js} +5 -5
- package/dist/nano-components/nano-alert.entry.js +1 -1
- package/dist/nano-components/nano-avatar_5.entry.js +1 -1
- package/dist/nano-components/nano-breadcrumb.entry.js +1 -1
- package/dist/nano-components/nano-components.css +3 -125
- package/dist/nano-components/nano-details.entry.js +1 -1
- package/dist/nano-components/nano-dialog.entry.js +1 -1
- package/dist/nano-components/nano-dropdown_2.entry.js +1 -1
- package/dist/nano-components/nano-in-page-nav.entry.js +1 -1
- package/dist/nano-components/nano-nav-item.entry.js +1 -1
- package/dist/nano-components/slot-Db9r1aLM.js +4 -0
- package/dist/style/components.css +1 -1
- package/dist/style/components.css.map +1 -1
- package/dist/style/nano.css +1 -1
- package/dist/style/nano.css.map +1 -1
- package/docs-json.json +1 -1
- package/hydrate/index.js +8 -8
- package/hydrate/index.mjs +8 -8
- package/package.json +2 -2
- package/dist/nano-components/slot-DYFgWo5f.js +0 -4
package/hydrate/index.js
CHANGED
@@ -3774,8 +3774,8 @@ class HasSlotController {
|
|
3774
3774
|
};
|
3775
3775
|
}
|
3776
3776
|
hasDefaultSlot() {
|
3777
|
-
if (!this.host
|
3778
|
-
return;
|
3777
|
+
if (!this.host)
|
3778
|
+
return false;
|
3779
3779
|
return [...this.host.childNodes].some((node) => {
|
3780
3780
|
if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
|
3781
3781
|
return true;
|
@@ -3791,9 +3791,9 @@ class HasSlotController {
|
|
3791
3791
|
});
|
3792
3792
|
}
|
3793
3793
|
hasNamedSlot(name) {
|
3794
|
-
if (!this.host
|
3795
|
-
return;
|
3796
|
-
return !!
|
3794
|
+
if (!this.host)
|
3795
|
+
return false;
|
3796
|
+
return !!this.host.querySelector(`[slot="${name}"]`);
|
3797
3797
|
}
|
3798
3798
|
has(slotName) {
|
3799
3799
|
return slotName === '[default]'
|
@@ -3813,7 +3813,7 @@ class HasSlotController {
|
|
3813
3813
|
};
|
3814
3814
|
}
|
3815
3815
|
|
3816
|
-
const alertCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/** Typography */\n:host {\n /**\n * @prop --border-radius: Defaults to var(--nano-layer-border-radius);\n * @prop --border-color: Defaults to var(--nano-layer-border-color);\n * @prop --border-width: Defaults to var(--nano-layer-border-width);\n * @prop --background: Defaults to var(--nano-layer-background-color);\n * @prop --tint-color: The highlight colour (border-start, icon and heading text). Defaults to var(--nano-color-primary-1100);\n * @prop --icon-size: Defaults to var(--nano-pictogram-size-large);\n * @prop --scrim-color: overlay colour of alert display. Defaults to var(--nano-overlay-background-color);\n * @prop --close-button-color: Defaults to var(--nano-color-neutral-400);\n */\n --border-radius: var(--nano-layer-border-radius);\n --border-color: var(--nano-layer-border-color);\n --border-width: var(--nano-layer-border-width);\n --icon-size: var(--nano-pictogram-size-large);\n --scrim-color: var(--nano-overlay-background-color);\n --close-button-color: var(--nano-color-neutral-800);\n --tint-color: var(--nano-color-primary-1100);\n --background: var(--nano-color-primary-50);\n display: block;\n container-type: inline-size;\n}\n\n:host([color=neutral]), :host([theme=neutral]) {\n --tint-color: var(--nano-color-neutral-1200);\n --background: var(--nano-color-neutral-75);\n}\n\n:host([color=success]), :host([theme=success]) {\n --tint-color: var(--nano-color-success-1100);\n --background: var(--nano-color-success-50);\n}\n\n:host([color=warning]), :host([theme=warning]) {\n --tint-color: var(--nano-color-warning-1100);\n --background: var(--nano-color-warning-75);\n}\n\n:host([color=danger]), :host([theme=danger]) {\n --tint-color: var(--nano-color-danger-1100);\n --background: var(--nano-color-danger-100);\n}\n\n.alert {\n position: relative;\n background-color: var(--background);\n border: solid var(--border-width) var(--border-color);\n border-inline-start: solid 4px var(--tint-color);\n border-radius: var(--border-radius);\n opacity: 0;\n transform: scale(0.9);\n transition: var(--nano-transition-medium) opacity ease, var(--nano-transition-fast) transform ease;\n}\n.alert:focus {\n outline: none;\n}\n.alert:not(.alert--showing) {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n}\n.alert--open {\n opacity: 1;\n transform: none;\n}\n.alert--toasty, .alert--modal {\n box-shadow: var(--nano-shadow-l2);\n margin: var(--nano-spacing-md);\n}\n.alert--modal.alert--nodismiss {\n animation: cannotClose 0.25s ease-in-out 1;\n}\n@keyframes cannotClose {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.08);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.alert__main {\n display: flex;\n align-items: stretch;\n}\n\n.alert__content {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n letter-spacing: var(--nano-letter-spacing-loose);\n flex: 1 1 auto;\n padding: var(--nano-spacing-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: var(--nano-spacing-sm);\n}\n\n.alert__modal-wrap {\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n z-index: var(--nano-z-index-alert);\n}\n\n.alert__heading {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n font-weight: var(--nano-font-weight-bold);\n color: var(--tint-color);\n}\n\n.alert__title {\n font-weight: var(--nano-font-weight-normal);\n font-size: var(--nano-font-size-medium);\n line-height: var(--nano-line-height-dense);\n}\n\n.alert__close {\n --color: var(--close-button-color);\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: 1.1em;\n padding-inline: 0 var(--nano-spacing-md);\n padding-block: 0;\n}\n\n.alert__overlay {\n position: fixed;\n inset: 0;\n background-color: var(--scrim-color);\n opacity: 0;\n transition: var(--nano-transition-fast) opacity;\n z-index: var(--nano-z-index-alert);\n pointer-events: all;\n}\n.alert__overlay--open {\n opacity: 1;\n}\n\n.alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: start;\n font-size: var(--icon-size);\n padding-block: var(--nano-spacing-md);\n}\n.alert__icon ::slotted(*), .alert__icon::slotted(*) {\n color: var(--tint-color);\n margin-inline-start: var(--nano-spacing-md);\n}\n@container (width < 280px) {\n .alert__icon {\n display: none;\n }\n}\n\n.alert__countdown {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 4px;\n background-color: var(--nano-layer-border-color);\n display: flex;\n justify-content: flex-end;\n}\n\n.alert__countdown .alert__countdown-elapsed {\n block-size: 100%;\n inline-size: 0;\n}\n\n.alert__timer {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n\n.alert__countdown-elapsed {\n background-color: var(--tint-color);\n}";
|
3816
|
+
const alertCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/** Typography */\n:host {\n /**\n * @prop --border-radius: Defaults to var(--nano-layer-border-radius);\n * @prop --border-color: Defaults to var(--nano-layer-border-color);\n * @prop --border-width: Defaults to var(--nano-layer-border-width);\n * @prop --background: Defaults to var(--nano-layer-background-color);\n * @prop --tint-color: The highlight colour (border-start, icon and heading text). Defaults to var(--nano-color-primary-1100);\n * @prop --icon-size: Defaults to var(--nano-pictogram-size-large);\n * @prop --scrim-color: overlay colour of alert display. Defaults to var(--nano-overlay-background-color);\n * @prop --close-button-color: Defaults to var(--nano-color-neutral-400);\n */\n --border-radius: var(--nano-layer-border-radius);\n --border-color: var(--nano-layer-border-color);\n --border-width: var(--nano-layer-border-width);\n --icon-size: var(--nano-pictogram-size-large);\n --scrim-color: var(--nano-overlay-background-color);\n --close-button-color: var(--nano-color-neutral-800);\n --tint-color: var(--nano-color-primary-1100);\n --background: var(--nano-color-primary-50);\n display: block;\n container-type: inline-size;\n}\n\n:host([color=neutral]), :host([theme=neutral]) {\n --tint-color: var(--nano-color-neutral-1200);\n --background: var(--nano-color-neutral-75);\n}\n\n:host([color=success]), :host([theme=success]) {\n --tint-color: var(--nano-color-success-1100);\n --background: var(--nano-color-success-50);\n}\n\n:host([color=warning]), :host([theme=warning]) {\n --tint-color: var(--nano-color-warning-1100);\n --background: var(--nano-color-warning-75);\n}\n\n:host([color=danger]), :host([theme=danger]) {\n --tint-color: var(--nano-color-danger-1100);\n --background: var(--nano-color-danger-100);\n}\n\n.alert {\n position: relative;\n background-color: var(--background);\n border: solid var(--border-width) var(--border-color);\n border-inline-start: solid 4px var(--tint-color);\n border-radius: var(--border-radius);\n opacity: 0;\n transform: scale(0.9);\n transition: var(--nano-transition-medium) opacity ease, var(--nano-transition-fast) transform ease;\n}\n.alert:focus {\n outline: none;\n}\n.alert:not(.alert--showing) {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n}\n.alert--open {\n opacity: 1;\n transform: none;\n}\n.alert--toasty, .alert--modal {\n box-shadow: var(--nano-shadow-l2);\n margin: var(--nano-spacing-md);\n}\n.alert--modal.alert--nodismiss {\n animation: cannotClose 0.25s ease-in-out 1;\n}\n@keyframes cannotClose {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.08);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.alert__main {\n display: flex;\n align-items: stretch;\n}\n\n.alert__content {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n letter-spacing: var(--nano-letter-spacing-loose);\n flex: 1 1 auto;\n padding: var(--nano-spacing-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: var(--nano-spacing-sm);\n}\n\n.alert__modal-wrap {\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n z-index: var(--nano-z-index-alert);\n}\n\n.alert__heading {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n font-weight: var(--nano-font-weight-bold);\n color: var(--tint-color);\n}\n\n.alert__title {\n font-weight: var(--nano-font-weight-normal);\n font-size: var(--nano-font-size-medium);\n line-height: var(--nano-line-height-dense);\n}\n\n.alert__close {\n --color: var(--close-button-color);\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: 1.1em;\n padding-inline: 0 var(--nano-spacing-md);\n padding-block: 0;\n}\n\n.alert__overlay {\n position: fixed;\n inset: 0;\n background-color: var(--scrim-color);\n opacity: 0;\n transition: var(--nano-transition-fast) opacity;\n z-index: var(--nano-z-index-alert);\n pointer-events: all;\n}\n.alert__overlay--open {\n opacity: 1;\n}\n\n.alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: start;\n font-size: var(--icon-size);\n padding-block: var(--nano-spacing-md);\n}\n.alert__icon ::slotted(*), .alert__icon::slotted(*) {\n color: var(--tint-color);\n margin-inline-start: var(--nano-spacing-md);\n}\n@container (width < 280px) {\n .alert__icon {\n display: none !important;\n }\n}\n\n.alert__countdown {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 4px;\n background-color: var(--nano-layer-border-color);\n display: flex;\n justify-content: flex-end;\n}\n\n.alert__countdown .alert__countdown-elapsed {\n block-size: 100%;\n inline-size: 0;\n}\n\n.alert__timer {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n\n.alert__countdown-elapsed {\n background-color: var(--tint-color);\n}";
|
3817
3817
|
|
3818
3818
|
let toastStackTr;
|
3819
3819
|
let toastStackTl;
|
@@ -18897,7 +18897,7 @@ class NanoBadge {
|
|
18897
18897
|
}; }
|
18898
18898
|
}
|
18899
18899
|
|
18900
|
-
const breadcrumbCss = ":host
|
18900
|
+
const breadcrumbCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/**\n * @prop {string} --text-color - The base color of the text. Defaults to var(--nano-color-primary-1000).\n * @prop {string} --text-color-hover - The hover colour of the text. Defaults to var(--nano-color-primary-1200).\n * @prop {string} --text-color-secondary - The secondary colour (& inactive colour) of the text. Defaults to var(--nano-color-neutral-1400).\n * @prop {string} --text-color-disabled - The disabled colour of the text. Defaults to var(--nano-color-neutral-1000).\n * @prop {string} --border-color - The colour of the border & divider. Defaults to var(--nano-color-neutral-400).\n * @prop {string} --trigger-bg-color - The background colour of the trigger button. Defaults to var(--nano-color-base-0).\n */\n:host {\n --text-color: var(--nano-color-primary-1000);\n --text-color-hover: var(--nano-color-primary-1200);\n --text-color-secondary: var(--nano-color-neutral-1400);\n --text-color-disabled: var(--nano-color-neutral-1000);\n --border-color: var(--nano-color-neutral-400);\n --trigger-bg-color: var(--nano-color-base-0);\n container-type: inline-size;\n display: block;\n}\n\n.breadcrumbs {\n inline-size: 100%;\n max-inline-size: 1346px;\n}\n\nol,\nnano-menu::part(base) {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: row;\n}\n\nli {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: var(--nano-font-size-xs);\n line-height: var(--nano-line-height-normal);\n text-wrap: nowrap;\n margin-block-end: 0;\n}\n\nli:not(.return-only li)::after,\nnano-nav-item::after {\n content: \"/\";\n margin: 0 var(--nano-spacing-xs);\n color: var(--border-color);\n}\n\na.link {\n color: var(--text-color);\n}\n\na:not(.link) {\n color: var(--text-color-secondary);\n}\n\na:focus-visible {\n outline: var(--nano-focus-ring);\n outline-offset: var(--nano-focus-ring-offset);\n z-index: 1;\n}\n\na.link:hover {\n color: var(--text-color-hover);\n}\n\na.return.link {\n display: flex;\n align-items: center;\n gap: calc(var(--nano-spacing-sm) / 2);\n}\n\n.breadcrumbs__dropdown {\n inline-size: 100%;\n display: none;\n}\n.breadcrumbs__dropdown[open]::part(trigger) {\n box-shadow: var(--nano-shadow-l1);\n}\n.breadcrumbs__dropdown[open]::part(panel) {\n box-shadow: var(--nano-shadow-l1);\n}\n\n.trigger-button {\n inline-size: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--nano-spacing-l3) var(--nano-spacing-l2);\n color: var(--text-color);\n background-color: var(--trigger-bg-color);\n cursor: pointer;\n text-align: start;\n border: none;\n font-size: var(--nano-font-size-xs);\n}\n.trigger-button .trigger-button_label {\n text-decoration: underline;\n}\n.trigger-button .trigger-button_label::after {\n content: \"/\";\n margin: 0 var(--nano-spacing-xs);\n color: var(--border-color);\n}\n.trigger-button:focus-visible {\n outline: var(--nano-focus-ring);\n outline-offset: var(--nano-focus-ring-offset);\n}\n\n.trigger-icon {\n transform: rotate(0deg);\n transition: var(--nano-transition-x-fast) ease transform;\n}\n.trigger-icon--open {\n transform: rotate(180deg);\n}\n\n@container (width < 768px) {\n .main {\n display: none !important;\n }\n .breadcrumbs__dropdown {\n display: block !important;\n }\n nano-menu::part(base) {\n flex-direction: column !important;\n }\n nano-nav-item::after {\n display: none !important;\n }\n .trigger-button_label::after {\n display: inline-block !important;\n }\n .return-only {\n padding: var(--nano-spacing-l3) var(--nano-spacing-l2) !important;\n }\n}";
|
18901
18901
|
|
18902
18902
|
/**
|
18903
18903
|
* Breadcrumbs are used to indicate the current page's location within a navigational hierarchy.
|
@@ -18924,7 +18924,7 @@ class NanoBreadcrumb {
|
|
18924
18924
|
const parentBreadcrumb = this.breadcrumbs?.length
|
18925
18925
|
? this.breadcrumbs.at(-1)
|
18926
18926
|
: null;
|
18927
|
-
return (hAsync("div", { class: "breadcrumbs" }, hAsync("nav", { "aria-label": "Breadcrumb" }, hAsync(BreadcrumbList, { breadcrumbs: this.breadcrumbs, className: "main" })), hAsync("nano-dropdown", { dialogTitle: `${parentBreadcrumb?.label} Breadcrumb`, onNanoShow: () => (this.isOpen = true), onNanoHide: () => (this.isOpen = false), containingElement: this.el }, hAsync("button", { class: "trigger-button", slot: "trigger" }, hAsync("span", null, this.breadcrumbs && this.breadcrumbs.length > 1 && (hAsync("span", { class: "trigger-button_label" }, "..")), hAsync("span", { class: "trigger-button_label" }, parentBreadcrumb?.label)), hAsync("nano-icon", { class: {
|
18927
|
+
return (hAsync("div", { class: "breadcrumbs" }, hAsync("nav", { "aria-label": "Breadcrumb" }, hAsync(BreadcrumbList, { breadcrumbs: this.breadcrumbs, className: "main" })), hAsync("nano-dropdown", { dialogTitle: `${parentBreadcrumb?.label} Breadcrumb`, onNanoShow: () => (this.isOpen = true), onNanoHide: () => (this.isOpen = false), containingElement: this.el, class: "breadcrumbs__dropdown" }, hAsync("button", { class: "trigger-button", slot: "trigger" }, hAsync("span", null, this.breadcrumbs && this.breadcrumbs.length > 1 && (hAsync("span", { class: "trigger-button_label" }, "..")), hAsync("span", { class: "trigger-button_label" }, parentBreadcrumb?.label)), hAsync("nano-icon", { class: {
|
18928
18928
|
'trigger-icon': true,
|
18929
18929
|
'trigger-icon--open': this.isOpen,
|
18930
18930
|
}, name: "light/chevron-down" })), hAsync("nav", null, hAsync("nano-menu", { class: "breadcrumbs small", label: "Breadcrumbs" }, this.breadcrumbs?.slice(0, -1)?.map((breadcrumb, index) => (hAsync("nano-nav-item", { key: index, href: breadcrumb.href, class: { return: breadcrumb.return, link: !!breadcrumb.href }, disabled: !breadcrumb.href }, breadcrumb.label))))))));
|
package/hydrate/index.mjs
CHANGED
@@ -3772,8 +3772,8 @@ class HasSlotController {
|
|
3772
3772
|
};
|
3773
3773
|
}
|
3774
3774
|
hasDefaultSlot() {
|
3775
|
-
if (!this.host
|
3776
|
-
return;
|
3775
|
+
if (!this.host)
|
3776
|
+
return false;
|
3777
3777
|
return [...this.host.childNodes].some((node) => {
|
3778
3778
|
if (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '') {
|
3779
3779
|
return true;
|
@@ -3789,9 +3789,9 @@ class HasSlotController {
|
|
3789
3789
|
});
|
3790
3790
|
}
|
3791
3791
|
hasNamedSlot(name) {
|
3792
|
-
if (!this.host
|
3793
|
-
return;
|
3794
|
-
return !!
|
3792
|
+
if (!this.host)
|
3793
|
+
return false;
|
3794
|
+
return !!this.host.querySelector(`[slot="${name}"]`);
|
3795
3795
|
}
|
3796
3796
|
has(slotName) {
|
3797
3797
|
return slotName === '[default]'
|
@@ -3811,7 +3811,7 @@ class HasSlotController {
|
|
3811
3811
|
};
|
3812
3812
|
}
|
3813
3813
|
|
3814
|
-
const alertCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/** Typography */\n:host {\n /**\n * @prop --border-radius: Defaults to var(--nano-layer-border-radius);\n * @prop --border-color: Defaults to var(--nano-layer-border-color);\n * @prop --border-width: Defaults to var(--nano-layer-border-width);\n * @prop --background: Defaults to var(--nano-layer-background-color);\n * @prop --tint-color: The highlight colour (border-start, icon and heading text). Defaults to var(--nano-color-primary-1100);\n * @prop --icon-size: Defaults to var(--nano-pictogram-size-large);\n * @prop --scrim-color: overlay colour of alert display. Defaults to var(--nano-overlay-background-color);\n * @prop --close-button-color: Defaults to var(--nano-color-neutral-400);\n */\n --border-radius: var(--nano-layer-border-radius);\n --border-color: var(--nano-layer-border-color);\n --border-width: var(--nano-layer-border-width);\n --icon-size: var(--nano-pictogram-size-large);\n --scrim-color: var(--nano-overlay-background-color);\n --close-button-color: var(--nano-color-neutral-800);\n --tint-color: var(--nano-color-primary-1100);\n --background: var(--nano-color-primary-50);\n display: block;\n container-type: inline-size;\n}\n\n:host([color=neutral]), :host([theme=neutral]) {\n --tint-color: var(--nano-color-neutral-1200);\n --background: var(--nano-color-neutral-75);\n}\n\n:host([color=success]), :host([theme=success]) {\n --tint-color: var(--nano-color-success-1100);\n --background: var(--nano-color-success-50);\n}\n\n:host([color=warning]), :host([theme=warning]) {\n --tint-color: var(--nano-color-warning-1100);\n --background: var(--nano-color-warning-75);\n}\n\n:host([color=danger]), :host([theme=danger]) {\n --tint-color: var(--nano-color-danger-1100);\n --background: var(--nano-color-danger-100);\n}\n\n.alert {\n position: relative;\n background-color: var(--background);\n border: solid var(--border-width) var(--border-color);\n border-inline-start: solid 4px var(--tint-color);\n border-radius: var(--border-radius);\n opacity: 0;\n transform: scale(0.9);\n transition: var(--nano-transition-medium) opacity ease, var(--nano-transition-fast) transform ease;\n}\n.alert:focus {\n outline: none;\n}\n.alert:not(.alert--showing) {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n}\n.alert--open {\n opacity: 1;\n transform: none;\n}\n.alert--toasty, .alert--modal {\n box-shadow: var(--nano-shadow-l2);\n margin: var(--nano-spacing-md);\n}\n.alert--modal.alert--nodismiss {\n animation: cannotClose 0.25s ease-in-out 1;\n}\n@keyframes cannotClose {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.08);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.alert__main {\n display: flex;\n align-items: stretch;\n}\n\n.alert__content {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n letter-spacing: var(--nano-letter-spacing-loose);\n flex: 1 1 auto;\n padding: var(--nano-spacing-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: var(--nano-spacing-sm);\n}\n\n.alert__modal-wrap {\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n z-index: var(--nano-z-index-alert);\n}\n\n.alert__heading {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n font-weight: var(--nano-font-weight-bold);\n color: var(--tint-color);\n}\n\n.alert__title {\n font-weight: var(--nano-font-weight-normal);\n font-size: var(--nano-font-size-medium);\n line-height: var(--nano-line-height-dense);\n}\n\n.alert__close {\n --color: var(--close-button-color);\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: 1.1em;\n padding-inline: 0 var(--nano-spacing-md);\n padding-block: 0;\n}\n\n.alert__overlay {\n position: fixed;\n inset: 0;\n background-color: var(--scrim-color);\n opacity: 0;\n transition: var(--nano-transition-fast) opacity;\n z-index: var(--nano-z-index-alert);\n pointer-events: all;\n}\n.alert__overlay--open {\n opacity: 1;\n}\n\n.alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: start;\n font-size: var(--icon-size);\n padding-block: var(--nano-spacing-md);\n}\n.alert__icon ::slotted(*), .alert__icon::slotted(*) {\n color: var(--tint-color);\n margin-inline-start: var(--nano-spacing-md);\n}\n@container (width < 280px) {\n .alert__icon {\n display: none;\n }\n}\n\n.alert__countdown {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 4px;\n background-color: var(--nano-layer-border-color);\n display: flex;\n justify-content: flex-end;\n}\n\n.alert__countdown .alert__countdown-elapsed {\n block-size: 100%;\n inline-size: 0;\n}\n\n.alert__timer {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n\n.alert__countdown-elapsed {\n background-color: var(--tint-color);\n}";
|
3814
|
+
const alertCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/** Typography */\n:host {\n /**\n * @prop --border-radius: Defaults to var(--nano-layer-border-radius);\n * @prop --border-color: Defaults to var(--nano-layer-border-color);\n * @prop --border-width: Defaults to var(--nano-layer-border-width);\n * @prop --background: Defaults to var(--nano-layer-background-color);\n * @prop --tint-color: The highlight colour (border-start, icon and heading text). Defaults to var(--nano-color-primary-1100);\n * @prop --icon-size: Defaults to var(--nano-pictogram-size-large);\n * @prop --scrim-color: overlay colour of alert display. Defaults to var(--nano-overlay-background-color);\n * @prop --close-button-color: Defaults to var(--nano-color-neutral-400);\n */\n --border-radius: var(--nano-layer-border-radius);\n --border-color: var(--nano-layer-border-color);\n --border-width: var(--nano-layer-border-width);\n --icon-size: var(--nano-pictogram-size-large);\n --scrim-color: var(--nano-overlay-background-color);\n --close-button-color: var(--nano-color-neutral-800);\n --tint-color: var(--nano-color-primary-1100);\n --background: var(--nano-color-primary-50);\n display: block;\n container-type: inline-size;\n}\n\n:host([color=neutral]), :host([theme=neutral]) {\n --tint-color: var(--nano-color-neutral-1200);\n --background: var(--nano-color-neutral-75);\n}\n\n:host([color=success]), :host([theme=success]) {\n --tint-color: var(--nano-color-success-1100);\n --background: var(--nano-color-success-50);\n}\n\n:host([color=warning]), :host([theme=warning]) {\n --tint-color: var(--nano-color-warning-1100);\n --background: var(--nano-color-warning-75);\n}\n\n:host([color=danger]), :host([theme=danger]) {\n --tint-color: var(--nano-color-danger-1100);\n --background: var(--nano-color-danger-100);\n}\n\n.alert {\n position: relative;\n background-color: var(--background);\n border: solid var(--border-width) var(--border-color);\n border-inline-start: solid 4px var(--tint-color);\n border-radius: var(--border-radius);\n opacity: 0;\n transform: scale(0.9);\n transition: var(--nano-transition-medium) opacity ease, var(--nano-transition-fast) transform ease;\n}\n.alert:focus {\n outline: none;\n}\n.alert:not(.alert--showing) {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n pointer-events: none;\n visibility: hidden;\n}\n.alert--open {\n opacity: 1;\n transform: none;\n}\n.alert--toasty, .alert--modal {\n box-shadow: var(--nano-shadow-l2);\n margin: var(--nano-spacing-md);\n}\n.alert--modal.alert--nodismiss {\n animation: cannotClose 0.25s ease-in-out 1;\n}\n@keyframes cannotClose {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.08);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n.alert__main {\n display: flex;\n align-items: stretch;\n}\n\n.alert__content {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n letter-spacing: var(--nano-letter-spacing-loose);\n flex: 1 1 auto;\n padding: var(--nano-spacing-md);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: var(--nano-spacing-sm);\n}\n\n.alert__modal-wrap {\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n inset: 0;\n z-index: var(--nano-z-index-alert);\n}\n\n.alert__heading {\n font-size: var(--nano-font-size-small);\n line-height: var(--nano-line-height-normal);\n font-weight: var(--nano-font-weight-bold);\n color: var(--tint-color);\n}\n\n.alert__title {\n font-weight: var(--nano-font-weight-normal);\n font-size: var(--nano-font-size-medium);\n line-height: var(--nano-line-height-dense);\n}\n\n.alert__close {\n --color: var(--close-button-color);\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: 1.1em;\n padding-inline: 0 var(--nano-spacing-md);\n padding-block: 0;\n}\n\n.alert__overlay {\n position: fixed;\n inset: 0;\n background-color: var(--scrim-color);\n opacity: 0;\n transition: var(--nano-transition-fast) opacity;\n z-index: var(--nano-z-index-alert);\n pointer-events: all;\n}\n.alert__overlay--open {\n opacity: 1;\n}\n\n.alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: start;\n font-size: var(--icon-size);\n padding-block: var(--nano-spacing-md);\n}\n.alert__icon ::slotted(*), .alert__icon::slotted(*) {\n color: var(--tint-color);\n margin-inline-start: var(--nano-spacing-md);\n}\n@container (width < 280px) {\n .alert__icon {\n display: none !important;\n }\n}\n\n.alert__countdown {\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: 0;\n inline-size: 100%;\n block-size: 4px;\n background-color: var(--nano-layer-border-color);\n display: flex;\n justify-content: flex-end;\n}\n\n.alert__countdown .alert__countdown-elapsed {\n block-size: 100%;\n inline-size: 0;\n}\n\n.alert__timer {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n\n.alert__countdown-elapsed {\n background-color: var(--tint-color);\n}";
|
3815
3815
|
|
3816
3816
|
let toastStackTr;
|
3817
3817
|
let toastStackTl;
|
@@ -18895,7 +18895,7 @@ class NanoBadge {
|
|
18895
18895
|
}; }
|
18896
18896
|
}
|
18897
18897
|
|
18898
|
-
const breadcrumbCss = ":host
|
18898
|
+
const breadcrumbCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }/**\n * @prop {string} --text-color - The base color of the text. Defaults to var(--nano-color-primary-1000).\n * @prop {string} --text-color-hover - The hover colour of the text. Defaults to var(--nano-color-primary-1200).\n * @prop {string} --text-color-secondary - The secondary colour (& inactive colour) of the text. Defaults to var(--nano-color-neutral-1400).\n * @prop {string} --text-color-disabled - The disabled colour of the text. Defaults to var(--nano-color-neutral-1000).\n * @prop {string} --border-color - The colour of the border & divider. Defaults to var(--nano-color-neutral-400).\n * @prop {string} --trigger-bg-color - The background colour of the trigger button. Defaults to var(--nano-color-base-0).\n */\n:host {\n --text-color: var(--nano-color-primary-1000);\n --text-color-hover: var(--nano-color-primary-1200);\n --text-color-secondary: var(--nano-color-neutral-1400);\n --text-color-disabled: var(--nano-color-neutral-1000);\n --border-color: var(--nano-color-neutral-400);\n --trigger-bg-color: var(--nano-color-base-0);\n container-type: inline-size;\n display: block;\n}\n\n.breadcrumbs {\n inline-size: 100%;\n max-inline-size: 1346px;\n}\n\nol,\nnano-menu::part(base) {\n list-style: none;\n padding: 0;\n margin: 0;\n display: flex;\n flex-direction: row;\n}\n\nli {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n font-size: var(--nano-font-size-xs);\n line-height: var(--nano-line-height-normal);\n text-wrap: nowrap;\n margin-block-end: 0;\n}\n\nli:not(.return-only li)::after,\nnano-nav-item::after {\n content: \"/\";\n margin: 0 var(--nano-spacing-xs);\n color: var(--border-color);\n}\n\na.link {\n color: var(--text-color);\n}\n\na:not(.link) {\n color: var(--text-color-secondary);\n}\n\na:focus-visible {\n outline: var(--nano-focus-ring);\n outline-offset: var(--nano-focus-ring-offset);\n z-index: 1;\n}\n\na.link:hover {\n color: var(--text-color-hover);\n}\n\na.return.link {\n display: flex;\n align-items: center;\n gap: calc(var(--nano-spacing-sm) / 2);\n}\n\n.breadcrumbs__dropdown {\n inline-size: 100%;\n display: none;\n}\n.breadcrumbs__dropdown[open]::part(trigger) {\n box-shadow: var(--nano-shadow-l1);\n}\n.breadcrumbs__dropdown[open]::part(panel) {\n box-shadow: var(--nano-shadow-l1);\n}\n\n.trigger-button {\n inline-size: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--nano-spacing-l3) var(--nano-spacing-l2);\n color: var(--text-color);\n background-color: var(--trigger-bg-color);\n cursor: pointer;\n text-align: start;\n border: none;\n font-size: var(--nano-font-size-xs);\n}\n.trigger-button .trigger-button_label {\n text-decoration: underline;\n}\n.trigger-button .trigger-button_label::after {\n content: \"/\";\n margin: 0 var(--nano-spacing-xs);\n color: var(--border-color);\n}\n.trigger-button:focus-visible {\n outline: var(--nano-focus-ring);\n outline-offset: var(--nano-focus-ring-offset);\n}\n\n.trigger-icon {\n transform: rotate(0deg);\n transition: var(--nano-transition-x-fast) ease transform;\n}\n.trigger-icon--open {\n transform: rotate(180deg);\n}\n\n@container (width < 768px) {\n .main {\n display: none !important;\n }\n .breadcrumbs__dropdown {\n display: block !important;\n }\n nano-menu::part(base) {\n flex-direction: column !important;\n }\n nano-nav-item::after {\n display: none !important;\n }\n .trigger-button_label::after {\n display: inline-block !important;\n }\n .return-only {\n padding: var(--nano-spacing-l3) var(--nano-spacing-l2) !important;\n }\n}";
|
18899
18899
|
|
18900
18900
|
/**
|
18901
18901
|
* Breadcrumbs are used to indicate the current page's location within a navigational hierarchy.
|
@@ -18922,7 +18922,7 @@ class NanoBreadcrumb {
|
|
18922
18922
|
const parentBreadcrumb = this.breadcrumbs?.length
|
18923
18923
|
? this.breadcrumbs.at(-1)
|
18924
18924
|
: null;
|
18925
|
-
return (hAsync("div", { class: "breadcrumbs" }, hAsync("nav", { "aria-label": "Breadcrumb" }, hAsync(BreadcrumbList, { breadcrumbs: this.breadcrumbs, className: "main" })), hAsync("nano-dropdown", { dialogTitle: `${parentBreadcrumb?.label} Breadcrumb`, onNanoShow: () => (this.isOpen = true), onNanoHide: () => (this.isOpen = false), containingElement: this.el }, hAsync("button", { class: "trigger-button", slot: "trigger" }, hAsync("span", null, this.breadcrumbs && this.breadcrumbs.length > 1 && (hAsync("span", { class: "trigger-button_label" }, "..")), hAsync("span", { class: "trigger-button_label" }, parentBreadcrumb?.label)), hAsync("nano-icon", { class: {
|
18925
|
+
return (hAsync("div", { class: "breadcrumbs" }, hAsync("nav", { "aria-label": "Breadcrumb" }, hAsync(BreadcrumbList, { breadcrumbs: this.breadcrumbs, className: "main" })), hAsync("nano-dropdown", { dialogTitle: `${parentBreadcrumb?.label} Breadcrumb`, onNanoShow: () => (this.isOpen = true), onNanoHide: () => (this.isOpen = false), containingElement: this.el, class: "breadcrumbs__dropdown" }, hAsync("button", { class: "trigger-button", slot: "trigger" }, hAsync("span", null, this.breadcrumbs && this.breadcrumbs.length > 1 && (hAsync("span", { class: "trigger-button_label" }, "..")), hAsync("span", { class: "trigger-button_label" }, parentBreadcrumb?.label)), hAsync("nano-icon", { class: {
|
18926
18926
|
'trigger-icon': true,
|
18927
18927
|
'trigger-icon--open': this.isOpen,
|
18928
18928
|
}, name: "light/chevron-down" })), hAsync("nav", null, hAsync("nano-menu", { class: "breadcrumbs small", label: "Breadcrumbs" }, this.breadcrumbs?.slice(0, -1)?.map((breadcrumb, index) => (hAsync("nano-nav-item", { key: index, href: breadcrumb.href, class: { return: breadcrumb.return, link: !!breadcrumb.href }, disabled: !breadcrumb.href }, breadcrumb.label))))))));
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nanoporetech-digital/components",
|
3
|
-
"version": "8.0.0-alpha.
|
3
|
+
"version": "8.0.0-alpha.6",
|
4
4
|
"sideEffects": false,
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -60,7 +60,7 @@
|
|
60
60
|
"smart-array-filter": "^4.0.2",
|
61
61
|
"stencil-wormhole": "3.2.1",
|
62
62
|
"tyqs": "^0.1.3",
|
63
|
-
"@nanoporetech-digital/style": "8.0.0-alpha.
|
63
|
+
"@nanoporetech-digital/style": "8.0.0-alpha.6"
|
64
64
|
},
|
65
65
|
"devDependencies": {
|
66
66
|
"@algolia/client-search": "^4.22.1",
|
@@ -1,4 +0,0 @@
|
|
1
|
-
/*!
|
2
|
-
* Custom elements for Nanopore-Digital Web applications
|
3
|
-
*/
|
4
|
-
import{a as t,k as s}from"./index-DXvE-U_j.js";function h(t){const s=t.getRootNode();return s.host?s.host.innerText:t.innerText}class i{host;slotNames=[];constructor(s,...h){this.slotNames=h;const i=s.componentWillLoad;s.componentWillLoad=()=>{this.host=t(s),i&&i.call(s)};const o=s.connectedCallback;s.connectedCallback=()=>{this.host=t(s),this.hostConnected(),o&&o.call(s)};const e=s.disconnectedCallback;s.disconnectedCallback=()=>{this.hostDisconnected(),this.host=void 0,e&&e.call(s)}}hasDefaultSlot(){if(this.host&&this.host.isConnected)return[...this.host.childNodes].some((t=>t.nodeType===Node.TEXT_NODE&&""!==t.textContent.trim()||t.nodeType===Node.ELEMENT_NODE&&!t.hasAttribute("slot")))}hasNamedSlot(t){if(this.host&&this.host.isConnected)return!!Array.from(this.host.children).find((s=>s.getAttribute("slot")&&s.getAttribute("slot")===t))}has(t){return"[default]"===t?this.hasDefaultSlot():this.hasNamedSlot(t)}hostConnected(){this.host.shadowRoot.addEventListener("slotchange",this.handleSlotChange)}hostDisconnected(){this.host&&this.host.shadowRoot.removeEventListener("slotchange",this.handleSlotChange)}handleSlotChange=t=>{const h=t.target;(this.slotNames.includes("[default]")&&!h.name||h.name&&this.slotNames.includes(h.name))&&s(this.host)}}export{i as H,h as g}
|