@nubisco/ui 5.4.1 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/{Blueprint-BgmsyoIu.js → Blueprint-ClU0eIiy.js} +2 -2
- package/dist/{Blueprint-CvOpJq_7.cjs → Blueprint-DbehXPR2.cjs} +1 -1
- package/dist/{BlueprintCard-BdT657ax.cjs → BlueprintCard-MDfxqPyE.cjs} +1 -1
- package/dist/{BlueprintCard-BJlyW5LC.js → BlueprintCard-VfWPpR6_.js} +1 -1
- package/dist/{BlueprintControls-DCUQ9LQ7.cjs → BlueprintControls-BR12TLQ1.cjs} +1 -1
- package/dist/{BlueprintControls-DwGxskS4.js → BlueprintControls-pnaU1lCY.js} +1 -1
- package/dist/Button-Cw4D6w9K.js +121 -0
- package/dist/Button-D-XSNjSL.cjs +1 -0
- package/dist/{Confirm-bPSArUzM.js → Confirm-BewLtgMD.js} +1 -1
- package/dist/{Confirm-Dmhkb56Q.cjs → Confirm-DHWWbfmu.cjs} +1 -1
- package/dist/{DataTable-DueT6mHP.js → DataTable-CVih75pn.js} +1 -1
- package/dist/{DataTable-CtjSxLmA.cjs → DataTable-DLuSmiTV.cjs} +1 -1
- package/dist/{FileUploader-OqfHo3LH.js → FileUploader-Ba0H8UPw.js} +1 -1
- package/dist/{FileUploader-DEBpnSuZ.cjs → FileUploader-CN7XPX9n.cjs} +1 -1
- package/dist/InfoHint-DX3lgnTX.cjs +1 -0
- package/dist/{InfoHint-Dvdnc-vI.js → InfoHint-DjAgTkgL.js} +32 -32
- package/dist/Menu-BSbPfsiE.cjs +1 -0
- package/dist/{Menu-Dzg_RrG-.js → Menu-Dy1JwMdl.js} +31 -17
- package/dist/{MenuBarItem-DyS1SWrP.js → MenuBarItem-CYofbcgq.js} +1 -1
- package/dist/{MenuBarItem-ma4XHwRB.cjs → MenuBarItem-Ya88A6xZ.cjs} +1 -1
- package/dist/{NotificationCenter-BYQdkoja.cjs → NotificationCenter-DCi4hoKm.cjs} +1 -1
- package/dist/{NotificationCenter-_K5ZQ82b.js → NotificationCenter-Yhez667P.js} +1 -1
- package/dist/{Pagination-Mu8uhAwJ.js → Pagination-BInZQpJS.js} +1 -1
- package/dist/{Pagination-NaWfr8Rs.cjs → Pagination-Dz24gpb7.cjs} +1 -1
- package/dist/Submenu-QgPVi2bN.cjs +1 -0
- package/dist/Submenu-SQTJc81U.js +148 -0
- package/dist/TableOfContents-BD-79w4n.cjs +1 -0
- package/dist/TableOfContents-fTZdpn-L.js +253 -0
- package/dist/{Tree-DUfjBsuG.js → Tree-DHdPsRXV.js} +1 -1
- package/dist/{Tree-CHJvaRgP.cjs → Tree-DI_ouWnv.cjs} +1 -1
- package/dist/TreeNode-CME77z98.js +165 -0
- package/dist/TreeNode-CpV3GOzv.cjs +1 -0
- package/dist/{Walkthrough-DpGi2slp.js → Walkthrough-B4E8LruL.js} +1 -1
- package/dist/{Walkthrough-ClLGKPYd.cjs → Walkthrough-DuX31BAz.cjs} +1 -1
- package/dist/all.cjs +1 -1
- package/dist/all.mjs +58 -56
- package/dist/component-styles.json +5 -0
- package/dist/components/AiLabel.cjs +1 -1
- package/dist/components/AiLabel.mjs +1 -1
- package/dist/components/Blueprint.cjs +1 -1
- package/dist/components/Blueprint.mjs +1 -1
- package/dist/components/BlueprintBackground.cjs +1 -1
- package/dist/components/BlueprintBackground.mjs +1 -1
- package/dist/components/BlueprintCard.cjs +1 -1
- package/dist/components/BlueprintCard.mjs +1 -1
- package/dist/components/BlueprintControls.cjs +1 -1
- package/dist/components/BlueprintControls.mjs +1 -1
- package/dist/components/BlueprintMinimap.cjs +1 -1
- package/dist/components/BlueprintMinimap.mjs +1 -1
- package/dist/components/BottomPanel.cjs +1 -1
- package/dist/components/BottomPanel.mjs +1 -1
- package/dist/components/Button.cjs +1 -1
- package/dist/components/Button.mjs +1 -1
- package/dist/components/Button.vue.d.ts +6 -9
- package/dist/components/Button.vue.d.ts.map +1 -1
- package/dist/components/Confirm.cjs +1 -1
- package/dist/components/Confirm.mjs +1 -1
- package/dist/components/DataTable.cjs +1 -1
- package/dist/components/DataTable.mjs +1 -1
- package/dist/components/FileUploader.cjs +1 -1
- package/dist/components/FileUploader.mjs +1 -1
- package/dist/components/Form.cjs +1 -1
- package/dist/components/Form.mjs +1 -1
- package/dist/components/ImageCropper.cjs +1 -1
- package/dist/components/ImageCropper.mjs +1 -1
- package/dist/components/InfoHint.cjs +1 -1
- package/dist/components/InfoHint.mjs +1 -1
- package/dist/components/InfoHint.vue.d.ts.map +1 -1
- package/dist/components/Menu.cjs +1 -1
- package/dist/components/Menu.d.ts +7 -0
- package/dist/components/Menu.mjs +1 -1
- package/dist/components/Menu.vue.d.ts.map +1 -1
- package/dist/components/MenuBarItem.cjs +1 -1
- package/dist/components/MenuBarItem.mjs +1 -1
- package/dist/components/NotificationCenter.cjs +1 -1
- package/dist/components/NotificationCenter.mjs +1 -1
- package/dist/components/Pagination.cjs +1 -1
- package/dist/components/Pagination.mjs +1 -1
- package/dist/components/ShellPanel.cjs +1 -1
- package/dist/components/ShellPanel.mjs +1 -1
- package/dist/components/Submenu.cjs +1 -1
- package/dist/components/Submenu.mjs +1 -1
- package/dist/components/Submenu.vue.d.ts.map +1 -1
- package/dist/components/TableOfContents.cjs +1 -0
- package/dist/components/TableOfContents.d.ts +104 -0
- package/dist/components/TableOfContents.mjs +2 -0
- package/dist/components/TableOfContents.vue.d.ts +44 -0
- package/dist/components/TableOfContents.vue.d.ts.map +1 -0
- package/dist/components/TableOfContentsList.vue.d.ts +14 -0
- package/dist/components/TableOfContentsList.vue.d.ts.map +1 -0
- package/dist/components/Tabs.cjs +1 -1
- package/dist/components/Tabs.mjs +1 -1
- package/dist/components/Tree.cjs +1 -1
- package/dist/components/Tree.d.ts +14 -0
- package/dist/components/Tree.mjs +1 -1
- package/dist/components/TreeNode.cjs +1 -1
- package/dist/components/TreeNode.mjs +1 -1
- package/dist/components/TreeNode.vue.d.ts +2 -0
- package/dist/components/TreeNode.vue.d.ts.map +1 -1
- package/dist/components/Walkthrough.cjs +1 -1
- package/dist/components/Walkthrough.mjs +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/manifest.d.ts +1 -0
- package/dist/components/manifest.d.ts.map +1 -1
- package/dist/components/manifest.js +1 -0
- package/dist/composables/useBlueprint.composable.cjs +1 -1
- package/dist/composables/useBlueprint.composable.mjs +1 -1
- package/dist/composables/useConfirm.composable.cjs +1 -1
- package/dist/composables/useConfirm.composable.mjs +1 -1
- package/dist/global.d.ts +4 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +37 -36
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/styles/Button.css +1 -1
- package/dist/styles/InfoHint.css +1 -1
- package/dist/styles/TableOfContents.css +1 -0
- package/dist/styles/TreeNode.css +1 -1
- package/dist/ui.css +4 -3
- package/package.json +1 -1
- package/dist/Button-B2ngznxj.cjs +0 -1
- package/dist/Button-CnwG9SUU.js +0 -99
- package/dist/InfoHint-BOYN7Jig.cjs +0 -1
- package/dist/Menu-CTCkLSMW.cjs +0 -1
- package/dist/Submenu-D5C02DV5.js +0 -123
- package/dist/Submenu-DuMYz-uf.cjs +0 -1
- package/dist/TreeNode-CyOc2r4y.cjs +0 -1
- package/dist/TreeNode-S_qQNbsJ.js +0 -143
- /package/dist/{AiLabel-BmUhIOFk.js → AiLabel-BciBQAKB.js} +0 -0
- /package/dist/{AiLabel-PATTi5dO.cjs → AiLabel-ClnMVvCl.cjs} +0 -0
- /package/dist/{Blueprint.context-BOAtPYlo.js → Blueprint.context-CHfek6nW.js} +0 -0
- /package/dist/{Blueprint.context-BUzhZPrF.cjs → Blueprint.context-C_y0TS6a.cjs} +0 -0
- /package/dist/{BlueprintBackground-Cd_30GvD.cjs → BlueprintBackground-D58A6eXS.cjs} +0 -0
- /package/dist/{BlueprintBackground-1IxGPyUh.js → BlueprintBackground-SJ-ibrkF.js} +0 -0
- /package/dist/{BlueprintMinimap-w3Y0VvIx.cjs → BlueprintMinimap-BPqaGiY0.cjs} +0 -0
- /package/dist/{BlueprintMinimap-CmFRuqou.js → BlueprintMinimap-De8KVP54.js} +0 -0
- /package/dist/{BottomPanel-VNTVAMs3.js → BottomPanel-C7VWbs0V.js} +0 -0
- /package/dist/{BottomPanel-CK1NsXtz.cjs → BottomPanel-Di3pv797.cjs} +0 -0
- /package/dist/{Form-HC4yg8DG.js → Form-BPHdzd8_.js} +0 -0
- /package/dist/{Form-rRMK9twU.cjs → Form-C-l_4RHC.cjs} +0 -0
- /package/dist/{ImageCropper-BKKcVuPn.cjs → ImageCropper-BbW7o5mE.cjs} +0 -0
- /package/dist/{ImageCropper-CR8HCvg4.js → ImageCropper-DS3QiZ-X.js} +0 -0
- /package/dist/{ShellPanel-DnleEQR7.js → ShellPanel-B1byDSRC.js} +0 -0
- /package/dist/{ShellPanel-62ajcug-.cjs → ShellPanel-c3FBvVMm.cjs} +0 -0
- /package/dist/{Tabs-B2XvVchi.cjs → Tabs-B4r8l7vl.cjs} +0 -0
- /package/dist/{Tabs-CSizMNKI.js → Tabs-Cs5i4IGp.js} +0 -0
- /package/dist/{TreeContext-XcdJsmjK.cjs → TreeContext-BH2qpPud.cjs} +0 -0
- /package/dist/{TreeContext-RyZC10Bs.js → TreeContext-DMADOfuO.js} +0 -0
- /package/dist/{pixi-scene-BLuFyySv.cjs → pixi-scene-BmwgRql_.cjs} +0 -0
- /package/dist/{pixi-scene-BEkv7XH4.js → pixi-scene-CeviVGrf.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
|
|
2
2
|
import { t } from "./Icon-rREAqsu0.js";
|
|
3
3
|
import { useSurfaceLayer as n } from "./composables/useSurfaceLayer.composable.mjs";
|
|
4
|
-
import { t as r } from "./Button-
|
|
4
|
+
import { t as r } from "./Button-Cw4D6w9K.js";
|
|
5
5
|
import { Fragment as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, createVNode as u, defineComponent as d, mergeProps as f, normalizeClass as p, openBlock as m, ref as h, renderList as g, toDisplayString as _, unref as v, withCtx as y, withModifiers as b } from "vue";
|
|
6
6
|
import { regular as x } from "@nubisco/ui/icons/x";
|
|
7
7
|
import { regular as S } from "@nubisco/ui/icons/circle-notch";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk-D-qHiVGv.cjs`);const e=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./composables/useSurfaceLayer.composable.cjs`),r=require(`./Button-
|
|
1
|
+
require(`./chunk-D-qHiVGv.cjs`);const e=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./composables/useSurfaceLayer.composable.cjs`),r=require(`./Button-D-XSNjSL.cjs`);let i=require(`vue`),a=require(`@nubisco/ui/icons/x`),o=require(`@nubisco/ui/icons/circle-notch`);var s=function(e){return e.Primary=`primary`,e.Secondary=`secondary`,e.Ghost=`ghost`,e.Danger=`danger`,e.Success=`success`,e.Warning=`warning`,e}(s||{}),c=function(e){return e.Idle=`idle`,e.Loading=`loading`,e.Success=`success`,e}(c||{}),l={key:0,class:`nb-file-uploader__heading`},u={key:1,class:`nb-file-uploader__description`},d=[`accept`,`multiple`],f={key:4,class:`nb-file-uploader__list`},p={class:`nb-file-uploader__name`},m={class:`nb-file-uploader__status`},h=[`aria-label`,`onClick`],g={key:0,class:`nb-file-uploader__error`},_=(0,i.defineComponent)({__name:`FileUploader`,props:{heading:{},description:{},buttonLabel:{default:`Add file`},variant:{default:s.Primary},accept:{},multiple:{type:Boolean,default:!1},maxSize:{},disabled:{type:Boolean},id:{}},emits:[`change`,`remove`],setup(e,{expose:s,emit:_}){let v=e,{layerProps:y}=n.useSurfaceLayer(),b=_,x=(0,i.ref)(null),S=(0,i.ref)([]),C=(0,i.ref)(!1),w=0;function T(){x.value?.click()}function E(e){if(v.maxSize&&e.size>v.maxSize)return`File exceeds size limit.`;if(v.accept){let t=v.accept.split(`,`).map(e=>e.trim().toLowerCase()),n=e.name.toLowerCase();if(!t.some(t=>t.startsWith(`.`)?n.endsWith(t):t.includes(`/`)?e.type===t||e.type.startsWith(t.replaceAll(`*`,``)):!1))return`File type not accepted.`}}function D(e){let t=Array.from(e);v.multiple||(S.value=[]);for(let e of t){let t=E(e);S.value.push({file:e,status:c.Idle,error:t})}b(`change`,S.value.filter(e=>!e.error).map(e=>e.file))}function O(e){let t=e.target;t.files?.length&&(D(t.files),t.value=``)}function k(){w++,C.value=!0}function A(){w--,w<=0&&(w=0,C.value=!1)}function j(e){w=0,C.value=!1;let t=e.dataTransfer?.files;t?.length&&D(t)}function M(e){let t=S.value[e];S.value.splice(e,1),b(`remove`,t.file),b(`change`,S.value.filter(e=>!e.error).map(e=>e.file))}function N(e,t,n){S.value[e]&&(S.value[e].status=t,S.value[e].error=n)}return s({files:S,setFileStatus:N}),(n,s)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,(0,i.mergeProps)({class:`nb-file-uploader`},(0,i.unref)(y),{onDragenter:(0,i.withModifiers)(k,[`prevent`]),onDragover:s[0]||=(0,i.withModifiers)(()=>{},[`prevent`]),onDragleave:(0,i.withModifiers)(A,[`prevent`]),onDrop:(0,i.withModifiers)(j,[`prevent`])}),[e.heading?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,l,(0,i.toDisplayString)(e.heading),1)):(0,i.createCommentVNode)(``,!0),e.description?((0,i.openBlock)(),(0,i.createElementBlock)(`p`,u,(0,i.toDisplayString)(e.description),1)):(0,i.createCommentVNode)(``,!0),C.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:2,class:(0,i.normalizeClass)([`nb-file-uploader__dropzone`,`nb-file-uploader__dropzone--${e.variant}`])},[...s[1]||=[(0,i.createElementVNode)(`span`,{class:`nb-file-uploader__drop-label`},[(0,i.createTextVNode)(` Drag and drop files here`),(0,i.createElementVNode)(`br`),(0,i.createTextVNode)(`or click to upload `)],-1)]],2)):((0,i.openBlock)(),(0,i.createBlock)(r.t,{key:3,class:`nb-file-uploader__btn`,variant:e.variant,onClick:(0,i.withModifiers)(T,[`stop`])},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(e.buttonLabel),1)]),_:1},8,[`variant`])),(0,i.createElementVNode)(`input`,{ref_key:`inputRef`,ref:x,type:`file`,class:`nb-file-uploader__input`,accept:e.accept,multiple:e.multiple,onChange:O},null,40,d),S.value.length?((0,i.openBlock)(),(0,i.createElementBlock)(`ul`,f,[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(S.value,(e,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`li`,{key:n,class:(0,i.normalizeClass)([`nb-file-uploader__item`,{"nb-file-uploader__item--error":e.error,"nb-file-uploader__item--success":e.status===`success`}])},[(0,i.createElementVNode)(`span`,p,(0,i.toDisplayString)(e.file.name),1),(0,i.createElementVNode)(`span`,m,[e.status===`loading`?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:0,name:(0,i.unref)(o.regular),class:`nb-file-uploader__spinner`},null,8,[`name`])):e.status===`success`?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:1,name:`check-circle-fill`,class:`nb-file-uploader__check`})):(0,i.createCommentVNode)(``,!0),e.error?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:2,name:`warning-circle-fill`,class:`nb-file-uploader__warn`})):(0,i.createCommentVNode)(``,!0),e.status===`loading`?(0,i.createCommentVNode)(``,!0):((0,i.openBlock)(),(0,i.createElementBlock)(`button`,{key:3,class:`nb-file-uploader__remove`,type:`button`,"aria-label":`Remove ${e.file.name}`,onClick:e=>M(n)},[(0,i.createVNode)(t.t,{name:(0,i.unref)(a.regular)},null,8,[`name`])],8,h))]),e.error?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,g,(0,i.toDisplayString)(e.error),1)):(0,i.createCommentVNode)(``,!0)],2))),128))])):(0,i.createCommentVNode)(``,!0)],16))}}),v=e.t(_,[[`__scopeId`,`data-v-7f391a7f`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
|
|
@@ -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=a.placeAnchored(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},{side:p.placement,viewport:a.viewportSize()});S.value=n.side,C.value={top:n.top,left:n.left,arrowOffset:n.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-a16b2efc`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return p}});
|
|
@@ -3,8 +3,8 @@ import { t } from "./Icon-rREAqsu0.js";
|
|
|
3
3
|
import { useStableId as n } from "./composables/useStableId.composable.mjs";
|
|
4
4
|
import { useSurfaceLayer as r } from "./composables/useSurfaceLayer.composable.mjs";
|
|
5
5
|
import { placeAnchored as i, viewportSize as a } from "./utils/anchorPosition.helper.mjs";
|
|
6
|
-
import { Teleport as o, computed as s, createBlock as
|
|
7
|
-
import * as
|
|
6
|
+
import { Teleport as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as ee, createVNode as te, defineComponent as f, mergeProps as p, nextTick as m, normalizeClass as h, onBeforeUnmount as g, openBlock as _, ref as v, renderSlot as y, toDisplayString as b, unref as x, watch as S, withModifiers as C } from "vue";
|
|
7
|
+
import * as w from "@nubisco/ui/icons/info";
|
|
8
8
|
//#region src/components/InfoHint.vue?vue&type=script&setup=true&lang.ts
|
|
9
9
|
var T = ["data-term"], E = [
|
|
10
10
|
"aria-label",
|
|
@@ -14,7 +14,7 @@ var T = ["data-term"], E = [
|
|
|
14
14
|
], D = {
|
|
15
15
|
key: 0,
|
|
16
16
|
class: "nb-info-hint--title"
|
|
17
|
-
}, O = { class: "nb-info-hint--body" }, k = /* @__PURE__ */ e(/* @__PURE__ */
|
|
17
|
+
}, O = { class: "nb-info-hint--body" }, k = /* @__PURE__ */ e(/* @__PURE__ */ f({
|
|
18
18
|
__name: "InfoHint",
|
|
19
19
|
props: {
|
|
20
20
|
text: { default: void 0 },
|
|
@@ -37,8 +37,8 @@ var T = ["data-term"], E = [
|
|
|
37
37
|
"close",
|
|
38
38
|
"activate"
|
|
39
39
|
],
|
|
40
|
-
setup(e, { expose:
|
|
41
|
-
let A = e, j = s(() => A.icon ??
|
|
40
|
+
setup(e, { expose: f, emit: k }) {
|
|
41
|
+
let A = e, j = s(() => A.icon ?? w), M = k, N = `${n({})}-popover`, { layerProps: P } = r({ overlay: !0 }), F = v(null), I = v(null), L = v(!1), R = v(!1), z = v(A.placement), B = v({
|
|
42
42
|
top: 0,
|
|
43
43
|
left: 0,
|
|
44
44
|
arrowOffset: 50
|
|
@@ -53,21 +53,21 @@ var T = ["data-term"], E = [
|
|
|
53
53
|
function G() {
|
|
54
54
|
let e = F.value, t = I.value;
|
|
55
55
|
if (!e || !t) return;
|
|
56
|
-
let n = e.getBoundingClientRect(),
|
|
57
|
-
width:
|
|
58
|
-
height:
|
|
56
|
+
let n = i(e.getBoundingClientRect(), {
|
|
57
|
+
width: t.offsetWidth,
|
|
58
|
+
height: t.offsetHeight
|
|
59
59
|
}, {
|
|
60
60
|
side: A.placement,
|
|
61
61
|
viewport: a()
|
|
62
62
|
});
|
|
63
|
-
z.value =
|
|
64
|
-
top:
|
|
65
|
-
left:
|
|
66
|
-
arrowOffset:
|
|
63
|
+
z.value = n.side, B.value = {
|
|
64
|
+
top: n.top,
|
|
65
|
+
left: n.left,
|
|
66
|
+
arrowOffset: n.arrowOffset
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
function K() {
|
|
70
|
-
A.disabled || L.value || (W(), L.value = !0, M("open"),
|
|
70
|
+
A.disabled || L.value || (W(), L.value = !0, M("open"), m(() => {
|
|
71
71
|
G(), requestAnimationFrame(G);
|
|
72
72
|
}));
|
|
73
73
|
}
|
|
@@ -110,56 +110,56 @@ var T = ["data-term"], E = [
|
|
|
110
110
|
function $(e) {
|
|
111
111
|
e.key === "Escape" && q();
|
|
112
112
|
}
|
|
113
|
-
return
|
|
113
|
+
return S(L, (e) => {
|
|
114
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
|
-
}),
|
|
115
|
+
}), S(() => A.disabled, (e) => {
|
|
116
116
|
e && q();
|
|
117
|
-
}),
|
|
117
|
+
}), g(() => {
|
|
118
118
|
W(), !(typeof document > "u") && (document.removeEventListener("pointerdown", Q, !0), document.removeEventListener("keydown", $), window.removeEventListener("resize", G), window.removeEventListener("scroll", G, !0));
|
|
119
|
-
}),
|
|
119
|
+
}), f({
|
|
120
120
|
open: K,
|
|
121
121
|
close: q,
|
|
122
122
|
isOpen: L
|
|
123
|
-
}), (n, r) => (
|
|
123
|
+
}), (n, r) => (_(), u("span", {
|
|
124
124
|
class: "nb-info-hint",
|
|
125
125
|
"data-term": e.term || void 0
|
|
126
|
-
}, [
|
|
126
|
+
}, [d("button", {
|
|
127
127
|
ref_key: "triggerRef",
|
|
128
128
|
ref: F,
|
|
129
129
|
type: "button",
|
|
130
|
-
class:
|
|
130
|
+
class: h(["nb-info-hint--trigger", { "nb-info-hint--trigger-open": L.value }]),
|
|
131
131
|
"aria-label": e.label ?? "More information",
|
|
132
132
|
"aria-expanded": L.value,
|
|
133
133
|
"aria-describedby": L.value ? N : void 0,
|
|
134
134
|
disabled: e.disabled,
|
|
135
|
-
onClick:
|
|
136
|
-
onMousedown: r[0] ||=
|
|
137
|
-
onPointerdown: r[1] ||=
|
|
138
|
-
onKeydown:
|
|
135
|
+
onClick: C(X, ["stop"]),
|
|
136
|
+
onMousedown: r[0] ||= C(() => {}, ["stop"]),
|
|
137
|
+
onPointerdown: r[1] ||= C(() => {}, ["stop"]),
|
|
138
|
+
onKeydown: C(Z, ["stop"]),
|
|
139
139
|
onMouseenter: J,
|
|
140
140
|
onMouseleave: Y,
|
|
141
141
|
onFocus: ne,
|
|
142
142
|
onBlur: re
|
|
143
|
-
}, [
|
|
143
|
+
}, [te(t, {
|
|
144
144
|
name: j.value,
|
|
145
145
|
size: e.size,
|
|
146
146
|
weight: "regular"
|
|
147
|
-
}, null, 8, ["name", "size"])], 42, E), (
|
|
147
|
+
}, null, 8, ["name", "size"])], 42, E), (_(), c(o, { to: e.teleportTo }, [L.value ? (_(), u("div", p({
|
|
148
148
|
key: 0,
|
|
149
149
|
id: N,
|
|
150
150
|
ref_key: "popoverRef",
|
|
151
151
|
ref: I,
|
|
152
152
|
class: ["nb-info-hint--popover", `nb-info-hint--popover-${z.value}`]
|
|
153
|
-
},
|
|
153
|
+
}, x(P), {
|
|
154
154
|
role: "tooltip",
|
|
155
155
|
style: U.value,
|
|
156
|
-
onClick: r[2] ||=
|
|
157
|
-
onMousedown: r[3] ||=
|
|
158
|
-
onPointerdown: r[4] ||=
|
|
156
|
+
onClick: r[2] ||= C(() => {}, ["stop"]),
|
|
157
|
+
onMousedown: r[3] ||= C(() => {}, ["stop"]),
|
|
158
|
+
onPointerdown: r[4] ||= C(() => {}, ["stop"]),
|
|
159
159
|
onMouseenter: J,
|
|
160
160
|
onMouseleave: Y
|
|
161
|
-
}), [e.title ? (
|
|
161
|
+
}), [e.title ? (_(), u("p", D, b(e.title), 1)) : l("", !0), d("div", O, [y(n.$slots, "default", {}, () => [ee(b(e.text), 1)], !0)])], 16)) : l("", !0)], 8, ["to"]))], 8, T));
|
|
162
162
|
}
|
|
163
|
-
}), [["__scopeId", "data-v-
|
|
163
|
+
}), [["__scopeId", "data-v-a16b2efc"]]);
|
|
164
164
|
//#endregion
|
|
165
165
|
export { k as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./chunk-D-qHiVGv.cjs`);let e=require(`vue`);var t=(0,e.defineComponent)({__name:`Menu`,props:{open:{type:Boolean,default:!1},size:{default:`md`},minWidth:{default:160},maxWidth:{default:288}},emits:[`close`,`update:open`],setup(t,{expose:n,emit:r}){let i=t,a=r,o=(0,e.ref)(null),s=(0,e.ref)(-1),c=(0,e.reactive)([]),l=(0,e.computed)(()=>({position:`fixed`,top:`${u.top}px`,left:`${u.left}px`,minWidth:`${i.minWidth}px`,maxWidth:`${i.maxWidth}px`,zIndex:`var(--nb-zindex-menu)`})),u=(0,e.reactive)({top:0,left:0});function d(e){u.top=e.bottom,u.left=e.left}function f(e,t){u.top=t,u.left=e}function p(){a(`close`),a(`update:open`,!1)}function m(e){return c.includes(e)||c.push(e),c.indexOf(e)}function h(e){let t=c.indexOf(e);t>=0&&c.splice(t,1)}let g=new Set;function _(e){g.add(e)}function v(e){g.delete(e)}(0,e.provide)(`nb-menu`,{size:i.size,close:p,highlightedIndex:s.value,registerItem:m,unregisterItem:h,registerSurface:_,unregisterSurface:v});function y(){return o.value?Array.from(o.value.querySelectorAll(`[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]`)).filter(e=>!e.closest(`.nb-submenu`)):[]}function b(e){let t=y();e>=0&&e<t.length&&(s.value=e,t[e].focus())}function x(e){let t=y();if(!t.length)return;let n=t.indexOf(document.activeElement);if(n>=0&&(s.value=n),e.key===`ArrowDown`){e.preventDefault(),e.stopPropagation();let n=s.value+1;for(;n<t.length&&t[n]?.getAttribute(`aria-disabled`)===`true`;)n++;n<t.length&&b(n)}else if(e.key===`ArrowUp`){e.preventDefault(),e.stopPropagation();let n=s.value-1;for(;n>=0&&t[n]?.getAttribute(`aria-disabled`)===`true`;)n--;n>=0&&b(n)}else e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),p()):e.key===`Tab`&&p()}function S(e){let t=e.target;if(!(!o.value||o.value.contains(t))){for(let e of g)if(e.contains(t))return;p()}}function C(){if(!o.value)return;let e=o.value.getBoundingClientRect();e.right>window.innerWidth&&(u.left=Math.max(8,window.innerWidth-e.width-8)),e.bottom>window.innerHeight&&(u.top=Math.max(8,window.innerHeight-e.height-8));let t=window.innerHeight-u.top-8;o.value.style.maxHeight=`${t}px`}return(0,e.watch)(()=>i.open,t=>{t?(s.value=-1,document.addEventListener(`mousedown`,S),(0,e.nextTick)(()=>{C(),y().length>0&&b(0)})):(s.value=-1,document.removeEventListener(`mousedown`,S))}),(0,e.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,S)}),n({setPosition:d,setPositionXY:f,close:p,el:o}),(n,r)=>((0,e.openBlock)(),(0,e.createBlock)(e.Teleport,{to:`body`},[(0,e.createVNode)(e.Transition,{name:`nb-menu`},{default:(0,e.withCtx)(()=>[t.open?((0,e.openBlock)(),(0,e.createElementBlock)(`ul`,{key:0,ref_key:`menuRef`,ref:o,role:`menu`,class:(0,e.normalizeClass)([`nb-menu`,`nb-menu--${t.size}`]),style:(0,e.normalizeStyle)(l.value),onKeydown:x},[(0,e.renderSlot)(n.$slots,`default`)],38)):(0,e.createCommentVNode)(``,!0)]),_:3})]))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return t}});
|
|
@@ -41,39 +41,53 @@ var y = /* @__PURE__ */ s({
|
|
|
41
41
|
let t = T.indexOf(e);
|
|
42
42
|
t >= 0 && T.splice(t, 1);
|
|
43
43
|
}
|
|
44
|
+
let N = /* @__PURE__ */ new Set();
|
|
45
|
+
function P(e) {
|
|
46
|
+
N.add(e);
|
|
47
|
+
}
|
|
48
|
+
function F(e) {
|
|
49
|
+
N.delete(e);
|
|
50
|
+
}
|
|
44
51
|
p("nb-menu", {
|
|
45
52
|
size: x.size,
|
|
46
53
|
close: A,
|
|
47
54
|
highlightedIndex: w.value,
|
|
48
55
|
registerItem: j,
|
|
49
|
-
unregisterItem: M
|
|
56
|
+
unregisterItem: M,
|
|
57
|
+
registerSurface: P,
|
|
58
|
+
unregisterSurface: F
|
|
50
59
|
});
|
|
51
|
-
function
|
|
60
|
+
function I() {
|
|
52
61
|
return C.value ? Array.from(C.value.querySelectorAll("[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]")).filter((e) => !e.closest(".nb-submenu")) : [];
|
|
53
62
|
}
|
|
54
|
-
function
|
|
55
|
-
let t =
|
|
63
|
+
function L(e) {
|
|
64
|
+
let t = I();
|
|
56
65
|
e >= 0 && e < t.length && (w.value = e, t[e].focus());
|
|
57
66
|
}
|
|
58
|
-
function
|
|
59
|
-
let t =
|
|
60
|
-
if (t.length)
|
|
67
|
+
function R(e) {
|
|
68
|
+
let t = I();
|
|
69
|
+
if (!t.length) return;
|
|
70
|
+
let n = t.indexOf(document.activeElement);
|
|
71
|
+
if (n >= 0 && (w.value = n), e.key === "ArrowDown") {
|
|
61
72
|
e.preventDefault(), e.stopPropagation();
|
|
62
73
|
let n = w.value + 1;
|
|
63
74
|
for (; n < t.length && t[n]?.getAttribute("aria-disabled") === "true";) n++;
|
|
64
|
-
n < t.length &&
|
|
75
|
+
n < t.length && L(n);
|
|
65
76
|
} else if (e.key === "ArrowUp") {
|
|
66
77
|
e.preventDefault(), e.stopPropagation();
|
|
67
78
|
let n = w.value - 1;
|
|
68
79
|
for (; n >= 0 && t[n]?.getAttribute("aria-disabled") === "true";) n--;
|
|
69
|
-
n >= 0 &&
|
|
80
|
+
n >= 0 && L(n);
|
|
70
81
|
} else e.key === "Escape" ? (e.preventDefault(), e.stopPropagation(), A()) : e.key === "Tab" && A();
|
|
71
82
|
}
|
|
72
|
-
function
|
|
83
|
+
function z(e) {
|
|
73
84
|
let t = e.target;
|
|
74
|
-
C.value
|
|
85
|
+
if (!(!C.value || C.value.contains(t))) {
|
|
86
|
+
for (let e of N) if (e.contains(t)) return;
|
|
87
|
+
A();
|
|
88
|
+
}
|
|
75
89
|
}
|
|
76
|
-
function
|
|
90
|
+
function B() {
|
|
77
91
|
if (!C.value) return;
|
|
78
92
|
let e = C.value.getBoundingClientRect();
|
|
79
93
|
e.right > window.innerWidth && (D.left = Math.max(8, window.innerWidth - e.width - 8)), e.bottom > window.innerHeight && (D.top = Math.max(8, window.innerHeight - e.height - 8));
|
|
@@ -81,11 +95,11 @@ var y = /* @__PURE__ */ s({
|
|
|
81
95
|
C.value.style.maxHeight = `${t}px`;
|
|
82
96
|
}
|
|
83
97
|
return _(() => x.open, (e) => {
|
|
84
|
-
e ? (w.value = -1, document.addEventListener("mousedown",
|
|
85
|
-
|
|
86
|
-
})) : (w.value = -1, document.removeEventListener("mousedown",
|
|
98
|
+
e ? (w.value = -1, document.addEventListener("mousedown", z), c(() => {
|
|
99
|
+
B(), I().length > 0 && L(0);
|
|
100
|
+
})) : (w.value = -1, document.removeEventListener("mousedown", z));
|
|
87
101
|
}), d(() => {
|
|
88
|
-
document.removeEventListener("mousedown",
|
|
102
|
+
document.removeEventListener("mousedown", z);
|
|
89
103
|
}), y({
|
|
90
104
|
setPosition: O,
|
|
91
105
|
setPositionXY: k,
|
|
@@ -99,7 +113,7 @@ var y = /* @__PURE__ */ s({
|
|
|
99
113
|
role: "menu",
|
|
100
114
|
class: l(["nb-menu", `nb-menu--${s.size}`]),
|
|
101
115
|
style: u(E.value),
|
|
102
|
-
onKeydown:
|
|
116
|
+
onKeydown: R
|
|
103
117
|
}, [g(n.$slots, "default")], 38)) : i("", !0)]),
|
|
104
118
|
_: 3
|
|
105
119
|
})]));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./Menu-
|
|
1
|
+
import { t as e } from "./Menu-Dy1JwMdl.js";
|
|
2
2
|
import { Fragment as t, computed as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, createVNode as o, defineComponent as s, inject as c, nextTick as l, normalizeClass as u, onBeforeUnmount as d, onMounted as f, openBlock as p, ref as m, renderSlot as h, toDisplayString as g, useId as _, watch as v, withCtx as y } from "vue";
|
|
3
3
|
//#region src/components/MenuBarItem.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var b = ["aria-expanded"], x = /* @__PURE__ */ s({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk-D-qHiVGv.cjs`);const e=require(`./Menu-
|
|
1
|
+
require(`./chunk-D-qHiVGv.cjs`);const e=require(`./Menu-BSbPfsiE.cjs`);let t=require(`vue`);var n=[`aria-expanded`],r=(0,t.defineComponent)({__name:`MenuBarItem`,props:{label:{},size:{default:`md`},minWidth:{default:160},maxWidth:{default:288}},setup(r){let i=`nb-menubar-item-${(0,t.useId)()}`,a=(0,t.ref)(null),o=(0,t.ref)(null),s=(0,t.inject)(`nb-menubar`,null),c=(0,t.computed)(()=>s?.activeMenu.value===i);function l(){(0,t.nextTick)(()=>{if(a.value&&o.value){let e=a.value.getBoundingClientRect();o.value.setPosition({top:e.top,left:e.left,bottom:e.bottom,width:e.width})}})}function u(){}function d(e){e.stopPropagation(),e.preventDefault(),c.value?s?.setActiveMenu(null):s?.setActiveMenu(i)}function f(){s?.anyOpen.value&&!c.value&&s.setActiveMenu(i)}function p(){c.value&&s?.setActiveMenu(null)}return(0,t.watch)(c,e=>{e&&l()}),(0,t.onMounted)(()=>{a.value&&s&&s.registerTrigger({id:i,el:a.value,open:l,close:u})}),(0,t.onBeforeUnmount)(()=>{s?.unregisterTrigger(i)}),(i,s)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`button`,{ref_key:`triggerRef`,ref:a,type:`button`,role:`menuitem`,class:(0,t.normalizeClass)([`nb-menubar-item`,{"nb-menubar-item--active":c.value}]),"aria-haspopup":`menu`,"aria-expanded":c.value,onMousedown:d,onMouseenter:f},[(0,t.renderSlot)(i.$slots,`trigger`,{},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(r.label),1)])],42,n),(0,t.createVNode)(e.t,{ref_key:`menuRef`,ref:o,open:c.value,size:r.size,"min-width":r.minWidth,"max-width":r.maxWidth,onClose:p},{default:(0,t.withCtx)(()=>[(0,t.renderSlot)(i.$slots,`default`)]),_:3},8,[`open`,`size`,`min-width`,`max-width`])],64))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return r}});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./EmptyState-Cz91HAKF.cjs`),r=require(`./Button-B2ngznxj.cjs`),i=require(`./Spinner-Cwlskvjj.cjs`),a=require(`./Skeleton-DEzKdU7W.cjs`),o=require(`./NotificationCenterItem-BXj2X04e.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}});
|
|
1
|
+
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./Icon-C8R_r_In.cjs`),n=require(`./EmptyState-Cz91HAKF.cjs`),r=require(`./Button-D-XSNjSL.cjs`),i=require(`./Spinner-Cwlskvjj.cjs`),a=require(`./Skeleton-DEzKdU7W.cjs`),o=require(`./NotificationCenterItem-BXj2X04e.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}});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./Icon-rREAqsu0.js";
|
|
2
2
|
import { t } from "./EmptyState-CwMG-NeI.js";
|
|
3
|
-
import { t as n } from "./Button-
|
|
3
|
+
import { t as n } from "./Button-Cw4D6w9K.js";
|
|
4
4
|
import { t as r } from "./Spinner-DpldXeXq.js";
|
|
5
5
|
import { t as i } from "./Skeleton-3N9uC9k_.js";
|
|
6
6
|
import { t as a } from "./NotificationCenterItem-DklUTQo7.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
|
|
2
2
|
import { r as t } from "./Size.d-Bah6vMl3.js";
|
|
3
|
-
import { t as n } from "./Button-
|
|
3
|
+
import { t as n } from "./Button-Cw4D6w9K.js";
|
|
4
4
|
import { t as r } from "./Select-Ep1fFBFj.js";
|
|
5
5
|
import { computed as i, createElementBlock as a, createElementVNode as o, createVNode as s, defineComponent as c, normalizeClass as l, openBlock as u, toDisplayString as d } from "vue";
|
|
6
6
|
import * as f from "@nubisco/ui/icons/caret-right";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),n=require(`./Size.d-GBIblj2D.cjs`),r=require(`./Button-
|
|
1
|
+
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),n=require(`./Size.d-GBIblj2D.cjs`),r=require(`./Button-D-XSNjSL.cjs`),i=require(`./Select-BbsEiJ4j.cjs`);let a=require(`vue`),o=require(`@nubisco/ui/icons/caret-right`);o=e.n(o);let s=require(`@nubisco/ui/icons/caret-left`);s=e.n(s);var c={class:`nb-pagination__left`},l={class:`nb-pagination__page-size`},u={class:`nb-pagination__label`},d={class:`nb-pagination__range`,"aria-live":`polite`},f={class:`nb-pagination__right`},p={class:`nb-pagination__page-of`},m=(0,a.defineComponent)({__name:`Pagination`,props:{page:{},pageSize:{},total:{},pageSizeOptions:{default:()=>[10,20,30,40,50]},size:{default:n.r.Medium},disabled:{type:Boolean,default:!1},pageSizeLabel:{default:`Items per page:`},itemLabel:{default:`items`}},emits:[`update:page`,`update:pageSize`],setup(e,{emit:t}){let n=e,m=t,h=(0,a.computed)(()=>n.size),g=(0,a.computed)(()=>n.pageSizeOptions.includes(n.pageSize)?n.pageSizeOptions:[...n.pageSizeOptions,n.pageSize].sort((e,t)=>e-t)),_=(0,a.computed)(()=>g.value.map(e=>({label:String(e),value:e}))),v=(0,a.computed)(()=>Math.max(1,Math.ceil(n.total/Math.max(1,n.pageSize)))),y=(0,a.computed)(()=>Math.min(Math.max(1,n.page),v.value)),b=(0,a.computed)(()=>n.total===0?0:(y.value-1)*n.pageSize+1),x=(0,a.computed)(()=>Math.min(y.value*n.pageSize,n.total));function S(e){let t=Math.min(Math.max(1,e),v.value);t!==n.page&&m(`update:page`,t)}function C(e){let t=Number(e);!Number.isFinite(t)||t===n.pageSize||(m(`update:pageSize`,t),n.page!==1&&m(`update:page`,1))}return(t,n)=>((0,a.openBlock)(),(0,a.createElementBlock)(`nav`,{class:(0,a.normalizeClass)([`nb-pagination`,`nb-pagination--${e.size}`]),"aria-label":`Pagination`},[(0,a.createElementVNode)(`div`,c,[(0,a.createElementVNode)(`label`,l,[(0,a.createElementVNode)(`span`,u,(0,a.toDisplayString)(e.pageSizeLabel),1),(0,a.createVNode)(i.t,{size:`xs`,"model-value":e.pageSize,options:_.value,disabled:e.disabled,"onUpdate:modelValue":C},null,8,[`model-value`,`options`,`disabled`])]),(0,a.createElementVNode)(`span`,d,(0,a.toDisplayString)(b.value)+`–`+(0,a.toDisplayString)(x.value)+` of `+(0,a.toDisplayString)(e.total)+` `+(0,a.toDisplayString)(e.itemLabel),1)]),(0,a.createElementVNode)(`div`,f,[(0,a.createElementVNode)(`span`,p,` Page `+(0,a.toDisplayString)(y.value)+` of `+(0,a.toDisplayString)(v.value),1),(0,a.createVNode)(r.t,{class:`nb-pagination__nav`,variant:`ghost`,size:h.value,icon:s,disabled:e.disabled||y.value<=1,"aria-label":`Previous page`,onClick:n[0]||=e=>S(y.value-1)},null,8,[`size`,`disabled`]),(0,a.createVNode)(r.t,{class:`nb-pagination__nav`,variant:`ghost`,size:h.value,icon:o,disabled:e.disabled||y.value>=v.value,"aria-label":`Next page`,onClick:n[1]||=e=>S(y.value+1)},null,8,[`size`,`disabled`])])],2))}}),h=t.t(m,[[`__scopeId`,`data-v-884e19f9`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return h}});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./chunk-D-qHiVGv.cjs`);const e=require(`./Icon-C8R_r_In.cjs`);let t=require(`vue`),n=require(`@nubisco/ui/icons/caret-right`);var r=[`aria-expanded`,`aria-disabled`,`onKeydown`],i={class:`nb-menu-item__label`},a=(0,t.defineComponent)({__name:`Submenu`,props:{icon:{default:void 0},label:{},disabled:{type:Boolean,default:!1}},setup(a){let o=a,s=(0,t.ref)(null),c=(0,t.ref)(null),l=(0,t.ref)(!1),u=(0,t.inject)(`nb-menu`,null),d=null,f=null,p=(0,t.computed)(()=>`nb-menu--${u?.size??`md`}`),m=(0,t.ref)({position:`fixed`,top:`0px`,left:`0px`,zIndex:`var(--nb-zindex-menu)`});function h(){if(!s.value)return;let e=s.value.getBoundingClientRect(),t=e.right,n=e.top;t+200>window.innerWidth&&(t=e.left-200),n+200>window.innerHeight&&(n=Math.max(8,window.innerHeight-200)),m.value={position:`fixed`,top:`${n}px`,left:`${t}px`,zIndex:`var(--nb-zindex-menu)`}}function g(){o.disabled||(S(),l.value=!0,h(),(0,t.nextTick)(()=>{if(c.value&&s.value){let e=s.value.getBoundingClientRect(),t=c.value.getBoundingClientRect(),n=e.right;n+t.width>window.innerWidth&&(n=e.left-t.width);let r=e.top;r+t.height>window.innerHeight&&(r=Math.max(8,window.innerHeight-t.height)),m.value={position:`fixed`,top:`${r}px`,left:`${n}px`,zIndex:`var(--nb-zindex-menu)`}}}))}function _(){if(S(),!l.value)return;let e=!!c.value?.contains(document.activeElement);l.value=!1,e&&s.value?.focus()}function v(){return c.value?Array.from(c.value.querySelectorAll(`[role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]`)):[]}function y(e,t){let n=v();for(let r=e;r>=0&&r<n.length;r+=t)if(n[r].getAttribute(`aria-disabled`)!==`true`){n[r].focus();return}}function b(){o.disabled||(g(),(0,t.nextTick)(()=>y(0,1)))}function x(e){let t=v().indexOf(document.activeElement);e.key===`ArrowDown`?(e.preventDefault(),e.stopPropagation(),y(t+1,1)):e.key===`ArrowUp`?(e.preventDefault(),e.stopPropagation(),t>0&&y(t-1,-1)):e.key===`ArrowLeft`||e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),_()):e.key===`Tab`&&(_(),u?.close())}(0,t.watch)(c,(e,t)=>{t&&u?.unregisterSurface(t),e&&u?.registerSurface(e)});function S(){d&&=(clearTimeout(d),null),f&&=(clearTimeout(f),null)}function C(){S(),d=setTimeout(g,150)}function w(){S(),f=setTimeout(_,150)}function T(){S()}function E(){S(),f=setTimeout(_,150)}function D(){o.disabled||(l.value?_():g())}return(0,t.onBeforeUnmount)(()=>{S(),c.value&&u?.unregisterSurface(c.value)}),(o,u)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.createElementVNode)(`li`,{ref_key:`triggerRef`,ref:s,class:(0,t.normalizeClass)([`nb-menu-item nb-submenu-trigger`,{"nb-menu-item--disabled":a.disabled,"nb-menu-item--highlighted":l.value}]),role:`menuitem`,"aria-haspopup":`menu`,"aria-expanded":l.value,"aria-disabled":a.disabled||void 0,tabindex:-1,onMouseenter:C,onMouseleave:w,onKeydown:[(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`right`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`enter`]),(0,t.withKeys)((0,t.withModifiers)(b,[`prevent`]),[`space`]),(0,t.withKeys)((0,t.withModifiers)(_,[`prevent`]),[`left`]),(0,t.withKeys)((0,t.withModifiers)(_,[`prevent`]),[`escape`])],onClick:D},[a.icon?((0,t.openBlock)(),(0,t.createBlock)(e.t,{key:0,name:a.icon,size:16,class:`nb-menu-item__icon`},null,8,[`name`])):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`span`,i,(0,t.toDisplayString)(a.label),1),(0,t.createVNode)(e.t,{name:(0,t.unref)(n.regular),size:14,class:`nb-submenu-trigger__caret`},null,8,[`name`])],42,r),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`nb-submenu`},{default:(0,t.withCtx)(()=>[l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,{key:0,ref_key:`submenuRef`,ref:c,role:`menu`,class:(0,t.normalizeClass)([`nb-menu nb-submenu`,[p.value]]),style:(0,t.normalizeStyle)(m.value),onMouseenter:T,onMouseleave:E,onKeydown:x},[(0,t.renderSlot)(o.$slots,`default`)],38)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],64))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { t as e } from "./Icon-rREAqsu0.js";
|
|
2
|
+
import { Fragment as t, Teleport as n, Transition as r, computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, inject as d, nextTick as f, normalizeClass as p, normalizeStyle as m, onBeforeUnmount as h, openBlock as g, ref as _, renderSlot as v, toDisplayString as y, unref as b, watch as x, withCtx as S, withKeys as C, withModifiers as w } from "vue";
|
|
3
|
+
import { regular as T } from "@nubisco/ui/icons/caret-right";
|
|
4
|
+
//#region src/components/Submenu.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var E = [
|
|
6
|
+
"aria-expanded",
|
|
7
|
+
"aria-disabled",
|
|
8
|
+
"onKeydown"
|
|
9
|
+
], D = { class: "nb-menu-item__label" }, O = /* @__PURE__ */ u({
|
|
10
|
+
__name: "Submenu",
|
|
11
|
+
props: {
|
|
12
|
+
icon: { default: void 0 },
|
|
13
|
+
label: {},
|
|
14
|
+
disabled: {
|
|
15
|
+
type: Boolean,
|
|
16
|
+
default: !1
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
setup(u) {
|
|
20
|
+
let O = u, k = _(null), A = _(null), j = _(!1), M = d("nb-menu", null), N = null, P = null, F = i(() => `nb-menu--${M?.size ?? "md"}`), I = _({
|
|
21
|
+
position: "fixed",
|
|
22
|
+
top: "0px",
|
|
23
|
+
left: "0px",
|
|
24
|
+
zIndex: "var(--nb-zindex-menu)"
|
|
25
|
+
});
|
|
26
|
+
function L() {
|
|
27
|
+
if (!k.value) return;
|
|
28
|
+
let e = k.value.getBoundingClientRect(), t = e.right, n = e.top;
|
|
29
|
+
t + 200 > window.innerWidth && (t = e.left - 200), n + 200 > window.innerHeight && (n = Math.max(8, window.innerHeight - 200)), I.value = {
|
|
30
|
+
position: "fixed",
|
|
31
|
+
top: `${n}px`,
|
|
32
|
+
left: `${t}px`,
|
|
33
|
+
zIndex: "var(--nb-zindex-menu)"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function R() {
|
|
37
|
+
O.disabled || (W(), j.value = !0, L(), f(() => {
|
|
38
|
+
if (A.value && k.value) {
|
|
39
|
+
let e = k.value.getBoundingClientRect(), t = A.value.getBoundingClientRect(), n = e.right;
|
|
40
|
+
n + t.width > window.innerWidth && (n = e.left - t.width);
|
|
41
|
+
let r = e.top;
|
|
42
|
+
r + t.height > window.innerHeight && (r = Math.max(8, window.innerHeight - t.height)), I.value = {
|
|
43
|
+
position: "fixed",
|
|
44
|
+
top: `${r}px`,
|
|
45
|
+
left: `${n}px`,
|
|
46
|
+
zIndex: "var(--nb-zindex-menu)"
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
function z() {
|
|
52
|
+
if (W(), !j.value) return;
|
|
53
|
+
let e = !!A.value?.contains(document.activeElement);
|
|
54
|
+
j.value = !1, e && k.value?.focus();
|
|
55
|
+
}
|
|
56
|
+
function B() {
|
|
57
|
+
return A.value ? Array.from(A.value.querySelectorAll("[role=\"menuitem\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"]")) : [];
|
|
58
|
+
}
|
|
59
|
+
function V(e, t) {
|
|
60
|
+
let n = B();
|
|
61
|
+
for (let r = e; r >= 0 && r < n.length; r += t) if (n[r].getAttribute("aria-disabled") !== "true") {
|
|
62
|
+
n[r].focus();
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function H() {
|
|
67
|
+
O.disabled || (R(), f(() => V(0, 1)));
|
|
68
|
+
}
|
|
69
|
+
function U(e) {
|
|
70
|
+
let t = B().indexOf(document.activeElement);
|
|
71
|
+
e.key === "ArrowDown" ? (e.preventDefault(), e.stopPropagation(), V(t + 1, 1)) : e.key === "ArrowUp" ? (e.preventDefault(), e.stopPropagation(), t > 0 && V(t - 1, -1)) : e.key === "ArrowLeft" || e.key === "Escape" ? (e.preventDefault(), e.stopPropagation(), z()) : e.key === "Tab" && (z(), M?.close());
|
|
72
|
+
}
|
|
73
|
+
x(A, (e, t) => {
|
|
74
|
+
t && M?.unregisterSurface(t), e && M?.registerSurface(e);
|
|
75
|
+
});
|
|
76
|
+
function W() {
|
|
77
|
+
N &&= (clearTimeout(N), null), P &&= (clearTimeout(P), null);
|
|
78
|
+
}
|
|
79
|
+
function G() {
|
|
80
|
+
W(), N = setTimeout(R, 150);
|
|
81
|
+
}
|
|
82
|
+
function K() {
|
|
83
|
+
W(), P = setTimeout(z, 150);
|
|
84
|
+
}
|
|
85
|
+
function q() {
|
|
86
|
+
W();
|
|
87
|
+
}
|
|
88
|
+
function J() {
|
|
89
|
+
W(), P = setTimeout(z, 150);
|
|
90
|
+
}
|
|
91
|
+
function Y() {
|
|
92
|
+
O.disabled || (j.value ? z() : R());
|
|
93
|
+
}
|
|
94
|
+
return h(() => {
|
|
95
|
+
W(), A.value && M?.unregisterSurface(A.value);
|
|
96
|
+
}), (i, d) => (g(), s(t, null, [c("li", {
|
|
97
|
+
ref_key: "triggerRef",
|
|
98
|
+
ref: k,
|
|
99
|
+
class: p(["nb-menu-item nb-submenu-trigger", {
|
|
100
|
+
"nb-menu-item--disabled": u.disabled,
|
|
101
|
+
"nb-menu-item--highlighted": j.value
|
|
102
|
+
}]),
|
|
103
|
+
role: "menuitem",
|
|
104
|
+
"aria-haspopup": "menu",
|
|
105
|
+
"aria-expanded": j.value,
|
|
106
|
+
"aria-disabled": u.disabled || void 0,
|
|
107
|
+
tabindex: -1,
|
|
108
|
+
onMouseenter: G,
|
|
109
|
+
onMouseleave: K,
|
|
110
|
+
onKeydown: [
|
|
111
|
+
C(w(H, ["prevent"]), ["right"]),
|
|
112
|
+
C(w(H, ["prevent"]), ["enter"]),
|
|
113
|
+
C(w(H, ["prevent"]), ["space"]),
|
|
114
|
+
C(w(z, ["prevent"]), ["left"]),
|
|
115
|
+
C(w(z, ["prevent"]), ["escape"])
|
|
116
|
+
],
|
|
117
|
+
onClick: Y
|
|
118
|
+
}, [
|
|
119
|
+
u.icon ? (g(), a(e, {
|
|
120
|
+
key: 0,
|
|
121
|
+
name: u.icon,
|
|
122
|
+
size: 16,
|
|
123
|
+
class: "nb-menu-item__icon"
|
|
124
|
+
}, null, 8, ["name"])) : o("", !0),
|
|
125
|
+
c("span", D, y(u.label), 1),
|
|
126
|
+
l(e, {
|
|
127
|
+
name: b(T),
|
|
128
|
+
size: 14,
|
|
129
|
+
class: "nb-submenu-trigger__caret"
|
|
130
|
+
}, null, 8, ["name"])
|
|
131
|
+
], 42, E), (g(), a(n, { to: "body" }, [l(r, { name: "nb-submenu" }, {
|
|
132
|
+
default: S(() => [j.value ? (g(), s("ul", {
|
|
133
|
+
key: 0,
|
|
134
|
+
ref_key: "submenuRef",
|
|
135
|
+
ref: A,
|
|
136
|
+
role: "menu",
|
|
137
|
+
class: p(["nb-menu nb-submenu", [F.value]]),
|
|
138
|
+
style: m(I.value),
|
|
139
|
+
onMouseenter: q,
|
|
140
|
+
onMouseleave: J,
|
|
141
|
+
onKeydown: U
|
|
142
|
+
}, [v(i.$slots, "default")], 38)) : o("", !0)]),
|
|
143
|
+
_: 3
|
|
144
|
+
})]))], 64));
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
//#endregion
|
|
148
|
+
export { O as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-D-qHiVGv.cjs`),t=require(`./composables/useReducedMotion.composable.cjs`),n=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),r=require(`./composables/useStableId.composable.cjs`),i=require(`./composables/useSurfaceLayer.composable.cjs`),a=require(`./Button-D-XSNjSL.cjs`);let o=require(`vue`),s=require(`@nubisco/ui/icons/caret-right`);s=e.n(s);let c=require(`@nubisco/ui/icons/list-dashes`);c=e.n(c);var l=[`href`,`aria-current`,`data-id`,`onClick`],u=(0,o.defineComponent)({name:`TableOfContentsList`,__name:`TableOfContentsList`,props:{nodes:{},active:{},nested:{type:Boolean}},emits:[`go`],setup(e,{emit:t}){let n=t;function r(e,t){e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.button===0&&(e.preventDefault(),n(`go`,t))}return(t,i)=>{let a=(0,o.resolveComponent)(`TableOfContentsList`,!0);return(0,o.openBlock)(),(0,o.createElementBlock)(`ol`,{class:(0,o.normalizeClass)([`nb-toc-list`,{"nb-toc-list--nested":e.nested}])},[((0,o.openBlock)(!0),(0,o.createElementBlock)(o.Fragment,null,(0,o.renderList)(e.nodes,t=>((0,o.openBlock)(),(0,o.createElementBlock)(`li`,{key:t.id,class:`nb-toc-list__item`},[(0,o.createElementVNode)(`a`,{class:(0,o.normalizeClass)([`nb-toc-list__link`,{"nb-toc-list__link--active":t.id===e.active}]),href:`#${t.id}`,"aria-current":t.id===e.active?`location`:void 0,"data-id":t.id,onClick:e=>r(e,t)},(0,o.toDisplayString)(t.label),11,l),t.children.length>0?((0,o.openBlock)(),(0,o.createBlock)(a,{key:0,nodes:t.children,active:e.active,nested:``,onGo:i[0]||=e=>n(`go`,e)},null,8,[`nodes`,`active`])):(0,o.createCommentVNode)(``,!0)]))),128))],2)}}}),d=n.t(u,[[`__scopeId`,`data-v-d0f98dc3`]]),f=[`aria-label`],p={class:`nb-toc__head`},m={class:`nb-toc__title`},h=(0,o.defineComponent)({__name:`TableOfContents`,props:{items:{},active:{default:void 0},open:{type:Boolean,default:void 0},variant:{default:`docked`},collapsible:{type:Boolean,default:!0},title:{default:`Contents`},label:{default:`Table of contents`},showLabel:{default:`Show contents`},hideLabel:{default:`Hide contents`},root:{default:null},resolveTarget:{type:Function,default:void 0},spy:{type:Boolean,default:!0},offset:{default:96},updateHash:{type:Boolean,default:!0},followHash:{type:Boolean,default:!1}},emits:[`update:active`,`update:open`,`navigate`],setup(e,{expose:n,emit:l}){let u=e,h=l,g=`${r.useStableId({})}-nav`,_=(0,o.ref)(null),v=(0,o.ref)(null),{layerProps:y}=i.useSurfaceLayer({overlay:!0}),b=(0,o.computed)(()=>u.variant===`floating`?y.value:{}),x=(0,o.ref)(u.variant!==`floating`),S=(0,o.computed)(()=>u.open??x.value),C=(0,o.computed)(()=>u.variant===`floating`||u.collapsible);function w(e){!e&&!C.value||(x.value=e,h(`update:open`,e),e||(0,o.nextTick)(()=>T()))}function T(){(v.value?.$el)?.focus()}function E(e){u.variant!==`floating`||!S.value||(e.stopPropagation(),w(!1))}(0,o.watch)(()=>u.variant,e=>{x.value=e!==`floating`});let D=(0,o.computed)(()=>{let e=[],t=[];for(let n of u.items){let r={...n,children:[]};for(;t.length>0&&t[t.length-1].level>=n.level;)t.pop();t.length===0?e.push(r):t[t.length-1].children.push(r),t.push(r)}return e}),O=(0,o.ref)(null),k=(0,o.computed)(()=>u.active===void 0?O.value:u.active);function A(e){e!==k.value&&(O.value=e,h(`update:active`,e))}function j(e,t){return u.resolveTarget?u.resolveTarget(e,t):u.root?u.root.querySelector(`[id="${e.id.replace(/(["\\])/g,`\\$1`)}"]`):typeof document>`u`?null:document.getElementById(e.id)}function M(e){let t=e?.parentElement??null;for(;t;){let{overflowY:e}=getComputedStyle(t);if(e===`auto`||e===`scroll`)return t;t=t.parentElement}return window}function N(e,t,n,r){if(n){for(let t=e.length-1;t>=0;t--)if(e[t]<r)return t}let i=-1;for(let n=0;n<e.length&&e[n]<=t;n++)i=n;return i}let P=null,F=null,I=0;function L(){if(F=null,!u.spy||typeof window>`u`||Date.now()<I)return;let e=u.items.map((e,t)=>({item:e,el:j(e,t)})).filter(e=>!!e.el);if(e.length===0){A(null);return}let t=P??window,n=0,r=window.innerHeight,i=window.scrollY,a=document.documentElement.scrollHeight;if(t!==window){let e=t;n=e.getBoundingClientRect().top,r=e.clientHeight,i=e.scrollTop,a=e.scrollHeight}let o=a>r&&i+r>=a-2,s=N(e.map(({el:e})=>e.getBoundingClientRect().top-n),u.offset,o,r);A(s>=0?e[s].item.id:null)}function R(){F===null&&(F=typeof requestAnimationFrame==`function`?requestAnimationFrame(L):setTimeout(L,16))}function z(){B(),!(!u.spy||typeof window>`u`)&&(P=M(u.items.map((e,t)=>j(e,t)).find(Boolean)??u.root??_.value),P.addEventListener(`scroll`,R,{passive:!0}),window.addEventListener(`resize`,R,{passive:!0}),R())}function B(){P?.removeEventListener(`scroll`,R),typeof window<`u`&&window.removeEventListener(`resize`,R),P=null}function V(e,n={}){let r=typeof e==`string`?e:e.id,i=u.items.findIndex(e=>e.id===r);if(i<0)return;let a=u.items[i],o=j(a,i);if(!o)return;let s=n.instant||t.prefersReducedMotion();if(o.scrollIntoView?.({behavior:s?`auto`:`smooth`,block:`start`}),A(r),I=s?0:Date.now()+700,u.updateHash)try{let{pathname:e,search:t}=window.location;window.history.replaceState(window.history.state,``,`${e}${t}#${r}`)}catch{}o.closest(`[contenteditable="true"]`)||(o.hasAttribute(`tabindex`)||o.setAttribute(`tabindex`,`-1`),o.focus({preventScroll:!0})),u.variant===`floating`&&(x.value=!1,h(`update:open`,!1)),h(`navigate`,a)}let H=!1;function U(){if(!u.followHash||H||typeof window>`u`)return;let e=decodeURIComponent(window.location.hash.slice(1));if(!e){H=!0;return}let t=u.items.findIndex(t=>t.id===e);t<0||!j(u.items[t],t)||(H=!0,V(e,{instant:!0}))}return(0,o.watch)(()=>u.items,()=>void(0,o.nextTick)(()=>{z(),U()}),{flush:`post`,deep:!0}),(0,o.watch)(()=>[u.root,u.spy],()=>void(0,o.nextTick)(z),{flush:`post`}),(0,o.onMounted)(()=>{z(),(0,o.nextTick)(U)}),(0,o.onBeforeUnmount)(()=>{B(),F!==null&&(typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(F),clearTimeout(F))}),n({go:V,measure:L}),(t,n)=>((0,o.openBlock)(),(0,o.createElementBlock)(`div`,{ref_key:`rootEl`,ref:_,class:(0,o.normalizeClass)([`nb-toc`,`nb-toc--${e.variant}`,{"nb-toc--open":S.value}]),onKeydown:(0,o.withKeys)(E,[`esc`])},[S.value?((0,o.openBlock)(),(0,o.createElementBlock)(`div`,(0,o.mergeProps)({key:1,class:`nb-toc__body`},b.value),[(0,o.createElementVNode)(`nav`,{id:g,class:`nb-toc__nav`,"aria-label":e.label},[(0,o.createElementVNode)(`div`,p,[(0,o.createElementVNode)(`span`,m,(0,o.toDisplayString)(e.title),1),C.value?((0,o.openBlock)(),(0,o.createBlock)(a.t,{key:0,size:`xs`,variant:`ghost`,icon:s,"aria-label":e.hideLabel,title:e.hideLabel,"aria-expanded":!0,"aria-controls":g,onClick:n[1]||=e=>w(!1)},null,8,[`aria-label`,`title`])):(0,o.createCommentVNode)(``,!0)]),(0,o.createVNode)(d,{nodes:D.value,active:k.value,onGo:V},null,8,[`nodes`,`active`])],8,f)],16)):((0,o.openBlock)(),(0,o.createBlock)(a.t,{key:0,ref_key:`showButton`,ref:v,size:`sm`,variant:`ghost`,icon:c,class:`nb-toc__show`,"aria-label":e.showLabel,title:e.showLabel,"aria-expanded":!1,"aria-controls":g,onClick:n[0]||=e=>w(!0)},null,8,[`aria-label`,`title`]))],34))}}),g=n.t(h,[[`__scopeId`,`data-v-cb6a1ca7`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return g}});
|