ics-ui-kit 0.1.18 → 0.1.19

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 (49) hide show
  1. package/dist/{Button-Dg89xRSi.js → Button-BZ3ON1Tj.js} +2 -2
  2. package/dist/{Button-Dg89xRSi.js.map → Button-BZ3ON1Tj.js.map} +1 -1
  3. package/dist/ButtonBase-jgu7EolU.js +158 -0
  4. package/dist/ButtonBase-jgu7EolU.js.map +1 -0
  5. package/dist/{FormFooterTemplate-BRrgrxAu.js → FormFooterTemplate-DdNnLu2-.js} +2 -2
  6. package/dist/{FormFooterTemplate-BRrgrxAu.js.map → FormFooterTemplate-DdNnLu2-.js.map} +1 -1
  7. package/dist/{IconButton-DwkpNgn3.js → IconButton-uGJ3cQtk.js} +2 -2
  8. package/dist/{IconButton-DwkpNgn3.js.map → IconButton-uGJ3cQtk.js.map} +1 -1
  9. package/dist/{InputGroup-BcRWP-zL.js → InputGroup-AVAtosX_.js} +2 -2
  10. package/dist/{InputGroup-BcRWP-zL.js.map → InputGroup-AVAtosX_.js.map} +1 -1
  11. package/dist/{Popover-CRVD7AtB.js → Popover-KjZXxxl3.js} +2 -2
  12. package/dist/{Popover-CRVD7AtB.js.map → Popover-KjZXxxl3.js.map} +1 -1
  13. package/dist/{RichButton-DuPTenmS.js → RichButton-B1wjK7Bk.js} +2 -2
  14. package/dist/{RichButton-DuPTenmS.js.map → RichButton-B1wjK7Bk.js.map} +1 -1
  15. package/dist/{TextInput-Db0ylY91.js → TextInput-5BuZtWV6.js} +2 -2
  16. package/dist/{TextInput-Db0ylY91.js.map → TextInput-5BuZtWV6.js.map} +1 -1
  17. package/dist/{TriggerButton-CfDObWP9.js → TriggerButton-Bakr8Boi.js} +2 -2
  18. package/dist/{TriggerButton-CfDObWP9.js.map → TriggerButton-Bakr8Boi.js.map} +1 -1
  19. package/dist/blocks/auth/otp-form.js +2 -2
  20. package/dist/components/alert-dialog.js +1 -1
  21. package/dist/components/alert.js +1 -1
  22. package/dist/components/button.js +5 -5
  23. package/dist/components/calendar.js +1 -1
  24. package/dist/components/card.js +1 -1
  25. package/dist/components/carousel.js +1 -1
  26. package/dist/components/dialog.js +1 -1
  27. package/dist/components/drawer.js +1 -1
  28. package/dist/components/dropdown.js +1 -1
  29. package/dist/components/error-state.js +1 -1
  30. package/dist/components/file-upload.js +2 -2
  31. package/dist/components/form.js +2 -2
  32. package/dist/components/image-preview.js +1 -1
  33. package/dist/components/image-uploader.js +1 -1
  34. package/dist/components/input.js +4 -4
  35. package/dist/components/menu-item.js +3 -3
  36. package/dist/components/page-state.js +1 -1
  37. package/dist/components/popover.js +1 -1
  38. package/dist/components/progress-circle.js +1 -1
  39. package/dist/components/progress.js +1 -1
  40. package/dist/components/search-select.js +1 -1
  41. package/dist/components/sidebar.js +2 -2
  42. package/dist/components/system-state.js +1 -1
  43. package/dist/components/tag-input.js +1 -1
  44. package/dist/components/toast.js +2 -2
  45. package/dist/styles-scoped.css +30 -79
  46. package/dist/styles.css +30 -79
  47. package/package.json +1 -1
  48. package/dist/ButtonBase-e6qyv6mD.js +0 -158
  49. package/dist/ButtonBase-e6qyv6mD.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx as t, jsxs as f } from "react/jsx-runtime";
2
2
  import p from "react";
3
3
  import { T as u } from "./index-BVqs-uqP.js";
4
- import { B as h } from "./ButtonBase-e6qyv6mD.js";
4
+ import { B as h } from "./ButtonBase-jgu7EolU.js";
5
5
  const w = u({
6
6
  slots: {
7
7
  container: "flex items-center justify-center gap-2 overflow-hidden",
@@ -33,4 +33,4 @@ x.displayName = "Button";
33
33
  export {
34
34
  x as B
35
35
  };
36
- //# sourceMappingURL=Button-Dg89xRSi.js.map
36
+ //# sourceMappingURL=Button-BZ3ON1Tj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-Dg89xRSi.js","sources":["../src/components/button/button/Button.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype ButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst buttonStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex items-center justify-center gap-2 overflow-hidden\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { icon: \"h-3 w-3\" },\n\t\t\tsm: { icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: {},\n\t\t\tlg: {},\n\t\t\txl: { icon: \"h-5 w-5\", container: \"gap-3\" }\n\t\t}\n\t} satisfies VariantsConfig<ButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ButtonProps = PropsWithChildren<\n\tButtonBaseProps &\n\t\tButtonVariants & {\n\t\t\tstartIcon?: React.ElementType;\n\t\t\tendIcon?: React.ElementType;\n\t\t\tcontainerClassName?: string;\n\t\t\ticonClassName?: string;\n\t\t}\n>;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ startIcon: StartIcon, endIcon: EndIcon, size, children, iconClassName, containerClassName, ...props }, ref) => {\n\t\tconst styles = buttonStyles({ size });\n\n\t\tconst startIconEl = StartIcon && <StartIcon className={styles.icon({ className: iconClassName })} />;\n\t\tconst endIconEl = EndIcon && <EndIcon className={styles.icon({ className: iconClassName })} />;\n\n\t\treturn (\n\t\t\t<ButtonBase {...props} size={size} ref={ref}>\n\t\t\t\t<div className={styles.container({ className: containerClassName })}>\n\t\t\t\t\t{startIconEl}\n\t\t\t\t\t{children}\n\t\t\t\t\t{endIconEl}\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nButton.displayName = \"Button\";\n"],"names":["buttonStyles","tv","Button","React","StartIcon","EndIcon","size","children","iconClassName","containerClassName","props","ref","styles","startIconEl","jsx","endIconEl","ButtonBase","jsxs"],"mappings":";;;;AAOA,MAAMA,IAAeC,EAAG;AAAA,EACvB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,MAAM,UAAU;AAAA,MACtB,IAAI,EAAE,MAAM,cAAc;AAAA,MAC1B,IAAI,CAAC;AAAA,MACL,IAAI,CAAC;AAAA,MACL,IAAI,EAAE,MAAM,WAAW,WAAW,QAAQ;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAYYC,IAASC,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAWC,GAAW,SAASC,GAAS,MAAAC,GAAM,UAAAC,GAAU,eAAAC,GAAe,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAAQ;AACjH,UAAMC,IAASZ,EAAa,EAAE,MAAAM,GAAM,GAE9BO,IAAcT,KAAa,gBAAAU,EAACV,GAAU,EAAA,WAAWQ,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA,GAC5FO,IAAYV,KAAW,gBAAAS,EAACT,GAAQ,EAAA,WAAWO,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA;AAE5F,WACE,gBAAAM,EAAAE,GAAA,EAAY,GAAGN,GAAO,MAAAJ,GAAY,KAAAK,GAClC,UAAA,gBAAAM,EAAC,OAAI,EAAA,WAAWL,EAAO,UAAU,EAAE,WAAWH,EAAA,CAAoB,GAChE,UAAA;AAAA,MAAAI;AAAA,MACAN;AAAA,MACAQ;AAAA,IAAA,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAb,EAAO,cAAc;"}
1
+ {"version":3,"file":"Button-BZ3ON1Tj.js","sources":["../src/components/button/button/Button.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype ButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst buttonStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex items-center justify-center gap-2 overflow-hidden\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { icon: \"h-3 w-3\" },\n\t\t\tsm: { icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: {},\n\t\t\tlg: {},\n\t\t\txl: { icon: \"h-5 w-5\", container: \"gap-3\" }\n\t\t}\n\t} satisfies VariantsConfig<ButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type ButtonProps = PropsWithChildren<\n\tButtonBaseProps &\n\t\tButtonVariants & {\n\t\t\tstartIcon?: React.ElementType;\n\t\t\tendIcon?: React.ElementType;\n\t\t\tcontainerClassName?: string;\n\t\t\ticonClassName?: string;\n\t\t}\n>;\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t({ startIcon: StartIcon, endIcon: EndIcon, size, children, iconClassName, containerClassName, ...props }, ref) => {\n\t\tconst styles = buttonStyles({ size });\n\n\t\tconst startIconEl = StartIcon && <StartIcon className={styles.icon({ className: iconClassName })} />;\n\t\tconst endIconEl = EndIcon && <EndIcon className={styles.icon({ className: iconClassName })} />;\n\n\t\treturn (\n\t\t\t<ButtonBase {...props} size={size} ref={ref}>\n\t\t\t\t<div className={styles.container({ className: containerClassName })}>\n\t\t\t\t\t{startIconEl}\n\t\t\t\t\t{children}\n\t\t\t\t\t{endIconEl}\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nButton.displayName = \"Button\";\n"],"names":["buttonStyles","tv","Button","React","StartIcon","EndIcon","size","children","iconClassName","containerClassName","props","ref","styles","startIconEl","jsx","endIconEl","ButtonBase","jsxs"],"mappings":";;;;AAOA,MAAMA,IAAeC,EAAG;AAAA,EACvB,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,MAAM,UAAU;AAAA,MACtB,IAAI,EAAE,MAAM,cAAc;AAAA,MAC1B,IAAI,CAAC;AAAA,MACL,IAAI,CAAC;AAAA,MACL,IAAI,EAAE,MAAM,WAAW,WAAW,QAAQ;AAAA,IAAA;AAAA,EAE5C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAYYC,IAASC,EAAM;AAAA,EAC3B,CAAC,EAAE,WAAWC,GAAW,SAASC,GAAS,MAAAC,GAAM,UAAAC,GAAU,eAAAC,GAAe,oBAAAC,GAAoB,GAAGC,EAAA,GAASC,MAAQ;AACjH,UAAMC,IAASZ,EAAa,EAAE,MAAAM,GAAM,GAE9BO,IAAcT,KAAa,gBAAAU,EAACV,GAAU,EAAA,WAAWQ,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA,GAC5FO,IAAYV,KAAW,gBAAAS,EAACT,GAAQ,EAAA,WAAWO,EAAO,KAAK,EAAE,WAAWJ,EAAc,CAAC,EAAG,CAAA;AAE5F,WACE,gBAAAM,EAAAE,GAAA,EAAY,GAAGN,GAAO,MAAAJ,GAAY,KAAAK,GAClC,UAAA,gBAAAM,EAAC,OAAI,EAAA,WAAWL,EAAO,UAAU,EAAE,WAAWH,EAAA,CAAoB,GAChE,UAAA;AAAA,MAAAI;AAAA,MACAN;AAAA,MACAQ;AAAA,IAAA,EAAA,CACF,EACD,CAAA;AAAA,EAAA;AAGH;AAEAb,EAAO,cAAc;"}
@@ -0,0 +1,158 @@
1
+ import { jsx as g } from "react/jsx-runtime";
2
+ import { S as u } from "./index-BtQfgaSF.js";
3
+ import c from "react";
4
+ import { T as b } from "./index-BVqs-uqP.js";
5
+ const v = b({
6
+ base: "inline-flex cursor-pointer select-none items-center justify-center overflow-hidden rounded-lg font-medium text-primary-fg transition-all focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
7
+ variants: {
8
+ variant: {
9
+ primary: "bg-primary-accent text-primary-bg shadow-soft-base hover:bg-primary-accent-hover active:bg-primary-accent-hover",
10
+ secondary: "bg-secondary-bg-hover hover:bg-primary-bg-hover active:bg-primary-bg-hover",
11
+ outline: "border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm hover:border-primary-border hover:bg-secondary-bg-hover active:border-primary-border active:bg-secondary-bg-hover",
12
+ ghost: "bg-transparent hover:bg-secondary-bg-hover active:bg-secondary-bg-hover",
13
+ link: "bg-transparent text-muted underline hover:text-primary-fg active:text-primary-fg",
14
+ text: "bg-transparent text-muted hover:text-primary-fg active:text-primary-fg"
15
+ },
16
+ status: {
17
+ default: "",
18
+ info: "text-status-info-fg",
19
+ success: "text-status-success-fg",
20
+ warning: "text-status-warning-fg",
21
+ error: "text-status-error-fg"
22
+ },
23
+ size: {
24
+ xs: "h-7 gap-2 px-2.5 py-1.5 text-xs",
25
+ sm: "h-8 gap-2 px-3 py-2 text-xs",
26
+ md: "h-9 gap-2 px-4 py-2 text-sm",
27
+ lg: "h-10 gap-2 px-5 py-2 text-sm",
28
+ xl: "h-11 gap-3 px-6 py-3 text-base"
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ variant: "primary",
33
+ size: "md",
34
+ status: "default"
35
+ },
36
+ compoundVariants: [
37
+ /*
38
+ * Statuses
39
+ */
40
+ // Primary
41
+ {
42
+ variant: "primary",
43
+ status: ["info", "success", "warning", "error"],
44
+ class: "text-white hover:text-white active:text-white"
45
+ },
46
+ {
47
+ variant: "primary",
48
+ status: "info",
49
+ class: "bg-status-info hover:bg-status-info-hover active:bg-status-info-hover"
50
+ },
51
+ {
52
+ variant: "primary",
53
+ status: "success",
54
+ class: "bg-status-success hover:bg-status-success-hover active:bg-status-success-hover"
55
+ },
56
+ {
57
+ variant: "primary",
58
+ status: "warning",
59
+ class: "bg-status-warning hover:bg-status-warning-hover active:bg-status-warning-hover"
60
+ },
61
+ {
62
+ variant: "primary",
63
+ status: "error",
64
+ class: "bg-status-error hover:bg-status-error-hover active:bg-status-error-hover"
65
+ },
66
+ // Secondary
67
+ {
68
+ variant: "secondary",
69
+ status: "info",
70
+ class: "bg-status-info-bg hover:bg-status-info-bg-hover active:bg-status-info-bg-hover"
71
+ },
72
+ {
73
+ variant: "secondary",
74
+ status: "success",
75
+ class: "bg-status-success-bg hover:bg-status-success-bg-hover active:bg-status-success-bg-hover"
76
+ },
77
+ {
78
+ variant: "secondary",
79
+ status: "warning",
80
+ class: "bg-status-warning-bg hover:bg-status-warning-bg-hover active:bg-status-warning-bg-hover"
81
+ },
82
+ {
83
+ variant: "secondary",
84
+ status: "error",
85
+ class: "bg-status-error-bg hover:bg-status-error-bg-hover active:bg-status-error-bg-hover"
86
+ },
87
+ // Outline
88
+ {
89
+ variant: "outline",
90
+ status: "info",
91
+ class: "border-status-info-secondary-border hover:border-status-info-primary-border hover:bg-status-info-bg active:border-status-info-secondary-border active:bg-status-info-bg"
92
+ },
93
+ {
94
+ variant: "outline",
95
+ status: "success",
96
+ class: "border-status-success-secondary-border hover:border-status-success-primary-border hover:bg-status-success-bg active:border-status-success-secondary-border active:bg-status-success-bg"
97
+ },
98
+ {
99
+ variant: "outline",
100
+ status: "warning",
101
+ class: "border-status-warning-secondary-border hover:border-status-warning-primary-border hover:bg-status-warning-bg active:border-status-warning-secondary-border active:bg-status-warning-bg"
102
+ },
103
+ {
104
+ variant: "outline",
105
+ status: "error",
106
+ class: "border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg active:border-status-error-secondary-border active:bg-status-error-bg"
107
+ },
108
+ // Ghost
109
+ {
110
+ variant: "ghost",
111
+ status: "info",
112
+ class: "text-status-info-fg hover:bg-status-info-bg active:bg-status-info-bg"
113
+ },
114
+ {
115
+ variant: "ghost",
116
+ status: "success",
117
+ class: "text-status-success-fg hover:bg-status-success-bg active:bg-status-success-bg"
118
+ },
119
+ {
120
+ variant: "ghost",
121
+ status: "warning",
122
+ class: "text-status-warning-fg hover:bg-status-warning-bg active:bg-status-warning-bg"
123
+ },
124
+ {
125
+ variant: "ghost",
126
+ status: "error",
127
+ class: "text-status-error-fg hover:bg-status-error-bg active:bg-status-error-bg"
128
+ },
129
+ // Text & Link
130
+ {
131
+ variant: ["text", "link"],
132
+ status: "info",
133
+ class: "text-status-info-fg/70 hover:text-status-info-fg active:text-status-info-fg"
134
+ },
135
+ {
136
+ variant: ["text", "link"],
137
+ status: "success",
138
+ class: "text-status-success-fg/70 hover:text-status-success-fg active:text-status-success-fg"
139
+ },
140
+ {
141
+ variant: ["text", "link"],
142
+ status: "warning",
143
+ class: "text-status-warning-fg/70 hover:text-status-warning-fg active:text-status-warning-fg"
144
+ },
145
+ {
146
+ variant: ["text", "link"],
147
+ status: "error",
148
+ class: "text-status-error-fg/70 hover:text-status-error-fg active:text-status-error-fg"
149
+ }
150
+ ]
151
+ }), d = c.forwardRef(
152
+ ({ variant: t, size: s, children: r, status: a, className: e, asChild: o = !1, ...i }, n) => /* @__PURE__ */ g(o ? u : "button", { className: v({ variant: t, size: s, status: a, className: e }), ref: n, ...i, children: r })
153
+ );
154
+ d.displayName = "ButtonBase";
155
+ export {
156
+ d as B
157
+ };
158
+ //# sourceMappingURL=ButtonBase-jgu7EolU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonBase-jgu7EolU.js","sources":["../src/components/button/button-base/ButtonBase.tsx"],"sourcesContent":["import { VariantsConfig } from \"@/lib/utils/variants\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\n\nexport interface ButtonBaseVariants {\n\tvariant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"link\" | \"text\";\n\tstatus?: \"default\" | \"info\" | \"success\" | \"warning\" | \"error\";\n\tsize?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst buttonBaseStyles = tv({\n\tbase: \"inline-flex cursor-pointer select-none items-center justify-center overflow-hidden rounded-lg font-medium text-primary-fg transition-all focus-visible:shadow-focus focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50\",\n\tvariants: {\n\t\tvariant: {\n\t\t\tprimary:\n\t\t\t\t\"bg-primary-accent text-primary-bg shadow-soft-base hover:bg-primary-accent-hover active:bg-primary-accent-hover\",\n\t\t\tsecondary: \"bg-secondary-bg-hover hover:bg-primary-bg-hover active:bg-primary-bg-hover\",\n\t\t\toutline:\n\t\t\t\t\"border border-solid border-secondary-border bg-secondary-bg shadow-soft-sm hover:border-primary-border hover:bg-secondary-bg-hover active:border-primary-border active:bg-secondary-bg-hover\",\n\t\t\tghost: \"bg-transparent hover:bg-secondary-bg-hover active:bg-secondary-bg-hover\",\n\t\t\tlink: \"bg-transparent text-muted underline hover:text-primary-fg active:text-primary-fg\",\n\t\t\ttext: \"bg-transparent text-muted hover:text-primary-fg active:text-primary-fg\"\n\t\t},\n\t\tstatus: {\n\t\t\tdefault: \"\",\n\t\t\tinfo: \"text-status-info-fg\",\n\t\t\tsuccess: \"text-status-success-fg\",\n\t\t\twarning: \"text-status-warning-fg\",\n\t\t\terror: \"text-status-error-fg\"\n\t\t},\n\t\tsize: {\n\t\t\txs: \"h-7 gap-2 px-2.5 py-1.5 text-xs\",\n\t\t\tsm: \"h-8 gap-2 px-3 py-2 text-xs\",\n\t\t\tmd: \"h-9 gap-2 px-4 py-2 text-sm\",\n\t\t\tlg: \"h-10 gap-2 px-5 py-2 text-sm\",\n\t\t\txl: \"h-11 gap-3 px-6 py-3 text-base\"\n\t\t}\n\t} satisfies VariantsConfig<ButtonBaseVariants>,\n\tdefaultVariants: {\n\t\tvariant: \"primary\",\n\t\tsize: \"md\",\n\t\tstatus: \"default\"\n\t},\n\tcompoundVariants: [\n\t\t/*\n\t\t * Statuses\n\t\t */\n\t\t// Primary\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: [\"info\", \"success\", \"warning\", \"error\"],\n\t\t\tclass: \"text-white hover:text-white active:text-white\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"bg-status-info hover:bg-status-info-hover active:bg-status-info-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"bg-status-success hover:bg-status-success-hover active:bg-status-success-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"bg-status-warning hover:bg-status-warning-hover active:bg-status-warning-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"primary\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"bg-status-error hover:bg-status-error-hover active:bg-status-error-hover\"\n\t\t},\n\t\t// Secondary\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"bg-status-info-bg hover:bg-status-info-bg-hover active:bg-status-info-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"bg-status-success-bg hover:bg-status-success-bg-hover active:bg-status-success-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"bg-status-warning-bg hover:bg-status-warning-bg-hover active:bg-status-warning-bg-hover\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"secondary\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"bg-status-error-bg hover:bg-status-error-bg-hover active:bg-status-error-bg-hover\"\n\t\t},\n\t\t// Outline\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"border-status-info-secondary-border hover:border-status-info-primary-border hover:bg-status-info-bg active:border-status-info-secondary-border active:bg-status-info-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"border-status-success-secondary-border hover:border-status-success-primary-border hover:bg-status-success-bg active:border-status-success-secondary-border active:bg-status-success-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"border-status-warning-secondary-border hover:border-status-warning-primary-border hover:bg-status-warning-bg active:border-status-warning-secondary-border active:bg-status-warning-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"outline\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"border-status-error-secondary-border hover:border-status-error-primary-border hover:bg-status-error-bg active:border-status-error-secondary-border active:bg-status-error-bg\"\n\t\t},\n\t\t// Ghost\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"text-status-info-fg hover:bg-status-info-bg active:bg-status-info-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"text-status-success-fg hover:bg-status-success-bg active:bg-status-success-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"text-status-warning-fg hover:bg-status-warning-bg active:bg-status-warning-bg\"\n\t\t},\n\t\t{\n\t\t\tvariant: \"ghost\",\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"text-status-error-fg hover:bg-status-error-bg active:bg-status-error-bg\"\n\t\t},\n\t\t// Text & Link\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"info\",\n\t\t\tclass: \"text-status-info-fg/70 hover:text-status-info-fg active:text-status-info-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"success\",\n\t\t\tclass: \"text-status-success-fg/70 hover:text-status-success-fg active:text-status-success-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"warning\",\n\t\t\tclass: \"text-status-warning-fg/70 hover:text-status-warning-fg active:text-status-warning-fg\"\n\t\t},\n\t\t{\n\t\t\tvariant: [\"text\", \"link\"],\n\t\t\tstatus: \"error\",\n\t\t\tclass: \"text-status-error-fg/70 hover:text-status-error-fg active:text-status-error-fg\"\n\t\t}\n\t]\n});\n\nexport type ButtonBaseProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n\tButtonBaseVariants & {\n\t\tasChild?: boolean;\n\t};\n\nexport const ButtonBase = React.forwardRef<HTMLButtonElement, PropsWithChildren<ButtonBaseProps>>(\n\t({ variant, size, children, status, className, asChild = false, ...props }, ref) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\t\treturn (\n\t\t\t<Comp className={buttonBaseStyles({ variant, size, status, className })} ref={ref} {...props}>\n\t\t\t\t{children}\n\t\t\t</Comp>\n\t\t);\n\t}\n);\n\nButtonBase.displayName = \"ButtonBase\";\n"],"names":["buttonBaseStyles","tv","ButtonBase","React","variant","size","children","status","className","asChild","props","ref","jsx","Slot"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { F as w } from "./FeatureIcon-BGE0Orkc.js";
3
3
  import f from "react";
4
4
  import { T as F } from "./index-BVqs-uqP.js";
5
5
  import { d as T, e as N, b as v, a as b } from "./FormHeader--F6b2aRk.js";
6
- import { B as h } from "./Button-Dg89xRSi.js";
6
+ import { B as h } from "./Button-BZ3ON1Tj.js";
7
7
  import { a as k } from "./CheckboxField-limFbMk2.js";
8
8
  import { e as y } from "./useBreakpoints-DHvp74UL.js";
9
9
  const H = F({
@@ -85,4 +85,4 @@ export {
85
85
  z as F,
86
86
  R as a
87
87
  };
88
- //# sourceMappingURL=FormFooterTemplate-BRrgrxAu.js.map
88
+ //# sourceMappingURL=FormFooterTemplate-DdNnLu2-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormFooterTemplate-BRrgrxAu.js","sources":["../src/components/form/templates/header-template/FormHeaderTemplate.tsx","../src/components/form/templates/footer-template/FormFooterTemplate.tsx"],"sourcesContent":["import { FeatureIcon } from \"@/components/icon/feature-icon/FeatureIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport React, { HTMLAttributes, PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormDescription, FormHeader, FormTitle } from \"../../components/form-header/FormHeader\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface FormHeaderTemplateVariants {\n\talignment?: \"compact\" | \"left\" | \"center\";\n}\n\nconst formHeaderTemplateStyles = tv({\n\tslots: {\n\t\theader: \"flex items-start gap-4\",\n\t\tcontentWrapper: \"flex flex-col gap-px lg:gap-1.5\",\n\t\ticon: \"flex-shrink-0 rounded-lg ring-0\"\n\t},\n\tvariants: {\n\t\talignment: {\n\t\t\tcompact: {\n\t\t\t\theader: \"flex-row pr-9\"\n\t\t\t},\n\t\t\tleft: {\n\t\t\t\theader: \"flex-col gap-2 lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t},\n\t\t\tcenter: {\n\t\t\t\theader: \"flex-col items-center gap-2 text-center lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<FormHeaderTemplateVariants>,\n\tdefaultVariants: {\n\t\talignment: \"compact\"\n\t}\n});\n\nexport type BaseHeaderTemplateProps = Omit<HTMLAttributes<HTMLDivElement>, \"title\"> &\n\tFormHeaderTemplateVariants & {\n\t\t/** Заголовок формы */\n\t\ttitle: React.ReactNode;\n\t\t/** Описание формы */\n\t\tdescription?: React.ReactNode;\n\t\t/** Иконка заголовка */\n\t\ticon?: LucideIcon;\n\t\t/** Кастомная иконка заголовка */\n\t\tcustomIcon?: React.ReactNode;\n\t};\n\nexport const BaseHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ className, icon: Icon, title, alignment, description, customIcon, ...props }, ref) => {\n\t\tconst { header, contentWrapper, icon } = formHeaderTemplateStyles({ alignment });\n\n\t\treturn (\n\t\t\t<FormHeader ref={ref} className={header({ class: className })} {...props}>\n\t\t\t\t{Icon && <FeatureIcon size=\"xl\" icon={Icon} className={icon()} />}\n\t\t\t\t{customIcon && customIcon}\n\t\t\t\t<div className={contentWrapper()}>\n\t\t\t\t\t{title}\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t</FormHeader>\n\t\t);\n\t}\n);\n\n/**\n * Темплейт заголовка формы. Содержит иконку, заголовок и описание.\n * Имеет различные варианты расположения элементов\n */\nexport const FormHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ title, description, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseHeaderTemplate\n\t\t\t\ttitle={<FormTitle>{title}</FormTitle>}\n\t\t\t\tdescription={<FormDescription>{description}</FormDescription>}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nFormHeaderTemplate.displayName = \"FormHeaderTemplate\";\n","import { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { CheckboxField, CheckboxFieldProps } from \"@/components/checkbox/checkbox-field/CheckboxField\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormFooter } from \"../../components/form-footer/FormFooter\";\n\nconst formFooterTemplateStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex w-full flex-col gap-3 lg:flex-row\",\n\t\tstartBlock: \"flex items-center py-1 lg:py-2.5\",\n\t\tendBlock: \"ml-auto flex w-full flex-col gap-3 lg:w-auto lg:flex-row\"\n\t}\n});\n\nexport interface FormFooterTemplateProps {\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/** Текст для чекбокса */\n\tcheckboxLabel?: string;\n\t/** Пропсы для чекбокса */\n\tcheckboxProps?: CheckboxFieldProps;\n\t/** Основная кнопка */\n\tprimaryButton?: React.ReactNode;\n\t/** Пропсы для основной кнопки */\n\tprimaryButtonProps?: ButtonProps;\n\t/** Вторичная кнопка */\n\tsecondaryButton?: React.ReactNode;\n\t/** Пропсы для вторичной кнопки */\n\tsecondaryButtonProps?: ButtonProps;\n}\n\n/**\n * Темплейт футера формы. Содержит чекбокс и 2 кнопки, которыми можно управлять.\n * Адаптивен к размерам устройств\n */\nexport const FormFooterTemplate = React.forwardRef<HTMLDivElement, FormFooterTemplateProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tprimaryButton,\n\t\t\tsecondaryButton,\n\t\t\tcheckboxLabel,\n\t\t\tcheckboxProps,\n\t\t\tprimaryButtonProps,\n\t\t\tsecondaryButtonProps\n\t\t},\n\t\tref\n\t) => {\n\t\tconst isMobile = useIsMobile();\n\t\tconst { container, startBlock, endBlock } = formFooterTemplateStyles();\n\n\t\tif (isMobile) {\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\" };\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\" };\n\t\t}\n\t\tconst primaryButtonElement = primaryButton && (\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\n\t\t\t\t{primaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\tconst secondaryButtonElement = secondaryButton && (\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\n\t\t\t\t{secondaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn (\n\t\t\t<FormFooter className={className} ref={ref}>\n\t\t\t\t<div className={container()}>\n\t\t\t\t\t{checkboxLabel && (\n\t\t\t\t\t\t<div className={startBlock()}>\n\t\t\t\t\t\t\t<CheckboxField label={checkboxLabel} {...checkboxProps} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className={endBlock()}>\n\t\t\t\t\t\t{isMobile\n\t\t\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\n\t\t\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</FormFooter>\n\t\t);\n\t}\n);\n\nFormFooterTemplate.displayName = \"FormFooterTemplate\";\n"],"names":["formHeaderTemplateStyles","tv","BaseHeaderTemplate","React","className","Icon","title","alignment","description","customIcon","props","ref","header","contentWrapper","icon","jsxs","FormHeader","jsx","FeatureIcon","FormHeaderTemplate","FormTitle","FormDescription","formFooterTemplateStyles","FormFooterTemplate","primaryButton","secondaryButton","checkboxLabel","checkboxProps","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","startBlock","endBlock","primaryButtonElement","Button","secondaryButtonElement","FormFooter","CheckboxField"],"mappings":"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"}
1
+ {"version":3,"file":"FormFooterTemplate-DdNnLu2-.js","sources":["../src/components/form/templates/header-template/FormHeaderTemplate.tsx","../src/components/form/templates/footer-template/FormFooterTemplate.tsx"],"sourcesContent":["import { FeatureIcon } from \"@/components/icon/feature-icon/FeatureIcon\";\nimport { LucideIcon } from \"lucide-react\";\nimport React, { HTMLAttributes, PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormDescription, FormHeader, FormTitle } from \"../../components/form-header/FormHeader\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface FormHeaderTemplateVariants {\n\talignment?: \"compact\" | \"left\" | \"center\";\n}\n\nconst formHeaderTemplateStyles = tv({\n\tslots: {\n\t\theader: \"flex items-start gap-4\",\n\t\tcontentWrapper: \"flex flex-col gap-px lg:gap-1.5\",\n\t\ticon: \"flex-shrink-0 rounded-lg ring-0\"\n\t},\n\tvariants: {\n\t\talignment: {\n\t\t\tcompact: {\n\t\t\t\theader: \"flex-row pr-9\"\n\t\t\t},\n\t\t\tleft: {\n\t\t\t\theader: \"flex-col gap-2 lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t},\n\t\t\tcenter: {\n\t\t\t\theader: \"flex-col items-center gap-2 text-center lg:gap-4\",\n\t\t\t\tcontentWrapper: \"gap-0.5 lg:gap-1\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<FormHeaderTemplateVariants>,\n\tdefaultVariants: {\n\t\talignment: \"compact\"\n\t}\n});\n\nexport type BaseHeaderTemplateProps = Omit<HTMLAttributes<HTMLDivElement>, \"title\"> &\n\tFormHeaderTemplateVariants & {\n\t\t/** Заголовок формы */\n\t\ttitle: React.ReactNode;\n\t\t/** Описание формы */\n\t\tdescription?: React.ReactNode;\n\t\t/** Иконка заголовка */\n\t\ticon?: LucideIcon;\n\t\t/** Кастомная иконка заголовка */\n\t\tcustomIcon?: React.ReactNode;\n\t};\n\nexport const BaseHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ className, icon: Icon, title, alignment, description, customIcon, ...props }, ref) => {\n\t\tconst { header, contentWrapper, icon } = formHeaderTemplateStyles({ alignment });\n\n\t\treturn (\n\t\t\t<FormHeader ref={ref} className={header({ class: className })} {...props}>\n\t\t\t\t{Icon && <FeatureIcon size=\"xl\" icon={Icon} className={icon()} />}\n\t\t\t\t{customIcon && customIcon}\n\t\t\t\t<div className={contentWrapper()}>\n\t\t\t\t\t{title}\n\t\t\t\t\t{description}\n\t\t\t\t</div>\n\t\t\t</FormHeader>\n\t\t);\n\t}\n);\n\n/**\n * Темплейт заголовка формы. Содержит иконку, заголовок и описание.\n * Имеет различные варианты расположения элементов\n */\nexport const FormHeaderTemplate = React.forwardRef<HTMLDivElement, PropsWithChildren<BaseHeaderTemplateProps>>(\n\t({ title, description, ...props }, ref) => {\n\t\treturn (\n\t\t\t<BaseHeaderTemplate\n\t\t\t\ttitle={<FormTitle>{title}</FormTitle>}\n\t\t\t\tdescription={<FormDescription>{description}</FormDescription>}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nFormHeaderTemplate.displayName = \"FormHeaderTemplate\";\n","import { Button, ButtonProps } from \"@/components/button/button/Button\";\nimport { CheckboxField, CheckboxFieldProps } from \"@/components/checkbox/checkbox-field/CheckboxField\";\nimport { useIsMobile } from \"@/hooks/useBreakpoints\";\nimport React from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { FormFooter } from \"../../components/form-footer/FormFooter\";\n\nconst formFooterTemplateStyles = tv({\n\tslots: {\n\t\tcontainer: \"flex w-full flex-col gap-3 lg:flex-row\",\n\t\tstartBlock: \"flex items-center py-1 lg:py-2.5\",\n\t\tendBlock: \"ml-auto flex w-full flex-col gap-3 lg:w-auto lg:flex-row\"\n\t}\n});\n\nexport interface FormFooterTemplateProps {\n\t/** Дополнительные классы */\n\tclassName?: string;\n\t/** Текст для чекбокса */\n\tcheckboxLabel?: string;\n\t/** Пропсы для чекбокса */\n\tcheckboxProps?: CheckboxFieldProps;\n\t/** Основная кнопка */\n\tprimaryButton?: React.ReactNode;\n\t/** Пропсы для основной кнопки */\n\tprimaryButtonProps?: ButtonProps;\n\t/** Вторичная кнопка */\n\tsecondaryButton?: React.ReactNode;\n\t/** Пропсы для вторичной кнопки */\n\tsecondaryButtonProps?: ButtonProps;\n}\n\n/**\n * Темплейт футера формы. Содержит чекбокс и 2 кнопки, которыми можно управлять.\n * Адаптивен к размерам устройств\n */\nexport const FormFooterTemplate = React.forwardRef<HTMLDivElement, FormFooterTemplateProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tprimaryButton,\n\t\t\tsecondaryButton,\n\t\t\tcheckboxLabel,\n\t\t\tcheckboxProps,\n\t\t\tprimaryButtonProps,\n\t\t\tsecondaryButtonProps\n\t\t},\n\t\tref\n\t) => {\n\t\tconst isMobile = useIsMobile();\n\t\tconst { container, startBlock, endBlock } = formFooterTemplateStyles();\n\n\t\tif (isMobile) {\n\t\t\tprimaryButtonProps = { ...primaryButtonProps, size: \"xl\" };\n\t\t\tsecondaryButtonProps = { ...secondaryButtonProps, size: \"xl\" };\n\t\t}\n\t\tconst primaryButtonElement = primaryButton && (\n\t\t\t<Button key=\"primary-button\" variant=\"primary\" {...primaryButtonProps}>\n\t\t\t\t{primaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\tconst secondaryButtonElement = secondaryButton && (\n\t\t\t<Button key=\"secondary-button\" variant=\"outline\" {...secondaryButtonProps}>\n\t\t\t\t{secondaryButton}\n\t\t\t</Button>\n\t\t);\n\n\t\treturn (\n\t\t\t<FormFooter className={className} ref={ref}>\n\t\t\t\t<div className={container()}>\n\t\t\t\t\t{checkboxLabel && (\n\t\t\t\t\t\t<div className={startBlock()}>\n\t\t\t\t\t\t\t<CheckboxField label={checkboxLabel} {...checkboxProps} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t<div className={endBlock()}>\n\t\t\t\t\t\t{isMobile\n\t\t\t\t\t\t\t? [primaryButtonElement, secondaryButtonElement]\n\t\t\t\t\t\t\t: [secondaryButtonElement, primaryButtonElement]}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</FormFooter>\n\t\t);\n\t}\n);\n\nFormFooterTemplate.displayName = \"FormFooterTemplate\";\n"],"names":["formHeaderTemplateStyles","tv","BaseHeaderTemplate","React","className","Icon","title","alignment","description","customIcon","props","ref","header","contentWrapper","icon","jsxs","FormHeader","jsx","FeatureIcon","FormHeaderTemplate","FormTitle","FormDescription","formFooterTemplateStyles","FormFooterTemplate","primaryButton","secondaryButton","checkboxLabel","checkboxProps","primaryButtonProps","secondaryButtonProps","isMobile","useIsMobile","container","startBlock","endBlock","primaryButtonElement","Button","secondaryButtonElement","FormFooter","CheckboxField"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
2
  import m from "react";
3
3
  import { T as p } from "./index-BVqs-uqP.js";
4
- import { B as l } from "./ButtonBase-e6qyv6mD.js";
4
+ import { B as l } from "./ButtonBase-jgu7EolU.js";
5
5
  import { I as f } from "./Icon-DH3ev9GK.js";
6
6
  const u = p({
7
7
  slots: {
@@ -30,4 +30,4 @@ d.displayName = "IconButton";
30
30
  export {
31
31
  d as I
32
32
  };
33
- //# sourceMappingURL=IconButton-DwkpNgn3.js.map
33
+ //# sourceMappingURL=IconButton-uGJ3cQtk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IconButton-DwkpNgn3.js","sources":["../src/components/button/icon-button/IconButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { Icon } from \"@/components/icon/Icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype IconButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst iconButtonVariants = tv({\n\tslots: {\n\t\tcontainer: \"aspect-square\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { container: \"p-1.5\", icon: \"h-3 w-3\" },\n\t\t\tsm: { container: \"p-2\", icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: { container: \"p-2.5\" },\n\t\t\tlg: { container: \"p-3\" },\n\t\t\txl: { container: \"p-3\", icon: \"h-5 w-5\" }\n\t\t}\n\t} satisfies VariantsConfig<IconButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type IconButtonProps = ButtonBaseProps &\n\tIconButtonVariants & {\n\t\ticon: LucideIcon;\n\t\ticonClassName?: string;\n\t};\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<IconButtonProps>>(\n\t({ icon, size, className, iconClassName, ...props }, ref) => {\n\t\tconst { container, icon: iconClass } = iconButtonVariants({ size });\n\n\t\treturn (\n\t\t\t<ButtonBase className={container({ class: className })} size={size} ref={ref} {...props}>\n\t\t\t\t<Icon className={iconClass({ size, className: iconClassName })} icon={icon} />\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nIconButton.displayName = \"IconButton\";\n"],"names":["iconButtonVariants","tv","IconButton","React","icon","size","className","iconClassName","props","ref","container","iconClass","jsx","ButtonBase","Icon"],"mappings":";;;;;AASA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,WAAW,SAAS,MAAM,UAAU;AAAA,MAC1C,IAAI,EAAE,WAAW,OAAO,MAAM,cAAc;AAAA,MAC5C,IAAI,EAAE,WAAW,QAAQ;AAAA,MACzB,IAAI,EAAE,WAAW,MAAM;AAAA,MACvB,IAAI,EAAE,WAAW,OAAO,MAAM,UAAU;AAAA,IAAA;AAAA,EAE1C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAQYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,WAAAC,GAAW,eAAAC,GAAe,GAAGC,EAAM,GAAGC,MAAQ;AACtD,UAAA,EAAE,WAAAC,GAAW,MAAMC,MAAcX,EAAmB,EAAE,MAAAK,GAAM;AAGjE,WAAA,gBAAAO,EAACC,GAAW,EAAA,WAAWH,EAAU,EAAE,OAAOJ,GAAW,GAAG,MAAAD,GAAY,KAAAI,GAAW,GAAGD,GACjF,UAAC,gBAAAI,EAAAE,GAAA,EAAK,WAAWH,EAAU,EAAE,MAAAN,GAAM,WAAWE,EAAe,CAAA,GAAG,MAAAH,EAAA,CAAY,EAC7E,CAAA;AAAA,EAAA;AAGH;AAEAF,EAAW,cAAc;"}
1
+ {"version":3,"file":"IconButton-uGJ3cQtk.js","sources":["../src/components/button/icon-button/IconButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { ButtonBase, ButtonBaseProps, ButtonBaseVariants } from \"../button-base/ButtonBase\";\nimport { Icon } from \"@/components/icon/Icon\";\nimport { LucideIcon } from \"lucide-react\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\ntype IconButtonVariants = Pick<ButtonBaseVariants, \"size\">;\n\nconst iconButtonVariants = tv({\n\tslots: {\n\t\tcontainer: \"aspect-square\",\n\t\ticon: \"h-4 w-4\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\txs: { container: \"p-1.5\", icon: \"h-3 w-3\" },\n\t\t\tsm: { container: \"p-2\", icon: \"h-3.5 w-3.5\" },\n\t\t\tmd: { container: \"p-2.5\" },\n\t\t\tlg: { container: \"p-3\" },\n\t\t\txl: { container: \"p-3\", icon: \"h-5 w-5\" }\n\t\t}\n\t} satisfies VariantsConfig<IconButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"md\"\n\t}\n});\n\nexport type IconButtonProps = ButtonBaseProps &\n\tIconButtonVariants & {\n\t\ticon: LucideIcon;\n\t\ticonClassName?: string;\n\t};\n\nexport const IconButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<IconButtonProps>>(\n\t({ icon, size, className, iconClassName, ...props }, ref) => {\n\t\tconst { container, icon: iconClass } = iconButtonVariants({ size });\n\n\t\treturn (\n\t\t\t<ButtonBase className={container({ class: className })} size={size} ref={ref} {...props}>\n\t\t\t\t<Icon className={iconClass({ size, className: iconClassName })} icon={icon} />\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nIconButton.displayName = \"IconButton\";\n"],"names":["iconButtonVariants","tv","IconButton","React","icon","size","className","iconClassName","props","ref","container","iconClass","jsx","ButtonBase","Icon"],"mappings":";;;;;AASA,MAAMA,IAAqBC,EAAG;AAAA,EAC7B,OAAO;AAAA,IACN,WAAW;AAAA,IACX,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI,EAAE,WAAW,SAAS,MAAM,UAAU;AAAA,MAC1C,IAAI,EAAE,WAAW,OAAO,MAAM,cAAc;AAAA,MAC5C,IAAI,EAAE,WAAW,QAAQ;AAAA,MACzB,IAAI,EAAE,WAAW,MAAM;AAAA,MACvB,IAAI,EAAE,WAAW,OAAO,MAAM,UAAU;AAAA,IAAA;AAAA,EAE1C;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GAQYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,WAAAC,GAAW,eAAAC,GAAe,GAAGC,EAAM,GAAGC,MAAQ;AACtD,UAAA,EAAE,WAAAC,GAAW,MAAMC,MAAcX,EAAmB,EAAE,MAAAK,GAAM;AAGjE,WAAA,gBAAAO,EAACC,GAAW,EAAA,WAAWH,EAAU,EAAE,OAAOJ,GAAW,GAAG,MAAAD,GAAY,KAAAI,GAAW,GAAGD,GACjF,UAAC,gBAAAI,EAAAE,GAAA,EAAK,WAAWH,EAAU,EAAE,MAAAN,GAAM,WAAWE,EAAe,CAAA,GAAG,MAAAH,EAAA,CAAY,EAC7E,CAAA;AAAA,EAAA;AAGH;AAEAF,EAAW,cAAc;"}
@@ -3,7 +3,7 @@ import s, { useRef as d } from "react";
3
3
  import { T as u } from "./index-BVqs-uqP.js";
4
4
  import { u as l, i as b } from "./inputBaseStyles-BfZIWuQ6.js";
5
5
  import { u as f } from "./useMergeRefs-qoKniYqT.js";
6
- import { I as c } from "./IconButton-DwkpNgn3.js";
6
+ import { I as c } from "./IconButton-uGJ3cQtk.js";
7
7
  const h = u({
8
8
  extend: b,
9
9
  base: [
@@ -132,4 +132,4 @@ export {
132
132
  w as c,
133
133
  N as d
134
134
  };
135
- //# sourceMappingURL=InputGroup-BcRWP-zL.js.map
135
+ //# sourceMappingURL=InputGroup-AVAtosX_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputGroup-BcRWP-zL.js","sources":["../src/components/input/input-group/InputGroup.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { inputBaseElementStyles } from \"../styles/inputBaseStyles\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useCustomValidity } from \"@/hooks/useCustomValidity\";\nimport { IconButton } from \"@/components/button\";\nimport { LucideIcon } from \"lucide-react\";\nimport { ButtonBaseProps } from \"@/components/button/button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst inputGroupStyles = tv({\n\textend: inputBaseElementStyles,\n\tbase: [\n\t\t\"group/input-group flex h-10 px-0 py-0 lg:h-9 lg:py-0\",\n\t\t\"has-[input:focus]:border-secondary-border has-[input:focus]:bg-secondary-bg has-[input:focus]:shadow-focus\",\n\t\t\"has-[div[data-input-group-element='contenteditable']:focus]:border-secondary-border has-[div[data-input-group-element='contenteditable']:focus]:bg-secondary-bg has-[div[data-input-group-element='contenteditable']:focus]:shadow-focus\",\n\n\t\t// Стили для обычных read-only input'ов (исключая file)\n\t\t\"has-[input:read-only:not([type='file'])]:border-primary-border\",\n\t\t\"has-[input:read-only:not([type='file'])]:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:shadow-none\",\n\t\t\"has-[input:read-only:not([type='file'])]:hover:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:!bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:shadow-focus\",\n\n\t\t\"has-[input:disabled]:border-primary-border\",\n\t\t\"has-[input:disabled]:bg-secondary-bg-hover\",\n\t\t\"has-[input:disabled]:shadow-soft-sm\",\n\t\t\"has-[input:invalid]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:shadow-soft-base\",\n\t\t\"has-[input:invalid]:hover:border-status-error-primary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:shadow-focus-error\",\n\t\t\"has-[input[aria-invalid=true]]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:shadow-soft-base\",\n\t\t\"has-[input[aria-invalid=true]]:hover:border-status-error-primary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:shadow-focus-error\",\n\n\t\t// Стили для автозаполнения - применяем фон ко всей группе\n\t\t\"has-[input:-webkit-autofill]:bg-[hsl(var(--autofill-bg))]\",\n\t\t\"has-[input:-webkit-autofill]:has-[input:focus]:bg-[hsl(var(--autofill-bg))]\"\n\t]\n});\n\n/**\n * Контейнер для группировки инпутов с дополнительными элементами (текст, кнопки).\n * Позволяет создавать композиции из инпутов, текстовых блоков и кнопок.\n */\nconst InputGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = inputGroupStyles({ className });\n\n\t\treturn (\n\t\t\t<div ref={ref} className={styles} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nInputGroup.displayName = \"InputGroup\";\n\nconst inputGroupInputStyles = tv({\n\tbase: [\n\t\t\"min-w-5 flex-1 rounded-lg bg-transparent py-2.5 pl-3 lg:py-2\",\n\t\t\"outline-none placeholder:text-muted focus:outline-none\",\n\t\t// Градиентная маска для плавного обрезания текста слева\n\t\t\"[mask-image:linear-gradient(to_left,rgba(255,255,255,0),#fff_15%)]\",\n\t\t// Стили для автозаполнения - убираем фон у самого input'а\n\t\t\"[-webkit-autofill]:bg-transparent\",\n\t\t\"[-webkit-autofill]:shadow-none\"\n\t]\n});\n\nexport interface InputGroupInputProps extends React.ComponentProps<\"input\"> {\n\terror?: string;\n}\n\n/**\n * Инпут для использования в группе.\n */\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputGroupInputProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupInputStyles({ className });\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\n\n\t\tuseCustomValidity(inputRef, error);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tref={mergedRef}\n\t\t\t\tclassName={styles}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"input\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupInput.displayName = \"InputGroup.Input\";\n\ntype InputGroupTextVariants = {\n\ttype?: \"primary\";\n};\n\nconst inputGroupTextStyles = tv({\n\tbase: [\n\t\t\"flex h-full items-center border-l border-secondary-border px-3 text-secondary-fg first:border-l-0\",\n\t\t// Правая граница, если следующий элемент НЕ InputGroupText\n\t\t\"[&[data-input-group-element='text']:has(+_:not([data-input-group-element='text']))]:border-r\"\n\t],\n\tvariants: {\n\t\ttype: {\n\t\t\tprimary: \"rounded-l-lg bg-secondary-bg-hover\"\n\t\t}\n\t} satisfies VariantsConfig<InputGroupTextVariants>\n});\n\ntype InputGroupTextProps = React.ComponentProps<\"div\"> & InputGroupTextVariants;\n\n/**\n * Текстовый элемент для отображения префикса или суффикса в группе инпутов.\n */\nconst InputGroupText = React.forwardRef<HTMLDivElement, InputGroupTextProps>(({ className, type, ...props }, ref) => {\n\tconst styles = inputGroupTextStyles({ className, type });\n\treturn <div ref={ref} className={styles} data-input-group-element=\"text\" {...props} />;\n});\n\nInputGroupText.displayName = \"InputGroup.Text\";\n\nconst inputGroupContentEditableStyles = tv({\n\tbase: [\"bg-transparent py-2.5 pl-3 lg:py-2\", \"outline-none focus:outline-none\"]\n});\n\nexport interface InputGroupContentEditableProps extends React.ComponentProps<\"div\"> {\n\terror?: string;\n}\n\n/**\n * Contenteditable элемент для использования в группе.\n */\nconst InputGroupContentEditable = React.forwardRef<HTMLDivElement, InputGroupContentEditableProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupContentEditableStyles({ className });\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles}\n\t\t\t\tcontentEditable\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"contenteditable\"\n\t\t\t\tsuppressContentEditableWarning={true}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupContentEditable.displayName = \"InputGroup.ContentEditable\";\n\nconst inputGroupButtonStyles = tv({\n\tbase: [\"aspect-auto h-full px-1.5 py-2.5 first:pl-2.5 last:pr-2.5 lg:py-2\"]\n});\n\ntype InputGroupButtonProps = ButtonBaseProps & {\n\ticon: LucideIcon;\n\ticonClassName?: string;\n};\n\nconst InputGroupButton = React.forwardRef<HTMLButtonElement, InputGroupButtonProps>(\n\t({ icon, className, ...props }, ref) => {\n\t\tconst styles = inputGroupButtonStyles({ className });\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tclassName={styles}\n\t\t\t\tvariant=\"text\"\n\t\t\t\tsize=\"md\"\n\t\t\t\tdata-input-group-element=\"button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupButton.displayName = \"InputGroup.Button\";\n\nexport { InputGroupText, InputGroupInput, InputGroup, InputGroupButton, InputGroupContentEditable };\n"],"names":["inputGroupStyles","tv","inputBaseElementStyles","InputGroup","React","className","children","props","ref","styles","inputGroupInputStyles","InputGroupInput","error","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","inputGroupTextStyles","InputGroupText","type","inputGroupContentEditableStyles","InputGroupContentEditable","inputGroupButtonStyles","InputGroupButton","icon","IconButton"],"mappings":";;;;;;AAUA,MAAMA,IAAmBC,EAAG;AAAA,EAC3B,QAAQC;AAAA,EACR,MAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAGA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GAMKC,IAAaC,EAAM;AAAA,EACxB,CAAC,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,EAAA,GAASC,MAAQ;AAC3C,UAAMC,IAAST,EAAiB,EAAE,WAAAK,GAAW;AAE7C,6BACE,OAAI,EAAA,KAAAG,GAAU,WAAWC,GAAS,GAAGF,GACpC,UAAAD,GACF;AAAA,EAAA;AAGH;AAEAH,EAAW,cAAc;AAEzB,MAAMO,IAAwBT,EAAG;AAAA,EAChC,MAAM;AAAA,IACL;AAAA,IACA;AAAA;AAAA,IAEA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EAAA;AAEF,CAAC,GASKU,IAAkBP,EAAM;AAAA,EAC7B,CAAC,EAAE,WAAAC,GAAW,OAAAO,GAAO,GAAGL,EAAA,GAASC,MAAQ;AACxC,UAAMC,IAASC,EAAsB,EAAE,WAAAL,GAAW,GAC5CQ,IAAWC,EAAyB,IAAI,GACxCC,IAAYC,EAAaH,GAAUL,CAAG;AAE5C,WAAAS,EAAkBJ,GAAUD,CAAK,GAGhC,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAKH;AAAA,QACL,WAAWN;AAAA,QACX,gBAAc,CAAC,CAACG;AAAA,QAChB,4BAAyB;AAAA,QACxB,GAAGL;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAI,EAAgB,cAAc;AAM9B,MAAMQ,IAAuBlB,EAAG;AAAA,EAC/B,MAAM;AAAA,IACL;AAAA;AAAA,IAEA;AAAA,EACD;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,SAAS;AAAA,IAAA;AAAA,EACV;AAEF,CAAC,GAOKmB,IAAiBhB,EAAM,WAAgD,CAAC,EAAE,WAAAC,GAAW,MAAAgB,GAAM,GAAGd,EAAM,GAAGC,MAAQ;AACpH,QAAMC,IAASU,EAAqB,EAAE,WAAAd,GAAW,MAAAgB,GAAM;AAChD,SAAA,gBAAAH,EAAC,SAAI,KAAAV,GAAU,WAAWC,GAAQ,4BAAyB,QAAQ,GAAGF,GAAO;AACrF,CAAC;AAEDa,EAAe,cAAc;AAE7B,MAAME,IAAkCrB,EAAG;AAAA,EAC1C,MAAM,CAAC,sCAAsC,iCAAiC;AAC/E,CAAC,GASKsB,IAA4BnB,EAAM;AAAA,EACvC,CAAC,EAAE,WAAAC,GAAW,OAAAO,GAAO,GAAGL,EAAA,GAASC,MAAQ;AACxC,UAAMC,IAASa,EAAgC,EAAE,WAAAjB,GAAW;AAG3D,WAAA,gBAAAa;AAAA,MAAC;AAAA,MAAA;AAAA,QACA,KAAAV;AAAA,QACA,WAAWC;AAAA,QACX,iBAAe;AAAA,QACf,MAAK;AAAA,QACL,gBAAc,CAAC,CAACG;AAAA,QAChB,4BAAyB;AAAA,QACzB,gCAAgC;AAAA,QAC/B,GAAGL;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAgB,EAA0B,cAAc;AAExC,MAAMC,IAAyBvB,EAAG;AAAA,EACjC,MAAM,CAAC,mEAAmE;AAC3E,CAAC,GAOKwB,IAAmBrB,EAAM;AAAA,EAC9B,CAAC,EAAE,MAAAsB,GAAM,WAAArB,GAAW,GAAGE,EAAA,GAASC,MAAQ;AACvC,UAAMC,IAASe,EAAuB,EAAE,WAAAnB,GAAW;AAElD,WAAA,gBAAAa;AAAA,MAACS;AAAA,MAAA;AAAA,QACA,KAAAnB;AAAA,QACA,MAAAkB;AAAA,QACA,WAAWjB;AAAA,QACX,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,4BAAyB;AAAA,QACzB,MAAK;AAAA,QACJ,GAAGF;AAAA,MAAA;AAAA,IACL;AAAA,EAAA;AAGH;AAEAkB,EAAiB,cAAc;"}
1
+ {"version":3,"file":"InputGroup-AVAtosX_.js","sources":["../src/components/input/input-group/InputGroup.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { tv } from \"tailwind-variants\";\nimport { inputBaseElementStyles } from \"../styles/inputBaseStyles\";\nimport { useMergeRefs } from \"@/hooks/useMergeRefs\";\nimport { useCustomValidity } from \"@/hooks/useCustomValidity\";\nimport { IconButton } from \"@/components/button\";\nimport { LucideIcon } from \"lucide-react\";\nimport { ButtonBaseProps } from \"@/components/button/button-base/ButtonBase\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nconst inputGroupStyles = tv({\n\textend: inputBaseElementStyles,\n\tbase: [\n\t\t\"group/input-group flex h-10 px-0 py-0 lg:h-9 lg:py-0\",\n\t\t\"has-[input:focus]:border-secondary-border has-[input:focus]:bg-secondary-bg has-[input:focus]:shadow-focus\",\n\t\t\"has-[div[data-input-group-element='contenteditable']:focus]:border-secondary-border has-[div[data-input-group-element='contenteditable']:focus]:bg-secondary-bg has-[div[data-input-group-element='contenteditable']:focus]:shadow-focus\",\n\n\t\t// Стили для обычных read-only input'ов (исключая file)\n\t\t\"has-[input:read-only:not([type='file'])]:border-primary-border\",\n\t\t\"has-[input:read-only:not([type='file'])]:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:shadow-none\",\n\t\t\"has-[input:read-only:not([type='file'])]:hover:bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:!bg-secondary-bg-hover\",\n\t\t\"has-[input:read-only:not([type='file'])]:has-[input:focus]:shadow-focus\",\n\n\t\t\"has-[input:disabled]:border-primary-border\",\n\t\t\"has-[input:disabled]:bg-secondary-bg-hover\",\n\t\t\"has-[input:disabled]:shadow-soft-sm\",\n\t\t\"has-[input:invalid]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:shadow-soft-base\",\n\t\t\"has-[input:invalid]:hover:border-status-error-primary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input:invalid]:has-[input:focus]:shadow-focus-error\",\n\t\t\"has-[input[aria-invalid=true]]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:shadow-soft-base\",\n\t\t\"has-[input[aria-invalid=true]]:hover:border-status-error-primary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:border-status-error-secondary-border\",\n\t\t\"has-[input[aria-invalid=true]]:has-[input:focus]:shadow-focus-error\",\n\n\t\t// Стили для автозаполнения - применяем фон ко всей группе\n\t\t\"has-[input:-webkit-autofill]:bg-[hsl(var(--autofill-bg))]\",\n\t\t\"has-[input:-webkit-autofill]:has-[input:focus]:bg-[hsl(var(--autofill-bg))]\"\n\t]\n});\n\n/**\n * Контейнер для группировки инпутов с дополнительными элементами (текст, кнопки).\n * Позволяет создавать композиции из инпутов, текстовых блоков и кнопок.\n */\nconst InputGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n\t({ className, children, ...props }, ref) => {\n\t\tconst styles = inputGroupStyles({ className });\n\n\t\treturn (\n\t\t\t<div ref={ref} className={styles} {...props}>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nInputGroup.displayName = \"InputGroup\";\n\nconst inputGroupInputStyles = tv({\n\tbase: [\n\t\t\"min-w-5 flex-1 rounded-lg bg-transparent py-2.5 pl-3 lg:py-2\",\n\t\t\"outline-none placeholder:text-muted focus:outline-none\",\n\t\t// Градиентная маска для плавного обрезания текста слева\n\t\t\"[mask-image:linear-gradient(to_left,rgba(255,255,255,0),#fff_15%)]\",\n\t\t// Стили для автозаполнения - убираем фон у самого input'а\n\t\t\"[-webkit-autofill]:bg-transparent\",\n\t\t\"[-webkit-autofill]:shadow-none\"\n\t]\n});\n\nexport interface InputGroupInputProps extends React.ComponentProps<\"input\"> {\n\terror?: string;\n}\n\n/**\n * Инпут для использования в группе.\n */\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputGroupInputProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupInputStyles({ className });\n\t\tconst inputRef = useRef<HTMLInputElement>(null);\n\t\tconst mergedRef = useMergeRefs(inputRef, ref);\n\n\t\tuseCustomValidity(inputRef, error);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tref={mergedRef}\n\t\t\t\tclassName={styles}\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"input\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupInput.displayName = \"InputGroup.Input\";\n\ntype InputGroupTextVariants = {\n\ttype?: \"primary\";\n};\n\nconst inputGroupTextStyles = tv({\n\tbase: [\n\t\t\"flex h-full items-center border-l border-secondary-border px-3 text-secondary-fg first:border-l-0\",\n\t\t// Правая граница, если следующий элемент НЕ InputGroupText\n\t\t\"[&[data-input-group-element='text']:has(+_:not([data-input-group-element='text']))]:border-r\"\n\t],\n\tvariants: {\n\t\ttype: {\n\t\t\tprimary: \"rounded-l-lg bg-secondary-bg-hover\"\n\t\t}\n\t} satisfies VariantsConfig<InputGroupTextVariants>\n});\n\ntype InputGroupTextProps = React.ComponentProps<\"div\"> & InputGroupTextVariants;\n\n/**\n * Текстовый элемент для отображения префикса или суффикса в группе инпутов.\n */\nconst InputGroupText = React.forwardRef<HTMLDivElement, InputGroupTextProps>(({ className, type, ...props }, ref) => {\n\tconst styles = inputGroupTextStyles({ className, type });\n\treturn <div ref={ref} className={styles} data-input-group-element=\"text\" {...props} />;\n});\n\nInputGroupText.displayName = \"InputGroup.Text\";\n\nconst inputGroupContentEditableStyles = tv({\n\tbase: [\"bg-transparent py-2.5 pl-3 lg:py-2\", \"outline-none focus:outline-none\"]\n});\n\nexport interface InputGroupContentEditableProps extends React.ComponentProps<\"div\"> {\n\terror?: string;\n}\n\n/**\n * Contenteditable элемент для использования в группе.\n */\nconst InputGroupContentEditable = React.forwardRef<HTMLDivElement, InputGroupContentEditableProps>(\n\t({ className, error, ...props }, ref) => {\n\t\tconst styles = inputGroupContentEditableStyles({ className });\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={styles}\n\t\t\t\tcontentEditable\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-invalid={!!error}\n\t\t\t\tdata-input-group-element=\"contenteditable\"\n\t\t\t\tsuppressContentEditableWarning={true}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupContentEditable.displayName = \"InputGroup.ContentEditable\";\n\nconst inputGroupButtonStyles = tv({\n\tbase: [\"aspect-auto h-full px-1.5 py-2.5 first:pl-2.5 last:pr-2.5 lg:py-2\"]\n});\n\ntype InputGroupButtonProps = ButtonBaseProps & {\n\ticon: LucideIcon;\n\ticonClassName?: string;\n};\n\nconst InputGroupButton = React.forwardRef<HTMLButtonElement, InputGroupButtonProps>(\n\t({ icon, className, ...props }, ref) => {\n\t\tconst styles = inputGroupButtonStyles({ className });\n\t\treturn (\n\t\t\t<IconButton\n\t\t\t\tref={ref}\n\t\t\t\ticon={icon}\n\t\t\t\tclassName={styles}\n\t\t\t\tvariant=\"text\"\n\t\t\t\tsize=\"md\"\n\t\t\t\tdata-input-group-element=\"button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t);\n\t}\n);\n\nInputGroupButton.displayName = \"InputGroup.Button\";\n\nexport { InputGroupText, InputGroupInput, InputGroup, InputGroupButton, InputGroupContentEditable };\n"],"names":["inputGroupStyles","tv","inputBaseElementStyles","InputGroup","React","className","children","props","ref","styles","inputGroupInputStyles","InputGroupInput","error","inputRef","useRef","mergedRef","useMergeRefs","useCustomValidity","jsx","inputGroupTextStyles","InputGroupText","type","inputGroupContentEditableStyles","InputGroupContentEditable","inputGroupButtonStyles","InputGroupButton","icon","IconButton"],"mappings":"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"}
@@ -13,7 +13,7 @@ import { h as X } from "./index-BjtNfqNq.js";
13
13
  import { T as y } from "./index-BVqs-uqP.js";
14
14
  import { u as oo } from "./ComponentVariantProvider-brk0g-hm.js";
15
15
  import { u as eo } from "./usePortalContainer-BAIp0kSF.js";
16
- import { T as ro } from "./TriggerButton-CfDObWP9.js";
16
+ import { T as ro } from "./TriggerButton-Bakr8Boi.js";
17
17
  var C = "Popover", [E, $o] = H(C, [
18
18
  x
19
19
  ]), g = x(), [to, u] = E(C), N = (o) => {
@@ -272,4 +272,4 @@ export {
272
272
  zo as c,
273
273
  Ao as d
274
274
  };
275
- //# sourceMappingURL=Popover-CRVD7AtB.js.map
275
+ //# sourceMappingURL=Popover-KjZXxxl3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover-CRVD7AtB.js","sources":["../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@18.3.6_@types+react@18.3.20__@types+rea_3205396e68ca917639ebdf7a5c8fe165/node_modules/@radix-ui/react-popover/dist/index.mjs","../src/components/popover/Popover.tsx"],"sourcesContent":["\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { tv } from \"tailwind-variants\";\nimport { useComponentVariant } from \"@/providers/component-variant-context\";\nimport { usePortalContainer } from \"../portal-container\";\nimport { TriggerButton } from \"../button\";\nimport type { TriggerButtonProps } from \"../button/trigger-button/TriggerButton\";\n\nconst POPOVER_ANATOMY = [\n\t\"z-50 w-72 outline-none\",\n\t\"origin-[--radix-popover-content-transform-origin]\",\n\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\t\"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n\t\"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n];\n\nconst popoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"rounded-lg border border-secondary-border bg-secondary-bg p-4 text-popover-foreground shadow-soft-md\"\n\t]\n});\n\nconst glassPopoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"backdrop-glass-regular rounded-2xl bg-alpha-40 p-2 text-popover-foreground shadow-glass-md\"\n\t]\n});\n\ntype PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n\t/**\n\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t * для поиска PortalContainer\n\t */\n\tportalContainer?: HTMLElement;\n};\n\n/**\n * Корневой компонент Popover, который оборачивает всю функциональность всплывающего окна.\n * Построен на основе Radix UI Popover primitive.\n */\nconst Popover = PopoverPrimitive.Root;\n\n/**\n * Элемент-триггер, который открывает всплывающее окно при клике.\n */\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\n/**\n * Элемент-якорь, относительно которого позиционируется всплывающее окно.\n */\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\n/**\n * Компонент содержимого всплывающего окна.\n */\nconst PopoverContent = React.forwardRef<React.ElementRef<typeof PopoverPrimitive.Content>, PopoverContentProps>(\n\t({ className, align = \"center\", sideOffset = 4, portalContainer, ...props }, ref) => {\n\t\tconst { variant } = useComponentVariant();\n\t\tconst container = usePortalContainer(portalContainer);\n\t\tconst contentClassName = variant === \"glass\" ? glassPopoverStyles({ className }) : popoverStyles({ className });\n\t\treturn (\n\t\t\t<PopoverPrimitive.Portal container={container}>\n\t\t\t\t<PopoverPrimitive.Content\n\t\t\t\t\t// Фикс скроллинга внутри Popover когда он находится в Dialog\n\t\t\t\t\t// RemoveScroll в Dialog блокирует прокрутку body, но может блокировать и вложенные элементы\n\t\t\t\t\t// stopPropagation предотвращает всплытие событий скроллинга к заблокированному body\n\t\t\t\t\t// https://github.com/radix-ui/primitives/issues/1159\n\t\t\t\t\tonWheel={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tonTouchMove={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tref={ref}\n\t\t\t\t\talign={align}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\tclassName={contentClassName}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</PopoverPrimitive.Portal>\n\t\t);\n\t}\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\n/**\n * Компонент-обертка для использования TriggerButton в качестве триггера поповера\n */\nconst PopoverTriggerButton = React.forwardRef<\n\tReact.ElementRef<typeof PopoverTrigger>,\n\tReact.ComponentPropsWithoutRef<typeof PopoverTrigger> & Omit<TriggerButtonProps, \"dataState\">\n>(({ children, ...props }, ref) => {\n\treturn (\n\t\t<PopoverTrigger asChild ref={ref}>\n\t\t\t<TriggerButton {...props}>{children}</TriggerButton>\n\t\t</PopoverTrigger>\n\t);\n});\n\nPopoverTriggerButton.displayName = \"PopoverTriggerButton\";\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverTriggerButton };\n"],"names":["POPOVER_NAME","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","hasCustomAnchor","setHasCustomAnchor","open","setOpen","useControllableState","jsx","PopperPrimitive.Root","useId","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","getState","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","PopoverPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","PopoverContent","portalContext","contentProps","PopoverContentModal","PopoverContentNonModal","Slot","createSlot","contentRef","composedRefs","isRightClickOutsideRef","content","hideOthers","RemoveScroll","PopoverContentImpl","event","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","target","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","DismissableLayer","PopperPrimitive.Content","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","PopperPrimitive.Arrow","Root2","Anchor2","Trigger","Portal","Content2","POPOVER_ANATOMY","popoverStyles","tv","glassPopoverStyles","PopoverPrimitive.Root","PopoverPrimitive.Trigger","PopoverPrimitive.Anchor","className","align","sideOffset","portalContainer","ref","variant","useComponentVariant","usePortalContainer","contentClassName","PopoverPrimitive.Portal","PopoverPrimitive.Content","e","PopoverTriggerButton","TriggerButton"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Popover-KjZXxxl3.js","sources":["../node_modules/.pnpm/@radix-ui+react-popover@1.1.15_@types+react-dom@18.3.6_@types+react@18.3.20__@types+rea_3205396e68ca917639ebdf7a5c8fe165/node_modules/@radix-ui/react-popover/dist/index.mjs","../src/components/popover/Popover.tsx"],"sourcesContent":["\"use client\";\n\n// src/popover.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useFocusGuards } from \"@radix-ui/react-focus-guards\";\nimport { FocusScope } from \"@radix-ui/react-focus-scope\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { hideOthers } from \"aria-hidden\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { jsx } from \"react/jsx-runtime\";\nvar POPOVER_NAME = \"Popover\";\nvar [createPopoverContext, createPopoverScope] = createContextScope(POPOVER_NAME, [\n createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);\nvar Popover = (props) => {\n const {\n __scopePopover,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = false\n } = props;\n const popperScope = usePopperScope(__scopePopover);\n const triggerRef = React.useRef(null);\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: POPOVER_NAME\n });\n return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n PopoverProvider,\n {\n scope: __scopePopover,\n contentId: useId(),\n triggerRef,\n open,\n onOpenChange: setOpen,\n onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n hasCustomAnchor,\n onCustomAnchorAdd: React.useCallback(() => setHasCustomAnchor(true), []),\n onCustomAnchorRemove: React.useCallback(() => setHasCustomAnchor(false), []),\n modal,\n children\n }\n ) });\n};\nPopover.displayName = POPOVER_NAME;\nvar ANCHOR_NAME = \"PopoverAnchor\";\nvar PopoverAnchor = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...anchorProps } = props;\n const context = usePopoverContext(ANCHOR_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const { onCustomAnchorAdd, onCustomAnchorRemove } = context;\n React.useEffect(() => {\n onCustomAnchorAdd();\n return () => onCustomAnchorRemove();\n }, [onCustomAnchorAdd, onCustomAnchorRemove]);\n return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });\n }\n);\nPopoverAnchor.displayName = ANCHOR_NAME;\nvar TRIGGER_NAME = \"PopoverTrigger\";\nvar PopoverTrigger = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...triggerProps } = props;\n const context = usePopoverContext(TRIGGER_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n const trigger = /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": context.open,\n \"aria-controls\": context.contentId,\n \"data-state\": getState(context.open),\n ...triggerProps,\n ref: composedTriggerRef,\n onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n }\n );\n return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: trigger });\n }\n);\nPopoverTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"PopoverPortal\";\nvar [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {\n forceMount: void 0\n});\nvar PopoverPortal = (props) => {\n const { __scopePopover, forceMount, children, container } = props;\n const context = usePopoverContext(PORTAL_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nPopoverPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"PopoverContent\";\nvar PopoverContent = React.forwardRef(\n (props, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });\n }\n);\nPopoverContent.displayName = CONTENT_NAME;\nvar Slot = createSlot(\"PopoverContent.RemoveScroll\");\nvar PopoverContentModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const contentRef = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const isRightClickOutsideRef = React.useRef(false);\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n return /* @__PURE__ */ jsx(RemoveScroll, { as: Slot, allowPinchZoom: true, children: /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: composedRefs,\n trapFocus: context.open,\n disableOutsidePointerEvents: true,\n onCloseAutoFocus: composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n if (!isRightClickOutsideRef.current) context.triggerRef.current?.focus();\n }),\n onPointerDownOutside: composeEventHandlers(\n props.onPointerDownOutside,\n (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n isRightClickOutsideRef.current = isRightClick;\n },\n { checkForDefaultPrevented: false }\n ),\n onFocusOutside: composeEventHandlers(\n props.onFocusOutside,\n (event) => event.preventDefault(),\n { checkForDefaultPrevented: false }\n )\n }\n ) });\n }\n);\nvar PopoverContentNonModal = React.forwardRef(\n (props, forwardedRef) => {\n const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n return /* @__PURE__ */ jsx(\n PopoverContentImpl,\n {\n ...props,\n ref: forwardedRef,\n trapFocus: false,\n disableOutsidePointerEvents: false,\n onCloseAutoFocus: (event) => {\n props.onCloseAutoFocus?.(event);\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n event.preventDefault();\n }\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n },\n onInteractOutside: (event) => {\n props.onInteractOutside?.(event);\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === \"pointerdown\") {\n hasPointerDownOutsideRef.current = true;\n }\n }\n const target = event.target;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n if (event.detail.originalEvent.type === \"focusin\" && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }\n }\n );\n }\n);\nvar PopoverContentImpl = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopePopover,\n trapFocus,\n onOpenAutoFocus,\n onCloseAutoFocus,\n disableOutsidePointerEvents,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n ...contentProps\n } = props;\n const context = usePopoverContext(CONTENT_NAME, __scopePopover);\n const popperScope = usePopperScope(__scopePopover);\n useFocusGuards();\n return /* @__PURE__ */ jsx(\n FocusScope,\n {\n asChild: true,\n loop: true,\n trapped: trapFocus,\n onMountAutoFocus: onOpenAutoFocus,\n onUnmountAutoFocus: onCloseAutoFocus,\n children: /* @__PURE__ */ jsx(\n DismissableLayer,\n {\n asChild: true,\n disableOutsidePointerEvents,\n onInteractOutside,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onDismiss: () => context.onOpenChange(false),\n children: /* @__PURE__ */ jsx(\n PopperPrimitive.Content,\n {\n \"data-state\": getState(context.open),\n role: \"dialog\",\n id: context.contentId,\n ...popperScope,\n ...contentProps,\n ref: forwardedRef,\n style: {\n ...contentProps.style,\n // re-namespace exposed content custom properties\n ...{\n \"--radix-popover-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n \"--radix-popover-content-available-width\": \"var(--radix-popper-available-width)\",\n \"--radix-popover-content-available-height\": \"var(--radix-popper-available-height)\",\n \"--radix-popover-trigger-width\": \"var(--radix-popper-anchor-width)\",\n \"--radix-popover-trigger-height\": \"var(--radix-popper-anchor-height)\"\n }\n }\n }\n )\n }\n )\n }\n );\n }\n);\nvar CLOSE_NAME = \"PopoverClose\";\nvar PopoverClose = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...closeProps } = props;\n const context = usePopoverContext(CLOSE_NAME, __scopePopover);\n return /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n ...closeProps,\n ref: forwardedRef,\n onClick: composeEventHandlers(props.onClick, () => context.onOpenChange(false))\n }\n );\n }\n);\nPopoverClose.displayName = CLOSE_NAME;\nvar ARROW_NAME = \"PopoverArrow\";\nvar PopoverArrow = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopePopover, ...arrowProps } = props;\n const popperScope = usePopperScope(__scopePopover);\n return /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n }\n);\nPopoverArrow.displayName = ARROW_NAME;\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nvar Root2 = Popover;\nvar Anchor2 = PopoverAnchor;\nvar Trigger = PopoverTrigger;\nvar Portal = PopoverPortal;\nvar Content2 = PopoverContent;\nvar Close = PopoverClose;\nvar Arrow2 = PopoverArrow;\nexport {\n Anchor2 as Anchor,\n Arrow2 as Arrow,\n Close,\n Content2 as Content,\n Popover,\n PopoverAnchor,\n PopoverArrow,\n PopoverClose,\n PopoverContent,\n PopoverPortal,\n PopoverTrigger,\n Portal,\n Root2 as Root,\n Trigger,\n createPopoverScope\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\nimport { tv } from \"tailwind-variants\";\nimport { useComponentVariant } from \"@/providers/component-variant-context\";\nimport { usePortalContainer } from \"../portal-container\";\nimport { TriggerButton } from \"../button\";\nimport type { TriggerButtonProps } from \"../button/trigger-button/TriggerButton\";\n\nconst POPOVER_ANATOMY = [\n\t\"z-50 w-72 outline-none\",\n\t\"origin-[--radix-popover-content-transform-origin]\",\n\t\"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n\t\"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n\t\"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n\t\"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n\t\"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\"\n];\n\nconst popoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"rounded-lg border border-secondary-border bg-secondary-bg p-4 text-popover-foreground shadow-soft-md\"\n\t]\n});\n\nconst glassPopoverStyles = tv({\n\tbase: [\n\t\t...POPOVER_ANATOMY,\n\t\t\"backdrop-glass-regular rounded-2xl bg-alpha-40 p-2 text-popover-foreground shadow-glass-md\"\n\t]\n});\n\ntype PopoverContentProps = React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> & {\n\t/**\n\t * Контейнер для портала. Если не указан, используется хук usePortalContainer\n\t * для поиска PortalContainer\n\t */\n\tportalContainer?: HTMLElement;\n};\n\n/**\n * Корневой компонент Popover, который оборачивает всю функциональность всплывающего окна.\n * Построен на основе Radix UI Popover primitive.\n */\nconst Popover = PopoverPrimitive.Root;\n\n/**\n * Элемент-триггер, который открывает всплывающее окно при клике.\n */\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\n/**\n * Элемент-якорь, относительно которого позиционируется всплывающее окно.\n */\nconst PopoverAnchor = PopoverPrimitive.Anchor;\n\n/**\n * Компонент содержимого всплывающего окна.\n */\nconst PopoverContent = React.forwardRef<React.ElementRef<typeof PopoverPrimitive.Content>, PopoverContentProps>(\n\t({ className, align = \"center\", sideOffset = 4, portalContainer, ...props }, ref) => {\n\t\tconst { variant } = useComponentVariant();\n\t\tconst container = usePortalContainer(portalContainer);\n\t\tconst contentClassName = variant === \"glass\" ? glassPopoverStyles({ className }) : popoverStyles({ className });\n\t\treturn (\n\t\t\t<PopoverPrimitive.Portal container={container}>\n\t\t\t\t<PopoverPrimitive.Content\n\t\t\t\t\t// Фикс скроллинга внутри Popover когда он находится в Dialog\n\t\t\t\t\t// RemoveScroll в Dialog блокирует прокрутку body, но может блокировать и вложенные элементы\n\t\t\t\t\t// stopPropagation предотвращает всплытие событий скроллинга к заблокированному body\n\t\t\t\t\t// https://github.com/radix-ui/primitives/issues/1159\n\t\t\t\t\tonWheel={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tonTouchMove={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t}}\n\t\t\t\t\tref={ref}\n\t\t\t\t\talign={align}\n\t\t\t\t\tsideOffset={sideOffset}\n\t\t\t\t\tclassName={contentClassName}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</PopoverPrimitive.Portal>\n\t\t);\n\t}\n);\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\n/**\n * Компонент-обертка для использования TriggerButton в качестве триггера поповера\n */\nconst PopoverTriggerButton = React.forwardRef<\n\tReact.ElementRef<typeof PopoverTrigger>,\n\tReact.ComponentPropsWithoutRef<typeof PopoverTrigger> & Omit<TriggerButtonProps, \"dataState\">\n>(({ children, ...props }, ref) => {\n\treturn (\n\t\t<PopoverTrigger asChild ref={ref}>\n\t\t\t<TriggerButton {...props}>{children}</TriggerButton>\n\t\t</PopoverTrigger>\n\t);\n});\n\nPopoverTriggerButton.displayName = \"PopoverTriggerButton\";\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverTriggerButton };\n"],"names":["POPOVER_NAME","createPopoverContext","createPopoverScope","createContextScope","createPopperScope","usePopperScope","PopoverProvider","usePopoverContext","Popover","props","__scopePopover","children","openProp","defaultOpen","onOpenChange","modal","popperScope","triggerRef","React","hasCustomAnchor","setHasCustomAnchor","open","setOpen","useControllableState","jsx","PopperPrimitive.Root","useId","prevOpen","ANCHOR_NAME","PopoverAnchor","forwardedRef","anchorProps","context","onCustomAnchorAdd","onCustomAnchorRemove","PopperPrimitive.Anchor","TRIGGER_NAME","PopoverTrigger","triggerProps","composedTriggerRef","useComposedRefs","trigger","Primitive","getState","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","PopoverPortal","forceMount","container","Presence","PortalPrimitive","CONTENT_NAME","PopoverContent","portalContext","contentProps","PopoverContentModal","PopoverContentNonModal","Slot","createSlot","contentRef","composedRefs","isRightClickOutsideRef","content","hideOthers","RemoveScroll","PopoverContentImpl","event","originalEvent","ctrlLeftClick","isRightClick","hasInteractedOutsideRef","hasPointerDownOutsideRef","target","trapFocus","onOpenAutoFocus","onCloseAutoFocus","disableOutsidePointerEvents","onEscapeKeyDown","onPointerDownOutside","onFocusOutside","onInteractOutside","useFocusGuards","FocusScope","DismissableLayer","PopperPrimitive.Content","CLOSE_NAME","PopoverClose","closeProps","ARROW_NAME","PopoverArrow","arrowProps","PopperPrimitive.Arrow","Root2","Anchor2","Trigger","Portal","Content2","POPOVER_ANATOMY","popoverStyles","tv","glassPopoverStyles","PopoverPrimitive.Root","PopoverPrimitive.Trigger","PopoverPrimitive.Anchor","className","align","sideOffset","portalContainer","ref","variant","useComponentVariant","usePortalContainer","contentClassName","PopoverPrimitive.Portal","PopoverPrimitive.Content","e","PopoverTriggerButton","TriggerButton"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
1
  import { jsxs as a, jsx as s } from "react/jsx-runtime";
2
2
  import p from "react";
3
- import { B as d } from "./ButtonBase-e6qyv6mD.js";
3
+ import { B as d } from "./ButtonBase-jgu7EolU.js";
4
4
  import { T as x } from "./index-BVqs-uqP.js";
5
5
  import { F as f } from "./FeatureIcon-BGE0Orkc.js";
6
6
  import { D as u } from "./Description-BTPMlTT-.js";
@@ -46,4 +46,4 @@ export {
46
46
  b as R,
47
47
  h as r
48
48
  };
49
- //# sourceMappingURL=RichButton-DuPTenmS.js.map
49
+ //# sourceMappingURL=RichButton-B1wjK7Bk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichButton-DuPTenmS.js","sources":["../src/components/button/rich-button/RichButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { ButtonBase, ButtonBaseProps } from \"../button-base/ButtonBase\";\nimport { tv } from \"tailwind-variants\";\nimport { LucideIcon } from \"lucide-react\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { Description } from \"@/components/description\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface RichButtonVariants {\n\tsize?: \"sm\" | \"lg\";\n}\n\nexport const richButtonStyles = tv({\n\tslots: {\n\t\tbase: \"w-full justify-start\",\n\t\twrapper: \"flex flex-col items-start\",\n\t\tdescription: \"\",\n\t\ttext: \"font-semibold\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tbase: \"h-12 gap-2 rounded-xl px-2 py-1.5\",\n\t\t\t\tdescription: \"text-xs\",\n\t\t\t\ttext: \"text-sm\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tbase: \"h-[4.5rem] gap-3 rounded-2xl p-3\",\n\t\t\t\twrapper: \"gap-1\",\n\t\t\t\tdescription: \"text-sm\",\n\t\t\t\ttext: \"text-base\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<RichButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"sm\"\n\t}\n});\n\nexport type RichButtonProps = ButtonBaseProps &\n\tRichButtonVariants & {\n\t\ttitle: React.ReactNode;\n\t\tdescription: React.ReactNode;\n\t\ticon: LucideIcon;\n\t};\n\nexport const RichButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<RichButtonProps>>(\n\t({ icon, size, title, description, className, ...props }, ref) => {\n\t\tconst styles = richButtonStyles({ size });\n\t\tconst iconSize = size === \"lg\" ? \"2xl\" : \"md\";\n\n\t\treturn (\n\t\t\t<ButtonBase variant=\"outline\" className={styles.base({ class: className })} ref={ref} {...props}>\n\t\t\t\t<FeatureIcon size={iconSize} icon={icon} className=\"bg-status-neutral-fg\" />\n\n\t\t\t\t<div className={styles.wrapper()}>\n\t\t\t\t\t<span className={styles.text()}>{title}</span>\n\t\t\t\t\t<Description className={styles.description()}>{description}</Description>\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nRichButton.displayName = \"RichButton\";\n"],"names":["richButtonStyles","tv","RichButton","React","icon","size","title","description","className","props","ref","styles","iconSize","jsxs","ButtonBase","jsx","FeatureIcon","Description"],"mappings":";;;;;;AAYO,MAAMA,IAAmBC,EAAG;AAAA,EAClC,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,QACH,MAAM;AAAA,QACN,aAAa;AAAA,QACb,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,EAEF;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GASYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACjE,UAAMC,IAASX,EAAiB,EAAE,MAAAK,GAAM,GAClCO,IAAWP,MAAS,OAAO,QAAQ;AAEzC,WACE,gBAAAQ,EAAAC,GAAA,EAAW,SAAQ,WAAU,WAAWH,EAAO,KAAK,EAAE,OAAOH,EAAW,CAAA,GAAG,KAAAE,GAAW,GAAGD,GACzF,UAAA;AAAA,MAAA,gBAAAM,EAACC,GAAY,EAAA,MAAMJ,GAAU,MAAAR,GAAY,WAAU,wBAAuB;AAAA,MAEzE,gBAAAS,EAAA,OAAA,EAAI,WAAWF,EAAO,QACtB,GAAA,UAAA;AAAA,QAAA,gBAAAI,EAAC,QAAK,EAAA,WAAWJ,EAAO,QAAS,UAAML,GAAA;AAAA,0BACtCW,GAAY,EAAA,WAAWN,EAAO,eAAgB,UAAYJ,EAAA,CAAA;AAAA,MAAA,EAC5D,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAGH;AAEAL,EAAW,cAAc;"}
1
+ {"version":3,"file":"RichButton-B1wjK7Bk.js","sources":["../src/components/button/rich-button/RichButton.tsx"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { ButtonBase, ButtonBaseProps } from \"../button-base/ButtonBase\";\nimport { tv } from \"tailwind-variants\";\nimport { LucideIcon } from \"lucide-react\";\nimport { FeatureIcon } from \"@/components/icon\";\nimport { Description } from \"@/components/description\";\nimport { VariantsConfig } from \"@/lib/utils/variants\";\n\nexport interface RichButtonVariants {\n\tsize?: \"sm\" | \"lg\";\n}\n\nexport const richButtonStyles = tv({\n\tslots: {\n\t\tbase: \"w-full justify-start\",\n\t\twrapper: \"flex flex-col items-start\",\n\t\tdescription: \"\",\n\t\ttext: \"font-semibold\"\n\t},\n\tvariants: {\n\t\tsize: {\n\t\t\tsm: {\n\t\t\t\tbase: \"h-12 gap-2 rounded-xl px-2 py-1.5\",\n\t\t\t\tdescription: \"text-xs\",\n\t\t\t\ttext: \"text-sm\"\n\t\t\t},\n\t\t\tlg: {\n\t\t\t\tbase: \"h-[4.5rem] gap-3 rounded-2xl p-3\",\n\t\t\t\twrapper: \"gap-1\",\n\t\t\t\tdescription: \"text-sm\",\n\t\t\t\ttext: \"text-base\"\n\t\t\t}\n\t\t}\n\t} satisfies VariantsConfig<RichButtonVariants>,\n\tdefaultVariants: {\n\t\tsize: \"sm\"\n\t}\n});\n\nexport type RichButtonProps = ButtonBaseProps &\n\tRichButtonVariants & {\n\t\ttitle: React.ReactNode;\n\t\tdescription: React.ReactNode;\n\t\ticon: LucideIcon;\n\t};\n\nexport const RichButton = React.forwardRef<HTMLButtonElement, PropsWithChildren<RichButtonProps>>(\n\t({ icon, size, title, description, className, ...props }, ref) => {\n\t\tconst styles = richButtonStyles({ size });\n\t\tconst iconSize = size === \"lg\" ? \"2xl\" : \"md\";\n\n\t\treturn (\n\t\t\t<ButtonBase variant=\"outline\" className={styles.base({ class: className })} ref={ref} {...props}>\n\t\t\t\t<FeatureIcon size={iconSize} icon={icon} className=\"bg-status-neutral-fg\" />\n\n\t\t\t\t<div className={styles.wrapper()}>\n\t\t\t\t\t<span className={styles.text()}>{title}</span>\n\t\t\t\t\t<Description className={styles.description()}>{description}</Description>\n\t\t\t\t</div>\n\t\t\t</ButtonBase>\n\t\t);\n\t}\n);\n\nRichButton.displayName = \"RichButton\";\n"],"names":["richButtonStyles","tv","RichButton","React","icon","size","title","description","className","props","ref","styles","iconSize","jsxs","ButtonBase","jsx","FeatureIcon","Description"],"mappings":";;;;;;AAYO,MAAMA,IAAmBC,EAAG;AAAA,EAClC,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,MAAM;AAAA,EACP;AAAA,EACA,UAAU;AAAA,IACT,MAAM;AAAA,MACL,IAAI;AAAA,QACH,MAAM;AAAA,QACN,aAAa;AAAA,QACb,MAAM;AAAA,MACP;AAAA,MACA,IAAI;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,aAAa;AAAA,QACb,MAAM;AAAA,MAAA;AAAA,IACP;AAAA,EAEF;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EAAA;AAER,CAAC,GASYC,IAAaC,EAAM;AAAA,EAC/B,CAAC,EAAE,MAAAC,GAAM,MAAAC,GAAM,OAAAC,GAAO,aAAAC,GAAa,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAAQ;AACjE,UAAMC,IAASX,EAAiB,EAAE,MAAAK,GAAM,GAClCO,IAAWP,MAAS,OAAO,QAAQ;AAEzC,WACE,gBAAAQ,EAAAC,GAAA,EAAW,SAAQ,WAAU,WAAWH,EAAO,KAAK,EAAE,OAAOH,EAAW,CAAA,GAAG,KAAAE,GAAW,GAAGD,GACzF,UAAA;AAAA,MAAA,gBAAAM,EAACC,GAAY,EAAA,MAAMJ,GAAU,MAAAR,GAAY,WAAU,wBAAuB;AAAA,MAEzE,gBAAAS,EAAA,OAAA,EAAI,WAAWF,EAAO,QACtB,GAAA,UAAA;AAAA,QAAA,gBAAAI,EAAC,QAAK,EAAA,WAAWJ,EAAO,QAAS,UAAML,GAAA;AAAA,0BACtCW,GAAY,EAAA,WAAWN,EAAO,eAAgB,UAAYJ,EAAA,CAAA;AAAA,MAAA,EAC5D,CAAA;AAAA,IAAA,GACD;AAAA,EAAA;AAGH;AAEAL,EAAW,cAAc;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as x, jsx as d } from "react/jsx-runtime";
2
2
  import S, { useState as I, useRef as b, useEffect as y, useCallback as h, useMemo as V } from "react";
3
3
  import { u as k } from "./useMergeRefs-qoKniYqT.js";
4
- import { a as w, c as v, b as A, d as g } from "./InputGroup-BcRWP-zL.js";
4
+ import { a as w, c as v, b as A, d as g } from "./InputGroup-AVAtosX_.js";
5
5
  import { T } from "./index-BVqs-uqP.js";
6
6
  import { C as E } from "./circle-x-u75Rx3Tj.js";
7
7
  import { C as N } from "./check-CeyaOoZv.js";
@@ -202,4 +202,4 @@ export {
202
202
  H as T,
203
203
  z as u
204
204
  };
205
- //# sourceMappingURL=TextInput-Db0ylY91.js.map
205
+ //# sourceMappingURL=TextInput-5BuZtWV6.js.map