@nubisco/ui 4.1.1 → 4.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),n=require(`./Icon-C8R_r_In.cjs`),r=require(`./composables/useStableId.composable.cjs`),i=require(`./composables/useSurfaceLayer.composable.cjs`),a=require(`./utils/anchorPosition.helper.cjs`);let o=require(`vue`),s=require(`@nubisco/ui/icons/info`);s=e.n(s);var c=[`data-term`],l=[`aria-label`,`aria-expanded`,`aria-describedby`,`disabled`],u={key:0,class:`nb-info-hint--title`},d={class:`nb-info-hint--body`},f=(0,o.defineComponent)({__name:`InfoHint`,props:{text:{default:void 0},title:{default:void 0},term:{default:void 0},placement:{default:`top`},size:{default:14},icon:{default:void 0},label:{default:void 0},openDelay:{default:120},closeDelay:{default:140},teleportTo:{default:`body`},disabled:{type:Boolean,default:!1}},emits:[`open`,`close`,`activate`],setup(e,{expose:t,emit:f}){let p=e,m=(0,o.computed)(()=>p.icon??s),h=f,g=`${r.useStableId({})}-popover`,{layerProps:_}=i.useSurfaceLayer({overlay:!0}),v=(0,o.ref)(null),y=(0,o.ref)(null),b=(0,o.ref)(!1),x=(0,o.ref)(!1),S=(0,o.ref)(p.placement),C=(0,o.ref)({top:0,left:0,arrowOffset:50}),w,T,E=(0,o.computed)(()=>({top:`${C.value.top}px`,left:`${C.value.left}px`,"--nb-info-hint-arrow-offset":`${C.value.arrowOffset}%`}));function D(){clearTimeout(w),clearTimeout(T),w=void 0,T=void 0}function O(){let e=v.value,t=y.value;if(!e||!t)return;let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=a.placeAnchored(n,{width:r.width,height:r.height},{side:p.placement,viewport:a.viewportSize()});S.value=i.side,C.value={top:i.top,left:i.left,arrowOffset:i.arrowOffset}}function k(){p.disabled||b.value||(D(),b.value=!0,h(`open`),(0,o.nextTick)(()=>{O(),requestAnimationFrame(O)}))}function A(){b.value&&(D(),b.value=!1,x.value=!1,h(`close`))}function j(){p.disabled||(clearTimeout(T),T=void 0,!b.value&&(w=setTimeout(k,p.openDelay)))}function M(){clearTimeout(w),w=void 0,!x.value&&(T=setTimeout(A,p.closeDelay))}function N(){if(!p.disabled){if(x.value){A();return}x.value=!0,k(),h(`activate`,p.term)}}function P(e){if(e.key===`Escape`){b.value&&(e.preventDefault(),A());return}}function F(){p.disabled||(clearTimeout(T),T=void 0,k())}function I(e){if(x.value)return;let t=e.relatedTarget;t&&y.value?.contains(t)||A()}function L(e){let t=e.target;t&&(v.value?.contains(t)||y.value?.contains(t)||A())}function R(e){e.key===`Escape`&&A()}return(0,o.watch)(b,e=>{typeof document>`u`||(e?(document.addEventListener(`pointerdown`,L,!0),document.addEventListener(`keydown`,R),window.addEventListener(`resize`,O),window.addEventListener(`scroll`,O,!0)):(document.removeEventListener(`pointerdown`,L,!0),document.removeEventListener(`keydown`,R),window.removeEventListener(`resize`,O),window.removeEventListener(`scroll`,O,!0)))}),(0,o.watch)(()=>p.disabled,e=>{e&&A()}),(0,o.onBeforeUnmount)(()=>{D(),!(typeof document>`u`)&&(document.removeEventListener(`pointerdown`,L,!0),document.removeEventListener(`keydown`,R),window.removeEventListener(`resize`,O),window.removeEventListener(`scroll`,O,!0))}),t({open:k,close:A,isOpen:b}),(t,r)=>((0,o.openBlock)(),(0,o.createElementBlock)(`span`,{class:`nb-info-hint`,"data-term":e.term||void 0},[(0,o.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:v,type:`button`,class:(0,o.normalizeClass)([`nb-info-hint--trigger`,{"nb-info-hint--trigger-open":b.value}]),"aria-label":e.label??`More information`,"aria-expanded":b.value,"aria-describedby":b.value?g:void 0,disabled:e.disabled,onClick:(0,o.withModifiers)(N,[`stop`]),onMousedown:r[0]||=(0,o.withModifiers)(()=>{},[`stop`]),onPointerdown:r[1]||=(0,o.withModifiers)(()=>{},[`stop`]),onKeydown:(0,o.withModifiers)(P,[`stop`]),onMouseenter:j,onMouseleave:M,onFocus:F,onBlur:I},[(0,o.createVNode)(n.t,{name:m.value,size:e.size,weight:`regular`},null,8,[`name`,`size`])],42,l),((0,o.openBlock)(),(0,o.createBlock)(o.Teleport,{to:e.teleportTo},[b.value?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,(0,o.mergeProps)({key:0,id:g,ref_key:`popoverRef`,ref:y,class:[`nb-info-hint--popover`,`nb-info-hint--popover-${S.value}`]},(0,o.unref)(_),{role:`tooltip`,style:E.value,onClick:r[2]||=(0,o.withModifiers)(()=>{},[`stop`]),onMousedown:r[3]||=(0,o.withModifiers)(()=>{},[`stop`]),onPointerdown:r[4]||=(0,o.withModifiers)(()=>{},[`stop`]),onMouseenter:j,onMouseleave:M}),[e.title?((0,o.openBlock)(),(0,o.createElementBlock)(`p`,u,(0,o.toDisplayString)(e.title),1)):(0,o.createCommentVNode)(``,!0),(0,o.createElementVNode)(`div`,d,[(0,o.renderSlot)(t.$slots,`default`,{},()=>[(0,o.createTextVNode)((0,o.toDisplayString)(e.text),1)],!0)])],16)):(0,o.createCommentVNode)(``,!0)],8,[`to`]))],8,c))}}),p=t.t(f,[[`__scopeId`,`data-v-e7ec3f8e`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});
@@ -0,0 +1,165 @@
1
+ import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
2
+ import { t } from "./Icon-rREAqsu0.js";
3
+ import { useStableId as n } from "./composables/useStableId.composable.mjs";
4
+ import { useSurfaceLayer as r } from "./composables/useSurfaceLayer.composable.mjs";
5
+ import { placeAnchored as i, viewportSize as a } from "./utils/anchorPosition.helper.mjs";
6
+ import { Teleport as o, computed as s, createBlock as ee, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, mergeProps as m, nextTick as h, normalizeClass as g, onBeforeUnmount as _, openBlock as v, ref as y, renderSlot as b, toDisplayString as x, unref as S, watch as C, withModifiers as w } from "vue";
7
+ import * as te from "@nubisco/ui/icons/info";
8
+ //#region src/components/InfoHint.vue?vue&type=script&setup=true&lang.ts
9
+ var T = ["data-term"], E = [
10
+ "aria-label",
11
+ "aria-expanded",
12
+ "aria-describedby",
13
+ "disabled"
14
+ ], D = {
15
+ key: 0,
16
+ class: "nb-info-hint--title"
17
+ }, O = { class: "nb-info-hint--body" }, k = /* @__PURE__ */ e(/* @__PURE__ */ p({
18
+ __name: "InfoHint",
19
+ props: {
20
+ text: { default: void 0 },
21
+ title: { default: void 0 },
22
+ term: { default: void 0 },
23
+ placement: { default: "top" },
24
+ size: { default: 14 },
25
+ icon: { default: void 0 },
26
+ label: { default: void 0 },
27
+ openDelay: { default: 120 },
28
+ closeDelay: { default: 140 },
29
+ teleportTo: { default: "body" },
30
+ disabled: {
31
+ type: Boolean,
32
+ default: !1
33
+ }
34
+ },
35
+ emits: [
36
+ "open",
37
+ "close",
38
+ "activate"
39
+ ],
40
+ setup(e, { expose: p, emit: k }) {
41
+ let A = e, j = s(() => A.icon ?? te), M = k, N = `${n({})}-popover`, { layerProps: P } = r({ overlay: !0 }), F = y(null), I = y(null), L = y(!1), R = y(!1), z = y(A.placement), B = y({
42
+ top: 0,
43
+ left: 0,
44
+ arrowOffset: 50
45
+ }), V, H, U = s(() => ({
46
+ top: `${B.value.top}px`,
47
+ left: `${B.value.left}px`,
48
+ "--nb-info-hint-arrow-offset": `${B.value.arrowOffset}%`
49
+ }));
50
+ function W() {
51
+ clearTimeout(V), clearTimeout(H), V = void 0, H = void 0;
52
+ }
53
+ function G() {
54
+ let e = F.value, t = I.value;
55
+ if (!e || !t) return;
56
+ let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), o = i(n, {
57
+ width: r.width,
58
+ height: r.height
59
+ }, {
60
+ side: A.placement,
61
+ viewport: a()
62
+ });
63
+ z.value = o.side, B.value = {
64
+ top: o.top,
65
+ left: o.left,
66
+ arrowOffset: o.arrowOffset
67
+ };
68
+ }
69
+ function K() {
70
+ A.disabled || L.value || (W(), L.value = !0, M("open"), h(() => {
71
+ G(), requestAnimationFrame(G);
72
+ }));
73
+ }
74
+ function q() {
75
+ L.value && (W(), L.value = !1, R.value = !1, M("close"));
76
+ }
77
+ function J() {
78
+ A.disabled || (clearTimeout(H), H = void 0, !L.value && (V = setTimeout(K, A.openDelay)));
79
+ }
80
+ function Y() {
81
+ clearTimeout(V), V = void 0, !R.value && (H = setTimeout(q, A.closeDelay));
82
+ }
83
+ function X() {
84
+ if (!A.disabled) {
85
+ if (R.value) {
86
+ q();
87
+ return;
88
+ }
89
+ R.value = !0, K(), M("activate", A.term);
90
+ }
91
+ }
92
+ function Z(e) {
93
+ if (e.key === "Escape") {
94
+ L.value && (e.preventDefault(), q());
95
+ return;
96
+ }
97
+ }
98
+ function ne() {
99
+ A.disabled || (clearTimeout(H), H = void 0, K());
100
+ }
101
+ function re(e) {
102
+ if (R.value) return;
103
+ let t = e.relatedTarget;
104
+ t && I.value?.contains(t) || q();
105
+ }
106
+ function Q(e) {
107
+ let t = e.target;
108
+ t && (F.value?.contains(t) || I.value?.contains(t) || q());
109
+ }
110
+ function $(e) {
111
+ e.key === "Escape" && q();
112
+ }
113
+ return C(L, (e) => {
114
+ typeof document > "u" || (e ? (document.addEventListener("pointerdown", Q, !0), document.addEventListener("keydown", $), window.addEventListener("resize", G), window.addEventListener("scroll", G, !0)) : (document.removeEventListener("pointerdown", Q, !0), document.removeEventListener("keydown", $), window.removeEventListener("resize", G), window.removeEventListener("scroll", G, !0)));
115
+ }), C(() => A.disabled, (e) => {
116
+ e && q();
117
+ }), _(() => {
118
+ W(), !(typeof document > "u") && (document.removeEventListener("pointerdown", Q, !0), document.removeEventListener("keydown", $), window.removeEventListener("resize", G), window.removeEventListener("scroll", G, !0));
119
+ }), p({
120
+ open: K,
121
+ close: q,
122
+ isOpen: L
123
+ }), (n, r) => (v(), l("span", {
124
+ class: "nb-info-hint",
125
+ "data-term": e.term || void 0
126
+ }, [u("button", {
127
+ ref_key: "triggerRef",
128
+ ref: F,
129
+ type: "button",
130
+ class: g(["nb-info-hint--trigger", { "nb-info-hint--trigger-open": L.value }]),
131
+ "aria-label": e.label ?? "More information",
132
+ "aria-expanded": L.value,
133
+ "aria-describedby": L.value ? N : void 0,
134
+ disabled: e.disabled,
135
+ onClick: w(X, ["stop"]),
136
+ onMousedown: r[0] ||= w(() => {}, ["stop"]),
137
+ onPointerdown: r[1] ||= w(() => {}, ["stop"]),
138
+ onKeydown: w(Z, ["stop"]),
139
+ onMouseenter: J,
140
+ onMouseleave: Y,
141
+ onFocus: ne,
142
+ onBlur: re
143
+ }, [f(t, {
144
+ name: j.value,
145
+ size: e.size,
146
+ weight: "regular"
147
+ }, null, 8, ["name", "size"])], 42, E), (v(), ee(o, { to: e.teleportTo }, [L.value ? (v(), l("div", m({
148
+ key: 0,
149
+ id: N,
150
+ ref_key: "popoverRef",
151
+ ref: I,
152
+ class: ["nb-info-hint--popover", `nb-info-hint--popover-${z.value}`]
153
+ }, S(P), {
154
+ role: "tooltip",
155
+ style: U.value,
156
+ onClick: r[2] ||= w(() => {}, ["stop"]),
157
+ onMousedown: r[3] ||= w(() => {}, ["stop"]),
158
+ onPointerdown: r[4] ||= w(() => {}, ["stop"]),
159
+ onMouseenter: J,
160
+ onMouseleave: Y
161
+ }), [e.title ? (v(), l("p", D, x(e.title), 1)) : c("", !0), u("div", O, [b(n.$slots, "default", {}, () => [d(x(e.text), 1)], !0)])], 16)) : c("", !0)], 8, ["to"]))], 8, T));
162
+ }
163
+ }), [["__scopeId", "data-v-e7ec3f8e"]]);
164
+ //#endregion
165
+ export { k as t };
@@ -0,0 +1 @@
1
+ const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./EmptyState-henL7JH6.cjs`),r=require(`./Button-Dqtcr4i0.cjs`),i=require(`./Spinner-CqSN2vaR.cjs`),a=require(`./Skeleton-D8CHd_4p.cjs`),o=require(`./NotificationCenterItem-Clhhma6H.cjs`);let s=require(`vue`),c=require(`@nubisco/ui/icons/warning-circle`),l=require(`@nubisco/ui/icons/bell`);l=e.n(l);var u={key:0,class:`nb-notification-center__badge`,"aria-hidden":`true`},d=[`aria-describedby`,`aria-busy`],f={class:`nb-notification-center__header`},p={class:`nb-notification-center__sr`,role:`status`},ee={class:`nb-notification-center__stale-text`},te={class:`nb-notification-center__sr`},ne=[`tabindex`],re={key:4,class:`nb-notification-center__empty`},ie={key:5,class:`nb-notification-center__footer`},m=new Set,h=8,g=8,_=96,v=88,y=200;function ae(e,{align:t,width:n,maxHeight:r,viewport:i}){let a=t===`start`?e.left:e.left+e.width-n,o=Math.min(Math.max(a,g),Math.max(g,i.width-n-g)),s=e.top+e.height,c=i.height-s-h-g,l=e.top-h-g,u=c<y&&l>c?`top`:`bottom`,d=Math.max(v,u===`top`?l:c),f=Math.max(v,Math.min(r,d-_)),p=Math.min(r+_,d);return{top:u===`top`?Math.max(g,e.top-h-p):s+h,left:o,side:u,maxListHeight:f}}function oe(e,t){return e.left<=t.width&&e.left+e.width>=0&&e.top<=t.height&&e.top+e.height>=0}var b=(0,s.defineComponent)({__name:`NotificationCenter`,props:{items:{default:()=>[]},unreadCount:{default:void 0},itemCount:{default:void 0},open:{type:Boolean,default:void 0},label:{default:`Notifications`},markAllLabel:{default:`Mark all as read`},markAllPendingLabel:{default:`Marking all as read`},markAllPending:{type:Boolean,default:!1},emptyTitle:{default:`No notifications`},emptyDescription:{default:`New activity shows up here.`},loadingLabel:{default:`Loading notifications`},loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},errorTitle:{default:`Could not load notifications`},errorDescription:{default:`The request failed. Nothing has been lost.`},errorStaleLabel:{default:`These may be out of date.`},retryLabel:{default:`Try again`},showRetry:{type:Boolean,default:!0},maxCount:{default:99},width:{default:360},maxHeight:{default:384},align:{default:`end`},showMarkAll:{type:Boolean,default:!0},interactive:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},closeOnNavigate:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},icon:{default:void 0},locale:{default:void 0},unreadLabel:{default:`Unread`},readLabel:{default:`Read`},formatUnread:{type:Function,default:e=>e===1?`1 unread`:`${e} unread`}},emits:[`update:open`,`open`,`close`,`select`,`mark-all-read`,`retry`],setup(e,{expose:h,emit:g}){let _=e,v=(0,s.computed)(()=>_.icon??l),y=g,b=(0,s.useSlots)(),x=`nb-notification-center-${(0,s.useId)()}`,S=`${x}-title`,se=`${x}-trigger`,C=`${x}-error`,w=(0,s.ref)(null),ce=(0,s.ref)(null),T=(0,s.ref)(null),E=(0,s.ref)(null),le=(0,s.ref)(!1),D=(0,s.computed)(()=>_.open===void 0?le.value:_.open),O=(0,s.computed)(()=>typeof _.unreadCount==`number`?Math.max(0,_.unreadCount):_.items.filter(e=>!e.read).length),ue=(0,s.computed)(()=>O.value>_.maxCount?`${_.maxCount}+`:String(O.value)),de=(0,s.computed)(()=>O.value>0?`${_.label}, ${_.formatUnread(O.value)}`:_.label),fe=(0,s.computed)(()=>{if(typeof _.itemCount==`number`)return Math.max(0,_.itemCount);if(!b.default)return _.items.length}),pe=(0,s.computed)(()=>(fe.value??0)>0),k=(0,s.computed)(()=>{if(_.loading)return`loading`;let e=fe.value;return _.error&&(e===void 0||e===0)?`error`:e===void 0||e>0?`list`:`empty`}),A=(0,s.computed)(()=>_.error&&!_.loading&&k.value===`list`&&pe.value);(0,s.ref)(!1),(0,s.watch)(()=>[D.value,!!b.default,_.itemCount],([e,t,n])=>{},{immediate:!0});function j(){y(`retry`)}let M=(0,s.computed)(()=>({id:se,"aria-haspopup":`dialog`,"aria-expanded":D.value?`true`:`false`,"aria-controls":D.value?x:void 0,"aria-label":de.value,disabled:_.disabled||void 0})),N=(0,s.computed)(()=>({type:`button`,disabled:O.value===0&&!_.markAllPending,"aria-disabled":_.markAllPending?`true`:void 0,"aria-busy":_.markAllPending?`true`:void 0,onClick:Oe})),me=(0,s.computed)(()=>A.value||k.value===`error`?C:void 0);function P(e){if(!e){T.value=null;return}let t=e instanceof HTMLElement?e:e.$el;T.value=t instanceof HTMLElement?t:null}let F=(0,s.ref)({top:0,left:0,side:`bottom`,maxListHeight:_.maxHeight});function I(){return{width:window.innerWidth,height:window.innerHeight}}function L(){let e=w.value?.getBoundingClientRect();e&&(F.value=ae(e,{align:_.align,width:_.width,maxHeight:_.maxHeight,viewport:I()}))}let he=(0,s.computed)(()=>({top:`${Math.round(F.value.top)}px`,left:`${Math.round(F.value.left)}px`,width:`${_.width}px`})),R=(0,s.computed)(()=>({maxHeight:`${Math.round(F.value.maxListHeight)}px`})),ge=(0,s.computed)(()=>({"nb-notification-center__panel--start":_.align===`start`,"nb-notification-center__panel--above":F.value.side===`top`}));function z(e){_.open===void 0&&(le.value=e),y(`update:open`,e)}function B(){_.disabled||D.value||(L(),z(!0),y(`open`))}function V(e={}){if(!D.value)return;let t=E.value?.contains(document.activeElement);z(!1),y(`close`),(e.restoreFocus??t)&&(0,s.nextTick)(H)}function H(){let e=T.value;if(e?.isConnected){e.focus();return}(w.value?.querySelector(J))?.focus()}function U(){D.value?V({restoreFocus:!0}):B()}let W=(0,s.ref)(0),_e=new Set([`button`,`link`,`menuitem`,`option`]);function ve(e){if(e.tagName===`BUTTON`)return!e.hasAttribute(`disabled`);if(e.tagName===`A`)return e.hasAttribute(`href`);let t=e.getAttribute(`role`);return t!==null&&_e.has(t)}function G(){return E.value?Array.from(E.value.querySelectorAll(`[data-nb-notification-item]`)).filter(e=>!!ve(e)):[]}let ye=(0,s.ref)(void 0);function be(e){let t=ce.value;ye.value=t&&t.childElementCount>0&&e.length===0?0:void 0}function K(e){let t=G();be(t),t.length&&(W.value=Math.min(Math.max(e,0),t.length-1),t.forEach((e,t)=>{e.setAttribute(`tabindex`,t===W.value?`0`:`-1`)}))}function q(e){let t=G();if(!t.length)return!1;let n=Math.min(Math.max(e,0),t.length-1);return K(n),t[n]?.focus(),!0}function xe(e){let t=e.target?.closest(`[data-nb-notification-item]`);if(!t)return;let n=G().indexOf(t);n>=0&&K(n)}let J=`a[href]:not([tabindex="-1"]), button:not([disabled]):not([tabindex="-1"]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex="0"]`;function Se(e){return!!e?.closest?.(`input, textarea, select, [contenteditable=""], [contenteditable="true"]`)}function Ce(e){let t=G(),n=e.target?.closest(`[data-nb-notification-item]`),r=n?t.indexOf(n):-1;if(e.key===`Escape`){if(!we(e))return;e.preventDefault(),e.stopPropagation(),V({restoreFocus:!0});return}if(e.key===`Tab`){Te(e);return}if(!Se(e.target))switch(e.key){case`ArrowDown`:q(r<0?0:r+1)&&e.preventDefault();break;case`ArrowUp`:q(r<0?t.length-1:r-1)&&e.preventDefault();break;case`Home`:r>=0&&(e.preventDefault(),q(0));break;case`End`:r>=0&&(e.preventDefault(),q(t.length-1));break;default:break}}function we(e){if(e.defaultPrevented)return!1;let t=(e.target??document.activeElement)?.closest?.(`[aria-modal="true"]`);return!(t&&t!==E.value)}function Te(e){let t=E.value;if(!t)return;let n=Array.from(t.querySelectorAll(J)),r=document.activeElement,i=n[0],a=n[n.length-1],o=!n.length||r===i||!t.contains(r),c=!n.length||r===a;if(e.shiftKey?!o:!c)return;e.preventDefault();let l=e.shiftKey?T.value:Ee();V({restoreFocus:!1}),(0,s.nextTick)(()=>{l?.isConnected?l.focus():H()})}function Ee(){let e=T.value;if(!e)return null;let t=Array.from(document.querySelectorAll(J)).filter(e=>!E.value?.contains(e)).filter(e=>e.tabIndex>=0),n=t.indexOf(e);return n<0?null:t[n+1]??null}function De(e,t){y(`select`,e,t),_.closeOnSelect&&V({restoreFocus:!1})}function Y(e){if(!b.default)return;let t=e.target?.closest(`[data-nb-notification-item]`);if(t&&ve(t)){if(e.type===`keydown`){let n=e.key;if(n!==`Enter`&&n!==` `||t.tagName===`BUTTON`||t.tagName===`A`)return;e.preventDefault()}y(`select`,null,e),_.closeOnSelect&&V({restoreFocus:!1})}}function Oe(){_.markAllPending||y(`mark-all-read`)}function ke(e){let t=e.target;w.value?.contains(t)||E.value?.contains(t)||V({restoreFocus:!1})}function Ae(e){e.key===`Escape`&&(E.value?.contains(document.activeElement)||we(e)&&V({restoreFocus:w.value?.contains(document.activeElement)??!1}))}let X=0;function Z(){!D.value||X||(X=requestAnimationFrame(()=>{X=0,Me()}))}function je(){X&&=(cancelAnimationFrame(X),0)}function Me(){if(!D.value)return;let e=w.value?.getBoundingClientRect();if(e&&!oe(e,I())){V({restoreFocus:!1});return}L()}function Q(){_.closeOnNavigate&&V({restoreFocus:!1})}function Ne(){return window.navigation}function Pe(){document.addEventListener(`mousedown`,ke),document.addEventListener(`keydown`,Ae),window.addEventListener(`resize`,Z),window.addEventListener(`scroll`,Z,!0),window.addEventListener(`popstate`,Q),window.addEventListener(`hashchange`,Q),Ne()?.addEventListener(`navigate`,Q)}function Fe(){je(),document.removeEventListener(`mousedown`,ke),document.removeEventListener(`keydown`,Ae),window.removeEventListener(`resize`,Z),window.removeEventListener(`scroll`,Z,!0),window.removeEventListener(`popstate`,Q),window.removeEventListener(`hashchange`,Q),Ne()?.removeEventListener(`navigate`,Q)}let $=()=>V({restoreFocus:!1});return(0,s.watch)(D,e=>{if(e){for(let e of[...m])e!==$&&e();m.add($),Pe(),(0,s.nextTick)(()=>{L(),K(0),q(0)||E.value?.focus()})}else m.delete($),Fe(),W.value=0}),(0,s.watch)(()=>[_.items.length,k.value],()=>{D.value&&(0,s.nextTick)(()=>K(W.value))}),(0,s.onBeforeUnmount)(()=>{Fe(),m.delete($);let e=E.value;e?.isConnected&&e.remove()}),h({show:B,close:V,toggle:U,isOpen:D,unreadCount:O}),(l,m)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{ref_key:`rootRef`,ref:w,class:`nb-notification-center`},[(0,s.renderSlot)(l.$slots,`trigger`,{open:D.value,toggle:U,show:B,close:V,unreadCount:O.value,badge:ue.value,panelId:x,triggerProps:M.value,setTriggerRef:P},()=>[(0,s.createElementVNode)(`button`,(0,s.mergeProps)({ref:P,type:`button`,class:[`nb-notification-center__trigger`,{"nb-notification-center__trigger--active":D.value}]},M.value,{onClick:U}),[(0,s.createVNode)(t.t,{name:v.value,size:18},null,8,[`name`]),O.value>0?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,u,(0,s.toDisplayString)(ue.value),1)):(0,s.createCommentVNode)(``,!0)],16)]),((0,s.openBlock)(),(0,s.createBlock)(s.Teleport,{to:`body`},[(0,s.createVNode)(s.Transition,{name:`nb-notification-center-pop`},{default:(0,s.withCtx)(()=>[D.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,id:x,ref_key:`panelRef`,ref:E,class:(0,s.normalizeClass)([`nb-notification-center__panel`,ge.value]),style:(0,s.normalizeStyle)(he.value),role:`dialog`,tabindex:`-1`,"aria-labelledby":S,"aria-describedby":me.value,"aria-busy":e.loading?`true`:void 0,onKeydown:Ce,onFocusin:xe},[(0,s.createElementVNode)(`div`,f,[(0,s.createElementVNode)(`h2`,{id:S,class:`nb-notification-center__title`},(0,s.toDisplayString)(e.label),1),(0,s.renderSlot)(l.$slots,`header-start`,{close:V,unreadCount:O.value}),(0,s.renderSlot)(l.$slots,`header-actions`,{close:V,unreadCount:O.value,markAllRead:Oe,markAllPending:e.markAllPending,markAllProps:N.value,markAllText:e.markAllPending?e.markAllPendingLabel:e.markAllLabel},()=>[e.showMarkAll?((0,s.openBlock)(),(0,s.createElementBlock)(`button`,(0,s.mergeProps)({key:0,class:`nb-notification-center__mark-all`},N.value),[e.markAllPending?((0,s.openBlock)(),(0,s.createBlock)(i.t,{key:0,size:`xs`,tone:`inherit`,decorative:``})):(0,s.createCommentVNode)(``,!0),(0,s.createTextVNode)(` `+(0,s.toDisplayString)(e.markAllPending?e.markAllPendingLabel:e.markAllLabel),1)],16)):(0,s.createCommentVNode)(``,!0)])]),(0,s.createElementVNode)(`span`,p,(0,s.toDisplayString)(e.markAllPending?e.markAllPendingLabel:``),1),A.value?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:0,id:C,class:`nb-notification-center__stale`,role:`status`},[(0,s.createVNode)(t.t,{name:(0,s.unref)(c.regular),size:14,"aria-hidden":`true`},null,8,[`name`]),(0,s.createElementVNode)(`span`,ee,(0,s.toDisplayString)(e.errorStaleLabel),1),e.showRetry?((0,s.openBlock)(),(0,s.createElementBlock)(`button`,{key:0,type:`button`,class:`nb-notification-center__retry`,onClick:j},(0,s.toDisplayString)(e.retryLabel),1)):(0,s.createCommentVNode)(``,!0)])):(0,s.createCommentVNode)(``,!0),k.value===`loading`?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:1,class:`nb-notification-center__loading`,role:`status`,style:(0,s.normalizeStyle)(R.value)},[(0,s.createElementVNode)(`span`,te,(0,s.toDisplayString)(e.loadingLabel),1),((0,s.openBlock)(),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(3,e=>(0,s.createVNode)(a.t,{key:e,variant:`text`,type:`body-sm`,lines:2,"last-line-width":`60%`})),64))],4)):k.value===`error`?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{key:2,id:C,class:`nb-notification-center__error`,role:`alert`},[(0,s.renderSlot)(l.$slots,`error`,{retry:j},()=>[(0,s.createVNode)(n.t,{size:`sm`,kind:`error`,title:e.errorTitle,description:e.errorDescription},(0,s.createSlots)({_:2},[e.showRetry?{name:`actions`,fn:(0,s.withCtx)(()=>[(0,s.createVNode)(r.t,{size:`sm`,variant:`secondary`,onClick:j},{default:(0,s.withCtx)(()=>[(0,s.createTextVNode)((0,s.toDisplayString)(e.retryLabel),1)]),_:1})]),key:`0`}:void 0]),1032,[`title`,`description`])])])):k.value===`list`?((0,s.openBlock)(),(0,s.createElementBlock)(`ul`,{key:3,ref_key:`listRef`,ref:ce,class:`nb-notification-center__list`,role:`list`,tabindex:ye.value,style:(0,s.normalizeStyle)(R.value),onClick:Y,onKeydown:Y},[(0,s.renderSlot)(l.$slots,`default`,{close:V,items:e.items},()=>[((0,s.openBlock)(!0),(0,s.createElementBlock)(s.Fragment,null,(0,s.renderList)(e.items,t=>((0,s.openBlock)(),(0,s.createBlock)(o.t,{key:t.id,title:t.title,body:t.body,time:t.time,"time-label":t.timeLabel,read:t.read,variant:t.variant??`neutral`,icon:t.icon,href:t.href,interactive:t.interactive??e.interactive,locale:e.locale,"unread-label":e.unreadLabel,"read-label":e.readLabel,onSelect:e=>De(t,e)},null,8,[`title`,`body`,`time`,`time-label`,`read`,`variant`,`icon`,`href`,`interactive`,`locale`,`unread-label`,`read-label`,`onSelect`]))),128))])],44,ne)):k.value===`empty`?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,re,[(0,s.renderSlot)(l.$slots,`empty`,{},()=>[(0,s.createVNode)(n.t,{size:`sm`,icon:v.value,title:e.emptyTitle,description:e.emptyDescription},null,8,[`icon`,`title`,`description`])])])):(0,s.createCommentVNode)(``,!0),l.$slots.footer?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,ie,[(0,s.renderSlot)(l.$slots,`footer`,{close:V})])):(0,s.createCommentVNode)(``,!0)],46,d)):(0,s.createCommentVNode)(``,!0)]),_:3})]))],512))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});