@shtabapp/ui-kit 1.57.0 → 1.59.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 (85) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/SButtonGroup-BOZQSxWY.js +90 -0
  3. package/dist/SButtonGroup-Cnuo4SzC.cjs +1 -0
  4. package/dist/SChip-BL47yJ-i.cjs +1 -0
  5. package/dist/SChip-XCYvlpaS.js +102 -0
  6. package/dist/{SColorPicker-Cucd749L.cjs → SColorPicker-BFw8CCDr.cjs} +1 -1
  7. package/dist/{SColorPicker-PI3xoFtS.js → SColorPicker-CTl7cSAO.js} +2 -2
  8. package/dist/SDropdown-LNVnMol3.cjs +1 -0
  9. package/dist/SDropdown-LOTCtlCX.js +356 -0
  10. package/dist/SInput-CRAegYKS.cjs +1 -0
  11. package/dist/SInput-Csy2uch7.js +224 -0
  12. package/dist/{SSelect-8RPurgr-.js → SSelect-fLtErA7p.js} +2 -2
  13. package/dist/{SSelect-BVs3lWQ9.cjs → SSelect-mFCdoFuO.cjs} +1 -1
  14. package/dist/STextarea-BDyy7Ku5.js +269 -0
  15. package/dist/STextarea-C4qDIp2k.cjs +1 -0
  16. package/dist/components/SButtonGroup/SButtonGroup.vue.d.ts.map +1 -1
  17. package/dist/components/SButtonGroup/utils/context.d.ts.map +1 -1
  18. package/dist/components/SChip/SChip.types.d.ts +4 -0
  19. package/dist/components/SChip/SChip.types.d.ts.map +1 -1
  20. package/dist/components/SChip/SChip.vue.d.ts +6 -2
  21. package/dist/components/SChip/SChip.vue.d.ts.map +1 -1
  22. package/dist/components/SDropdown/SDropdown.types.d.ts +12 -0
  23. package/dist/components/SDropdown/SDropdown.types.d.ts.map +1 -1
  24. package/dist/components/SDropdown/SDropdown.vue.d.ts +23 -2
  25. package/dist/components/SDropdown/SDropdown.vue.d.ts.map +1 -1
  26. package/dist/components/SDropdown/index.d.ts +1 -1
  27. package/dist/components/SDropdown/index.d.ts.map +1 -1
  28. package/dist/components/SDropdown/parts/SDropdownSheet.types.d.ts +13 -0
  29. package/dist/components/SDropdown/parts/SDropdownSheet.types.d.ts.map +1 -0
  30. package/dist/components/SDropdown/parts/SDropdownSheet.vue.d.ts +23 -0
  31. package/dist/components/SDropdown/parts/SDropdownSheet.vue.d.ts.map +1 -0
  32. package/dist/components/SDropdown/utils/useDropdownSheetMode.d.ts +7 -0
  33. package/dist/components/SDropdown/utils/useDropdownSheetMode.d.ts.map +1 -0
  34. package/dist/components/SDropdown/utils/useSheetDrag.d.ts +18 -0
  35. package/dist/components/SDropdown/utils/useSheetDrag.d.ts.map +1 -0
  36. package/dist/components/SInlineGroup/SInlineGroup.types.d.ts +11 -0
  37. package/dist/components/SInlineGroup/SInlineGroup.types.d.ts.map +1 -0
  38. package/dist/components/SInlineGroup/SInlineGroup.vue.d.ts +14 -0
  39. package/dist/components/SInlineGroup/SInlineGroup.vue.d.ts.map +1 -0
  40. package/dist/components/SInlineGroup/index.d.ts +4 -0
  41. package/dist/components/SInlineGroup/index.d.ts.map +1 -0
  42. package/dist/components/SInput/SInput.types.d.ts +5 -1
  43. package/dist/components/SInput/SInput.types.d.ts.map +1 -1
  44. package/dist/components/SInput/SInput.vue.d.ts.map +1 -1
  45. package/dist/components/STextarea/STextarea.vue.d.ts.map +1 -1
  46. package/dist/composables/useFieldAttrs.d.ts +22 -0
  47. package/dist/composables/useFieldAttrs.d.ts.map +1 -0
  48. package/dist/composables/useFieldFilled.d.ts +19 -0
  49. package/dist/composables/useFieldFilled.d.ts.map +1 -0
  50. package/dist/entries/button-group.cjs +1 -1
  51. package/dist/entries/button-group.js +1 -1
  52. package/dist/entries/chip.cjs +1 -1
  53. package/dist/entries/chip.js +1 -1
  54. package/dist/entries/color-picker.cjs +1 -1
  55. package/dist/entries/color-picker.js +1 -1
  56. package/dist/entries/dropdown.cjs +1 -1
  57. package/dist/entries/dropdown.d.ts +2 -2
  58. package/dist/entries/dropdown.d.ts.map +1 -1
  59. package/dist/entries/dropdown.js +2 -2
  60. package/dist/entries/input.cjs +1 -1
  61. package/dist/entries/input.js +1 -1
  62. package/dist/entries/select.cjs +1 -1
  63. package/dist/entries/select.js +1 -1
  64. package/dist/entries/textarea.cjs +1 -1
  65. package/dist/entries/textarea.js +1 -1
  66. package/dist/index.cjs +1 -1
  67. package/dist/index.d.ts +4 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +137 -137
  70. package/dist/uikit-components.css +1 -1
  71. package/dist/useFieldMessages-2TaArixP.cjs +1 -0
  72. package/dist/useFieldMessages-C-GXaf_q.js +43 -0
  73. package/package.json +2 -2
  74. package/dist/SButtonGroup-BPy2YaEP.cjs +0 -1
  75. package/dist/SButtonGroup-CmSlYnSv.js +0 -72
  76. package/dist/SChip-DRz5BA4Z.cjs +0 -1
  77. package/dist/SChip-DvPazz7Y.js +0 -67
  78. package/dist/SDropdown-CTQ5Qlez.js +0 -175
  79. package/dist/SDropdown-_QUOP-rw.cjs +0 -1
  80. package/dist/SInput-C-_R5pug.js +0 -204
  81. package/dist/SInput-Cw8pt9Sr.cjs +0 -1
  82. package/dist/STextarea-CFOemAYa.js +0 -264
  83. package/dist/STextarea-Dg-Dy3ZT.cjs +0 -1
  84. package/dist/useFieldMessages-Cb06My1W.js +0 -30
  85. package/dist/useFieldMessages-CzjU0ajM.cjs +0 -1
@@ -1 +1 @@
1
- const e=require("./SButton.types-UKroD-ev.cjs"),t=require("./SButton-C-z_q5CG.cjs"),n=require("./useSelectionGroup-TaektE-I.cjs"),r=require("./SDropdown-_QUOP-rw.cjs"),i=require("./SInput-Cw8pt9Sr.cjs"),a=require("./SList-D9SztBPD.cjs"),o=require("./SListItem-3IpjaE9h.cjs");let s=require("vue"),c=require("@shtabapp/ui-kit-primitives");var l={key:0,class:`s-ui-dropdown-menu__header`},u={key:1,class:`s-ui-dropdown-menu__footer`},d=(0,s.defineComponent)({__name:`SDropdownMenu`,props:{width:{},maxHeight:{},accent:{type:Boolean,default:!1}},setup(e){let t=(0,s.useSlots)(),n=e=>typeof e==`number`?`${e}px`:e,r=(0,s.computed)(()=>({"s-ui-dropdown-menu--accent":e.accent,"s-ui-dropdown-menu--bounded":!!e.maxHeight})),i=(0,s.computed)(()=>({"s-ui-dropdown-menu__body--scrollable":!!e.maxHeight})),a=(0,s.computed)(()=>({"--s-ui-dropdown-menu-width":n(e.width),"--s-ui-dropdown-menu-max-height":n(e.maxHeight)}));return(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)([`s-ui-dropdown-menu`,r.value]),style:(0,s.normalizeStyle)(a.value)},[(0,s.unref)(t).header?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,l,[(0,s.renderSlot)(e.$slots,`header`)])):(0,s.createCommentVNode)(``,!0),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)([`s-ui-dropdown-menu__body`,i.value])},[(0,s.renderSlot)(e.$slots,`default`)],2),(0,s.unref)(t).footer?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,u,[(0,s.renderSlot)(e.$slots,`footer`)])):(0,s.createCommentVNode)(``,!0)],6))}}),f=({listItemScope:e,itemTitle:t,itemSubtitle:n,itemDisabled:r,itemIconLeft:i,listActiveKey:o,isOptionSelected:s})=>{let c=e.item;return{rowKey:e.key,title:a.i(c,t),subtitle:a.i(c,n),disabled:a.n(c,r),iconLeft:a.r(c,i),selected:s,active:o===e.key,revealRight:e.revealRight,tiny:!0}},p=e=>typeof e==`string`||typeof e==`number`,m=(e,t)=>{let n=e[t];if(p(n))return n},h=e=>typeof e==`string`?e:String(e),g=e=>e==null?!1:typeof e==`string`?e.length>0:!0,_=(e,t,n)=>t.find(t=>h(m(t,n)??``)===e),v=e=>typeof e==`object`&&!!e,y=(e,t,n)=>{let r=_(e,t,n);if(r)return m(r,n)},b=function(e){return e.INPUT=`input`,e.CONTENT=`content`,e}({}),x=(e,t,n)=>{if(!e)return!0;let r=e.toLocaleLowerCase(),i=a.i(t,n.itemTitle)?.toLocaleLowerCase()??``,o=h(m(t,n.itemValue)??``).toLocaleLowerCase();return i.includes(r)||o.includes(r)},S=(e,t,n,r)=>{let i=r??((e,t)=>x(e,t,n));return t?e.filter(e=>i(t,e)):[...e]},C=e=>typeof e==`string`&&g(e),w=e=>typeof e==`number`&&g(e),T=(e,t,n)=>{if(t){if(!v(e))return;let t=m(e,n);return C(t)||w(t)?t:void 0}let r=typeof e==`string`||typeof e==`number`?e:void 0;if(C(r)||w(r))return r},E=(e,t,n)=>e?(Array.isArray(e)?e:[e]).flatMap(e=>{let r=T(e,t,n);return g(r)?[r]:[]}):[],D=(e,t)=>{if(C(t)){e.value=t;return}if(w(t)){e.value=t;return}e.value=void 0},O=(e,t,n)=>t.flatMap(t=>{let r=h(t),i=e.find(e=>h(m(e,n)??``)===r);return i?[i]:[]}),k=({modelValue:e,options:t,itemFields:r,multiple:i,returnObject:o,searchable:c,filterOption:l,isDropdownOpen:u,searchQuery:d})=>{let f=(0,s.computed)(()=>(0,s.toValue)(i)),p=(0,s.computed)(()=>(0,s.toValue)(o)),v=(0,s.computed)(()=>(0,s.toValue)(c)===b.INPUT),x=(0,s.computed)(()=>(0,s.toValue)(c)===b.CONTENT),C=(0,s.computed)(()=>!!(0,s.toValue)(c)),w=(0,s.computed)(()=>{let t=(0,s.toValue)(r);return E(e.value,p.value,t.itemValue)}),T=(0,s.computed)(()=>{let e=(0,s.toValue)(t),n=(0,s.toValue)(r);return S(e,C.value?d.value:``,n,(0,s.toValue)(l))}),k=(0,s.computed)(()=>f.value?n.n.MULTIPLE:n.n.SINGLE),A=(t,n,r)=>{if(p.value){e.value=O(n,t,r);return}e.value=t},ee=(t,n,r)=>{if(!t){e.value=void 0;return}if(p.value){e.value=_(t,n,r)??void 0;return}D(e,y(t,n,r))},te=(0,s.computed)({get:()=>{if(f.value)return w.value.map(e=>h(e));let e=w.value[0];if(g(e))return h(e)},set:e=>{let n=(0,s.toValue)(t),i=(0,s.toValue)(r);if(f.value){A((Array.isArray(e)?e:[]).map(e=>y(e,n,i.itemValue)).filter(e=>g(e)),n,i.itemValue);return}ee(typeof e==`string`?e:void 0,n,i.itemValue)}}),ne=(0,s.computed)(()=>w.value.length>0),j=(e,t,n)=>{let r=h(t);return e.find(e=>h(m(e,n)??``)===r)},M=(0,s.computed)(()=>{let e=w.value[0];if(!g(e))return``;let n=(0,s.toValue)(r),i=j((0,s.toValue)(t),e,n.itemValue);return i?a.i(i,n.itemTitle)??``:h(e)}),N=(0,s.computed)(()=>{let e=(0,s.toValue)(t),n=(0,s.toValue)(r);return w.value.map(t=>{let r=j(e,t,n.itemValue);return r?a.i(r,n.itemTitle)??``:h(t)})}),re=(0,s.computed)(()=>N.value.join(`, `)),ie=(0,s.computed)(()=>f.value?w.value.length===0:!M.value),ae=(0,s.computed)(()=>v.value&&(u.value||f.value)),P=()=>{d.value=``};return(0,s.watch)(u,e=>{e||P()}),(0,s.watch)(()=>(0,s.toValue)(c),()=>{P()}),{searchQuery:d,selectedValues:w,filteredOptions:T,listSelectionMode:k,listSelectedModel:te,hasSelectedValues:ne,singleDisplayLabel:M,multipleDisplayLabels:N,multipleDisplayText:re,showPlaceholder:ie,showInputSearchField:ae,isSearchableMode:C,isSearchableInputMode:v,isSearchableContentMode:x,isMultipleMode:f,isReturnObjectMode:p,clearSelection:()=>{e.value=void 0,P()},removeSelectedValue:e=>{let n=h(e);A(w.value.filter(e=>h(e)!==n),(0,s.toValue)(t),(0,s.toValue)(r).itemValue)},resetSearchQuery:P,formatSelectListKey:h,resolveValueFromListKey:e=>y(e,(0,s.toValue)(t),(0,s.toValue)(r).itemValue)}},A={key:1,class:`s-ui-select__empty s-ui-typography-body-14-regular`},ee=[`id`,`aria-expanded`,`aria-controls`,`aria-disabled`,`aria-readonly`,`aria-autocomplete`,`tabindex`],te={key:0,class:`s-ui-select__value`},ne={key:1,class:`s-ui-select__placeholder`},j={key:1,class:`s-ui-select__placeholder`},M={key:2,class:`s-ui-select__value`},N={key:3,class:`s-ui-select__value-suffix`},re=[`name`,`placeholder`,`disabled`,`readonly`],ie=20,ae=`100%`,P=20,F=(0,s.defineComponent)({__name:`SSelect`,props:(0,s.mergeModels)({options:{},itemValue:{default:`value`},itemTitle:{default:`label`},itemSubtitle:{default:`subtitle`},itemId:{},itemDisabled:{default:`disabled`},itemIconLeft:{default:`iconLeft`},multiple:{type:Boolean,default:!1},returnObject:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},closableOptions:{type:Boolean,default:!1},searchable:{type:[String,Boolean],default:!1},closeOnSelect:{type:Boolean,default:!0},listHeight:{default:320},searchPlaceholder:{default:`Search`},filterOption:{type:Function},fitViewport:{type:Boolean,default:!0},panelWidth:{},surfaceClass:{},canLoadMore:{type:Function},endReachedDistance:{default:0},label:{},labelProps:{},placeholder:{},helpMessages:{},errorMessages:{},bordered:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},iconLeft:{},customize:{default:()=>i.n.NONE},name:{},id:{}},{modelValue:{},modelModifiers:{},searchQuery:{default:``},searchQueryModifiers:{}}),emits:(0,s.mergeModels)([`clear`,`focus`,`blur`,`open`,`close`,`endReached`],[`update:modelValue`,`update:searchQuery`]),setup(n,{expose:l,emit:u}){let p=(0,s.useModel)(n,`modelValue`),m=(0,s.useModel)(n,`searchQuery`),h=u,{t:_}=(0,c.useUiKitI18n)(),v=(0,s.useSlots)(),y=(0,s.useId)(),b=(0,s.useId)(),x=(0,s.useTemplateRef)(`triggerInputRef`),S=(0,s.ref)(``),C=(0,s.useTemplateRef)(`searchInputElementRef`),w=(0,s.useTemplateRef)(`panelSearchInputElementRef`),T=(0,s.useTemplateRef)(`listElementRef`),E=(0,s.ref)(),D=(0,s.ref)(!1),O=(0,s.ref)(!1),F=(0,s.computed)(()=>n.panelWidth===void 0),oe=(0,s.computed)(()=>n.panelWidth??ae),I=(0,s.computed)(()=>n.itemId??n.itemValue),se=(0,s.computed)(()=>({itemValue:n.itemValue,itemTitle:n.itemTitle,itemSubtitle:n.itemSubtitle,itemId:I.value})),{selectedValues:L,filteredOptions:R,listSelectionMode:ce,listSelectedModel:z,hasSelectedValues:B,singleDisplayLabel:le,multipleDisplayLabels:ue,multipleDisplayText:V,showPlaceholder:H,showInputSearchField:U,isSearchableMode:de,isSearchableInputMode:W,isSearchableContentMode:G,isMultipleMode:K,clearSelection:fe,removeSelectedValue:q,resolveValueFromListKey:pe,formatSelectListKey:J}=k({modelValue:p,options:()=>n.options,itemFields:()=>se.value,multiple:()=>n.multiple,returnObject:()=>n.returnObject,searchable:()=>n.searchable,filterOption:()=>n.filterOption,isDropdownOpen:D,searchQuery:m}),me=(0,s.computed)(()=>({disabled:n.disabled,displayLabel:le.value})),Y=(0,s.computed)(()=>R.value.length>P),he=(0,s.computed)(()=>G.value||Y.value?n.listHeight:`auto`),ge=(0,s.computed)(()=>{if(!(G.value||Y.value))return n.listHeight}),_e=(0,s.computed)(()=>L.value.map(e=>J(e))),ve=e=>_e.value.includes(e),ye=()=>({tiny:!0}),be=e=>f({listItemScope:e,itemTitle:n.itemTitle,itemSubtitle:n.itemSubtitle,itemDisabled:n.itemDisabled,itemIconLeft:n.itemIconLeft,listActiveKey:E.value,isOptionSelected:ve(e.key)}),xe=e=>{let t=pe(e);if(g(t)){if(K.value){q(t);return}p.value=void 0}},Se=(0,s.computed)(()=>n.id??y),Ce=(0,s.computed)(()=>b),we=(0,s.computed)(()=>x.value?.fieldElementRef??null),Te=(0,s.computed)(()=>({labels:ue.value,values:L.value,displayText:V.value,disabled:n.disabled||n.readonly,removeValue:q})),Ee=(0,s.computed)(()=>{if(!n.disabled&&(n.readonly&&!W.value||!W.value))return 0}),De=(0,s.computed)(()=>({"s-ui-select--disabled":n.disabled,"s-ui-select--readonly":n.readonly,"s-ui-select--multiple":K.value,"s-ui-select--open":D.value})),Oe=()=>{if(G.value){w.value?.focus();return}C.value?.focus()},ke=async()=>{await(0,s.nextTick)(),w.value?.focus()},Ae=async()=>{await(0,s.nextTick)(),await T.value?.focusNavigation()},X=async()=>{if(!(n.disabled||n.readonly)&&!D.value){if(D.value=!0,h(`open`),G.value){await ke();return}if(W.value){await(0,s.nextTick)(),C.value?.focus();return}await Ae()}},je=async()=>{n.disabled||n.readonly||D.value||await X()};(0,s.watch)(m,async e=>{W.value&&(n.disabled||n.readonly||e&&(D.value||await X()))});let Z=()=>{D.value&&(D.value=!1,E.value=void 0,h(`close`))},Q=()=>{!n.closeOnSelect||K.value||Z()};(0,s.watch)(p,(e,t)=>{!n.closeOnSelect||K.value||!D.value||!e||e===t||Z()});let Me=e=>{D.value&&e.target instanceof Element&&e.target.closest(`.s-ui-list-item`)&&Q()},Ne=async e=>{e.key!==`Enter`&&e.key!==` `&&e.key!==`Spacebar`||D.value&&(await(0,s.nextTick)(),Q())},$=async()=>{if(D.value){Z();return}await X()},Pe=async e=>{if(!(n.disabled||n.readonly)&&e.target instanceof HTMLElement){if(e.target.closest(`.s-ui-select__search-input`)){D.value||await X();return}await $()}},Fe=async e=>e.key!==`ArrowDown`&&e.key!==`ArrowUp`?!1:(e.preventDefault(),e.stopPropagation(),D.value||await X(),await Ae(),await T.value?.handleKeyboardNavigation(e),!0),Ie=e=>{let t=pe(e);if(t){if(K.value){L.value.some(t=>J(t)===e)?q(t):z.value=[...L.value.map(e=>J(e)),e];return}z.value=e,Q()}},Le=async e=>{if(!(n.disabled||n.readonly)&&!await Fe(e)){if(e.key===`Escape`){e.preventDefault(),Z();return}if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),D.value&&E.value){Ie(E.value);return}await $()}}},Re=async e=>{if(e.key===`Escape`){e.preventDefault(),Z();return}await Fe(e)},ze=Re,Be=e=>{n.disabled||(O.value||h(`focus`,e),O.value=!0)},Ve=e=>{if(!(e.currentTarget instanceof HTMLElement))return;let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||(O.value=!1,h(`blur`,e))},He=()=>{fe(),h(`clear`)},Ue=e=>{h(`endReached`,e)};return l({open:X,close:Z,toggle:$,focusSearchInput:Oe}),(l,u)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)([`s-ui-select`,De.value])},[(0,s.createVNode)((0,s.unref)(r.t),{modelValue:D.value,"onUpdate:modelValue":u[4]||=e=>D.value=e,reference:we.value,disabled:n.disabled,"match-reference-width":F.value,"fit-viewport":n.fitViewport,"surface-class":n.surfaceClass,"content-id":Ce.value,"dismiss-on-click-outside":!0,"dismiss-on-escape":!0},{content:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(d),{class:`s-ui-select__menu`,width:oe.value},(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:`s-ui-select__menu-body`,onClick:Me,onKeydown:Ne},[(0,s.unref)(R).length>0?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(a.t),{key:0,ref_key:`listElementRef`,ref:T,modelValue:E.value,"onUpdate:modelValue":u[2]||=e=>E.value=e,selected:(0,s.unref)(z),"onUpdate:selected":u[3]||=e=>(0,s.isRef)(z)?z.value=e:null,items:(0,s.unref)(R),"item-key":I.value,"title-key":n.itemTitle,"subtitle-key":n.itemSubtitle,"icon-left-key":n.itemIconLeft,"disabled-key":n.itemDisabled,"selection-mode":(0,s.unref)(ce),mandatory:!n.multiple,height:he.value,"max-height":ge.value,virtual:Y.value,"item-props":ye,"selected-on-top":(0,s.unref)(K),"can-load-more":n.canLoadMore,"end-reached-distance":n.endReachedDistance,onEndReached:Ue},(0,s.createSlots)({_:2},[(0,s.unref)(v).option||(0,s.unref)(v)[`option-icon`]||n.closableOptions||(0,s.unref)(K)?{name:`item`,fn:(0,s.withCtx)(r=>[(0,s.unref)(v).option?(0,s.renderSlot)(l.$slots,`option`,(0,s.normalizeProps)((0,s.mergeProps)({key:0},r))):n.closableOptions?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.t),(0,s.normalizeProps)((0,s.mergeProps)({key:1},be(r))),(0,s.createSlots)({_:2},[(0,s.unref)(v)[`option-icon`]?{name:`icon-left`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`option-icon`,(0,s.normalizeProps)((0,s.guardReactiveProps)(r)))]),key:`0`}:void 0,ve(r.key)?{name:`right`,fn:(0,s.withCtx)(n=>[(0,s.createVNode)((0,s.unref)(t.t),{appearance:(0,s.unref)(e.t).BARE,variant:(0,s.unref)(e.r).NEUTRAL,size:(0,s.unref)(e.n).SMALL,icon:`closeMini`,"aria-label":(0,s.unref)(_)(`select.removeOption`),disabled:n.disabled||n.readonly,tabindex:-1,onClick:(0,s.withModifiers)(e=>xe(r.key),[`stop`])},null,8,[`appearance`,`variant`,`size`,`aria-label`,`disabled`,`onClick`])]),key:`1`}:void 0]),1040)):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.t),(0,s.normalizeProps)((0,s.mergeProps)({key:2},be(r))),(0,s.createSlots)({_:2},[(0,s.unref)(v)[`option-icon`]?{name:`icon-left`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`option-icon`,(0,s.normalizeProps)((0,s.guardReactiveProps)(r)))]),key:`0`}:void 0]),1040))]),key:`0`}:void 0]),1032,[`modelValue`,`selected`,`items`,`item-key`,`title-key`,`subtitle-key`,`icon-left-key`,`disabled-key`,`selection-mode`,`mandatory`,`height`,`max-height`,`virtual`,`selected-on-top`,`can-load-more`,`end-reached-distance`])):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,A,[(0,s.renderSlot)(l.$slots,`empty`,{},()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(_)(`select.noOptions`)),1)])]))],32)]),_:2},[(0,s.unref)(G)||(0,s.unref)(v)[`panel-header`]?{name:`header`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`panel-header`),(0,s.unref)(G)?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(i.t),{key:0,ref_key:`panelSearchInputElementRef`,ref:w,modelValue:m.value,"onUpdate:modelValue":u[0]||=e=>m.value=e,placeholder:n.searchPlaceholder,disabled:n.disabled,clearable:!1,"icon-left":`search`,onClick:u[1]||=(0,s.withModifiers)(()=>{},[`stop`]),onKeydown:(0,s.unref)(ze)},null,8,[`modelValue`,`placeholder`,`disabled`,`onKeydown`])):(0,s.createCommentVNode)(``,!0)]),key:`0`}:void 0,(0,s.unref)(v)[`panel-footer`]?{name:`footer`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`panel-footer`)]),key:`1`}:void 0]),1032,[`width`])]),_:3},8,[`modelValue`,`reference`,`disabled`,`match-reference-width`,`fit-viewport`,`surface-class`,`content-id`]),(0,s.createVNode)((0,s.unref)(i.t),{ref_key:`triggerInputRef`,ref:x,modelValue:S.value,"onUpdate:modelValue":u[7]||=e=>S.value=e,label:n.label,"label-props":n.labelProps,placeholder:n.placeholder,"help-messages":n.helpMessages,"error-messages":n.errorMessages,bordered:n.bordered,disabled:n.disabled,readonly:n.readonly,clearable:n.clearable,"has-value":(0,s.unref)(B),focused:O.value||D.value,"icon-left":n.iconLeft,customize:n.customize,name:n.name,id:Se.value,onClear:He,onFocus:Be,onBlur:Ve},(0,s.createSlots)({control:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{id:Se.value,class:(0,s.normalizeClass)([`s-ui-select__control s-ui-typography-body-14-regular`,{"s-ui-select__control--multiple":(0,s.unref)(K),"s-ui-select__control--empty":(0,s.unref)(K)&&!(0,s.unref)(B)&&!(0,s.unref)(U),"s-ui-select__control--with-value-suffix":(0,s.unref)(v)[`value-suffix`]&&!(0,s.unref)(K)&&!(0,s.unref)(U)&&!(0,s.unref)(H)}]),role:`combobox`,"aria-expanded":D.value,"aria-controls":Ce.value,"aria-haspopup":`listbox`,"aria-disabled":n.disabled?!0:void 0,"aria-readonly":n.readonly?!0:void 0,"aria-autocomplete":(0,s.unref)(de)?`list`:void 0,tabindex:Ee.value,onClick:Pe,onKeydown:Le},[(0,s.unref)(K)?(0,s.renderSlot)(l.$slots,`selection`,(0,s.normalizeProps)((0,s.mergeProps)({key:0},Te.value)),()=>[(0,s.unref)(V)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,te,(0,s.toDisplayString)((0,s.unref)(V)),1)):(0,s.unref)(H)&&!(0,s.unref)(U)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,ne,(0,s.toDisplayString)(n.placeholder),1)):(0,s.createCommentVNode)(``,!0)]):(0,s.unref)(H)&&!(0,s.unref)(U)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,j,(0,s.toDisplayString)(n.placeholder),1)):(0,s.unref)(U)?(0,s.createCommentVNode)(``,!0):((0,s.openBlock)(),(0,s.createElementBlock)(`span`,M,(0,s.toDisplayString)((0,s.unref)(le)),1)),(0,s.unref)(v)[`value-suffix`]&&!(0,s.unref)(K)&&!(0,s.unref)(U)&&!(0,s.unref)(H)?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,N,[(0,s.renderSlot)(l.$slots,`value-suffix`,(0,s.normalizeProps)((0,s.guardReactiveProps)(me.value)))])):(0,s.createCommentVNode)(``,!0),(0,s.unref)(U)?(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)(`input`,{key:4,ref_key:`searchInputElementRef`,ref:C,"onUpdate:modelValue":u[5]||=e=>m.value=e,class:`s-ui-select__search-input`,type:`text`,name:n.name,placeholder:n.placeholder,disabled:n.disabled,readonly:n.readonly,autocomplete:`off`,onClick:u[6]||=(0,s.withModifiers)(()=>{},[`stop`]),onFocus:je,onKeydown:Re},null,40,re)),[[s.vModelText,m.value]]):(0,s.createCommentVNode)(``,!0)],42,ee)]),action:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.SIcon),{name:`chevronMiniDown`,size:ie,class:`s-ui-select__chevron`})]),_:2},[(0,s.unref)(v).label?{name:`label`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`label`)]),key:`0`}:void 0,(0,s.unref)(v).prefix?{name:`prefix`,fn:(0,s.withCtx)(e=>[(0,s.renderSlot)(l.$slots,`prefix`,(0,s.normalizeProps)((0,s.guardReactiveProps)(e)))]),key:`1`}:void 0,(0,s.unref)(v).prepend?{name:`prepend`,fn:(0,s.withCtx)(e=>[(0,s.renderSlot)(l.$slots,`prepend`,(0,s.normalizeProps)((0,s.guardReactiveProps)(e)))]),key:`2`}:void 0,(0,s.unref)(v).message?{name:`message`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`message`)]),key:`3`}:void 0]),1032,[`modelValue`,`label`,`label-props`,`placeholder`,`help-messages`,`error-messages`,`bordered`,`disabled`,`readonly`,`clearable`,`has-value`,`focused`,`icon-left`,`customize`,`name`,`id`])],2))}});Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
1
+ const e=require("./SButton.types-UKroD-ev.cjs"),t=require("./SButton-C-z_q5CG.cjs"),n=require("./useSelectionGroup-TaektE-I.cjs"),r=require("./SDropdown-LNVnMol3.cjs"),i=require("./SInput-CRAegYKS.cjs"),a=require("./SList-D9SztBPD.cjs"),o=require("./SListItem-3IpjaE9h.cjs");let s=require("vue"),c=require("@shtabapp/ui-kit-primitives");var l={key:0,class:`s-ui-dropdown-menu__header`},u={key:1,class:`s-ui-dropdown-menu__footer`},d=(0,s.defineComponent)({__name:`SDropdownMenu`,props:{width:{},maxHeight:{},accent:{type:Boolean,default:!1}},setup(e){let t=(0,s.useSlots)(),n=e=>typeof e==`number`?`${e}px`:e,r=(0,s.computed)(()=>({"s-ui-dropdown-menu--accent":e.accent,"s-ui-dropdown-menu--bounded":!!e.maxHeight})),i=(0,s.computed)(()=>({"s-ui-dropdown-menu__body--scrollable":!!e.maxHeight})),a=(0,s.computed)(()=>({"--s-ui-dropdown-menu-width":n(e.width),"--s-ui-dropdown-menu-max-height":n(e.maxHeight)}));return(e,n)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)([`s-ui-dropdown-menu`,r.value]),style:(0,s.normalizeStyle)(a.value)},[(0,s.unref)(t).header?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,l,[(0,s.renderSlot)(e.$slots,`header`)])):(0,s.createCommentVNode)(``,!0),(0,s.createElementVNode)(`div`,{class:(0,s.normalizeClass)([`s-ui-dropdown-menu__body`,i.value])},[(0,s.renderSlot)(e.$slots,`default`)],2),(0,s.unref)(t).footer?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,u,[(0,s.renderSlot)(e.$slots,`footer`)])):(0,s.createCommentVNode)(``,!0)],6))}}),f=({listItemScope:e,itemTitle:t,itemSubtitle:n,itemDisabled:r,itemIconLeft:i,listActiveKey:o,isOptionSelected:s})=>{let c=e.item;return{rowKey:e.key,title:a.i(c,t),subtitle:a.i(c,n),disabled:a.n(c,r),iconLeft:a.r(c,i),selected:s,active:o===e.key,revealRight:e.revealRight,tiny:!0}},p=e=>typeof e==`string`||typeof e==`number`,m=(e,t)=>{let n=e[t];if(p(n))return n},h=e=>typeof e==`string`?e:String(e),g=e=>e==null?!1:typeof e==`string`?e.length>0:!0,_=(e,t,n)=>t.find(t=>h(m(t,n)??``)===e),v=e=>typeof e==`object`&&!!e,y=(e,t,n)=>{let r=_(e,t,n);if(r)return m(r,n)},b=function(e){return e.INPUT=`input`,e.CONTENT=`content`,e}({}),x=(e,t,n)=>{if(!e)return!0;let r=e.toLocaleLowerCase(),i=a.i(t,n.itemTitle)?.toLocaleLowerCase()??``,o=h(m(t,n.itemValue)??``).toLocaleLowerCase();return i.includes(r)||o.includes(r)},S=(e,t,n,r)=>{let i=r??((e,t)=>x(e,t,n));return t?e.filter(e=>i(t,e)):[...e]},C=e=>typeof e==`string`&&g(e),w=e=>typeof e==`number`&&g(e),T=(e,t,n)=>{if(t){if(!v(e))return;let t=m(e,n);return C(t)||w(t)?t:void 0}let r=typeof e==`string`||typeof e==`number`?e:void 0;if(C(r)||w(r))return r},E=(e,t,n)=>e?(Array.isArray(e)?e:[e]).flatMap(e=>{let r=T(e,t,n);return g(r)?[r]:[]}):[],D=(e,t)=>{if(C(t)){e.value=t;return}if(w(t)){e.value=t;return}e.value=void 0},O=(e,t,n)=>t.flatMap(t=>{let r=h(t),i=e.find(e=>h(m(e,n)??``)===r);return i?[i]:[]}),k=({modelValue:e,options:t,itemFields:r,multiple:i,returnObject:o,searchable:c,filterOption:l,isDropdownOpen:u,searchQuery:d})=>{let f=(0,s.computed)(()=>(0,s.toValue)(i)),p=(0,s.computed)(()=>(0,s.toValue)(o)),v=(0,s.computed)(()=>(0,s.toValue)(c)===b.INPUT),x=(0,s.computed)(()=>(0,s.toValue)(c)===b.CONTENT),C=(0,s.computed)(()=>!!(0,s.toValue)(c)),w=(0,s.computed)(()=>{let t=(0,s.toValue)(r);return E(e.value,p.value,t.itemValue)}),T=(0,s.computed)(()=>{let e=(0,s.toValue)(t),n=(0,s.toValue)(r);return S(e,C.value?d.value:``,n,(0,s.toValue)(l))}),k=(0,s.computed)(()=>f.value?n.n.MULTIPLE:n.n.SINGLE),A=(t,n,r)=>{if(p.value){e.value=O(n,t,r);return}e.value=t},ee=(t,n,r)=>{if(!t){e.value=void 0;return}if(p.value){e.value=_(t,n,r)??void 0;return}D(e,y(t,n,r))},te=(0,s.computed)({get:()=>{if(f.value)return w.value.map(e=>h(e));let e=w.value[0];if(g(e))return h(e)},set:e=>{let n=(0,s.toValue)(t),i=(0,s.toValue)(r);if(f.value){A((Array.isArray(e)?e:[]).map(e=>y(e,n,i.itemValue)).filter(e=>g(e)),n,i.itemValue);return}ee(typeof e==`string`?e:void 0,n,i.itemValue)}}),ne=(0,s.computed)(()=>w.value.length>0),j=(e,t,n)=>{let r=h(t);return e.find(e=>h(m(e,n)??``)===r)},M=(0,s.computed)(()=>{let e=w.value[0];if(!g(e))return``;let n=(0,s.toValue)(r),i=j((0,s.toValue)(t),e,n.itemValue);return i?a.i(i,n.itemTitle)??``:h(e)}),N=(0,s.computed)(()=>{let e=(0,s.toValue)(t),n=(0,s.toValue)(r);return w.value.map(t=>{let r=j(e,t,n.itemValue);return r?a.i(r,n.itemTitle)??``:h(t)})}),re=(0,s.computed)(()=>N.value.join(`, `)),ie=(0,s.computed)(()=>f.value?w.value.length===0:!M.value),ae=(0,s.computed)(()=>v.value&&(u.value||f.value)),P=()=>{d.value=``};return(0,s.watch)(u,e=>{e||P()}),(0,s.watch)(()=>(0,s.toValue)(c),()=>{P()}),{searchQuery:d,selectedValues:w,filteredOptions:T,listSelectionMode:k,listSelectedModel:te,hasSelectedValues:ne,singleDisplayLabel:M,multipleDisplayLabels:N,multipleDisplayText:re,showPlaceholder:ie,showInputSearchField:ae,isSearchableMode:C,isSearchableInputMode:v,isSearchableContentMode:x,isMultipleMode:f,isReturnObjectMode:p,clearSelection:()=>{e.value=void 0,P()},removeSelectedValue:e=>{let n=h(e);A(w.value.filter(e=>h(e)!==n),(0,s.toValue)(t),(0,s.toValue)(r).itemValue)},resetSearchQuery:P,formatSelectListKey:h,resolveValueFromListKey:e=>y(e,(0,s.toValue)(t),(0,s.toValue)(r).itemValue)}},A={key:1,class:`s-ui-select__empty s-ui-typography-body-14-regular`},ee=[`id`,`aria-expanded`,`aria-controls`,`aria-disabled`,`aria-readonly`,`aria-autocomplete`,`tabindex`],te={key:0,class:`s-ui-select__value`},ne={key:1,class:`s-ui-select__placeholder`},j={key:1,class:`s-ui-select__placeholder`},M={key:2,class:`s-ui-select__value`},N={key:3,class:`s-ui-select__value-suffix`},re=[`name`,`placeholder`,`disabled`,`readonly`],ie=20,ae=`100%`,P=20,F=(0,s.defineComponent)({__name:`SSelect`,props:(0,s.mergeModels)({options:{},itemValue:{default:`value`},itemTitle:{default:`label`},itemSubtitle:{default:`subtitle`},itemId:{},itemDisabled:{default:`disabled`},itemIconLeft:{default:`iconLeft`},multiple:{type:Boolean,default:!1},returnObject:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},closableOptions:{type:Boolean,default:!1},searchable:{type:[String,Boolean],default:!1},closeOnSelect:{type:Boolean,default:!0},listHeight:{default:320},searchPlaceholder:{default:`Search`},filterOption:{type:Function},fitViewport:{type:Boolean,default:!0},panelWidth:{},surfaceClass:{},canLoadMore:{type:Function},endReachedDistance:{default:0},label:{},labelProps:{},placeholder:{},helpMessages:{},errorMessages:{},bordered:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},iconLeft:{},customize:{default:()=>i.n.NONE},name:{},id:{}},{modelValue:{},modelModifiers:{},searchQuery:{default:``},searchQueryModifiers:{}}),emits:(0,s.mergeModels)([`clear`,`focus`,`blur`,`open`,`close`,`endReached`],[`update:modelValue`,`update:searchQuery`]),setup(n,{expose:l,emit:u}){let p=(0,s.useModel)(n,`modelValue`),m=(0,s.useModel)(n,`searchQuery`),h=u,{t:_}=(0,c.useUiKitI18n)(),v=(0,s.useSlots)(),y=(0,s.useId)(),b=(0,s.useId)(),x=(0,s.useTemplateRef)(`triggerInputRef`),S=(0,s.ref)(``),C=(0,s.useTemplateRef)(`searchInputElementRef`),w=(0,s.useTemplateRef)(`panelSearchInputElementRef`),T=(0,s.useTemplateRef)(`listElementRef`),E=(0,s.ref)(),D=(0,s.ref)(!1),O=(0,s.ref)(!1),F=(0,s.computed)(()=>n.panelWidth===void 0),oe=(0,s.computed)(()=>n.panelWidth??ae),I=(0,s.computed)(()=>n.itemId??n.itemValue),se=(0,s.computed)(()=>({itemValue:n.itemValue,itemTitle:n.itemTitle,itemSubtitle:n.itemSubtitle,itemId:I.value})),{selectedValues:L,filteredOptions:R,listSelectionMode:ce,listSelectedModel:z,hasSelectedValues:B,singleDisplayLabel:le,multipleDisplayLabels:ue,multipleDisplayText:V,showPlaceholder:H,showInputSearchField:U,isSearchableMode:de,isSearchableInputMode:W,isSearchableContentMode:G,isMultipleMode:K,clearSelection:fe,removeSelectedValue:q,resolveValueFromListKey:pe,formatSelectListKey:J}=k({modelValue:p,options:()=>n.options,itemFields:()=>se.value,multiple:()=>n.multiple,returnObject:()=>n.returnObject,searchable:()=>n.searchable,filterOption:()=>n.filterOption,isDropdownOpen:D,searchQuery:m}),me=(0,s.computed)(()=>({disabled:n.disabled,displayLabel:le.value})),Y=(0,s.computed)(()=>R.value.length>P),he=(0,s.computed)(()=>G.value||Y.value?n.listHeight:`auto`),ge=(0,s.computed)(()=>{if(!(G.value||Y.value))return n.listHeight}),_e=(0,s.computed)(()=>L.value.map(e=>J(e))),ve=e=>_e.value.includes(e),ye=()=>({tiny:!0}),be=e=>f({listItemScope:e,itemTitle:n.itemTitle,itemSubtitle:n.itemSubtitle,itemDisabled:n.itemDisabled,itemIconLeft:n.itemIconLeft,listActiveKey:E.value,isOptionSelected:ve(e.key)}),xe=e=>{let t=pe(e);if(g(t)){if(K.value){q(t);return}p.value=void 0}},Se=(0,s.computed)(()=>n.id??y),Ce=(0,s.computed)(()=>b),we=(0,s.computed)(()=>x.value?.fieldElementRef??null),Te=(0,s.computed)(()=>({labels:ue.value,values:L.value,displayText:V.value,disabled:n.disabled||n.readonly,removeValue:q})),Ee=(0,s.computed)(()=>{if(!n.disabled&&(n.readonly&&!W.value||!W.value))return 0}),De=(0,s.computed)(()=>({"s-ui-select--disabled":n.disabled,"s-ui-select--readonly":n.readonly,"s-ui-select--multiple":K.value,"s-ui-select--open":D.value})),Oe=()=>{if(G.value){w.value?.focus();return}C.value?.focus()},ke=async()=>{await(0,s.nextTick)(),w.value?.focus()},Ae=async()=>{await(0,s.nextTick)(),await T.value?.focusNavigation()},X=async()=>{if(!(n.disabled||n.readonly)&&!D.value){if(D.value=!0,h(`open`),G.value){await ke();return}if(W.value){await(0,s.nextTick)(),C.value?.focus();return}await Ae()}},je=async()=>{n.disabled||n.readonly||D.value||await X()};(0,s.watch)(m,async e=>{W.value&&(n.disabled||n.readonly||e&&(D.value||await X()))});let Z=()=>{D.value&&(D.value=!1,E.value=void 0,h(`close`))},Q=()=>{!n.closeOnSelect||K.value||Z()};(0,s.watch)(p,(e,t)=>{!n.closeOnSelect||K.value||!D.value||!e||e===t||Z()});let Me=e=>{D.value&&e.target instanceof Element&&e.target.closest(`.s-ui-list-item`)&&Q()},Ne=async e=>{e.key!==`Enter`&&e.key!==` `&&e.key!==`Spacebar`||D.value&&(await(0,s.nextTick)(),Q())},$=async()=>{if(D.value){Z();return}await X()},Pe=async e=>{if(!(n.disabled||n.readonly)&&e.target instanceof HTMLElement){if(e.target.closest(`.s-ui-select__search-input`)){D.value||await X();return}await $()}},Fe=async e=>e.key!==`ArrowDown`&&e.key!==`ArrowUp`?!1:(e.preventDefault(),e.stopPropagation(),D.value||await X(),await Ae(),await T.value?.handleKeyboardNavigation(e),!0),Ie=e=>{let t=pe(e);if(t){if(K.value){L.value.some(t=>J(t)===e)?q(t):z.value=[...L.value.map(e=>J(e)),e];return}z.value=e,Q()}},Le=async e=>{if(!(n.disabled||n.readonly)&&!await Fe(e)){if(e.key===`Escape`){e.preventDefault(),Z();return}if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),D.value&&E.value){Ie(E.value);return}await $()}}},Re=async e=>{if(e.key===`Escape`){e.preventDefault(),Z();return}await Fe(e)},ze=Re,Be=e=>{n.disabled||(O.value||h(`focus`,e),O.value=!0)},Ve=e=>{if(!(e.currentTarget instanceof HTMLElement))return;let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||(O.value=!1,h(`blur`,e))},He=()=>{fe(),h(`clear`)},Ue=e=>{h(`endReached`,e)};return l({open:X,close:Z,toggle:$,focusSearchInput:Oe}),(l,u)=>((0,s.openBlock)(),(0,s.createElementBlock)(`div`,{class:(0,s.normalizeClass)([`s-ui-select`,De.value])},[(0,s.createVNode)((0,s.unref)(r.t),{modelValue:D.value,"onUpdate:modelValue":u[4]||=e=>D.value=e,reference:we.value,disabled:n.disabled,"match-reference-width":F.value,"fit-viewport":n.fitViewport,"surface-class":n.surfaceClass,"content-id":Ce.value,"dismiss-on-click-outside":!0,"dismiss-on-escape":!0},{content:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(d),{class:`s-ui-select__menu`,width:oe.value},(0,s.createSlots)({default:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{class:`s-ui-select__menu-body`,onClick:Me,onKeydown:Ne},[(0,s.unref)(R).length>0?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(a.t),{key:0,ref_key:`listElementRef`,ref:T,modelValue:E.value,"onUpdate:modelValue":u[2]||=e=>E.value=e,selected:(0,s.unref)(z),"onUpdate:selected":u[3]||=e=>(0,s.isRef)(z)?z.value=e:null,items:(0,s.unref)(R),"item-key":I.value,"title-key":n.itemTitle,"subtitle-key":n.itemSubtitle,"icon-left-key":n.itemIconLeft,"disabled-key":n.itemDisabled,"selection-mode":(0,s.unref)(ce),mandatory:!n.multiple,height:he.value,"max-height":ge.value,virtual:Y.value,"item-props":ye,"selected-on-top":(0,s.unref)(K),"can-load-more":n.canLoadMore,"end-reached-distance":n.endReachedDistance,onEndReached:Ue},(0,s.createSlots)({_:2},[(0,s.unref)(v).option||(0,s.unref)(v)[`option-icon`]||n.closableOptions||(0,s.unref)(K)?{name:`item`,fn:(0,s.withCtx)(r=>[(0,s.unref)(v).option?(0,s.renderSlot)(l.$slots,`option`,(0,s.normalizeProps)((0,s.mergeProps)({key:0},r))):n.closableOptions?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.t),(0,s.normalizeProps)((0,s.mergeProps)({key:1},be(r))),(0,s.createSlots)({_:2},[(0,s.unref)(v)[`option-icon`]?{name:`icon-left`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`option-icon`,(0,s.normalizeProps)((0,s.guardReactiveProps)(r)))]),key:`0`}:void 0,ve(r.key)?{name:`right`,fn:(0,s.withCtx)(n=>[(0,s.createVNode)((0,s.unref)(t.t),{appearance:(0,s.unref)(e.t).BARE,variant:(0,s.unref)(e.r).NEUTRAL,size:(0,s.unref)(e.n).SMALL,icon:`closeMini`,"aria-label":(0,s.unref)(_)(`select.removeOption`),disabled:n.disabled||n.readonly,tabindex:-1,onClick:(0,s.withModifiers)(e=>xe(r.key),[`stop`])},null,8,[`appearance`,`variant`,`size`,`aria-label`,`disabled`,`onClick`])]),key:`1`}:void 0]),1040)):((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(o.t),(0,s.normalizeProps)((0,s.mergeProps)({key:2},be(r))),(0,s.createSlots)({_:2},[(0,s.unref)(v)[`option-icon`]?{name:`icon-left`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`option-icon`,(0,s.normalizeProps)((0,s.guardReactiveProps)(r)))]),key:`0`}:void 0]),1040))]),key:`0`}:void 0]),1032,[`modelValue`,`selected`,`items`,`item-key`,`title-key`,`subtitle-key`,`icon-left-key`,`disabled-key`,`selection-mode`,`mandatory`,`height`,`max-height`,`virtual`,`selected-on-top`,`can-load-more`,`end-reached-distance`])):((0,s.openBlock)(),(0,s.createElementBlock)(`div`,A,[(0,s.renderSlot)(l.$slots,`empty`,{},()=>[(0,s.createTextVNode)((0,s.toDisplayString)((0,s.unref)(_)(`select.noOptions`)),1)])]))],32)]),_:2},[(0,s.unref)(G)||(0,s.unref)(v)[`panel-header`]?{name:`header`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`panel-header`),(0,s.unref)(G)?((0,s.openBlock)(),(0,s.createBlock)((0,s.unref)(i.t),{key:0,ref_key:`panelSearchInputElementRef`,ref:w,modelValue:m.value,"onUpdate:modelValue":u[0]||=e=>m.value=e,placeholder:n.searchPlaceholder,disabled:n.disabled,clearable:!1,"icon-left":`search`,onClick:u[1]||=(0,s.withModifiers)(()=>{},[`stop`]),onKeydown:(0,s.unref)(ze)},null,8,[`modelValue`,`placeholder`,`disabled`,`onKeydown`])):(0,s.createCommentVNode)(``,!0)]),key:`0`}:void 0,(0,s.unref)(v)[`panel-footer`]?{name:`footer`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`panel-footer`)]),key:`1`}:void 0]),1032,[`width`])]),_:3},8,[`modelValue`,`reference`,`disabled`,`match-reference-width`,`fit-viewport`,`surface-class`,`content-id`]),(0,s.createVNode)((0,s.unref)(i.t),{ref_key:`triggerInputRef`,ref:x,modelValue:S.value,"onUpdate:modelValue":u[7]||=e=>S.value=e,label:n.label,"label-props":n.labelProps,placeholder:n.placeholder,"help-messages":n.helpMessages,"error-messages":n.errorMessages,bordered:n.bordered,disabled:n.disabled,readonly:n.readonly,clearable:n.clearable,"has-value":(0,s.unref)(B),focused:O.value||D.value,"icon-left":n.iconLeft,customize:n.customize,name:n.name,id:Se.value,onClear:He,onFocus:Be,onBlur:Ve},(0,s.createSlots)({control:(0,s.withCtx)(()=>[(0,s.createElementVNode)(`div`,{id:Se.value,class:(0,s.normalizeClass)([`s-ui-select__control s-ui-typography-body-14-regular`,{"s-ui-select__control--multiple":(0,s.unref)(K),"s-ui-select__control--empty":(0,s.unref)(K)&&!(0,s.unref)(B)&&!(0,s.unref)(U),"s-ui-select__control--with-value-suffix":(0,s.unref)(v)[`value-suffix`]&&!(0,s.unref)(K)&&!(0,s.unref)(U)&&!(0,s.unref)(H)}]),role:`combobox`,"aria-expanded":D.value,"aria-controls":Ce.value,"aria-haspopup":`listbox`,"aria-disabled":n.disabled?!0:void 0,"aria-readonly":n.readonly?!0:void 0,"aria-autocomplete":(0,s.unref)(de)?`list`:void 0,tabindex:Ee.value,onClick:Pe,onKeydown:Le},[(0,s.unref)(K)?(0,s.renderSlot)(l.$slots,`selection`,(0,s.normalizeProps)((0,s.mergeProps)({key:0},Te.value)),()=>[(0,s.unref)(V)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,te,(0,s.toDisplayString)((0,s.unref)(V)),1)):(0,s.unref)(H)&&!(0,s.unref)(U)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,ne,(0,s.toDisplayString)(n.placeholder),1)):(0,s.createCommentVNode)(``,!0)]):(0,s.unref)(H)&&!(0,s.unref)(U)?((0,s.openBlock)(),(0,s.createElementBlock)(`span`,j,(0,s.toDisplayString)(n.placeholder),1)):(0,s.unref)(U)?(0,s.createCommentVNode)(``,!0):((0,s.openBlock)(),(0,s.createElementBlock)(`span`,M,(0,s.toDisplayString)((0,s.unref)(le)),1)),(0,s.unref)(v)[`value-suffix`]&&!(0,s.unref)(K)&&!(0,s.unref)(U)&&!(0,s.unref)(H)?((0,s.openBlock)(),(0,s.createElementBlock)(`div`,N,[(0,s.renderSlot)(l.$slots,`value-suffix`,(0,s.normalizeProps)((0,s.guardReactiveProps)(me.value)))])):(0,s.createCommentVNode)(``,!0),(0,s.unref)(U)?(0,s.withDirectives)(((0,s.openBlock)(),(0,s.createElementBlock)(`input`,{key:4,ref_key:`searchInputElementRef`,ref:C,"onUpdate:modelValue":u[5]||=e=>m.value=e,class:`s-ui-select__search-input`,type:`text`,name:n.name,placeholder:n.placeholder,disabled:n.disabled,readonly:n.readonly,autocomplete:`off`,onClick:u[6]||=(0,s.withModifiers)(()=>{},[`stop`]),onFocus:je,onKeydown:Re},null,40,re)),[[s.vModelText,m.value]]):(0,s.createCommentVNode)(``,!0)],42,ee)]),action:(0,s.withCtx)(()=>[(0,s.createVNode)((0,s.unref)(c.SIcon),{name:`chevronMiniDown`,size:ie,class:`s-ui-select__chevron`})]),_:2},[(0,s.unref)(v).label?{name:`label`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`label`)]),key:`0`}:void 0,(0,s.unref)(v).prefix?{name:`prefix`,fn:(0,s.withCtx)(e=>[(0,s.renderSlot)(l.$slots,`prefix`,(0,s.normalizeProps)((0,s.guardReactiveProps)(e)))]),key:`1`}:void 0,(0,s.unref)(v).prepend?{name:`prepend`,fn:(0,s.withCtx)(e=>[(0,s.renderSlot)(l.$slots,`prepend`,(0,s.normalizeProps)((0,s.guardReactiveProps)(e)))]),key:`2`}:void 0,(0,s.unref)(v).message?{name:`message`,fn:(0,s.withCtx)(()=>[(0,s.renderSlot)(l.$slots,`message`)]),key:`3`}:void 0]),1032,[`modelValue`,`label`,`label-props`,`placeholder`,`help-messages`,`error-messages`,`bordered`,`disabled`,`readonly`,`clearable`,`has-value`,`focused`,`icon-left`,`customize`,`name`,`id`])],2))}});Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return F}});
@@ -0,0 +1,269 @@
1
+ import { n as e, t } from "./SInlineMessage-Dirk5RwO.js";
2
+ import { t as n } from "./SLabel-FHHPlcKq.js";
3
+ import { n as r, r as i, t as a } from "./useFieldMessages-C-GXaf_q.js";
4
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, defineComponent as p, mergeModels as m, mergeProps as h, nextTick as g, normalizeClass as _, onScopeDispose as v, openBlock as y, ref as b, renderList as x, toDisplayString as S, unref as C, useId as ee, useModel as w, useTemplateRef as T, vModelText as E, watch as D, withCtx as O, withDirectives as te } from "vue";
5
+ import { useEventListener as k } from "@vueuse/core";
6
+ //#region src/composables/useResizeAutoScroll.ts
7
+ var A = 20, j = 96, M = 12, N = [
8
+ "auto",
9
+ "scroll",
10
+ "overlay"
11
+ ], P = (e) => N.some((t) => t === e), F = (e) => {
12
+ if (e instanceof HTMLElement) {
13
+ let { top: t, bottom: n } = e.getBoundingClientRect();
14
+ return {
15
+ top: t,
16
+ bottom: n
17
+ };
18
+ }
19
+ return {
20
+ top: 0,
21
+ bottom: window.innerHeight
22
+ };
23
+ }, I = (e) => {
24
+ if (e <= 0) return M;
25
+ if (e >= j) return 0;
26
+ let t = 1 - e / j;
27
+ return M * t * t;
28
+ }, L = (e, t, n) => {
29
+ let r = e - t;
30
+ if (r < 0) return -12;
31
+ if (r < j) return -I(r);
32
+ let i = n - e;
33
+ return i < 0 ? M : i < j ? I(i) : 0;
34
+ }, ne = ({ elementRef: e, isEnabled: t }) => {
35
+ let n = b(!1), r = b(!1), i = b({
36
+ x: 0,
37
+ y: 0
38
+ }), a = b({
39
+ x: 0,
40
+ y: 0
41
+ }), o = b(0), s = null, c = null, l = {
42
+ top: 0,
43
+ bottom: 0
44
+ }, u = () => {
45
+ let t = e.value;
46
+ if (!t) return window;
47
+ let n = t.parentElement;
48
+ for (; n;) {
49
+ let e = getComputedStyle(n);
50
+ if ((P(e.overflowY) || P(e.overflow)) && n.scrollHeight > n.clientHeight) return n;
51
+ n = n.parentElement;
52
+ }
53
+ return window;
54
+ }, d = () => {
55
+ c = u(), l = F(c);
56
+ }, f = () => {
57
+ n.value = !1, r.value = !1, c = null, l = {
58
+ top: 0,
59
+ bottom: 0
60
+ }, s !== null && (cancelAnimationFrame(s), s = null);
61
+ }, p = () => {
62
+ if (!t() || !r.value || !e.value) {
63
+ s = null;
64
+ return;
65
+ }
66
+ d();
67
+ let n = L(a.value.y, l.top, l.bottom);
68
+ n !== 0 && c && c.scrollBy({
69
+ top: n,
70
+ behavior: "auto"
71
+ }), s = requestAnimationFrame(p);
72
+ }, m = () => {
73
+ !t() || r.value || s !== null || (d(), r.value = !0, s = requestAnimationFrame(p));
74
+ }, h = (n) => {
75
+ let r = e.value;
76
+ if (!t() || !r) return !1;
77
+ let { right: i, bottom: a } = r.getBoundingClientRect(), o = i - n.clientX, s = a - n.clientY;
78
+ return o >= 0 && o <= A && s >= 0 && s <= A;
79
+ }, g = (t) => {
80
+ let s = e.value;
81
+ if (t.button !== 0 || !h(t) || !s) {
82
+ f();
83
+ return;
84
+ }
85
+ i.value = {
86
+ x: t.clientX,
87
+ y: t.clientY
88
+ }, a.value = {
89
+ x: t.clientX,
90
+ y: t.clientY
91
+ }, o.value = s.offsetHeight, n.value = !0, r.value = !1;
92
+ }, _ = (s) => {
93
+ let c = e.value;
94
+ if (!t() || !n.value || !c) return;
95
+ a.value = {
96
+ x: s.clientX,
97
+ y: s.clientY
98
+ }, r.value && d();
99
+ let l = s.clientX !== i.value.x || s.clientY !== i.value.y, u = Math.abs(c.offsetHeight - o.value) >= 1;
100
+ (l || u) && m();
101
+ };
102
+ return k(e, "pointerdown", g), k(e, "mousedown", g), k(document, "pointermove", _, { passive: !0 }), k(document, "mousemove", _, { passive: !0 }), k(document, "pointerup", f), k(document, "mouseup", f), k(document, "pointercancel", f), k(window, "resize", () => {
103
+ !t() || !r.value || d();
104
+ }, { passive: !0 }), k(window, "blur", f), v(f), { isResizeActive: r };
105
+ }, R = ["inert", "aria-disabled"], z = [
106
+ "id",
107
+ "name",
108
+ "placeholder",
109
+ "disabled",
110
+ "readonly",
111
+ "rows",
112
+ "maxlength",
113
+ "autocomplete"
114
+ ], B = {
115
+ key: 1,
116
+ class: "s-ui-textarea__footer"
117
+ }, V = {
118
+ key: 0,
119
+ class: "s-ui-textarea__messages"
120
+ }, H = {
121
+ key: 1,
122
+ class: "s-ui-textarea__counter s-ui-typography-label-12-medium"
123
+ }, U = /* @__PURE__ */ p({
124
+ inheritAttrs: !1,
125
+ __name: "STextarea",
126
+ props: /*@__PURE__*/ m({
127
+ label: {},
128
+ labelProps: {},
129
+ placeholder: {},
130
+ helpMessages: {},
131
+ errorMessages: {},
132
+ bordered: {
133
+ type: Boolean,
134
+ default: !0
135
+ },
136
+ disabled: {
137
+ type: Boolean,
138
+ default: !1
139
+ },
140
+ readonly: {
141
+ type: Boolean,
142
+ default: !1
143
+ },
144
+ maxlength: {},
145
+ counter: { type: Boolean },
146
+ resizable: {
147
+ type: Boolean,
148
+ default: !0
149
+ },
150
+ rows: {},
151
+ autoGrow: {
152
+ type: Boolean,
153
+ default: !1
154
+ },
155
+ resizeAutoScroll: {
156
+ type: Boolean,
157
+ default: !1
158
+ },
159
+ minRows: { default: 1 },
160
+ maxRows: { default: 7 },
161
+ name: {},
162
+ id: {},
163
+ autocomplete: {}
164
+ }, {
165
+ modelValue: { default: "" },
166
+ modelModifiers: {}
167
+ }),
168
+ emits: /*@__PURE__*/ m(["focus", "blur"], ["update:modelValue"]),
169
+ setup(p, { expose: m, emit: v }) {
170
+ let b = w(p, "modelValue"), k = v, { rootAttrs: A, controlAttrs: j, errorQa: M } = i(), N = ee(), P = T("textareaElementRef"), { isFocused: F, handleFocus: I, handleFocusOut: L } = r({
171
+ isDisabled: () => p.disabled,
172
+ blurField: () => P.value?.blur(),
173
+ emitFocus: (e) => k("focus", e),
174
+ emitBlur: (e) => k("blur", e)
175
+ });
176
+ ne({
177
+ elementRef: P,
178
+ isEnabled: () => p.resizeAutoScroll && p.resizable && !p.autoGrow && !p.disabled && !p.readonly
179
+ });
180
+ let U = (e) => {
181
+ let t = getComputedStyle(e), n = Number.parseFloat(t.lineHeight) || 0, r = Number.parseFloat(t.paddingTop) + Number.parseFloat(t.paddingBottom), i = Number.parseFloat(t.borderTopWidth) + Number.parseFloat(t.borderBottomWidth), a = e.scrollHeight + i, o = n * p.minRows + r + i, s = n * p.maxRows + r + i;
182
+ return {
183
+ height: Math.min(Math.max(a, o), s),
184
+ isOverflowing: a > s
185
+ };
186
+ }, W = () => {
187
+ let e = P.value;
188
+ if (!e) return;
189
+ if (!p.autoGrow) {
190
+ e.style.height = "", e.style.overflowY = "";
191
+ return;
192
+ }
193
+ e.style.height = "auto";
194
+ let { height: t, isOverflowing: n } = U(e);
195
+ e.style.height = `${t}px`, e.style.overflowY = n ? "auto" : "hidden";
196
+ };
197
+ D([
198
+ P,
199
+ b,
200
+ () => p.autoGrow,
201
+ () => p.minRows,
202
+ () => p.maxRows
203
+ ], () => g(W), { immediate: !0 });
204
+ let { normalizedHelpMessages: G, normalizedErrorMessages: K, hasErrorMessages: q, hasHelpMessages: J } = a(() => p.helpMessages, () => p.errorMessages), Y = s(() => p.id ? p.id : N), X = s(() => !!p.label), Z = s(() => J.value || q.value), Q = s(() => !(!p.maxlength || p.counter === !1)), re = s(() => Z.value || Q.value), ie = s(() => p.maxlength ? `${b.value.length}/${p.maxlength}` : ""), ae = s(() => b.value.length > 0), oe = s(() => ({
205
+ "s-ui-textarea--disabled": p.disabled,
206
+ "s-ui-textarea--readonly": p.readonly
207
+ })), se = s(() => ({
208
+ "s-ui-textarea__field--bordered": p.bordered,
209
+ "s-ui-textarea__field--borderless": !p.bordered,
210
+ "s-ui-textarea__field--disabled": p.disabled,
211
+ "s-ui-textarea__field--readonly": p.readonly,
212
+ "s-ui-textarea__field--error": q.value,
213
+ "s-ui-textarea__field--filled": ae.value,
214
+ "s-ui-textarea__field--focused": F.value,
215
+ "s-ui-textarea__field--resizable": p.resizable && !p.autoGrow && !p.disabled && !p.readonly
216
+ })), $ = () => {
217
+ P.value?.focus();
218
+ }, ce = () => {
219
+ P.value?.blur();
220
+ }, le = (e) => {
221
+ p.disabled || p.readonly || e.target instanceof HTMLElement && e.target !== P.value && $();
222
+ };
223
+ return m({
224
+ blur: ce,
225
+ focus: $,
226
+ textareaElementRef: P
227
+ }), (r, i) => (y(), u("div", h({ class: ["s-ui-textarea", oe.value] }, C(A)), [
228
+ X.value ? (y(), c(C(n), h({ key: 0 }, p.labelProps, { "html-for": Y.value }), {
229
+ default: O(() => [f(S(p.label), 1)]),
230
+ _: 1
231
+ }, 16, ["html-for"])) : l("", !0),
232
+ d("div", {
233
+ class: _(["s-ui-textarea__field", se.value]),
234
+ inert: p.disabled ? !0 : void 0,
235
+ "aria-disabled": p.disabled ? !0 : void 0,
236
+ onClick: i[2] ||= (e) => le(e),
237
+ onFocusout: i[3] ||= (...e) => C(L) && C(L)(...e)
238
+ }, [te(d("textarea", h({
239
+ id: Y.value,
240
+ ref_key: "textareaElementRef",
241
+ ref: P,
242
+ "onUpdate:modelValue": i[0] ||= (e) => b.value = e,
243
+ class: "s-ui-textarea__control s-ui-typography-body-16-regular",
244
+ name: p.name,
245
+ placeholder: p.placeholder,
246
+ disabled: p.disabled,
247
+ readonly: p.readonly,
248
+ rows: p.rows,
249
+ maxlength: p.maxlength,
250
+ autocomplete: p.autocomplete
251
+ }, C(j), { onFocus: i[1] ||= (...e) => C(I) && C(I)(...e) }), null, 16, z), [[E, b.value]])], 42, R),
252
+ re.value ? (y(), u("div", B, [Z.value ? (y(), u("div", V, [(y(!0), u(o, null, x(C(G), (e, n) => (y(), c(C(t), {
253
+ key: `help-${n}`,
254
+ message: e
255
+ }, null, 8, ["message"]))), 128)), (y(!0), u(o, null, x(C(K), (n, r) => (y(), c(C(t), {
256
+ key: `error-${r}`,
257
+ message: n,
258
+ "data-qa": C(M),
259
+ "validation-status": C(e).ERROR
260
+ }, null, 8, [
261
+ "message",
262
+ "data-qa",
263
+ "validation-status"
264
+ ]))), 128))])) : l("", !0), Q.value ? (y(), u("p", H, S(ie.value), 1)) : l("", !0)])) : l("", !0)
265
+ ], 16));
266
+ }
267
+ });
268
+ //#endregion
269
+ export { U as t };
@@ -0,0 +1 @@
1
+ const e=require("./SInlineMessage-gjkMiE-W.cjs"),t=require("./SLabel-DLKfepRW.cjs"),n=require("./useFieldMessages-2TaArixP.cjs");let r=require("vue"),i=require("@vueuse/core");var a=20,o=96,s=12,c=[`auto`,`scroll`,`overlay`],l=e=>c.some(t=>t===e),u=e=>{if(e instanceof HTMLElement){let{top:t,bottom:n}=e.getBoundingClientRect();return{top:t,bottom:n}}return{top:0,bottom:window.innerHeight}},d=e=>{if(e<=0)return s;if(e>=o)return 0;let t=1-e/o;return s*t*t},f=(e,t,n)=>{let r=e-t;if(r<0)return-12;if(r<o)return-d(r);let i=n-e;return i<0?s:i<o?d(i):0},p=({elementRef:e,isEnabled:t})=>{let n=(0,r.ref)(!1),o=(0,r.ref)(!1),s=(0,r.ref)({x:0,y:0}),c=(0,r.ref)({x:0,y:0}),d=(0,r.ref)(0),p=null,m=null,h={top:0,bottom:0},g=()=>{let t=e.value;if(!t)return window;let n=t.parentElement;for(;n;){let e=getComputedStyle(n);if((l(e.overflowY)||l(e.overflow))&&n.scrollHeight>n.clientHeight)return n;n=n.parentElement}return window},_=()=>{m=g(),h=u(m)},v=()=>{n.value=!1,o.value=!1,m=null,h={top:0,bottom:0},p!==null&&(cancelAnimationFrame(p),p=null)},y=()=>{if(!t()||!o.value||!e.value){p=null;return}_();let n=f(c.value.y,h.top,h.bottom);n!==0&&m&&m.scrollBy({top:n,behavior:`auto`}),p=requestAnimationFrame(y)},b=()=>{!t()||o.value||p!==null||(_(),o.value=!0,p=requestAnimationFrame(y))},x=n=>{let r=e.value;if(!t()||!r)return!1;let{right:i,bottom:o}=r.getBoundingClientRect(),s=i-n.clientX,c=o-n.clientY;return s>=0&&s<=a&&c>=0&&c<=a},S=t=>{let r=e.value;if(t.button!==0||!x(t)||!r){v();return}s.value={x:t.clientX,y:t.clientY},c.value={x:t.clientX,y:t.clientY},d.value=r.offsetHeight,n.value=!0,o.value=!1},C=r=>{let i=e.value;if(!t()||!n.value||!i)return;c.value={x:r.clientX,y:r.clientY},o.value&&_();let a=r.clientX!==s.value.x||r.clientY!==s.value.y,l=Math.abs(i.offsetHeight-d.value)>=1;(a||l)&&b()};return(0,i.useEventListener)(e,`pointerdown`,S),(0,i.useEventListener)(e,`mousedown`,S),(0,i.useEventListener)(document,`pointermove`,C,{passive:!0}),(0,i.useEventListener)(document,`mousemove`,C,{passive:!0}),(0,i.useEventListener)(document,`pointerup`,v),(0,i.useEventListener)(document,`mouseup`,v),(0,i.useEventListener)(document,`pointercancel`,v),(0,i.useEventListener)(window,`resize`,()=>{!t()||!o.value||_()},{passive:!0}),(0,i.useEventListener)(window,`blur`,v),(0,r.onScopeDispose)(v),{isResizeActive:o}},m=[`inert`,`aria-disabled`],h=[`id`,`name`,`placeholder`,`disabled`,`readonly`,`rows`,`maxlength`,`autocomplete`],g={key:1,class:`s-ui-textarea__footer`},_={key:0,class:`s-ui-textarea__messages`},v={key:1,class:`s-ui-textarea__counter s-ui-typography-label-12-medium`},y=(0,r.defineComponent)({inheritAttrs:!1,__name:`STextarea`,props:(0,r.mergeModels)({label:{},labelProps:{},placeholder:{},helpMessages:{},errorMessages:{},bordered:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},maxlength:{},counter:{type:Boolean},resizable:{type:Boolean,default:!0},rows:{},autoGrow:{type:Boolean,default:!1},resizeAutoScroll:{type:Boolean,default:!1},minRows:{default:1},maxRows:{default:7},name:{},id:{},autocomplete:{}},{modelValue:{default:``},modelModifiers:{}}),emits:(0,r.mergeModels)([`focus`,`blur`],[`update:modelValue`]),setup(i,{expose:a,emit:o}){let s=(0,r.useModel)(i,`modelValue`),c=o,{rootAttrs:l,controlAttrs:u,errorQa:d}=n.r(),f=(0,r.useId)(),y=(0,r.useTemplateRef)(`textareaElementRef`),{isFocused:b,handleFocus:x,handleFocusOut:S}=n.n({isDisabled:()=>i.disabled,blurField:()=>y.value?.blur(),emitFocus:e=>c(`focus`,e),emitBlur:e=>c(`blur`,e)});p({elementRef:y,isEnabled:()=>i.resizeAutoScroll&&i.resizable&&!i.autoGrow&&!i.disabled&&!i.readonly});let C=e=>{let t=getComputedStyle(e),n=Number.parseFloat(t.lineHeight)||0,r=Number.parseFloat(t.paddingTop)+Number.parseFloat(t.paddingBottom),a=Number.parseFloat(t.borderTopWidth)+Number.parseFloat(t.borderBottomWidth),o=e.scrollHeight+a,s=n*i.minRows+r+a,c=n*i.maxRows+r+a;return{height:Math.min(Math.max(o,s),c),isOverflowing:o>c}},w=()=>{let e=y.value;if(!e)return;if(!i.autoGrow){e.style.height=``,e.style.overflowY=``;return}e.style.height=`auto`;let{height:t,isOverflowing:n}=C(e);e.style.height=`${t}px`,e.style.overflowY=n?`auto`:`hidden`};(0,r.watch)([y,s,()=>i.autoGrow,()=>i.minRows,()=>i.maxRows],()=>(0,r.nextTick)(w),{immediate:!0});let{normalizedHelpMessages:T,normalizedErrorMessages:E,hasErrorMessages:D,hasHelpMessages:O}=n.t(()=>i.helpMessages,()=>i.errorMessages),k=(0,r.computed)(()=>i.id?i.id:f),A=(0,r.computed)(()=>!!i.label),j=(0,r.computed)(()=>O.value||D.value),M=(0,r.computed)(()=>!(!i.maxlength||i.counter===!1)),N=(0,r.computed)(()=>j.value||M.value),P=(0,r.computed)(()=>i.maxlength?`${s.value.length}/${i.maxlength}`:``),F=(0,r.computed)(()=>s.value.length>0),I=(0,r.computed)(()=>({"s-ui-textarea--disabled":i.disabled,"s-ui-textarea--readonly":i.readonly})),L=(0,r.computed)(()=>({"s-ui-textarea__field--bordered":i.bordered,"s-ui-textarea__field--borderless":!i.bordered,"s-ui-textarea__field--disabled":i.disabled,"s-ui-textarea__field--readonly":i.readonly,"s-ui-textarea__field--error":D.value,"s-ui-textarea__field--filled":F.value,"s-ui-textarea__field--focused":b.value,"s-ui-textarea__field--resizable":i.resizable&&!i.autoGrow&&!i.disabled&&!i.readonly})),R=()=>{y.value?.focus()},z=()=>{y.value?.blur()},B=e=>{i.disabled||i.readonly||e.target instanceof HTMLElement&&e.target!==y.value&&R()};return a({blur:z,focus:R,textareaElementRef:y}),(n,a)=>((0,r.openBlock)(),(0,r.createElementBlock)(`div`,(0,r.mergeProps)({class:[`s-ui-textarea`,I.value]},(0,r.unref)(l)),[A.value?((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(t.t),(0,r.mergeProps)({key:0},i.labelProps,{"html-for":k.value}),{default:(0,r.withCtx)(()=>[(0,r.createTextVNode)((0,r.toDisplayString)(i.label),1)]),_:1},16,[`html-for`])):(0,r.createCommentVNode)(``,!0),(0,r.createElementVNode)(`div`,{class:(0,r.normalizeClass)([`s-ui-textarea__field`,L.value]),inert:i.disabled?!0:void 0,"aria-disabled":i.disabled?!0:void 0,onClick:a[2]||=e=>B(e),onFocusout:a[3]||=(...e)=>(0,r.unref)(S)&&(0,r.unref)(S)(...e)},[(0,r.withDirectives)((0,r.createElementVNode)(`textarea`,(0,r.mergeProps)({id:k.value,ref_key:`textareaElementRef`,ref:y,"onUpdate:modelValue":a[0]||=e=>s.value=e,class:`s-ui-textarea__control s-ui-typography-body-16-regular`,name:i.name,placeholder:i.placeholder,disabled:i.disabled,readonly:i.readonly,rows:i.rows,maxlength:i.maxlength,autocomplete:i.autocomplete},(0,r.unref)(u),{onFocus:a[1]||=(...e)=>(0,r.unref)(x)&&(0,r.unref)(x)(...e)}),null,16,h),[[r.vModelText,s.value]])],42,m),N.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,g,[j.value?((0,r.openBlock)(),(0,r.createElementBlock)(`div`,_,[((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)((0,r.unref)(T),(t,n)=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(e.t),{key:`help-${n}`,message:t},null,8,[`message`]))),128)),((0,r.openBlock)(!0),(0,r.createElementBlock)(r.Fragment,null,(0,r.renderList)((0,r.unref)(E),(t,n)=>((0,r.openBlock)(),(0,r.createBlock)((0,r.unref)(e.t),{key:`error-${n}`,message:t,"data-qa":(0,r.unref)(d),"validation-status":(0,r.unref)(e.n).ERROR},null,8,[`message`,`data-qa`,`validation-status`]))),128))])):(0,r.createCommentVNode)(``,!0),M.value?((0,r.openBlock)(),(0,r.createElementBlock)(`p`,v,(0,r.toDisplayString)(P.value),1)):(0,r.createCommentVNode)(``,!0)])):(0,r.createCommentVNode)(``,!0)],16))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return y}});
@@ -1 +1 @@
1
- {"version":3,"file":"SButtonGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SButtonGroup/SButtonGroup.vue"],"names":[],"mappings":"AAqFA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACpC,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,cAAc,EAGf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,QAAA,MAAM,YAAY,GAAK,CAAC,SAAS,aAAa,EAC7C,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAgGO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;;;;KAAmC,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;;kBARG,CAAC,KAAK,IAAgB,KAAK,GAAG;;;EAYxC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"SButtonGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SButtonGroup/SButtonGroup.vue"],"names":[],"mappings":"AAmGA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,8BAA8B,EACpC,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EACL,cAAc,EAGf,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAE7D,QAAA,MAAM,YAAY,GAAK,CAAC,SAAS,aAAa,EAC7C,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WA4HO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;;;;KAAmC,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;;kBARG,CAAC,KAAK,IAAgB,KAAK,GAAG;;;EAYxC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/SButtonGroup/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAEzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,6BAA6B,CAAA;AAEpC,MAAM,WAAW,oBAAqB,SAAQ,0BAA0B,CAAC,aAAa,CAAC;IACrF,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;IAC3D,OAAO,EAAE,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;IACrD,IAAI,EAAE,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;IAC/C,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,oBAAoB,CAChD,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/components/SButtonGroup/utils/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAEzD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,KAAK,EACV,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,6BAA6B,CAAA;AAEpC,MAAM,WAAW,oBAAqB,SAAQ,0BAA0B,CAAC,aAAa,CAAC;IACrF,UAAU,EAAE,gBAAgB,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;IAC3D,OAAO,EAAE,gBAAgB,CAAC,cAAc,GAAG,SAAS,CAAC,CAAA;IACrD,IAAI,EAAE,gBAAgB,CAAC,WAAW,GAAG,SAAS,CAAC,CAAA;IAC/C,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,oBAAoB,CAA0B,CAAA"}
@@ -17,6 +17,10 @@ export interface ISChipProps {
17
17
  disabled?: boolean;
18
18
  /** Высота и типографика чипа. */
19
19
  size?: ESChipSize;
20
+ /** Показывает кнопку удаления справа; клик отдаёт событие `delete`. */
21
+ deletable?: boolean;
22
+ /** Визуально выделенное состояние; ховер и нажатие продолжают работать поверх. */
23
+ selected?: boolean;
20
24
  }
21
25
  export type TSChipInstance = InstanceType<typeof SChip>;
22
26
  //# sourceMappingURL=SChip.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SChip.types.d.ts","sourceRoot":"","sources":["../../../src/components/SChip/SChip.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAA;AAE9B,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,UAAU;IACpB,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAA"}
1
+ {"version":3,"file":"SChip.types.d.ts","sourceRoot":"","sources":["../../../src/components/SChip/SChip.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,CAAA;AAE9B,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,OAAO,YAAY;CACpB;AAED,oBAAY,UAAU;IACpB,OAAO,OAAO;IACd,OAAO,OAAO;IACd,OAAO,OAAO;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,0BAA0B;IAC1B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,uEAAuE;IACvE,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,KAAK,CAAC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { TSIconSize } from '@shtabapp/ui-kit-primitives';
1
+ import { type TSIconSize } from '@shtabapp/ui-kit-primitives';
2
2
  import { ESChipSize, type ISChipProps } from './SChip.types';
3
3
  type __VLS_Slots = {
4
4
  actions?: (props: {
@@ -16,7 +16,11 @@ type __VLS_Slots = {
16
16
  size: ESChipSize;
17
17
  }) => unknown;
18
18
  };
19
- declare const __VLS_base: import("vue").DefineComponent<ISChipProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ISChipProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_base: import("vue").DefineComponent<ISChipProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
+ delete: () => any;
21
+ }, string, import("vue").PublicProps, Readonly<ISChipProps> & Readonly<{
22
+ onDelete?: (() => any) | undefined;
23
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
20
24
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
21
25
  declare const _default: typeof __VLS_export;
22
26
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"SChip.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SChip/SChip.vue"],"names":[],"mappings":"AA6GA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAE7D,OAAO,EAAe,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAUzE,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;IACrE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAA;IACpF,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAA;CACrE,CAAC;AAkIF,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SChip.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SChip/SChip.vue"],"names":[],"mappings":"AA6IA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,6BAA6B,CAAA;AAI3E,OAAO,EAAe,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAA;AAoBzE,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAA;IACrE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAA;IACpF,OAAO,CAAC,EAAE,MAAM,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,KAAK,OAAO,CAAA;CACrE,CAAC;AAwLF,QAAA,MAAM,UAAU;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -2,6 +2,8 @@ import type SDropdown from './SDropdown.vue';
2
2
  import type { ComponentInstance } from 'vue';
3
3
  import { ESDropdownPlacement } from '../../composables/connectedPosition';
4
4
  export { ESDropdownPlacement };
5
+ /** Ширина viewport, ниже которой панель показывается как bottom sheet. */
6
+ export declare const S_DROPDOWN_SHEET_BREAKPOINT = 768;
5
7
  export interface ISDropdownProps {
6
8
  /** Предпочтительное положение панели относительно якоря. */
7
9
  placement?: ESDropdownPlacement;
@@ -37,10 +39,18 @@ export interface ISDropdownProps {
37
39
  showOnHover?: boolean;
38
40
  /** Задержка перед закрытием при уходе курсора с якоря или панели, мс. */
39
41
  hoverLeaveDelay?: number;
42
+ /** Bottom sheet вместо floating-панели на мобильном viewport. */
43
+ sheet?: boolean;
44
+ /** Ширина viewport в px, ниже которой включается bottom sheet. */
45
+ sheetBreakpoint?: number;
46
+ /** Заголовок шапки bottom sheet. */
47
+ sheetTitle?: string;
40
48
  }
41
49
  export interface ISDropdownTriggerSlotProps {
42
50
  open: boolean;
43
51
  toggle: () => void;
52
+ close: () => void;
53
+ isSheet: boolean;
44
54
  triggerProps: {
45
55
  id: string;
46
56
  'aria-expanded': boolean;
@@ -50,6 +60,8 @@ export interface ISDropdownTriggerSlotProps {
50
60
  }
51
61
  export interface ISDropdownContentSlotProps {
52
62
  resolvedPlacement: ESDropdownPlacement;
63
+ isSheet: boolean;
64
+ close: () => void;
53
65
  }
54
66
  export type TSDropdownInstance = ComponentInstance<typeof SDropdown>;
55
67
  //# sourceMappingURL=SDropdown.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SDropdown.types.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/SDropdown.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC3B,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,0BAA0B;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,QAAQ,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,mBAAmB,CAAA;CACvC;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"SDropdown.types.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/SDropdown.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,KAAK,CAAA;AAE5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAEzE,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,0EAA0E;AAC1E,eAAO,MAAM,2BAA2B,MAAM,CAAA;AAE9C,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,sDAAsD;IACtD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC3B,4CAA4C;IAC5C,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,0BAA0B;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qEAAqE;IACrE,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC9B,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,eAAe,EAAE,OAAO,CAAA;QACxB,eAAe,EAAE,QAAQ,CAAA;QACzB,eAAe,EAAE,MAAM,CAAA;KACxB,CAAA;CACF;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,mBAAmB,CAAA;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,SAAS,CAAC,CAAA"}
@@ -7,22 +7,43 @@ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
7
7
  declare var __VLS_1: {
8
8
  open: boolean;
9
9
  toggle: () => void;
10
+ close: () => void;
11
+ isSheet: boolean;
10
12
  triggerProps: {
11
13
  id: string;
12
14
  'aria-expanded': boolean;
13
15
  'aria-haspopup': string;
14
16
  'aria-controls': string;
15
17
  };
16
- }, __VLS_17: {
18
+ }, __VLS_18: {
19
+ close: () => void;
20
+ }, __VLS_21: {
21
+ close: () => void;
22
+ }, __VLS_23: {
23
+ resolvedPlacement: ESDropdownPlacement.BOTTOM_START;
24
+ isSheet: boolean;
25
+ close: () => void;
26
+ }, __VLS_33: {
17
27
  resolvedPlacement: ESDropdownPlacement;
28
+ isSheet: boolean;
29
+ close: () => void;
18
30
  };
19
31
  type __VLS_Slots = {} & {
20
32
  trigger?: (props: typeof __VLS_1) => any;
21
33
  } & {
22
- content?: (props: typeof __VLS_17) => any;
34
+ 'sheet-header-left'?: (props: typeof __VLS_18) => any;
35
+ } & {
36
+ 'sheet-header-right'?: (props: typeof __VLS_21) => any;
37
+ } & {
38
+ content?: (props: typeof __VLS_23) => any;
39
+ } & {
40
+ content?: (props: typeof __VLS_33) => any;
23
41
  };
24
42
  declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {
25
43
  updatePosition: () => void;
44
+ show: () => void;
45
+ close: () => void;
46
+ toggle: () => void;
26
47
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
27
48
  "update:modelValue": (value: boolean) => any;
28
49
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
@@ -1 +1 @@
1
- {"version":3,"file":"SDropdown.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/SDropdown.vue"],"names":[],"mappings":"AA0NA,OAAO,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAQ7E,KAAK,WAAW,GAAG,eAAe,CAAC;AAuJnC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AA4IxD,QAAA,IAAI,OAAO;;;;;;;;;CAAU,EAAE,QAAQ;;CAAY,CAAE;AAC7C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAMhD,QAAA,MAAM,UAAU;;;;;;kFAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"SDropdown.vue.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/SDropdown.vue"],"names":[],"mappings":"AA8RA,OAAO,EACL,mBAAmB,EAEnB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAU1B,KAAK,WAAW,GAAG,eAAe,CAAC;AAmLnC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAuMxD,QAAA,IAAI,OAAO;;;;;;;;;;;CAAU,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;CAAW,EAAE,QAAQ;;;;CAAW,EAAE,QAAQ;;;;CAAY,CAAE;AAC5G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACzD;IAAE,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC1D;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAMhD,QAAA,MAAM,UAAU;;;;;;;;;kFAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { default as SDropdown } from './SDropdown.vue';
2
2
  export type { ISDropdownContentSlotProps, ISDropdownProps, ISDropdownTriggerSlotProps, TSDropdownInstance, } from './SDropdown.types';
3
- export { ESDropdownPlacement } from './SDropdown.types';
3
+ export { ESDropdownPlacement, S_DROPDOWN_SHEET_BREAKPOINT } from './SDropdown.types';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EACV,0BAA0B,EAC1B,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SDropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAA;AACtD,YAAY,EACV,0BAA0B,EAC1B,eAAe,EACf,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,13 @@
1
+ export interface ISDropdownSheetProps {
2
+ /** Открыт ли sheet; переключение запускает slide-транзишен. */
3
+ open: boolean;
4
+ /** Заголовок шапки. */
5
+ title?: string;
6
+ /** Закрытие по клику на затемнение. */
7
+ dismissOnOverlayClick?: boolean;
8
+ /** Закрытие по Escape. */
9
+ dismissOnEscape?: boolean;
10
+ /** `id` содержимого для `aria-controls` со стороны trigger. */
11
+ contentId?: string;
12
+ }
13
+ //# sourceMappingURL=SDropdownSheet.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDropdownSheet.types.d.ts","sourceRoot":"","sources":["../../../../src/components/SDropdown/parts/SDropdownSheet.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,+DAA+D;IAC/D,IAAI,EAAE,OAAO,CAAA;IACb,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uCAAuC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,0BAA0B;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -0,0 +1,23 @@
1
+ import type { ISDropdownSheetProps } from './SDropdownSheet.types';
2
+ declare var __VLS_9: {}, __VLS_11: {}, __VLS_13: {};
3
+ type __VLS_Slots = {} & {
4
+ 'header-left'?: (props: typeof __VLS_9) => any;
5
+ } & {
6
+ 'header-right'?: (props: typeof __VLS_11) => any;
7
+ } & {
8
+ default?: (props: typeof __VLS_13) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<ISDropdownSheetProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ close: () => any;
12
+ }, string, import("vue").PublicProps, Readonly<ISDropdownSheetProps> & Readonly<{
13
+ onClose?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
23
+ //# sourceMappingURL=SDropdownSheet.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDropdownSheet.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/SDropdown/parts/SDropdownSheet.vue"],"names":[],"mappings":"AAwKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAwNlE,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAClE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAClD;IAAE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GACpD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAQhD,QAAA,MAAM,UAAU;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type ComputedRef, type MaybeRefOrGetter } from 'vue';
2
+ /**
3
+ * Решает, показывать содержимое как bottom sheet или как floating-панель.
4
+ * Аналог `<MQ mq="phone">` в приложении: смотрит на ширину viewport.
5
+ */
6
+ export declare const useDropdownSheetMode: (enabled: MaybeRefOrGetter<boolean>, breakpoint: MaybeRefOrGetter<number>) => ComputedRef<boolean>;
7
+ //# sourceMappingURL=useDropdownSheetMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDropdownSheetMode.d.ts","sourceRoot":"","sources":["../../../../src/components/SDropdown/utils/useDropdownSheetMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAKhF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,SAAS,gBAAgB,CAAC,OAAO,CAAC,EAClC,YAAY,gBAAgB,CAAC,MAAM,CAAC,KACnC,WAAW,CAAC,OAAO,CAUrB,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { type MaybeRefOrGetter, type StyleValue } from 'vue';
2
+ export interface IUseSheetDragOptions {
3
+ /** Элемент-ручка, по которому стартует перетаскивание (шапка sheet). */
4
+ handle: MaybeRefOrGetter<HTMLElement | null>;
5
+ /** Панель sheet — источник высоты для порога закрытия. */
6
+ popup: MaybeRefOrGetter<HTMLElement | null>;
7
+ onClose: () => void;
8
+ }
9
+ /**
10
+ * Перетаскивание bottom sheet вниз для закрытия — на pointer events, без сторонних зависимостей.
11
+ * Пока жест активен, панель позиционируется inline-стилем и перебивает CSS-транзишен.
12
+ */
13
+ export declare const useSheetDrag: (options: IUseSheetDragOptions) => {
14
+ isActive: import("vue").ComputedRef<boolean>;
15
+ popupStyles: import("vue").ComputedRef<StyleValue>;
16
+ reset: () => void;
17
+ };
18
+ //# sourceMappingURL=useSheetDrag.d.ts.map