ics-ui-kit 0.1.0-alpha.65 → 0.1.0-alpha.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{SearchSelectTag-BADCZkFf.js → SearchSelectTag-BooNxTsf.js} +2 -2
- package/dist/{SearchSelectTag-BADCZkFf.js.map → SearchSelectTag-BooNxTsf.js.map} +1 -1
- package/dist/{Tag-BkJ0GZDw.js → Tag-CMxtdQP6.js} +41 -42
- package/dist/Tag-CMxtdQP6.js.map +1 -0
- package/dist/components/search-select.js +1 -1
- package/dist/components/tag-input.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/toast.js +161 -168
- package/dist/components/toast.js.map +1 -1
- package/dist/styles-scoped.css +8 -4
- package/dist/styles.css +10 -6
- package/package.json +1 -3
- package/tailwind.preset.js +21 -2
- package/dist/Tag-BkJ0GZDw.js.map +0 -1
- package/dist/font-inter.css +0 -15
- package/dist/font-inter.d.ts +0 -1
- package/dist/font-menlo.css +0 -15
- package/dist/font-menlo.d.ts +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useState as p, useCallback as g, useMemo as h } from "react";
|
|
2
2
|
import { jsxs as m, jsx as c, Fragment as b } from "react/jsx-runtime";
|
|
3
|
-
import { d as C, a as S, c as T, b as v } from "./Tag-
|
|
3
|
+
import { d as C, a as S, c as T, b as v } from "./Tag-CMxtdQP6.js";
|
|
4
4
|
import { e as y } from "./useBreakpoints-D8wKOvil.js";
|
|
5
5
|
import { T as w } from "./index-BVqs-uqP.js";
|
|
6
6
|
function D({ value: t, defaultValue: r, onChange: l }) {
|
|
@@ -53,4 +53,4 @@ export {
|
|
|
53
53
|
N as S,
|
|
54
54
|
D as u
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=SearchSelectTag-
|
|
56
|
+
//# sourceMappingURL=SearchSelectTag-BooNxTsf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchSelectTag-
|
|
1
|
+
{"version":3,"file":"SearchSelectTag-BooNxTsf.js","sources":["../src/hooks/useControllableState.ts","../src/components/search-select/components/SearchSelectTag.tsx"],"sourcesContent":["import { useCallback, useState } from \"react\";\r\n\r\ntype UseControllableStateParams<T> = {\r\n\t/** Controlled значение */\r\n\tvalue?: T;\r\n\t/** Значение по умолчанию для uncontrolled режима */\r\n\tdefaultValue?: T;\r\n\t/** Callback при изменении значения */\r\n\tonChange?: (value: T) => void;\r\n};\r\n\r\n/**\r\n * Универсальный хук для управления controlled/uncontrolled состоянием.\r\n */\r\nexport function useControllableState<T>({ value, defaultValue, onChange }: UseControllableStateParams<T>) {\r\n\tconst [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\r\n\r\n\tconst isControlled = value !== undefined;\r\n\tconst actualValue = isControlled ? value : uncontrolledValue;\r\n\r\n\tconst setValue = useCallback(\r\n\t\t(nextValue: T | ((prevValue: T) => T)) => {\r\n\t\t\tconst resolvedValue =\r\n\t\t\t\ttypeof nextValue === \"function\" ? (nextValue as (prevValue: T) => T)(actualValue as T) : nextValue;\r\n\r\n\t\t\tif (!isControlled) {\r\n\t\t\t\tsetUncontrolledValue(resolvedValue);\r\n\t\t\t}\r\n\r\n\t\t\tonChange?.(resolvedValue);\r\n\t\t},\r\n\t\t[actualValue, isControlled, onChange]\r\n\t);\r\n\r\n\treturn [actualValue, setValue] as const;\r\n}\r\n","import { TagButton, TagClose, TagDivider, TagWrapper } from \"@/components/tag/Tag\";\r\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\r\nimport { PropsWithChildren, useMemo } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\n\r\nconst searchSelectTagStyles = tv({\r\n\tbase: \"rounded-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\r\n\tvariants: {\r\n\t\tselected: {\r\n\t\t\ttrue: \"group-focus-within/search-select-trigger:shadow-focus\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport interface SearchSelectTagProps {\r\n\tonLabelClick: (e: React.MouseEvent<HTMLElement>) => void;\r\n\tonClose: (e: React.MouseEvent<HTMLElement>) => void;\r\n\tonKeyDown?: (e: React.KeyboardEvent<HTMLDivElement>) => void;\r\n\treadonly?: boolean;\r\n\tisFocused?: boolean;\r\n\ttabIndex?: number;\r\n}\r\n\r\nexport const SearchSelectTag = (props: PropsWithChildren<SearchSelectTagProps>) => {\r\n\tconst {\r\n\t\tchildren,\r\n\t\tonLabelClick,\r\n\t\tonClose,\r\n\t\tonKeyDown,\r\n\t\treadonly = false,\r\n\t\tisFocused: selected = false,\r\n\t\ttabIndex\r\n\t} = props;\r\n\tconst hasClose = Boolean(onClose);\r\n\tconst isMobile = useIsMobile();\r\n\tconst size = useMemo(() => (isMobile ? \"lg\" : \"md\"), [isMobile]);\r\n\tconst styles = searchSelectTagStyles({ selected });\r\n\r\n\treturn (\r\n\t\t<TagWrapper size={size} className={styles} tabIndex={tabIndex} onKeyDown={onKeyDown}>\r\n\t\t\t<TagButton\r\n\t\t\t\tclassName=\"!shadow-none\"\r\n\t\t\t\tposition={hasClose && !readonly ? \"left\" : undefined}\r\n\t\t\t\tsize={size}\r\n\t\t\t\tonClick={onLabelClick}\r\n\t\t\t\tasChild\r\n\t\t\t>\r\n\t\t\t\t<span>{children}</span>\r\n\t\t\t</TagButton>\r\n\r\n\t\t\t{!readonly && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<TagDivider />\r\n\t\t\t\t\t<TagClose className=\"!shadow-none\" size={size} onClick={onClose} tag=\"span\" />\r\n\t\t\t\t</>\r\n\t\t\t)}\r\n\t\t</TagWrapper>\r\n\t);\r\n};\r\n\r\nSearchSelectTag.displayName = \"SearchSelectTag\";\r\n"],"names":["useControllableState","value","defaultValue","onChange","uncontrolledValue","setUncontrolledValue","useState","isControlled","actualValue","setValue","useCallback","nextValue","resolvedValue","searchSelectTagStyles","tv","SearchSelectTag","props","children","onLabelClick","onClose","onKeyDown","readonly","selected","tabIndex","hasClose","isMobile","useIsMobile","size","useMemo","styles","TagWrapper","jsx","TagButton","jsxs","Fragment","TagDivider","TagClose"],"mappings":";;;;;AAcO,SAASA,EAAwB,EAAE,OAAAC,GAAO,cAAAC,GAAc,UAAAC,KAA2C;AACzG,QAAM,CAACC,GAAmBC,CAAoB,IAAIC,EAASJ,CAAY,GAEjEK,IAAeN,MAAU,QACzBO,IAAcD,IAAeN,IAAQG,GAErCK,IAAWC;AAAA,IAChB,CAACC,MAAyC;AACzC,YAAMC,IACL,OAAOD,KAAc,aAAcA,EAAkCH,CAAgB,IAAIG;AAE1F,MAAKJ,KACJF,EAAqBO,CAAa,GAGnCT,IAAWS,CAAa;AAAA,IACzB;AAAA,IACA,CAACJ,GAAaD,GAAcJ,CAAQ;AAAA,EACrC;AAEO,SAAA,CAACK,GAAaC,CAAQ;AAC9B;AC9BA,MAAMI,IAAwBC,EAAG;AAAA,EAChC,MAAM;AAAA,EACN,UAAU;AAAA,IACT,UAAU;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,EACP;AAEF,CAAC,GAWYC,IAAkB,CAACC,MAAmD;AAC5E,QAAA;AAAA,IACL,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,WAAWC,IAAW;AAAA,IACtB,UAAAC;AAAA,EAAA,IACGP,GACEQ,IAAW,EAAQL,GACnBM,IAAWC,EAAY,GACvBC,IAAOC,EAAQ,MAAOH,IAAW,OAAO,MAAO,CAACA,CAAQ,CAAC,GACzDI,IAAShB,EAAsB,EAAE,UAAAS,GAAU;AAEjD,2BACEQ,GAAW,EAAA,MAAAH,GAAY,WAAWE,GAAQ,UAAAN,GAAoB,WAAAH,GAC9D,UAAA;AAAA,IAAA,gBAAAW;AAAA,MAACC;AAAA,MAAA;AAAA,QACA,WAAU;AAAA,QACV,UAAUR,KAAY,CAACH,IAAW,SAAS;AAAA,QAC3C,MAAAM;AAAA,QACA,SAAST;AAAA,QACT,SAAO;AAAA,QAEP,UAAA,gBAAAa,EAAC,UAAM,UAAAd,EAAS,CAAA;AAAA,MAAA;AAAA,IACjB;AAAA,IAEC,CAACI,KAEA,gBAAAY,EAAAC,GAAA,EAAA,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAW,EAAA;AAAA,MACZ,gBAAAJ,EAACK,KAAS,WAAU,gBAAe,MAAAT,GAAY,SAASR,GAAS,KAAI,OAAO,CAAA;AAAA,IAAA,EAC7E,CAAA;AAAA,EAAA,GAEF;AAEF;AAEAJ,EAAgB,cAAc;"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as a, jsxs as u, Fragment as C } from "react/jsx-runtime";
|
|
2
2
|
import { T as c } from "./index-BVqs-uqP.js";
|
|
3
|
-
import { S as
|
|
4
|
-
import {
|
|
5
|
-
import { I } from "./
|
|
6
|
-
import { X as S } from "./x-tDTt7hTQ.js";
|
|
3
|
+
import { S as m } from "./index-BtQfgaSF.js";
|
|
4
|
+
import { I as z } from "./Icon-DH3ev9GK.js";
|
|
5
|
+
import { X as I } from "./x-tDTt7hTQ.js";
|
|
7
6
|
const g = c({
|
|
8
7
|
base: "inline-flex items-center justify-center overflow-hidden font-medium transition-colors",
|
|
9
8
|
variants: {
|
|
@@ -61,9 +60,9 @@ const g = c({
|
|
|
61
60
|
class: "border-transparent bg-status-error hover:bg-status-error-hover"
|
|
62
61
|
}
|
|
63
62
|
]
|
|
64
|
-
}),
|
|
65
|
-
|
|
66
|
-
const
|
|
63
|
+
}), S = ({ asChild: t = !1, children: e, ...s }) => /* @__PURE__ */ a(t ? m : "span", { className: g(s), ...s, children: e });
|
|
64
|
+
S.displayName = "TagBase";
|
|
65
|
+
const B = c({
|
|
67
66
|
extend: g,
|
|
68
67
|
base: "z-10 flex cursor-pointer items-center justify-center whitespace-nowrap rounded-sm border focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary",
|
|
69
68
|
variants: {
|
|
@@ -87,11 +86,11 @@ const k = c({
|
|
|
87
86
|
position: "standalone"
|
|
88
87
|
}
|
|
89
88
|
}), f = (t) => {
|
|
90
|
-
const { asChild: e = !1, children: s, className:
|
|
91
|
-
return /* @__PURE__ */
|
|
89
|
+
const { asChild: e = !1, children: s, className: r, ...n } = t, o = e ? m : "button", i = B({ className: r, ...n });
|
|
90
|
+
return /* @__PURE__ */ a(o, { className: i, ...n, children: s });
|
|
92
91
|
};
|
|
93
92
|
f.displayName = "TagButton";
|
|
94
|
-
const
|
|
93
|
+
const k = c({
|
|
95
94
|
extend: g,
|
|
96
95
|
base: "aspect-square cursor-pointer rounded-l-none rounded-r-sm border border-l-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary",
|
|
97
96
|
variants: {
|
|
@@ -115,27 +114,27 @@ const D = c({
|
|
|
115
114
|
}
|
|
116
115
|
}
|
|
117
116
|
}), p = (t) => {
|
|
118
|
-
const { icon: e =
|
|
119
|
-
return /* @__PURE__ */ r
|
|
117
|
+
const { icon: e = I, size: s, tag: r = "button", className: n, ...o } = t, i = k({ className: n, size: s, ...o });
|
|
118
|
+
return /* @__PURE__ */ a(r, { type: "button", className: i, "aria-label": "Удалить", size: s, ...o, children: /* @__PURE__ */ a(z, { icon: e, className: d({ size: s }) }) });
|
|
120
119
|
};
|
|
121
120
|
p.displayName = "TagClose";
|
|
122
121
|
const j = c({
|
|
123
|
-
base: "",
|
|
122
|
+
base: "self-stretch border-l border-secondary-border",
|
|
124
123
|
variants: {
|
|
125
124
|
status: {
|
|
126
|
-
default: "
|
|
127
|
-
info: "
|
|
128
|
-
success: "
|
|
129
|
-
warning: "
|
|
130
|
-
error: "
|
|
125
|
+
default: "",
|
|
126
|
+
info: "border-status-info-secondary-border",
|
|
127
|
+
success: "border-status-success-secondary-border",
|
|
128
|
+
warning: "border-status-warning-secondary-border",
|
|
129
|
+
error: "border-status-error-secondary-border"
|
|
131
130
|
}
|
|
132
131
|
},
|
|
133
132
|
defaultVariants: {
|
|
134
133
|
status: "default"
|
|
135
134
|
}
|
|
136
135
|
}), v = (t) => {
|
|
137
|
-
const { status: e,
|
|
138
|
-
return /* @__PURE__ */
|
|
136
|
+
const { status: e, className: s, ...r } = t;
|
|
137
|
+
return /* @__PURE__ */ a("div", { className: j({ status: e, className: s }), ...r });
|
|
139
138
|
};
|
|
140
139
|
v.displayName = "TagDivider";
|
|
141
140
|
const V = c({
|
|
@@ -147,54 +146,54 @@ const V = c({
|
|
|
147
146
|
lg: "h-7"
|
|
148
147
|
}
|
|
149
148
|
}
|
|
150
|
-
}),
|
|
151
|
-
const { children: e, className: s, size:
|
|
152
|
-
return /* @__PURE__ */
|
|
153
|
-
},
|
|
149
|
+
}), D = (t) => {
|
|
150
|
+
const { children: e, className: s, size: r, ...n } = t, o = V({ className: s, size: r });
|
|
151
|
+
return /* @__PURE__ */ a("div", { className: o, ...n, children: e });
|
|
152
|
+
}, E = (t) => {
|
|
154
153
|
const {
|
|
155
154
|
startIcon: e,
|
|
156
155
|
endIcon: s,
|
|
157
|
-
children:
|
|
156
|
+
children: r,
|
|
158
157
|
onLabelClick: n,
|
|
159
|
-
onClose:
|
|
158
|
+
onClose: o,
|
|
160
159
|
status: i,
|
|
161
160
|
focus: b,
|
|
162
|
-
size:
|
|
161
|
+
size: l = "md",
|
|
163
162
|
className: y,
|
|
164
163
|
buttonClassName: x,
|
|
165
164
|
...w
|
|
166
|
-
} = t,
|
|
167
|
-
return /* @__PURE__ */
|
|
168
|
-
/* @__PURE__ */
|
|
165
|
+
} = t, h = !!o, N = e && /* @__PURE__ */ a(e, { className: d({ size: l }) }), T = s && /* @__PURE__ */ a(s, { className: d({ size: l }) });
|
|
166
|
+
return /* @__PURE__ */ u(D, { size: l, className: y, children: [
|
|
167
|
+
/* @__PURE__ */ u(
|
|
169
168
|
f,
|
|
170
169
|
{
|
|
171
|
-
position:
|
|
170
|
+
position: h ? "left" : void 0,
|
|
172
171
|
status: i,
|
|
173
172
|
focus: b,
|
|
174
|
-
size:
|
|
173
|
+
size: l,
|
|
175
174
|
onClick: n,
|
|
176
175
|
className: x,
|
|
177
176
|
...w,
|
|
178
177
|
children: [
|
|
179
178
|
N,
|
|
180
|
-
|
|
179
|
+
r,
|
|
181
180
|
T
|
|
182
181
|
]
|
|
183
182
|
}
|
|
184
183
|
),
|
|
185
|
-
|
|
186
|
-
/* @__PURE__ */
|
|
187
|
-
/* @__PURE__ */
|
|
184
|
+
h && /* @__PURE__ */ u(C, { children: [
|
|
185
|
+
/* @__PURE__ */ a(v, { status: i }),
|
|
186
|
+
/* @__PURE__ */ a(p, { status: i, focus: b, size: l, onClick: o })
|
|
188
187
|
] })
|
|
189
188
|
] });
|
|
190
189
|
};
|
|
191
|
-
|
|
190
|
+
E.displayName = "Tag";
|
|
192
191
|
export {
|
|
193
|
-
|
|
192
|
+
S as T,
|
|
194
193
|
f as a,
|
|
195
194
|
p as b,
|
|
196
195
|
v as c,
|
|
197
|
-
|
|
198
|
-
|
|
196
|
+
D as d,
|
|
197
|
+
E as e
|
|
199
198
|
};
|
|
200
|
-
//# sourceMappingURL=Tag-
|
|
199
|
+
//# sourceMappingURL=Tag-CMxtdQP6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tag-CMxtdQP6.js","sources":["../src/components/tag/Tag.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\r\nimport { tv } from \"tailwind-variants\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { LucideIcon, X } from \"lucide-react\";\r\nimport { Icon } from \"../icon\";\r\nimport { ButtonProps } from \"../button/button/Button\";\r\nimport { VariantsConfig } from \"@/lib/utils/variants\";\r\n\r\nexport interface TagBaseVariants {\r\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\r\n\tfocus?: \"low\" | \"high\";\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst tagBaseStyles = tv({\r\n\tbase: \"inline-flex items-center justify-center overflow-hidden font-medium transition-colors\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tdefault: \"border-primary-border bg-status-neutral-bg text-primary-fg hover:bg-status-neutral-bg-hover\",\r\n\t\t\tinfo: \"border-status-info-secondary-border bg-status-info-bg text-status-info-fg hover:bg-status-info-bg-hover\",\r\n\t\t\tsuccess:\r\n\t\t\t\t\"border-status-success-secondary-border bg-status-success-bg text-status-success-fg hover:bg-status-success-bg-hover\",\r\n\t\t\twarning:\r\n\t\t\t\t\"border-status-warning-secondary-border bg-status-warning-bg text-status-warning-fg hover:bg-status-warning-bg-hover\",\r\n\t\t\terror: \"border-status-error-secondary-border bg-status-error-bg text-status-error-fg hover:bg-status-error-bg-hover\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"shadow-soft-sm\",\r\n\t\t\thigh: \"shadow-soft-base\"\r\n\t\t},\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5 px-1.5 py-1 text-xs leading-none\",\r\n\t\t\tmd: \"h-6 px-1.5 py-1 text-sm leading-none\",\r\n\t\t\tlg: \"h-7 px-2 py-1 text-base leading-none\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagBaseVariants>,\r\n\tdefaultVariants: {\r\n\t\tstatus: \"default\",\r\n\t\tfocus: \"low\",\r\n\t\tsize: \"md\"\r\n\t},\r\n\tcompoundVariants: [\r\n\t\t{\r\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"text-white\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"default\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-neutral text-primary-bg hover:bg-status-neutral-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"info\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-info hover:bg-status-info-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"success\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-success hover:bg-status-success-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"warning\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-warning hover:bg-status-warning-hover\"\r\n\t\t},\r\n\t\t{\r\n\t\t\tstatus: \"error\",\r\n\t\t\tfocus: \"high\",\r\n\t\t\tclass: \"border-transparent bg-status-error hover:bg-status-error-hover\"\r\n\t\t}\r\n\t]\r\n});\r\n\r\nexport type TagBaseProps = React.HTMLAttributes<HTMLElement> &\r\n\tTagBaseVariants & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const TagBase = ({ asChild = false, children, ...props }: PropsWithChildren<TagBaseProps>) => {\r\n\tconst Comp = asChild ? Slot : \"span\";\r\n\treturn (\r\n\t\t<Comp className={tagBaseStyles(props)} {...props}>\r\n\t\t\t{children}\r\n\t\t</Comp>\r\n\t);\r\n};\r\n\r\nTagBase.displayName = \"TagBase\";\r\n\r\nexport interface TagButtonVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n\tclickable?: boolean;\r\n\tposition?: \"standalone\" | \"left\" | \"right\" | \"middle\";\r\n}\r\n\r\nconst tagButtonStyles = tv({\r\n\textend: tagBaseStyles,\r\n\tbase: \"z-10 flex cursor-pointer items-center justify-center whitespace-nowrap rounded-sm border focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"gap-1\",\r\n\t\t\tmd: \"gap-1\",\r\n\t\t\tlg: \"gap-1.5\"\r\n\t\t},\r\n\t\tclickable: {\r\n\t\t\tfalse: \"cursor-default\"\r\n\t\t},\r\n\t\tposition: {\r\n\t\t\tstandalone: \"\",\r\n\t\t\tleft: \"rounded-r-none border-r-0\",\r\n\t\t\tright: \"rounded-l-none border-l-0\",\r\n\t\t\tmiddle: \"rounded-none border-l-0 border-r-0\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagButtonVariants>,\r\n\tdefaultVariants: {\r\n\t\tclickable: true,\r\n\t\tposition: \"standalone\"\r\n\t}\r\n});\r\n\r\nexport type TagButtonProps = React.HTMLAttributes<HTMLElement> &\r\n\tTagButtonVariants &\r\n\tOmit<TagBaseVariants, \"size\"> & {\r\n\t\tasChild?: boolean;\r\n\t};\r\n\r\nexport const TagButton = (props: PropsWithChildren<TagButtonProps>) => {\r\n\tconst { asChild = false, children, className, ...rest } = props;\r\n\tconst Comp = asChild ? Slot : \"button\";\r\n\tconst styles = tagButtonStyles({ className, ...rest });\r\n\treturn (\r\n\t\t<Comp className={styles} {...rest}>\r\n\t\t\t{children}\r\n\t\t</Comp>\r\n\t);\r\n};\r\n\r\nTagButton.displayName = \"TagButton\";\r\n\r\nexport interface TagCloseVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n\tfocus?: \"low\" | \"high\";\r\n}\r\n\r\nconst tagCloseStyles = tv({\r\n\textend: tagBaseStyles,\r\n\tbase: \"aspect-square cursor-pointer rounded-l-none rounded-r-sm border border-l-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5 p-1 text-xs\",\r\n\t\t\tmd: \"h-6 p-1 text-sm\",\r\n\t\t\tlg: \"h-7 p-1.5 text-base\"\r\n\t\t},\r\n\t\tfocus: {\r\n\t\t\tlow: \"!text-primary-fg\",\r\n\t\t\thigh: \"\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagCloseVariants>\r\n});\r\n\r\nconst tagIconStyles = tv({\r\n\tbase: \"aspect-square flex-shrink-0\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-3 w-3\",\r\n\t\t\tmd: \"h-3.5 w-3.5\",\r\n\t\t\tlg: \"h-4 w-4\"\r\n\t\t}\r\n\t}\r\n});\r\n\r\nexport type TagCloseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\r\n\tTagCloseVariants &\r\n\tOmit<TagBaseVariants, \"size\"> & {\r\n\t\ticon?: LucideIcon;\r\n\t\ttag?: React.ElementType;\r\n\t};\r\n\r\nexport const TagClose = (props: TagCloseProps) => {\r\n\tconst { icon = X, size, tag: Tag = \"button\", className, ...rest } = props;\r\n\tconst styles = tagCloseStyles({ className, size, ...rest });\r\n\treturn (\r\n\t\t<Tag type=\"button\" className={styles} aria-label=\"Удалить\" size={size} {...rest}>\r\n\t\t\t<Icon icon={icon} className={tagIconStyles({ size })} />\r\n\t\t</Tag>\r\n\t);\r\n};\r\n\r\nTagClose.displayName = \"TagClose\";\r\n\r\nexport interface TagDividerVariants {\r\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\r\n}\r\n\r\nconst tagDividerStyles = tv({\r\n\tbase: \"self-stretch border-l border-secondary-border\",\r\n\tvariants: {\r\n\t\tstatus: {\r\n\t\t\tdefault: \"\",\r\n\t\t\tinfo: \"border-status-info-secondary-border\",\r\n\t\t\tsuccess: \"border-status-success-secondary-border\",\r\n\t\t\twarning: \"border-status-warning-secondary-border\",\r\n\t\t\terror: \"border-status-error-secondary-border\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagDividerVariants>,\r\n\tdefaultVariants: {\r\n\t\tstatus: \"default\"\r\n\t}\r\n});\r\n\r\nexport type TagDividerProps = React.HTMLAttributes<HTMLDivElement> & TagDividerVariants;\r\n\r\nexport const TagDivider = (props: TagDividerProps) => {\r\n\tconst { status, className, ...rest } = props;\r\n\treturn <div className={tagDividerStyles({ status, className })} {...rest} />;\r\n};\r\n\r\nTagDivider.displayName = \"TagDivider\";\r\n\r\nexport interface TagWrapperVariants {\r\n\tsize?: \"sm\" | \"md\" | \"lg\";\r\n}\r\n\r\nconst tagWrapperStyles = tv({\r\n\tbase: \"inline-flex items-center rounded-sm\",\r\n\tvariants: {\r\n\t\tsize: {\r\n\t\t\tsm: \"h-5\",\r\n\t\t\tmd: \"h-6\",\r\n\t\t\tlg: \"h-7\"\r\n\t\t}\r\n\t} satisfies VariantsConfig<TagWrapperVariants>\r\n});\r\n\r\nexport type TagWrapperProps = React.HTMLAttributes<HTMLDivElement> & TagWrapperVariants;\r\n\r\nexport const TagWrapper = (props: TagWrapperProps) => {\r\n\tconst { children, className, size, ...rest } = props;\r\n\tconst styles = tagWrapperStyles({ className, size });\r\n\treturn (\r\n\t\t<div className={styles} {...rest}>\r\n\t\t\t{children}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport type TagProps = PropsWithChildren<\r\n\tPick<TagBaseVariants, \"focus\" | \"size\"> &\r\n\t\tButtonProps & {\r\n\t\t\tonLabelClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n\t\t\tonClose?: (e: React.MouseEvent<HTMLButtonElement>) => void;\r\n\t\t\tclassName?: string;\r\n\t\t\tbuttonClassName?: string;\r\n\t\t}\r\n>;\r\n\r\nexport const Tag = (props: TagProps) => {\r\n\tconst {\r\n\t\tstartIcon: StartIcon,\r\n\t\tendIcon: EndIcon,\r\n\t\tchildren,\r\n\t\tonLabelClick,\r\n\t\tonClose,\r\n\t\tstatus,\r\n\t\tfocus,\r\n\t\tsize = \"md\",\r\n\t\tclassName,\r\n\t\tbuttonClassName,\r\n\t\t...rest\r\n\t} = props;\r\n\tconst hasClose = Boolean(onClose);\r\n\r\n\tconst startIconEl = StartIcon && <StartIcon className={tagIconStyles({ size })} />;\r\n\tconst endIconEl = EndIcon && <EndIcon className={tagIconStyles({ size })} />;\r\n\r\n\treturn (\r\n\t\t<TagWrapper size={size} className={className}>\r\n\t\t\t<TagButton\r\n\t\t\t\tposition={hasClose ? \"left\" : undefined}\r\n\t\t\t\tstatus={status}\r\n\t\t\t\tfocus={focus}\r\n\t\t\t\tsize={size}\r\n\t\t\t\tonClick={onLabelClick}\r\n\t\t\t\tclassName={buttonClassName}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t{startIconEl}\r\n\t\t\t\t{children}\r\n\t\t\t\t{endIconEl}\r\n\t\t\t</TagButton>\r\n\r\n\t\t\t{hasClose && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<TagDivider status={status} />\r\n\t\t\t\t\t<TagClose status={status} focus={focus} size={size} onClick={onClose} />\r\n\t\t\t\t</>\r\n\t\t\t)}\r\n\t\t</TagWrapper>\r\n\t);\r\n};\r\n\r\nTag.displayName = \"Tag\";\r\n"],"names":["tagBaseStyles","tv","TagBase","asChild","children","props","jsx","Slot","tagButtonStyles","TagButton","className","rest","Comp","styles","tagCloseStyles","tagIconStyles","TagClose","icon","X","size","Tag","Icon","tagDividerStyles","TagDivider","status","tagWrapperStyles","TagWrapper","StartIcon","EndIcon","onLabelClick","onClose","focus","buttonClassName","hasClose","startIconEl","endIconEl","jsxs","Fragment"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as e, jsxs as D, Fragment as B } from "react/jsx-runtime";
|
|
2
2
|
import M, { useState as L, useCallback as x, useEffect as E, forwardRef as Z, useMemo as P, useRef as q } from "react";
|
|
3
3
|
import { T as F } from "../index-BVqs-uqP.js";
|
|
4
|
-
import { u as H, S as fe } from "../SearchSelectTag-
|
|
4
|
+
import { u as H, S as fe } from "../SearchSelectTag-BooNxTsf.js";
|
|
5
5
|
import { b as Se, f as ee, C as re, c as te, d as ge, h as ve } from "../Command-DuRpKGBu.js";
|
|
6
6
|
import { I as K } from "../Icon-DH3ev9GK.js";
|
|
7
7
|
import { b as ye, P as j, a as _ } from "../Popover-Dvr7y0YY.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as C, jsxs as q } from "react/jsx-runtime";
|
|
2
|
-
import { u as z, S as H } from "../SearchSelectTag-
|
|
2
|
+
import { u as z, S as H } from "../SearchSelectTag-BooNxTsf.js";
|
|
3
3
|
import { u as J } from "../useItemsKeyboardNavigation-CmeOR30y.js";
|
|
4
4
|
import M, { useState as k, useRef as V, useCallback as r } from "react";
|
|
5
5
|
import { T as S } from "../index-BVqs-uqP.js";
|
package/dist/components/tag.js
CHANGED