@shtabapp/ui-kit 1.33.0 → 1.34.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 (91) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/SColorPalette-B9WrqgRz.js +146 -0
  3. package/dist/SColorPalette-CYGnmIWP.cjs +1 -0
  4. package/dist/SColorPicker-Cs0QmYWm.js +635 -0
  5. package/dist/SColorPicker-D7QwVS2t.cjs +1 -0
  6. package/dist/{SDropdown-Cv729__Y.js → SDropdown-CTQ5Qlez.js} +50 -49
  7. package/dist/SDropdown-_QUOP-rw.cjs +1 -0
  8. package/dist/{SSelect-CZe3djdm.js → SSelect-AcH04gtk.js} +17 -17
  9. package/dist/{SSelect-DAPSmCWf.cjs → SSelect-CT3AMH-u.cjs} +1 -1
  10. package/dist/{STag-L6B4DxOx.js → STag-COwzellL.js} +36 -35
  11. package/dist/STag-HgFvU1Iy.cjs +1 -0
  12. package/dist/{STagGroup-BMGq6jB5.cjs → STagGroup-CKxDA9Y0.cjs} +1 -1
  13. package/dist/{STagGroup-DWsu0ket.js → STagGroup-Cbe0AENj.js} +1 -1
  14. package/dist/colorValue-DClAEDHr.cjs +1 -0
  15. package/dist/colorValue-DXJiNKGE.js +5 -0
  16. package/dist/components/SColorPalette/SColorPalette.types.d.ts +19 -0
  17. package/dist/components/SColorPalette/SColorPalette.types.d.ts.map +1 -0
  18. package/dist/components/SColorPalette/SColorPalette.vue.d.ts +26 -0
  19. package/dist/components/SColorPalette/SColorPalette.vue.d.ts.map +1 -0
  20. package/dist/components/SColorPalette/index.d.ts +4 -0
  21. package/dist/components/SColorPalette/index.d.ts.map +1 -0
  22. package/dist/components/SColorPicker/SColorPicker.types.d.ts +12 -0
  23. package/dist/components/SColorPicker/SColorPicker.types.d.ts.map +1 -0
  24. package/dist/components/SColorPicker/SColorPicker.vue.d.ts +25 -0
  25. package/dist/components/SColorPicker/SColorPicker.vue.d.ts.map +1 -0
  26. package/dist/components/SColorPicker/constants/SColorPicker.constants.d.ts +2 -0
  27. package/dist/components/SColorPicker/constants/SColorPicker.constants.d.ts.map +1 -0
  28. package/dist/components/SColorPicker/index.d.ts +8 -0
  29. package/dist/components/SColorPicker/index.d.ts.map +1 -0
  30. package/dist/components/SColorPicker/parts/SColorArea.types.d.ts +9 -0
  31. package/dist/components/SColorPicker/parts/SColorArea.types.d.ts.map +1 -0
  32. package/dist/components/SColorPicker/parts/SColorArea.vue.d.ts +15 -0
  33. package/dist/components/SColorPicker/parts/SColorArea.vue.d.ts.map +1 -0
  34. package/dist/components/SColorPicker/parts/SColorValues.types.d.ts +12 -0
  35. package/dist/components/SColorPicker/parts/SColorValues.types.d.ts.map +1 -0
  36. package/dist/components/SColorPicker/parts/SColorValues.vue.d.ts +22 -0
  37. package/dist/components/SColorPicker/parts/SColorValues.vue.d.ts.map +1 -0
  38. package/dist/components/SColorPicker/utils/resolveColorSwatchFillElement.d.ts +3 -0
  39. package/dist/components/SColorPicker/utils/resolveColorSwatchFillElement.d.ts.map +1 -0
  40. package/dist/components/SColorPicker/utils/useColorArea.d.ts +29 -0
  41. package/dist/components/SColorPicker/utils/useColorArea.d.ts.map +1 -0
  42. package/dist/components/SDropdown/SDropdown.vue.d.ts.map +1 -1
  43. package/dist/components/STag/utils/resolveTagColor.d.ts.map +1 -1
  44. package/dist/composables/connectedPosition/parseAnchor.d.ts.map +1 -1
  45. package/dist/composables/connectedPosition/types.d.ts +5 -1
  46. package/dist/composables/connectedPosition/types.d.ts.map +1 -1
  47. package/dist/entries/color-palette.cjs +1 -0
  48. package/dist/entries/color-palette.d.ts +5 -0
  49. package/dist/entries/color-palette.d.ts.map +1 -0
  50. package/dist/entries/color-palette.js +3 -0
  51. package/dist/entries/color-picker.cjs +1 -0
  52. package/dist/entries/color-picker.d.ts +5 -0
  53. package/dist/entries/color-picker.d.ts.map +1 -0
  54. package/dist/entries/color-picker.js +4 -0
  55. package/dist/entries/composables.cjs +1 -1
  56. package/dist/entries/composables.js +1 -1
  57. package/dist/entries/dropdown.cjs +1 -1
  58. package/dist/entries/dropdown.js +2 -2
  59. package/dist/entries/select.cjs +1 -1
  60. package/dist/entries/select.js +1 -1
  61. package/dist/entries/tag-group.cjs +1 -1
  62. package/dist/entries/tag-group.js +2 -2
  63. package/dist/entries/tag.cjs +1 -1
  64. package/dist/entries/tag.js +1 -1
  65. package/dist/index.cjs +1 -1
  66. package/dist/index.d.ts +6 -0
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +36 -33
  69. package/dist/uikit-components.css +1 -1
  70. package/dist/useFloatingOverlay-B1UCUYQQ.cjs +1 -0
  71. package/dist/{useFloatingOverlay-D-GlpoPP.js → useFloatingOverlay-QcumEYEq.js} +23 -3
  72. package/dist/utils/color/colorFormatChannels.d.ts +11 -0
  73. package/dist/utils/color/colorFormatChannels.d.ts.map +1 -0
  74. package/dist/utils/color/colorValue.d.ts +9 -0
  75. package/dist/utils/color/colorValue.d.ts.map +1 -0
  76. package/dist/utils/color/defaultPaletteColors.d.ts +3 -0
  77. package/dist/utils/color/defaultPaletteColors.d.ts.map +1 -0
  78. package/dist/utils/color/formatColorForDisplay.d.ts +9 -0
  79. package/dist/utils/color/formatColorForDisplay.d.ts.map +1 -0
  80. package/dist/utils/color/index.d.ts +9 -1
  81. package/dist/utils/color/index.d.ts.map +1 -1
  82. package/dist/utils/color/parseColorFromInput.d.ts +4 -0
  83. package/dist/utils/color/parseColorFromInput.d.ts.map +1 -0
  84. package/dist/utils/color/recommendedColorPalette.d.ts +3 -0
  85. package/dist/utils/color/recommendedColorPalette.d.ts.map +1 -0
  86. package/dist/utils/color/types.d.ts +35 -0
  87. package/dist/utils/color/types.d.ts.map +1 -0
  88. package/package.json +12 -2
  89. package/dist/SDropdown-B6b7IDjp.cjs +0 -1
  90. package/dist/STag-BwzuI3cF.cjs +0 -1
  91. package/dist/useFloatingOverlay-Cwg2MWyD.cjs +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## [@shtabapp/ui-kit-v1.34.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.33.0...@shtabapp/ui-kit@1.34.0) (2026-07-01)
2
+
3
+ ### Features
4
+
5
+ - color picker (swatch, palette, area, values) ([2fbc95c](https://gitlab.com/mstikharev/shtab-ui-kit/commit/2fbc95c15c65ed87f9a36b9aaec6fe71a6f5ff03))
6
+
1
7
  ## [@shtabapp/ui-kit-v1.33.0](https://gitlab.com/mstikharev/shtab-ui-kit/compare/@shtabapp/ui-kit@1.32.0...@shtabapp/ui-kit@1.33.0) (2026-07-01)
2
8
 
3
9
  ### Features
@@ -0,0 +1,146 @@
1
+ import { a as e, r as t } from "./colorValue-DXJiNKGE.js";
2
+ import { i as n, n as r, o as i, r as a } from "./useSelectionGroup-cKj38lEN.js";
3
+ import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, defineComponent as d, mergeModels as f, mergeProps as p, onScopeDispose as m, openBlock as h, renderList as g, renderSlot as _, shallowReactive as v, unref as y, useModel as b, useSlots as x } from "vue";
4
+ import { ESColorSwatchSize as S, SColorSwatch as C } from "@shtabapp/ui-kit-primitives";
5
+ //#region src/utils/color/types.ts
6
+ var w = /* @__PURE__ */ function(e) {
7
+ return e.RED_ORANGE = "red-orange", e.ORANGE = "orange", e.YELLOW = "yellow", e.GREEN = "green", e.TEAL = "teal", e.CYAN = "cyan", e.BLUE = "blue", e.INDIGO = "indigo", e.VIOLET = "violet", e.MAGENTA = "magenta", e.PINK = "pink", e.RED = "red", e;
8
+ }({}), T = /* @__PURE__ */ function(e) {
9
+ return e.HEX = "hex", e.RGB = "rgb", e.HSL = "hsl", e;
10
+ }({}), E = [
11
+ w.RED_ORANGE,
12
+ w.ORANGE,
13
+ w.YELLOW,
14
+ w.GREEN,
15
+ w.TEAL,
16
+ w.CYAN,
17
+ w.BLUE,
18
+ w.INDIGO,
19
+ w.VIOLET,
20
+ w.MAGENTA,
21
+ w.PINK
22
+ ], D = [
23
+ w.RED_ORANGE,
24
+ w.ORANGE,
25
+ w.YELLOW,
26
+ w.GREEN,
27
+ w.TEAL,
28
+ w.CYAN,
29
+ w.BLUE,
30
+ w.INDIGO,
31
+ w.VIOLET,
32
+ w.MAGENTA,
33
+ w.PINK
34
+ ], O = [
35
+ "primary",
36
+ "secondary",
37
+ "tertiary"
38
+ ], k = (e, t) => `var(--s-ui-color-background-accent-${e}-${t})`, A = [
39
+ "var(--s-ui-color-icon-surface-primary)",
40
+ "var(--s-ui-color-icon-surface-tertiary)",
41
+ "var(--s-ui-color-icon-surface-disabled)"
42
+ ], j = [...(() => {
43
+ let e = [];
44
+ for (let t of D) for (let n of O) e.push(k(t, n));
45
+ return e;
46
+ })(), ...A], M = /* @__PURE__ */ function(e) {
47
+ return e.ROW = "row", e.GRID = "grid", e;
48
+ }({}), N = ["aria-disabled"], P = {
49
+ key: 0,
50
+ class: "s-ui-color-palette__append"
51
+ }, F = /* @__PURE__ */ d({
52
+ __name: "SColorPalette",
53
+ props: /*@__PURE__*/ f({
54
+ layout: { default: () => M.ROW },
55
+ disabled: {
56
+ type: Boolean,
57
+ default: !1
58
+ },
59
+ colors: {},
60
+ size: { default: () => S.SIZE_40 }
61
+ }, {
62
+ modelValue: {},
63
+ modelModifiers: {}
64
+ }),
65
+ emits: /*@__PURE__*/ f(["select"], ["update:modelValue"]),
66
+ setup(d, { emit: f }) {
67
+ let S = b(d, "modelValue"), w = f, T = x(), D = s(() => d.colors === void 0 ? E : d.colors), O = i({
68
+ modelValue: () => S.value,
69
+ onUpdateModelValue: (e) => {
70
+ n(e) && (S.value = e, w("select", e));
71
+ },
72
+ mode: r.SINGLE,
73
+ orientation: a.HORIZONTAL,
74
+ orderedValues: () => D.value,
75
+ compareValues: t,
76
+ loop: !0
77
+ }), k = v(/* @__PURE__ */ new Map()), A = /* @__PURE__ */ new Map(), j = /* @__PURE__ */ new Map(), M = (e, t) => `${String(e)}-${t}`, F = (e) => e && (e instanceof HTMLElement || "$el" in e) ? e : null, I = (e, t) => {
78
+ let n = M(e, t), r = j.get(n);
79
+ if (r) return r;
80
+ let i = (t) => {
81
+ let r = A.get(n), i = F(t);
82
+ if (!t) {
83
+ r && (r(), A.delete(n)), k.delete(n);
84
+ return;
85
+ }
86
+ if (!i || k.get(n) === i && r) return;
87
+ r && (r(), A.delete(n)), k.set(n, i);
88
+ let a = O.registerItem({
89
+ value: e,
90
+ el: () => k.get(n) ?? null,
91
+ disabled: () => d.disabled
92
+ });
93
+ A.set(n, a);
94
+ };
95
+ return j.set(n, i), i;
96
+ };
97
+ m(() => {
98
+ for (let e of A.values()) e();
99
+ A.clear(), k.clear(), j.clear();
100
+ });
101
+ let L = (e) => d.disabled ? -1 : O.getItemTabIndex(e), R = (e, t) => {
102
+ if (d.disabled) {
103
+ t.preventDefault(), t.stopPropagation();
104
+ return;
105
+ }
106
+ O.select(e);
107
+ }, z = (e, t) => {
108
+ d.disabled || O.handleItemKeydown(t, e);
109
+ }, B = s(() => [`s-ui-color-palette--layout-${d.layout}`, {
110
+ "s-ui-color-palette--disabled": d.disabled,
111
+ "s-ui-color-palette--has-append": !!T.append
112
+ }]);
113
+ return (t, n) => (h(), u("div", p({
114
+ class: ["s-ui-color-palette", B.value],
115
+ role: "radiogroup",
116
+ "aria-disabled": d.disabled || void 0
117
+ }, t.$attrs), [(h(!0), u(o, null, g(D.value, (t, n) => (h(), c(y(C), {
118
+ key: `${String(t)}-${n}`,
119
+ ref_for: !0,
120
+ ref: I(t, n),
121
+ role: "radio",
122
+ class: "s-ui-color-palette__swatch",
123
+ color: y(e)(t),
124
+ size: d.size,
125
+ selected: y(O).isSelected(t),
126
+ disabled: d.disabled,
127
+ "aria-checked": y(O).isSelected(t) ? "true" : "false",
128
+ "aria-label": String(t),
129
+ tabindex: L(t),
130
+ onClick: (e) => R(t, e),
131
+ onKeydown: (e) => z(t, e)
132
+ }, null, 8, [
133
+ "color",
134
+ "size",
135
+ "selected",
136
+ "disabled",
137
+ "aria-checked",
138
+ "aria-label",
139
+ "tabindex",
140
+ "onClick",
141
+ "onKeydown"
142
+ ]))), 128)), y(T).append ? (h(), u("div", P, [_(t.$slots, "append")])) : l("", !0)], 16, N));
143
+ }
144
+ });
145
+ //#endregion
146
+ export { w as a, E as i, M as n, T as o, j as r, F as t };
@@ -0,0 +1 @@
1
+ const e=require("./colorValue-DClAEDHr.cjs"),t=require("./useSelectionGroup-TaektE-I.cjs");let n=require("vue"),r=require("@shtabapp/ui-kit-primitives");var i=function(e){return e.RED_ORANGE=`red-orange`,e.ORANGE=`orange`,e.YELLOW=`yellow`,e.GREEN=`green`,e.TEAL=`teal`,e.CYAN=`cyan`,e.BLUE=`blue`,e.INDIGO=`indigo`,e.VIOLET=`violet`,e.MAGENTA=`magenta`,e.PINK=`pink`,e.RED=`red`,e}({}),a=function(e){return e.HEX=`hex`,e.RGB=`rgb`,e.HSL=`hsl`,e}({}),o=[i.RED_ORANGE,i.ORANGE,i.YELLOW,i.GREEN,i.TEAL,i.CYAN,i.BLUE,i.INDIGO,i.VIOLET,i.MAGENTA,i.PINK],s=[i.RED_ORANGE,i.ORANGE,i.YELLOW,i.GREEN,i.TEAL,i.CYAN,i.BLUE,i.INDIGO,i.VIOLET,i.MAGENTA,i.PINK],c=[`primary`,`secondary`,`tertiary`],l=(e,t)=>`var(--s-ui-color-background-accent-${e}-${t})`,u=[`var(--s-ui-color-icon-surface-primary)`,`var(--s-ui-color-icon-surface-tertiary)`,`var(--s-ui-color-icon-surface-disabled)`],d=[...(()=>{let e=[];for(let t of s)for(let n of c)e.push(l(t,n));return e})(),...u],f=function(e){return e.ROW=`row`,e.GRID=`grid`,e}({}),p=[`aria-disabled`],m={key:0,class:`s-ui-color-palette__append`},h=(0,n.defineComponent)({__name:`SColorPalette`,props:(0,n.mergeModels)({layout:{default:()=>f.ROW},disabled:{type:Boolean,default:!1},colors:{},size:{default:()=>r.ESColorSwatchSize.SIZE_40}},{modelValue:{},modelModifiers:{}}),emits:(0,n.mergeModels)([`select`],[`update:modelValue`]),setup(i,{emit:a}){let s=(0,n.useModel)(i,`modelValue`),c=a,l=(0,n.useSlots)(),u=(0,n.computed)(()=>i.colors===void 0?o:i.colors),d=t.o({modelValue:()=>s.value,onUpdateModelValue:e=>{t.i(e)&&(s.value=e,c(`select`,e))},mode:t.n.SINGLE,orientation:t.r.HORIZONTAL,orderedValues:()=>u.value,compareValues:e.r,loop:!0}),f=(0,n.shallowReactive)(new Map),h=new Map,g=new Map,_=(e,t)=>`${String(e)}-${t}`,v=e=>e&&(e instanceof HTMLElement||`$el`in e)?e:null,y=(e,t)=>{let n=_(e,t),r=g.get(n);if(r)return r;let a=t=>{let r=h.get(n),a=v(t);if(!t){r&&(r(),h.delete(n)),f.delete(n);return}if(!a||f.get(n)===a&&r)return;r&&(r(),h.delete(n)),f.set(n,a);let o=d.registerItem({value:e,el:()=>f.get(n)??null,disabled:()=>i.disabled});h.set(n,o)};return g.set(n,a),a};(0,n.onScopeDispose)(()=>{for(let e of h.values())e();h.clear(),f.clear(),g.clear()});let b=e=>i.disabled?-1:d.getItemTabIndex(e),x=(e,t)=>{if(i.disabled){t.preventDefault(),t.stopPropagation();return}d.select(e)},S=(e,t)=>{i.disabled||d.handleItemKeydown(t,e)},C=(0,n.computed)(()=>[`s-ui-color-palette--layout-${i.layout}`,{"s-ui-color-palette--disabled":i.disabled,"s-ui-color-palette--has-append":!!l.append}]);return(t,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,(0,n.mergeProps)({class:[`s-ui-color-palette`,C.value],role:`radiogroup`,"aria-disabled":i.disabled||void 0},t.$attrs),[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(u.value,(t,a)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(r.SColorSwatch),{key:`${String(t)}-${a}`,ref_for:!0,ref:y(t,a),role:`radio`,class:`s-ui-color-palette__swatch`,color:(0,n.unref)(e.a)(t),size:i.size,selected:(0,n.unref)(d).isSelected(t),disabled:i.disabled,"aria-checked":(0,n.unref)(d).isSelected(t)?`true`:`false`,"aria-label":String(t),tabindex:b(t),onClick:e=>x(t,e),onKeydown:e=>S(t,e)},null,8,[`color`,`size`,`selected`,`disabled`,`aria-checked`,`aria-label`,`tabindex`,`onClick`,`onKeydown`]))),128)),(0,n.unref)(l).append?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,m,[(0,n.renderSlot)(t.$slots,`append`)])):(0,n.createCommentVNode)(``,!0)],16,p))}});Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return h}});