@salesmind-ai/design-system 0.3.0 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/README.md +32 -2
  2. package/dist/admin/index.cjs +68 -2928
  3. package/dist/admin/index.cjs.map +1 -1
  4. package/dist/admin/index.js +5 -2915
  5. package/dist/admin/index.js.map +1 -1
  6. package/dist/blog/index.cjs +53 -1064
  7. package/dist/blog/index.cjs.map +1 -1
  8. package/dist/blog/index.js +8 -1054
  9. package/dist/blog/index.js.map +1 -1
  10. package/dist/charts/index.cjs +46 -2694
  11. package/dist/charts/index.cjs.map +1 -1
  12. package/dist/charts/index.js +3 -2680
  13. package/dist/charts/index.js.map +1 -1
  14. package/dist/chunk-2GARWEJK.js +17 -0
  15. package/dist/chunk-2GARWEJK.js.map +1 -0
  16. package/dist/chunk-3NKRFUAR.js +37 -0
  17. package/dist/chunk-3NKRFUAR.js.map +1 -0
  18. package/dist/chunk-3TGSIILM.cjs +201 -0
  19. package/dist/chunk-3TGSIILM.cjs.map +1 -0
  20. package/dist/chunk-4GM5BGBN.cjs +801 -0
  21. package/dist/chunk-4GM5BGBN.cjs.map +1 -0
  22. package/dist/chunk-5LGDEZWY.cjs +2434 -0
  23. package/dist/chunk-5LGDEZWY.cjs.map +1 -0
  24. package/dist/chunk-6H4DSTXR.js +786 -0
  25. package/dist/chunk-6H4DSTXR.js.map +1 -0
  26. package/dist/chunk-6UNG76Y2.js +153 -0
  27. package/dist/chunk-6UNG76Y2.js.map +1 -0
  28. package/dist/chunk-7PX2AZ6Y.js +39 -0
  29. package/dist/chunk-7PX2AZ6Y.js.map +1 -0
  30. package/dist/chunk-B6AVAX4F.js +1415 -0
  31. package/dist/chunk-B6AVAX4F.js.map +1 -0
  32. package/dist/chunk-BILT5KD3.js +264 -0
  33. package/dist/chunk-BILT5KD3.js.map +1 -0
  34. package/dist/chunk-C2BCDNAV.js +24 -0
  35. package/dist/chunk-C2BCDNAV.js.map +1 -0
  36. package/dist/chunk-CH42VPWE.cjs +421 -0
  37. package/dist/chunk-CH42VPWE.cjs.map +1 -0
  38. package/dist/chunk-CJ2MKVAF.cjs +46 -0
  39. package/dist/chunk-CJ2MKVAF.cjs.map +1 -0
  40. package/dist/chunk-DP74LUXG.cjs +98 -0
  41. package/dist/chunk-DP74LUXG.cjs.map +1 -0
  42. package/dist/chunk-E7D6EKJ4.cjs +44 -0
  43. package/dist/chunk-E7D6EKJ4.cjs.map +1 -0
  44. package/dist/chunk-ECXBTUH6.cjs +584 -0
  45. package/dist/chunk-ECXBTUH6.cjs.map +1 -0
  46. package/dist/chunk-EFRAP5ES.js +157 -0
  47. package/dist/chunk-EFRAP5ES.js.map +1 -0
  48. package/dist/chunk-F6YYWMME.js +485 -0
  49. package/dist/chunk-F6YYWMME.js.map +1 -0
  50. package/dist/chunk-FAFAP4L5.js +183 -0
  51. package/dist/chunk-FAFAP4L5.js.map +1 -0
  52. package/dist/chunk-GUZIMHWS.js +1608 -0
  53. package/dist/chunk-GUZIMHWS.js.map +1 -0
  54. package/dist/chunk-H2Y6BSTL.cjs +69 -0
  55. package/dist/chunk-H2Y6BSTL.cjs.map +1 -0
  56. package/dist/chunk-HN4PHABT.js +126 -0
  57. package/dist/chunk-HN4PHABT.js.map +1 -0
  58. package/dist/chunk-HRENHNDJ.js +211 -0
  59. package/dist/chunk-HRENHNDJ.js.map +1 -0
  60. package/dist/chunk-I75BFEYT.cjs +2561 -0
  61. package/dist/chunk-I75BFEYT.cjs.map +1 -0
  62. package/dist/chunk-IFRATNLU.js +562 -0
  63. package/dist/chunk-IFRATNLU.js.map +1 -0
  64. package/dist/chunk-IYPXJ6YC.cjs +69 -0
  65. package/dist/chunk-IYPXJ6YC.cjs.map +1 -0
  66. package/dist/chunk-JPJN4YBC.js +409 -0
  67. package/dist/chunk-JPJN4YBC.js.map +1 -0
  68. package/dist/chunk-KBA2LFBG.js +62 -0
  69. package/dist/chunk-KBA2LFBG.js.map +1 -0
  70. package/dist/chunk-KCKUSU2M.cjs +166 -0
  71. package/dist/chunk-KCKUSU2M.cjs.map +1 -0
  72. package/dist/chunk-KJ2OXQF4.js +287 -0
  73. package/dist/chunk-KJ2OXQF4.js.map +1 -0
  74. package/dist/chunk-KNQEIU7O.cjs +1202 -0
  75. package/dist/chunk-KNQEIU7O.cjs.map +1 -0
  76. package/dist/chunk-KVGSVGRK.cjs +569 -0
  77. package/dist/chunk-KVGSVGRK.cjs.map +1 -0
  78. package/dist/chunk-L352JRV6.cjs +105 -0
  79. package/dist/chunk-L352JRV6.cjs.map +1 -0
  80. package/dist/chunk-LJADZITX.cjs +298 -0
  81. package/dist/chunk-LJADZITX.cjs.map +1 -0
  82. package/dist/chunk-LMJPWXTZ.cjs +194 -0
  83. package/dist/chunk-LMJPWXTZ.cjs.map +1 -0
  84. package/dist/chunk-LOWEAQST.js +701 -0
  85. package/dist/chunk-LOWEAQST.js.map +1 -0
  86. package/dist/chunk-MDB2WCRQ.cjs +137 -0
  87. package/dist/chunk-MDB2WCRQ.cjs.map +1 -0
  88. package/dist/chunk-MQDEE7HC.cjs +283 -0
  89. package/dist/chunk-MQDEE7HC.cjs.map +1 -0
  90. package/dist/chunk-MQRB634A.cjs +34 -0
  91. package/dist/chunk-MQRB634A.cjs.map +1 -0
  92. package/dist/chunk-MTI27RDV.js +185 -0
  93. package/dist/chunk-MTI27RDV.js.map +1 -0
  94. package/dist/chunk-MU6GW5ZV.js +2317 -0
  95. package/dist/chunk-MU6GW5ZV.js.map +1 -0
  96. package/dist/chunk-NN3TUHIH.js +28 -0
  97. package/dist/chunk-NN3TUHIH.js.map +1 -0
  98. package/dist/chunk-NT4LBP7D.cjs +111 -0
  99. package/dist/chunk-NT4LBP7D.cjs.map +1 -0
  100. package/dist/chunk-OLV7OD3X.cjs +502 -0
  101. package/dist/chunk-OLV7OD3X.cjs.map +1 -0
  102. package/dist/chunk-OXNXEQY7.js +2538 -0
  103. package/dist/chunk-OXNXEQY7.js.map +1 -0
  104. package/dist/chunk-P5BOFE5A.js +546 -0
  105. package/dist/chunk-P5BOFE5A.js.map +1 -0
  106. package/dist/chunk-Q2MFGYTE.cjs +1449 -0
  107. package/dist/chunk-Q2MFGYTE.cjs.map +1 -0
  108. package/dist/chunk-Q75DBVDY.cjs +68 -0
  109. package/dist/chunk-Q75DBVDY.cjs.map +1 -0
  110. package/dist/chunk-REQ5Q6ZI.js +1022 -0
  111. package/dist/chunk-REQ5Q6ZI.js.map +1 -0
  112. package/dist/chunk-SICKWUWB.js +62 -0
  113. package/dist/chunk-SICKWUWB.js.map +1 -0
  114. package/dist/chunk-T343CCH5.js +1190 -0
  115. package/dist/chunk-T343CCH5.js.map +1 -0
  116. package/dist/chunk-TEC62D4A.cjs +1624 -0
  117. package/dist/chunk-TEC62D4A.cjs.map +1 -0
  118. package/dist/chunk-TW5JB35D.js +2122 -0
  119. package/dist/chunk-TW5JB35D.js.map +1 -0
  120. package/dist/chunk-VC5LMUVQ.cjs +20 -0
  121. package/dist/chunk-VC5LMUVQ.cjs.map +1 -0
  122. package/dist/chunk-VM7WFMKI.cjs +76 -0
  123. package/dist/chunk-VM7WFMKI.cjs.map +1 -0
  124. package/dist/chunk-W2WTP6HS.cjs +233 -0
  125. package/dist/chunk-W2WTP6HS.cjs.map +1 -0
  126. package/dist/chunk-WH7PYHZY.cjs +35 -0
  127. package/dist/chunk-WH7PYHZY.cjs.map +1 -0
  128. package/dist/chunk-XQZVY7JJ.cjs +717 -0
  129. package/dist/chunk-XQZVY7JJ.cjs.map +1 -0
  130. package/dist/chunk-XU3OMQ7V.js +98 -0
  131. package/dist/chunk-XU3OMQ7V.js.map +1 -0
  132. package/dist/chunk-XWPDRMZG.js +62 -0
  133. package/dist/chunk-XWPDRMZG.js.map +1 -0
  134. package/dist/chunk-Y3CPKNB7.js +67 -0
  135. package/dist/chunk-Y3CPKNB7.js.map +1 -0
  136. package/dist/chunk-YNVRDD2P.js +98 -0
  137. package/dist/chunk-YNVRDD2P.js.map +1 -0
  138. package/dist/chunk-YSYR54XR.js +92 -0
  139. package/dist/chunk-YSYR54XR.js.map +1 -0
  140. package/dist/chunk-YTYDQBVY.cjs +162 -0
  141. package/dist/chunk-YTYDQBVY.cjs.map +1 -0
  142. package/dist/chunk-ZDLOA2UT.cjs +1042 -0
  143. package/dist/chunk-ZDLOA2UT.cjs.map +1 -0
  144. package/dist/chunk-ZWUKRCOJ.cjs +2162 -0
  145. package/dist/chunk-ZWUKRCOJ.cjs.map +1 -0
  146. package/dist/core/index.cjs +807 -4333
  147. package/dist/core/index.cjs.map +1 -1
  148. package/dist/core/index.js +14 -4130
  149. package/dist/core/index.js.map +1 -1
  150. package/dist/i18n/index.cjs +86 -558
  151. package/dist/i18n/index.cjs.map +1 -1
  152. package/dist/i18n/index.js +1 -544
  153. package/dist/i18n/index.js.map +1 -1
  154. package/dist/index.cjs +1432 -17139
  155. package/dist/index.cjs.map +1 -1
  156. package/dist/index.css +11 -7
  157. package/dist/index.css.map +1 -1
  158. package/dist/index.js +31 -16784
  159. package/dist/index.js.map +1 -1
  160. package/dist/marketing/index.cjs +142 -3072
  161. package/dist/marketing/index.cjs.map +1 -1
  162. package/dist/marketing/index.js +11 -3042
  163. package/dist/marketing/index.js.map +1 -1
  164. package/dist/motion/index.cjs +26 -1222
  165. package/dist/motion/index.cjs.map +1 -1
  166. package/dist/motion/index.js +2 -1215
  167. package/dist/motion/index.js.map +1 -1
  168. package/dist/nav/index.cjs +101 -1518
  169. package/dist/nav/index.cjs.map +1 -1
  170. package/dist/nav/index.js +4 -1498
  171. package/dist/nav/index.js.map +1 -1
  172. package/dist/report/index.cjs +171 -2403
  173. package/dist/report/index.cjs.map +1 -1
  174. package/dist/report/index.js +3 -2363
  175. package/dist/report/index.js.map +1 -1
  176. package/dist/sections/index.cjs +28 -378
  177. package/dist/sections/index.cjs.map +1 -1
  178. package/dist/sections/index.css +1 -4
  179. package/dist/sections/index.css.map +1 -1
  180. package/dist/sections/index.js +4 -372
  181. package/dist/sections/index.js.map +1 -1
  182. package/dist/social-proof/index.cjs +53 -1249
  183. package/dist/social-proof/index.cjs.map +1 -1
  184. package/dist/social-proof/index.css +10 -3
  185. package/dist/social-proof/index.css.map +1 -1
  186. package/dist/social-proof/index.js +6 -1234
  187. package/dist/social-proof/index.js.map +1 -1
  188. package/dist/theme/index.cjs +38 -565
  189. package/dist/theme/index.cjs.map +1 -1
  190. package/dist/theme/index.js +2 -555
  191. package/dist/theme/index.js.map +1 -1
  192. package/dist/web/client/index.cjs +48 -0
  193. package/dist/web/client/index.cjs.map +1 -0
  194. package/dist/web/client/index.css +456 -0
  195. package/dist/web/client/index.css.map +1 -0
  196. package/dist/web/client/index.d.cts +172 -0
  197. package/dist/web/client/index.d.ts +172 -0
  198. package/dist/web/client/index.js +7 -0
  199. package/dist/web/client/index.js.map +1 -0
  200. package/dist/web/index.cjs +158 -1346
  201. package/dist/web/index.cjs.map +1 -1
  202. package/dist/web/index.d.cts +5 -893
  203. package/dist/web/index.d.ts +5 -893
  204. package/dist/web/index.js +9 -1305
  205. package/dist/web/index.js.map +1 -1
  206. package/dist/web/server/index.cjs +32 -0
  207. package/dist/web/server/index.cjs.map +1 -0
  208. package/dist/web/server/index.d.cts +725 -0
  209. package/dist/web/server/index.d.ts +725 -0
  210. package/dist/web/server/index.js +3 -0
  211. package/dist/web/server/index.js.map +1 -0
  212. package/package.json +14 -1
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var clsx = require('clsx');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefault(React);
10
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
11
+
12
+ // src/components/Avatar/Avatar.tsx
13
+ var AvatarContext = React__default.default.createContext({
14
+ hasImage: false,
15
+ imageError: false,
16
+ onImageError: () => {
17
+ }
18
+ });
19
+ var Avatar = React__default.default.forwardRef(
20
+ ({ size = "md", className, children, ...props }, ref) => {
21
+ const [imageError, setImageError] = React__default.default.useState(false);
22
+ const [hasImage, setHasImage] = React__default.default.useState(false);
23
+ React__default.default.useEffect(() => {
24
+ let found = false;
25
+ React__default.default.Children.forEach(children, (child) => {
26
+ if (React__default.default.isValidElement(child) && child.type === AvatarImage) {
27
+ found = true;
28
+ }
29
+ });
30
+ setHasImage(found);
31
+ }, [children]);
32
+ const onImageError = React__default.default.useCallback(() => {
33
+ setImageError(true);
34
+ }, []);
35
+ return /* @__PURE__ */ jsxRuntime.jsx(AvatarContext.Provider, { value: { hasImage, imageError, onImageError }, children: /* @__PURE__ */ jsxRuntime.jsx(
36
+ "span",
37
+ {
38
+ ref,
39
+ className: clsx__default.default("ds-avatar", `ds-avatar--${size}`, className),
40
+ ...props,
41
+ children
42
+ }
43
+ ) });
44
+ }
45
+ );
46
+ Avatar.displayName = "Avatar";
47
+ var AvatarImage = React__default.default.forwardRef(({ className, onError, ...props }, ref) => {
48
+ const { imageError, onImageError } = React__default.default.useContext(AvatarContext);
49
+ const handleError = (e) => {
50
+ onImageError();
51
+ onError?.(e);
52
+ };
53
+ if (imageError) return null;
54
+ return /* @__PURE__ */ jsxRuntime.jsx(
55
+ "img",
56
+ {
57
+ ref,
58
+ className: clsx__default.default("ds-avatar__image", className),
59
+ onError: handleError,
60
+ ...props
61
+ }
62
+ );
63
+ });
64
+ AvatarImage.displayName = "AvatarImage";
65
+ var AvatarFallback = React__default.default.forwardRef(({ className, ...props }, ref) => {
66
+ const { hasImage, imageError } = React__default.default.useContext(AvatarContext);
67
+ if (hasImage && !imageError) return null;
68
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { ref, className: clsx__default.default("ds-avatar__fallback", className), ...props });
69
+ });
70
+ AvatarFallback.displayName = "AvatarFallback";
71
+
72
+ exports.Avatar = Avatar;
73
+ exports.AvatarFallback = AvatarFallback;
74
+ exports.AvatarImage = AvatarImage;
75
+ //# sourceMappingURL=out.js.map
76
+ //# sourceMappingURL=chunk-VM7WFMKI.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Avatar/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW;AAClB,OAAO,UAAU;AA2DT;AA9CR,IAAM,gBAAgB,MAAM,cAAkC;AAAA,EAC5D,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,cAAc,MAAM;AAAA,EAAC;AACvB,CAAC;AAoBM,IAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,OAAO,MAAM,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AACvD,UAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,KAAK;AACxD,UAAM,CAAC,UAAU,WAAW,IAAI,MAAM,SAAS,KAAK;AAGpD,UAAM,UAAU,MAAM;AACpB,UAAI,QAAQ;AACZ,YAAM,SAAS,QAAQ,UAAU,CAAC,UAAU;AAC1C,YAAI,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS,aAAa;AAC7D,kBAAQ;AAAA,QACV;AAAA,MACF,CAAC;AACD,kBAAY,KAAK;AAAA,IACnB,GAAG,CAAC,QAAQ,CAAC;AAEb,UAAM,eAAe,MAAM,YAAY,MAAM;AAC3C,oBAAc,IAAI;AAAA,IACpB,GAAG,CAAC,CAAC;AAEL,WACE,oBAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,UAAU,YAAY,aAAa,GAClE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,KAAK,aAAa,cAAc,IAAI,IAAI,SAAS;AAAA,QAC3D,GAAG;AAAA,QAEH;AAAA;AAAA,IACH,GACF;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;AAMd,IAAM,cAAc,MAAM,WAG/B,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QAAQ;AAC3C,QAAM,EAAE,YAAY,aAAa,IAAI,MAAM,WAAW,aAAa;AAEnE,QAAM,cAAc,CAAC,MAA8C;AACjE,iBAAa;AACb,cAAU,CAAC;AAAA,EACb;AAEA,MAAI,WAAY,QAAO;AAEvB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,KAAK,oBAAoB,SAAS;AAAA,MAC7C,SAAS;AAAA,MACR,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,YAAY,cAAc;AAMnB,IAAM,iBAAiB,MAAM,WAGlC,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAClC,QAAM,EAAE,UAAU,WAAW,IAAI,MAAM,WAAW,aAAa;AAG/D,MAAI,YAAY,CAAC,WAAY,QAAO;AAEpC,SACE,oBAAC,UAAK,KAAU,WAAW,KAAK,uBAAuB,SAAS,GAAI,GAAG,OAAO;AAElF,CAAC;AAED,eAAe,cAAc","sourcesContent":["import React from 'react';\nimport clsx from 'clsx';\nimport './Avatar.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface AvatarContextValue {\n hasImage: boolean;\n imageError: boolean;\n onImageError: () => void;\n}\n\nconst AvatarContext = React.createContext<AvatarContextValue>({\n hasImage: false,\n imageError: false,\n onImageError: () => {},\n});\n\n/* ==========================================================================\n Avatar (root)\n ========================================================================== */\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n}\n\n/**\n * User avatar with image and fallback support.\n *\n * @example\n * <Avatar>\n * <AvatarImage src=\"/photo.jpg\" alt=\"User\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n */\nexport const Avatar = React.forwardRef<HTMLSpanElement, AvatarProps>(\n ({ size = 'md', className, children, ...props }, ref) => {\n const [imageError, setImageError] = React.useState(false);\n const [hasImage, setHasImage] = React.useState(false);\n\n // Scan children to detect if an AvatarImage is present\n React.useEffect(() => {\n let found = false;\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === AvatarImage) {\n found = true;\n }\n });\n setHasImage(found);\n }, [children]);\n\n const onImageError = React.useCallback(() => {\n setImageError(true);\n }, []);\n\n return (\n <AvatarContext.Provider value={{ hasImage, imageError, onImageError }}>\n <span\n ref={ref}\n className={clsx('ds-avatar', `ds-avatar--${size}`, className)}\n {...props}\n >\n {children}\n </span>\n </AvatarContext.Provider>\n );\n },\n);\n\nAvatar.displayName = 'Avatar';\n\n/* ==========================================================================\n AvatarImage\n ========================================================================== */\n\nexport const AvatarImage = React.forwardRef<\n HTMLImageElement,\n React.ImgHTMLAttributes<HTMLImageElement>\n>(({ className, onError, ...props }, ref) => {\n const { imageError, onImageError } = React.useContext(AvatarContext);\n\n const handleError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n onImageError();\n onError?.(e);\n };\n\n if (imageError) return null;\n\n return (\n <img\n ref={ref}\n className={clsx('ds-avatar__image', className)}\n onError={handleError}\n {...props}\n />\n );\n});\n\nAvatarImage.displayName = 'AvatarImage';\n\n/* ==========================================================================\n AvatarFallback\n ========================================================================== */\n\nexport const AvatarFallback = React.forwardRef<\n HTMLSpanElement,\n React.HTMLAttributes<HTMLSpanElement>\n>(({ className, ...props }, ref) => {\n const { hasImage, imageError } = React.useContext(AvatarContext);\n\n // Show fallback when there is no image, or the image failed to load\n if (hasImage && !imageError) return null;\n\n return (\n <span ref={ref} className={clsx('ds-avatar__fallback', className)} {...props} />\n );\n});\n\nAvatarFallback.displayName = 'AvatarFallback';\n"]}
@@ -0,0 +1,233 @@
1
+ 'use strict';
2
+
3
+ var React2 = require('react');
4
+ var dialog = require('@base-ui/react/dialog');
5
+ var clsx = require('clsx');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var tabs = require('@base-ui/react/tabs');
8
+
9
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
10
+
11
+ var React2__default = /*#__PURE__*/_interopDefault(React2);
12
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
13
+
14
+ // src/components/Dialog/Dialog.tsx
15
+ var Dialog = dialog.Dialog.Root;
16
+ var DialogTrigger = dialog.Dialog.Trigger;
17
+ var DialogClose = dialog.Dialog.Close;
18
+ var DialogTitle = React2__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Title, { ref, className: clsx__default.default("ds-dialog__title", className), ...props }));
19
+ DialogTitle.displayName = "DialogTitle";
20
+ var DialogDescription = React2__default.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
21
+ dialog.Dialog.Description,
22
+ {
23
+ ref,
24
+ className: clsx__default.default("ds-dialog__description", className),
25
+ ...props
26
+ }
27
+ ));
28
+ DialogDescription.displayName = "DialogDescription";
29
+ var DialogContent = React2__default.default.forwardRef(
30
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Portal, { children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Backdrop, { className: "ds-dialog__backdrop" }),
32
+ /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Popup, { ref, className: clsx__default.default("ds-dialog__content", className), ...props, children })
33
+ ] })
34
+ );
35
+ DialogContent.displayName = "DialogContent";
36
+ var DialogHeader = React2__default.default.forwardRef(
37
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx__default.default("ds-dialog__header", className), ...props })
38
+ );
39
+ DialogHeader.displayName = "DialogHeader";
40
+ var DialogFooter = React2__default.default.forwardRef(
41
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: clsx__default.default("ds-dialog__footer", className), ...props })
42
+ );
43
+ DialogFooter.displayName = "DialogFooter";
44
+ var ToggleGroupContext = React2__default.default.createContext({
45
+ type: "single",
46
+ value: [],
47
+ onItemToggle: () => {
48
+ }
49
+ });
50
+ var ToggleGroup = React2__default.default.forwardRef(
51
+ ({ className, type, value, onValueChange, children, ...props }, ref) => {
52
+ const normalizedValue = React2__default.default.useMemo(() => {
53
+ if (value === void 0) return [];
54
+ return Array.isArray(value) ? value : [value];
55
+ }, [value]);
56
+ const onItemToggle = React2__default.default.useCallback(
57
+ (itemValue) => {
58
+ if (type === "single") {
59
+ const next = normalizedValue.includes(itemValue) ? "" : itemValue;
60
+ onValueChange?.(next);
61
+ } else {
62
+ const next = normalizedValue.includes(itemValue) ? normalizedValue.filter((v) => v !== itemValue) : [...normalizedValue, itemValue];
63
+ onValueChange?.(next);
64
+ }
65
+ },
66
+ [type, normalizedValue, onValueChange]
67
+ );
68
+ const ctx = React2__default.default.useMemo(
69
+ () => ({ type, value: normalizedValue, onItemToggle }),
70
+ [type, normalizedValue, onItemToggle]
71
+ );
72
+ return /* @__PURE__ */ jsxRuntime.jsx(ToggleGroupContext.Provider, { value: ctx, children: /* @__PURE__ */ jsxRuntime.jsx(
73
+ "div",
74
+ {
75
+ ref,
76
+ role: "group",
77
+ className: clsx__default.default("ds-toggle-group", className),
78
+ ...props,
79
+ children
80
+ }
81
+ ) });
82
+ }
83
+ );
84
+ ToggleGroup.displayName = "ToggleGroup";
85
+ var ToggleGroupItem = React2__default.default.forwardRef(({ className, value, children, onClick, ...props }, ref) => {
86
+ const ctx = React2__default.default.useContext(ToggleGroupContext);
87
+ const pressed = ctx.value.includes(value);
88
+ const handleClick = (e) => {
89
+ ctx.onItemToggle(value);
90
+ onClick?.(e);
91
+ };
92
+ return /* @__PURE__ */ jsxRuntime.jsx(
93
+ "button",
94
+ {
95
+ ref,
96
+ type: "button",
97
+ "aria-pressed": pressed,
98
+ className: clsx__default.default(
99
+ "ds-toggle-group__item",
100
+ pressed && "ds-toggle-group__item--pressed",
101
+ className
102
+ ),
103
+ onClick: handleClick,
104
+ ...props,
105
+ children
106
+ }
107
+ );
108
+ });
109
+ ToggleGroupItem.displayName = "ToggleGroupItem";
110
+ var Slider = React2__default.default.forwardRef(
111
+ ({
112
+ className,
113
+ value: controlledValue,
114
+ defaultValue = 50,
115
+ min = 0,
116
+ max = 100,
117
+ step = 1,
118
+ onValueChange,
119
+ disabled = false,
120
+ ...props
121
+ }, ref) => {
122
+ const [uncontrolledValue, setUncontrolledValue] = React2__default.default.useState(defaultValue);
123
+ const isControlled = controlledValue !== void 0;
124
+ const value = isControlled ? controlledValue : uncontrolledValue;
125
+ const handleChange = (e) => {
126
+ const next = Number(e.target.value);
127
+ if (!isControlled) {
128
+ setUncontrolledValue(next);
129
+ }
130
+ onValueChange?.(next);
131
+ };
132
+ const percentage = (value - min) / (max - min) * 100;
133
+ return /* @__PURE__ */ jsxRuntime.jsxs(
134
+ "div",
135
+ {
136
+ ref,
137
+ className: clsx__default.default("ds-slider", disabled && "ds-slider--disabled", className),
138
+ ...props,
139
+ children: [
140
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "ds-slider__track", children: /* @__PURE__ */ jsxRuntime.jsx(
141
+ "div",
142
+ {
143
+ className: "ds-slider__range",
144
+ style: { width: `${percentage}%` }
145
+ }
146
+ ) }),
147
+ /* @__PURE__ */ jsxRuntime.jsx(
148
+ "input",
149
+ {
150
+ type: "range",
151
+ className: "ds-slider__thumb",
152
+ role: "slider",
153
+ min,
154
+ max,
155
+ step,
156
+ value,
157
+ disabled,
158
+ onChange: handleChange,
159
+ "aria-valuemin": min,
160
+ "aria-valuemax": max,
161
+ "aria-valuenow": value
162
+ }
163
+ )
164
+ ]
165
+ }
166
+ );
167
+ }
168
+ );
169
+ Slider.displayName = "Slider";
170
+ var Tabs = React2__default.default.forwardRef(
171
+ ({ className, orientation = "horizontal", ...props }, ref) => {
172
+ return /* @__PURE__ */ jsxRuntime.jsx(
173
+ tabs.Tabs.Root,
174
+ {
175
+ ref,
176
+ className: clsx__default.default("ds-tabs", `ds-tabs--${orientation}`, className),
177
+ orientation,
178
+ ...props
179
+ }
180
+ );
181
+ }
182
+ );
183
+ Tabs.displayName = "Tabs";
184
+ var TabsList = React2__default.default.forwardRef(
185
+ ({ className, ...props }, ref) => {
186
+ return /* @__PURE__ */ jsxRuntime.jsx(tabs.Tabs.List, { ref, className: clsx__default.default("ds-tabs__list", className), ...props });
187
+ }
188
+ );
189
+ TabsList.displayName = "TabsList";
190
+ var TabsTrigger = React2__default.default.forwardRef(
191
+ ({ className, children, ...props }, ref) => {
192
+ return /* @__PURE__ */ jsxRuntime.jsx(tabs.Tabs.Tab, { ref, className: clsx__default.default("ds-tabs__trigger", className), ...props, children });
193
+ }
194
+ );
195
+ TabsTrigger.displayName = "TabsTrigger";
196
+ var TabsContent = React2__default.default.forwardRef(
197
+ ({ className, ...props }, ref) => {
198
+ return /* @__PURE__ */ jsxRuntime.jsx(tabs.Tabs.Panel, { ref, className: clsx__default.default("ds-tabs__content", className), ...props });
199
+ }
200
+ );
201
+ TabsContent.displayName = "TabsContent";
202
+ var Badge = React2__default.default.forwardRef(
203
+ ({ className, variant = "default", ...props }, ref) => {
204
+ return /* @__PURE__ */ jsxRuntime.jsx(
205
+ "span",
206
+ {
207
+ ref,
208
+ className: clsx__default.default("ds-badge", `ds-badge--${variant}`, className),
209
+ ...props
210
+ }
211
+ );
212
+ }
213
+ );
214
+ Badge.displayName = "Badge";
215
+
216
+ exports.Badge = Badge;
217
+ exports.Dialog = Dialog;
218
+ exports.DialogClose = DialogClose;
219
+ exports.DialogContent = DialogContent;
220
+ exports.DialogDescription = DialogDescription;
221
+ exports.DialogFooter = DialogFooter;
222
+ exports.DialogHeader = DialogHeader;
223
+ exports.DialogTitle = DialogTitle;
224
+ exports.DialogTrigger = DialogTrigger;
225
+ exports.Slider = Slider;
226
+ exports.Tabs = Tabs;
227
+ exports.TabsContent = TabsContent;
228
+ exports.TabsList = TabsList;
229
+ exports.TabsTrigger = TabsTrigger;
230
+ exports.ToggleGroup = ToggleGroup;
231
+ exports.ToggleGroupItem = ToggleGroupItem;
232
+ //# sourceMappingURL=out.js.map
233
+ //# sourceMappingURL=chunk-W2WTP6HS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Dialog/Dialog.tsx","../src/components/ToggleGroup/ToggleGroup.tsx","../src/components/Slider/Slider.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Badge/Badge.tsx"],"names":["React","clsx","jsx","jsxs"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport clsx from 'clsx';\nimport './Dialog.css';\n\nexport const Dialog = BaseDialog.Root;\nexport const DialogTrigger = BaseDialog.Trigger;\nexport const DialogClose = BaseDialog.Close;\nexport const DialogTitle = React.forwardRef<\n HTMLHeadingElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Title ref={ref} className={clsx('ds-dialog__title', className)} {...props} />\n));\nDialogTitle.displayName = 'DialogTitle';\n\nexport const DialogDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <BaseDialog.Description\n ref={ref}\n className={clsx('ds-dialog__description', className)}\n {...props}\n />\n));\nDialogDescription.displayName = 'DialogDescription';\n\nexport const DialogContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <BaseDialog.Portal>\n <BaseDialog.Backdrop className=\"ds-dialog__backdrop\" />\n <BaseDialog.Popup ref={ref} className={clsx('ds-dialog__content', className)} {...props}>\n {children}\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n ),\n);\nDialogContent.displayName = 'DialogContent';\n\n/**\n * Semantic header section for a dialog, typically containing\n * DialogTitle and DialogDescription.\n */\nexport const DialogHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__header', className)} {...props} />\n ),\n);\nDialogHeader.displayName = 'DialogHeader';\n\n/**\n * Footer section for dialog actions (confirm, cancel, etc.).\n * Renders children in a right-aligned flex row with standard gap.\n */\nexport const DialogFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={clsx('ds-dialog__footer', className)} {...props} />\n ),\n);\nDialogFooter.displayName = 'DialogFooter';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './ToggleGroup.css';\n\n/* ==========================================================================\n Context\n ========================================================================== */\n\ninterface ToggleGroupContextValue {\n type: 'single' | 'multiple';\n value: string[];\n onItemToggle: (itemValue: string) => void;\n}\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n type: 'single',\n value: [],\n onItemToggle: () => {},\n});\n\n/* ==========================================================================\n ToggleGroup (div — role=\"group\")\n ========================================================================== */\n\nexport interface ToggleGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Whether a single or multiple items can be pressed at once. */\n type: 'single' | 'multiple';\n /** The controlled value(s). String for single, string[] for multiple. */\n value?: string | string[];\n /** Callback when value changes. */\n onValueChange?: (value: string | string[]) => void;\n}\n\n/**\n * A group of toggle buttons where one or more can be selected.\n *\n * @example\n * <ToggleGroup type=\"single\" value=\"center\" onValueChange={setValue}>\n * <ToggleGroupItem value=\"left\">Left</ToggleGroupItem>\n * <ToggleGroupItem value=\"center\">Center</ToggleGroupItem>\n * <ToggleGroupItem value=\"right\">Right</ToggleGroupItem>\n * </ToggleGroup>\n */\nexport const ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>(\n ({ className, type, value, onValueChange, children, ...props }, ref) => {\n const normalizedValue = React.useMemo<string[]>(() => {\n if (value === undefined) return [];\n return Array.isArray(value) ? value : [value];\n }, [value]);\n\n const onItemToggle = React.useCallback(\n (itemValue: string) => {\n if (type === 'single') {\n const next = normalizedValue.includes(itemValue) ? '' : itemValue;\n onValueChange?.(next);\n } else {\n const next = normalizedValue.includes(itemValue)\n ? normalizedValue.filter((v) => v !== itemValue)\n : [...normalizedValue, itemValue];\n onValueChange?.(next);\n }\n },\n [type, normalizedValue, onValueChange],\n );\n\n const ctx = React.useMemo<ToggleGroupContextValue>(\n () => ({ type, value: normalizedValue, onItemToggle }),\n [type, normalizedValue, onItemToggle],\n );\n\n return (\n <ToggleGroupContext.Provider value={ctx}>\n <div\n ref={ref}\n role=\"group\"\n className={clsx('ds-toggle-group', className)}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n },\n);\n\nToggleGroup.displayName = 'ToggleGroup';\n\n/* ==========================================================================\n ToggleGroupItem (button)\n ========================================================================== */\n\nexport interface ToggleGroupItemProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value this item represents. */\n value: string;\n}\n\nexport const ToggleGroupItem = React.forwardRef<\n HTMLButtonElement,\n ToggleGroupItemProps\n>(({ className, value, children, onClick, ...props }, ref) => {\n const ctx = React.useContext(ToggleGroupContext);\n const pressed = ctx.value.includes(value);\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n ctx.onItemToggle(value);\n onClick?.(e);\n };\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-pressed={pressed}\n className={clsx(\n 'ds-toggle-group__item',\n pressed && 'ds-toggle-group__item--pressed',\n className,\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n );\n});\n\nToggleGroupItem.displayName = 'ToggleGroupItem';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Slider.css';\n\nexport interface SliderProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current value (controlled). */\n value?: number;\n /** Default value (uncontrolled). */\n defaultValue?: number;\n /** Minimum value. */\n min?: number;\n /** Maximum value. */\n max?: number;\n /** Step increment. */\n step?: number;\n /** Callback fired when the value changes. */\n onValueChange?: (value: number) => void;\n /** Whether the slider is disabled. */\n disabled?: boolean;\n}\n\nexport const Slider = React.forwardRef<HTMLDivElement, SliderProps>(\n (\n {\n className,\n value: controlledValue,\n defaultValue = 50,\n min = 0,\n max = 100,\n step = 1,\n onValueChange,\n disabled = false,\n ...props\n },\n ref,\n ) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const next = Number(e.target.value);\n if (!isControlled) {\n setUncontrolledValue(next);\n }\n onValueChange?.(next);\n };\n\n const percentage = ((value - min) / (max - min)) * 100;\n\n return (\n <div\n ref={ref}\n className={clsx('ds-slider', disabled && 'ds-slider--disabled', className)}\n {...props}\n >\n <div className=\"ds-slider__track\">\n <div\n className=\"ds-slider__range\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n <input\n type=\"range\"\n className=\"ds-slider__thumb\"\n role=\"slider\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n />\n </div>\n );\n },\n);\n\nSlider.displayName = 'Slider';\n","import React from 'react';\nimport { Tabs as BaseTabs } from '@base-ui/react/tabs';\nimport clsx from 'clsx';\nimport './Tabs.css';\n\n/* ============================================================================\n TABS ROOT\n ============================================================================ */\n\nexport interface TabsProps extends React.HTMLAttributes<HTMLDivElement> {\n defaultValue?: string | number;\n value?: string | number;\n onValueChange?: (value: string | number) => void;\n orientation?: 'horizontal' | 'vertical';\n}\n\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n ({ className, orientation = 'horizontal', ...props }, ref) => {\n return (\n <BaseTabs.Root\n ref={ref}\n className={clsx('ds-tabs', `ds-tabs--${orientation}`, className)}\n orientation={orientation}\n {...props}\n />\n );\n },\n);\n\nTabs.displayName = 'Tabs';\n\n/* ============================================================================\n TABS LIST\n ============================================================================ */\n\nexport interface TabsListProps extends React.HTMLAttributes<HTMLDivElement> {\n loop?: boolean;\n}\n\nexport const TabsList = React.forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.List ref={ref} className={clsx('ds-tabs__list', className)} {...props} />;\n },\n);\n\nTabsList.displayName = 'TabsList';\n\n/* ============================================================================\n TABS TRIGGER\n ============================================================================ */\n\nexport interface TabsTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n value: string | number;\n disabled?: boolean;\n}\n\nexport const TabsTrigger = React.forwardRef<HTMLButtonElement, TabsTriggerProps>(\n ({ className, children, ...props }, ref) => {\n return (\n <BaseTabs.Tab ref={ref} className={clsx('ds-tabs__trigger', className)} {...props}>\n {children}\n </BaseTabs.Tab>\n );\n },\n);\n\nTabsTrigger.displayName = 'TabsTrigger';\n\n/* ============================================================================\n TABS CONTENT\n ============================================================================ */\n\nexport interface TabsContentProps extends React.HTMLAttributes<HTMLDivElement> {\n value: string | number;\n}\n\nexport const TabsContent = React.forwardRef<HTMLDivElement, TabsContentProps>(\n ({ className, ...props }, ref) => {\n return <BaseTabs.Panel ref={ref} className={clsx('ds-tabs__content', className)} {...props} />;\n },\n);\n\nTabsContent.displayName = 'TabsContent';\n","import React from 'react';\nimport clsx from 'clsx';\nimport './Badge.css';\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n /** Visual style variant */\n variant?: 'default' | 'secondary' | 'outline' | 'destructive';\n}\n\n/**\n * General-purpose badge for tags, labels, categories, and status indicators.\n *\n * For status-specific badges (success/warning/error/info), use `StatusBadge` instead.\n *\n * @example\n * <Badge>New</Badge>\n * <Badge variant=\"secondary\">Category</Badge>\n * <Badge variant=\"outline\">v2.1.0</Badge>\n * <Badge variant=\"destructive\">Breaking</Badge>\n */\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = 'default', ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={clsx('ds-badge', `ds-badge--${variant}`, className)}\n {...props}\n />\n );\n },\n);\n\nBadge.displayName = 'Badge';\n"]}
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var tooltip = require('@base-ui/react/tooltip');
5
+ var clsx = require('clsx');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+
8
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefault(React);
11
+ var clsx__default = /*#__PURE__*/_interopDefault(clsx);
12
+
13
+ // src/components/Tooltip/Tooltip.tsx
14
+ var TooltipProvider = tooltip.Tooltip.Provider;
15
+ var TooltipRoot = tooltip.Tooltip.Root;
16
+ var TooltipTrigger = tooltip.Tooltip.Trigger;
17
+ var TooltipContent = React__default.default.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(tooltip.Tooltip.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(tooltip.Tooltip.Positioner, { sideOffset: 5, children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip.Popup, { ref, className: clsx__default.default("ds-tooltip__content", className), ...props, children: [
18
+ children,
19
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.Tooltip.Arrow, { className: "ds-tooltip__arrow" })
20
+ ] }) }) }));
21
+ TooltipContent.displayName = "TooltipContent";
22
+ var Tooltip = ({ content, children, delay = 200 }) => {
23
+ return /* @__PURE__ */ jsxRuntime.jsx(tooltip.Tooltip.Provider, { delay, children: /* @__PURE__ */ jsxRuntime.jsxs(tooltip.Tooltip.Root, { children: [
24
+ /* @__PURE__ */ jsxRuntime.jsx(tooltip.Tooltip.Trigger, { render: children }),
25
+ /* @__PURE__ */ jsxRuntime.jsx(TooltipContent, { children: content })
26
+ ] }) });
27
+ };
28
+
29
+ exports.Tooltip = Tooltip;
30
+ exports.TooltipContent = TooltipContent;
31
+ exports.TooltipProvider = TooltipProvider;
32
+ exports.TooltipRoot = TooltipRoot;
33
+ exports.TooltipTrigger = TooltipTrigger;
34
+ //# sourceMappingURL=out.js.map
35
+ //# sourceMappingURL=chunk-WH7PYHZY.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW;AAClB,SAAS,WAAW,mBAAmB;AACvC,OAAO,UAAU;AAaX,SAEE,KAFF;AAVC,IAAM,kBAAkB,YAAY;AACpC,IAAM,cAAc,YAAY;AAChC,IAAM,iBAAiB,YAAY;AAEnC,IAAM,iBAAiB,MAAM,WAGlC,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QACpC,oBAAC,YAAY,QAAZ,EACC,8BAAC,YAAY,YAAZ,EAAuB,YAAY,GAClC,+BAAC,YAAY,OAAZ,EAAkB,KAAU,WAAW,KAAK,uBAAuB,SAAS,GAAI,GAAG,OACjF;AAAA;AAAA,EACD,oBAAC,YAAY,OAAZ,EAAkB,WAAU,qBAAoB;AAAA,GACnD,GACF,GACF,CACD;AACD,eAAe,cAAc;AAQtB,IAAM,UAAU,CAAC,EAAE,SAAS,UAAU,QAAQ,IAAI,MAAoB;AAC3E,SACE,oBAAC,YAAY,UAAZ,EAAqB,OACpB,+BAAC,YAAY,MAAZ,EACC;AAAA,wBAAC,YAAY,SAAZ,EAAoB,QAAQ,UAAgC;AAAA,IAC7D,oBAAC,kBAAgB,mBAAQ;AAAA,KAC3B,GACF;AAEJ","sourcesContent":["import React from 'react';\nimport { Tooltip as BaseTooltip } from '@base-ui/react/tooltip';\nimport clsx from 'clsx';\nimport './Tooltip.css';\n\nexport const TooltipProvider = BaseTooltip.Provider;\nexport const TooltipRoot = BaseTooltip.Root;\nexport const TooltipTrigger = BaseTooltip.Trigger;\n\nexport const TooltipContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, children, ...props }, ref) => (\n <BaseTooltip.Portal>\n <BaseTooltip.Positioner sideOffset={5}>\n <BaseTooltip.Popup ref={ref} className={clsx('ds-tooltip__content', className)} {...props}>\n {children}\n <BaseTooltip.Arrow className=\"ds-tooltip__arrow\" />\n </BaseTooltip.Popup>\n </BaseTooltip.Positioner>\n </BaseTooltip.Portal>\n));\nTooltipContent.displayName = 'TooltipContent';\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n delay?: number;\n}\n\nexport const Tooltip = ({ content, children, delay = 200 }: TooltipProps) => {\n return (\n <BaseTooltip.Provider delay={delay}>\n <BaseTooltip.Root>\n <BaseTooltip.Trigger render={children as React.ReactElement} />\n <TooltipContent>{content}</TooltipContent>\n </BaseTooltip.Root>\n </BaseTooltip.Provider>\n );\n};\n"]}