@shtabapp/ui-kit 1.70.0 → 1.71.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{SChartLine-Cp1csHeY.cjs → SChartLine-3l507dBg.cjs} +1 -1
  3. package/dist/{SChartLine-CTjiKi4H.js → SChartLine-v0tkmnN6.js} +1 -1
  4. package/dist/{SChartMultiLine-CbPSG0mN.js → SChartMultiLine-CG6dKmWm.js} +1 -1
  5. package/dist/{SChartMultiLine-Bt9Cf-L9.cjs → SChartMultiLine-vz7JdyA3.cjs} +1 -1
  6. package/dist/{SColorPicker-BmaA5Xnp.js → SColorPicker-BjtlrGHZ.js} +3 -3
  7. package/dist/{SColorPicker-D7mTRL7K.cjs → SColorPicker-Ct8FVU0D.cjs} +1 -1
  8. package/dist/SDropdown-B8Z4oNMk.cjs +1 -0
  9. package/dist/SDropdown-cNmJ5Lrz.js +400 -0
  10. package/dist/SSelect-mnobObXO.cjs +1 -0
  11. package/dist/{SSelect-DUtNtnqM.js → SSelect-rpJCD5PL.js} +22 -19
  12. package/dist/{STable-CunQFK-x.js → STable-1Bfr6VLH.js} +2 -2
  13. package/dist/{STable-Ch7thYCy.cjs → STable-uR69d9kL.cjs} +1 -1
  14. package/dist/components/SDropdown/SDropdown.types.d.ts +4 -4
  15. package/dist/components/SDropdown/SDropdown.types.d.ts.map +1 -1
  16. package/dist/components/SDropdown/SDropdown.vue.d.ts +8 -8
  17. package/dist/components/SDropdown/SDropdown.vue.d.ts.map +1 -1
  18. package/dist/components/SDropdown/parts/SDropdownSheet.types.d.ts +2 -0
  19. package/dist/components/SDropdown/parts/SDropdownSheet.types.d.ts.map +1 -1
  20. package/dist/components/SDropdown/parts/SDropdownSheet.vue.d.ts +3 -1
  21. package/dist/components/SDropdown/parts/SDropdownSheet.vue.d.ts.map +1 -1
  22. package/dist/components/SDropdown/utils/context.d.ts +13 -0
  23. package/dist/components/SDropdown/utils/context.d.ts.map +1 -0
  24. package/dist/components/SDropdown/utils/useDropdownTree.d.ts +18 -0
  25. package/dist/components/SDropdown/utils/useDropdownTree.d.ts.map +1 -0
  26. package/dist/components/SSelect/SSelect.vue.d.ts.map +1 -1
  27. package/dist/composables/connectedPosition/computeConnectedPosition.d.ts.map +1 -1
  28. package/dist/composables/connectedPosition/getOverflow.d.ts +1 -0
  29. package/dist/composables/connectedPosition/getOverflow.d.ts.map +1 -1
  30. package/dist/composables/useEscapeDismiss.d.ts +15 -0
  31. package/dist/composables/useEscapeDismiss.d.ts.map +1 -0
  32. package/dist/composables/useFloatingOverlay.d.ts +4 -0
  33. package/dist/composables/useFloatingOverlay.d.ts.map +1 -1
  34. package/dist/createChartMarkersPlugin-Cg1yGzxW.cjs +1 -0
  35. package/dist/createChartMarkersPlugin-DkXituwE.js +43 -0
  36. package/dist/entries/chart-line.cjs +1 -1
  37. package/dist/entries/chart-line.js +1 -1
  38. package/dist/entries/chart-multi-line.cjs +1 -1
  39. package/dist/entries/chart-multi-line.js +1 -1
  40. package/dist/entries/color-picker.cjs +1 -1
  41. package/dist/entries/color-picker.js +1 -1
  42. package/dist/entries/composables.cjs +1 -1
  43. package/dist/entries/composables.js +2 -2
  44. package/dist/entries/dropdown.cjs +1 -1
  45. package/dist/entries/dropdown.js +2 -2
  46. package/dist/entries/select.cjs +1 -1
  47. package/dist/entries/select.js +1 -1
  48. package/dist/entries/table.cjs +1 -1
  49. package/dist/entries/table.js +1 -1
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.js +8 -8
  52. package/dist/uikit-components.css +1 -1
  53. package/dist/useFloatingOverlay-CwGCMrig.cjs +1 -0
  54. package/dist/{useFloatingOverlay-b9_eDGNE.js → useFloatingOverlay-TxzVisMJ.js} +89 -86
  55. package/dist/utils/chart/core/createChartMarkersPlugin.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/dist/SDropdown-BdgpPzfl.cjs +0 -1
  58. package/dist/SDropdown-xNcC6JDy.js +0 -362
  59. package/dist/SSelect-Coyrc99Y.cjs +0 -1
  60. package/dist/createChartMarkersPlugin-DSKGilFU.js +0 -40
  61. package/dist/createChartMarkersPlugin-S4oQKxO4.cjs +0 -1
  62. package/dist/useFloatingOverlay-Dp44TxvN.cjs +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## [@shtabapp/ui-kit-v1.71.2](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.71.1...@shtabapp/ui-kit@1.71.2) (2026-09-11)
2
+
3
+ ### Bug Fixes
4
+
5
+ * **components:** sselect chevron click toggles dropdown ([a78a920](https://gitlab.com/mstikharev/shtab-ui-kit/commit/a78a920c0fe512cfe4cdc4d8920329c5b37127fb))
6
+
7
+ ## [@shtabapp/ui-kit-v1.71.1](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.71.0...@shtabapp/ui-kit@1.71.1) (2026-09-09)
8
+
9
+ ### Bug Fixes
10
+
11
+ - **components:** sdropdown nested panels, best-fit flip and crisp arrow outline ([460579c](https://gitlab.com/mstikharev/shtab-ui-kit/commit/460579cd44b438c41a5042dba27358aa2c6c252a))
12
+
13
+ ## [@shtabapp/ui-kit-v1.71.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.70.0...@shtabapp/ui-kit@1.71.0) (2026-09-03)
14
+
15
+ ### Features
16
+
17
+ - fix text was under the line ([c17ea81](https://gitlab.com/mstikharev/shtab-ui-kit/commit/c17ea819edb4485f29580e99f027db5af8759cbd))
18
+
1
19
  ## [@shtabapp/ui-kit-v1.70.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.69.1...@shtabapp/ui-kit@1.70.0) (2026-09-03)
2
20
 
3
21
  ### Features
@@ -1 +1 @@
1
- const e=require("./useChartInteractivity-LbJiqlvI.cjs"),t=require("./buildCartesianChartScales-Dck5yBMo.cjs"),n=require("./resolveChartValueRange-DBCYLCXs.cjs"),r=require("./createChartMarkersPlugin-S4oQKxO4.cjs");let i=require("vue");var a=(e,t,n=1)=>{if(typeof window>`u`)return n;let r=t??document.documentElement,i=getComputedStyle(r).getPropertyValue(e).trim(),a=Number.parseFloat(i);return Number.isNaN(a)?n:a},o=5,s=5,c=16,l=`--s-ui-chart-line-danger-fill`,u=e=>typeof e==`number`?`${e}%`:e,d=(e,t,r,i,a)=>{let o=e.map(e=>e.value);return a?{min:t??0,max:r??n.t(o,{yStep:i}).max}:n.t(o,{yMin:t,yMax:r,yStep:i})},f=({points:n,seriesLabel:i,colorHostElement:f,yMax:p,yMin:m,yStep:h=s,area:g=!0,zeroLine:_=!1,dangerBelowZero:v=!1,markers:y=[],skeleton:b=!1})=>{let x=e.T(e.y.axisLabel,f),S=e.T(e.y.grid,f),C=e.T(b?e.y.skeletonSeries:e.y.seriesPrimary,f),w=e.T(b?e.y.skeletonFillStart:e.y.seriesFillStart,f),T=e.T(b?e.y.skeletonFillEnd:e.y.seriesFillEnd,f),E=e.T(l,f),D=e.T(e.y.tooltipBackground,f),O=e.T(e.y.tooltipText,f),k=a(b?e.y.skeletonFillOpacity:e.y.seriesFillOpacity,f,.8),A=d(n,m,p,h,b),j=g||b,M=v&&!b,N=t=>e.o(t,w,T,k),P=M?{target:{value:0},below:E}:j?`origin`:!1;return{type:`line`,data:{labels:n.map(e=>e.label),datasets:[{label:i,data:n.map(e=>e.value),borderColor:C,backgroundColor:j?N:`transparent`,pointBackgroundColor:C,pointHoverBackgroundColor:C,borderWidth:o,fill:P,pointRadius:0,pointHoverRadius:4,tension:.4}]},options:{responsive:!0,maintainAspectRatio:!1,layout:{padding:{top:y.length>0?c:0}},interaction:e.s(b,{mode:`index`,intersect:!1}),plugins:{legend:{display:!1},tooltip:{enabled:e.c(b),backgroundColor:D,titleColor:O,bodyColor:O,displayColors:!1}},scales:t.t({axisLabelColor:x,gridColor:S,yMin:A.min,yMax:A.max,yStep:h,...b?{formatYAxisTick:u}:{}})},plugins:e.l(b,[..._?[r.n(f)]:[],...y.length>0?[r.t({markers:y},f)]:[]])}},p=[{label:`ноябрь 2025`,value:63},{label:`декабрь 2025`,value:77},{label:`январь 2026`,value:75},{label:`февраль 2026`,value:81},{label:`март 2026`,value:91},{label:`апрель 2026`,value:87}],m={class:`s-ui-chart-line__canvas-wrap`},h=(0,i.defineComponent)({__name:`SChartLine`,props:{points:{default:()=>[]},seriesLabel:{default:`Series`},loading:{type:Boolean,default:!1},yMax:{},yMin:{},yStep:{},height:{},area:{type:Boolean,default:!0},zeroLine:{type:Boolean,default:!1},dangerBelowZero:{type:Boolean,default:!1},markers:{default:()=>[]}},setup(t,{expose:n}){let r=(0,i.useTemplateRef)(`chartRootRef`),a=(0,i.useTemplateRef)(`chartCanvasRef`),o=(0,i.computed)(()=>t.loading?p:t.points),s=(0,i.computed)(()=>{if(t.height!==void 0)return{"--s-ui-chart-line-viewport-height":typeof t.height==`number`?`${t.height}px`:t.height}}),{chartInstance:c}=e.n({canvasRef:a,config:(0,i.computed)(()=>!t.loading&&t.points.length===0?null:f({points:o.value,seriesLabel:t.seriesLabel,colorHostElement:r.value,yMax:t.loading?100:t.yMax,yMin:t.loading?50:t.yMin,yStep:t.loading?10:t.yStep,area:t.area,zeroLine:t.zeroLine,dangerBelowZero:t.dangerBelowZero,markers:t.markers,skeleton:t.loading})),enabled:(0,i.computed)(()=>t.loading||t.points.length>0)}),{exportImage:l}=e.t({chartInstance:c,canvasRef:a,colorHostElement:r});return n({exportImage:l}),(n,o)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:r,class:(0,i.normalizeClass)([`s-ui-chart-line`,{"s-ui-chart-line--skeleton":t.loading}]),style:(0,i.normalizeStyle)(s.value)},[(0,i.createElementVNode)(`div`,m,[(0,i.createVNode)((0,i.unref)(e.E),{loading:t.loading},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:a,class:`s-ui-chart-line__canvas`},null,512)]),_:1},8,[`loading`])])],6))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
1
+ const e=require("./useChartInteractivity-LbJiqlvI.cjs"),t=require("./buildCartesianChartScales-Dck5yBMo.cjs"),n=require("./resolveChartValueRange-DBCYLCXs.cjs"),r=require("./createChartMarkersPlugin-Cg1yGzxW.cjs");let i=require("vue");var a=(e,t,n=1)=>{if(typeof window>`u`)return n;let r=t??document.documentElement,i=getComputedStyle(r).getPropertyValue(e).trim(),a=Number.parseFloat(i);return Number.isNaN(a)?n:a},o=5,s=5,c=16,l=`--s-ui-chart-line-danger-fill`,u=e=>typeof e==`number`?`${e}%`:e,d=(e,t,r,i,a)=>{let o=e.map(e=>e.value);return a?{min:t??0,max:r??n.t(o,{yStep:i}).max}:n.t(o,{yMin:t,yMax:r,yStep:i})},f=({points:n,seriesLabel:i,colorHostElement:f,yMax:p,yMin:m,yStep:h=s,area:g=!0,zeroLine:_=!1,dangerBelowZero:v=!1,markers:y=[],skeleton:b=!1})=>{let x=e.T(e.y.axisLabel,f),S=e.T(e.y.grid,f),C=e.T(b?e.y.skeletonSeries:e.y.seriesPrimary,f),w=e.T(b?e.y.skeletonFillStart:e.y.seriesFillStart,f),T=e.T(b?e.y.skeletonFillEnd:e.y.seriesFillEnd,f),E=e.T(l,f),D=e.T(e.y.tooltipBackground,f),O=e.T(e.y.tooltipText,f),k=a(b?e.y.skeletonFillOpacity:e.y.seriesFillOpacity,f,.8),A=d(n,m,p,h,b),j=g||b,M=v&&!b,N=t=>e.o(t,w,T,k),P=M?{target:{value:0},below:E}:j?`origin`:!1;return{type:`line`,data:{labels:n.map(e=>e.label),datasets:[{label:i,data:n.map(e=>e.value),borderColor:C,backgroundColor:j?N:`transparent`,pointBackgroundColor:C,pointHoverBackgroundColor:C,borderWidth:o,fill:P,pointRadius:0,pointHoverRadius:4,tension:.4}]},options:{responsive:!0,maintainAspectRatio:!1,layout:{padding:{top:y.length>0?c:0}},interaction:e.s(b,{mode:`index`,intersect:!1}),plugins:{legend:{display:!1},tooltip:{enabled:e.c(b),backgroundColor:D,titleColor:O,bodyColor:O,displayColors:!1}},scales:t.t({axisLabelColor:x,gridColor:S,yMin:A.min,yMax:A.max,yStep:h,...b?{formatYAxisTick:u}:{}})},plugins:e.l(b,[..._?[r.n(f)]:[],...y.length>0?[r.t({markers:y},f)]:[]])}},p=[{label:`ноябрь 2025`,value:63},{label:`декабрь 2025`,value:77},{label:`январь 2026`,value:75},{label:`февраль 2026`,value:81},{label:`март 2026`,value:91},{label:`апрель 2026`,value:87}],m={class:`s-ui-chart-line__canvas-wrap`},h=(0,i.defineComponent)({__name:`SChartLine`,props:{points:{default:()=>[]},seriesLabel:{default:`Series`},loading:{type:Boolean,default:!1},yMax:{},yMin:{},yStep:{},height:{},area:{type:Boolean,default:!0},zeroLine:{type:Boolean,default:!1},dangerBelowZero:{type:Boolean,default:!1},markers:{default:()=>[]}},setup(t,{expose:n}){let r=(0,i.useTemplateRef)(`chartRootRef`),a=(0,i.useTemplateRef)(`chartCanvasRef`),o=(0,i.computed)(()=>t.loading?p:t.points),s=(0,i.computed)(()=>{if(t.height!==void 0)return{"--s-ui-chart-line-viewport-height":typeof t.height==`number`?`${t.height}px`:t.height}}),{chartInstance:c}=e.n({canvasRef:a,config:(0,i.computed)(()=>!t.loading&&t.points.length===0?null:f({points:o.value,seriesLabel:t.seriesLabel,colorHostElement:r.value,yMax:t.loading?100:t.yMax,yMin:t.loading?50:t.yMin,yStep:t.loading?10:t.yStep,area:t.area,zeroLine:t.zeroLine,dangerBelowZero:t.dangerBelowZero,markers:t.markers,skeleton:t.loading})),enabled:(0,i.computed)(()=>t.loading||t.points.length>0)}),{exportImage:l}=e.t({chartInstance:c,canvasRef:a,colorHostElement:r});return n({exportImage:l}),(n,o)=>((0,i.openBlock)(),(0,i.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:r,class:(0,i.normalizeClass)([`s-ui-chart-line`,{"s-ui-chart-line--skeleton":t.loading}]),style:(0,i.normalizeStyle)(s.value)},[(0,i.createElementVNode)(`div`,m,[(0,i.createVNode)((0,i.unref)(e.E),{loading:t.loading},{default:(0,i.withCtx)(()=>[(0,i.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:a,class:`s-ui-chart-line__canvas`},null,512)]),_:1},8,[`loading`])])],6))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});
@@ -1,7 +1,7 @@
1
1
  import { E as e, T as t, c as n, l as r, n as i, o as a, s as o, t as s, y as c } from "./useChartInteractivity-Cl06JL4l.js";
2
2
  import { t as l } from "./buildCartesianChartScales-EofFq3ry.js";
3
3
  import { t as u } from "./resolveChartValueRange-DZybnmaX.js";
4
- import { n as d, t as f } from "./createChartMarkersPlugin-DSKGilFU.js";
4
+ import { n as d, t as f } from "./createChartMarkersPlugin-DkXituwE.js";
5
5
  import { computed as p, createElementBlock as m, createElementVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, normalizeStyle as y, openBlock as b, unref as x, useTemplateRef as S, withCtx as C } from "vue";
6
6
  //#region src/utils/chart/css/readCssNumber.ts
7
7
  var w = (e, t, n = 1) => {
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./SChartLegend-oZoF8XK7.js";
2
2
  import { C as t, E as n, T as r, a as i, b as a, c as o, i as s, l as c, m as l, n as u, o as d, p as f, r as p, s as m, t as h, y as g } from "./useChartInteractivity-Cl06JL4l.js";
3
3
  import { t as _ } from "./resolveChartValueRange-DZybnmaX.js";
4
- import { n as v, t as y } from "./createChartMarkersPlugin-DSKGilFU.js";
4
+ import { n as v, t as y } from "./createChartMarkersPlugin-DkXituwE.js";
5
5
  import { t as b } from "./areChartSeriesAligned-DjonrIMm.js";
6
6
  import { t as x } from "./createChartCrosshairPlugin-C2NUAO5s.js";
7
7
  import { t as S } from "./resolveSeriesPaletteColor-B7wHDj1L.js";
@@ -1 +1 @@
1
- const e=require("./SChartLegend-DGtjd6zV.cjs"),t=require("./useChartInteractivity-LbJiqlvI.cjs"),n=require("./resolveChartValueRange-DBCYLCXs.cjs"),r=require("./createChartMarkersPlugin-S4oQKxO4.cjs"),i=require("./areChartSeriesAligned-DiBX3TTk.cjs"),a=require("./createChartCrosshairPlugin-B4e8d8OF.cjs"),o=require("./resolveSeriesPaletteColor-D0XlU5vT.cjs"),s=require("./buildMultiLineChartScales-7mcIfRVG.cjs"),c=require("./buildChartSeriesPoints-Cqo2ed-n.cjs"),l=require("./useHasListener-BPgtbbo6.cjs");let u=require("vue");var d=(e,n,r,i=!1)=>o.t(e,n,r,i,{palette:t.b,paletteFallback:t.y.multiLinePalette1,skeletonPalette:t.C,skeletonFallback:t.y.skeletonPalette1}),f=3,p=.4,m=4,h=5,g=[8,8],_=16,v=`--s-ui-chart-multi-line-danger-fill`,y=(e,t,r,i,a)=>{let o=e.flatMap(e=>e.points.map(e=>e.value));return a?{min:t??0,max:r??n.t(o,{yStep:i}).max}:n.t(o,{yMin:t,yMax:r,yStep:i})},b=(e,n,r)=>n?{target:{value:0},...e?{}:{above:t.i},below:r}:e?`origin`:!1,x=({seriesList:e,colorHostElement:n,yMax:o,yMin:c,yStep:l=h,mirrorYAxis:u=!0,straightSegments:x=!1,zeroLine:S=!1,dangerBelowZero:C=!1,markers:w=[],skeleton:T=!1,onSeriesClick:E})=>{if(!i.t(e))return null;let D=t.T(t.y.axisLabel,n),O=t.T(t.y.grid,n),k=t.T(v,n),A=t.T(t.y.tooltipBackground,n),j=t.T(t.y.tooltipText,n),M=y(e,c,o,l,T),N=e[0]?.points.map(e=>e.label)??[],P=t.r({kind:`series`,skeleton:T,colorHostElement:n,onIndexClick:E});return{type:`line`,data:{labels:N,datasets:e.map((e,r)=>{let i=d(r,n,e.fillColor,T),a=!!e.area&&!T,o=C&&r===0&&!T,s=a?e=>t.o(e,i,t.i,t.a):i;return{label:e.label,data:e.points.map(e=>e.value),borderColor:i,backgroundColor:s,pointBackgroundColor:i,pointHoverBackgroundColor:i,...T?{}:{hoverBorderColor:i,hoverBackgroundColor:s},borderWidth:m,...e.dashed&&!T?{borderDash:g}:{},fill:b(a,o,k),pointRadius:x&&!T?f:0,pointHoverRadius:4,tension:x?0:p}})},options:{responsive:!0,maintainAspectRatio:!1,layout:{padding:{top:w.length>0?_:0}},onHover:P.onHover,onClick:P.onClick,interaction:t.s(T,{mode:`index`,intersect:!1}),hover:T?void 0:{mode:`nearest`,intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:t.c(T),backgroundColor:A,titleColor:j,bodyColor:j,footerColor:j,displayColors:!1,position:t.p,yAlign:`bottom`,xAlign:`center`,caretPadding:8,callbacks:t.m()}},scales:s.t({axisLabelColor:D,gridColor:O,yMin:M.min,yMax:M.max,yStep:l,mirrorYAxis:u})},plugins:t.l(T,[...S?[r.n(n)]:[],a.t(n),...w.length>0?[r.t({markers:w},n)]:[],...P.plugins])}},S=[`26.01`,`2.02`,`9.02`,`16.02`,`23.02`,`2.03`,`9.03`,`16.03`,`23.03`,`30.03`,`6.04`],C=[{label:`Series 1`,points:c.t(S,[30,34,38,44,46,50,54,56,58,60,62])},{label:`Series 2`,points:c.t(S,[22,24,26,28,30,32,33,35,36,38,40])}],w={class:`s-ui-chart-multi-line__canvas-wrap`},T=(0,u.defineComponent)({__name:`SChartMultiLine`,props:{series:{default:()=>[]},loading:{type:Boolean,default:!1},yMax:{},yMin:{},yStep:{},mirrorYAxis:{type:Boolean,default:!0},straightSegments:{type:Boolean,default:!1},zeroLine:{type:Boolean,default:!1},dangerBelowZero:{type:Boolean,default:!1},markers:{default:()=>[]},showLegend:{type:Boolean,default:!0},height:{}},emits:[`seriesClick`],setup(n,{expose:r,emit:i}){let a=i,o=(0,u.useTemplateRef)(`chartRootRef`),s=(0,u.useTemplateRef)(`chartCanvasRef`),f=(0,u.computed)(()=>n.loading?C:n.series),p=e=>{let t=n.series[e];t&&a(`seriesClick`,e,t)},m=l.t(`onSeriesClick`),h=(0,u.computed)(()=>{if(n.height!==void 0)return{"--s-ui-chart-multi-line-viewport-height":typeof n.height==`number`?`${n.height}px`:n.height}}),g=(0,u.computed)(()=>!n.loading&&n.series.length===0?null:x({seriesList:f.value,colorHostElement:o.value,yMax:n.yMax,yMin:n.yMin,yStep:n.yStep,mirrorYAxis:n.mirrorYAxis,straightSegments:n.straightSegments,zeroLine:n.zeroLine,dangerBelowZero:n.dangerBelowZero,markers:n.markers,skeleton:n.loading,onSeriesClick:m()?p:void 0})),_=(0,u.computed)(()=>c.n(f.value,(e,t)=>d(e,o.value,t,n.loading))),{chartInstance:v}=t.n({canvasRef:s,config:g,enabled:(0,u.computed)(()=>n.loading||n.series.length>0)}),{exportImage:y,handleLegendItemHover:b}=t.t({chartInstance:v,canvasRef:s,colorHostElement:o});return r({exportImage:y}),(r,i)=>((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:o,class:(0,u.normalizeClass)([`s-ui-chart-multi-line`,{"s-ui-chart-multi-line--skeleton":n.loading}]),style:(0,u.normalizeStyle)(h.value)},[(0,u.createElementVNode)(`div`,w,[(0,u.createVNode)((0,u.unref)(t.E),{loading:n.loading},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:s,class:`s-ui-chart-multi-line__canvas`},null,512)]),_:1},8,[`loading`])]),n.showLegend&&_.value.length?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.t),{key:0,items:_.value,disabled:n.loading,interactive:!n.loading,onItemHover:(0,u.unref)(b)},null,8,[`items`,`disabled`,`interactive`,`onItemHover`])):(0,u.createCommentVNode)(``,!0)],6))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
1
+ const e=require("./SChartLegend-DGtjd6zV.cjs"),t=require("./useChartInteractivity-LbJiqlvI.cjs"),n=require("./resolveChartValueRange-DBCYLCXs.cjs"),r=require("./createChartMarkersPlugin-Cg1yGzxW.cjs"),i=require("./areChartSeriesAligned-DiBX3TTk.cjs"),a=require("./createChartCrosshairPlugin-B4e8d8OF.cjs"),o=require("./resolveSeriesPaletteColor-D0XlU5vT.cjs"),s=require("./buildMultiLineChartScales-7mcIfRVG.cjs"),c=require("./buildChartSeriesPoints-Cqo2ed-n.cjs"),l=require("./useHasListener-BPgtbbo6.cjs");let u=require("vue");var d=(e,n,r,i=!1)=>o.t(e,n,r,i,{palette:t.b,paletteFallback:t.y.multiLinePalette1,skeletonPalette:t.C,skeletonFallback:t.y.skeletonPalette1}),f=3,p=.4,m=4,h=5,g=[8,8],_=16,v=`--s-ui-chart-multi-line-danger-fill`,y=(e,t,r,i,a)=>{let o=e.flatMap(e=>e.points.map(e=>e.value));return a?{min:t??0,max:r??n.t(o,{yStep:i}).max}:n.t(o,{yMin:t,yMax:r,yStep:i})},b=(e,n,r)=>n?{target:{value:0},...e?{}:{above:t.i},below:r}:e?`origin`:!1,x=({seriesList:e,colorHostElement:n,yMax:o,yMin:c,yStep:l=h,mirrorYAxis:u=!0,straightSegments:x=!1,zeroLine:S=!1,dangerBelowZero:C=!1,markers:w=[],skeleton:T=!1,onSeriesClick:E})=>{if(!i.t(e))return null;let D=t.T(t.y.axisLabel,n),O=t.T(t.y.grid,n),k=t.T(v,n),A=t.T(t.y.tooltipBackground,n),j=t.T(t.y.tooltipText,n),M=y(e,c,o,l,T),N=e[0]?.points.map(e=>e.label)??[],P=t.r({kind:`series`,skeleton:T,colorHostElement:n,onIndexClick:E});return{type:`line`,data:{labels:N,datasets:e.map((e,r)=>{let i=d(r,n,e.fillColor,T),a=!!e.area&&!T,o=C&&r===0&&!T,s=a?e=>t.o(e,i,t.i,t.a):i;return{label:e.label,data:e.points.map(e=>e.value),borderColor:i,backgroundColor:s,pointBackgroundColor:i,pointHoverBackgroundColor:i,...T?{}:{hoverBorderColor:i,hoverBackgroundColor:s},borderWidth:m,...e.dashed&&!T?{borderDash:g}:{},fill:b(a,o,k),pointRadius:x&&!T?f:0,pointHoverRadius:4,tension:x?0:p}})},options:{responsive:!0,maintainAspectRatio:!1,layout:{padding:{top:w.length>0?_:0}},onHover:P.onHover,onClick:P.onClick,interaction:t.s(T,{mode:`index`,intersect:!1}),hover:T?void 0:{mode:`nearest`,intersect:!1},plugins:{legend:{display:!1},tooltip:{enabled:t.c(T),backgroundColor:A,titleColor:j,bodyColor:j,footerColor:j,displayColors:!1,position:t.p,yAlign:`bottom`,xAlign:`center`,caretPadding:8,callbacks:t.m()}},scales:s.t({axisLabelColor:D,gridColor:O,yMin:M.min,yMax:M.max,yStep:l,mirrorYAxis:u})},plugins:t.l(T,[...S?[r.n(n)]:[],a.t(n),...w.length>0?[r.t({markers:w},n)]:[],...P.plugins])}},S=[`26.01`,`2.02`,`9.02`,`16.02`,`23.02`,`2.03`,`9.03`,`16.03`,`23.03`,`30.03`,`6.04`],C=[{label:`Series 1`,points:c.t(S,[30,34,38,44,46,50,54,56,58,60,62])},{label:`Series 2`,points:c.t(S,[22,24,26,28,30,32,33,35,36,38,40])}],w={class:`s-ui-chart-multi-line__canvas-wrap`},T=(0,u.defineComponent)({__name:`SChartMultiLine`,props:{series:{default:()=>[]},loading:{type:Boolean,default:!1},yMax:{},yMin:{},yStep:{},mirrorYAxis:{type:Boolean,default:!0},straightSegments:{type:Boolean,default:!1},zeroLine:{type:Boolean,default:!1},dangerBelowZero:{type:Boolean,default:!1},markers:{default:()=>[]},showLegend:{type:Boolean,default:!0},height:{}},emits:[`seriesClick`],setup(n,{expose:r,emit:i}){let a=i,o=(0,u.useTemplateRef)(`chartRootRef`),s=(0,u.useTemplateRef)(`chartCanvasRef`),f=(0,u.computed)(()=>n.loading?C:n.series),p=e=>{let t=n.series[e];t&&a(`seriesClick`,e,t)},m=l.t(`onSeriesClick`),h=(0,u.computed)(()=>{if(n.height!==void 0)return{"--s-ui-chart-multi-line-viewport-height":typeof n.height==`number`?`${n.height}px`:n.height}}),g=(0,u.computed)(()=>!n.loading&&n.series.length===0?null:x({seriesList:f.value,colorHostElement:o.value,yMax:n.yMax,yMin:n.yMin,yStep:n.yStep,mirrorYAxis:n.mirrorYAxis,straightSegments:n.straightSegments,zeroLine:n.zeroLine,dangerBelowZero:n.dangerBelowZero,markers:n.markers,skeleton:n.loading,onSeriesClick:m()?p:void 0})),_=(0,u.computed)(()=>c.n(f.value,(e,t)=>d(e,o.value,t,n.loading))),{chartInstance:v}=t.n({canvasRef:s,config:g,enabled:(0,u.computed)(()=>n.loading||n.series.length>0)}),{exportImage:y,handleLegendItemHover:b}=t.t({chartInstance:v,canvasRef:s,colorHostElement:o});return r({exportImage:y}),(r,i)=>((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{ref_key:`chartRootRef`,ref:o,class:(0,u.normalizeClass)([`s-ui-chart-multi-line`,{"s-ui-chart-multi-line--skeleton":n.loading}]),style:(0,u.normalizeStyle)(h.value)},[(0,u.createElementVNode)(`div`,w,[(0,u.createVNode)((0,u.unref)(t.E),{loading:n.loading},{default:(0,u.withCtx)(()=>[(0,u.createElementVNode)(`canvas`,{ref_key:`chartCanvasRef`,ref:s,class:`s-ui-chart-multi-line__canvas`},null,512)]),_:1},8,[`loading`])]),n.showLegend&&_.value.length?((0,u.openBlock)(),(0,u.createBlock)((0,u.unref)(e.t),{key:0,items:_.value,disabled:n.loading,interactive:!n.loading,onItemHover:(0,u.unref)(b)},null,8,[`items`,`disabled`,`interactive`,`onItemHover`])):(0,u.createCommentVNode)(``,!0)],6))}});Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return T}});
@@ -2,10 +2,10 @@ import { n as e } from "./contrastSurfaceTextColor-BDlLSSXC.js";
2
2
  import { n as t, o as n, r, t as i } from "./SColorPalette-OCu-tgZ3.js";
3
3
  import { a, n as o } from "./colorValue-CSh0chxp.js";
4
4
  import { i as s, n as c, r as l, t as u } from "./SButton-LAOBxpd4.js";
5
- import { a as d } from "./useFloatingOverlay-b9_eDGNE.js";
6
- import { t as f } from "./SDropdown-xNcC6JDy.js";
5
+ import { s as d } from "./useFloatingOverlay-TxzVisMJ.js";
6
+ import { t as f } from "./SDropdown-cNmJ5Lrz.js";
7
7
  import { t as p } from "./SDropdownMenu-2koPU6IG.js";
8
- import { t as m } from "./SSelect-DUtNtnqM.js";
8
+ import { t as m } from "./SSelect-rpJCD5PL.js";
9
9
  import { Fragment as h, computed as g, createBlock as _, createElementBlock as v, createElementVNode as y, createTextVNode as b, createVNode as x, defineComponent as S, mergeModels as C, mergeProps as w, nextTick as T, normalizeClass as E, normalizeStyle as D, onMounted as O, openBlock as k, ref as A, shallowRef as j, toDisplayString as M, toRef as N, unref as P, useModel as F, useTemplateRef as I, vModelText as L, watch as R, withCtx as z, withDirectives as B } from "vue";
10
10
  import { ESColorSwatchSize as V, SColorSwatch as ee, useUiKitI18n as H } from "@shtabapp/ui-kit-primitives";
11
11
  import { useEventListener as U } from "@vueuse/core";
@@ -1 +1 @@
1
- const e=require("./contrastSurfaceTextColor-BRjRzXyZ.cjs"),t=require("./SColorPalette-CqIA4Qtp.cjs"),n=require("./colorValue-Dda7fKd3.cjs"),r=require("./SButton-CLTNdnCK.cjs"),i=require("./useFloatingOverlay-Dp44TxvN.cjs"),a=require("./SDropdown-BdgpPzfl.cjs"),o=require("./SDropdownMenu-k9SxaFVH.cjs"),s=require("./SSelect-Coyrc99Y.cjs");let c=require("vue"),l=require("@shtabapp/ui-kit-primitives"),u=require("@vueuse/core");var d=e=>Math.max(0,Math.min(255,Math.round(e))),f=e=>{let t=e%360;return t<0?t+360:t},p=e=>Math.max(0,Math.min(100,Math.round(e))),m=e=>{let t=e.slice(1);if(t.length===3){let e=t[0],n=t[1],r=t[2];return!e||!n||!r?void 0:`${e}${e}${n}${n}${r}${r}`}if(t.length===6||t.length===8)return t.slice(0,6)},h=e=>{let t=m(e);if(!t)return;let n=Number.parseInt(t.slice(0,2),16),r=Number.parseInt(t.slice(2,4),16),i=Number.parseInt(t.slice(4,6),16);if(!(Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)))return{first:n,second:r,third:i}},g=e=>{let t=d(e.first),n=d(e.second),r=d(e.third);return`#${t.toString(16).padStart(2,`0`).toUpperCase()}${n.toString(16).padStart(2,`0`).toUpperCase()}${r.toString(16).padStart(2,`0`).toUpperCase()}`},_=e=>{let t=h(e);if(!t)return;let n=t.first/255,r=t.second/255,i=t.third/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=a-o,c=0,l=(a+o)/2;s!==0&&(c=a===n?((r-i)/s+(r<i?6:0))*60:a===r?((i-n)/s+2)*60:((n-r)/s+4)*60);let u=0;return s!==0&&(u=l>.5?s/(2-a-o):s/(a+o)),{first:Math.round(c),second:Math.round(u*100),third:Math.round(l*100)}},v=e=>{let t=f(e.first),n=p(e.second)/100,r=p(e.third)/100,i=e=>{let i=(t+e)/30;return d((r-n*Math.min(r,1-r)*Math.max(-1,Math.min(i%2-1,1)))*255)};return g({first:i(0),second:i(8),third:i(4)})},y=t=>{let n=t.toUpperCase(),r=n.startsWith(`#`)?n.slice(1):n;if(!/^[0-9A-F]{3}$/.test(r)&&!/^[0-9A-F]{6}$/.test(r))return;let i=`#${r}`;if(e.n(i))return g(h(i)??{first:0,second:0,third:0})},b=e=>e.slice(1).toUpperCase(),x=e=>{let t=e.first/255,n=e.second/255,r=e.third/255,i=Math.max(t,n,r),a=i-Math.min(t,n,r),o=0;a!==0&&(o=i===t?(n-r)/a%6:i===n?(r-t)/a+2:(t-n)/a+4,o=Math.round(o*60),o<0&&(o+=360));let s=i===0?0:a/i;return{hue:o,saturation:s,value:i}},S=e=>{let t=e.value*e.saturation,n=e.hue/60,r=t*(1-Math.abs(n%2-1)),i=e.value-t,a=0,o=0,s=0;return n>=0&&n<1?(a=t,o=r):n>=1&&n<2?(a=r,o=t):n>=2&&n<3?(o=t,s=r):n>=3&&n<4?(o=r,s=t):n>=4&&n<5?(a=r,s=t):(a=t,s=r),{first:d((a+i)*255),second:d((o+i)*255),third:d((s+i)*255)}},C=e=>{let t=h(e);if(t)return x(t)},w=e=>g(S(e)),T=[t.o.HEX,t.o.RGB,t.o.HSL],E={[t.o.HEX]:`Hex`,[t.o.RGB]:`RGB`,[t.o.HSL]:`HSL`},D=e=>{let t=getComputedStyle(e).backgroundColor.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(!t)return;let n=Number.parseInt(t[1]??`0`,10),r=Number.parseInt(t[2]??`0`,10),i=Number.parseInt(t[3]??`0`,10);return`#${n.toString(16).padStart(2,`0`).toUpperCase()}${r.toString(16).padStart(2,`0`).toUpperCase()}${i.toString(16).padStart(2,`0`).toUpperCase()}`},O=(t,r)=>{if(n.n(t)&&e.n(t))return t;if(r)return D(r)},k=(e,n)=>n===t.o.HEX?b(e):n===t.o.RGB?h(e)??{first:0,second:0,third:0}:_(e)??{first:0,second:0,third:0},A=e=>{let t=Number.parseInt(e,10);if(!Number.isNaN(t))return t},j=(e,n)=>{if(e===t.o.HEX)return typeof n==`string`?y(n):void 0;if(typeof n==`string`)return;if(e===t.o.RGB){let e=g({first:A(String(n.first))??0,second:A(String(n.second))??0,third:A(String(n.third))??0});return h(e)?e:void 0}let r=v({first:A(String(n.first))??0,second:A(String(n.second))??0,third:A(String(n.third))??0});if(r&&_(r))return r},M=17,N=`#000000`,P=e=>e??N,F=({modelValue:e,getEditableHex:t,saturationAreaRef:n,hueSliderRef:r,disabled:i,readonly:a})=>{let o=C(P(t()))??{hue:0,saturation:0,value:0},s=(0,c.ref)(o.hue),l=(0,c.ref)(o.saturation),d=(0,c.ref)(o.value),f=(0,c.ref)(!1),p=(0,c.ref)(!1),m=(0,c.ref)(!1),h=(0,c.shallowRef)(null),g=(0,c.shallowRef)(null),_=(0,c.computed)(()=>w({hue:s.value,saturation:l.value,value:d.value})),v=(0,c.computed)(()=>w({hue:s.value,saturation:1,value:1})),y=e=>{s.value=Math.max(0,Math.min(360,e))},b=(e,t)=>{l.value=Math.max(0,Math.min(1,e)),d.value=Math.max(0,Math.min(1,t))},x=e=>{let t=C(P(e));t&&(f.value=!0,t.saturation>0&&(s.value=t.hue),l.value=t.saturation,d.value=t.value,f.value=!1)},S=()=>{let e=t();e&&e.toUpperCase()!==_.value.toUpperCase()&&x(e)},T=()=>{let n=_.value;t()?.toUpperCase()!==n.toUpperCase()&&(f.value=!0,e.value=n,f.value=!1)};(0,c.watch)([s,l,d],()=>{f.value||T()}),(0,c.watch)(e,()=>{f.value||S()}),(0,c.onMounted)(()=>{(0,c.nextTick)(()=>{E(),D(),S()})});let E=()=>{h.value=n.value?.getBoundingClientRect()??null},D=()=>{g.value=r.value?.getBoundingClientRect()??null},O=(0,c.computed)(()=>{let e=h.value;return e?{transform:`translate3d(calc(${l.value*e.width}px - 50%), calc(${(1-d.value)*e.height}px - 50%), 0)`}:{}}),k=(0,c.computed)(()=>{let e=g.value;return e?{transform:`translate3d(-50%, calc(${s.value/360*e.height}px - 50%), 0)`}:{}}),A=()=>!i.value&&!a.value,j=e=>{let t=h.value;if(!t)return;let n=Math.max(0,Math.min(e.clientX-t.left,t.width)),r=Math.max(0,Math.min(e.clientY-t.top,t.height));b(n/t.width,1-r/t.height)},M=e=>{let t=g.value;t&&y(Math.max(0,Math.min(e.clientY-t.top,t.height))/t.height*360)},N=e=>{A()&&(E(),p.value=!0,j(e),e.currentTarget instanceof HTMLElement&&e.currentTarget.setPointerCapture(e.pointerId))},F=e=>{A()&&(D(),m.value=!0,M(e),e.currentTarget instanceof HTMLElement&&e.currentTarget.setPointerCapture(e.pointerId))},I=()=>{p.value=!1},L=()=>{m.value=!1};return(0,u.useEventListener)(n,`pointermove`,e=>{p.value&&j(e)}),(0,u.useEventListener)(n,`pointerup`,I),(0,u.useEventListener)(n,`pointercancel`,I),(0,u.useEventListener)(n,`lostpointercapture`,I),(0,u.useEventListener)(r,`pointermove`,e=>{m.value&&M(e)}),(0,u.useEventListener)(r,`pointerup`,L),(0,u.useEventListener)(r,`pointercancel`,L),(0,u.useEventListener)(r,`lostpointercapture`,L),{hexColor:_,hueBackground:v,saturationPointerStyle:O,huePointerStyle:k,handleSaturationPointerDown:N,handleHuePointerDown:F,syncFromModelValue:S}},I=e=>{if(!e)return null;let t=e.$el;if(!(t instanceof HTMLElement))return null;let n=t.querySelector(`.s-ui-color-swatch__fill`);return n instanceof HTMLElement?n:null},L={class:`s-ui-color-area__canvas-row`},R=[`aria-label`],z=[`aria-label`,`aria-disabled`],B=(0,c.defineComponent)({__name:`SColorArea`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,c.useModel)(e,`modelValue`),{t:r}=(0,l.useUiKitI18n)(),i=(0,c.useTemplateRef)(`colorResolutionSwatchRef`),a=(0,c.useTemplateRef)(`saturationAreaRef`),o=(0,c.useTemplateRef)(`hueSliderRef`),s=()=>O(t.value,I(i.value)),u=(0,c.computed)(()=>n.a(t.value)),{hexColor:d,hueBackground:f,saturationPointerStyle:p,huePointerStyle:m,handleSaturationPointerDown:h,handleHuePointerDown:g}=F({modelValue:t,getEditableHex:s,saturationAreaRef:a,hueSliderRef:o,disabled:(0,c.toRef)(()=>e.disabled),readonly:(0,c.toRef)(()=>e.readonly)});return(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,(0,c.mergeProps)({class:[`s-ui-color-area`,{"s-ui-color-area--disabled":e.disabled,"s-ui-color-area--readonly":e.readonly}]},t.$attrs),[(0,c.createVNode)((0,c.unref)(l.SColorSwatch),{ref_key:`colorResolutionSwatchRef`,ref:i,class:`s-ui-color-area__color-resolution`,color:u.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_24,tabindex:`-1`,"aria-hidden":`true`},null,8,[`color`,`size`]),(0,c.createElementVNode)(`div`,L,[(0,c.createElementVNode)(`div`,{ref_key:`saturationAreaRef`,ref:a,class:`s-ui-color-area__canvas`,role:`img`,"aria-label":(0,c.unref)(r)(`colorArea.saturationBrightness`),style:(0,c.normalizeStyle)({"--s-ui-color-area-hue":(0,c.unref)(f)}),onPointerdown:n[0]||=(...e)=>(0,c.unref)(h)&&(0,c.unref)(h)(...e)},[(0,c.createElementVNode)(`div`,{class:`s-ui-color-area__canvas-pointer`,style:(0,c.normalizeStyle)({...(0,c.unref)(p),backgroundColor:(0,c.unref)(d)})},null,4)],44,R),(0,c.createElementVNode)(`div`,{ref_key:`hueSliderRef`,ref:o,class:`s-ui-color-area__hue`,role:`slider`,"aria-label":(0,c.unref)(r)(`colorArea.hue`),"aria-valuemin":`0`,"aria-valuemax":`360`,"aria-disabled":e.disabled||e.readonly,onPointerdown:n[1]||=(...e)=>(0,c.unref)(g)&&(0,c.unref)(g)(...e)},[(0,c.createElementVNode)(`div`,{class:`s-ui-color-area__hue-pointer`,style:(0,c.normalizeStyle)({...(0,c.unref)(m),backgroundColor:(0,c.unref)(f)})},null,4)],40,z)])],16))}}),V={class:`s-ui-color-values__left`},H={class:`s-ui-color-values__format`},U={class:`s-ui-color-values__value-group`},W={class:`s-ui-color-values__inputs`},G={key:0,class:`s-ui-color-values__input-wrap`},K=[`disabled`,`readonly`,`aria-label`],q={class:`s-ui-color-values__input-wrap`},J=[`disabled`,`readonly`,`aria-label`],Y={class:`s-ui-color-values__input-wrap`},X=[`disabled`,`readonly`,`aria-label`],Z={class:`s-ui-color-values__input-wrap`},Q=[`disabled`,`readonly`,`aria-label`],$=(0,c.defineComponent)({__name:`SColorValues`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},formats:{default:()=>T}},{modelValue:{required:!0},modelModifiers:{},format:{default:t.o.HEX},formatModifiers:{}}),emits:(0,c.mergeModels)([`formatDropdownOpen`,`formatDropdownClose`],[`update:modelValue`,`update:format`]),setup(e,{emit:i}){let{t:a}=(0,l.useUiKitI18n)(),o=(0,c.useModel)(e,`modelValue`),u=(0,c.useModel)(e,`format`),d=i,f=(0,c.useTemplateRef)(`previewSwatchRef`),p=(0,c.ref)(``),m=(0,c.ref)(`0`),h=(0,c.ref)(`0`),g=(0,c.ref)(`0`),_=(0,c.computed)(()=>(e.formats.length>0?e.formats:T).map(e=>({value:e,label:E[e]}))),v=(0,c.computed)(()=>n.a(o.value)),y=(0,c.computed)(()=>O(o.value,I(f.value))),b=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.redChannel`):a(`colorValues.hueChannel`)),x=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.greenChannel`):a(`colorValues.saturationChannel`)),S=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.blueChannel`):a(`colorValues.lightnessChannel`)),C=()=>{let e=y.value;if(!e)return;let n=k(e,u.value);if(u.value===t.o.HEX&&typeof n==`string`){p.value=n;return}typeof n==`object`&&(m.value=String(n.first),h.value=String(n.second),g.value=String(n.third))};(0,c.watch)([o,u,y],()=>{C()}),(0,c.onMounted)(()=>{(0,c.nextTick)(()=>{C()})});let w=()=>{if(e.disabled||e.readonly)return;if(u.value===t.o.HEX){let e=j(t.o.HEX,p.value);e&&(o.value=e),C();return}let n=j(u.value,{first:Number.parseInt(m.value,10),second:Number.parseInt(h.value,10),third:Number.parseInt(g.value,10)});n&&(o.value=n),C()},D=e=>{e.key===`Enter`&&(e.preventDefault(),w())};return(n,i)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,(0,c.mergeProps)({class:[`s-ui-color-values`,{"s-ui-color-values--disabled":e.disabled,"s-ui-color-values--readonly":e.readonly}]},n.$attrs),[(0,c.createElementVNode)(`div`,V,[(0,c.createVNode)((0,c.unref)(l.SColorSwatch),{ref_key:`previewSwatchRef`,ref:f,class:`s-ui-color-values__preview`,color:v.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,tabindex:`-1`,"aria-hidden":`true`},null,8,[`color`,`size`,`disabled`]),(0,c.createElementVNode)(`div`,H,[(0,c.createVNode)((0,c.unref)(s.t),{modelValue:u.value,"onUpdate:modelValue":i[0]||=e=>u.value=e,class:`s-ui-color-values__format-select`,options:_.value,disabled:e.disabled,readonly:e.readonly,bordered:!0,clearable:!1,"close-on-select":!0,"fit-viewport":!1,"aria-label":(0,c.unref)(a)(`colorValues.format`),onOpen:i[1]||=e=>d(`formatDropdownOpen`),onClose:i[2]||=e=>d(`formatDropdownClose`)},null,8,[`modelValue`,`options`,`disabled`,`readonly`,`aria-label`])])]),(0,c.createElementVNode)(`div`,U,[(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-values__pipette`,appearance:(0,c.unref)(r.n).BARE,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,icon:`pipette`,"aria-label":(0,c.unref)(a)(`colorValues.pickColor`),"aria-disabled":`true`,disabled:e.disabled,tabindex:`-1`},null,8,[`appearance`,`variant`,`size`,`aria-label`,`disabled`]),i[9]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,W,[u.value===(0,c.unref)(t.o).HEX?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,G,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[3]||=e=>p.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`text`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":(0,c.unref)(a)(`colorValues.hexValue`),onBlur:w,onKeydown:D},null,40,K),[[c.vModelText,p.value]])])):((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:1},[(0,c.createElementVNode)(`div`,q,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[4]||=e=>m.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":b.value,onBlur:w,onKeydown:D},null,40,J),[[c.vModelText,m.value]])]),i[7]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,Y,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[5]||=e=>h.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":x.value,onBlur:w,onKeydown:D},null,40,X),[[c.vModelText,h.value]])]),i[8]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,Z,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[6]||=e=>g.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":S.value,onBlur:w,onKeydown:D},null,40,Q),[[c.vModelText,g.value]])])],64))])])],16))}}),ee={class:`s-ui-color-picker__section`},te={class:`s-ui-color-picker__label`},ne={class:`s-ui-color-picker__section`},re={class:`s-ui-color-picker__label`},ie={class:`s-ui-color-picker__custom-editor`},ae={class:`s-ui-color-picker__custom-actions`},oe=(0,c.defineComponent)({__name:`SColorPicker`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},recommendedColors:{},recentColors:{default:()=>[]}},{modelValue:{},modelModifiers:{}}),emits:(0,c.mergeModels)([`select`,`customEditorOpen`,`customEditorClose`,`formatDropdownOpen`,`formatDropdownClose`],[`update:modelValue`]),setup(e,{emit:n}){let s=(0,c.useModel)(e,`modelValue`),u=n,{t:d}=(0,l.useUiKitI18n)(),f=(0,c.ref)(!1),p=(0,c.ref)(`#526DE3`),m=(0,c.ref)(t.o.HEX),h=(0,c.computed)(()=>e.recommendedColors&&e.recommendedColors.length>0?e.recommendedColors:t.r),g=(0,c.computed)(()=>e.recentColors.length<=17?e.recentColors:e.recentColors.slice(0,17)),_=()=>{if(s.value){p.value=s.value;return}p.value=`#526DE3`},v=e=>{u(`select`,e)},y=()=>{s.value=p.value,u(`select`,p.value),f.value=!1},b=()=>{f.value=!1};return(0,c.watch)(f,(e,t)=>{if(e&&!t){_(),u(`customEditorOpen`);return}!e&&t&&u(`customEditorClose`)}),(n,_)=>((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(o.t),(0,c.mergeProps)({width:336},n.$attrs),{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`s-ui-color-picker`,{"s-ui-color-picker--disabled":e.disabled}])},[(0,c.createElementVNode)(`section`,ee,[(0,c.createElementVNode)(`span`,te,(0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.recommendedColors`)),1),(0,c.createVNode)((0,c.unref)(t.t),{modelValue:s.value,"onUpdate:modelValue":_[0]||=e=>s.value=e,class:`s-ui-color-picker__palette`,layout:(0,c.unref)(t.n).GRID,colors:h.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,onSelect:v},null,8,[`modelValue`,`layout`,`colors`,`size`,`disabled`])]),(0,c.createElementVNode)(`section`,ne,[(0,c.createElementVNode)(`span`,re,(0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.recentColors`)),1),(0,c.createVNode)((0,c.unref)(t.t),{modelValue:s.value,"onUpdate:modelValue":_[7]||=e=>s.value=e,class:`s-ui-color-picker__palette`,layout:(0,c.unref)(t.n).ROW,colors:g.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,onSelect:v},{append:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(a.t),{modelValue:f.value,"onUpdate:modelValue":_[6]||=e=>f.value=e,placement:(0,c.unref)(i.a).RIGHT_START,offset:8,shift:!0,flip:!0,disabled:e.disabled,"dismiss-on-click-outside":!0,"dismiss-on-escape":!0},{trigger:(0,c.withCtx)(({toggle:t,triggerProps:n})=>[(0,c.createVNode)((0,c.unref)(r.t),(0,c.mergeProps)(n,{class:`s-ui-color-picker__add-button`,appearance:(0,c.unref)(r.n).OUTLINED,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,icon:`plus`,"aria-label":(0,c.unref)(d)(`colorPicker.addCustomColor`),disabled:e.disabled,onClick:t}),null,16,[`appearance`,`variant`,`size`,`aria-label`,`disabled`,`onClick`])]),content:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(o.t),{width:320},{footer:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,ae,[(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-picker__save-button`,appearance:(0,c.unref)(r.n).MAJOR,variant:(0,c.unref)(r.i).MAIN,size:(0,c.unref)(r.r).SMALL,disabled:e.disabled,onClick:y},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.save`)),1)]),_:1},8,[`appearance`,`variant`,`size`,`disabled`]),(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-picker__cancel-button`,appearance:(0,c.unref)(r.n).MINOR,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,disabled:e.disabled,onClick:b},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.cancel`)),1)]),_:1},8,[`appearance`,`variant`,`size`,`disabled`])])]),default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,ie,[(0,c.createVNode)(B,{modelValue:p.value,"onUpdate:modelValue":_[1]||=e=>p.value=e,disabled:e.disabled},null,8,[`modelValue`,`disabled`]),(0,c.createVNode)($,{modelValue:p.value,"onUpdate:modelValue":_[2]||=e=>p.value=e,format:m.value,"onUpdate:format":_[3]||=e=>m.value=e,disabled:e.disabled,onFormatDropdownOpen:_[4]||=e=>u(`formatDropdownOpen`),onFormatDropdownClose:_[5]||=e=>u(`formatDropdownClose`)},null,8,[`modelValue`,`format`,`disabled`])])]),_:1})]),_:1},8,[`modelValue`,`placement`,`disabled`])]),_:1},8,[`modelValue`,`layout`,`colors`,`size`,`disabled`])])],2)]),_:1},16))}});Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return oe}});
1
+ const e=require("./contrastSurfaceTextColor-BRjRzXyZ.cjs"),t=require("./SColorPalette-CqIA4Qtp.cjs"),n=require("./colorValue-Dda7fKd3.cjs"),r=require("./SButton-CLTNdnCK.cjs"),i=require("./useFloatingOverlay-CwGCMrig.cjs"),a=require("./SDropdown-B8Z4oNMk.cjs"),o=require("./SDropdownMenu-k9SxaFVH.cjs"),s=require("./SSelect-mnobObXO.cjs");let c=require("vue"),l=require("@shtabapp/ui-kit-primitives"),u=require("@vueuse/core");var d=e=>Math.max(0,Math.min(255,Math.round(e))),f=e=>{let t=e%360;return t<0?t+360:t},p=e=>Math.max(0,Math.min(100,Math.round(e))),m=e=>{let t=e.slice(1);if(t.length===3){let e=t[0],n=t[1],r=t[2];return!e||!n||!r?void 0:`${e}${e}${n}${n}${r}${r}`}if(t.length===6||t.length===8)return t.slice(0,6)},h=e=>{let t=m(e);if(!t)return;let n=Number.parseInt(t.slice(0,2),16),r=Number.parseInt(t.slice(2,4),16),i=Number.parseInt(t.slice(4,6),16);if(!(Number.isNaN(n)||Number.isNaN(r)||Number.isNaN(i)))return{first:n,second:r,third:i}},g=e=>{let t=d(e.first),n=d(e.second),r=d(e.third);return`#${t.toString(16).padStart(2,`0`).toUpperCase()}${n.toString(16).padStart(2,`0`).toUpperCase()}${r.toString(16).padStart(2,`0`).toUpperCase()}`},_=e=>{let t=h(e);if(!t)return;let n=t.first/255,r=t.second/255,i=t.third/255,a=Math.max(n,r,i),o=Math.min(n,r,i),s=a-o,c=0,l=(a+o)/2;s!==0&&(c=a===n?((r-i)/s+(r<i?6:0))*60:a===r?((i-n)/s+2)*60:((n-r)/s+4)*60);let u=0;return s!==0&&(u=l>.5?s/(2-a-o):s/(a+o)),{first:Math.round(c),second:Math.round(u*100),third:Math.round(l*100)}},v=e=>{let t=f(e.first),n=p(e.second)/100,r=p(e.third)/100,i=e=>{let i=(t+e)/30;return d((r-n*Math.min(r,1-r)*Math.max(-1,Math.min(i%2-1,1)))*255)};return g({first:i(0),second:i(8),third:i(4)})},y=t=>{let n=t.toUpperCase(),r=n.startsWith(`#`)?n.slice(1):n;if(!/^[0-9A-F]{3}$/.test(r)&&!/^[0-9A-F]{6}$/.test(r))return;let i=`#${r}`;if(e.n(i))return g(h(i)??{first:0,second:0,third:0})},b=e=>e.slice(1).toUpperCase(),x=e=>{let t=e.first/255,n=e.second/255,r=e.third/255,i=Math.max(t,n,r),a=i-Math.min(t,n,r),o=0;a!==0&&(o=i===t?(n-r)/a%6:i===n?(r-t)/a+2:(t-n)/a+4,o=Math.round(o*60),o<0&&(o+=360));let s=i===0?0:a/i;return{hue:o,saturation:s,value:i}},S=e=>{let t=e.value*e.saturation,n=e.hue/60,r=t*(1-Math.abs(n%2-1)),i=e.value-t,a=0,o=0,s=0;return n>=0&&n<1?(a=t,o=r):n>=1&&n<2?(a=r,o=t):n>=2&&n<3?(o=t,s=r):n>=3&&n<4?(o=r,s=t):n>=4&&n<5?(a=r,s=t):(a=t,s=r),{first:d((a+i)*255),second:d((o+i)*255),third:d((s+i)*255)}},C=e=>{let t=h(e);if(t)return x(t)},w=e=>g(S(e)),T=[t.o.HEX,t.o.RGB,t.o.HSL],E={[t.o.HEX]:`Hex`,[t.o.RGB]:`RGB`,[t.o.HSL]:`HSL`},D=e=>{let t=getComputedStyle(e).backgroundColor.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(!t)return;let n=Number.parseInt(t[1]??`0`,10),r=Number.parseInt(t[2]??`0`,10),i=Number.parseInt(t[3]??`0`,10);return`#${n.toString(16).padStart(2,`0`).toUpperCase()}${r.toString(16).padStart(2,`0`).toUpperCase()}${i.toString(16).padStart(2,`0`).toUpperCase()}`},O=(t,r)=>{if(n.n(t)&&e.n(t))return t;if(r)return D(r)},k=(e,n)=>n===t.o.HEX?b(e):n===t.o.RGB?h(e)??{first:0,second:0,third:0}:_(e)??{first:0,second:0,third:0},A=e=>{let t=Number.parseInt(e,10);if(!Number.isNaN(t))return t},j=(e,n)=>{if(e===t.o.HEX)return typeof n==`string`?y(n):void 0;if(typeof n==`string`)return;if(e===t.o.RGB){let e=g({first:A(String(n.first))??0,second:A(String(n.second))??0,third:A(String(n.third))??0});return h(e)?e:void 0}let r=v({first:A(String(n.first))??0,second:A(String(n.second))??0,third:A(String(n.third))??0});if(r&&_(r))return r},M=17,N=`#000000`,P=e=>e??N,F=({modelValue:e,getEditableHex:t,saturationAreaRef:n,hueSliderRef:r,disabled:i,readonly:a})=>{let o=C(P(t()))??{hue:0,saturation:0,value:0},s=(0,c.ref)(o.hue),l=(0,c.ref)(o.saturation),d=(0,c.ref)(o.value),f=(0,c.ref)(!1),p=(0,c.ref)(!1),m=(0,c.ref)(!1),h=(0,c.shallowRef)(null),g=(0,c.shallowRef)(null),_=(0,c.computed)(()=>w({hue:s.value,saturation:l.value,value:d.value})),v=(0,c.computed)(()=>w({hue:s.value,saturation:1,value:1})),y=e=>{s.value=Math.max(0,Math.min(360,e))},b=(e,t)=>{l.value=Math.max(0,Math.min(1,e)),d.value=Math.max(0,Math.min(1,t))},x=e=>{let t=C(P(e));t&&(f.value=!0,t.saturation>0&&(s.value=t.hue),l.value=t.saturation,d.value=t.value,f.value=!1)},S=()=>{let e=t();e&&e.toUpperCase()!==_.value.toUpperCase()&&x(e)},T=()=>{let n=_.value;t()?.toUpperCase()!==n.toUpperCase()&&(f.value=!0,e.value=n,f.value=!1)};(0,c.watch)([s,l,d],()=>{f.value||T()}),(0,c.watch)(e,()=>{f.value||S()}),(0,c.onMounted)(()=>{(0,c.nextTick)(()=>{E(),D(),S()})});let E=()=>{h.value=n.value?.getBoundingClientRect()??null},D=()=>{g.value=r.value?.getBoundingClientRect()??null},O=(0,c.computed)(()=>{let e=h.value;return e?{transform:`translate3d(calc(${l.value*e.width}px - 50%), calc(${(1-d.value)*e.height}px - 50%), 0)`}:{}}),k=(0,c.computed)(()=>{let e=g.value;return e?{transform:`translate3d(-50%, calc(${s.value/360*e.height}px - 50%), 0)`}:{}}),A=()=>!i.value&&!a.value,j=e=>{let t=h.value;if(!t)return;let n=Math.max(0,Math.min(e.clientX-t.left,t.width)),r=Math.max(0,Math.min(e.clientY-t.top,t.height));b(n/t.width,1-r/t.height)},M=e=>{let t=g.value;t&&y(Math.max(0,Math.min(e.clientY-t.top,t.height))/t.height*360)},N=e=>{A()&&(E(),p.value=!0,j(e),e.currentTarget instanceof HTMLElement&&e.currentTarget.setPointerCapture(e.pointerId))},F=e=>{A()&&(D(),m.value=!0,M(e),e.currentTarget instanceof HTMLElement&&e.currentTarget.setPointerCapture(e.pointerId))},I=()=>{p.value=!1},L=()=>{m.value=!1};return(0,u.useEventListener)(n,`pointermove`,e=>{p.value&&j(e)}),(0,u.useEventListener)(n,`pointerup`,I),(0,u.useEventListener)(n,`pointercancel`,I),(0,u.useEventListener)(n,`lostpointercapture`,I),(0,u.useEventListener)(r,`pointermove`,e=>{m.value&&M(e)}),(0,u.useEventListener)(r,`pointerup`,L),(0,u.useEventListener)(r,`pointercancel`,L),(0,u.useEventListener)(r,`lostpointercapture`,L),{hexColor:_,hueBackground:v,saturationPointerStyle:O,huePointerStyle:k,handleSaturationPointerDown:N,handleHuePointerDown:F,syncFromModelValue:S}},I=e=>{if(!e)return null;let t=e.$el;if(!(t instanceof HTMLElement))return null;let n=t.querySelector(`.s-ui-color-swatch__fill`);return n instanceof HTMLElement?n:null},L={class:`s-ui-color-area__canvas-row`},R=[`aria-label`],z=[`aria-label`,`aria-disabled`],B=(0,c.defineComponent)({__name:`SColorArea`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,c.useModel)(e,`modelValue`),{t:r}=(0,l.useUiKitI18n)(),i=(0,c.useTemplateRef)(`colorResolutionSwatchRef`),a=(0,c.useTemplateRef)(`saturationAreaRef`),o=(0,c.useTemplateRef)(`hueSliderRef`),s=()=>O(t.value,I(i.value)),u=(0,c.computed)(()=>n.a(t.value)),{hexColor:d,hueBackground:f,saturationPointerStyle:p,huePointerStyle:m,handleSaturationPointerDown:h,handleHuePointerDown:g}=F({modelValue:t,getEditableHex:s,saturationAreaRef:a,hueSliderRef:o,disabled:(0,c.toRef)(()=>e.disabled),readonly:(0,c.toRef)(()=>e.readonly)});return(t,n)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,(0,c.mergeProps)({class:[`s-ui-color-area`,{"s-ui-color-area--disabled":e.disabled,"s-ui-color-area--readonly":e.readonly}]},t.$attrs),[(0,c.createVNode)((0,c.unref)(l.SColorSwatch),{ref_key:`colorResolutionSwatchRef`,ref:i,class:`s-ui-color-area__color-resolution`,color:u.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_24,tabindex:`-1`,"aria-hidden":`true`},null,8,[`color`,`size`]),(0,c.createElementVNode)(`div`,L,[(0,c.createElementVNode)(`div`,{ref_key:`saturationAreaRef`,ref:a,class:`s-ui-color-area__canvas`,role:`img`,"aria-label":(0,c.unref)(r)(`colorArea.saturationBrightness`),style:(0,c.normalizeStyle)({"--s-ui-color-area-hue":(0,c.unref)(f)}),onPointerdown:n[0]||=(...e)=>(0,c.unref)(h)&&(0,c.unref)(h)(...e)},[(0,c.createElementVNode)(`div`,{class:`s-ui-color-area__canvas-pointer`,style:(0,c.normalizeStyle)({...(0,c.unref)(p),backgroundColor:(0,c.unref)(d)})},null,4)],44,R),(0,c.createElementVNode)(`div`,{ref_key:`hueSliderRef`,ref:o,class:`s-ui-color-area__hue`,role:`slider`,"aria-label":(0,c.unref)(r)(`colorArea.hue`),"aria-valuemin":`0`,"aria-valuemax":`360`,"aria-disabled":e.disabled||e.readonly,onPointerdown:n[1]||=(...e)=>(0,c.unref)(g)&&(0,c.unref)(g)(...e)},[(0,c.createElementVNode)(`div`,{class:`s-ui-color-area__hue-pointer`,style:(0,c.normalizeStyle)({...(0,c.unref)(m),backgroundColor:(0,c.unref)(f)})},null,4)],40,z)])],16))}}),V={class:`s-ui-color-values__left`},H={class:`s-ui-color-values__format`},U={class:`s-ui-color-values__value-group`},W={class:`s-ui-color-values__inputs`},G={key:0,class:`s-ui-color-values__input-wrap`},K=[`disabled`,`readonly`,`aria-label`],q={class:`s-ui-color-values__input-wrap`},J=[`disabled`,`readonly`,`aria-label`],Y={class:`s-ui-color-values__input-wrap`},X=[`disabled`,`readonly`,`aria-label`],Z={class:`s-ui-color-values__input-wrap`},Q=[`disabled`,`readonly`,`aria-label`],$=(0,c.defineComponent)({__name:`SColorValues`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},formats:{default:()=>T}},{modelValue:{required:!0},modelModifiers:{},format:{default:t.o.HEX},formatModifiers:{}}),emits:(0,c.mergeModels)([`formatDropdownOpen`,`formatDropdownClose`],[`update:modelValue`,`update:format`]),setup(e,{emit:i}){let{t:a}=(0,l.useUiKitI18n)(),o=(0,c.useModel)(e,`modelValue`),u=(0,c.useModel)(e,`format`),d=i,f=(0,c.useTemplateRef)(`previewSwatchRef`),p=(0,c.ref)(``),m=(0,c.ref)(`0`),h=(0,c.ref)(`0`),g=(0,c.ref)(`0`),_=(0,c.computed)(()=>(e.formats.length>0?e.formats:T).map(e=>({value:e,label:E[e]}))),v=(0,c.computed)(()=>n.a(o.value)),y=(0,c.computed)(()=>O(o.value,I(f.value))),b=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.redChannel`):a(`colorValues.hueChannel`)),x=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.greenChannel`):a(`colorValues.saturationChannel`)),S=(0,c.computed)(()=>u.value===t.o.RGB?a(`colorValues.blueChannel`):a(`colorValues.lightnessChannel`)),C=()=>{let e=y.value;if(!e)return;let n=k(e,u.value);if(u.value===t.o.HEX&&typeof n==`string`){p.value=n;return}typeof n==`object`&&(m.value=String(n.first),h.value=String(n.second),g.value=String(n.third))};(0,c.watch)([o,u,y],()=>{C()}),(0,c.onMounted)(()=>{(0,c.nextTick)(()=>{C()})});let w=()=>{if(e.disabled||e.readonly)return;if(u.value===t.o.HEX){let e=j(t.o.HEX,p.value);e&&(o.value=e),C();return}let n=j(u.value,{first:Number.parseInt(m.value,10),second:Number.parseInt(h.value,10),third:Number.parseInt(g.value,10)});n&&(o.value=n),C()},D=e=>{e.key===`Enter`&&(e.preventDefault(),w())};return(n,i)=>((0,c.openBlock)(),(0,c.createElementBlock)(`div`,(0,c.mergeProps)({class:[`s-ui-color-values`,{"s-ui-color-values--disabled":e.disabled,"s-ui-color-values--readonly":e.readonly}]},n.$attrs),[(0,c.createElementVNode)(`div`,V,[(0,c.createVNode)((0,c.unref)(l.SColorSwatch),{ref_key:`previewSwatchRef`,ref:f,class:`s-ui-color-values__preview`,color:v.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,tabindex:`-1`,"aria-hidden":`true`},null,8,[`color`,`size`,`disabled`]),(0,c.createElementVNode)(`div`,H,[(0,c.createVNode)((0,c.unref)(s.t),{modelValue:u.value,"onUpdate:modelValue":i[0]||=e=>u.value=e,class:`s-ui-color-values__format-select`,options:_.value,disabled:e.disabled,readonly:e.readonly,bordered:!0,clearable:!1,"close-on-select":!0,"fit-viewport":!1,"aria-label":(0,c.unref)(a)(`colorValues.format`),onOpen:i[1]||=e=>d(`formatDropdownOpen`),onClose:i[2]||=e=>d(`formatDropdownClose`)},null,8,[`modelValue`,`options`,`disabled`,`readonly`,`aria-label`])])]),(0,c.createElementVNode)(`div`,U,[(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-values__pipette`,appearance:(0,c.unref)(r.n).BARE,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,icon:`pipette`,"aria-label":(0,c.unref)(a)(`colorValues.pickColor`),"aria-disabled":`true`,disabled:e.disabled,tabindex:`-1`},null,8,[`appearance`,`variant`,`size`,`aria-label`,`disabled`]),i[9]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,W,[u.value===(0,c.unref)(t.o).HEX?((0,c.openBlock)(),(0,c.createElementBlock)(`div`,G,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[3]||=e=>p.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`text`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":(0,c.unref)(a)(`colorValues.hexValue`),onBlur:w,onKeydown:D},null,40,K),[[c.vModelText,p.value]])])):((0,c.openBlock)(),(0,c.createElementBlock)(c.Fragment,{key:1},[(0,c.createElementVNode)(`div`,q,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[4]||=e=>m.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":b.value,onBlur:w,onKeydown:D},null,40,J),[[c.vModelText,m.value]])]),i[7]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,Y,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[5]||=e=>h.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":x.value,onBlur:w,onKeydown:D},null,40,X),[[c.vModelText,h.value]])]),i[8]||=(0,c.createElementVNode)(`span`,{class:`s-ui-color-values__separator`,"aria-hidden":`true`},null,-1),(0,c.createElementVNode)(`div`,Z,[(0,c.withDirectives)((0,c.createElementVNode)(`input`,{"onUpdate:modelValue":i[6]||=e=>g.value=e,class:`s-ui-color-values__input s-ui-typography-body-14-regular`,type:`text`,inputmode:`numeric`,spellcheck:`false`,disabled:e.disabled,readonly:e.readonly,"aria-label":S.value,onBlur:w,onKeydown:D},null,40,Q),[[c.vModelText,g.value]])])],64))])])],16))}}),ee={class:`s-ui-color-picker__section`},te={class:`s-ui-color-picker__label`},ne={class:`s-ui-color-picker__section`},re={class:`s-ui-color-picker__label`},ie={class:`s-ui-color-picker__custom-editor`},ae={class:`s-ui-color-picker__custom-actions`},oe=(0,c.defineComponent)({__name:`SColorPicker`,props:(0,c.mergeModels)({disabled:{type:Boolean,default:!1},recommendedColors:{},recentColors:{default:()=>[]}},{modelValue:{},modelModifiers:{}}),emits:(0,c.mergeModels)([`select`,`customEditorOpen`,`customEditorClose`,`formatDropdownOpen`,`formatDropdownClose`],[`update:modelValue`]),setup(e,{emit:n}){let s=(0,c.useModel)(e,`modelValue`),u=n,{t:d}=(0,l.useUiKitI18n)(),f=(0,c.ref)(!1),p=(0,c.ref)(`#526DE3`),m=(0,c.ref)(t.o.HEX),h=(0,c.computed)(()=>e.recommendedColors&&e.recommendedColors.length>0?e.recommendedColors:t.r),g=(0,c.computed)(()=>e.recentColors.length<=17?e.recentColors:e.recentColors.slice(0,17)),_=()=>{if(s.value){p.value=s.value;return}p.value=`#526DE3`},v=e=>{u(`select`,e)},y=()=>{s.value=p.value,u(`select`,p.value),f.value=!1},b=()=>{f.value=!1};return(0,c.watch)(f,(e,t)=>{if(e&&!t){_(),u(`customEditorOpen`);return}!e&&t&&u(`customEditorClose`)}),(n,_)=>((0,c.openBlock)(),(0,c.createBlock)((0,c.unref)(o.t),(0,c.mergeProps)({width:336},n.$attrs),{default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,{class:(0,c.normalizeClass)([`s-ui-color-picker`,{"s-ui-color-picker--disabled":e.disabled}])},[(0,c.createElementVNode)(`section`,ee,[(0,c.createElementVNode)(`span`,te,(0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.recommendedColors`)),1),(0,c.createVNode)((0,c.unref)(t.t),{modelValue:s.value,"onUpdate:modelValue":_[0]||=e=>s.value=e,class:`s-ui-color-picker__palette`,layout:(0,c.unref)(t.n).GRID,colors:h.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,onSelect:v},null,8,[`modelValue`,`layout`,`colors`,`size`,`disabled`])]),(0,c.createElementVNode)(`section`,ne,[(0,c.createElementVNode)(`span`,re,(0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.recentColors`)),1),(0,c.createVNode)((0,c.unref)(t.t),{modelValue:s.value,"onUpdate:modelValue":_[7]||=e=>s.value=e,class:`s-ui-color-picker__palette`,layout:(0,c.unref)(t.n).ROW,colors:g.value,size:(0,c.unref)(l.ESColorSwatchSize).SIZE_32,disabled:e.disabled,onSelect:v},{append:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(a.t),{modelValue:f.value,"onUpdate:modelValue":_[6]||=e=>f.value=e,placement:(0,c.unref)(i.s).RIGHT_START,offset:8,shift:!0,flip:!0,disabled:e.disabled,"dismiss-on-click-outside":!0,"dismiss-on-escape":!0},{trigger:(0,c.withCtx)(({toggle:t,triggerProps:n})=>[(0,c.createVNode)((0,c.unref)(r.t),(0,c.mergeProps)(n,{class:`s-ui-color-picker__add-button`,appearance:(0,c.unref)(r.n).OUTLINED,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,icon:`plus`,"aria-label":(0,c.unref)(d)(`colorPicker.addCustomColor`),disabled:e.disabled,onClick:t}),null,16,[`appearance`,`variant`,`size`,`aria-label`,`disabled`,`onClick`])]),content:(0,c.withCtx)(()=>[(0,c.createVNode)((0,c.unref)(o.t),{width:320},{footer:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,ae,[(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-picker__save-button`,appearance:(0,c.unref)(r.n).MAJOR,variant:(0,c.unref)(r.i).MAIN,size:(0,c.unref)(r.r).SMALL,disabled:e.disabled,onClick:y},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.save`)),1)]),_:1},8,[`appearance`,`variant`,`size`,`disabled`]),(0,c.createVNode)((0,c.unref)(r.t),{class:`s-ui-color-picker__cancel-button`,appearance:(0,c.unref)(r.n).MINOR,variant:(0,c.unref)(r.i).NEUTRAL,size:(0,c.unref)(r.r).SMALL,disabled:e.disabled,onClick:b},{default:(0,c.withCtx)(()=>[(0,c.createTextVNode)((0,c.toDisplayString)((0,c.unref)(d)(`colorPicker.cancel`)),1)]),_:1},8,[`appearance`,`variant`,`size`,`disabled`])])]),default:(0,c.withCtx)(()=>[(0,c.createElementVNode)(`div`,ie,[(0,c.createVNode)(B,{modelValue:p.value,"onUpdate:modelValue":_[1]||=e=>p.value=e,disabled:e.disabled},null,8,[`modelValue`,`disabled`]),(0,c.createVNode)($,{modelValue:p.value,"onUpdate:modelValue":_[2]||=e=>p.value=e,format:m.value,"onUpdate:format":_[3]||=e=>m.value=e,disabled:e.disabled,onFormatDropdownOpen:_[4]||=e=>u(`formatDropdownOpen`),onFormatDropdownClose:_[5]||=e=>u(`formatDropdownClose`)},null,8,[`modelValue`,`format`,`disabled`])])]),_:1})]),_:1},8,[`modelValue`,`placement`,`disabled`])]),_:1},8,[`modelValue`,`layout`,`colors`,`size`,`disabled`])])],2)]),_:1},16))}});Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return oe}});
@@ -0,0 +1 @@
1
+ const e=require("./useFloatingOverlay-CwGCMrig.cjs");let t=require("vue"),n=require("@shtabapp/ui-kit-primitives"),r=require("@vueuse/core");var i=768,a=e=>{let n=(0,t.ref)(e.value),r=(0,t.ref)(e.value);return(0,t.watch)(e,e=>{if(e){n.value=!0,r.value=!0;return}n.value=!1},{flush:`sync`}),{isPanelShown:n,isPanelActive:r,handlePanelAfterLeave:()=>{e.value||(r.value=!1)}}},o=(e,n)=>{let i=(0,r.useMediaQuery)((0,t.computed)(()=>`(max-width: ${((0,t.toValue)(n)||768)-.02}px)`));return(0,t.computed)(()=>(0,t.toValue)(e)&&i.value)},s=Symbol(`SDropdown`),c=e=>{let n=(0,t.inject)(s,null),r=(0,t.shallowReactive)(new Set),i=(0,t.computed)(()=>[...r].filter(e=>e.isOpen())),a=(0,t.computed)(()=>i.value.length>0),o=(0,t.computed)(()=>i.value.flatMap(e=>e.getElements())),c={isOpen:()=>(0,t.toValue)(e.open),getElements:()=>{let n=(0,t.toValue)(e.element);return n?[n,...o.value]:o.value}};return(0,t.provide)(s,{registerChild:e=>{r.add(e)},unregisterChild:e=>{r.delete(e)}}),n&&(n.registerChild(c),(0,t.onScopeDispose)(()=>n.unregisterChild(c))),{hasOpenChild:a,descendantElements:o}},l=e=>{if(!e)return null;let t=e.getBoundingClientRect();if(t.width>0||t.height>0)return e;let n=e.firstElementChild;return n instanceof HTMLElement?n:e},u={OVERDRAG_LIMIT:50,CLOSE_DISTANCE_RATIO:.3,CLOSE_DISTANCE_LIMIT:140,CLOSE_VELOCITY:.5,SETTLE_TIMEOUT:400,INTERACTIVE_SELECTOR:`button, a[href], input, select, textarea, [role="button"], [contenteditable="true"]`},d=e=>{let n=(0,t.shallowRef)(0),i=(0,t.shallowRef)(!1),a=(0,t.shallowRef)(!1),o=null,s=0,c=0,l=0,d=0,f=0,p,m=(0,t.computed)(()=>i.value||a.value),h=()=>{clearTimeout(p),p=void 0,a.value=!1},g=()=>{a.value=!0,clearTimeout(p),p=setTimeout(h,u.SETTLE_TIMEOUT)},_=()=>{o=null,n.value=0,i.value=!1,h()},v=()=>(0,t.toValue)(e.popup)?.offsetHeight??0,y=()=>{let e=d-s;if(e<=0)return!1;let t=f-l;return(t>0?(d-c)/t:0)>=u.CLOSE_VELOCITY?!0:e>=Math.min(v()*u.CLOSE_DISTANCE_RATIO,u.CLOSE_DISTANCE_LIMIT)},b=e=>{o===null&&(e.pointerType===`mouse`&&e.button!==0||e.target instanceof Element&&e.target.closest(u.INTERACTIVE_SELECTOR)||(o=e.pointerId,s=e.clientY,d=e.clientY,c=e.clientY,f=e.timeStamp,l=e.timeStamp,h(),i.value=!0))},x=e=>{o===e.pointerId&&(c=d,l=f,d=e.clientY,f=e.timeStamp,n.value=Math.max(e.clientY-s,-u.OVERDRAG_LIMIT))},S=t=>{if(o===t.pointerId){if(o=null,i.value=!1,y()){a.value=!0,n.value=v()+u.OVERDRAG_LIMIT,e.onClose();return}if(n.value===0){h();return}g(),n.value=0}};return(0,r.useEventListener)(()=>(0,t.toValue)(e.handle),`pointerdown`,b),(0,r.useEventListener)(window,`pointermove`,x),(0,r.useEventListener)(window,`pointerup`,S),(0,r.useEventListener)(window,`pointercancel`,S),(0,r.useEventListener)(()=>(0,t.toValue)(e.popup),`transitionend`,e=>{e.propertyName!==`transform`||i.value||n.value!==0||h()}),(0,t.onScopeDispose)(()=>{clearTimeout(p)}),{isActive:m,popupStyles:(0,t.computed)(()=>{if(m.value)return{transform:`translate3d(0, ${n.value}px, 0)`,transition:a.value?`transform var(--s-ui-transition-duration-slow) var(--s-ui-transition-easing-standard)`:`none`}}),reset:_}},f=[`aria-label`],p={class:`s-ui-dropdown-sheet__side`},m={class:`s-ui-dropdown-sheet__title`},h={class:`s-ui-dropdown-sheet__side s-ui-dropdown-sheet__side--end`},g=[`id`],_=(0,t.defineComponent)({__name:`SDropdownSheet`,props:{open:{type:Boolean},title:{default:``},dismissOnOverlayClick:{type:Boolean,default:!0},dismissOnEscape:{type:Boolean,default:!0},hasOpenDescendant:{type:Boolean,default:!1},contentId:{}},emits:[`close`],setup(i,{expose:a,emit:o}){let s=o,{t:c}=(0,n.useUiKitI18n)(),l=(0,t.useTemplateRef)(`overlayRef`),u=(0,t.useTemplateRef)(`popupRef`),_=(0,t.useTemplateRef)(`headerRef`),v=()=>s(`close`),{isActive:y,popupStyles:b,reset:x}=d({handle:_,popup:u,onClose:v}),S=(0,r.useScrollLock)(()=>typeof document>`u`?null:document.body),C=()=>{i.dismissOnOverlayClick&&v()},w=e=>{y.value&&e.stopPropagation()},T=()=>x(),E=null,D=()=>{let e=document.activeElement;E=e instanceof HTMLElement?e:null},O=async()=>{await(0,t.nextTick)();let e=u.value;!e||e.contains(document.activeElement)||e.focus({preventScroll:!0})},k=()=>{let e=E,t=!!u.value?.contains(document.activeElement);E=null,!(!t||!e?.isConnected)&&e.focus({preventScroll:!0})};return(0,t.watch)(()=>i.open,e=>{if(S.value=e,e){D(),O();return}k()},{immediate:!0}),e.n({open:()=>i.open,enabled:()=>i.dismissOnEscape,hasOpenDescendant:()=>i.hasOpenDescendant,onDismiss:v}),(0,t.onBeforeUnmount)(()=>{S.value=!1}),a({overlayElement:l}),(e,n)=>((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{name:`s-ui-dropdown-sheet`,onAfterLeave:T},{default:(0,t.withCtx)(()=>[i.open?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,ref_key:`overlayRef`,ref:l,class:`s-ui-dropdown-sheet`,onClick:C},[(0,t.createElementVNode)(`div`,{ref_key:`popupRef`,ref:u,class:`s-ui-dropdown-sheet__popup`,style:(0,t.normalizeStyle)((0,t.unref)(b)),role:`dialog`,"aria-modal":`true`,"aria-label":i.title||(0,t.unref)(c)(`dropdown.sheet`),tabindex:`-1`,onClickCapture:w,onClick:n[0]||=(0,t.withModifiers)(()=>{},[`stop`])},[(0,t.createElementVNode)(`header`,{ref_key:`headerRef`,ref:_,class:`s-ui-dropdown-sheet__header`},[n[1]||=(0,t.createElementVNode)(`span`,{class:`s-ui-dropdown-sheet__handle`,"aria-hidden":`true`},null,-1),(0,t.createElementVNode)(`div`,p,[(0,t.renderSlot)(e.$slots,`header-left`)]),(0,t.createElementVNode)(`div`,m,(0,t.toDisplayString)(i.title),1),(0,t.createElementVNode)(`div`,h,[(0,t.renderSlot)(e.$slots,`header-right`)])],512),(0,t.createElementVNode)(`div`,{id:i.contentId,class:`s-ui-dropdown-sheet__content`},[(0,t.renderSlot)(e.$slots,`default`)],8,g)],44,f)],512)):(0,t.createCommentVNode)(``,!0)]),_:3}))}}),v=[`id`],y=[`data-placement`],b={class:`s-ui-dropdown__content`},x=(0,t.defineComponent)({inheritAttrs:!1,__name:`SDropdown`,props:(0,t.mergeModels)({placement:{default:()=>e.s.BOTTOM_START},offset:{default:8},flip:{type:Boolean,default:!0},shift:{type:Boolean,default:!1},matchReferenceWidth:{type:Boolean,default:!1},fitViewport:{type:Boolean,default:!1},surfaceClass:{},teleportTo:{type:[String,Boolean],default:`body`},dismissOnClickOutside:{type:Boolean,default:!0},dismissOnEscape:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},reference:{default:null},contentId:{},viewportPadding:{default:8},boundary:{default:()=>e.o.CLIPPING_ANCESTORS},block:{type:Boolean,default:!1},arrow:{type:Boolean,default:!1},showOnHover:{type:Boolean,default:!1},hoverLeaveDelay:{default:100},sheet:{type:Boolean,default:!0},sheetBreakpoint:{default:()=>768},sheetTitle:{default:``}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(n,{expose:i}){let s=(0,t.useModel)(n,`modelValue`),u=o(()=>n.sheet,()=>n.sheetBreakpoint),{isPanelShown:d,isPanelActive:f,handlePanelAfterLeave:p}=a(s),m=e=>{s.value=e},h=()=>m(!1),g=(0,t.useSlots)(),x=(0,t.useTemplateRef)(`triggerWrapperRef`),S=(0,t.useTemplateRef)(`panelRef`),C=(0,t.useTemplateRef)(`sheetRef`),{hasOpenChild:w,descendantElements:T}=c({open:s,element:(0,t.computed)(()=>u.value?C.value?.overlayElement??null:S.value)}),E=(0,t.useId)(),D=(0,t.useId)(),O=(0,t.computed)(()=>n.contentId??E),k=(0,t.computed)(()=>g.trigger?l(x.value):n.reference),A=(0,t.computed)(()=>n.teleportTo!==!1),j=(0,t.computed)(()=>n.teleportTo===!1?`body`:n.teleportTo),M=e.s.BOTTOM_START,N=()=>{n.disabled||m(!0)},P=()=>{n.disabled||(s.value=!s.value)},F=(0,t.computed)(()=>({id:D,"aria-expanded":s.value,"aria-haspopup":`dialog`,"aria-controls":O.value})),{panelStyles:I,panelMaxHeight:L,resolvedPlacement:R,arrowStyles:z,isArrowOverflow:B,isPositionReady:V,updatePosition:H}=e.t({open:()=>f.value&&!u.value,onOpenChange:m,reference:()=>k.value,panel:()=>S.value,placement:()=>n.placement,offset:()=>n.offset,flip:()=>n.flip,shift:()=>n.shift,matchReferenceWidth:()=>n.matchReferenceWidth,fitViewport:()=>n.fitViewport,dismissOnClickOutside:()=>n.dismissOnClickOutside,dismissOnEscape:()=>n.dismissOnEscape,viewportPadding:()=>n.viewportPadding,arrow:()=>n.arrow,boundary:()=>n.boundary,clickOutsideIgnore:T,hasOpenDescendant:w}),U=(0,t.computed)(()=>n.showOnHover&&!u.value),W=(0,t.computed)(()=>U.value?e.r(k.value):null),G=(0,t.computed)(()=>U.value?S.value:null),K=(0,r.useElementHover)(W,{delayLeave:n.hoverLeaveDelay}),q=(0,r.useElementHover)(G,{delayLeave:n.hoverLeaveDelay});(0,t.watch)([K,q,w,U,()=>n.disabled],()=>{if(U.value){if(n.disabled){m(!1);return}m(K.value||q.value||w.value)}});let J=(0,t.computed)(()=>!!L.value),Y=(0,t.computed)(()=>{if(L.value)return{maxHeight:`${L.value}px`}});return(0,t.watch)(()=>n.disabled,e=>{e&&s.value&&(s.value=!1)}),i({updatePosition:H,show:N,close:h,toggle:P}),(e,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(t.Fragment,null,[(0,t.unref)(g).trigger?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({key:0,ref_key:`triggerWrapperRef`,ref:x,class:[`s-ui-dropdown`,{"s-ui-dropdown--block":n.block}]},e.$attrs),[(0,t.renderSlot)(e.$slots,`trigger`,{open:s.value,toggle:P,close:h,isSheet:(0,t.unref)(u),triggerProps:F.value})],16)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:j.value,disabled:!A.value},[(0,t.unref)(u)?((0,t.openBlock)(),(0,t.createBlock)(_,{key:0,ref_key:`sheetRef`,ref:C,open:s.value,title:n.sheetTitle,"dismiss-on-overlay-click":n.dismissOnClickOutside,"dismiss-on-escape":n.dismissOnEscape,"has-open-descendant":(0,t.unref)(w),"content-id":O.value,onClose:h},{"header-left":(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`sheet-header-left`,{close:h})]),"header-right":(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`sheet-header-right`,{close:h})]),default:(0,t.withCtx)(()=>[(0,t.renderSlot)(e.$slots,`content`,{resolvedPlacement:(0,t.unref)(M),isSheet:!0,close:h})]),_:3},8,[`open`,`title`,`dismiss-on-overlay-click`,`dismiss-on-escape`,`has-open-descendant`,`content-id`])):((0,t.openBlock)(),(0,t.createBlock)(t.Transition,{key:1,name:`s-ui-dropdown`,onAfterLeave:(0,t.unref)(p)},{default:(0,t.withCtx)(()=>[(0,t.unref)(d)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:O.value,ref_key:`panelRef`,ref:S,class:(0,t.normalizeClass)([`s-ui-dropdown__panel`,{"s-ui-dropdown__panel--match-reference-width":n.matchReferenceWidth,"s-ui-dropdown__panel--ready":(0,t.unref)(V)}]),style:(0,t.normalizeStyle)((0,t.unref)(I)),role:`dialog`},[(0,t.createElementVNode)(`div`,{class:(0,t.normalizeClass)([`s-ui-dropdown__surface`,[n.surfaceClass,{"s-ui-dropdown__surface--fit-viewport":J.value,"s-ui-dropdown__surface--with-arrow":n.arrow}]]),style:(0,t.normalizeStyle)(Y.value),"data-placement":(0,t.unref)(R)},[n.arrow?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:(0,t.normalizeClass)([`s-ui-dropdown__arrow`,{"s-ui-dropdown__arrow--overflow":(0,t.unref)(B)}]),style:(0,t.normalizeStyle)((0,t.unref)(z)),"aria-hidden":`true`},[...r[0]||=[(0,t.createElementVNode)(`span`,{class:`s-ui-dropdown__arrow-shape`},null,-1)]],6)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,b,[(0,t.renderSlot)(e.$slots,`content`,{resolvedPlacement:(0,t.unref)(R),isSheet:!1,close:h})])],14,y)],14,v)):(0,t.createCommentVNode)(``,!0)]),_:3},8,[`onAfterLeave`]))],8,[`to`,`disabled`]))],64))}});Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return x}});
@@ -0,0 +1,400 @@
1
+ import { n as e, o as t, r as n, s as r, t as i } from "./useFloatingOverlay-TxzVisMJ.js";
2
+ import { Fragment as a, Teleport as o, Transition as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, defineComponent as p, inject as m, mergeModels as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeStyle as y, onBeforeUnmount as b, onScopeDispose as x, openBlock as S, provide as C, ref as w, renderSlot as T, shallowReactive as E, shallowRef as D, toDisplayString as O, toValue as k, unref as A, useId as j, useModel as M, useSlots as ee, useTemplateRef as N, watch as P, withCtx as F, withModifiers as I } from "vue";
3
+ import { useUiKitI18n as L } from "@shtabapp/ui-kit-primitives";
4
+ import { useElementHover as R, useEventListener as z, useMediaQuery as B, useScrollLock as V } from "@vueuse/core";
5
+ //#region src/components/SDropdown/SDropdown.types.ts
6
+ var H = 768, te = (e) => {
7
+ let t = w(e.value), n = w(e.value);
8
+ return P(e, (e) => {
9
+ if (e) {
10
+ t.value = !0, n.value = !0;
11
+ return;
12
+ }
13
+ t.value = !1;
14
+ }, { flush: "sync" }), {
15
+ isPanelShown: t,
16
+ isPanelActive: n,
17
+ handlePanelAfterLeave: () => {
18
+ e.value || (n.value = !1);
19
+ }
20
+ };
21
+ }, ne = (e, t) => {
22
+ let n = B(c(() => `(max-width: ${(k(t) || 768) - .02}px)`));
23
+ return c(() => k(e) && n.value);
24
+ }, U = Symbol("SDropdown"), re = (e) => {
25
+ let t = m(U, null), n = E(/* @__PURE__ */ new Set()), r = c(() => [...n].filter((e) => e.isOpen())), i = c(() => r.value.length > 0), a = c(() => r.value.flatMap((e) => e.getElements())), o = {
26
+ isOpen: () => k(e.open),
27
+ getElements: () => {
28
+ let t = k(e.element);
29
+ return t ? [t, ...a.value] : a.value;
30
+ }
31
+ };
32
+ return C(U, {
33
+ registerChild: (e) => {
34
+ n.add(e);
35
+ },
36
+ unregisterChild: (e) => {
37
+ n.delete(e);
38
+ }
39
+ }), t && (t.registerChild(o), x(() => t.unregisterChild(o))), {
40
+ hasOpenChild: i,
41
+ descendantElements: a
42
+ };
43
+ }, ie = (e) => {
44
+ if (!e) return null;
45
+ let t = e.getBoundingClientRect();
46
+ if (t.width > 0 || t.height > 0) return e;
47
+ let n = e.firstElementChild;
48
+ return n instanceof HTMLElement ? n : e;
49
+ }, W = {
50
+ OVERDRAG_LIMIT: 50,
51
+ CLOSE_DISTANCE_RATIO: .3,
52
+ CLOSE_DISTANCE_LIMIT: 140,
53
+ CLOSE_VELOCITY: .5,
54
+ SETTLE_TIMEOUT: 400,
55
+ INTERACTIVE_SELECTOR: "button, a[href], input, select, textarea, [role=\"button\"], [contenteditable=\"true\"]"
56
+ }, G = (e) => {
57
+ let t = D(0), n = D(!1), r = D(!1), i = null, a = 0, o = 0, s = 0, l = 0, u = 0, d, f = c(() => n.value || r.value), p = () => {
58
+ clearTimeout(d), d = void 0, r.value = !1;
59
+ }, m = () => {
60
+ r.value = !0, clearTimeout(d), d = setTimeout(p, W.SETTLE_TIMEOUT);
61
+ }, h = () => {
62
+ i = null, t.value = 0, n.value = !1, p();
63
+ }, g = () => k(e.popup)?.offsetHeight ?? 0, _ = () => {
64
+ let e = l - a;
65
+ if (e <= 0) return !1;
66
+ let t = u - s;
67
+ return (t > 0 ? (l - o) / t : 0) >= W.CLOSE_VELOCITY ? !0 : e >= Math.min(g() * W.CLOSE_DISTANCE_RATIO, W.CLOSE_DISTANCE_LIMIT);
68
+ }, v = (e) => {
69
+ i === null && (e.pointerType === "mouse" && e.button !== 0 || e.target instanceof Element && e.target.closest(W.INTERACTIVE_SELECTOR) || (i = e.pointerId, a = e.clientY, l = e.clientY, o = e.clientY, u = e.timeStamp, s = e.timeStamp, p(), n.value = !0));
70
+ }, y = (e) => {
71
+ i === e.pointerId && (o = l, s = u, l = e.clientY, u = e.timeStamp, t.value = Math.max(e.clientY - a, -W.OVERDRAG_LIMIT));
72
+ }, b = (a) => {
73
+ if (i === a.pointerId) {
74
+ if (i = null, n.value = !1, _()) {
75
+ r.value = !0, t.value = g() + W.OVERDRAG_LIMIT, e.onClose();
76
+ return;
77
+ }
78
+ if (t.value === 0) {
79
+ p();
80
+ return;
81
+ }
82
+ m(), t.value = 0;
83
+ }
84
+ };
85
+ return z(() => k(e.handle), "pointerdown", v), z(window, "pointermove", y), z(window, "pointerup", b), z(window, "pointercancel", b), z(() => k(e.popup), "transitionend", (e) => {
86
+ e.propertyName !== "transform" || n.value || t.value !== 0 || p();
87
+ }), x(() => {
88
+ clearTimeout(d);
89
+ }), {
90
+ isActive: f,
91
+ popupStyles: c(() => {
92
+ if (f.value) return {
93
+ transform: `translate3d(0, ${t.value}px, 0)`,
94
+ transition: r.value ? "transform var(--s-ui-transition-duration-slow) var(--s-ui-transition-easing-standard)" : "none"
95
+ };
96
+ }),
97
+ reset: h
98
+ };
99
+ }, K = ["aria-label"], q = { class: "s-ui-dropdown-sheet__side" }, J = { class: "s-ui-dropdown-sheet__title" }, Y = { class: "s-ui-dropdown-sheet__side s-ui-dropdown-sheet__side--end" }, X = ["id"], ae = /* @__PURE__ */ p({
100
+ __name: "SDropdownSheet",
101
+ props: {
102
+ open: { type: Boolean },
103
+ title: { default: "" },
104
+ dismissOnOverlayClick: {
105
+ type: Boolean,
106
+ default: !0
107
+ },
108
+ dismissOnEscape: {
109
+ type: Boolean,
110
+ default: !0
111
+ },
112
+ hasOpenDescendant: {
113
+ type: Boolean,
114
+ default: !1
115
+ },
116
+ contentId: {}
117
+ },
118
+ emits: ["close"],
119
+ setup(t, { expose: n, emit: r }) {
120
+ let i = r, { t: a } = L(), o = N("overlayRef"), c = N("popupRef"), p = N("headerRef"), m = () => i("close"), { isActive: h, popupStyles: g, reset: v } = G({
121
+ handle: p,
122
+ popup: c,
123
+ onClose: m
124
+ }), x = V(() => typeof document > "u" ? null : document.body), C = () => {
125
+ t.dismissOnOverlayClick && m();
126
+ }, w = (e) => {
127
+ h.value && e.stopPropagation();
128
+ }, E = () => v(), D = null, k = () => {
129
+ let e = document.activeElement;
130
+ D = e instanceof HTMLElement ? e : null;
131
+ }, j = async () => {
132
+ await _();
133
+ let e = c.value;
134
+ !e || e.contains(document.activeElement) || e.focus({ preventScroll: !0 });
135
+ }, M = () => {
136
+ let e = D, t = !!c.value?.contains(document.activeElement);
137
+ D = null, !(!t || !e?.isConnected) && e.focus({ preventScroll: !0 });
138
+ };
139
+ return P(() => t.open, (e) => {
140
+ if (x.value = e, e) {
141
+ k(), j();
142
+ return;
143
+ }
144
+ M();
145
+ }, { immediate: !0 }), e({
146
+ open: () => t.open,
147
+ enabled: () => t.dismissOnEscape,
148
+ hasOpenDescendant: () => t.hasOpenDescendant,
149
+ onDismiss: m
150
+ }), b(() => {
151
+ x.value = !1;
152
+ }), n({ overlayElement: o }), (e, n) => (S(), l(s, {
153
+ name: "s-ui-dropdown-sheet",
154
+ onAfterLeave: E
155
+ }, {
156
+ default: F(() => [t.open ? (S(), d("div", {
157
+ key: 0,
158
+ ref_key: "overlayRef",
159
+ ref: o,
160
+ class: "s-ui-dropdown-sheet",
161
+ onClick: C
162
+ }, [f("div", {
163
+ ref_key: "popupRef",
164
+ ref: c,
165
+ class: "s-ui-dropdown-sheet__popup",
166
+ style: y(A(g)),
167
+ role: "dialog",
168
+ "aria-modal": "true",
169
+ "aria-label": t.title || A(a)("dropdown.sheet"),
170
+ tabindex: "-1",
171
+ onClickCapture: w,
172
+ onClick: n[0] ||= I(() => {}, ["stop"])
173
+ }, [f("header", {
174
+ ref_key: "headerRef",
175
+ ref: p,
176
+ class: "s-ui-dropdown-sheet__header"
177
+ }, [
178
+ n[1] ||= f("span", {
179
+ class: "s-ui-dropdown-sheet__handle",
180
+ "aria-hidden": "true"
181
+ }, null, -1),
182
+ f("div", q, [T(e.$slots, "header-left")]),
183
+ f("div", J, O(t.title), 1),
184
+ f("div", Y, [T(e.$slots, "header-right")])
185
+ ], 512), f("div", {
186
+ id: t.contentId,
187
+ class: "s-ui-dropdown-sheet__content"
188
+ }, [T(e.$slots, "default")], 8, X)], 44, K)], 512)) : u("", !0)]),
189
+ _: 3
190
+ }));
191
+ }
192
+ }), oe = ["id"], se = ["data-placement"], ce = { class: "s-ui-dropdown__content" }, Z = /* @__PURE__ */ p({
193
+ inheritAttrs: !1,
194
+ __name: "SDropdown",
195
+ props: /*@__PURE__*/ h({
196
+ placement: { default: () => r.BOTTOM_START },
197
+ offset: { default: 8 },
198
+ flip: {
199
+ type: Boolean,
200
+ default: !0
201
+ },
202
+ shift: {
203
+ type: Boolean,
204
+ default: !1
205
+ },
206
+ matchReferenceWidth: {
207
+ type: Boolean,
208
+ default: !1
209
+ },
210
+ fitViewport: {
211
+ type: Boolean,
212
+ default: !1
213
+ },
214
+ surfaceClass: {},
215
+ teleportTo: {
216
+ type: [String, Boolean],
217
+ default: "body"
218
+ },
219
+ dismissOnClickOutside: {
220
+ type: Boolean,
221
+ default: !0
222
+ },
223
+ dismissOnEscape: {
224
+ type: Boolean,
225
+ default: !0
226
+ },
227
+ disabled: {
228
+ type: Boolean,
229
+ default: !1
230
+ },
231
+ reference: { default: null },
232
+ contentId: {},
233
+ viewportPadding: { default: 8 },
234
+ boundary: { default: () => t.CLIPPING_ANCESTORS },
235
+ block: {
236
+ type: Boolean,
237
+ default: !1
238
+ },
239
+ arrow: {
240
+ type: Boolean,
241
+ default: !1
242
+ },
243
+ showOnHover: {
244
+ type: Boolean,
245
+ default: !1
246
+ },
247
+ hoverLeaveDelay: { default: 100 },
248
+ sheet: {
249
+ type: Boolean,
250
+ default: !0
251
+ },
252
+ sheetBreakpoint: { default: () => 768 },
253
+ sheetTitle: { default: "" }
254
+ }, {
255
+ modelValue: {
256
+ type: Boolean,
257
+ default: !1
258
+ },
259
+ modelModifiers: {}
260
+ }),
261
+ emits: ["update:modelValue"],
262
+ setup(e, { expose: t }) {
263
+ let p = M(e, "modelValue"), m = ne(() => e.sheet, () => e.sheetBreakpoint), { isPanelShown: h, isPanelActive: _, handlePanelAfterLeave: b } = te(p), x = (e) => {
264
+ p.value = e;
265
+ }, C = () => x(!1), w = ee(), E = N("triggerWrapperRef"), D = N("panelRef"), O = N("sheetRef"), { hasOpenChild: k, descendantElements: I } = re({
266
+ open: p,
267
+ element: c(() => m.value ? O.value?.overlayElement ?? null : D.value)
268
+ }), L = j(), z = j(), B = c(() => e.contentId ?? L), V = c(() => w.trigger ? ie(E.value) : e.reference), H = c(() => e.teleportTo !== !1), U = c(() => e.teleportTo === !1 ? "body" : e.teleportTo), W = r.BOTTOM_START, G = () => {
269
+ e.disabled || x(!0);
270
+ }, K = () => {
271
+ e.disabled || (p.value = !p.value);
272
+ }, q = c(() => ({
273
+ id: z,
274
+ "aria-expanded": p.value,
275
+ "aria-haspopup": "dialog",
276
+ "aria-controls": B.value
277
+ })), { panelStyles: J, panelMaxHeight: Y, resolvedPlacement: X, arrowStyles: Z, isArrowOverflow: le, isPositionReady: ue, updatePosition: de } = i({
278
+ open: () => _.value && !m.value,
279
+ onOpenChange: x,
280
+ reference: () => V.value,
281
+ panel: () => D.value,
282
+ placement: () => e.placement,
283
+ offset: () => e.offset,
284
+ flip: () => e.flip,
285
+ shift: () => e.shift,
286
+ matchReferenceWidth: () => e.matchReferenceWidth,
287
+ fitViewport: () => e.fitViewport,
288
+ dismissOnClickOutside: () => e.dismissOnClickOutside,
289
+ dismissOnEscape: () => e.dismissOnEscape,
290
+ viewportPadding: () => e.viewportPadding,
291
+ arrow: () => e.arrow,
292
+ boundary: () => e.boundary,
293
+ clickOutsideIgnore: I,
294
+ hasOpenDescendant: k
295
+ }), Q = c(() => e.showOnHover && !m.value), fe = c(() => Q.value ? n(V.value) : null), pe = c(() => Q.value ? D.value : null), $ = R(fe, { delayLeave: e.hoverLeaveDelay }), me = R(pe, { delayLeave: e.hoverLeaveDelay });
296
+ P([
297
+ $,
298
+ me,
299
+ k,
300
+ Q,
301
+ () => e.disabled
302
+ ], () => {
303
+ if (Q.value) {
304
+ if (e.disabled) {
305
+ x(!1);
306
+ return;
307
+ }
308
+ x($.value || me.value || k.value);
309
+ }
310
+ });
311
+ let he = c(() => !!Y.value), ge = c(() => {
312
+ if (Y.value) return { maxHeight: `${Y.value}px` };
313
+ });
314
+ return P(() => e.disabled, (e) => {
315
+ e && p.value && (p.value = !1);
316
+ }), t({
317
+ updatePosition: de,
318
+ show: G,
319
+ close: C,
320
+ toggle: K
321
+ }), (t, n) => (S(), d(a, null, [A(w).trigger ? (S(), d("span", g({
322
+ key: 0,
323
+ ref_key: "triggerWrapperRef",
324
+ ref: E,
325
+ class: ["s-ui-dropdown", { "s-ui-dropdown--block": e.block }]
326
+ }, t.$attrs), [T(t.$slots, "trigger", {
327
+ open: p.value,
328
+ toggle: K,
329
+ close: C,
330
+ isSheet: A(m),
331
+ triggerProps: q.value
332
+ })], 16)) : u("", !0), (S(), l(o, {
333
+ to: U.value,
334
+ disabled: !H.value
335
+ }, [A(m) ? (S(), l(ae, {
336
+ key: 0,
337
+ ref_key: "sheetRef",
338
+ ref: O,
339
+ open: p.value,
340
+ title: e.sheetTitle,
341
+ "dismiss-on-overlay-click": e.dismissOnClickOutside,
342
+ "dismiss-on-escape": e.dismissOnEscape,
343
+ "has-open-descendant": A(k),
344
+ "content-id": B.value,
345
+ onClose: C
346
+ }, {
347
+ "header-left": F(() => [T(t.$slots, "sheet-header-left", { close: C })]),
348
+ "header-right": F(() => [T(t.$slots, "sheet-header-right", { close: C })]),
349
+ default: F(() => [T(t.$slots, "content", {
350
+ resolvedPlacement: A(W),
351
+ isSheet: !0,
352
+ close: C
353
+ })]),
354
+ _: 3
355
+ }, 8, [
356
+ "open",
357
+ "title",
358
+ "dismiss-on-overlay-click",
359
+ "dismiss-on-escape",
360
+ "has-open-descendant",
361
+ "content-id"
362
+ ])) : (S(), l(s, {
363
+ key: 1,
364
+ name: "s-ui-dropdown",
365
+ onAfterLeave: A(b)
366
+ }, {
367
+ default: F(() => [A(h) ? (S(), d("div", {
368
+ key: 0,
369
+ id: B.value,
370
+ ref_key: "panelRef",
371
+ ref: D,
372
+ class: v(["s-ui-dropdown__panel", {
373
+ "s-ui-dropdown__panel--match-reference-width": e.matchReferenceWidth,
374
+ "s-ui-dropdown__panel--ready": A(ue)
375
+ }]),
376
+ style: y(A(J)),
377
+ role: "dialog"
378
+ }, [f("div", {
379
+ class: v(["s-ui-dropdown__surface", [e.surfaceClass, {
380
+ "s-ui-dropdown__surface--fit-viewport": he.value,
381
+ "s-ui-dropdown__surface--with-arrow": e.arrow
382
+ }]]),
383
+ style: y(ge.value),
384
+ "data-placement": A(X)
385
+ }, [e.arrow ? (S(), d("div", {
386
+ key: 0,
387
+ class: v(["s-ui-dropdown__arrow", { "s-ui-dropdown__arrow--overflow": A(le) }]),
388
+ style: y(A(Z)),
389
+ "aria-hidden": "true"
390
+ }, [...n[0] ||= [f("span", { class: "s-ui-dropdown__arrow-shape" }, null, -1)]], 6)) : u("", !0), f("div", ce, [T(t.$slots, "content", {
391
+ resolvedPlacement: A(X),
392
+ isSheet: !1,
393
+ close: C
394
+ })])], 14, se)], 14, oe)) : u("", !0)]),
395
+ _: 3
396
+ }, 8, ["onAfterLeave"]))], 8, ["to", "disabled"]))], 64));
397
+ }
398
+ });
399
+ //#endregion
400
+ export { H as n, Z as t };