@incognia/cosmik 1.0.11 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/dist/Tabs/index.d.ts +5 -1
  2. package/dist/Tabs/index.d.ts.map +1 -1
  3. package/dist/cosmik.css +3 -1
  4. package/dist/index.cjs +1 -2
  5. package/dist/index.js +36 -179
  6. package/dist/index10.cjs +2 -2
  7. package/dist/index10.cjs.map +1 -1
  8. package/dist/index10.js +12 -195
  9. package/dist/index10.js.map +1 -1
  10. package/dist/index11.cjs +2 -2
  11. package/dist/index11.cjs.map +1 -1
  12. package/dist/index11.js +61 -140
  13. package/dist/index11.js.map +1 -1
  14. package/dist/index12.cjs +2 -2
  15. package/dist/index12.cjs.map +1 -1
  16. package/dist/index12.js +156 -228
  17. package/dist/index12.js.map +1 -1
  18. package/dist/index13.cjs +2 -2
  19. package/dist/index13.cjs.map +1 -1
  20. package/dist/index13.js +92 -119
  21. package/dist/index13.js.map +1 -1
  22. package/dist/index14.cjs +2 -2
  23. package/dist/index14.cjs.map +1 -1
  24. package/dist/index14.js +71 -24
  25. package/dist/index14.js.map +1 -1
  26. package/dist/index15.cjs +2 -2
  27. package/dist/index15.cjs.map +1 -1
  28. package/dist/index15.js +105 -25
  29. package/dist/index15.js.map +1 -1
  30. package/dist/index16.cjs +2 -2
  31. package/dist/index16.cjs.map +1 -1
  32. package/dist/index16.js +57 -22
  33. package/dist/index16.js.map +1 -1
  34. package/dist/index17.cjs +2 -2
  35. package/dist/index17.cjs.map +1 -1
  36. package/dist/index17.js +23 -63
  37. package/dist/index17.js.map +1 -1
  38. package/dist/index18.cjs +2 -2
  39. package/dist/index18.cjs.map +1 -1
  40. package/dist/index18.js +90 -23
  41. package/dist/index18.js.map +1 -1
  42. package/dist/index19.cjs +2 -2
  43. package/dist/index19.cjs.map +1 -1
  44. package/dist/index19.js +83 -102
  45. package/dist/index19.js.map +1 -1
  46. package/dist/index2.cjs +1 -0
  47. package/dist/index2.js +7 -0
  48. package/dist/index20.cjs +2 -2
  49. package/dist/index20.cjs.map +1 -1
  50. package/dist/index20.js +126 -48
  51. package/dist/index20.js.map +1 -1
  52. package/dist/index21.cjs +2 -2
  53. package/dist/index21.cjs.map +1 -1
  54. package/dist/index21.js +41 -31
  55. package/dist/index21.js.map +1 -1
  56. package/dist/index22.cjs +2 -2
  57. package/dist/index22.cjs.map +1 -1
  58. package/dist/index22.js +76 -46
  59. package/dist/index22.js.map +1 -1
  60. package/dist/index23.cjs +2 -2
  61. package/dist/index23.cjs.map +1 -1
  62. package/dist/index23.js +68 -185
  63. package/dist/index23.js.map +1 -1
  64. package/dist/index24.cjs +2 -2
  65. package/dist/index24.cjs.map +1 -1
  66. package/dist/index24.js +31 -28
  67. package/dist/index24.js.map +1 -1
  68. package/dist/index25.cjs +2 -2
  69. package/dist/index25.cjs.map +1 -1
  70. package/dist/index25.js +17 -132
  71. package/dist/index25.js.map +1 -1
  72. package/dist/index26.cjs +2 -2
  73. package/dist/index26.cjs.map +1 -1
  74. package/dist/index26.js +17 -17
  75. package/dist/index26.js.map +1 -1
  76. package/dist/index27.cjs +2 -2
  77. package/dist/index27.cjs.map +1 -1
  78. package/dist/index27.js +52 -36
  79. package/dist/index27.js.map +1 -1
  80. package/dist/index28.cjs +2 -2
  81. package/dist/index28.cjs.map +1 -1
  82. package/dist/index28.js +10 -33
  83. package/dist/index28.js.map +1 -1
  84. package/dist/index29.cjs +2 -2
  85. package/dist/index29.cjs.map +1 -1
  86. package/dist/index29.js +25 -135
  87. package/dist/index29.js.map +1 -1
  88. package/dist/index30.cjs +2 -2
  89. package/dist/index30.cjs.map +1 -1
  90. package/dist/index30.js +66 -62
  91. package/dist/index30.js.map +1 -1
  92. package/dist/index31.cjs +2 -2
  93. package/dist/index31.cjs.map +1 -1
  94. package/dist/index31.js +22 -88
  95. package/dist/index31.js.map +1 -1
  96. package/dist/index32.cjs +2 -2
  97. package/dist/index32.cjs.map +1 -1
  98. package/dist/index32.js +30 -23
  99. package/dist/index32.js.map +1 -1
  100. package/dist/index33.cjs +2 -2
  101. package/dist/index33.cjs.map +1 -1
  102. package/dist/index33.js +97 -93
  103. package/dist/index33.js.map +1 -1
  104. package/dist/index34.cjs +2 -2
  105. package/dist/index34.cjs.map +1 -1
  106. package/dist/index34.js +19 -72
  107. package/dist/index34.js.map +1 -1
  108. package/dist/index35.cjs +2 -2
  109. package/dist/index35.cjs.map +1 -1
  110. package/dist/index35.js +81 -62
  111. package/dist/index35.js.map +1 -1
  112. package/dist/index36.cjs +2 -2
  113. package/dist/index36.cjs.map +1 -1
  114. package/dist/index36.js +14 -161
  115. package/dist/index36.js.map +1 -1
  116. package/dist/index37.cjs +2 -2
  117. package/dist/index37.cjs.map +1 -1
  118. package/dist/index37.js +44 -6
  119. package/dist/index37.js.map +1 -1
  120. package/dist/index38.cjs +2 -2
  121. package/dist/index38.cjs.map +1 -1
  122. package/dist/index38.js +22 -36
  123. package/dist/index38.js.map +1 -1
  124. package/dist/index39.cjs +2 -2
  125. package/dist/index39.cjs.map +1 -1
  126. package/dist/index39.js +71 -16
  127. package/dist/index39.js.map +1 -1
  128. package/dist/index4.cjs +2 -2
  129. package/dist/index4.cjs.map +1 -1
  130. package/dist/index4.js +18 -160
  131. package/dist/index4.js.map +1 -1
  132. package/dist/index40.cjs +2 -2
  133. package/dist/index40.cjs.map +1 -1
  134. package/dist/index40.js +58 -120
  135. package/dist/index40.js.map +1 -1
  136. package/dist/index41.cjs +2 -2
  137. package/dist/index41.cjs.map +1 -1
  138. package/dist/index41.js +73 -16
  139. package/dist/index41.js.map +1 -1
  140. package/dist/index42.cjs +2 -2
  141. package/dist/index42.cjs.map +1 -1
  142. package/dist/index42.js +15 -10
  143. package/dist/index42.js.map +1 -1
  144. package/dist/index43.cjs +2 -2
  145. package/dist/index43.cjs.map +1 -1
  146. package/dist/index43.js +87 -5
  147. package/dist/index43.js.map +1 -1
  148. package/dist/index44.cjs +2 -2
  149. package/dist/index44.cjs.map +1 -1
  150. package/dist/index44.js +52 -26
  151. package/dist/index44.js.map +1 -1
  152. package/dist/index45.cjs +2 -7
  153. package/dist/index45.cjs.map +1 -1
  154. package/dist/index45.js +48 -238
  155. package/dist/index45.js.map +1 -1
  156. package/dist/index46.cjs +2 -2
  157. package/dist/index46.cjs.map +1 -1
  158. package/dist/index46.js +85 -17
  159. package/dist/index46.js.map +1 -1
  160. package/dist/index5.cjs +2 -2
  161. package/dist/index5.cjs.map +1 -1
  162. package/dist/index5.js +34 -80
  163. package/dist/index5.js.map +1 -1
  164. package/dist/index6.cjs +2 -2
  165. package/dist/index6.cjs.map +1 -1
  166. package/dist/index6.js +1586 -163
  167. package/dist/index6.js.map +1 -1
  168. package/dist/index7.cjs +2 -2
  169. package/dist/index7.cjs.map +1 -1
  170. package/dist/index7.js +14 -196
  171. package/dist/index7.js.map +1 -1
  172. package/dist/index8.cjs +2 -2
  173. package/dist/index8.cjs.map +1 -1
  174. package/dist/index8.js +23 -91
  175. package/dist/index8.js.map +1 -1
  176. package/dist/index9.cjs +7 -2
  177. package/dist/index9.cjs.map +1 -1
  178. package/dist/index9.js +162 -40
  179. package/dist/index9.js.map +1 -1
  180. package/package.json +22 -20
  181. package/dist/index.cjs.map +0 -1
  182. package/dist/index.js.map +0 -1
  183. package/dist/index3.cjs +0 -2
  184. package/dist/index3.cjs.map +0 -1
  185. package/dist/index3.js +0 -87
  186. package/dist/index3.js.map +0 -1
  187. package/dist/index47.cjs +0 -2
  188. package/dist/index47.cjs.map +0 -1
  189. package/dist/index47.js +0 -2732
  190. package/dist/index47.js.map +0 -1
  191. package/dist/index48.cjs +0 -2
  192. package/dist/index48.cjs.map +0 -1
  193. package/dist/index48.js +0 -5
  194. package/dist/index48.js.map +0 -1
  195. package/dist/index49.cjs +0 -2
  196. package/dist/index49.cjs.map +0 -1
  197. package/dist/index49.js +0 -5
  198. package/dist/index49.js.map +0 -1
  199. /package/dist/{cosmik-theme.css → src/cosmik-theme.css} +0 -0
package/dist/index21.js CHANGED
@@ -1,32 +1,42 @@
1
- import { j as r } from "./index37.js";
2
- import * as o from "@radix-ui/react-progress";
3
- import { cn as e } from "./index39.js";
4
- function n({
5
- className: s,
6
- value: t,
7
- ...l
8
- }) {
9
- return /* @__PURE__ */ r.jsx(
10
- o.Root,
11
- {
12
- "data-slot": "progress",
13
- className: e(
14
- "relative h-16 w-full overflow-hidden rounded-full bg-gray-900/8",
15
- s
16
- ),
17
- ...l,
18
- children: /* @__PURE__ */ r.jsx(
19
- o.Indicator,
20
- {
21
- "data-slot": "progress-indicator",
22
- className: "h-full w-full flex-1 bg-purple-700 transition-all",
23
- style: { transform: `translateX(-${100 - (t || 0)}%)` }
24
- }
25
- )
26
- }
27
- );
1
+ "use client";
2
+ import { cn as e } from "./index7.js";
3
+ import { require_jsx_runtime as t } from "./index10.js";
4
+ import "react";
5
+ import * as n from "@radix-ui/react-popover";
6
+ //#region src/Popover/index.tsx
7
+ var r = t();
8
+ function i({ ...e }) {
9
+ return /* @__PURE__ */ (0, r.jsx)(n.Root, {
10
+ "data-slot": "popover",
11
+ ...e
12
+ });
28
13
  }
29
- export {
30
- n as Progress
31
- };
32
- //# sourceMappingURL=index21.js.map
14
+ function a({ ...e }) {
15
+ return /* @__PURE__ */ (0, r.jsx)(n.Trigger, {
16
+ "data-slot": "popover-trigger",
17
+ ...e
18
+ });
19
+ }
20
+ function o({ className: t, align: i = "center", sideOffset: a = 4, portalled: o = !0, container: s, ...c }) {
21
+ let l = /* @__PURE__ */ (0, r.jsx)(n.Content, {
22
+ "data-slot": "popover-content",
23
+ align: i,
24
+ sideOffset: a,
25
+ className: e("bg-white text-gray-800 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-[288px] origin-(--radix-popover-content-transform-origin) rounded border border-gray-900/8 p-16 shadow-200 outline-hidden", t),
26
+ ...c
27
+ });
28
+ return o ? /* @__PURE__ */ (0, r.jsx)(n.Portal, {
29
+ container: s,
30
+ children: l
31
+ }) : l;
32
+ }
33
+ function s({ ...e }) {
34
+ return /* @__PURE__ */ (0, r.jsx)(n.Anchor, {
35
+ "data-slot": "popover-anchor",
36
+ ...e
37
+ });
38
+ }
39
+ //#endregion
40
+ export { i as Popover, s as PopoverAnchor, o as PopoverContent, a as PopoverTrigger };
41
+
42
+ //# sourceMappingURL=index21.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index21.js","sources":["../src/Progress/index.tsx"],"sourcesContent":["'use client'\n\nimport * as ProgressPrimitive from '@radix-ui/react-progress'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n 'relative h-16 w-full overflow-hidden rounded-full bg-gray-900/8',\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"h-full w-full flex-1 bg-purple-700 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n"],"names":["Progress","className","value","props","jsx","ProgressPrimitive","cn"],"mappings":";;;AAMA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAwD;AACtD,SACEC,gBAAAA,EAAAA;AAAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAAC,gBAAAA,EAAAA;AAAAA,QAACC,EAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UACV,OAAO,EAAE,WAAW,eAAe,OAAOH,KAAS,EAAE,KAAA;AAAA,QAAK;AAAA,MAAA;AAAA,IAC5D;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index21.js","names":[],"sources":["../src/Popover/index.tsx"],"sourcesContent":["'use client'\n\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n portalled = true,\n container,\n ...props\n}: PopoverContentProps) {\n const content = (\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-white text-gray-800 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-[288px] origin-(--radix-popover-content-transform-origin) rounded border border-gray-900/8 p-16 shadow-200 outline-hidden',\n className\n )}\n {...props}\n />\n )\n\n if (!portalled) return content\n\n return (\n <PopoverPrimitive.Portal container={container}>\n {content}\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport type PopoverContentProps = React.ComponentProps<\n typeof PopoverPrimitive.Content\n> & {\n portalled?: boolean\n container?: React.ComponentProps<typeof PopoverPrimitive.Portal>['container']\n}\n\nexport { Popover, PopoverAnchor, PopoverContent, PopoverTrigger }\n"],"mappings":";;;;;;;AAMA,SAAS,EAAQ,EACf,GAAG,KACkD;CACrD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;CAAQ,CAAA;AAChE;AAEA,SAAS,EAAe,EACtB,GAAG,KACqD;CACxD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,EAAe,EACtB,cACA,WAAQ,UACR,gBAAa,GACb,eAAY,IACZ,cACA,GAAG,KACmB;CACtB,IAAM,IACJ,iBAAA,GAAA,EAAA,KAAC,EAAiB,SAAlB;EACE,aAAU;EACH;EACK;EACZ,WAAW,EACT,4eACA,CACF;EACA,GAAI;CACL,CAAA;CAKH,OAFK,IAGH,iBAAA,GAAA,EAAA,KAAC,EAAiB,QAAlB;EAAoC;YACjC;CACsB,CAAA,IALJ;AAOzB;AAEA,SAAS,EAAc,EACrB,GAAG,KACoD;CACvD,OAAO,iBAAA,GAAA,EAAA,KAAC,EAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE"}
package/dist/index22.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index37.cjs"),s=require("@radix-ui/react-radio-group"),c=require("lucide-react"),u=require("./index39.cjs");function l(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,i.get?i:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const a=l(s);function p({className:e,...t}){return o.jsxRuntimeExports.jsx(a.Root,{"data-slot":"radio-group",className:u.cn("grid gap-8",e),...t})}function d({className:e,...t}){return o.jsxRuntimeExports.jsx(a.Item,{"data-slot":"radio-group-item",className:u.cn("aspect-square bg-white peer group h-16 w-16 rounded-full border border-gray-900/16 hover:bg-gray-900/8 active:bg-gray-900/16 disabled:cursor-not-allowed disabled:opacity-64 disabled:bg-white","data-[state=checked]:bg-white data-[state=checked]:border-purple-700 data-[state=checked]:hover:border-purple-800 data-[state=checked]:active:border-purple-900",e),...t,children:o.jsxRuntimeExports.jsx(a.Indicator,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:o.jsxRuntimeExports.jsx(c.CircleIcon,{className:"fill-purple-700 text-purple-700 group-hover:fill-purple-800 group-hover:text-purple-800 group-active:fill-purple-900 group-active:text-purple-900 absolute top-1/2 left-1/2 size-[10px] -translate-x-1/2 -translate-y-1/2"})})})}exports.RadioGroup=p;exports.RadioGroupItem=d;
2
- //# sourceMappingURL=index22.cjs.map
1
+ const e=require("./index2.cjs"),t=require("./index7.cjs"),n=require("./index10.cjs"),r=require("./index12.cjs"),i=require("./index21.cjs");let a=require("lucide-react"),o=require("react");o=e.__toESM(o,1);var s=n.default;function c({children:e,label:n,selectedLabel:c,trigger:l,i18n:u,value:d,onOpenChange:f,onApply:p,contentProps:m={},buttonProps:h={},clearable:g=!0,..._}){let[v,y]=o.default.useState(!1),[b,x]=o.default.useState(d||null),S=d?c?c(d):d.toString():n,C=(0,s.jsxs)(r.Button,{variant:d?`filled`:`outline`,intent:d?`filter`:`secondary`,size:`sm`,className:t.cn(`font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]`,{"pr-12":!!d}),...h,children:[S,g&&d&&(0,s.jsx)(a.LucideX,{className:`w-16 h-16 rounded hover:bg-purple-100 shrink-0`,onClick:e=>{e.preventDefault(),x(null),p?.(void 0)}})]});function w(){p?.(b??void 0),y(!1)}return(0,s.jsxs)(i.Popover,{open:v,onOpenChange:e=>{f?.(e),e||p?.(b??void 0),e&&x(d??null),y(e)},..._,children:[(0,s.jsx)(i.PopoverTrigger,{asChild:!0,children:l||C}),(0,s.jsx)(i.PopoverContent,{className:`w-full min-w-[200px]`,align:`start`,...m,children:(0,s.jsxs)(`div`,{children:[(0,s.jsx)(`div`,{onKeyDown:e=>{if(e.defaultPrevented||e.key!==`Enter`)return;let t=e.target;if(!t)return;let n=t.tagName,r=n===`INPUT`,i=n===`TEXTAREA`,a=n===`BUTTON`,o=t.isContentEditable;!r||i||a||o||(e.preventDefault(),e.stopPropagation(),w())},children:e({onFilterChange:x,filterValue:b})}),(0,s.jsxs)(`div`,{className:`w-full flex justify-between mt-16`,children:[g&&b&&u.clear&&(0,s.jsx)(r.Button,{variant:`link`,intent:`secondary`,size:`fit-content`,type:`button`,onClick:()=>x(null),children:u.clear}),u.apply&&(0,s.jsx)(r.Button,{className:`ml-auto`,variant:`link`,size:`fit-content`,type:`button`,onClick:e=>{e.preventDefault(),w()},children:u.apply})]})]})})]})}exports.Filter=c;
2
+ //# sourceMappingURL=index22.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index22.cjs","sources":["../src/RadioGroup/index.tsx"],"sourcesContent":["'use client'\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { CircleIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-8', className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'aspect-square bg-white peer group h-16 w-16 rounded-full border border-gray-900/16 hover:bg-gray-900/8 active:bg-gray-900/16 disabled:cursor-not-allowed disabled:opacity-64 disabled:bg-white',\n 'data-[state=checked]:bg-white data-[state=checked]:border-purple-700 data-[state=checked]:hover:border-purple-800 data-[state=checked]:active:border-purple-900',\n\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-purple-700 text-purple-700 group-hover:fill-purple-800 group-hover:text-purple-800 group-active:fill-purple-900 group-active:text-purple-900 absolute top-1/2 left-1/2 size-[10px] -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"],"names":["RadioGroup","className","props","jsx","RadioGroupPrimitive","cn","RadioGroupItem","CircleIcon"],"mappings":"yeAOA,SAASA,EAAW,CAClB,UAAAC,EACA,GAAGC,CACL,EAA0D,CACxD,OACEC,EAAAA,kBAAAA,IAACC,EAAoB,KAApB,CACC,YAAU,cACV,UAAWC,EAAAA,GAAG,aAAcJ,CAAS,EACpC,GAAGC,CAAA,CAAA,CAGV,CAEA,SAASI,EAAe,CACtB,UAAAL,EACA,GAAGC,CACL,EAA0D,CACxD,OACEC,EAAAA,kBAAAA,IAACC,EAAoB,KAApB,CACC,YAAU,mBACV,UAAWC,EAAAA,GACT,iMACA,kKAEAJ,CAAA,EAED,GAAGC,EAEJ,SAAAC,EAAAA,kBAAAA,IAACC,EAAoB,UAApB,CACC,YAAU,wBACV,UAAU,4CAEV,SAAAD,EAAAA,kBAAAA,IAACI,EAAAA,WAAA,CAAW,UAAU,2NAAA,CAA4N,CAAA,CAAA,CACpP,CAAA,CAGN"}
1
+ {"version":3,"file":"index22.cjs","names":[],"sources":["../src/Filter/index.tsx"],"sourcesContent":["import { LucideX } from 'lucide-react'\nimport React from 'react'\nimport { Button, ButtonProps } from '../Button'\nimport {\n Popover,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger\n} from '../Popover'\nimport { cn } from '../lib/utils'\n\ntype FilterPropsBase<T> = {\n i18n: {\n apply?: string\n clear?: string\n }\n value?: T\n onOpenChange?: (open: boolean) => void\n onApply: (value?: T) => void\n children: (props: {\n onFilterChange: (value: T | null) => void\n filterValue: T | null\n }) => React.ReactNode\n contentProps?: PopoverContentProps\n buttonProps?: ButtonProps\n clearable?: boolean\n}\n\ntype FilterPropsWithLabel<T> = FilterPropsBase<T> & {\n label: string\n selectedLabel?: (value: T) => React.ReactNode\n trigger?: never\n}\n\ntype FilterPropsWithTrigger<T> = FilterPropsBase<T> & {\n trigger: React.ReactNode\n label?: never\n selectedLabel?: never\n}\n\ntype FilterProps<T> = FilterPropsWithLabel<T> | FilterPropsWithTrigger<T>\n\nfunction Filter<T>({\n children,\n label,\n selectedLabel,\n trigger,\n i18n,\n value,\n onOpenChange,\n onApply,\n contentProps = {},\n buttonProps = {},\n clearable = true,\n ...props\n}: FilterProps<T>) {\n const [isOpen, setIsOpen] = React.useState(false)\n const [localValue, setLocalValue] = React.useState<T | null>(value || null)\n\n const filterLabel = value\n ? selectedLabel\n ? selectedLabel(value)\n : value.toString()\n : label\n\n const defaultTrigger = (\n <Button\n variant={value ? 'filled' : 'outline'}\n intent={value ? 'filter' : 'secondary'}\n size=\"sm\"\n className={cn(\n 'font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]',\n {\n 'pr-12': !!value\n }\n )}\n {...buttonProps}\n >\n {filterLabel}\n {clearable && value && (\n <LucideX\n className=\"w-16 h-16 rounded hover:bg-purple-100 shrink-0\"\n onClick={e => {\n e.preventDefault()\n setLocalValue(null)\n onApply?.(undefined)\n }}\n />\n )}\n </Button>\n )\n\n function handleApply() {\n onApply?.(localValue ?? undefined)\n setIsOpen(false)\n }\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={open => {\n onOpenChange?.(open)\n if (!open) onApply?.(localValue ?? undefined)\n if (open) setLocalValue(value ?? null)\n setIsOpen(open)\n }}\n {...props}\n >\n <PopoverTrigger asChild>{trigger || defaultTrigger}</PopoverTrigger>\n <PopoverContent\n className=\"w-full min-w-[200px]\"\n align=\"start\"\n {...contentProps}\n >\n <div>\n <div\n onKeyDown={e => {\n if (e.defaultPrevented) return\n if (e.key !== 'Enter') return\n const target = e.target as HTMLElement | null\n if (!target) return\n const tagName = target.tagName\n const isInput = tagName === 'INPUT'\n const isTextarea = tagName === 'TEXTAREA'\n const isButton = tagName === 'BUTTON'\n const isContentEditable = target.isContentEditable\n // Only apply on Enter from filter input fields, not from buttons,\n // textareas, or other interactive/contenteditable elements.\n if (!isInput || isTextarea || isButton || isContentEditable) {\n return\n }\n e.preventDefault()\n e.stopPropagation()\n handleApply()\n }}\n >\n {children({\n onFilterChange: setLocalValue,\n filterValue: localValue\n })}\n </div>\n <div className=\"w-full flex justify-between mt-16\">\n {clearable && localValue && i18n.clear && (\n <Button\n variant=\"link\"\n intent=\"secondary\"\n size=\"fit-content\"\n type=\"button\"\n onClick={() => setLocalValue(null)}\n >\n {i18n.clear}\n </Button>\n )}\n {i18n.apply && (\n <Button\n className=\"ml-auto\"\n variant=\"link\"\n size=\"fit-content\"\n type=\"button\"\n onClick={e => {\n e.preventDefault()\n handleApply()\n }}\n >\n {i18n.apply}\n </Button>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Filter }\nexport type { FilterProps }\n"],"mappings":"6NA0CA,SAAS,EAAU,CACjB,WACA,QACA,gBACA,UACA,OACA,QACA,eACA,UACA,eAAe,CAAC,EAChB,cAAc,CAAC,EACf,YAAY,GACZ,GAAG,GACc,CACjB,GAAM,CAAC,EAAQ,GAAa,EAAA,QAAM,SAAS,EAAK,EAC1C,CAAC,EAAY,GAAiB,EAAA,QAAM,SAAmB,GAAS,IAAI,EAEpE,EAAc,EAChB,EACE,EAAc,CAAK,EACnB,EAAM,SAAS,EACjB,EAEE,GACJ,EAAA,EAAA,MAAC,EAAA,OAAD,CACE,QAAS,EAAQ,SAAW,UAC5B,OAAQ,EAAQ,SAAW,YAC3B,KAAK,KACL,UAAW,EAAA,GACT,yEACA,CACE,QAAS,CAAC,CAAC,CACb,CACF,EACA,GAAI,WAVN,CAYG,EACA,GAAa,IACZ,EAAA,EAAA,KAAC,EAAA,QAAD,CACE,UAAU,iDACV,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAc,IAAI,EAClB,IAAU,IAAA,EAAS,CACrB,CACD,CAAA,CAEG,IAGV,SAAS,GAAc,CACrB,IAAU,GAAc,IAAA,EAAS,EACjC,EAAU,EAAK,CACjB,CAEA,OACE,EAAA,EAAA,MAAC,EAAA,QAAD,CACE,KAAM,EACN,aAAc,GAAQ,CACpB,IAAe,CAAI,EACd,GAAM,IAAU,GAAc,IAAA,EAAS,EACxC,GAAM,EAAc,GAAS,IAAI,EACrC,EAAU,CAAI,CAChB,EACA,GAAI,WARN,EAUE,EAAA,EAAA,KAAC,EAAA,eAAD,CAAgB,QAAA,YAAS,GAAW,CAA+B,CAAA,GACnE,EAAA,EAAA,KAAC,EAAA,eAAD,CACE,UAAU,uBACV,MAAM,QACN,GAAI,YAEJ,EAAA,EAAA,MAAC,MAAD,CAAA,SAAA,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,GAAK,CAEd,GADI,EAAE,kBACF,EAAE,MAAQ,QAAS,OACvB,IAAM,EAAS,EAAE,OACjB,GAAI,CAAC,EAAQ,OACb,IAAM,EAAU,EAAO,QACjB,EAAU,IAAY,QACtB,EAAa,IAAY,WACzB,EAAW,IAAY,SACvB,EAAoB,EAAO,kBAG7B,CAAC,GAAW,GAAc,GAAY,IAG1C,EAAE,eAAe,EACjB,EAAE,gBAAgB,EAClB,EAAY,EACd,WAEC,EAAS,CACR,eAAgB,EAChB,YAAa,CACf,CAAC,CACE,CAAA,GACL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,6CAAf,CACG,GAAa,GAAc,EAAK,QAC/B,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,QAAQ,OACR,OAAO,YACP,KAAK,cACL,KAAK,SACL,YAAe,EAAc,IAAI,WAEhC,EAAK,KACA,CAAA,EAET,EAAK,QACJ,EAAA,EAAA,KAAC,EAAA,OAAD,CACE,UAAU,UACV,QAAQ,OACR,KAAK,cACL,KAAK,SACL,QAAS,GAAK,CACZ,EAAE,eAAe,EACjB,EAAY,CACd,WAEC,EAAK,KACA,CAAA,CAEP,GACF,CAAA,CAAA,CACS,CAAA,CACT,GAEb"}
package/dist/index22.js CHANGED
@@ -1,47 +1,77 @@
1
- import { j as e } from "./index37.js";
2
- import * as a from "@radix-ui/react-radio-group";
3
- import { CircleIcon as i } from "lucide-react";
4
- import { cn as o } from "./index39.js";
5
- function s({
6
- className: r,
7
- ...t
8
- }) {
9
- return /* @__PURE__ */ e.jsx(
10
- a.Root,
11
- {
12
- "data-slot": "radio-group",
13
- className: o("grid gap-8", r),
14
- ...t
15
- }
16
- );
1
+ import { cn as e } from "./index7.js";
2
+ import { require_jsx_runtime as t } from "./index10.js";
3
+ import { Button as n } from "./index12.js";
4
+ import { Popover as r, PopoverContent as i, PopoverTrigger as a } from "./index21.js";
5
+ import { LucideX as o } from "lucide-react";
6
+ import s from "react";
7
+ //#region src/Filter/index.tsx
8
+ var c = t();
9
+ function l({ children: t, label: l, selectedLabel: u, trigger: d, i18n: f, value: p, onOpenChange: m, onApply: h, contentProps: g = {}, buttonProps: _ = {}, clearable: v = !0, ...y }) {
10
+ let [b, x] = s.useState(!1), [S, C] = s.useState(p || null), w = p ? u ? u(p) : p.toString() : l, T = /* @__PURE__ */ (0, c.jsxs)(n, {
11
+ variant: p ? "filled" : "outline",
12
+ intent: p ? "filter" : "secondary",
13
+ size: "sm",
14
+ className: e("font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]", { "pr-12": !!p }),
15
+ ..._,
16
+ children: [w, v && p && /* @__PURE__ */ (0, c.jsx)(o, {
17
+ className: "w-16 h-16 rounded hover:bg-purple-100 shrink-0",
18
+ onClick: (e) => {
19
+ e.preventDefault(), C(null), h?.(void 0);
20
+ }
21
+ })]
22
+ });
23
+ function E() {
24
+ h?.(S ?? void 0), x(!1);
25
+ }
26
+ return /* @__PURE__ */ (0, c.jsxs)(r, {
27
+ open: b,
28
+ onOpenChange: (e) => {
29
+ m?.(e), e || h?.(S ?? void 0), e && C(p ?? null), x(e);
30
+ },
31
+ ...y,
32
+ children: [/* @__PURE__ */ (0, c.jsx)(a, {
33
+ asChild: !0,
34
+ children: d || T
35
+ }), /* @__PURE__ */ (0, c.jsx)(i, {
36
+ className: "w-full min-w-[200px]",
37
+ align: "start",
38
+ ...g,
39
+ children: /* @__PURE__ */ (0, c.jsxs)("div", { children: [/* @__PURE__ */ (0, c.jsx)("div", {
40
+ onKeyDown: (e) => {
41
+ if (e.defaultPrevented || e.key !== "Enter") return;
42
+ let t = e.target;
43
+ if (!t) return;
44
+ let n = t.tagName, r = n === "INPUT", i = n === "TEXTAREA", a = n === "BUTTON", o = t.isContentEditable;
45
+ !r || i || a || o || (e.preventDefault(), e.stopPropagation(), E());
46
+ },
47
+ children: t({
48
+ onFilterChange: C,
49
+ filterValue: S
50
+ })
51
+ }), /* @__PURE__ */ (0, c.jsxs)("div", {
52
+ className: "w-full flex justify-between mt-16",
53
+ children: [v && S && f.clear && /* @__PURE__ */ (0, c.jsx)(n, {
54
+ variant: "link",
55
+ intent: "secondary",
56
+ size: "fit-content",
57
+ type: "button",
58
+ onClick: () => C(null),
59
+ children: f.clear
60
+ }), f.apply && /* @__PURE__ */ (0, c.jsx)(n, {
61
+ className: "ml-auto",
62
+ variant: "link",
63
+ size: "fit-content",
64
+ type: "button",
65
+ onClick: (e) => {
66
+ e.preventDefault(), E();
67
+ },
68
+ children: f.apply
69
+ })]
70
+ })] })
71
+ })]
72
+ });
17
73
  }
18
- function u({
19
- className: r,
20
- ...t
21
- }) {
22
- return /* @__PURE__ */ e.jsx(
23
- a.Item,
24
- {
25
- "data-slot": "radio-group-item",
26
- className: o(
27
- "aspect-square bg-white peer group h-16 w-16 rounded-full border border-gray-900/16 hover:bg-gray-900/8 active:bg-gray-900/16 disabled:cursor-not-allowed disabled:opacity-64 disabled:bg-white",
28
- "data-[state=checked]:bg-white data-[state=checked]:border-purple-700 data-[state=checked]:hover:border-purple-800 data-[state=checked]:active:border-purple-900",
29
- r
30
- ),
31
- ...t,
32
- children: /* @__PURE__ */ e.jsx(
33
- a.Indicator,
34
- {
35
- "data-slot": "radio-group-indicator",
36
- className: "relative flex items-center justify-center",
37
- children: /* @__PURE__ */ e.jsx(i, { className: "fill-purple-700 text-purple-700 group-hover:fill-purple-800 group-hover:text-purple-800 group-active:fill-purple-900 group-active:text-purple-900 absolute top-1/2 left-1/2 size-[10px] -translate-x-1/2 -translate-y-1/2" })
38
- }
39
- )
40
- }
41
- );
42
- }
43
- export {
44
- s as RadioGroup,
45
- u as RadioGroupItem
46
- };
47
- //# sourceMappingURL=index22.js.map
74
+ //#endregion
75
+ export { l as Filter };
76
+
77
+ //# sourceMappingURL=index22.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index22.js","sources":["../src/RadioGroup/index.tsx"],"sourcesContent":["'use client'\n\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group'\nimport { CircleIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-8', className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'aspect-square bg-white peer group h-16 w-16 rounded-full border border-gray-900/16 hover:bg-gray-900/8 active:bg-gray-900/16 disabled:cursor-not-allowed disabled:opacity-64 disabled:bg-white',\n 'data-[state=checked]:bg-white data-[state=checked]:border-purple-700 data-[state=checked]:hover:border-purple-800 data-[state=checked]:active:border-purple-900',\n\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-purple-700 text-purple-700 group-hover:fill-purple-800 group-hover:text-purple-800 group-active:fill-purple-900 group-active:text-purple-900 absolute top-1/2 left-1/2 size-[10px] -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n"],"names":["RadioGroup","className","props","jsx","RadioGroupPrimitive","cn","RadioGroupItem","CircleIcon"],"mappings":";;;;AAOA,SAASA,EAAW;AAAA,EAClB,WAAAC;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACEC,gBAAAA,EAAAA;AAAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC,EAAG,cAAcJ,CAAS;AAAA,MACpC,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAe;AAAA,EACtB,WAAAL;AAAA,EACA,GAAGC;AACL,GAA0D;AACxD,SACEC,gBAAAA,EAAAA;AAAAA,IAACC,EAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QAEAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAAC,gBAAAA,EAAAA;AAAAA,QAACC,EAAoB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,UAAAD,gBAAAA,EAAAA,IAACI,GAAA,EAAW,WAAU,4NAAA,CAA4N;AAAA,QAAA;AAAA,MAAA;AAAA,IACpP;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index22.js","names":[],"sources":["../src/Filter/index.tsx"],"sourcesContent":["import { LucideX } from 'lucide-react'\nimport React from 'react'\nimport { Button, ButtonProps } from '../Button'\nimport {\n Popover,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger\n} from '../Popover'\nimport { cn } from '../lib/utils'\n\ntype FilterPropsBase<T> = {\n i18n: {\n apply?: string\n clear?: string\n }\n value?: T\n onOpenChange?: (open: boolean) => void\n onApply: (value?: T) => void\n children: (props: {\n onFilterChange: (value: T | null) => void\n filterValue: T | null\n }) => React.ReactNode\n contentProps?: PopoverContentProps\n buttonProps?: ButtonProps\n clearable?: boolean\n}\n\ntype FilterPropsWithLabel<T> = FilterPropsBase<T> & {\n label: string\n selectedLabel?: (value: T) => React.ReactNode\n trigger?: never\n}\n\ntype FilterPropsWithTrigger<T> = FilterPropsBase<T> & {\n trigger: React.ReactNode\n label?: never\n selectedLabel?: never\n}\n\ntype FilterProps<T> = FilterPropsWithLabel<T> | FilterPropsWithTrigger<T>\n\nfunction Filter<T>({\n children,\n label,\n selectedLabel,\n trigger,\n i18n,\n value,\n onOpenChange,\n onApply,\n contentProps = {},\n buttonProps = {},\n clearable = true,\n ...props\n}: FilterProps<T>) {\n const [isOpen, setIsOpen] = React.useState(false)\n const [localValue, setLocalValue] = React.useState<T | null>(value || null)\n\n const filterLabel = value\n ? selectedLabel\n ? selectedLabel(value)\n : value.toString()\n : label\n\n const defaultTrigger = (\n <Button\n variant={value ? 'filled' : 'outline'}\n intent={value ? 'filter' : 'secondary'}\n size=\"sm\"\n className={cn(\n 'font-normal flex items-center whitespace-nowrap gap-x-4 rounded-[12px]',\n {\n 'pr-12': !!value\n }\n )}\n {...buttonProps}\n >\n {filterLabel}\n {clearable && value && (\n <LucideX\n className=\"w-16 h-16 rounded hover:bg-purple-100 shrink-0\"\n onClick={e => {\n e.preventDefault()\n setLocalValue(null)\n onApply?.(undefined)\n }}\n />\n )}\n </Button>\n )\n\n function handleApply() {\n onApply?.(localValue ?? undefined)\n setIsOpen(false)\n }\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={open => {\n onOpenChange?.(open)\n if (!open) onApply?.(localValue ?? undefined)\n if (open) setLocalValue(value ?? null)\n setIsOpen(open)\n }}\n {...props}\n >\n <PopoverTrigger asChild>{trigger || defaultTrigger}</PopoverTrigger>\n <PopoverContent\n className=\"w-full min-w-[200px]\"\n align=\"start\"\n {...contentProps}\n >\n <div>\n <div\n onKeyDown={e => {\n if (e.defaultPrevented) return\n if (e.key !== 'Enter') return\n const target = e.target as HTMLElement | null\n if (!target) return\n const tagName = target.tagName\n const isInput = tagName === 'INPUT'\n const isTextarea = tagName === 'TEXTAREA'\n const isButton = tagName === 'BUTTON'\n const isContentEditable = target.isContentEditable\n // Only apply on Enter from filter input fields, not from buttons,\n // textareas, or other interactive/contenteditable elements.\n if (!isInput || isTextarea || isButton || isContentEditable) {\n return\n }\n e.preventDefault()\n e.stopPropagation()\n handleApply()\n }}\n >\n {children({\n onFilterChange: setLocalValue,\n filterValue: localValue\n })}\n </div>\n <div className=\"w-full flex justify-between mt-16\">\n {clearable && localValue && i18n.clear && (\n <Button\n variant=\"link\"\n intent=\"secondary\"\n size=\"fit-content\"\n type=\"button\"\n onClick={() => setLocalValue(null)}\n >\n {i18n.clear}\n </Button>\n )}\n {i18n.apply && (\n <Button\n className=\"ml-auto\"\n variant=\"link\"\n size=\"fit-content\"\n type=\"button\"\n onClick={e => {\n e.preventDefault()\n handleApply()\n }}\n >\n {i18n.apply}\n </Button>\n )}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n\nexport { Filter }\nexport type { FilterProps }\n"],"mappings":";;;;;;;;AA0CA,SAAS,EAAU,EACjB,aACA,UACA,kBACA,YACA,SACA,UACA,iBACA,YACA,kBAAe,CAAC,GAChB,iBAAc,CAAC,GACf,eAAY,IACZ,GAAG,KACc;CACjB,IAAM,CAAC,GAAQ,KAAa,EAAM,SAAS,EAAK,GAC1C,CAAC,GAAY,KAAiB,EAAM,SAAmB,KAAS,IAAI,GAEpE,IAAc,IAChB,IACE,EAAc,CAAK,IACnB,EAAM,SAAS,IACjB,GAEE,IACJ,iBAAA,GAAA,EAAA,MAAC,GAAD;EACE,SAAS,IAAQ,WAAW;EAC5B,QAAQ,IAAQ,WAAW;EAC3B,MAAK;EACL,WAAW,EACT,0EACA,EACE,SAAS,CAAC,CAAC,EACb,CACF;EACA,GAAI;YAVN,CAYG,GACA,KAAa,KACZ,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,WAAU;GACV,UAAS,MAAK;IAGZ,AAFA,EAAE,eAAe,GACjB,EAAc,IAAI,GAClB,IAAU,KAAA,CAAS;GACrB;EACD,CAAA,CAEG;;CAGV,SAAS,IAAc;EAErB,AADA,IAAU,KAAc,KAAA,CAAS,GACjC,EAAU,EAAK;CACjB;CAEA,OACE,iBAAA,GAAA,EAAA,MAAC,GAAD;EACE,MAAM;EACN,eAAc,MAAQ;GAIpB,AAHA,IAAe,CAAI,GACd,KAAM,IAAU,KAAc,KAAA,CAAS,GACxC,KAAM,EAAc,KAAS,IAAI,GACrC,EAAU,CAAI;EAChB;EACA,GAAI;YARN,CAUE,iBAAA,GAAA,EAAA,KAAC,GAAD;GAAgB,SAAA;aAAS,KAAW;EAA+B,CAAA,GACnE,iBAAA,GAAA,EAAA,KAAC,GAAD;GACE,WAAU;GACV,OAAM;GACN,GAAI;aAEJ,iBAAA,GAAA,EAAA,MAAC,OAAD,EAAA,UAAA,CACE,iBAAA,GAAA,EAAA,KAAC,OAAD;IACE,YAAW,MAAK;KAEd,IADI,EAAE,oBACF,EAAE,QAAQ,SAAS;KACvB,IAAM,IAAS,EAAE;KACjB,IAAI,CAAC,GAAQ;KACb,IAAM,IAAU,EAAO,SACjB,IAAU,MAAY,SACtB,IAAa,MAAY,YACzB,IAAW,MAAY,UACvB,IAAoB,EAAO;KAG7B,CAAC,KAAW,KAAc,KAAY,MAG1C,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClB,EAAY;IACd;cAEC,EAAS;KACR,gBAAgB;KAChB,aAAa;IACf,CAAC;GACE,CAAA,GACL,iBAAA,GAAA,EAAA,MAAC,OAAD;IAAK,WAAU;cAAf,CACG,KAAa,KAAc,EAAK,SAC/B,iBAAA,GAAA,EAAA,KAAC,GAAD;KACE,SAAQ;KACR,QAAO;KACP,MAAK;KACL,MAAK;KACL,eAAe,EAAc,IAAI;eAEhC,EAAK;IACA,CAAA,GAET,EAAK,SACJ,iBAAA,GAAA,EAAA,KAAC,GAAD;KACE,WAAU;KACV,SAAQ;KACR,MAAK;KACL,MAAK;KACL,UAAS,MAAK;MAEZ,AADA,EAAE,eAAe,GACjB,EAAY;KACd;eAEC,EAAK;IACA,CAAA,CAEP;KACF,EAAA,CAAA;EACS,CAAA,CACT;;AAEb"}
package/dist/index23.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index37.cjs"),d=require("@radix-ui/react-select"),l=require("lucide-react"),n=require("./index39.cjs");function u(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(s,o,r.get?r:{enumerable:!0,get:()=>e[o]})}}return s.default=e,Object.freeze(s)}const a=u(d);function x({...e}){return t.jsxRuntimeExports.jsx(a.Root,{"data-slot":"select",...e})}function p({...e}){return t.jsxRuntimeExports.jsx(a.Group,{"data-slot":"select-group",...e})}function m({...e}){return t.jsxRuntimeExports.jsx(a.Value,{"data-slot":"select-value",...e})}function f({className:e,children:s,...o}){return t.jsxRuntimeExports.jsxs(a.Trigger,{"data-slot":"select-trigger",className:n.cn("border border-gray-900/24 data-[placeholder]:text-gray-700 [&_svg:not([class*='text-'])]:text-gray-700","focus-visible:outline-none focus:shadow-field-active","flex h-[36px] w-full items-center justify-between rounded bg-white pl-16 pr-12 text-left whitespace-nowrap transition-[color,box-shadow]","disabled:cursor-not-allowed disabled:opacity-64 disabled:shadow-none","*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-8","[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16","hover:shadow-field-hover","active:shadow-field-active","data-[state=open]:shadow-field-active",e),...o,children:[s,t.jsxRuntimeExports.jsx(a.Icon,{asChild:!0,children:t.jsxRuntimeExports.jsx(l.ChevronDownIcon,{className:"size-16 opacity-64 shrink-0 ml-4"})})]})}function j({className:e,children:s,position:o="popper",...r}){return t.jsxRuntimeExports.jsx(a.Portal,{children:t.jsxRuntimeExports.jsxs(a.Content,{"data-slot":"select-content",className:n.cn("bg-white","data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2","data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded border shadow-200",o==="popper"&&"data-[side=bottom]:translate-y-4 data-[side=left]:-translate-x-4 data-[side=right]:translate-x-4 data-[side=top]:-translate-y-4",e),position:o,...r,children:[t.jsxRuntimeExports.jsx(i,{}),t.jsxRuntimeExports.jsx(a.Viewport,{className:n.cn(o==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-4"),children:s}),t.jsxRuntimeExports.jsx(c,{})]})})}function h({className:e,...s}){return t.jsxRuntimeExports.jsx(a.Label,{"data-slot":"select-label",className:n.cn("px-16 py-8 pr-8 font-semibold",e),...s})}function g({className:e,children:s,...o}){return t.jsxRuntimeExports.jsxs(a.Item,{"data-slot":"select-item",className:n.cn("relative flex w-full cursor-default items-center gap-8 py-8 pl-16 pr-32 outline-none select-none","hover:bg-gray-200","data-[disabled]:pointer-events-none data-[disabled]:opacity-64 [&_svg]:pointer-events-none [&_svg]:shrink-0","data-[state=checked]:bg-purple-800 data-[state=checked]:text-white hover:data-[state=checked]:bg-purple-800","[&_svg:not([class*='size-'])]:size-16 *:[span]:last:flex *:[span]:last:flex-col *:[span]:last:gap-8",e),...o,children:[t.jsxRuntimeExports.jsx("span",{className:"absolute right-8 top-8 flex size-16 items-center justify-center",children:t.jsxRuntimeExports.jsx(a.ItemIndicator,{children:t.jsxRuntimeExports.jsx(l.CheckIcon,{className:"size-16"})})}),t.jsxRuntimeExports.jsx(a.ItemText,{children:s})]})}function v({className:e,...s}){return t.jsxRuntimeExports.jsx(a.Separator,{"data-slot":"select-separator",className:n.cn("bg-gray-900/24 pointer-events-none -mx-4 my-4 h-px",e),...s})}function i({className:e,...s}){return t.jsxRuntimeExports.jsx(a.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:n.cn("flex cursor-default items-center justify-center py-4",e),...s,children:t.jsxRuntimeExports.jsx(l.ChevronUpIcon,{className:"size-16"})})}function c({className:e,...s}){return t.jsxRuntimeExports.jsx(a.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:n.cn("flex cursor-default items-center justify-center py-4",e),...s,children:t.jsxRuntimeExports.jsx(l.ChevronDownIcon,{className:"size-16"})})}exports.Select=x;exports.SelectContent=j;exports.SelectGroup=p;exports.SelectItem=g;exports.SelectLabel=h;exports.SelectScrollDownButton=c;exports.SelectScrollUpButton=i;exports.SelectSeparator=v;exports.SelectTrigger=f;exports.SelectValue=m;
2
- //# sourceMappingURL=index23.cjs.map
1
+ const e=require("./index2.cjs"),t=require("./index5.cjs"),n=require("./index7.cjs"),r=require("./index10.cjs");let i=require("lucide-react"),a=require("react");a=e.__toESM(a,1);var o=r.default,s=t.cva(``,{variants:{variant:{white:`to-white`,gray:`to-gray-50`}},defaultVariants:{variant:`gray`}}),c=t.cva(``,{variants:{variant:{white:`bg-white`,gray:`bg-gray-50`}},defaultVariants:{variant:`gray`}});function l({children:e,className:t,variant:r}){let l=a.default.useRef(null),[u,d]=a.default.useState(!1),[f,p]=a.default.useState(!1),m=a.default.useCallback(()=>{if(!l.current)return;let{scrollLeft:e,scrollWidth:t,clientWidth:n}=l.current;d(e>0),p(e+n<t-5)},[l]);return a.default.useEffect(()=>{m();let e=n.debounce(m,100);return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[m]),(0,o.jsxs)(`div`,{className:`relative flex overflow-hidden`,children:[(0,o.jsxs)(`div`,{className:n.cn(`absolute left-0 top-0 h-full flex items-center`,{hidden:!u}),children:[(0,o.jsx)(i.ChevronLeft,{size:16,className:n.cn(`text-gray-600 h-full cursor-pointer`,c({variant:r})),onClick:()=>l.current?.scrollBy({left:-100,behavior:`smooth`})}),(0,o.jsx)(`div`,{className:n.cn(`w-[50px] h-full bg-linear-to-l from-transparent`,s({variant:r}))})]}),(0,o.jsx)(`div`,{ref:l,onScroll:m,className:n.cn(`overflow-scroll no-scrollbar`,t),children:e}),(0,o.jsxs)(`div`,{className:n.cn(`absolute right-0 top-0 h-full w-fit flex items-center justify-end`,{hidden:!f}),children:[(0,o.jsx)(`div`,{className:n.cn(`w-[50px] h-full bg-linear-to-r from-transparent`,s({variant:r}))}),(0,o.jsx)(i.ChevronRight,{size:16,className:n.cn(`text-gray-600 h-full cursor-pointer`,c({variant:r})),onClick:()=>l.current?.scrollBy({left:100,behavior:`smooth`})})]})]})}exports.GradientScroll=l;
2
+ //# sourceMappingURL=index23.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index23.cjs","sources":["../src/Select/index.tsx"],"sourcesContent":["'use client'\n\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from 'lucide-react'\nimport * as React from 'react'\nimport { cn } from '../lib/utils'\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: 'sm' | 'default'\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n className={cn(\n \"border border-gray-900/24 data-[placeholder]:text-gray-700 [&_svg:not([class*='text-'])]:text-gray-700\",\n 'focus-visible:outline-none focus:shadow-field-active',\n 'flex h-[36px] w-full items-center justify-between rounded bg-white pl-16 pr-12 text-left whitespace-nowrap transition-[color,box-shadow]',\n 'disabled:cursor-not-allowed disabled:opacity-64 disabled:shadow-none',\n '*:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-8',\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-16\",\n 'hover:shadow-field-hover',\n 'active:shadow-field-active',\n 'data-[state=open]:shadow-field-active',\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-16 opacity-64 shrink-0 ml-4\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n 'bg-white',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2',\n 'data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n 'relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded border shadow-200',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-4 data-[side=left]:-translate-x-4 data-[side=right]:translate-x-4 data-[side=top]:-translate-y-4',\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-4'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-16 py-8 pr-8 font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n 'relative flex w-full cursor-default items-center gap-8 py-8 pl-16 pr-32 outline-none select-none',\n 'hover:bg-gray-200',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-64 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n 'data-[state=checked]:bg-purple-800 data-[state=checked]:text-white hover:data-[state=checked]:bg-purple-800',\n \"[&_svg:not([class*='size-'])]:size-16 *:[span]:last:flex *:[span]:last:flex-col *:[span]:last:gap-8\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-8 top-8 flex size-16 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-16\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\n 'bg-gray-900/24 pointer-events-none -mx-4 my-4 h-px',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-4',\n className\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-16\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n 'flex cursor-default items-center justify-center py-4',\n className\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-16\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue\n}\n"],"names":["Select","props","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","jsxs","cn","jsx","ChevronDownIcon","SelectContent","position","SelectScrollUpButton","SelectScrollDownButton","SelectLabel","SelectItem","CheckIcon","SelectSeparator","ChevronUpIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index23.cjs","names":[],"sources":["../src/FilterBar/GradientScroll.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport React from 'react'\nimport { cn, debounce } from '../lib/utils'\n\nexport const gradientVariants = cva('', {\n variants: {\n variant: {\n white: 'to-white',\n gray: 'to-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\nexport const backgroundVariants = cva('', {\n variants: {\n variant: {\n white: 'bg-white',\n gray: 'bg-gray-50'\n }\n },\n defaultVariants: {\n variant: 'gray'\n }\n})\n\ninterface GradientScrollProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof gradientVariants> {}\n\nexport function GradientScroll({\n children,\n className,\n variant\n}: GradientScrollProps) {\n const scrollableRef = React.useRef<HTMLDivElement>(null)\n const [leftArrowVisible, setLeftArrowVisible] = React.useState(false)\n const [rightArrowVisible, setRightArrowVisible] = React.useState(false)\n\n const handleScroll = React.useCallback(() => {\n if (!scrollableRef.current) return\n\n const { scrollLeft, scrollWidth, clientWidth } = scrollableRef.current\n setLeftArrowVisible(scrollLeft > 0)\n setRightArrowVisible(scrollLeft + clientWidth < scrollWidth - 5)\n }, [scrollableRef])\n\n React.useEffect(() => {\n handleScroll()\n\n const debouncedHandleScroll = debounce(handleScroll, 100)\n window.addEventListener('resize', debouncedHandleScroll)\n return () => {\n window.removeEventListener('resize', debouncedHandleScroll)\n }\n }, [handleScroll])\n\n return (\n <div className=\"relative flex overflow-hidden\">\n <div\n className={cn('absolute left-0 top-0 h-full flex items-center', {\n hidden: !leftArrowVisible\n })}\n >\n <ChevronLeft\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: -100, behavior: 'smooth' })\n }\n />\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-l from-transparent',\n gradientVariants({ variant })\n )}\n />\n </div>\n <div\n ref={scrollableRef}\n onScroll={handleScroll}\n className={cn('overflow-scroll no-scrollbar', className)}\n >\n {children}\n </div>\n <div\n className={cn(\n 'absolute right-0 top-0 h-full w-fit flex items-center justify-end',\n { hidden: !rightArrowVisible }\n )}\n >\n <div\n className={cn(\n 'w-[50px] h-full bg-linear-to-r from-transparent',\n gradientVariants({ variant })\n )}\n />\n <ChevronRight\n size={16}\n className={cn(\n 'text-gray-600 h-full cursor-pointer',\n backgroundVariants({ variant })\n )}\n onClick={() =>\n scrollableRef.current?.scrollBy({ left: 100, behavior: 'smooth' })\n }\n />\n </div>\n </div>\n )\n}\n"],"mappings":"iMAKa,EAAmB,EAAA,IAAI,GAAI,CACtC,SAAU,CACR,QAAS,CACP,MAAO,WACP,KAAM,YACR,CACF,EACA,gBAAiB,CACf,QAAS,MACX,CACF,CAAC,EAEY,EAAqB,EAAA,IAAI,GAAI,CACxC,SAAU,CACR,QAAS,CACP,MAAO,WACP,KAAM,YACR,CACF,EACA,gBAAiB,CACf,QAAS,MACX,CACF,CAAC,EAMD,SAAgB,EAAe,CAC7B,WACA,YACA,WACsB,CACtB,IAAM,EAAgB,EAAA,QAAM,OAAuB,IAAI,EACjD,CAAC,EAAkB,GAAuB,EAAA,QAAM,SAAS,EAAK,EAC9D,CAAC,EAAmB,GAAwB,EAAA,QAAM,SAAS,EAAK,EAEhE,EAAe,EAAA,QAAM,gBAAkB,CAC3C,GAAI,CAAC,EAAc,QAAS,OAE5B,GAAM,CAAE,aAAY,cAAa,eAAgB,EAAc,QAC/D,EAAoB,EAAa,CAAC,EAClC,EAAqB,EAAa,EAAc,EAAc,CAAC,CACjE,EAAG,CAAC,CAAa,CAAC,EAYlB,OAVA,EAAA,QAAM,cAAgB,CACpB,EAAa,EAEb,IAAM,EAAwB,EAAA,SAAS,EAAc,GAAG,EAExD,OADA,OAAO,iBAAiB,SAAU,CAAqB,MAC1C,CACX,OAAO,oBAAoB,SAAU,CAAqB,CAC5D,CACF,EAAG,CAAC,CAAY,CAAC,GAGf,EAAA,EAAA,MAAC,MAAD,CAAK,UAAU,yCAAf,EACE,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,EAAA,GAAG,iDAAkD,CAC9D,OAAQ,CAAC,CACX,CAAC,WAHH,EAKE,EAAA,EAAA,KAAC,EAAA,YAAD,CACE,KAAM,GACN,UAAW,EAAA,GACT,sCACA,EAAmB,CAAE,SAAQ,CAAC,CAChC,EACA,YACE,EAAc,SAAS,SAAS,CAAE,KAAM,KAAM,SAAU,QAAS,CAAC,CAErE,CAAA,GACD,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,kDACA,EAAiB,CAAE,SAAQ,CAAC,CAC9B,CACD,CAAA,CACE,KACL,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,SAAU,EACV,UAAW,EAAA,GAAG,+BAAgC,CAAS,EAEtD,UACE,CAAA,GACL,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,EAAA,GACT,oEACA,CAAE,OAAQ,CAAC,CAAkB,CAC/B,WAJF,EAME,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,EAAA,GACT,kDACA,EAAiB,CAAE,SAAQ,CAAC,CAC9B,CACD,CAAA,GACD,EAAA,EAAA,KAAC,EAAA,aAAD,CACE,KAAM,GACN,UAAW,EAAA,GACT,sCACA,EAAmB,CAAE,SAAQ,CAAC,CAChC,EACA,YACE,EAAc,SAAS,SAAS,CAAE,KAAM,IAAK,SAAU,QAAS,CAAC,CAEpE,CAAA,CACE,GACF,GAET"}