@nubisco/ui 5.5.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/Avatar-672086EP.js +57 -0
  2. package/dist/Avatar-DqHh71ha.cjs +1 -0
  3. package/dist/{Pagination-Dz24gpb7.cjs → Pagination-CcZB4Lp_.cjs} +1 -1
  4. package/dist/{Pagination-BInZQpJS.js → Pagination-DDIc4vUH.js} +1 -1
  5. package/dist/Select-BMamCNcN.cjs +1 -0
  6. package/dist/Select-CB4BSCaj.js +405 -0
  7. package/dist/{Tree-DI_ouWnv.cjs → Tree-CMXvRX6y.cjs} +1 -1
  8. package/dist/{Tree-DHdPsRXV.js → Tree-Clpnh7Mh.js} +1 -1
  9. package/dist/TreeContext-51-0WkVM.cjs +1 -0
  10. package/dist/TreeContext-C77g-WGF.js +4 -0
  11. package/dist/TreeNode-DsOOkac_.js +171 -0
  12. package/dist/TreeNode-n65SoYln.cjs +1 -0
  13. package/dist/all.cjs +1 -1
  14. package/dist/all.mjs +19 -18
  15. package/dist/components/Avatar.cjs +1 -1
  16. package/dist/components/Avatar.d.ts +19 -2
  17. package/dist/components/Avatar.mjs +1 -1
  18. package/dist/components/Avatar.vue.d.ts +3 -1
  19. package/dist/components/Avatar.vue.d.ts.map +1 -1
  20. package/dist/components/Pagination.cjs +1 -1
  21. package/dist/components/Pagination.mjs +1 -1
  22. package/dist/components/Select.cjs +1 -1
  23. package/dist/components/Select.d.ts +10 -0
  24. package/dist/components/Select.mjs +1 -1
  25. package/dist/components/Select.vue.d.ts +7 -7
  26. package/dist/components/Select.vue.d.ts.map +1 -1
  27. package/dist/components/Tree.cjs +1 -1
  28. package/dist/components/Tree.d.ts +2 -3
  29. package/dist/components/Tree.mjs +1 -1
  30. package/dist/components/TreeContext.d.ts +5 -0
  31. package/dist/components/TreeContext.d.ts.map +1 -1
  32. package/dist/components/TreeNode.cjs +1 -1
  33. package/dist/components/TreeNode.mjs +1 -1
  34. package/dist/components/TreeNode.vue.d.ts.map +1 -1
  35. package/dist/index.cjs +1 -1
  36. package/dist/index.mjs +14 -13
  37. package/dist/main.d.ts +2 -0
  38. package/dist/main.d.ts.map +1 -1
  39. package/dist/styles/Select.css +1 -1
  40. package/dist/styles/TreeNode.css +1 -1
  41. package/dist/ui.css +2 -2
  42. package/dist/utils/treeMove.helper.cjs +1 -0
  43. package/dist/utils/treeMove.helper.d.ts +87 -0
  44. package/dist/utils/treeMove.helper.d.ts.map +1 -0
  45. package/dist/utils/treeMove.helper.mjs +86 -0
  46. package/package.json +1 -1
  47. package/src/utils/treeMove.helper.ts +223 -0
  48. package/dist/Avatar-C6pCz1lv.cjs +0 -1
  49. package/dist/Avatar-DdI07lRT.js +0 -47
  50. package/dist/Select-BbsEiJ4j.cjs +0 -1
  51. package/dist/Select-Ep1fFBFj.js +0 -378
  52. package/dist/TreeContext-BH2qpPud.cjs +0 -1
  53. package/dist/TreeContext-DMADOfuO.js +0 -4
  54. package/dist/TreeNode-CME77z98.js +0 -165
  55. package/dist/TreeNode-CpV3GOzv.cjs +0 -1
@@ -0,0 +1,57 @@
1
+ import { initialsOf as e } from "./utils/initials.helper.mjs";
2
+ import { computed as t, createElementBlock as n, defineComponent as r, normalizeClass as i, normalizeStyle as a, openBlock as o, ref as s, toDisplayString as c, watch as l } from "vue";
3
+ //#region src/components/Avatar.vue?vue&type=script&setup=true&lang.ts
4
+ var u = [
5
+ "role",
6
+ "aria-label",
7
+ "aria-hidden",
8
+ "title"
9
+ ], d = ["src"], f = {
10
+ key: 1,
11
+ class: "nb-avatar__initials",
12
+ "aria-hidden": "true"
13
+ }, p = /* @__PURE__ */ r({
14
+ __name: "Avatar",
15
+ props: {
16
+ name: { default: void 0 },
17
+ email: { default: void 0 },
18
+ picture: { default: void 0 },
19
+ size: { default: "md" },
20
+ background: { default: void 0 },
21
+ color: { default: void 0 },
22
+ decorative: {
23
+ type: Boolean,
24
+ default: !1
25
+ }
26
+ },
27
+ setup(r) {
28
+ let p = r, m = s(!1);
29
+ l(() => p.picture, () => {
30
+ m.value = !1;
31
+ });
32
+ let h = t(() => {
33
+ let e = {};
34
+ if (typeof p.size == "number") {
35
+ let t = Math.max(1, p.size), n = Math.min(.42, Math.max(.3, .4 - (t - 20) * .0025));
36
+ e.width = `${t}px`, e.height = `${t}px`, e.fontSize = `${Math.round(t * n * 100) / 100}px`;
37
+ }
38
+ return p.background && (e.background = p.background), p.color && (e.color = p.color), e;
39
+ }), g = t(() => !!p.picture && !m.value), _ = t(() => e(p)), v = t(() => p.name?.trim() || p.email?.trim() || "");
40
+ return (e, t) => (o(), n("span", {
41
+ class: i(["nb-avatar", [typeof r.size == "number" ? null : `nb-avatar--${r.size}`]]),
42
+ style: a(h.value),
43
+ role: r.decorative ? void 0 : "img",
44
+ "aria-label": r.decorative ? void 0 : v.value || void 0,
45
+ "aria-hidden": r.decorative ? "true" : void 0,
46
+ title: r.decorative ? void 0 : v.value || void 0
47
+ }, [g.value ? (o(), n("img", {
48
+ key: 0,
49
+ class: "nb-avatar__picture",
50
+ src: r.picture ?? void 0,
51
+ alt: "",
52
+ onError: t[0] ||= (e) => m.value = !0
53
+ }, null, 40, d)) : (o(), n("span", f, c(_.value), 1))], 14, u));
54
+ }
55
+ });
56
+ //#endregion
57
+ export { p as t };
@@ -0,0 +1 @@
1
+ require(`./chunk-D-qHiVGv.cjs`);const e=require(`./utils/initials.helper.cjs`);let t=require(`vue`);var n=[`role`,`aria-label`,`aria-hidden`,`title`],r=[`src`],i={key:1,class:`nb-avatar__initials`,"aria-hidden":`true`},a=(0,t.defineComponent)({__name:`Avatar`,props:{name:{default:void 0},email:{default:void 0},picture:{default:void 0},size:{default:`md`},background:{default:void 0},color:{default:void 0},decorative:{type:Boolean,default:!1}},setup(a){let o=a,s=(0,t.ref)(!1);(0,t.watch)(()=>o.picture,()=>{s.value=!1});let c=(0,t.computed)(()=>{let e={};if(typeof o.size==`number`){let t=Math.max(1,o.size),n=Math.min(.42,Math.max(.3,.4-(t-20)*.0025));e.width=`${t}px`,e.height=`${t}px`,e.fontSize=`${Math.round(t*n*100)/100}px`}return o.background&&(e.background=o.background),o.color&&(e.color=o.color),e}),l=(0,t.computed)(()=>!!o.picture&&!s.value),u=(0,t.computed)(()=>e.initialsOf(o)),d=(0,t.computed)(()=>o.name?.trim()||o.email?.trim()||``);return(e,o)=>((0,t.openBlock)(),(0,t.createElementBlock)(`span`,{class:(0,t.normalizeClass)([`nb-avatar`,[typeof a.size==`number`?null:`nb-avatar--${a.size}`]]),style:(0,t.normalizeStyle)(c.value),role:a.decorative?void 0:`img`,"aria-label":a.decorative?void 0:d.value||void 0,"aria-hidden":a.decorative?`true`:void 0,title:a.decorative?void 0:d.value||void 0},[l.value?((0,t.openBlock)(),(0,t.createElementBlock)(`img`,{key:0,class:`nb-avatar__picture`,src:a.picture??void 0,alt:``,onError:o[0]||=e=>s.value=!0},null,40,r)):((0,t.openBlock)(),(0,t.createElementBlock)(`span`,i,(0,t.toDisplayString)(u.value),1))],14,n))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return a}});
@@ -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-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}});
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-BMamCNcN.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}});
@@ -1,7 +1,7 @@
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
3
  import { t as n } from "./Button-Cw4D6w9K.js";
4
- import { t as r } from "./Select-Ep1fFBFj.js";
4
+ import { t as r } from "./Select-CB4BSCaj.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";
7
7
  import * as p from "@nubisco/ui/icons/caret-left";
@@ -0,0 +1 @@
1
+ require(`./chunk-D-qHiVGv.cjs`);const e=require(`./Icon-C8R_r_In.cjs`),t=require(`./Label-DtXh4XR5.cjs`),n=require(`./Message-D8ZE4uGZ.cjs`),r=require(`./Grid-DTZTlxd_.cjs`);let i=require(`vue`),a=require(`@nubisco/ui/icons/caret-down`),o=require(`@nubisco/ui/icons/caret-up`);var s=[`id`,`aria-expanded`,`aria-disabled`,`aria-required`,`disabled`],c=[`id`,`aria-expanded`,`aria-disabled`,`aria-required`,`disabled`],l={key:1,class:`nb-select__inner-label`},u={key:0,class:`nb-select__asterisk`,"aria-hidden":`true`},d=[`aria-multiselectable`],f=[`aria-selected`,`aria-disabled`,`onMouseenter`,`onClick`],p={key:0,class:`nb-select__option-check`,"aria-hidden":`true`},m={key:0,viewBox:`0 0 10 8`,fill:`none`,width:`10`,height:`8`},h={class:`nb-select__option-label`},g={key:0,class:`nb-select__empty`},_=[`placeholder`,`onKeydown`],v=(0,i.defineComponent)({__name:`Select`,props:{modelValue:{default:null},options:{default:()=>[]},multiple:{type:Boolean,default:!1},creatable:{type:Boolean,default:!1},createPlaceholder:{default:``},placeholder:{default:`Select…`},name:{default:``},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},id:{default:void 0},label:{default:``},error:{default:``},warning:{default:``},helper:{default:``},variant:{default:`default`},size:{default:`md`}},emits:[`update:modelValue`,`change`,`create`],setup(v,{expose:y,emit:b}){let x=v,S=b,C=(0,i.ref)(``);function w(){let e=C.value.trim();e&&(S(`create`,e),C.value=``)}let T=(0,i.ref)(!1),E=(0,i.ref)(!1),D=(0,i.ref)(-1),O=(0,i.ref)(null),k=(0,i.ref)(null),A=(0,i.ref)(null),j=(0,i.ref)({position:`fixed`,top:`0px`,left:`0px`,width:`0px`,zIndex:`9999`}),M=`nb-select-${(0,i.useId)()}`,N=(0,i.computed)(()=>x.id??M),P=(0,i.computed)(()=>x.modelValue==null?[]:Array.isArray(x.modelValue)?x.modelValue:[x.modelValue]),F=(0,i.computed)(()=>{if(!(x.multiple||P.value.length!==1))return(x.options??[]).find(e=>e.value===P.value[0])?.icon}),I=(0,i.computed)(()=>{if(P.value.length===0)return``;let e=x.options??[];return x.multiple?P.value.length===1?e.find(e=>e.value===P.value[0])?.label??String(P.value[0]):P.value.length===2?P.value.map(t=>e.find(e=>e.value===t)?.label??String(t)).join(`, `):`${P.value.length} selected`:e.find(e=>e.value===P.value[0])?.label??String(P.value[0])});function L(e){return P.value.includes(e)}function R(e){if(e.disabled)return;let t;if(x.multiple){let n=[...P.value],r=n.indexOf(e.value);r>=0?n.splice(r,1):n.push(e.value),t=n}else t=e.value,V();S(`update:modelValue`,t),S(`change`,t)}function z(){if(!k.value)return;let e=k.value.getBoundingClientRect(),t=A.value?.offsetHeight??0,n=window.innerHeight-e.bottom,r=e.top;j.value={position:`fixed`,top:t>0&&n<t&&r>n?`${e.top-t}px`:`${e.bottom}px`,left:`${e.left}px`,width:`${e.width}px`,zIndex:`9999`}}function B(){if(x.disabled)return;T.value=!0,z();let e=x.options??[];D.value=P.value.length>0?Math.max(0,e.findIndex(e=>e.value===P.value[0])):-1,(0,i.nextTick)(()=>{z(),K()})}function V(){T.value=!1,D.value=-1}function H(){T.value?V():B()}function U(e){let t=e.target,n=O.value?.contains(t)??!1,r=A.value?.contains(t)??!1;!n&&!r&&V()}function W(){T.value&&z()}(0,i.watch)(T,e=>{e?(document.addEventListener(`mousedown`,U),window.addEventListener(`scroll`,W,!0),window.addEventListener(`resize`,W)):(document.removeEventListener(`mousedown`,U),window.removeEventListener(`scroll`,W,!0),window.removeEventListener(`resize`,W))}),(0,i.onBeforeUnmount)(()=>{document.removeEventListener(`mousedown`,U),window.removeEventListener(`scroll`,W,!0),window.removeEventListener(`resize`,W)});function G(e){let t=x.options??[];if(!T.value){(e.key===`Enter`||e.key===` `||e.key===`ArrowDown`)&&(e.preventDefault(),B());return}e.key===`Escape`?(V(),e.preventDefault()):e.key===`Tab`?V():e.key===`ArrowDown`?(e.preventDefault(),D.value=Math.min(D.value+1,t.length-1),K()):e.key===`ArrowUp`?(e.preventDefault(),D.value=Math.max(D.value-1,0),K()):(e.key===`Enter`||e.key===` `)&&D.value>=0&&(e.preventDefault(),R(t[D.value]))}function K(){(0,i.nextTick)(()=>{!A.value||D.value<0||A.value.querySelectorAll(`.nb-select__option`)[D.value]?.scrollIntoView({block:`nearest`})})}let q=(0,i.computed)(()=>[`nb-select`,`nb-select--${x.variant}`,`nb-select--${x.size}`,{"nb-select--open":T.value,"nb-select--focused":E.value&&!T.value,"nb-select--error":!!x.error,"nb-select--warning":!x.error&&!!x.warning,"nb-select--multiple":x.multiple}]);return y({open:B,close:V}),(y,b)=>((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,null,[(0,i.createElementVNode)(`div`,{ref_key:`rootRef`,ref:O,class:(0,i.normalizeClass)(q.value),onKeydown:G},[v.variant===`default`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:0},[y.$slots.label?(0,i.renderSlot)(y.$slots,`label`,{key:0}):v.label?((0,i.openBlock)(),(0,i.createBlock)(t.t,{key:1,for:N.value,required:v.required,disabled:v.disabled},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.label),1)]),_:1},8,[`for`,`required`,`disabled`])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`button`,{id:N.value,ref_key:`triggerRef`,ref:k,type:`button`,class:`nb-select__trigger`,role:`combobox`,"aria-expanded":T.value,"aria-haspopup":`listbox`,"aria-disabled":v.disabled||void 0,"aria-required":v.required||void 0,disabled:v.disabled||void 0,onClick:H,onFocus:b[0]||=e=>E.value=!0,onBlur:b[1]||=e=>E.value=!1},[(0,i.createElementVNode)(`span`,{class:(0,i.normalizeClass)([`nb-select__value`,{"nb-select__value--placeholder":!I.value,"nb-select__value--with-icon":!!F.value}])},[F.value?((0,i.openBlock)(),(0,i.createBlock)(e.t,{key:0,class:`nb-select__value-icon`,name:F.value,size:16},null,8,[`name`])):(0,i.createCommentVNode)(``,!0),I.value?(0,i.renderSlot)(y.$slots,`value`,{key:1,values:P.value},()=>[(0,i.createTextVNode)((0,i.toDisplayString)(I.value),1)]):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createTextVNode)((0,i.toDisplayString)(v.placeholder),1)],64))],2),v.error?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:0,variant:`error`,"icon-only":!0,class:`nb-select__status-icon`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.error),1)]),_:1})):v.warning?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:1,variant:`warning`,"icon-only":!0,class:`nb-select__status-icon`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.warning),1)]),_:1})):(0,i.createCommentVNode)(``,!0),(0,i.createVNode)(r.t,{align:`center`,justify:`center`,class:`nb-select__caret`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(e.t,{name:T.value?(0,i.unref)(o.regular):(0,i.unref)(a.regular),size:16},null,8,[`name`])]),_:1})],40,s),v.error?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:2,variant:`error`,class:`nb-select__message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.error),1)]),_:1})):v.warning?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:3,variant:`warning`,class:`nb-select__message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.warning),1)]),_:1})):v.helper?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:4,variant:`helper`,class:`nb-select__message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.helper),1)]),_:1})):(0,i.createCommentVNode)(``,!0)],64)):v.variant===`fluid`?((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:1},[(0,i.createElementVNode)(`button`,{id:N.value,ref_key:`triggerRef`,ref:k,type:`button`,class:`nb-select__trigger`,role:`combobox`,"aria-expanded":T.value,"aria-haspopup":`listbox`,"aria-disabled":v.disabled||void 0,"aria-required":v.required||void 0,disabled:v.disabled||void 0,onClick:H,onFocus:b[2]||=e=>E.value=!0,onBlur:b[3]||=e=>E.value=!1},[v.label||y.$slots.label?((0,i.openBlock)(),(0,i.createBlock)(r.t,{key:0,dir:`row`,align:`center`,gap:`xs`,class:`nb-select__inner-header`},{default:(0,i.withCtx)(()=>[y.$slots.label?(0,i.renderSlot)(y.$slots,`label`,{key:0}):((0,i.openBlock)(),(0,i.createElementBlock)(`label`,l,[(0,i.createTextVNode)((0,i.toDisplayString)(v.label)+` `,1),v.required?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,u,`*`)):(0,i.createCommentVNode)(``,!0)])),v.helper&&!v.error&&!v.warning?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:2,variant:`helper`,"icon-only":!0,class:`nb-select__inner-message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.helper),1)]),_:1})):(0,i.createCommentVNode)(``,!0)]),_:3})):(0,i.createCommentVNode)(``,!0),(0,i.createVNode)(r.t,{dir:`row`,align:`end`,flex:``,class:`nb-select__value-row`},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`span`,{class:(0,i.normalizeClass)([`nb-select__value`,{"nb-select__value--placeholder":!I.value,"nb-select__value--with-icon":!!F.value}])},[F.value?((0,i.openBlock)(),(0,i.createBlock)(e.t,{key:0,class:`nb-select__value-icon`,name:F.value,size:16},null,8,[`name`])):(0,i.createCommentVNode)(``,!0),I.value?(0,i.renderSlot)(y.$slots,`value`,{key:1,values:P.value},()=>[(0,i.createTextVNode)((0,i.toDisplayString)(I.value),1)]):((0,i.openBlock)(),(0,i.createElementBlock)(i.Fragment,{key:2},[(0,i.createTextVNode)((0,i.toDisplayString)(v.placeholder),1)],64))],2),(0,i.createVNode)(r.t,{align:`center`,justify:`center`,class:`nb-select__caret`},{default:(0,i.withCtx)(()=>[(0,i.createVNode)(e.t,{name:T.value?(0,i.unref)(o.regular):(0,i.unref)(a.regular),size:16},null,8,[`name`])]),_:1})]),_:3})],40,c),v.error?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:0,variant:`error`,class:`nb-select__fluid-message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.error),1)]),_:1})):v.warning?((0,i.openBlock)(),(0,i.createBlock)(n.t,{key:1,variant:`warning`,class:`nb-select__fluid-message`},{default:(0,i.withCtx)(()=>[(0,i.createTextVNode)((0,i.toDisplayString)(v.warning),1)]),_:1})):(0,i.createCommentVNode)(``,!0)],64)):(0,i.createCommentVNode)(``,!0)],34),((0,i.openBlock)(),(0,i.createBlock)(i.Teleport,{to:`body`},[T.value?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:0,ref_key:`dropdownRef`,ref:A,class:`nb-select__dropdown`,style:(0,i.normalizeStyle)(j.value),role:`listbox`,"aria-multiselectable":v.multiple||void 0},[((0,i.openBlock)(!0),(0,i.createElementBlock)(i.Fragment,null,(0,i.renderList)(v.options,(t,n)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:t.value,class:(0,i.normalizeClass)([`nb-select__option`,{"nb-select__option--selected":L(t.value),"nb-select__option--highlighted":D.value===n,"nb-select__option--disabled":t.disabled}]),role:`option`,"aria-selected":L(t.value),"aria-disabled":t.disabled||void 0,onMouseenter:e=>D.value=n,onClick:e=>R(t)},[v.multiple?((0,i.openBlock)(),(0,i.createElementBlock)(`span`,p,[L(t.value)?((0,i.openBlock)(),(0,i.createElementBlock)(`svg`,m,[...b[7]||=[(0,i.createElementVNode)(`path`,{d:`M1 4l3 3 5-6`,stroke:`currentColor`,"stroke-width":`1.5`,"stroke-linecap":`round`,"stroke-linejoin":`round`},null,-1)]])):(0,i.createCommentVNode)(``,!0)])):(0,i.createCommentVNode)(``,!0),t.icon?((0,i.openBlock)(),(0,i.createBlock)(e.t,{key:1,class:`nb-select__option-icon`,name:t.icon,size:16},null,8,[`name`])):(0,i.createCommentVNode)(``,!0),(0,i.createElementVNode)(`span`,h,[(0,i.renderSlot)(y.$slots,`option`,{option:t},()=>[(0,i.createTextVNode)((0,i.toDisplayString)(t.label),1)])])],42,f))),128)),!v.options||v.options.length===0?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,g,` No options `)):(0,i.createCommentVNode)(``,!0),v.creatable?((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{key:1,class:`nb-select__create`,onMousedown:b[6]||=(0,i.withModifiers)(()=>{},[`prevent`])},[(0,i.withDirectives)((0,i.createElementVNode)(`input`,{"onUpdate:modelValue":b[4]||=e=>C.value=e,type:`text`,class:`nb-select__create-input`,placeholder:v.createPlaceholder||`Add new…`,onKeydown:[(0,i.withKeys)((0,i.withModifiers)(w,[`prevent`]),[`enter`]),b[5]||=(0,i.withModifiers)(()=>{},[`stop`])]},null,40,_),[[i.vModelText,C.value]])],32)):(0,i.createCommentVNode)(``,!0)],12,d)):(0,i.createCommentVNode)(``,!0)]))],64))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return v}});
@@ -0,0 +1,405 @@
1
+ import { t as e } from "./Icon-rREAqsu0.js";
2
+ import { t } from "./Label-glcQoGCr.js";
3
+ import { t as n } from "./Message-Ciyc2nN6.js";
4
+ import { t as r } from "./Grid-CgUyhsw4.js";
5
+ import { Fragment as i, Teleport as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, nextTick as m, normalizeClass as h, normalizeStyle as g, onBeforeUnmount as ee, openBlock as _, ref as v, renderList as te, renderSlot as y, toDisplayString as b, unref as x, useId as S, vModelText as ne, watch as re, withCtx as C, withDirectives as ie, withKeys as ae, withModifiers as w } from "vue";
6
+ import { regular as T } from "@nubisco/ui/icons/caret-down";
7
+ import { regular as E } from "@nubisco/ui/icons/caret-up";
8
+ //#region src/components/Select.vue?vue&type=script&setup=true&lang.ts
9
+ var oe = [
10
+ "id",
11
+ "aria-expanded",
12
+ "aria-disabled",
13
+ "aria-required",
14
+ "disabled"
15
+ ], se = [
16
+ "id",
17
+ "aria-expanded",
18
+ "aria-disabled",
19
+ "aria-required",
20
+ "disabled"
21
+ ], ce = {
22
+ key: 1,
23
+ class: "nb-select__inner-label"
24
+ }, le = {
25
+ key: 0,
26
+ class: "nb-select__asterisk",
27
+ "aria-hidden": "true"
28
+ }, ue = ["aria-multiselectable"], de = [
29
+ "aria-selected",
30
+ "aria-disabled",
31
+ "onMouseenter",
32
+ "onClick"
33
+ ], fe = {
34
+ key: 0,
35
+ class: "nb-select__option-check",
36
+ "aria-hidden": "true"
37
+ }, pe = {
38
+ key: 0,
39
+ viewBox: "0 0 10 8",
40
+ fill: "none",
41
+ width: "10",
42
+ height: "8"
43
+ }, me = { class: "nb-select__option-label" }, D = {
44
+ key: 0,
45
+ class: "nb-select__empty"
46
+ }, O = ["placeholder", "onKeydown"], k = /* @__PURE__ */ p({
47
+ __name: "Select",
48
+ props: {
49
+ modelValue: { default: null },
50
+ options: { default: () => [] },
51
+ multiple: {
52
+ type: Boolean,
53
+ default: !1
54
+ },
55
+ creatable: {
56
+ type: Boolean,
57
+ default: !1
58
+ },
59
+ createPlaceholder: { default: "" },
60
+ placeholder: { default: "Select…" },
61
+ name: { default: "" },
62
+ disabled: {
63
+ type: Boolean,
64
+ default: !1
65
+ },
66
+ required: {
67
+ type: Boolean,
68
+ default: !1
69
+ },
70
+ id: { default: void 0 },
71
+ label: { default: "" },
72
+ error: { default: "" },
73
+ warning: { default: "" },
74
+ helper: { default: "" },
75
+ variant: { default: "default" },
76
+ size: { default: "md" }
77
+ },
78
+ emits: [
79
+ "update:modelValue",
80
+ "change",
81
+ "create"
82
+ ],
83
+ setup(p, { expose: k, emit: A }) {
84
+ let j = p, M = A, N = v("");
85
+ function he() {
86
+ let e = N.value.trim();
87
+ e && (M("create", e), N.value = "");
88
+ }
89
+ let P = v(!1), F = v(!1), I = v(-1), L = v(null), R = v(null), z = v(null), B = v({
90
+ position: "fixed",
91
+ top: "0px",
92
+ left: "0px",
93
+ width: "0px",
94
+ zIndex: "9999"
95
+ }), ge = `nb-select-${S()}`, V = o(() => j.id ?? ge), H = o(() => j.modelValue == null ? [] : Array.isArray(j.modelValue) ? j.modelValue : [j.modelValue]), U = o(() => {
96
+ if (!(j.multiple || H.value.length !== 1)) return (j.options ?? []).find((e) => e.value === H.value[0])?.icon;
97
+ }), W = o(() => {
98
+ if (H.value.length === 0) return "";
99
+ let e = j.options ?? [];
100
+ return j.multiple ? H.value.length === 1 ? e.find((e) => e.value === H.value[0])?.label ?? String(H.value[0]) : H.value.length === 2 ? H.value.map((t) => e.find((e) => e.value === t)?.label ?? String(t)).join(", ") : `${H.value.length} selected` : e.find((e) => e.value === H.value[0])?.label ?? String(H.value[0]);
101
+ });
102
+ function G(e) {
103
+ return H.value.includes(e);
104
+ }
105
+ function K(e) {
106
+ if (e.disabled) return;
107
+ let t;
108
+ if (j.multiple) {
109
+ let n = [...H.value], r = n.indexOf(e.value);
110
+ r >= 0 ? n.splice(r, 1) : n.push(e.value), t = n;
111
+ } else t = e.value, Y();
112
+ M("update:modelValue", t), M("change", t);
113
+ }
114
+ function q() {
115
+ if (!R.value) return;
116
+ let e = R.value.getBoundingClientRect(), t = z.value?.offsetHeight ?? 0, n = window.innerHeight - e.bottom, r = e.top;
117
+ B.value = {
118
+ position: "fixed",
119
+ top: t > 0 && n < t && r > n ? `${e.top - t}px` : `${e.bottom}px`,
120
+ left: `${e.left}px`,
121
+ width: `${e.width}px`,
122
+ zIndex: "9999"
123
+ };
124
+ }
125
+ function J() {
126
+ if (j.disabled) return;
127
+ P.value = !0, q();
128
+ let e = j.options ?? [];
129
+ I.value = H.value.length > 0 ? Math.max(0, e.findIndex((e) => e.value === H.value[0])) : -1, m(() => {
130
+ q(), $();
131
+ });
132
+ }
133
+ function Y() {
134
+ P.value = !1, I.value = -1;
135
+ }
136
+ function X() {
137
+ P.value ? Y() : J();
138
+ }
139
+ function Z(e) {
140
+ let t = e.target, n = L.value?.contains(t) ?? !1, r = z.value?.contains(t) ?? !1;
141
+ !n && !r && Y();
142
+ }
143
+ function Q() {
144
+ P.value && q();
145
+ }
146
+ re(P, (e) => {
147
+ e ? (document.addEventListener("mousedown", Z), window.addEventListener("scroll", Q, !0), window.addEventListener("resize", Q)) : (document.removeEventListener("mousedown", Z), window.removeEventListener("scroll", Q, !0), window.removeEventListener("resize", Q));
148
+ }), ee(() => {
149
+ document.removeEventListener("mousedown", Z), window.removeEventListener("scroll", Q, !0), window.removeEventListener("resize", Q);
150
+ });
151
+ function _e(e) {
152
+ let t = j.options ?? [];
153
+ if (!P.value) {
154
+ (e.key === "Enter" || e.key === " " || e.key === "ArrowDown") && (e.preventDefault(), J());
155
+ return;
156
+ }
157
+ e.key === "Escape" ? (Y(), e.preventDefault()) : e.key === "Tab" ? Y() : e.key === "ArrowDown" ? (e.preventDefault(), I.value = Math.min(I.value + 1, t.length - 1), $()) : e.key === "ArrowUp" ? (e.preventDefault(), I.value = Math.max(I.value - 1, 0), $()) : (e.key === "Enter" || e.key === " ") && I.value >= 0 && (e.preventDefault(), K(t[I.value]));
158
+ }
159
+ function $() {
160
+ m(() => {
161
+ !z.value || I.value < 0 || z.value.querySelectorAll(".nb-select__option")[I.value]?.scrollIntoView({ block: "nearest" });
162
+ });
163
+ }
164
+ let ve = o(() => [
165
+ "nb-select",
166
+ `nb-select--${j.variant}`,
167
+ `nb-select--${j.size}`,
168
+ {
169
+ "nb-select--open": P.value,
170
+ "nb-select--focused": F.value && !P.value,
171
+ "nb-select--error": !!j.error,
172
+ "nb-select--warning": !j.error && !!j.warning,
173
+ "nb-select--multiple": j.multiple
174
+ }
175
+ ]);
176
+ return k({
177
+ open: J,
178
+ close: Y
179
+ }), (o, m) => (_(), l(i, null, [u("div", {
180
+ ref_key: "rootRef",
181
+ ref: L,
182
+ class: h(ve.value),
183
+ onKeydown: _e
184
+ }, [p.variant === "default" ? (_(), l(i, { key: 0 }, [
185
+ o.$slots.label ? y(o.$slots, "label", { key: 0 }) : p.label ? (_(), s(t, {
186
+ key: 1,
187
+ for: V.value,
188
+ required: p.required,
189
+ disabled: p.disabled
190
+ }, {
191
+ default: C(() => [d(b(p.label), 1)]),
192
+ _: 1
193
+ }, 8, [
194
+ "for",
195
+ "required",
196
+ "disabled"
197
+ ])) : c("", !0),
198
+ u("button", {
199
+ id: V.value,
200
+ ref_key: "triggerRef",
201
+ ref: R,
202
+ type: "button",
203
+ class: "nb-select__trigger",
204
+ role: "combobox",
205
+ "aria-expanded": P.value,
206
+ "aria-haspopup": "listbox",
207
+ "aria-disabled": p.disabled || void 0,
208
+ "aria-required": p.required || void 0,
209
+ disabled: p.disabled || void 0,
210
+ onClick: X,
211
+ onFocus: m[0] ||= (e) => F.value = !0,
212
+ onBlur: m[1] ||= (e) => F.value = !1
213
+ }, [
214
+ u("span", { class: h(["nb-select__value", {
215
+ "nb-select__value--placeholder": !W.value,
216
+ "nb-select__value--with-icon": !!U.value
217
+ }]) }, [U.value ? (_(), s(e, {
218
+ key: 0,
219
+ class: "nb-select__value-icon",
220
+ name: U.value,
221
+ size: 16
222
+ }, null, 8, ["name"])) : c("", !0), W.value ? y(o.$slots, "value", {
223
+ key: 1,
224
+ values: H.value
225
+ }, () => [d(b(W.value), 1)]) : (_(), l(i, { key: 2 }, [d(b(p.placeholder), 1)], 64))], 2),
226
+ p.error ? (_(), s(n, {
227
+ key: 0,
228
+ variant: "error",
229
+ "icon-only": !0,
230
+ class: "nb-select__status-icon"
231
+ }, {
232
+ default: C(() => [d(b(p.error), 1)]),
233
+ _: 1
234
+ })) : p.warning ? (_(), s(n, {
235
+ key: 1,
236
+ variant: "warning",
237
+ "icon-only": !0,
238
+ class: "nb-select__status-icon"
239
+ }, {
240
+ default: C(() => [d(b(p.warning), 1)]),
241
+ _: 1
242
+ })) : c("", !0),
243
+ f(r, {
244
+ align: "center",
245
+ justify: "center",
246
+ class: "nb-select__caret"
247
+ }, {
248
+ default: C(() => [f(e, {
249
+ name: P.value ? x(E) : x(T),
250
+ size: 16
251
+ }, null, 8, ["name"])]),
252
+ _: 1
253
+ })
254
+ ], 40, oe),
255
+ p.error ? (_(), s(n, {
256
+ key: 2,
257
+ variant: "error",
258
+ class: "nb-select__message"
259
+ }, {
260
+ default: C(() => [d(b(p.error), 1)]),
261
+ _: 1
262
+ })) : p.warning ? (_(), s(n, {
263
+ key: 3,
264
+ variant: "warning",
265
+ class: "nb-select__message"
266
+ }, {
267
+ default: C(() => [d(b(p.warning), 1)]),
268
+ _: 1
269
+ })) : p.helper ? (_(), s(n, {
270
+ key: 4,
271
+ variant: "helper",
272
+ class: "nb-select__message"
273
+ }, {
274
+ default: C(() => [d(b(p.helper), 1)]),
275
+ _: 1
276
+ })) : c("", !0)
277
+ ], 64)) : p.variant === "fluid" ? (_(), l(i, { key: 1 }, [u("button", {
278
+ id: V.value,
279
+ ref_key: "triggerRef",
280
+ ref: R,
281
+ type: "button",
282
+ class: "nb-select__trigger",
283
+ role: "combobox",
284
+ "aria-expanded": P.value,
285
+ "aria-haspopup": "listbox",
286
+ "aria-disabled": p.disabled || void 0,
287
+ "aria-required": p.required || void 0,
288
+ disabled: p.disabled || void 0,
289
+ onClick: X,
290
+ onFocus: m[2] ||= (e) => F.value = !0,
291
+ onBlur: m[3] ||= (e) => F.value = !1
292
+ }, [p.label || o.$slots.label ? (_(), s(r, {
293
+ key: 0,
294
+ dir: "row",
295
+ align: "center",
296
+ gap: "xs",
297
+ class: "nb-select__inner-header"
298
+ }, {
299
+ default: C(() => [o.$slots.label ? y(o.$slots, "label", { key: 0 }) : (_(), l("label", ce, [d(b(p.label) + " ", 1), p.required ? (_(), l("span", le, "*")) : c("", !0)])), p.helper && !p.error && !p.warning ? (_(), s(n, {
300
+ key: 2,
301
+ variant: "helper",
302
+ "icon-only": !0,
303
+ class: "nb-select__inner-message"
304
+ }, {
305
+ default: C(() => [d(b(p.helper), 1)]),
306
+ _: 1
307
+ })) : c("", !0)]),
308
+ _: 3
309
+ })) : c("", !0), f(r, {
310
+ dir: "row",
311
+ align: "end",
312
+ flex: "",
313
+ class: "nb-select__value-row"
314
+ }, {
315
+ default: C(() => [u("span", { class: h(["nb-select__value", {
316
+ "nb-select__value--placeholder": !W.value,
317
+ "nb-select__value--with-icon": !!U.value
318
+ }]) }, [U.value ? (_(), s(e, {
319
+ key: 0,
320
+ class: "nb-select__value-icon",
321
+ name: U.value,
322
+ size: 16
323
+ }, null, 8, ["name"])) : c("", !0), W.value ? y(o.$slots, "value", {
324
+ key: 1,
325
+ values: H.value
326
+ }, () => [d(b(W.value), 1)]) : (_(), l(i, { key: 2 }, [d(b(p.placeholder), 1)], 64))], 2), f(r, {
327
+ align: "center",
328
+ justify: "center",
329
+ class: "nb-select__caret"
330
+ }, {
331
+ default: C(() => [f(e, {
332
+ name: P.value ? x(E) : x(T),
333
+ size: 16
334
+ }, null, 8, ["name"])]),
335
+ _: 1
336
+ })]),
337
+ _: 3
338
+ })], 40, se), p.error ? (_(), s(n, {
339
+ key: 0,
340
+ variant: "error",
341
+ class: "nb-select__fluid-message"
342
+ }, {
343
+ default: C(() => [d(b(p.error), 1)]),
344
+ _: 1
345
+ })) : p.warning ? (_(), s(n, {
346
+ key: 1,
347
+ variant: "warning",
348
+ class: "nb-select__fluid-message"
349
+ }, {
350
+ default: C(() => [d(b(p.warning), 1)]),
351
+ _: 1
352
+ })) : c("", !0)], 64)) : c("", !0)], 34), (_(), s(a, { to: "body" }, [P.value ? (_(), l("div", {
353
+ key: 0,
354
+ ref_key: "dropdownRef",
355
+ ref: z,
356
+ class: "nb-select__dropdown",
357
+ style: g(B.value),
358
+ role: "listbox",
359
+ "aria-multiselectable": p.multiple || void 0
360
+ }, [
361
+ (_(!0), l(i, null, te(p.options, (t, n) => (_(), l("div", {
362
+ key: t.value,
363
+ class: h(["nb-select__option", {
364
+ "nb-select__option--selected": G(t.value),
365
+ "nb-select__option--highlighted": I.value === n,
366
+ "nb-select__option--disabled": t.disabled
367
+ }]),
368
+ role: "option",
369
+ "aria-selected": G(t.value),
370
+ "aria-disabled": t.disabled || void 0,
371
+ onMouseenter: (e) => I.value = n,
372
+ onClick: (e) => K(t)
373
+ }, [
374
+ p.multiple ? (_(), l("span", fe, [G(t.value) ? (_(), l("svg", pe, [...m[7] ||= [u("path", {
375
+ d: "M1 4l3 3 5-6",
376
+ stroke: "currentColor",
377
+ "stroke-width": "1.5",
378
+ "stroke-linecap": "round",
379
+ "stroke-linejoin": "round"
380
+ }, null, -1)]])) : c("", !0)])) : c("", !0),
381
+ t.icon ? (_(), s(e, {
382
+ key: 1,
383
+ class: "nb-select__option-icon",
384
+ name: t.icon,
385
+ size: 16
386
+ }, null, 8, ["name"])) : c("", !0),
387
+ u("span", me, [y(o.$slots, "option", { option: t }, () => [d(b(t.label), 1)])])
388
+ ], 42, de))), 128)),
389
+ !p.options || p.options.length === 0 ? (_(), l("div", D, " No options ")) : c("", !0),
390
+ p.creatable ? (_(), l("div", {
391
+ key: 1,
392
+ class: "nb-select__create",
393
+ onMousedown: m[6] ||= w(() => {}, ["prevent"])
394
+ }, [ie(u("input", {
395
+ "onUpdate:modelValue": m[4] ||= (e) => N.value = e,
396
+ type: "text",
397
+ class: "nb-select__create-input",
398
+ placeholder: p.createPlaceholder || "Add new…",
399
+ onKeydown: [ae(w(he, ["prevent"]), ["enter"]), m[5] ||= w(() => {}, ["stop"])]
400
+ }, null, 40, O), [[ne, N.value]])], 32)) : c("", !0)
401
+ ], 12, ue)) : c("", !0)]))], 64));
402
+ }
403
+ });
404
+ //#endregion
405
+ export { k as t };
@@ -1 +1 @@
1
- require(`./chunk-D-qHiVGv.cjs`);const e=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),t=require(`./TreeContext-BH2qpPud.cjs`);let n=require(`vue`);var r=(0,n.defineComponent)({__name:`Tree`,props:{modelValue:{default:null},compact:{type:Boolean,default:!1},size:{default:`md`},draggable:{type:Boolean,default:!1}},emits:[`update:modelValue`,`select`,`toggle`,`drop`],setup(e,{expose:r,emit:i}){let a=e,o=i,s=(0,n.reactive)(new Set),c=(0,n.ref)(),l=(0,n.reactive)({dragId:null,dropTargetId:null,dropPosition:null});function u(e){o(`update:modelValue`,e),o(`select`,e)}function d(e){s.has(e)?(s.delete(e),o(`toggle`,e,!1)):(s.add(e),o(`toggle`,e,!0))}function f(e,t){}function p(e){}function m(e){l.dragId=e}function h(e,t){e!==l.dragId&&(l.dropTargetId=e,l.dropPosition=t)}function g(e){l.dropTargetId===e&&(l.dropTargetId=null,l.dropPosition=null)}function _(){l.dragId&&l.dropTargetId&&l.dropPosition&&o(`drop`,{sourceId:l.dragId,targetId:l.dropTargetId,position:l.dropPosition}),y()}function v(){y()}function y(){l.dragId=null,l.dropTargetId=null,l.dropPosition=null}function b(e){for(let t of e)s.add(t)}function x(){s.clear()}(0,n.provide)(t.n,(0,n.reactive)({get selectedId(){return a.modelValue??null},select:u,toggle:d,expandedIds:s,get compact(){return a.compact||a.size===`sm`},get draggable(){return a.draggable},drag:l,onDragStart:m,onDragOver:h,onDragLeave:g,onDrop:_,onDragEnd:v,registerNode:f,unregisterNode:p}));function S(){return c.value?Array.from(c.value.querySelectorAll(`[role="treeitem"]`)):[]}function C(e){let t=S();if(t.length===0)return;let n=document.activeElement,r=t.indexOf(n);switch(e.key){case`ArrowDown`:e.preventDefault(),r<t.length-1?t[r+1].focus():r===-1&&t[0].focus();break;case`ArrowUp`:e.preventDefault(),r>0&&t[r-1].focus();break;case`Home`:e.preventDefault(),t[0]?.focus();break;case`End`:e.preventDefault(),t[t.length-1]?.focus();break}}return r({expandIds:b,collapseAll:x}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`ul`,{ref_key:`treeRef`,ref:c,role:`tree`,class:(0,n.normalizeClass)([`nb-tree`,{"nb-tree--compact":e.compact||e.size===`sm`}]),onKeydown:C},[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)],34))}}),i=e.t(r,[[`__scopeId`,`data-v-f91fb593`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
1
+ require(`./chunk-D-qHiVGv.cjs`);const e=require(`./_plugin-vue_export-helper-tagjRzOz.cjs`),t=require(`./TreeContext-51-0WkVM.cjs`);let n=require(`vue`);var r=(0,n.defineComponent)({__name:`Tree`,props:{modelValue:{default:null},compact:{type:Boolean,default:!1},size:{default:`md`},draggable:{type:Boolean,default:!1}},emits:[`update:modelValue`,`select`,`toggle`,`drop`],setup(e,{expose:r,emit:i}){let a=e,o=i,s=(0,n.reactive)(new Set),c=(0,n.ref)(),l=(0,n.reactive)({dragId:null,dropTargetId:null,dropPosition:null});function u(e){o(`update:modelValue`,e),o(`select`,e)}function d(e){s.has(e)?(s.delete(e),o(`toggle`,e,!1)):(s.add(e),o(`toggle`,e,!0))}function f(e,t){}function p(e){}function m(e){l.dragId=e}function h(e,t){e!==l.dragId&&(l.dropTargetId=e,l.dropPosition=t)}function g(e){l.dropTargetId===e&&(l.dropTargetId=null,l.dropPosition=null)}function _(){l.dragId&&l.dropTargetId&&l.dropPosition&&o(`drop`,{sourceId:l.dragId,targetId:l.dropTargetId,position:l.dropPosition}),y()}function v(){y()}function y(){l.dragId=null,l.dropTargetId=null,l.dropPosition=null}function b(e){for(let t of e)s.add(t)}function x(){s.clear()}(0,n.provide)(t.r,(0,n.reactive)({get selectedId(){return a.modelValue??null},select:u,toggle:d,expandedIds:s,get compact(){return a.compact||a.size===`sm`},get draggable(){return a.draggable},drag:l,onDragStart:m,onDragOver:h,onDragLeave:g,onDrop:_,onDragEnd:v,registerNode:f,unregisterNode:p}));function S(){return c.value?Array.from(c.value.querySelectorAll(`[role="treeitem"]`)):[]}function C(e){let t=S();if(t.length===0)return;let n=document.activeElement,r=t.indexOf(n);switch(e.key){case`ArrowDown`:e.preventDefault(),r<t.length-1?t[r+1].focus():r===-1&&t[0].focus();break;case`ArrowUp`:e.preventDefault(),r>0&&t[r-1].focus();break;case`Home`:e.preventDefault(),t[0]?.focus();break;case`End`:e.preventDefault(),t[t.length-1]?.focus();break}}return r({expandIds:b,collapseAll:x}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`ul`,{ref_key:`treeRef`,ref:c,role:`tree`,class:(0,n.normalizeClass)([`nb-tree`,{"nb-tree--compact":e.compact||e.size===`sm`}]),onKeydown:C},[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)],34))}}),i=e.t(r,[[`__scopeId`,`data-v-f91fb593`]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return i}});
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./_plugin-vue_export-helper-O4QQSku4.js";
2
- import { n as t } from "./TreeContext-DMADOfuO.js";
2
+ import { r as t } from "./TreeContext-C77g-WGF.js";
3
3
  import { createElementBlock as n, defineComponent as r, normalizeClass as i, openBlock as a, provide as o, reactive as s, ref as c, renderSlot as l } from "vue";
4
4
  //#endregion
5
5
  //#region src/components/Tree.vue
@@ -0,0 +1 @@
1
+ var e=Symbol(`nb-tree`),t=Symbol(`nb-tree-depth`),n=Symbol(`nb-tree-ancestors`);Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
@@ -0,0 +1,4 @@
1
+ //#region src/components/TreeContext.ts
2
+ var e = Symbol("nb-tree"), t = Symbol("nb-tree-depth"), n = Symbol("nb-tree-ancestors");
3
+ //#endregion
4
+ export { t as n, e as r, n as t };