@deckai/deck-ui 0.0.22 → 0.0.23

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 (249) hide show
  1. package/README.md +0 -1
  2. package/dist/components/AboutCard.cjs +3 -3
  3. package/dist/components/AboutCard.cjs.map +1 -1
  4. package/dist/components/AboutCard.d.cts +1 -1
  5. package/dist/components/AboutCard.d.ts +1 -1
  6. package/dist/components/AboutCard.js +3 -3
  7. package/dist/components/AboutCard.js.map +1 -1
  8. package/dist/components/Accordion.cjs +2 -2
  9. package/dist/components/Accordion.cjs.map +1 -1
  10. package/dist/components/Accordion.js +2 -2
  11. package/dist/components/Accordion.js.map +1 -1
  12. package/dist/components/AddWorkCard.cjs +4 -4
  13. package/dist/components/AddWorkCard.cjs.map +1 -1
  14. package/dist/components/AddWorkCard.d.cts +1 -1
  15. package/dist/components/AddWorkCard.d.ts +1 -1
  16. package/dist/components/AddWorkCard.js +4 -4
  17. package/dist/components/AddWorkCard.js.map +1 -1
  18. package/dist/components/AutocompleteInput.cjs +4 -4
  19. package/dist/components/AutocompleteInput.cjs.map +1 -1
  20. package/dist/components/AutocompleteInput.d.cts +6 -6
  21. package/dist/components/AutocompleteInput.d.ts +6 -6
  22. package/dist/components/AutocompleteInput.js +4 -4
  23. package/dist/components/AutocompleteInput.js.map +1 -1
  24. package/dist/components/Avatar.cjs +1 -1
  25. package/dist/components/Avatar.cjs.map +1 -1
  26. package/dist/components/Avatar.d.cts +2 -2
  27. package/dist/components/Avatar.d.ts +2 -2
  28. package/dist/components/Avatar.js +1 -1
  29. package/dist/components/Avatar.js.map +1 -1
  30. package/dist/components/Badge.cjs +4 -4
  31. package/dist/components/Badge.cjs.map +1 -1
  32. package/dist/components/Badge.d.cts +2 -2
  33. package/dist/components/Badge.d.ts +2 -2
  34. package/dist/components/Badge.js +4 -4
  35. package/dist/components/Badge.js.map +1 -1
  36. package/dist/components/Breadcrumbs.cjs +2 -2
  37. package/dist/components/Breadcrumbs.cjs.map +1 -1
  38. package/dist/components/Breadcrumbs.js +2 -2
  39. package/dist/components/Breadcrumbs.js.map +1 -1
  40. package/dist/components/Button.cjs +5 -5
  41. package/dist/components/Button.cjs.map +1 -1
  42. package/dist/components/Button.d.cts +5 -5
  43. package/dist/components/Button.d.ts +5 -5
  44. package/dist/components/Button.js +5 -5
  45. package/dist/components/Button.js.map +1 -1
  46. package/dist/components/Carousel.cjs +1 -1
  47. package/dist/components/Carousel.cjs.map +1 -1
  48. package/dist/components/Carousel.d.cts +1 -1
  49. package/dist/components/Carousel.d.ts +1 -1
  50. package/dist/components/Carousel.js +1 -1
  51. package/dist/components/Carousel.js.map +1 -1
  52. package/dist/components/Collapsible.cjs +2 -2
  53. package/dist/components/Collapsible.cjs.map +1 -1
  54. package/dist/components/Collapsible.d.cts +4 -4
  55. package/dist/components/Collapsible.d.ts +4 -4
  56. package/dist/components/Collapsible.js +2 -2
  57. package/dist/components/Collapsible.js.map +1 -1
  58. package/dist/components/Combobox.cjs +4 -4
  59. package/dist/components/Combobox.cjs.map +1 -1
  60. package/dist/components/Combobox.d.cts +5 -2
  61. package/dist/components/Combobox.d.ts +5 -2
  62. package/dist/components/Combobox.js +4 -4
  63. package/dist/components/Combobox.js.map +1 -1
  64. package/dist/components/ContactItem.cjs +3 -3
  65. package/dist/components/ContactItem.cjs.map +1 -1
  66. package/dist/components/ContactItem.d.cts +1 -1
  67. package/dist/components/ContactItem.d.ts +1 -1
  68. package/dist/components/ContactItem.js +3 -3
  69. package/dist/components/ContactItem.js.map +1 -1
  70. package/dist/components/Dropdown.cjs +3 -3
  71. package/dist/components/Dropdown.cjs.map +1 -1
  72. package/dist/components/Dropdown.js +3 -3
  73. package/dist/components/Dropdown.js.map +1 -1
  74. package/dist/components/EditButton.cjs +5 -5
  75. package/dist/components/EditButton.cjs.map +1 -1
  76. package/dist/components/EditButton.d.cts +4 -4
  77. package/dist/components/EditButton.d.ts +4 -4
  78. package/dist/components/EditButton.js +5 -5
  79. package/dist/components/EditButton.js.map +1 -1
  80. package/dist/components/Fallback.cjs +1 -1
  81. package/dist/components/Fallback.cjs.map +1 -1
  82. package/dist/components/Fallback.js +1 -1
  83. package/dist/components/Fallback.js.map +1 -1
  84. package/dist/components/Icon.cjs +1 -1
  85. package/dist/components/Icon.cjs.map +1 -1
  86. package/dist/components/Icon.js +1 -1
  87. package/dist/components/Icon.js.map +1 -1
  88. package/dist/components/IconRenderer.cjs +1 -1
  89. package/dist/components/IconRenderer.cjs.map +1 -1
  90. package/dist/components/IconRenderer.d.cts +4 -4
  91. package/dist/components/IconRenderer.d.ts +4 -4
  92. package/dist/components/IconRenderer.js +1 -1
  93. package/dist/components/IconRenderer.js.map +1 -1
  94. package/dist/components/Input.cjs +3 -3
  95. package/dist/components/Input.cjs.map +1 -1
  96. package/dist/components/Input.d.cts +11 -11
  97. package/dist/components/Input.d.ts +11 -11
  98. package/dist/components/Input.js +3 -3
  99. package/dist/components/Input.js.map +1 -1
  100. package/dist/components/Link.cjs +4 -4
  101. package/dist/components/Link.cjs.map +1 -1
  102. package/dist/components/Link.d.cts +1 -1
  103. package/dist/components/Link.d.ts +1 -1
  104. package/dist/components/Link.js +4 -4
  105. package/dist/components/Link.js.map +1 -1
  106. package/dist/components/Logo.cjs +1 -1
  107. package/dist/components/Logo.cjs.map +1 -1
  108. package/dist/components/Logo.d.cts +1 -1
  109. package/dist/components/Logo.d.ts +1 -1
  110. package/dist/components/Logo.js +1 -1
  111. package/dist/components/Logo.js.map +1 -1
  112. package/dist/components/Modal.cjs +1 -1
  113. package/dist/components/Modal.cjs.map +1 -1
  114. package/dist/components/Modal.d.cts +4 -4
  115. package/dist/components/Modal.d.ts +4 -4
  116. package/dist/components/Modal.js +1 -1
  117. package/dist/components/Modal.js.map +1 -1
  118. package/dist/components/MultiSelectCombobox.cjs +2 -2
  119. package/dist/components/MultiSelectCombobox.cjs.map +1 -1
  120. package/dist/components/MultiSelectCombobox.d.cts +1 -1
  121. package/dist/components/MultiSelectCombobox.d.ts +1 -1
  122. package/dist/components/MultiSelectCombobox.js +2 -2
  123. package/dist/components/MultiSelectCombobox.js.map +1 -1
  124. package/dist/components/Navbar.cjs +7 -7
  125. package/dist/components/Navbar.cjs.map +1 -1
  126. package/dist/components/Navbar.d.cts +1 -1
  127. package/dist/components/Navbar.d.ts +1 -1
  128. package/dist/components/Navbar.js +7 -7
  129. package/dist/components/Navbar.js.map +1 -1
  130. package/dist/components/NavbarItem.cjs +4 -4
  131. package/dist/components/NavbarItem.cjs.map +1 -1
  132. package/dist/components/NavbarItem.d.cts +1 -1
  133. package/dist/components/NavbarItem.d.ts +1 -1
  134. package/dist/components/NavbarItem.js +4 -4
  135. package/dist/components/NavbarItem.js.map +1 -1
  136. package/dist/components/Option.cjs +2 -2
  137. package/dist/components/Option.cjs.map +1 -1
  138. package/dist/components/Option.js +2 -2
  139. package/dist/components/Option.js.map +1 -1
  140. package/dist/components/Pressable.cjs +1 -1
  141. package/dist/components/Pressable.cjs.map +1 -1
  142. package/dist/components/Pressable.js +1 -1
  143. package/dist/components/Pressable.js.map +1 -1
  144. package/dist/components/ProfileCard.cjs +2 -2
  145. package/dist/components/ProfileCard.cjs.map +1 -1
  146. package/dist/components/ProfileCard.d.cts +1 -1
  147. package/dist/components/ProfileCard.d.ts +1 -1
  148. package/dist/components/ProfileCard.js +2 -2
  149. package/dist/components/ProfileCard.js.map +1 -1
  150. package/dist/components/ProgressBar.cjs +3 -3
  151. package/dist/components/ProgressBar.cjs.map +1 -1
  152. package/dist/components/ProgressBar.js +3 -3
  153. package/dist/components/ProgressBar.js.map +1 -1
  154. package/dist/components/RadioGroup.cjs +3 -3
  155. package/dist/components/RadioGroup.cjs.map +1 -1
  156. package/dist/components/RadioGroup.js +3 -3
  157. package/dist/components/RadioGroup.js.map +1 -1
  158. package/dist/components/SegmentedTabs.cjs +4 -4
  159. package/dist/components/SegmentedTabs.cjs.map +1 -1
  160. package/dist/components/SegmentedTabs.js +4 -4
  161. package/dist/components/SegmentedTabs.js.map +1 -1
  162. package/dist/components/Sidebar.cjs +1 -1
  163. package/dist/components/Sidebar.cjs.map +1 -1
  164. package/dist/components/Sidebar.d.cts +1 -1
  165. package/dist/components/Sidebar.d.ts +1 -1
  166. package/dist/components/Sidebar.js +1 -1
  167. package/dist/components/Sidebar.js.map +1 -1
  168. package/dist/components/SlideButton.cjs +1 -1
  169. package/dist/components/SlideButton.cjs.map +1 -1
  170. package/dist/components/SlideButton.js +1 -1
  171. package/dist/components/SlideButton.js.map +1 -1
  172. package/dist/components/Slider.cjs.map +1 -1
  173. package/dist/components/Slider.js.map +1 -1
  174. package/dist/components/SocialCard.cjs +4 -4
  175. package/dist/components/SocialCard.cjs.map +1 -1
  176. package/dist/components/SocialCard.d.cts +1 -1
  177. package/dist/components/SocialCard.d.ts +1 -1
  178. package/dist/components/SocialCard.js +4 -4
  179. package/dist/components/SocialCard.js.map +1 -1
  180. package/dist/components/Spinner.cjs +1 -1
  181. package/dist/components/Spinner.cjs.map +1 -1
  182. package/dist/components/Spinner.d.cts +2 -2
  183. package/dist/components/Spinner.d.ts +2 -2
  184. package/dist/components/Spinner.js +1 -1
  185. package/dist/components/Spinner.js.map +1 -1
  186. package/dist/components/Switch.cjs.map +1 -1
  187. package/dist/components/Switch.d.cts +2 -2
  188. package/dist/components/Switch.d.ts +2 -2
  189. package/dist/components/Switch.js.map +1 -1
  190. package/dist/components/Tabs.cjs +3 -3
  191. package/dist/components/Tabs.cjs.map +1 -1
  192. package/dist/components/Tabs.js +3 -3
  193. package/dist/components/Tabs.js.map +1 -1
  194. package/dist/components/Tag.cjs +3 -3
  195. package/dist/components/Tag.cjs.map +1 -1
  196. package/dist/components/Tag.d.cts +1 -1
  197. package/dist/components/Tag.d.ts +1 -1
  198. package/dist/components/Tag.js +3 -3
  199. package/dist/components/Tag.js.map +1 -1
  200. package/dist/components/Text.cjs +1 -1
  201. package/dist/components/Text.cjs.map +1 -1
  202. package/dist/components/Text.d.cts +1 -1
  203. package/dist/components/Text.d.ts +1 -1
  204. package/dist/components/Text.js +1 -1
  205. package/dist/components/Text.js.map +1 -1
  206. package/dist/components/TextArea.cjs +4 -4
  207. package/dist/components/TextArea.cjs.map +1 -1
  208. package/dist/components/TextArea.d.cts +1 -1
  209. package/dist/components/TextArea.d.ts +1 -1
  210. package/dist/components/TextArea.js +4 -4
  211. package/dist/components/TextArea.js.map +1 -1
  212. package/dist/components/Toast.cjs +3 -3
  213. package/dist/components/Toast.cjs.map +1 -1
  214. package/dist/components/Toast.d.cts +7 -7
  215. package/dist/components/Toast.d.ts +7 -7
  216. package/dist/components/Toast.js +3 -3
  217. package/dist/components/Toast.js.map +1 -1
  218. package/dist/components/ToastProvider.cjs +1 -1
  219. package/dist/components/ToastProvider.cjs.map +1 -1
  220. package/dist/components/ToastProvider.d.cts +1 -1
  221. package/dist/components/ToastProvider.d.ts +1 -1
  222. package/dist/components/ToastProvider.js +1 -1
  223. package/dist/components/ToastProvider.js.map +1 -1
  224. package/dist/components/Tooltip.cjs +3 -3
  225. package/dist/components/Tooltip.cjs.map +1 -1
  226. package/dist/components/Tooltip.d.cts +1 -1
  227. package/dist/components/Tooltip.d.ts +1 -1
  228. package/dist/components/Tooltip.js +3 -3
  229. package/dist/components/Tooltip.js.map +1 -1
  230. package/dist/components/VideoPlayer.cjs +2 -2
  231. package/dist/components/VideoPlayer.cjs.map +1 -1
  232. package/dist/components/VideoPlayer.d.cts +4 -4
  233. package/dist/components/VideoPlayer.d.ts +4 -4
  234. package/dist/components/VideoPlayer.js +2 -2
  235. package/dist/components/VideoPlayer.js.map +1 -1
  236. package/dist/components/WorkCard.cjs +3 -3
  237. package/dist/components/WorkCard.cjs.map +1 -1
  238. package/dist/components/WorkCard.d.cts +1 -1
  239. package/dist/components/WorkCard.d.ts +1 -1
  240. package/dist/components/WorkCard.js +3 -3
  241. package/dist/components/WorkCard.js.map +1 -1
  242. package/dist/index.cjs +8 -8
  243. package/dist/index.cjs.map +1 -1
  244. package/dist/index.d.cts +39 -39
  245. package/dist/index.d.ts +39 -39
  246. package/dist/index.js +8 -8
  247. package/dist/index.js.map +1 -1
  248. package/dist/styles/styles.css +1 -1
  249. package/package.json +2 -2
@@ -1,8 +1,8 @@
1
- 'use strict';var t=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),icons=require('@deckai/icons'),h=require('@radix-ui/react-tooltip');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var t__namespace=/*#__PURE__*/_interopNamespace(t);var h__namespace=/*#__PURE__*/_interopNamespace(h);function p(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var N={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},O={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},E=e=>String(e),K=(e,r=24)=>{let n=[],o={};if(e===undefined){let s=E(r);s?n.push(N[s]):(o.height=`${r}px`,o.width=`${r}px`);}if(typeof e=="number"){let s=E(e);s?n.push(N[s]):(o.height=`${e}px`,o.width=`${e}px`);}if(Array.isArray(e)){let s=E(r),i=[s&&N[s]||`h-[${r}px] w-[${r}px]`];e.forEach(a=>{if(typeof a=="string"){let[l,c]=a.split(":"),m=parseInt(c,10),g=E(m);n.push(g&&O[l]?.[g]||`${l}:h-[${m}px] ${l}:w-[${m}px]`);}}),n.push(...i);}if(typeof e=="string"){let[s,i]=e.split(":"),a=parseInt(i,10),l=E(a);n.push(l&&O[s]?.[l]||`${s}:h-[${a}px] ${s}:w-[${a}px]`);}return {responsiveSizeClasses:n.join(" "),responsiveSizeStyles:o}};var z={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},b=t__namespace.default.forwardRef(({name:e,size:r=24,color:n="primary",title:o,className:s,style:i={},...a},l)=>{let c=icons.IconMap[e],{responsiveSizeClasses:m,responsiveSizeStyles:g}=K(r,24);return t__namespace.default.createElement("div",{className:p("flex justify-center items-center",m,s),style:{"--icon-stroke":z[n],...g,...i}},t__namespace.default.createElement(c,{ref:l,"aria-hidden":!o,"aria-label":o,stroke:e.includes("filled")?undefined:z[n],...a}))});b.displayName="Icon";var U={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},Y=e=>{let[r,n]=e.split("-");return r==="heading"?U[n]||"p":r==="label"?"label":"p"},ee={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},te=e=>e?(Array.isArray(e)?e:[e]).map(n=>{if(n.includes(":")){let[o,s]=n.split(":");return `${o}:text-${s}`}return `text-${n}`}).join(" "):"text-body-default",d=t__namespace.default.forwardRef(({variant:e="body-default",color:r="primary",as:n,className:o,children:s,weight:i,...a},l)=>{let c=te(e),m=r==="inherit"?"text-inherit":`text-${r}`,g=t__namespace.default.useMemo(()=>{let f=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return Y(f)},[e]);return t__namespace.default.createElement(n||g,{ref:l,className:`
1
+ 'use strict';var s=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),icons=require('@deckai/icons'),g=require('@radix-ui/react-tooltip');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var s__namespace=/*#__PURE__*/_interopNamespace(s);var g__namespace=/*#__PURE__*/_interopNamespace(g);function p(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var k={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},O={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},H=e=>String(e),K=(e,t=24)=>{let n=[],o={};if(e===void 0){let r=H(t);r?n.push(k[r]):(o.height=`${t}px`,o.width=`${t}px`);}if(typeof e=="number"){let r=H(e);r?n.push(k[r]):(o.height=`${e}px`,o.width=`${e}px`);}if(Array.isArray(e)){let r=H(t),i=[r&&k[r]||`h-[${t}px] w-[${t}px]`];e.forEach(a=>{if(typeof a=="string"){let[l,c]=a.split(":"),m=parseInt(c,10),h=H(m);n.push(h&&O[l]?.[h]||`${l}:h-[${m}px] ${l}:w-[${m}px]`);}}),n.push(...i);}if(typeof e=="string"){let[r,i]=e.split(":"),a=parseInt(i,10),l=H(a);n.push(l&&O[r]?.[l]||`${r}:h-[${a}px] ${r}:w-[${a}px]`);}return {responsiveSizeClasses:n.join(" "),responsiveSizeStyles:o}};var F={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},v=s__namespace.default.forwardRef(({name:e,size:t=24,color:n="primary",title:o,className:r,style:i={},...a},l)=>{let c=icons.IconMap[e],{responsiveSizeClasses:m,responsiveSizeStyles:h}=K(t,24);return s__namespace.default.createElement("div",{className:p("flex justify-center items-center",m,r),style:{"--icon-stroke":F[n],...h,...i}},s__namespace.default.createElement(c,{ref:l,"aria-hidden":!o,"aria-label":o,stroke:e.includes("filled")?void 0:F[n],...a}))});v.displayName="Icon";var U={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},Y=e=>{let[t,n]=e.split("-");return t==="heading"?U[n]||"p":t==="label"?"label":"p"},ee={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},te=e=>e?(Array.isArray(e)?e:[e]).map(n=>{if(n.includes(":")){let[o,r]=n.split(":");return `${o}:text-${r}`}return `text-${n}`}).join(" "):"text-body-default",d=s__namespace.default.forwardRef(({variant:e="body-default",color:t="primary",as:n,className:o,children:r,weight:i,...a},l)=>{let c=te(e),m=t==="inherit"?"text-inherit":`text-${t}`,h=s__namespace.default.useMemo(()=>{let f=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return Y(f)},[e]);return s__namespace.default.createElement(n||h,{ref:l,className:`
2
2
  font-sans antialiased
3
3
  ${c}
4
4
  ${m}
5
5
  ${i&&`!${ee[i]}`}
6
6
  ${o}
7
- `,...a},s)});d.displayName="Text";var F={pink:"bg-tertiary-5",orange:"bg-tertiary-15",green:"bg-tertiary-25",purple:"bg-secondary-300"},re=e=>{let r=Object.keys(F),n=e.split("").reduce((i,a)=>a.charCodeAt(0)+((i<<5)-i),0),o=Math.abs(n)%r.length;return r[o]},A=t__namespace.forwardRef(({className:e,variant:r,iconName:n,children:o,...s},i)=>{let a=r||(typeof o=="string"?re(o):"pink");return t__namespace.createElement("span",{ref:i,className:p("inline-flex items-center gap-2","rounded px-2 py-1.5","text-sm font-medium",F[a],e),...s},n&&t__namespace.createElement(b,{size:16,name:n}),t__namespace.createElement(d,{variant:"body-xxs-semibold",className:"mt-0.5"},o))});A.displayName="Badge";var G={sm:"h-4",md:"h-6",lg:"h-8"},oe={sm:"w-20",md:"w-32",lg:"w-48"},I={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"},v=t__namespace.default.forwardRef(({variant:e="text",size:r="md",lines:n=1,className:o,animate:s=true},i)=>{let a="bg-secondary-50 rounded-lg overflow-hidden",l=s?"animate-pulse":"",m=typeof r=="number"?(T=>({height:`${T}px`,width:e==="avatar"||e==="image"?`${T}px`:undefined}))(r):undefined,g=()=>{switch(e){case "text":return t__namespace.default.createElement("div",{className:"flex flex-col gap-2"},Array.from({length:n}).map((T,f)=>t__namespace.default.createElement("div",{key:f,style:m,className:p(a,l,typeof r=="string"?G[r]:undefined,f===n-1&&n>1?"w-3/4":"w-full",o)})));case "image":return t__namespace.default.createElement("div",{style:m,className:p(a,l,(!m||!o)&&"aspect-square w-full max-w-[300px]",o)});case "button":return t__namespace.default.createElement("div",{style:m,className:p(a,l,typeof r=="string"&&[G[r],oe[r]],o)});case "card":return t__namespace.default.createElement("div",{className:p("flex flex-col gap-4 p-6 border border-stroke rounded-xl",o)},t__namespace.default.createElement("div",{className:p(a,l,"w-16 h-16 rounded-full")}),t__namespace.default.createElement("div",{className:"space-y-2"},t__namespace.default.createElement("div",{className:p(a,l,"h-6 w-3/4")}),t__namespace.default.createElement("div",{className:p(a,l,"h-4 w-1/2")})),t__namespace.default.createElement("div",{className:"space-y-2"},t__namespace.default.createElement("div",{className:p(a,l,"h-4 w-full")}),t__namespace.default.createElement("div",{className:p(a,l,"h-4 w-full")}),t__namespace.default.createElement("div",{className:p(a,l,"h-4 w-2/3")})));case "avatar":return t__namespace.default.createElement("div",{style:m,className:p(a,l,"rounded-full",{[I.sm]:r==="sm",[I.md]:r==="md",[I.lg]:r==="lg"},o)});default:return null}};return t__namespace.default.createElement("div",{ref:i,className:p("w-full",o)},g())});v.displayName="Fallback";var R="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100";var L=t__namespace.default.forwardRef(({children:e,type:r="button",className:n,disabled:o,...s},i)=>t__namespace.default.createElement("button",{ref:i,type:r,disabled:o,className:p("appearance-none hover:opacity-80 transition-all active:scale-95",R,o&&"opacity-50 cursor-not-allowed",n),...s},e));L.displayName="Pressable";var W=({children:e,color:r="primary",className:n,onClose:o,...s})=>{let[i,a]=t.useState(false),l=t.useCallback(()=>{a(true);},[]),c=t.useCallback(()=>{a(false);},[]),m=t__namespace.default.createElement("div",{className:p("flex gap-2",o?"justify-between items-center":"items-center justify-center","hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white",r==="primary"?"text-primary-100":"text-primary",n),onMouseEnter:l,onMouseLeave:c},typeof e=="string"?t__namespace.default.createElement(d,{color:"inherit",variant:["md:body-default-medium","body-xxs-medium"],className:"truncate pt-0.5"},e):e,o&&t__namespace.default.createElement(L,{...s,onClick:o,className:"flex items-center justify-center"},t__namespace.default.createElement(b,{name:"close",size:12,color:i?"white":"primaryBlue"})));return o?m:t__namespace.default.createElement(L,{...s},m)};var j=({content:e,children:r,side:n="bottom",align:o="center",className:s,delayDuration:i=200,defaultOpen:a,open:l,onOpenChange:c,longPressDuration:m=500})=>{let[g,T]=t.useState(a||false),f=null,w=l??g,u=t.useCallback($=>{l||T($),c?.($);},[l,c]),Q=t.useCallback(()=>{f=setTimeout(()=>{u(true);},m);},[u,m]),V=t.useCallback(()=>{f&&(clearTimeout(f),f=null),setTimeout(()=>u(false),1500);},[f,u]);return t__namespace.createElement(h__namespace.Provider,{delayDuration:i},t__namespace.createElement(h__namespace.Root,{open:w,onOpenChange:u},t__namespace.createElement(h__namespace.Trigger,{asChild:true},t__namespace.createElement("span",{tabIndex:0,onTouchStart:Q,onTouchEnd:V,onTouchCancel:V},r)),t__namespace.createElement(h__namespace.Portal,null,t__namespace.createElement(h__namespace.Content,{side:n,align:o,sideOffset:4,className:p("z-50 overflow-hidden rounded-lg","bg-primary px-3 py-1.5","text-xs text-white","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[side=bottom]:slide-in-from-top-2","data-[side=top]:slide-in-from-bottom-2","select-none","max-w-60","touch-none",s)},typeof e=="string"?t__namespace.createElement(d,{variant:"body-default-medium",color:"white"},e):e,t__namespace.createElement(h__namespace.Arrow,{className:"fill-text-primary",width:10,height:5})))))};var P=4,S=3,Ye=({profileImage:e,name:r,location:n,memberSince:o,interests:s,badges:i,isLoading:a})=>{let l=t.useMemo(()=>s?.slice(0,P)||[],[s]),c=t.useMemo(()=>i?.slice(0,S)||[],[i]),m=s&&s.length>P,g=i&&i.length>S,T=s?s.length-P:0,f=i?i.length-S:0;return a?t__namespace.default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},t__namespace.default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},t__namespace.default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},t__namespace.default.createElement(v,{variant:"avatar",size:164}),t__namespace.default.createElement("div",{className:"flex flex-col gap-2"},t__namespace.default.createElement(v,{variant:"text",size:"lg",lines:1}),t__namespace.default.createElement(v,{variant:"text",size:"sm",lines:1})))),t__namespace.default.createElement("div",{className:"flex flex-col gap-4"},t__namespace.default.createElement(v,{variant:"text",lines:3}),t__namespace.default.createElement("div",{className:"flex gap-2"},t__namespace.default.createElement(v,{variant:"button",size:"sm"}),t__namespace.default.createElement(v,{variant:"button",size:"sm"})))):t__namespace.default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},t__namespace.default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},t__namespace.default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},t__namespace.default.createElement("div",{className:"flex items-center justify-center w-[164px] h-[164px]"},e?t__namespace.default.createElement("img",{src:e,alt:`Profile for ${r}`,className:"object-cover rounded-full w-full h-full"}):t__namespace.default.createElement("div",{className:"w-full h-full bg-secondary-50 rounded-full"}))),t__namespace.default.createElement("div",{className:"flex flex-col gap-2"},t__namespace.default.createElement(d,{as:"h1",variant:["lg:heading-lg","md:heading-md","heading-sm"],className:"text-wrap text-center md:text-left"},r),i&&t__namespace.default.createElement("div",{className:"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center"},c.map((w,u)=>t__namespace.default.createElement(A,{key:u,...w})),g&&t__namespace.default.createElement(j,{content:i.slice(S).map(w=>w.children).join(", ")},t__namespace.default.createElement(d,{variant:"label-default"},"+",f," more"))),t__namespace.default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center pt-1"},n&&t__namespace.default.createElement(t__namespace.default.Fragment,null,t__namespace.default.createElement(b,{name:"location",color:"secondary"}),t__namespace.default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},n))),t__namespace.default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center"},o&&t__namespace.default.createElement(t__namespace.default.Fragment,null,t__namespace.default.createElement(b,{name:"profile",color:"secondary"}),t__namespace.default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},"Member Since"," ",t__namespace.default.createElement(d,{as:"span",variant:["lg:body-lg-semibold","md:body-default-bold","body-xs-bold"]},o)))),s&&t__namespace.default.createElement("div",{className:"flex flex-col gap-2 pt-4"},t__namespace.default.createElement(d,{variant:["sm:heading-xs","body-default-bold"],className:"sm:text-left text-center"},"Interests"),t__namespace.default.createElement("div",{className:"flex flex-wrap gap-2 sm:justify-start justify-center items-center"},l.map((w,u)=>t__namespace.default.createElement(W,{key:u},w)),m&&t__namespace.default.createElement(j,{content:s.slice(P).join(", ")},t__namespace.default.createElement(d,{variant:"label-default"},"+",T," more")))))))};exports.ProfileCard=Ye;//# sourceMappingURL=ProfileCard.cjs.map
7
+ `,...a},r)});d.displayName="Text";var R={pink:"bg-tertiary-5",orange:"bg-tertiary-15",green:"bg-tertiary-25",purple:"bg-secondary-300"},re=e=>{let t=Object.keys(R),n=e.split("").reduce((i,a)=>a.charCodeAt(0)+((i<<5)-i),0),o=Math.abs(n)%t.length;return t[o]},I=s__namespace.forwardRef(({className:e,variant:t,iconName:n,children:o,...r},i)=>{let a=t||(typeof o=="string"?re(o):"pink");return s__namespace.createElement("span",{ref:i,className:p("inline-flex items-center gap-2","rounded px-2 py-1.5","text-sm font-medium",R[a],e),...r},n&&s__namespace.createElement(v,{size:16,name:n}),s__namespace.createElement(d,{variant:"body-xxs-semibold",className:"mt-0.5"},o))});I.displayName="Badge";var G={sm:"h-4",md:"h-6",lg:"h-8"},oe={sm:"w-20",md:"w-32",lg:"w-48"},B={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"},y=s__namespace.default.forwardRef(({variant:e="text",size:t="md",lines:n=1,className:o,animate:r=true},i)=>{let a="bg-secondary-50 rounded-lg overflow-hidden",l=r?"animate-pulse":"",m=typeof t=="number"?(b=>({height:`${b}px`,width:e==="avatar"||e==="image"?`${b}px`:void 0}))(t):void 0,h=()=>{switch(e){case "text":return s__namespace.default.createElement("div",{className:"flex flex-col gap-2"},Array.from({length:n}).map((b,f)=>s__namespace.default.createElement("div",{key:f,style:m,className:p(a,l,typeof t=="string"?G[t]:void 0,f===n-1&&n>1?"w-3/4":"w-full",o)})));case "image":return s__namespace.default.createElement("div",{style:m,className:p(a,l,(!m||!o)&&"aspect-square w-full max-w-[300px]",o)});case "button":return s__namespace.default.createElement("div",{style:m,className:p(a,l,typeof t=="string"&&[G[t],oe[t]],o)});case "card":return s__namespace.default.createElement("div",{className:p("flex flex-col gap-4 p-6 border border-stroke rounded-xl",o)},s__namespace.default.createElement("div",{className:p(a,l,"w-16 h-16 rounded-full")}),s__namespace.default.createElement("div",{className:"space-y-2"},s__namespace.default.createElement("div",{className:p(a,l,"h-6 w-3/4")}),s__namespace.default.createElement("div",{className:p(a,l,"h-4 w-1/2")})),s__namespace.default.createElement("div",{className:"space-y-2"},s__namespace.default.createElement("div",{className:p(a,l,"h-4 w-full")}),s__namespace.default.createElement("div",{className:p(a,l,"h-4 w-full")}),s__namespace.default.createElement("div",{className:p(a,l,"h-4 w-2/3")})));case "avatar":return s__namespace.default.createElement("div",{style:m,className:p(a,l,"rounded-full",{[B.sm]:t==="sm",[B.md]:t==="md",[B.lg]:t==="lg"},o)});default:return null}};return s__namespace.default.createElement("div",{ref:i,className:p("w-full",o)},h())});y.displayName="Fallback";var _="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100";var P=s__namespace.default.forwardRef(({children:e,type:t="button",className:n,disabled:o,...r},i)=>s__namespace.default.createElement("button",{ref:i,type:t,disabled:o,className:p("appearance-none hover:opacity-80 transition-all active:scale-95",_,o&&"opacity-50 cursor-not-allowed",n),...r},e));P.displayName="Pressable";function q({children:e,color:t="primary",className:n,onClose:o,...r}){let[i,a]=s.useState(false),l=s.useCallback(()=>{a(true);},[]),c=s.useCallback(()=>{a(false);},[]),m=s__namespace.default.createElement("div",{className:p("flex gap-2",o?"justify-between items-center max-w-fit":"items-center justify-center","hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white",t==="primary"?"text-primary-100":"text-primary",n),onMouseEnter:l,onMouseLeave:c},typeof e=="string"?s__namespace.default.createElement(d,{color:"inherit",variant:["md:body-default-medium","body-xxs-medium"],className:"truncate pt-0.5"},e):e,o&&s__namespace.default.createElement(P,{...r,onClick:o,className:"flex items-center justify-center"},s__namespace.default.createElement(v,{name:"close",size:12,color:i?"white":"primaryBlue"})));return o?m:s__namespace.default.createElement(P,{...r},m)}function V({content:e,children:t,side:n="bottom",align:o="center",className:r,delayDuration:i=200,defaultOpen:a,open:l,onOpenChange:c,longPressDuration:m=500}){let[h,b]=s.useState(a||false),f=null,w=l??h,u=s.useCallback(N=>{l||b(N),c?.(N);},[l,c]),E=s.useCallback(()=>{f=setTimeout(()=>{u(true);},m);},[u,m]),z=s.useCallback(()=>{f&&(clearTimeout(f),f=null),setTimeout(()=>u(false),1500);},[f,u]);return s__namespace.createElement(g__namespace.Provider,{delayDuration:i},s__namespace.createElement(g__namespace.Root,{open:w,onOpenChange:u},s__namespace.createElement(g__namespace.Trigger,{asChild:true},s__namespace.createElement("span",{tabIndex:0,onTouchStart:E,onTouchEnd:z,onTouchCancel:z},t)),s__namespace.createElement(g__namespace.Portal,null,s__namespace.createElement(g__namespace.Content,{side:n,align:o,sideOffset:4,className:p("z-50 overflow-hidden rounded-lg","bg-primary px-3 py-1.5","text-xs text-white","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[side=bottom]:slide-in-from-top-2","data-[side=top]:slide-in-from-bottom-2","select-none","max-w-60","touch-none",r)},typeof e=="string"?s__namespace.createElement(d,{variant:"body-default-medium",color:"white"},e):e,s__namespace.createElement(g__namespace.Arrow,{className:"fill-text-primary",width:10,height:5})))))}var S=4,$=3;function We({profileImage:e,name:t,location:n,memberSince:o,interests:r,badges:i,isLoading:a}){let l=s.useMemo(()=>r?.slice(0,S)||[],[r]),c=s.useMemo(()=>i?.slice(0,$)||[],[i]),m=r&&r.length>S,h=i&&i.length>$,b=r?r.length-S:0,f=i?i.length-$:0,w=a||!n&&!o&&!r&&!i;return s__namespace.default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},s__namespace.default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},s__namespace.default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},s__namespace.default.createElement("div",{className:"flex items-center justify-center w-[164px] h-[164px]"},e?s__namespace.default.createElement("img",{src:e,alt:`Profile for ${t}`,className:"object-cover rounded-full w-full h-full"}):w?s__namespace.default.createElement(y,{variant:"avatar",size:164}):s__namespace.default.createElement("div",{className:"w-full h-full bg-secondary-50 rounded-full"}))),s__namespace.default.createElement("div",{className:"flex flex-col gap-2"},t?s__namespace.default.createElement(d,{as:"h1",variant:["lg:heading-lg","md:heading-md","heading-sm"],className:"text-wrap text-center md:text-left"},t):s__namespace.default.createElement(y,{variant:"text",size:"lg",lines:1}),w?s__namespace.default.createElement("div",{className:"flex gap-2 py-2"},s__namespace.default.createElement(y,{variant:"button",size:"sm"}),s__namespace.default.createElement(y,{variant:"button",size:"sm"})):i&&i.length>0?s__namespace.default.createElement("div",{className:"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center"},c.map((u,E)=>s__namespace.default.createElement(I,{key:E,...u})),h&&s__namespace.default.createElement(V,{content:i.slice($).map(u=>u.children).join(", ")},s__namespace.default.createElement(d,{variant:"label-default"},"+",f," more"))):null,s__namespace.default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center pt-1"},w?s__namespace.default.createElement(y,{variant:"text",size:"sm",lines:1}):n?s__namespace.default.createElement(s__namespace.default.Fragment,null,s__namespace.default.createElement(v,{name:"location",color:"secondary"}),s__namespace.default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},n)):null),s__namespace.default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center"},w?s__namespace.default.createElement(y,{variant:"text",size:"sm",lines:1}):o?s__namespace.default.createElement(s__namespace.default.Fragment,null,s__namespace.default.createElement(v,{name:"profile",color:"secondary"}),s__namespace.default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},"Member Since"," ",s__namespace.default.createElement(d,{as:"span",variant:["lg:body-lg-semibold","md:body-default-bold","body-xs-bold"]},o))):null),w?s__namespace.default.createElement("div",{className:"flex flex-col gap-2 pt-4"},s__namespace.default.createElement(y,{variant:"text",size:"sm",lines:3})):r&&r.length>0?s__namespace.default.createElement("div",{className:"flex flex-col gap-2 pt-4"},s__namespace.default.createElement(d,{variant:["sm:heading-xs","body-default-bold"],className:"sm:text-left text-center"},"Interests"),s__namespace.default.createElement("div",{className:"flex flex-wrap gap-2 sm:justify-start justify-center items-center"},l.map((u,E)=>s__namespace.default.createElement(q,{key:E},u)),m&&s__namespace.default.createElement(V,{content:r.slice(S).join(", ")},s__namespace.default.createElement(d,{variant:"label-default"},"+",b," more")))):null)))}exports.ProfileCard=We;//# sourceMappingURL=ProfileCard.cjs.map
8
8
  //# sourceMappingURL=ProfileCard.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx","../../src/components/Text.tsx","../../src/components/Badge.tsx","../../src/components/Fallback.tsx","../../src/utils/tailwind.ts","../../src/components/Pressable.tsx","../../src/components/Tag.tsx","../../src/components/Tooltip.tsx","../../src/components/ProfileCard.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles","HEADING_ELEMENT_MAP","getElementFromVariant","variant","category","fontWeight","processVariants","variants","typographyClass","Text","as","children","weight","typographyClasses","colorClasses","suggestedElement","baseVariant","stringToVariant","str","variantKeys","hash","acc","char","index","Badge","M","iconName","finalVariant","sizeMap","widthMap","avatarSizeMap","Fallback","lines","animate","baseClasses","animationClasses","customStyle","renderContent","_","focusRingStyles","Pressable","type","disabled","Tag","onClose","pressableProps","isHovered","setIsHovered","useState","handleMouseEnter","useCallback","handleMouseLeave","content","Tooltip","side","align","delayDuration","defaultOpen","controlledOpen","onOpenChange","longPressDuration","isOpen","setIsOpen","longPressTimer","open","handleOpenChange","newOpen","handleTouchStart","handleTouchEnd","y","h","MAX_INTERESTS","MAX_BADGES","ProfileCard","profileImage","location","memberSince","interests","badges","isLoading","visibleInterests","useMemo","visibleBadges","hasMoreInterests","hasMoreBadges","remainingInterests","remainingBadges","badge","idx","b","interest"],"mappings":"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","file":"ProfileCard.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import { IconMap, IconName } from \"@deckai/icons\";\nimport React, { SVGProps } from \"react\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport { ResponsiveSize, getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\n// Using CSS variables to support dark mode\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"var(--color-primary)\",\n secondary: \"var(--color-secondary)\",\n white: \"var(--color-white)\",\n primaryBlue: \"var(--color-primary-100)\",\n disabled: \"var(--color-disabled)\",\n danger: \"var(--color-danger)\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n","import React from \"react\";\nimport { Typography } from \"../types/tailwind\";\nimport { Breakpoint } from \"../utils/responsive\";\n\ntype TextElement =\n | \"p\"\n | \"span\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"strong\"\n | \"em\"\n | \"blockquote\"\n | \"pre\"\n | \"code\"\n | \"small\"\n | \"label\"\n | \"a\";\n\n// HTML element mapping type\ntype HTMLElementByTag = {\n p: HTMLParagraphElement;\n span: HTMLSpanElement;\n h1: HTMLHeadingElement;\n h2: HTMLHeadingElement;\n h3: HTMLHeadingElement;\n h4: HTMLHeadingElement;\n h5: HTMLHeadingElement;\n h6: HTMLHeadingElement;\n strong: HTMLElement;\n em: HTMLElement;\n blockquote: HTMLQuoteElement;\n pre: HTMLPreElement;\n code: HTMLElement;\n small: HTMLElement;\n label: HTMLLabelElement;\n a: HTMLAnchorElement;\n};\n\n// HTML props mapping type\ntype HTMLPropsMap = {\n p: React.HTMLAttributes<HTMLParagraphElement>;\n span: React.HTMLAttributes<HTMLSpanElement>;\n h1: React.HTMLAttributes<HTMLHeadingElement>;\n h2: React.HTMLAttributes<HTMLHeadingElement>;\n h3: React.HTMLAttributes<HTMLHeadingElement>;\n h4: React.HTMLAttributes<HTMLHeadingElement>;\n h5: React.HTMLAttributes<HTMLHeadingElement>;\n h6: React.HTMLAttributes<HTMLHeadingElement>;\n strong: React.HTMLAttributes<HTMLElement>;\n em: React.HTMLAttributes<HTMLElement>;\n blockquote: React.HTMLAttributes<HTMLQuoteElement>;\n pre: React.HTMLAttributes<HTMLPreElement>;\n code: React.HTMLAttributes<HTMLElement>;\n small: React.HTMLAttributes<HTMLElement>;\n label: React.LabelHTMLAttributes<HTMLLabelElement>;\n a: Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"color\">;\n};\n\ntype TextColor =\n | \"primary\"\n | \"secondary\"\n | \"white\"\n | \"primary-blue\"\n | \"disabled\"\n | \"danger\"\n | \"inherit\"\n | \"primary-100\";\n\nconst HEADING_ELEMENT_MAP: Record<string, TextElement> = {\n xl: \"h1\",\n lg: \"h1\",\n md: \"h2\",\n sm: \"h3\",\n xs: \"h4\"\n};\n\nconst getElementFromVariant = (variant: TypographyKey): TextElement => {\n const [category, size] = variant.split(\"-\");\n\n if (category === \"heading\") {\n return HEADING_ELEMENT_MAP[size] || \"p\";\n }\n\n if (category === \"label\") {\n return \"label\";\n }\n\n return \"p\";\n};\n\ntype Weight = \"light\" | \"regular\" | \"semibold\" | \"bold\";\n\nconst fontWeight: Record<Weight, string> = {\n light: \"font-light\",\n regular: \"font-regular\",\n semibold: \"font-semibold\",\n bold: \"font-bold\"\n};\n\ntype ResponsiveVariant = TypographyKey | `${Breakpoint}:${TypographyKey}`;\n\ntype TypographyCategory = keyof Typography;\ntype TypographyValue<T extends TypographyCategory> = Extract<\n keyof Typography[T],\n string | number | bigint | boolean | null | undefined\n>;\ntype TypographyKey = {\n [T in TypographyCategory]: `${T}-${TypographyValue<T>}`;\n}[TypographyCategory];\n\n// Update TextProps to use ResponsiveVariant\nexport type TextProps<T extends TextElement = \"p\"> = {\n variant?: ResponsiveVariant | ResponsiveVariant[];\n color?: TextColor;\n as?: T;\n className?: string;\n children: React.ReactNode;\n weight?: Weight;\n} & HTMLPropsMap[T];\n\n// Add helper function to process variants\nconst processVariants = (\n variants: ResponsiveVariant | ResponsiveVariant[] | undefined\n): string => {\n if (!variants) return \"text-body-default\";\n\n const variantArray = Array.isArray(variants) ? variants : [variants];\n\n return variantArray\n .map((variant) => {\n if (variant.includes(\":\")) {\n const [breakpoint, typographyClass] = variant.split(\":\");\n return `${breakpoint}:text-${typographyClass}`;\n }\n return `text-${variant}`;\n })\n .join(\" \");\n};\n\nexport const Text = React.forwardRef(\n <T extends TextElement = \"p\">(\n {\n variant = \"body-default\",\n color = \"primary\",\n as,\n className,\n children,\n weight,\n ...props\n }: TextProps<T>,\n ref: React.ForwardedRef<HTMLElementByTag[T]>\n ) => {\n // Process typography classes with breakpoints\n const typographyClasses = processVariants(variant);\n\n // Get color styles using Tailwind classes that reference CSS variables\n const colorClasses = color === \"inherit\" ? \"text-inherit\" : `text-${color}`;\n\n const suggestedElement = React.useMemo(() => {\n const baseVariant =\n typeof variant === \"string\"\n ? variant.split(\":\").pop()!\n : Array.isArray(variant)\n ? variant[0].split(\":\").pop()!\n : \"body-default\";\n return getElementFromVariant(baseVariant as TypographyKey);\n }, [variant]);\n\n const Component = (as || suggestedElement) as T;\n\n return (\n // @ts-expect-error TODO: figure this out\n <Component\n ref={ref}\n className={`\n font-sans antialiased\n ${typographyClasses}\n ${colorClasses}\n ${weight && `!${fontWeight[weight]}`}\n ${className}\n `}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";\n","import { IconName } from \"@deckai/icons\";\nimport * as React from \"react\";\nimport { cn } from \"../utils\";\nimport { Icon } from \"./Icon\";\nimport { Text } from \"./Text\";\n\nexport type BadgeProps = {\n variant?: \"pink\" | \"orange\" | \"green\" | \"purple\";\n iconName?: IconName;\n} & React.HTMLAttributes<HTMLSpanElement>;\n\nconst variants = {\n pink: \"bg-tertiary-5\",\n orange: \"bg-tertiary-15\",\n green: \"bg-tertiary-25\",\n purple: \"bg-secondary-300\"\n};\n\nconst stringToVariant = (str: string): keyof typeof variants => {\n const variantKeys = Object.keys(variants) as Array<keyof typeof variants>;\n // Let's log some values to understand what's happening\n const hash = str\n .split(\"\")\n .reduce((acc, char) => char.charCodeAt(0) + ((acc << 5) - acc), 0);\n\n const index = Math.abs(hash) % variantKeys.length;\n const selectedVariant = variantKeys[index];\n\n return selectedVariant;\n};\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, iconName, children, ...props }, ref) => {\n const finalVariant =\n variant ||\n (typeof children === \"string\" ? stringToVariant(children) : \"pink\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-2\",\n \"rounded px-2 py-1.5\",\n \"text-sm font-medium\",\n variants[finalVariant],\n className\n )}\n {...props}\n >\n {iconName && <Icon size={16} name={iconName} />}\n <Text variant=\"body-xxs-semibold\" className=\"mt-0.5\">\n {children}\n </Text>\n </span>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n","import React from \"react\";\nimport { cn } from \"../utils\";\n\nexport type FallbackVariant = \"text\" | \"image\" | \"button\" | \"card\" | \"avatar\";\nexport type FallbackSize = \"sm\" | \"md\" | \"lg\" | number;\n\nexport type FallbackProps = {\n /**\n * The type of content being loaded\n */\n variant?: FallbackVariant;\n /**\n * The size of the fallback element\n * Can be a predefined size ('sm' | 'md' | 'lg') or a custom pixel value\n */\n size?: FallbackSize;\n /**\n * Whether to show multiple lines (only applies to text variant)\n */\n lines?: number;\n /**\n * Additional classes to apply to the fallback\n */\n className?: string;\n /**\n * Whether to show the loading animation\n */\n animate?: boolean;\n};\n\n// Updated to match existing component sizes\nconst sizeMap = {\n sm: \"h-4\", // 16px\n md: \"h-6\", // 24px\n lg: \"h-8\" // 32px\n};\n\n// Updated to match existing component sizes\nconst widthMap = {\n sm: \"w-20\", // 80px\n md: \"w-32\", // 128px\n lg: \"w-48\" // 192px\n};\n\n// Updated to match Avatar sizes\nconst avatarSizeMap = {\n sm: \"w-8 h-8\", // 32px\n md: \"w-12 h-12\", // 48px\n lg: \"w-16 h-16\" // 64px\n};\n\nexport const Fallback = React.forwardRef<HTMLDivElement, FallbackProps>(\n (\n { variant = \"text\", size = \"md\", lines = 1, className, animate = true },\n ref\n ) => {\n const baseClasses = \"bg-secondary-50 rounded-lg overflow-hidden\";\n const animationClasses = animate ? \"animate-pulse\" : \"\";\n\n const getCustomSizeStyle = (size: number) => ({\n height: `${size}px`,\n width:\n variant === \"avatar\" || variant === \"image\" ? `${size}px` : undefined\n });\n\n const customStyle =\n typeof size === \"number\" ? getCustomSizeStyle(size) : undefined;\n\n const renderContent = () => {\n switch (variant) {\n case \"text\":\n return (\n <div className=\"flex flex-col gap-2\">\n {Array.from({ length: lines }).map((_, index) => (\n <div\n key={index}\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n typeof size === \"string\" ? sizeMap[size] : undefined,\n index === lines - 1 && lines > 1 ? \"w-3/4\" : \"w-full\",\n className\n )}\n />\n ))}\n </div>\n );\n\n case \"image\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n (!customStyle || !className) &&\n \"aspect-square w-full max-w-[300px]\",\n className\n )}\n />\n );\n\n case \"button\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n typeof size === \"string\" && [sizeMap[size], widthMap[size]],\n className\n )}\n />\n );\n\n case \"card\":\n return (\n <div\n className={cn(\n \"flex flex-col gap-4 p-6 border border-stroke rounded-xl\",\n className\n )}\n >\n <div\n className={cn(\n baseClasses,\n animationClasses,\n \"w-16 h-16 rounded-full\"\n )}\n />\n <div className=\"space-y-2\">\n <div\n className={cn(baseClasses, animationClasses, \"h-6 w-3/4\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-1/2\")}\n />\n </div>\n <div className=\"space-y-2\">\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-full\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-full\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-2/3\")}\n />\n </div>\n </div>\n );\n\n case \"avatar\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n \"rounded-full\",\n {\n [avatarSizeMap.sm]: size === \"sm\",\n [avatarSizeMap.md]: size === \"md\",\n [avatarSizeMap.lg]: size === \"lg\"\n },\n className\n )}\n />\n );\n\n default:\n return null;\n }\n };\n\n return (\n <div ref={ref} className={cn(\"w-full\", className)}>\n {renderContent()}\n </div>\n );\n }\n);\n\nFallback.displayName = \"Fallback\";\n","import { Colors, Typography } from \"../types/tailwind\";\n\n// Generate safelist patterns for all color utilities so you can use any theme color variable in your code\nexport const generateSafelist = (colors: Colors, typography: Typography) => {\n const colorNames = Object.keys(colors) as (keyof Colors)[];\n const utilities = [\"bg\", \"text\", \"border\", \"ring\", \"divide\", \"outline\"];\n const variants = [\"hover:\", \"focus:\", \"active:\", \"disabled:\"];\n const breakpoints = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"];\n const sizes = [\"24\", \"42\", \"48\", \"64\", \"72\"]; // Add all the sizes you need\n\n const safelist: (string | { pattern: RegExp; variants: string[] })[] = [];\n\n colorNames.forEach((colorName) => {\n if (typeof colors[colorName] === \"object\") {\n // Handle nested color objects (with number keys)\n Object.keys(colors[colorName]).forEach((shade) => {\n utilities.forEach((utility) => {\n // Base utility\n safelist.push(`${utility}-${colorName}-${shade}`);\n\n // Variant utilities\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}-${shade}`);\n });\n });\n });\n } else {\n // Handle direct color values\n utilities.forEach((utility) => {\n safelist.push(`${utility}-${colorName}`);\n\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}`);\n });\n });\n }\n });\n\n // Generate typography classes\n Object.entries(typography).forEach(([family, sizes]) => {\n Object.keys(sizes).forEach((size) => {\n // Base typography classes\n safelist.push(`text-${family}-${size}`);\n\n // Add variants\n variants.forEach((variant) => {\n safelist.push(`${variant}text-${family}-${size}`);\n });\n });\n });\n\n const typographyClasses = Object.entries(typography).flatMap(\n ([category, sizes]) =>\n Object.keys(sizes).map((size) => `text-${category}-${size}`)\n );\n\n // Generate responsive variants\n const responsiveTypographyClasses = typographyClasses.flatMap((className) =>\n breakpoints.map((breakpoint) => `${breakpoint}:${className}`)\n );\n\n // Generate size classes with responsive variants\n const sizeClasses = sizes.flatMap((size) => [\n `h-[${size}px]`,\n `w-[${size}px]`,\n ...breakpoints.flatMap((bp) => [\n `${bp}:h-[${size}px]`,\n `${bp}:w-[${size}px]`\n ])\n ]);\n\n return [...typographyClasses, ...responsiveTypographyClasses, ...sizeClasses];\n};\n\nexport const focusRingStyles =\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100\";\nexport const focusRingWithinStyles =\n \"focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-100\";\nexport const focusRingStylesCoerced = \"ring-2 ring-primary-100\";\n","import React, { ButtonHTMLAttributes } from \"react\";\nimport { focusRingStyles } from \"../utils/tailwind\";\nimport { cn } from \"../utils\";\n\nexport type PressableProps = ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const Pressable = React.forwardRef<HTMLButtonElement, PressableProps>(\n ({ children, type = \"button\", className, disabled, ...props }, ref) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n className={cn(\n \"appearance-none hover:opacity-80 transition-all active:scale-95\",\n focusRingStyles,\n disabled && \"opacity-50 cursor-not-allowed\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n);\n\nPressable.displayName = \"Pressable\";\n","import React, { HTMLAttributes, useCallback, useState } from \"react\";\nimport { cn } from \"../utils\";\nimport { Icon } from \"./Icon\";\nimport { Pressable, PressableProps } from \"./Pressable\";\nimport { Text } from \"./Text\";\n\nexport type TagProps = {\n children: React.ReactNode;\n padded?: boolean;\n color?: \"primary\" | \"text\";\n onClose?: () => void;\n} & HTMLAttributes<HTMLDivElement> &\n PressableProps;\n\nexport const Tag = ({\n children,\n color = \"primary\",\n className,\n onClose,\n ...pressableProps\n}: TagProps) => {\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const content = (\n <div\n className={cn(\n \"flex gap-2\",\n onClose\n ? \"justify-between items-center\"\n : \"items-center justify-center\",\n \"hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white\",\n color === \"primary\" ? \"text-primary-100\" : \"text-primary\",\n className\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {typeof children === \"string\" ? (\n <Text\n color=\"inherit\"\n variant={[\"md:body-default-medium\", \"body-xxs-medium\"]}\n className=\"truncate pt-0.5\"\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {onClose && (\n <Pressable\n {...pressableProps}\n onClick={onClose}\n className=\"flex items-center justify-center\"\n >\n <Icon\n name=\"close\"\n size={12}\n color={isHovered ? \"white\" : \"primaryBlue\"}\n />\n </Pressable>\n )}\n </div>\n );\n\n return onClose ? (\n content\n ) : (\n <Pressable {...pressableProps}>{content}</Pressable>\n );\n};\n","import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport { cn } from \"../utils\";\nimport { Text } from \"./Text\";\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n className?: string;\n delayDuration?: number;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Duration in ms for long press on mobile devices */\n longPressDuration?: number;\n}\n\nexport const Tooltip = ({\n content,\n children,\n side = \"bottom\",\n align = \"center\",\n className,\n delayDuration = 200,\n defaultOpen,\n open: controlledOpen,\n onOpenChange,\n longPressDuration = 500\n}: TooltipProps) => {\n const [isOpen, setIsOpen] = useState(defaultOpen || false);\n let longPressTimer: Timer | null = null;\n\n const open = controlledOpen ?? isOpen;\n const handleOpenChange = useCallback(\n (newOpen: boolean) => {\n if (!controlledOpen) {\n setIsOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n },\n [controlledOpen, onOpenChange]\n );\n\n const handleTouchStart = useCallback(() => {\n const timer = setTimeout(() => {\n handleOpenChange(true);\n }, longPressDuration);\n longPressTimer = timer;\n }, [handleOpenChange, longPressDuration]);\n\n const handleTouchEnd = useCallback(() => {\n if (longPressTimer) {\n clearTimeout(longPressTimer);\n longPressTimer = null;\n }\n // Keep tooltip open for a brief moment after touch\n setTimeout(() => handleOpenChange(false), 1500);\n }, [longPressTimer, handleOpenChange]);\n\n return (\n <TooltipPrimitive.Provider delayDuration={delayDuration}>\n <TooltipPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <TooltipPrimitive.Trigger asChild>\n <span\n tabIndex={0}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n onTouchCancel={handleTouchEnd}\n >\n {children}\n </span>\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n align={align}\n sideOffset={4}\n className={cn(\n \"z-50 overflow-hidden rounded-lg\",\n \"bg-primary px-3 py-1.5\",\n \"text-xs text-white\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"select-none\",\n \"max-w-60\",\n \"touch-none\", // Prevent touch events from interfering with scrolling\n className\n )}\n >\n {typeof content === \"string\" ? (\n <Text variant=\"body-default-medium\" color=\"white\">\n {content}\n </Text>\n ) : (\n content\n )}\n <TooltipPrimitive.Arrow\n className=\"fill-text-primary\"\n width={10}\n height={5}\n />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n );\n};\n","import React, { useMemo } from \"react\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Fallback } from \"./Fallback\";\nimport { Icon } from \"./Icon\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Tooltip } from \"./Tooltip\";\n\nexport type ProfileCardProps = {\n profileImage?: string;\n name?: string;\n location?: string;\n memberSince?: string;\n interests?: string[];\n badges?: BadgeProps[];\n isEditMode?: boolean;\n onEditClick?: () => void;\n isLoading?: boolean;\n};\n\nconst MAX_INTERESTS = 4;\nconst MAX_BADGES = 3;\n\nexport const ProfileCard = ({\n profileImage,\n name,\n location,\n memberSince,\n interests,\n badges,\n isLoading\n}: ProfileCardProps) => {\n const visibleInterests = useMemo(\n () => interests?.slice(0, MAX_INTERESTS) || [],\n [interests]\n );\n\n const visibleBadges = useMemo(\n () => badges?.slice(0, MAX_BADGES) || [],\n [badges]\n );\n\n const hasMoreInterests = interests && interests.length > MAX_INTERESTS;\n const hasMoreBadges = badges && badges.length > MAX_BADGES;\n const remainingInterests = interests ? interests.length - MAX_INTERESTS : 0;\n const remainingBadges = badges ? badges.length - MAX_BADGES : 0;\n\n if (isLoading) {\n return (\n <div className=\"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col\">\n <div className=\"flex md:flex-row flex-col gap-6\">\n <div className=\"flex flex-col gap-4 md:items-start items-center\">\n <Fallback variant=\"avatar\" size={164} />\n <div className=\"flex flex-col gap-2\">\n <Fallback variant=\"text\" size=\"lg\" lines={1} />\n <Fallback variant=\"text\" size=\"sm\" lines={1} />\n </div>\n </div>\n </div>\n <div className=\"flex flex-col gap-4\">\n <Fallback variant=\"text\" lines={3} />\n <div className=\"flex gap-2\">\n <Fallback variant=\"button\" size=\"sm\" />\n <Fallback variant=\"button\" size=\"sm\" />\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col\">\n <div className=\"flex md:flex-row flex-col gap-6\">\n <div className=\"flex flex-col gap-4 md:items-start items-center\">\n <div className=\"flex items-center justify-center w-[164px] h-[164px]\">\n {profileImage ? (\n <img\n src={profileImage}\n alt={`Profile for ${name}`}\n className=\"object-cover rounded-full w-full h-full\"\n />\n ) : (\n <div className=\"w-full h-full bg-secondary-50 rounded-full\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n <Text\n as=\"h1\"\n variant={[\"lg:heading-lg\", \"md:heading-md\", \"heading-sm\"]}\n className=\"text-wrap text-center md:text-left\"\n >\n {name}\n </Text>\n {badges && (\n <div className=\"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center\">\n {visibleBadges.map((badge, idx) => (\n <Badge key={idx} {...badge} />\n ))}\n {hasMoreBadges && (\n <Tooltip\n content={badges\n .slice(MAX_BADGES)\n .map((b) => b.children)\n .join(\", \")}\n >\n <Text variant=\"label-default\">+{remainingBadges} more</Text>\n </Tooltip>\n )}\n </div>\n )}\n <div className=\"flex gap-2 items-center sm:justify-start justify-center pt-1\">\n {location && (\n <>\n <Icon name=\"location\" color=\"secondary\" />\n <Text\n variant={[\"lg:body-lg\", \"md:body-default\", \"body-xs\"]}\n color=\"secondary\"\n className=\"sm:text-left text-center truncate max-w-[300px]\"\n >\n {location}\n </Text>\n </>\n )}\n </div>\n <div className=\"flex gap-2 items-center sm:justify-start justify-center\">\n {memberSince && (\n <>\n <Icon name=\"profile\" color=\"secondary\" />\n <Text\n variant={[\"lg:body-lg\", \"md:body-default\", \"body-xs\"]}\n color=\"secondary\"\n className=\"sm:text-left text-center truncate max-w-[300px]\"\n >\n Member Since{\" \"}\n <Text\n as=\"span\"\n variant={[\n \"lg:body-lg-semibold\",\n \"md:body-default-bold\",\n \"body-xs-bold\"\n ]}\n >\n {memberSince}\n </Text>\n </Text>\n </>\n )}\n </div>\n {interests && (\n <div className=\"flex flex-col gap-2 pt-4\">\n <Text\n variant={[\"sm:heading-xs\", \"body-default-bold\"]}\n className=\"sm:text-left text-center\"\n >\n Interests\n </Text>\n <div className=\"flex flex-wrap gap-2 sm:justify-start justify-center items-center\">\n {visibleInterests.map((interest, idx) => (\n <Tag key={idx}>{interest}</Tag>\n ))}\n {hasMoreInterests && (\n <Tooltip content={interests.slice(MAX_INTERESTS).join(\", \")}>\n <Text variant=\"label-default\">\n +{remainingInterests} more\n </Text>\n </Tooltip>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/utils/responsive.ts","../../src/components/Icon.tsx","../../src/components/Text.tsx","../../src/components/Badge.tsx","../../src/components/Fallback.tsx","../../src/components/Tag.tsx","../../src/utils/tailwind.ts","../../src/components/Pressable.tsx","../../src/components/Tooltip.tsx","../../src/components/ProfileCard.tsx"],"names":["cn","inputs","twMerge","clsx","BASE_SIZES","RESPONSIVE_SIZES","getSizeKey","size","getResponsiveSize","baseSize","classes","styles","key","baseKey","responsiveClasses","s","breakpoint","valueStr","value","valueKey","COLOR_MAP","Icon","React","name","color","title","className","style","props","ref","IconComponent","IconMap","responsiveSizeClasses","responsiveSizeStyles","HEADING_ELEMENT_MAP","getElementFromVariant","variant","category","fontWeight","processVariants","variants","typographyClass","Text","as","children","weight","typographyClasses","colorClasses","suggestedElement","baseVariant","stringToVariant","str","variantKeys","hash","acc","char","index","Badge","M","iconName","finalVariant","sizeMap","widthMap","avatarSizeMap","Fallback","lines","animate","baseClasses","animationClasses","customStyle","renderContent","_","focusRingStyles","Pressable","type","disabled","Tag","onClose","pressableProps","isHovered","setIsHovered","useState","handleMouseEnter","useCallback","handleMouseLeave","content","Tooltip","side","align","delayDuration","defaultOpen","controlledOpen","onOpenChange","longPressDuration","isOpen","setIsOpen","longPressTimer","open","handleOpenChange","newOpen","handleTouchStart","handleTouchEnd","T","g","MAX_INTERESTS","MAX_BADGES","ProfileCard","profileImage","location","memberSince","interests","badges","isLoading","visibleInterests","useMemo","visibleBadges","hasMoreInterests","hasMoreBadges","remainingInterests","remainingBadges","shouldShowSkeletons","badge","idx","b","interest"],"mappings":"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","file":"ProfileCard.cjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const noopFn = () => {};\n","export type Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\nexport type ResponsiveSize = number | `${Breakpoint}:${number}`;\n\ntype SizeKey =\n | \"12\"\n | \"16\"\n | \"18\"\n | \"20\"\n | \"24\"\n | \"32\"\n | \"36\"\n | \"40\"\n | \"42\"\n | \"48\"\n | \"64\"\n | \"72\";\n\n// These constants help Tailwind identify the classes during compilation\nconst BASE_SIZES: Record<SizeKey, string> = {\n \"12\": \"h-[12px] w-[12px]\",\n \"16\": \"h-[16px] w-[16px]\",\n \"18\": \"h-[18px] w-[18px]\",\n \"20\": \"h-[20px] w-[20px]\",\n \"24\": \"h-[24px] w-[24px]\",\n \"32\": \"h-[32px] w-[32px]\",\n \"36\": \"h-[36px] w-[36px]\",\n \"40\": \"h-[40px] w-[40px]\",\n \"42\": \"h-[42px] w-[42px]\",\n \"48\": \"h-[48px] w-[48px]\",\n \"64\": \"h-[64px] w-[64px]\",\n \"72\": \"h-[72px] w-[72px]\"\n};\n\nconst RESPONSIVE_SIZES: Record<Breakpoint, Record<SizeKey, string>> = {\n sm: {\n \"12\": \"sm:h-[12px] sm:w-[12px]\",\n \"16\": \"sm:h-[16px] sm:w-[16px]\",\n \"18\": \"sm:h-[18px] sm:w-[18px]\",\n \"20\": \"sm:h-[20px] sm:w-[20px]\",\n \"24\": \"sm:h-[24px] sm:w-[24px]\",\n \"32\": \"sm:h-[32px] sm:w-[32px]\",\n \"36\": \"sm:h-[36px] sm:w-[36px]\",\n \"40\": \"sm:h-[40px] sm:w-[40px]\",\n \"42\": \"sm:h-[42px] sm:w-[42px]\",\n \"48\": \"sm:h-[48px] sm:w-[48px]\",\n \"64\": \"sm:h-[64px] sm:w-[64px]\",\n \"72\": \"sm:h-[72px] sm:w-[72px]\"\n },\n md: {\n \"12\": \"md:h-[12px] md:w-[12px]\",\n \"16\": \"md:h-[16px] md:w-[16px]\",\n \"18\": \"md:h-[18px] md:w-[18px]\",\n \"20\": \"md:h-[20px] md:w-[20px]\",\n \"24\": \"md:h-[24px] md:w-[24px]\",\n \"32\": \"md:h-[32px] md:w-[32px]\",\n \"36\": \"md:h-[36px] md:w-[36px]\",\n \"40\": \"md:h-[40px] md:w-[40px]\",\n \"42\": \"md:h-[42px] md:w-[42px]\",\n \"48\": \"md:h-[48px] md:w-[48px]\",\n \"64\": \"md:h-[64px] md:w-[64px]\",\n \"72\": \"md:h-[72px] md:w-[72px]\"\n },\n lg: {\n \"12\": \"lg:h-[12px] lg:w-[12px]\",\n \"16\": \"lg:h-[16px] lg:w-[16px]\",\n \"18\": \"lg:h-[18px] lg:w-[18px]\",\n \"20\": \"lg:h-[20px] lg:w-[20px]\",\n \"24\": \"lg:h-[24px] lg:w-[24px]\",\n \"32\": \"lg:h-[32px] lg:w-[32px]\",\n \"36\": \"lg:h-[36px] lg:w-[36px]\",\n \"40\": \"lg:h-[40px] lg:w-[40px]\",\n \"42\": \"lg:h-[42px] lg:w-[42px]\",\n \"48\": \"lg:h-[48px] lg:w-[48px]\",\n \"64\": \"lg:h-[64px] lg:w-[64px]\",\n \"72\": \"lg:h-[72px] lg:w-[72px]\"\n },\n xl: {\n \"12\": \"xl:h-[12px] xl:w-[12px]\",\n \"16\": \"xl:h-[16px] xl:w-[16px]\",\n \"18\": \"xl:h-[18px] xl:w-[18px]\",\n \"20\": \"xl:h-[20px] xl:w-[20px]\",\n \"24\": \"xl:h-[24px] xl:w-[24px]\",\n \"32\": \"xl:h-[32px] xl:w-[32px]\",\n \"36\": \"xl:h-[36px] xl:w-[36px]\",\n \"40\": \"xl:h-[40px] xl:w-[40px]\",\n \"42\": \"xl:h-[42px] xl:w-[42px]\",\n \"48\": \"xl:h-[48px] xl:w-[48px]\",\n \"64\": \"xl:h-[64px] xl:w-[64px]\",\n \"72\": \"xl:h-[72px] xl:w-[72px]\"\n },\n \"2xl\": {\n \"12\": \"2xl:h-[12px] 2xl:w-[12px]\",\n \"16\": \"2xl:h-[16px] 2xl:w-[16px]\",\n \"18\": \"2xl:h-[18px] 2xl:w-[18px]\",\n \"20\": \"2xl:h-[20px] 2xl:w-[20px]\",\n \"24\": \"2xl:h-[24px] 2xl:w-[24px]\",\n \"32\": \"2xl:h-[32px] 2xl:w-[32px]\",\n \"36\": \"2xl:h-[36px] 2xl:w-[36px]\",\n \"40\": \"2xl:h-[40px] 2xl:w-[40px]\",\n \"42\": \"2xl:h-[42px] 2xl:w-[42px]\",\n \"48\": \"2xl:h-[48px] 2xl:w-[48px]\",\n \"64\": \"2xl:h-[64px] 2xl:w-[64px]\",\n \"72\": \"2xl:h-[72px] 2xl:w-[72px]\"\n }\n};\n\nconst getSizeKey = (size: number): SizeKey | undefined => {\n return String(size) as SizeKey;\n};\n\nexport const getResponsiveSize = (\n size: ResponsiveSize | ResponsiveSize[] | undefined,\n baseSize: number = 24\n): {\n responsiveSizeClasses: string;\n responsiveSizeStyles: Record<string, string>;\n} => {\n const classes: string[] = [];\n const styles: Record<string, string> = {};\n\n // If no size provided, use baseSize\n if (size === undefined) {\n const key = getSizeKey(baseSize);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${baseSize}px`;\n styles.width = `${baseSize}px`;\n }\n }\n\n // If size is a number, use that directly\n if (typeof size === \"number\") {\n const key = getSizeKey(size);\n if (key) {\n classes.push(BASE_SIZES[key]);\n } else {\n styles.height = `${size}px`;\n styles.width = `${size}px`;\n }\n }\n\n // If array of responsive sizes, generate responsive classes\n if (Array.isArray(size)) {\n const baseKey = getSizeKey(baseSize);\n const responsiveClasses = [\n (baseKey && BASE_SIZES[baseKey]) || `h-[${baseSize}px] w-[${baseSize}px]`\n ];\n\n size.forEach((s) => {\n if (typeof s === \"string\") {\n const [breakpoint, valueStr] = s.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const key = getSizeKey(value);\n classes.push(\n (key && RESPONSIVE_SIZES[breakpoint]?.[key]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n });\n\n classes.push(...responsiveClasses);\n }\n\n if (typeof size === \"string\") {\n const [breakpoint, valueStr] = size.split(\":\") as [Breakpoint, string];\n const value = parseInt(valueStr, 10);\n const valueKey = getSizeKey(value);\n classes.push(\n (valueKey && RESPONSIVE_SIZES[breakpoint]?.[valueKey]) ||\n `${breakpoint}:h-[${value}px] ${breakpoint}:w-[${value}px]`\n );\n }\n\n return {\n responsiveSizeClasses: classes.join(\" \"),\n responsiveSizeStyles: styles\n };\n};\n","import type { IconName } from \"@deckai/icons\";\nimport { IconMap } from \"@deckai/icons\";\nimport type { SVGProps } from \"react\";\nimport React from \"react\";\n\nimport type { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\nimport type { ResponsiveSize } from \"../utils/responsive\";\nimport { getResponsiveSize } from \"../utils/responsive\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: ResponsiveSize | ResponsiveSize[];\n /** @default primary */\n color?: IconColors;\n title?: string;\n className?: string;\n style?: React.CSSProperties;\n} & Omit<SVGProps<SVGSVGElement>, \"aria-hidden\" | \"aria-label\">;\n\n// Using CSS variables to support dark mode\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"var(--color-primary)\",\n secondary: \"var(--color-secondary)\",\n white: \"var(--color-white)\",\n primaryBlue: \"var(--color-primary-100)\",\n disabled: \"var(--color-disabled)\",\n danger: \"var(--color-danger)\"\n};\n\nexport const Icon = React.forwardRef<SVGSVGElement, IconProps>(\n (\n {\n name,\n size = 24,\n color = \"primary\",\n title,\n className,\n style = {},\n ...props\n },\n ref\n ) => {\n const IconComponent = IconMap[name];\n const { responsiveSizeClasses, responsiveSizeStyles } = getResponsiveSize(\n size,\n 24\n );\n\n return (\n <div\n className={cn(\n \"flex justify-center items-center\",\n responsiveSizeClasses,\n className\n )}\n style={{\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\n ...responsiveSizeStyles,\n ...style\n }}\n >\n <IconComponent\n ref={ref}\n aria-hidden={!title}\n aria-label={title}\n stroke={name.includes(\"filled\") ? undefined : COLOR_MAP[color]}\n {...props}\n />\n </div>\n );\n }\n);\n\nIcon.displayName = \"Icon\";\n","import React from \"react\";\n\nimport type { Typography } from \"../types/tailwind\";\nimport type { Breakpoint } from \"../utils/responsive\";\n\ntype TextElement =\n | \"p\"\n | \"span\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"strong\"\n | \"em\"\n | \"blockquote\"\n | \"pre\"\n | \"code\"\n | \"small\"\n | \"label\"\n | \"a\";\n\n// HTML element mapping type\ntype HTMLElementByTag = {\n p: HTMLParagraphElement;\n span: HTMLSpanElement;\n h1: HTMLHeadingElement;\n h2: HTMLHeadingElement;\n h3: HTMLHeadingElement;\n h4: HTMLHeadingElement;\n h5: HTMLHeadingElement;\n h6: HTMLHeadingElement;\n strong: HTMLElement;\n em: HTMLElement;\n blockquote: HTMLQuoteElement;\n pre: HTMLPreElement;\n code: HTMLElement;\n small: HTMLElement;\n label: HTMLLabelElement;\n a: HTMLAnchorElement;\n};\n\n// HTML props mapping type\ntype HTMLPropsMap = {\n p: React.HTMLAttributes<HTMLParagraphElement>;\n span: React.HTMLAttributes<HTMLSpanElement>;\n h1: React.HTMLAttributes<HTMLHeadingElement>;\n h2: React.HTMLAttributes<HTMLHeadingElement>;\n h3: React.HTMLAttributes<HTMLHeadingElement>;\n h4: React.HTMLAttributes<HTMLHeadingElement>;\n h5: React.HTMLAttributes<HTMLHeadingElement>;\n h6: React.HTMLAttributes<HTMLHeadingElement>;\n strong: React.HTMLAttributes<HTMLElement>;\n em: React.HTMLAttributes<HTMLElement>;\n blockquote: React.HTMLAttributes<HTMLQuoteElement>;\n pre: React.HTMLAttributes<HTMLPreElement>;\n code: React.HTMLAttributes<HTMLElement>;\n small: React.HTMLAttributes<HTMLElement>;\n label: React.LabelHTMLAttributes<HTMLLabelElement>;\n a: Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, \"color\">;\n};\n\ntype TextColor =\n | \"primary\"\n | \"secondary\"\n | \"white\"\n | \"primary-blue\"\n | \"disabled\"\n | \"danger\"\n | \"inherit\"\n | \"primary-100\";\n\nconst HEADING_ELEMENT_MAP: Record<string, TextElement> = {\n xl: \"h1\",\n lg: \"h1\",\n md: \"h2\",\n sm: \"h3\",\n xs: \"h4\"\n};\n\nconst getElementFromVariant = (variant: TypographyKey): TextElement => {\n const [category, size] = variant.split(\"-\");\n\n if (category === \"heading\") {\n return HEADING_ELEMENT_MAP[size] || \"p\";\n }\n\n if (category === \"label\") {\n return \"label\";\n }\n\n return \"p\";\n};\n\ntype Weight = \"light\" | \"regular\" | \"semibold\" | \"bold\";\n\nconst fontWeight: Record<Weight, string> = {\n light: \"font-light\",\n regular: \"font-regular\",\n semibold: \"font-semibold\",\n bold: \"font-bold\"\n};\n\ntype ResponsiveVariant = TypographyKey | `${Breakpoint}:${TypographyKey}`;\n\ntype TypographyCategory = keyof Typography;\ntype TypographyValue<T extends TypographyCategory> = Extract<\n keyof Typography[T],\n string | number | bigint | boolean | null | undefined\n>;\ntype TypographyKey = {\n [T in TypographyCategory]: `${T}-${TypographyValue<T>}`;\n}[TypographyCategory];\n\n// Update TextProps to use ResponsiveVariant\nexport type TextProps<T extends TextElement = \"p\"> = {\n variant?: ResponsiveVariant | ResponsiveVariant[];\n color?: TextColor;\n as?: T;\n className?: string;\n children: React.ReactNode;\n weight?: Weight;\n} & HTMLPropsMap[T];\n\n// Add helper function to process variants\nconst processVariants = (\n variants: ResponsiveVariant | ResponsiveVariant[] | undefined\n): string => {\n if (!variants) return \"text-body-default\";\n\n const variantArray = Array.isArray(variants) ? variants : [variants];\n\n return variantArray\n .map((variant) => {\n if (variant.includes(\":\")) {\n const [breakpoint, typographyClass] = variant.split(\":\");\n return `${breakpoint}:text-${typographyClass}`;\n }\n return `text-${variant}`;\n })\n .join(\" \");\n};\n\nexport const Text = React.forwardRef(\n <T extends TextElement = \"p\">(\n {\n variant = \"body-default\",\n color = \"primary\",\n as,\n className,\n children,\n weight,\n ...props\n }: TextProps<T>,\n ref: React.ForwardedRef<HTMLElementByTag[T]>\n ) => {\n // Process typography classes with breakpoints\n const typographyClasses = processVariants(variant);\n\n // Get color styles using Tailwind classes that reference CSS variables\n const colorClasses = color === \"inherit\" ? \"text-inherit\" : `text-${color}`;\n\n const suggestedElement = React.useMemo(() => {\n const baseVariant =\n typeof variant === \"string\"\n ? variant.split(\":\").pop()!\n : Array.isArray(variant)\n ? variant[0].split(\":\").pop()!\n : \"body-default\";\n return getElementFromVariant(baseVariant as TypographyKey);\n }, [variant]);\n\n const Component = (as || suggestedElement) as T;\n\n return (\n // @ts-expect-error TODO: figure this out\n <Component\n ref={ref}\n className={`\n font-sans antialiased\n ${typographyClasses}\n ${colorClasses}\n ${weight && `!${fontWeight[weight]}`}\n ${className}\n `}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";\n","import type { IconName } from \"@deckai/icons\";\nimport * as React from \"react\";\n\nimport { cn } from \"../utils\";\nimport { Icon } from \"./Icon\";\nimport { Text } from \"./Text\";\n\nexport type BadgeProps = {\n variant?: \"pink\" | \"orange\" | \"green\" | \"purple\";\n iconName?: IconName;\n} & React.HTMLAttributes<HTMLSpanElement>;\n\nconst variants = {\n pink: \"bg-tertiary-5\",\n orange: \"bg-tertiary-15\",\n green: \"bg-tertiary-25\",\n purple: \"bg-secondary-300\"\n};\n\nconst stringToVariant = (str: string): keyof typeof variants => {\n const variantKeys = Object.keys(variants) as Array<keyof typeof variants>;\n // Let's log some values to understand what's happening\n const hash = str\n .split(\"\")\n .reduce((acc, char) => char.charCodeAt(0) + ((acc << 5) - acc), 0);\n\n const index = Math.abs(hash) % variantKeys.length;\n const selectedVariant = variantKeys[index];\n\n return selectedVariant;\n};\n\nexport const Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant, iconName, children, ...props }, ref) => {\n const finalVariant =\n variant ||\n (typeof children === \"string\" ? stringToVariant(children) : \"pink\");\n return (\n <span\n ref={ref}\n className={cn(\n \"inline-flex items-center gap-2\",\n \"rounded px-2 py-1.5\",\n \"text-sm font-medium\",\n variants[finalVariant],\n className\n )}\n {...props}\n >\n {iconName && <Icon size={16} name={iconName} />}\n <Text variant=\"body-xxs-semibold\" className=\"mt-0.5\">\n {children}\n </Text>\n </span>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n","import React from \"react\";\n\nimport { cn } from \"../utils\";\n\nexport type FallbackVariant = \"text\" | \"image\" | \"button\" | \"card\" | \"avatar\";\nexport type FallbackSize = \"sm\" | \"md\" | \"lg\" | number;\n\nexport type FallbackProps = {\n /**\n * The type of content being loaded\n */\n variant?: FallbackVariant;\n /**\n * The size of the fallback element\n * Can be a predefined size ('sm' | 'md' | 'lg') or a custom pixel value\n */\n size?: FallbackSize;\n /**\n * Whether to show multiple lines (only applies to text variant)\n */\n lines?: number;\n /**\n * Additional classes to apply to the fallback\n */\n className?: string;\n /**\n * Whether to show the loading animation\n */\n animate?: boolean;\n};\n\n// Updated to match existing component sizes\nconst sizeMap = {\n sm: \"h-4\", // 16px\n md: \"h-6\", // 24px\n lg: \"h-8\" // 32px\n};\n\n// Updated to match existing component sizes\nconst widthMap = {\n sm: \"w-20\", // 80px\n md: \"w-32\", // 128px\n lg: \"w-48\" // 192px\n};\n\n// Updated to match Avatar sizes\nconst avatarSizeMap = {\n sm: \"w-8 h-8\", // 32px\n md: \"w-12 h-12\", // 48px\n lg: \"w-16 h-16\" // 64px\n};\n\nexport const Fallback = React.forwardRef<HTMLDivElement, FallbackProps>(\n (\n { variant = \"text\", size = \"md\", lines = 1, className, animate = true },\n ref\n ) => {\n const baseClasses = \"bg-secondary-50 rounded-lg overflow-hidden\";\n const animationClasses = animate ? \"animate-pulse\" : \"\";\n\n const getCustomSizeStyle = (size: number) => ({\n height: `${size}px`,\n width:\n variant === \"avatar\" || variant === \"image\" ? `${size}px` : undefined\n });\n\n const customStyle =\n typeof size === \"number\" ? getCustomSizeStyle(size) : undefined;\n\n const renderContent = () => {\n switch (variant) {\n case \"text\":\n return (\n <div className=\"flex flex-col gap-2\">\n {Array.from({ length: lines }).map((_, index) => (\n <div\n key={index}\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n typeof size === \"string\" ? sizeMap[size] : undefined,\n index === lines - 1 && lines > 1 ? \"w-3/4\" : \"w-full\",\n className\n )}\n />\n ))}\n </div>\n );\n\n case \"image\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n (!customStyle || !className) &&\n \"aspect-square w-full max-w-[300px]\",\n className\n )}\n />\n );\n\n case \"button\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n typeof size === \"string\" && [sizeMap[size], widthMap[size]],\n className\n )}\n />\n );\n\n case \"card\":\n return (\n <div\n className={cn(\n \"flex flex-col gap-4 p-6 border border-stroke rounded-xl\",\n className\n )}\n >\n <div\n className={cn(\n baseClasses,\n animationClasses,\n \"w-16 h-16 rounded-full\"\n )}\n />\n <div className=\"space-y-2\">\n <div\n className={cn(baseClasses, animationClasses, \"h-6 w-3/4\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-1/2\")}\n />\n </div>\n <div className=\"space-y-2\">\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-full\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-full\")}\n />\n <div\n className={cn(baseClasses, animationClasses, \"h-4 w-2/3\")}\n />\n </div>\n </div>\n );\n\n case \"avatar\":\n return (\n <div\n style={customStyle}\n className={cn(\n baseClasses,\n animationClasses,\n \"rounded-full\",\n {\n [avatarSizeMap.sm]: size === \"sm\",\n [avatarSizeMap.md]: size === \"md\",\n [avatarSizeMap.lg]: size === \"lg\"\n },\n className\n )}\n />\n );\n\n default:\n return null;\n }\n };\n\n return (\n <div ref={ref} className={cn(\"w-full\", className)}>\n {renderContent()}\n </div>\n );\n }\n);\n\nFallback.displayName = \"Fallback\";\n","import type { HTMLAttributes } from \"react\";\nimport React, { useCallback, useState } from \"react\";\n\nimport { cn } from \"../utils\";\nimport { Icon } from \"./Icon\";\nimport type { PressableProps } from \"./Pressable\";\nimport { Pressable } from \"./Pressable\";\nimport { Text } from \"./Text\";\n\nexport type TagProps = {\n children: React.ReactNode;\n padded?: boolean;\n color?: \"primary\" | \"text\";\n onClose?: () => void;\n} & HTMLAttributes<HTMLDivElement> &\n PressableProps;\n\nexport function Tag({\n children,\n color = \"primary\",\n className,\n onClose,\n ...pressableProps\n}: TagProps) {\n const [isHovered, setIsHovered] = useState(false);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const content = (\n <div\n className={cn(\n \"flex gap-2\",\n onClose\n ? \"justify-between items-center max-w-fit\"\n : \"items-center justify-center\",\n \"hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white\",\n color === \"primary\" ? \"text-primary-100\" : \"text-primary\",\n className\n )}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n {typeof children === \"string\" ? (\n <Text\n color=\"inherit\"\n variant={[\"md:body-default-medium\", \"body-xxs-medium\"]}\n className=\"truncate pt-0.5\"\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {onClose && (\n <Pressable\n {...pressableProps}\n onClick={onClose}\n className=\"flex items-center justify-center\"\n >\n <Icon\n name=\"close\"\n size={12}\n color={isHovered ? \"white\" : \"primaryBlue\"}\n />\n </Pressable>\n )}\n </div>\n );\n\n return onClose ? (\n content\n ) : (\n <Pressable {...pressableProps}>{content}</Pressable>\n );\n}\n","import type { Colors, Typography } from \"../types/tailwind\";\n\n// Generate safelist patterns for all color utilities so you can use any theme color variable in your code\nexport const generateSafelist = (colors: Colors, typography: Typography) => {\n const colorNames = Object.keys(colors) as (keyof Colors)[];\n const utilities = [\"bg\", \"text\", \"border\", \"ring\", \"divide\", \"outline\"];\n const variants = [\"hover:\", \"focus:\", \"active:\", \"disabled:\"];\n const breakpoints = [\"sm\", \"md\", \"lg\", \"xl\", \"2xl\"];\n const sizes = [\"24\", \"42\", \"48\", \"64\", \"72\"]; // Add all the sizes you need\n\n const safelist: (string | { pattern: RegExp; variants: string[] })[] = [];\n\n colorNames.forEach((colorName) => {\n if (typeof colors[colorName] === \"object\") {\n // Handle nested color objects (with number keys)\n Object.keys(colors[colorName]).forEach((shade) => {\n utilities.forEach((utility) => {\n // Base utility\n safelist.push(`${utility}-${colorName}-${shade}`);\n\n // Variant utilities\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}-${shade}`);\n });\n });\n });\n } else {\n // Handle direct color values\n utilities.forEach((utility) => {\n safelist.push(`${utility}-${colorName}`);\n\n variants.forEach((variant) => {\n safelist.push(`${variant}${utility}-${colorName}`);\n });\n });\n }\n });\n\n // Generate typography classes\n Object.entries(typography).forEach(([family, sizes]) => {\n Object.keys(sizes).forEach((size) => {\n // Base typography classes\n safelist.push(`text-${family}-${size}`);\n\n // Add variants\n variants.forEach((variant) => {\n safelist.push(`${variant}text-${family}-${size}`);\n });\n });\n });\n\n const typographyClasses = Object.entries(typography).flatMap(\n ([category, sizes]) =>\n Object.keys(sizes).map((size) => `text-${category}-${size}`)\n );\n\n // Generate responsive variants\n const responsiveTypographyClasses = typographyClasses.flatMap((className) =>\n breakpoints.map((breakpoint) => `${breakpoint}:${className}`)\n );\n\n // Generate size classes with responsive variants\n const sizeClasses = sizes.flatMap((size) => [\n `h-[${size}px]`,\n `w-[${size}px]`,\n ...breakpoints.flatMap((bp) => [\n `${bp}:h-[${size}px]`,\n `${bp}:w-[${size}px]`\n ])\n ]);\n\n return [...typographyClasses, ...responsiveTypographyClasses, ...sizeClasses];\n};\n\nexport const focusRingStyles =\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100\";\nexport const focusRingWithinStyles =\n \"focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-100\";\nexport const focusRingStylesCoerced = \"ring-2 ring-primary-100\";\n","import type { ButtonHTMLAttributes } from \"react\";\nimport React from \"react\";\n\nimport { cn } from \"../utils\";\nimport { focusRingStyles } from \"../utils/tailwind\";\n\nexport type PressableProps = ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const Pressable = React.forwardRef<HTMLButtonElement, PressableProps>(\n ({ children, type = \"button\", className, disabled, ...props }, ref) => (\n <button\n ref={ref}\n type={type}\n disabled={disabled}\n className={cn(\n \"appearance-none hover:opacity-80 transition-all active:scale-95\",\n focusRingStyles,\n disabled && \"opacity-50 cursor-not-allowed\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n);\n\nPressable.displayName = \"Pressable\";\n","import * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport * as React from \"react\";\nimport { useCallback, useState } from \"react\";\n\nimport { cn } from \"../utils\";\nimport { Text } from \"./Text\";\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactNode;\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n align?: \"start\" | \"center\" | \"end\";\n className?: string;\n delayDuration?: number;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n /** Duration in ms for long press on mobile devices */\n longPressDuration?: number;\n}\n\nexport function Tooltip({\n content,\n children,\n side = \"bottom\",\n align = \"center\",\n className,\n delayDuration = 200,\n defaultOpen,\n open: controlledOpen,\n onOpenChange,\n longPressDuration = 500\n}: TooltipProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen || false);\n let longPressTimer: Timer | null = null;\n\n const open = controlledOpen ?? isOpen;\n const handleOpenChange = useCallback(\n (newOpen: boolean) => {\n if (!controlledOpen) {\n setIsOpen(newOpen);\n }\n onOpenChange?.(newOpen);\n },\n [controlledOpen, onOpenChange]\n );\n\n const handleTouchStart = useCallback(() => {\n const timer = setTimeout(() => {\n handleOpenChange(true);\n }, longPressDuration);\n longPressTimer = timer;\n }, [handleOpenChange, longPressDuration]);\n\n const handleTouchEnd = useCallback(() => {\n if (longPressTimer) {\n clearTimeout(longPressTimer);\n longPressTimer = null;\n }\n // Keep tooltip open for a brief moment after touch\n setTimeout(() => handleOpenChange(false), 1500);\n }, [longPressTimer, handleOpenChange]);\n\n return (\n <TooltipPrimitive.Provider delayDuration={delayDuration}>\n <TooltipPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <TooltipPrimitive.Trigger asChild>\n <span\n tabIndex={0}\n onTouchStart={handleTouchStart}\n onTouchEnd={handleTouchEnd}\n onTouchCancel={handleTouchEnd}\n >\n {children}\n </span>\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n align={align}\n sideOffset={4}\n className={cn(\n \"z-50 overflow-hidden rounded-lg\",\n \"bg-primary px-3 py-1.5\",\n \"text-xs text-white\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n \"select-none\",\n \"max-w-60\",\n \"touch-none\", // Prevent touch events from interfering with scrolling\n className\n )}\n >\n {typeof content === \"string\" ? (\n <Text variant=\"body-default-medium\" color=\"white\">\n {content}\n </Text>\n ) : (\n content\n )}\n <TooltipPrimitive.Arrow\n className=\"fill-text-primary\"\n width={10}\n height={5}\n />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.Provider>\n );\n}\n","import React, { useMemo } from \"react\";\n\nimport type { BadgeProps } from \"./Badge\";\nimport { Badge } from \"./Badge\";\nimport { Fallback } from \"./Fallback\";\nimport { Icon } from \"./Icon\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\nimport { Tooltip } from \"./Tooltip\";\n\nexport type ProfileCardProps = {\n profileImage?: string;\n name?: string;\n location?: string;\n memberSince?: string;\n interests?: string[];\n badges?: BadgeProps[];\n isEditMode?: boolean;\n onEditClick?: () => void;\n isLoading?: boolean;\n};\n\nconst MAX_INTERESTS = 4;\nconst MAX_BADGES = 3;\n\nexport function ProfileCard({\n profileImage,\n name,\n location,\n memberSince,\n interests,\n badges,\n isLoading\n}: ProfileCardProps) {\n const visibleInterests = useMemo(\n () => interests?.slice(0, MAX_INTERESTS) || [],\n [interests]\n );\n\n const visibleBadges = useMemo(\n () => badges?.slice(0, MAX_BADGES) || [],\n [badges]\n );\n\n const hasMoreInterests = interests && interests.length > MAX_INTERESTS;\n const hasMoreBadges = badges && badges.length > MAX_BADGES;\n const remainingInterests = interests ? interests.length - MAX_INTERESTS : 0;\n const remainingBadges = badges ? badges.length - MAX_BADGES : 0;\n\n const shouldShowSkeletons =\n isLoading || (!location && !memberSince && !interests && !badges);\n\n return (\n <div className=\"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col\">\n <div className=\"flex md:flex-row flex-col gap-6\">\n <div className=\"flex flex-col gap-4 md:items-start items-center\">\n <div className=\"flex items-center justify-center w-[164px] h-[164px]\">\n {profileImage ? (\n <img\n src={profileImage}\n alt={`Profile for ${name}`}\n className=\"object-cover rounded-full w-full h-full\"\n />\n ) : shouldShowSkeletons ? (\n <Fallback variant=\"avatar\" size={164} />\n ) : (\n <div className=\"w-full h-full bg-secondary-50 rounded-full\" />\n )}\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n {name ? (\n <Text\n as=\"h1\"\n variant={[\"lg:heading-lg\", \"md:heading-md\", \"heading-sm\"]}\n className=\"text-wrap text-center md:text-left\"\n >\n {name}\n </Text>\n ) : (\n <Fallback variant=\"text\" size=\"lg\" lines={1} />\n )}\n {shouldShowSkeletons ? (\n <div className=\"flex gap-2 py-2\">\n <Fallback variant=\"button\" size=\"sm\" />\n <Fallback variant=\"button\" size=\"sm\" />\n </div>\n ) : badges && badges.length > 0 ? (\n <div className=\"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center\">\n {visibleBadges.map((badge, idx) => (\n <Badge key={idx} {...badge} />\n ))}\n {hasMoreBadges && (\n <Tooltip\n content={badges\n .slice(MAX_BADGES)\n .map((b) => b.children)\n .join(\", \")}\n >\n <Text variant=\"label-default\">+{remainingBadges} more</Text>\n </Tooltip>\n )}\n </div>\n ) : null}\n <div className=\"flex gap-2 items-center sm:justify-start justify-center pt-1\">\n {shouldShowSkeletons ? (\n <Fallback variant=\"text\" size=\"sm\" lines={1} />\n ) : location ? (\n <>\n <Icon name=\"location\" color=\"secondary\" />\n <Text\n variant={[\"lg:body-lg\", \"md:body-default\", \"body-xs\"]}\n color=\"secondary\"\n className=\"sm:text-left text-center truncate max-w-[300px]\"\n >\n {location}\n </Text>\n </>\n ) : null}\n </div>\n <div className=\"flex gap-2 items-center sm:justify-start justify-center\">\n {shouldShowSkeletons ? (\n <Fallback variant=\"text\" size=\"sm\" lines={1} />\n ) : memberSince ? (\n <>\n <Icon name=\"profile\" color=\"secondary\" />\n <Text\n variant={[\"lg:body-lg\", \"md:body-default\", \"body-xs\"]}\n color=\"secondary\"\n className=\"sm:text-left text-center truncate max-w-[300px]\"\n >\n Member Since{\" \"}\n <Text\n as=\"span\"\n variant={[\n \"lg:body-lg-semibold\",\n \"md:body-default-bold\",\n \"body-xs-bold\"\n ]}\n >\n {memberSince}\n </Text>\n </Text>\n </>\n ) : null}\n </div>\n {shouldShowSkeletons ? (\n <div className=\"flex flex-col gap-2 pt-4\">\n <Fallback variant=\"text\" size=\"sm\" lines={3} />\n </div>\n ) : interests && interests.length > 0 ? (\n <div className=\"flex flex-col gap-2 pt-4\">\n <Text\n variant={[\"sm:heading-xs\", \"body-default-bold\"]}\n className=\"sm:text-left text-center\"\n >\n Interests\n </Text>\n <div className=\"flex flex-wrap gap-2 sm:justify-start justify-center items-center\">\n {visibleInterests.map((interest, idx) => (\n <Tag key={idx}>{interest}</Tag>\n ))}\n {hasMoreInterests && (\n <Tooltip content={interests.slice(MAX_INTERESTS).join(\", \")}>\n <Text variant=\"label-default\">\n +{remainingInterests} more\n </Text>\n </Tooltip>\n )}\n </div>\n </div>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n"]}
@@ -13,6 +13,6 @@ type ProfileCardProps = {
13
13
  onEditClick?: () => void;
14
14
  isLoading?: boolean;
15
15
  };
16
- declare const ProfileCard: ({ profileImage, name, location, memberSince, interests, badges, isLoading }: ProfileCardProps) => React__default.JSX.Element;
16
+ declare function ProfileCard({ profileImage, name, location, memberSince, interests, badges, isLoading }: ProfileCardProps): React__default.JSX.Element;
17
17
 
18
18
  export { ProfileCard, type ProfileCardProps };
@@ -13,6 +13,6 @@ type ProfileCardProps = {
13
13
  onEditClick?: () => void;
14
14
  isLoading?: boolean;
15
15
  };
16
- declare const ProfileCard: ({ profileImage, name, location, memberSince, interests, badges, isLoading }: ProfileCardProps) => React__default.JSX.Element;
16
+ declare function ProfileCard({ profileImage, name, location, memberSince, interests, badges, isLoading }: ProfileCardProps): React__default.JSX.Element;
17
17
 
18
18
  export { ProfileCard, type ProfileCardProps };
@@ -1,8 +1,8 @@
1
- import*as t from'react';import t__default,{useMemo,useState,useCallback}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {IconMap}from'@deckai/icons';import*as h from'@radix-ui/react-tooltip';function p(...e){return twMerge(clsx(e))}var N={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},O={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},E=e=>String(e),K=(e,r=24)=>{let n=[],o={};if(e===undefined){let s=E(r);s?n.push(N[s]):(o.height=`${r}px`,o.width=`${r}px`);}if(typeof e=="number"){let s=E(e);s?n.push(N[s]):(o.height=`${e}px`,o.width=`${e}px`);}if(Array.isArray(e)){let s=E(r),i=[s&&N[s]||`h-[${r}px] w-[${r}px]`];e.forEach(a=>{if(typeof a=="string"){let[l,c]=a.split(":"),m=parseInt(c,10),g=E(m);n.push(g&&O[l]?.[g]||`${l}:h-[${m}px] ${l}:w-[${m}px]`);}}),n.push(...i);}if(typeof e=="string"){let[s,i]=e.split(":"),a=parseInt(i,10),l=E(a);n.push(l&&O[s]?.[l]||`${s}:h-[${a}px] ${s}:w-[${a}px]`);}return {responsiveSizeClasses:n.join(" "),responsiveSizeStyles:o}};var z={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},b=t__default.forwardRef(({name:e,size:r=24,color:n="primary",title:o,className:s,style:i={},...a},l)=>{let c=IconMap[e],{responsiveSizeClasses:m,responsiveSizeStyles:g}=K(r,24);return t__default.createElement("div",{className:p("flex justify-center items-center",m,s),style:{"--icon-stroke":z[n],...g,...i}},t__default.createElement(c,{ref:l,"aria-hidden":!o,"aria-label":o,stroke:e.includes("filled")?undefined:z[n],...a}))});b.displayName="Icon";var U={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},Y=e=>{let[r,n]=e.split("-");return r==="heading"?U[n]||"p":r==="label"?"label":"p"},ee={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},te=e=>e?(Array.isArray(e)?e:[e]).map(n=>{if(n.includes(":")){let[o,s]=n.split(":");return `${o}:text-${s}`}return `text-${n}`}).join(" "):"text-body-default",d=t__default.forwardRef(({variant:e="body-default",color:r="primary",as:n,className:o,children:s,weight:i,...a},l)=>{let c=te(e),m=r==="inherit"?"text-inherit":`text-${r}`,g=t__default.useMemo(()=>{let f=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return Y(f)},[e]);return t__default.createElement(n||g,{ref:l,className:`
1
+ import*as s from'react';import s__default,{useMemo,useState,useCallback}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {IconMap}from'@deckai/icons';import*as g from'@radix-ui/react-tooltip';function p(...e){return twMerge(clsx(e))}var k={12:"h-[12px] w-[12px]",16:"h-[16px] w-[16px]",18:"h-[18px] w-[18px]",20:"h-[20px] w-[20px]",24:"h-[24px] w-[24px]",32:"h-[32px] w-[32px]",36:"h-[36px] w-[36px]",40:"h-[40px] w-[40px]",42:"h-[42px] w-[42px]",48:"h-[48px] w-[48px]",64:"h-[64px] w-[64px]",72:"h-[72px] w-[72px]"},O={sm:{12:"sm:h-[12px] sm:w-[12px]",16:"sm:h-[16px] sm:w-[16px]",18:"sm:h-[18px] sm:w-[18px]",20:"sm:h-[20px] sm:w-[20px]",24:"sm:h-[24px] sm:w-[24px]",32:"sm:h-[32px] sm:w-[32px]",36:"sm:h-[36px] sm:w-[36px]",40:"sm:h-[40px] sm:w-[40px]",42:"sm:h-[42px] sm:w-[42px]",48:"sm:h-[48px] sm:w-[48px]",64:"sm:h-[64px] sm:w-[64px]",72:"sm:h-[72px] sm:w-[72px]"},md:{12:"md:h-[12px] md:w-[12px]",16:"md:h-[16px] md:w-[16px]",18:"md:h-[18px] md:w-[18px]",20:"md:h-[20px] md:w-[20px]",24:"md:h-[24px] md:w-[24px]",32:"md:h-[32px] md:w-[32px]",36:"md:h-[36px] md:w-[36px]",40:"md:h-[40px] md:w-[40px]",42:"md:h-[42px] md:w-[42px]",48:"md:h-[48px] md:w-[48px]",64:"md:h-[64px] md:w-[64px]",72:"md:h-[72px] md:w-[72px]"},lg:{12:"lg:h-[12px] lg:w-[12px]",16:"lg:h-[16px] lg:w-[16px]",18:"lg:h-[18px] lg:w-[18px]",20:"lg:h-[20px] lg:w-[20px]",24:"lg:h-[24px] lg:w-[24px]",32:"lg:h-[32px] lg:w-[32px]",36:"lg:h-[36px] lg:w-[36px]",40:"lg:h-[40px] lg:w-[40px]",42:"lg:h-[42px] lg:w-[42px]",48:"lg:h-[48px] lg:w-[48px]",64:"lg:h-[64px] lg:w-[64px]",72:"lg:h-[72px] lg:w-[72px]"},xl:{12:"xl:h-[12px] xl:w-[12px]",16:"xl:h-[16px] xl:w-[16px]",18:"xl:h-[18px] xl:w-[18px]",20:"xl:h-[20px] xl:w-[20px]",24:"xl:h-[24px] xl:w-[24px]",32:"xl:h-[32px] xl:w-[32px]",36:"xl:h-[36px] xl:w-[36px]",40:"xl:h-[40px] xl:w-[40px]",42:"xl:h-[42px] xl:w-[42px]",48:"xl:h-[48px] xl:w-[48px]",64:"xl:h-[64px] xl:w-[64px]",72:"xl:h-[72px] xl:w-[72px]"},"2xl":{12:"2xl:h-[12px] 2xl:w-[12px]",16:"2xl:h-[16px] 2xl:w-[16px]",18:"2xl:h-[18px] 2xl:w-[18px]",20:"2xl:h-[20px] 2xl:w-[20px]",24:"2xl:h-[24px] 2xl:w-[24px]",32:"2xl:h-[32px] 2xl:w-[32px]",36:"2xl:h-[36px] 2xl:w-[36px]",40:"2xl:h-[40px] 2xl:w-[40px]",42:"2xl:h-[42px] 2xl:w-[42px]",48:"2xl:h-[48px] 2xl:w-[48px]",64:"2xl:h-[64px] 2xl:w-[64px]",72:"2xl:h-[72px] 2xl:w-[72px]"}},H=e=>String(e),K=(e,t=24)=>{let n=[],o={};if(e===void 0){let r=H(t);r?n.push(k[r]):(o.height=`${t}px`,o.width=`${t}px`);}if(typeof e=="number"){let r=H(e);r?n.push(k[r]):(o.height=`${e}px`,o.width=`${e}px`);}if(Array.isArray(e)){let r=H(t),i=[r&&k[r]||`h-[${t}px] w-[${t}px]`];e.forEach(a=>{if(typeof a=="string"){let[l,c]=a.split(":"),m=parseInt(c,10),h=H(m);n.push(h&&O[l]?.[h]||`${l}:h-[${m}px] ${l}:w-[${m}px]`);}}),n.push(...i);}if(typeof e=="string"){let[r,i]=e.split(":"),a=parseInt(i,10),l=H(a);n.push(l&&O[r]?.[l]||`${r}:h-[${a}px] ${r}:w-[${a}px]`);}return {responsiveSizeClasses:n.join(" "),responsiveSizeStyles:o}};var F={primary:"var(--color-primary)",secondary:"var(--color-secondary)",white:"var(--color-white)",primaryBlue:"var(--color-primary-100)",disabled:"var(--color-disabled)",danger:"var(--color-danger)"},v=s__default.forwardRef(({name:e,size:t=24,color:n="primary",title:o,className:r,style:i={},...a},l)=>{let c=IconMap[e],{responsiveSizeClasses:m,responsiveSizeStyles:h}=K(t,24);return s__default.createElement("div",{className:p("flex justify-center items-center",m,r),style:{"--icon-stroke":F[n],...h,...i}},s__default.createElement(c,{ref:l,"aria-hidden":!o,"aria-label":o,stroke:e.includes("filled")?void 0:F[n],...a}))});v.displayName="Icon";var U={xl:"h1",lg:"h1",md:"h2",sm:"h3",xs:"h4"},Y=e=>{let[t,n]=e.split("-");return t==="heading"?U[n]||"p":t==="label"?"label":"p"},ee={light:"font-light",regular:"font-regular",semibold:"font-semibold",bold:"font-bold"},te=e=>e?(Array.isArray(e)?e:[e]).map(n=>{if(n.includes(":")){let[o,r]=n.split(":");return `${o}:text-${r}`}return `text-${n}`}).join(" "):"text-body-default",d=s__default.forwardRef(({variant:e="body-default",color:t="primary",as:n,className:o,children:r,weight:i,...a},l)=>{let c=te(e),m=t==="inherit"?"text-inherit":`text-${t}`,h=s__default.useMemo(()=>{let f=typeof e=="string"?e.split(":").pop():Array.isArray(e)?e[0].split(":").pop():"body-default";return Y(f)},[e]);return s__default.createElement(n||h,{ref:l,className:`
2
2
  font-sans antialiased
3
3
  ${c}
4
4
  ${m}
5
5
  ${i&&`!${ee[i]}`}
6
6
  ${o}
7
- `,...a},s)});d.displayName="Text";var F={pink:"bg-tertiary-5",orange:"bg-tertiary-15",green:"bg-tertiary-25",purple:"bg-secondary-300"},re=e=>{let r=Object.keys(F),n=e.split("").reduce((i,a)=>a.charCodeAt(0)+((i<<5)-i),0),o=Math.abs(n)%r.length;return r[o]},A=t.forwardRef(({className:e,variant:r,iconName:n,children:o,...s},i)=>{let a=r||(typeof o=="string"?re(o):"pink");return t.createElement("span",{ref:i,className:p("inline-flex items-center gap-2","rounded px-2 py-1.5","text-sm font-medium",F[a],e),...s},n&&t.createElement(b,{size:16,name:n}),t.createElement(d,{variant:"body-xxs-semibold",className:"mt-0.5"},o))});A.displayName="Badge";var G={sm:"h-4",md:"h-6",lg:"h-8"},oe={sm:"w-20",md:"w-32",lg:"w-48"},I={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"},v=t__default.forwardRef(({variant:e="text",size:r="md",lines:n=1,className:o,animate:s=true},i)=>{let a="bg-secondary-50 rounded-lg overflow-hidden",l=s?"animate-pulse":"",m=typeof r=="number"?(T=>({height:`${T}px`,width:e==="avatar"||e==="image"?`${T}px`:undefined}))(r):undefined,g=()=>{switch(e){case "text":return t__default.createElement("div",{className:"flex flex-col gap-2"},Array.from({length:n}).map((T,f)=>t__default.createElement("div",{key:f,style:m,className:p(a,l,typeof r=="string"?G[r]:undefined,f===n-1&&n>1?"w-3/4":"w-full",o)})));case "image":return t__default.createElement("div",{style:m,className:p(a,l,(!m||!o)&&"aspect-square w-full max-w-[300px]",o)});case "button":return t__default.createElement("div",{style:m,className:p(a,l,typeof r=="string"&&[G[r],oe[r]],o)});case "card":return t__default.createElement("div",{className:p("flex flex-col gap-4 p-6 border border-stroke rounded-xl",o)},t__default.createElement("div",{className:p(a,l,"w-16 h-16 rounded-full")}),t__default.createElement("div",{className:"space-y-2"},t__default.createElement("div",{className:p(a,l,"h-6 w-3/4")}),t__default.createElement("div",{className:p(a,l,"h-4 w-1/2")})),t__default.createElement("div",{className:"space-y-2"},t__default.createElement("div",{className:p(a,l,"h-4 w-full")}),t__default.createElement("div",{className:p(a,l,"h-4 w-full")}),t__default.createElement("div",{className:p(a,l,"h-4 w-2/3")})));case "avatar":return t__default.createElement("div",{style:m,className:p(a,l,"rounded-full",{[I.sm]:r==="sm",[I.md]:r==="md",[I.lg]:r==="lg"},o)});default:return null}};return t__default.createElement("div",{ref:i,className:p("w-full",o)},g())});v.displayName="Fallback";var R="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100";var L=t__default.forwardRef(({children:e,type:r="button",className:n,disabled:o,...s},i)=>t__default.createElement("button",{ref:i,type:r,disabled:o,className:p("appearance-none hover:opacity-80 transition-all active:scale-95",R,o&&"opacity-50 cursor-not-allowed",n),...s},e));L.displayName="Pressable";var W=({children:e,color:r="primary",className:n,onClose:o,...s})=>{let[i,a]=useState(false),l=useCallback(()=>{a(true);},[]),c=useCallback(()=>{a(false);},[]),m=t__default.createElement("div",{className:p("flex gap-2",o?"justify-between items-center":"items-center justify-center","hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white",r==="primary"?"text-primary-100":"text-primary",n),onMouseEnter:l,onMouseLeave:c},typeof e=="string"?t__default.createElement(d,{color:"inherit",variant:["md:body-default-medium","body-xxs-medium"],className:"truncate pt-0.5"},e):e,o&&t__default.createElement(L,{...s,onClick:o,className:"flex items-center justify-center"},t__default.createElement(b,{name:"close",size:12,color:i?"white":"primaryBlue"})));return o?m:t__default.createElement(L,{...s},m)};var j=({content:e,children:r,side:n="bottom",align:o="center",className:s,delayDuration:i=200,defaultOpen:a,open:l,onOpenChange:c,longPressDuration:m=500})=>{let[g,T]=useState(a||false),f=null,w=l??g,u=useCallback($=>{l||T($),c?.($);},[l,c]),Q=useCallback(()=>{f=setTimeout(()=>{u(true);},m);},[u,m]),V=useCallback(()=>{f&&(clearTimeout(f),f=null),setTimeout(()=>u(false),1500);},[f,u]);return t.createElement(h.Provider,{delayDuration:i},t.createElement(h.Root,{open:w,onOpenChange:u},t.createElement(h.Trigger,{asChild:true},t.createElement("span",{tabIndex:0,onTouchStart:Q,onTouchEnd:V,onTouchCancel:V},r)),t.createElement(h.Portal,null,t.createElement(h.Content,{side:n,align:o,sideOffset:4,className:p("z-50 overflow-hidden rounded-lg","bg-primary px-3 py-1.5","text-xs text-white","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[side=bottom]:slide-in-from-top-2","data-[side=top]:slide-in-from-bottom-2","select-none","max-w-60","touch-none",s)},typeof e=="string"?t.createElement(d,{variant:"body-default-medium",color:"white"},e):e,t.createElement(h.Arrow,{className:"fill-text-primary",width:10,height:5})))))};var P=4,S=3,Ye=({profileImage:e,name:r,location:n,memberSince:o,interests:s,badges:i,isLoading:a})=>{let l=useMemo(()=>s?.slice(0,P)||[],[s]),c=useMemo(()=>i?.slice(0,S)||[],[i]),m=s&&s.length>P,g=i&&i.length>S,T=s?s.length-P:0,f=i?i.length-S:0;return a?t__default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},t__default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},t__default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},t__default.createElement(v,{variant:"avatar",size:164}),t__default.createElement("div",{className:"flex flex-col gap-2"},t__default.createElement(v,{variant:"text",size:"lg",lines:1}),t__default.createElement(v,{variant:"text",size:"sm",lines:1})))),t__default.createElement("div",{className:"flex flex-col gap-4"},t__default.createElement(v,{variant:"text",lines:3}),t__default.createElement("div",{className:"flex gap-2"},t__default.createElement(v,{variant:"button",size:"sm"}),t__default.createElement(v,{variant:"button",size:"sm"})))):t__default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},t__default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},t__default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},t__default.createElement("div",{className:"flex items-center justify-center w-[164px] h-[164px]"},e?t__default.createElement("img",{src:e,alt:`Profile for ${r}`,className:"object-cover rounded-full w-full h-full"}):t__default.createElement("div",{className:"w-full h-full bg-secondary-50 rounded-full"}))),t__default.createElement("div",{className:"flex flex-col gap-2"},t__default.createElement(d,{as:"h1",variant:["lg:heading-lg","md:heading-md","heading-sm"],className:"text-wrap text-center md:text-left"},r),i&&t__default.createElement("div",{className:"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center"},c.map((w,u)=>t__default.createElement(A,{key:u,...w})),g&&t__default.createElement(j,{content:i.slice(S).map(w=>w.children).join(", ")},t__default.createElement(d,{variant:"label-default"},"+",f," more"))),t__default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center pt-1"},n&&t__default.createElement(t__default.Fragment,null,t__default.createElement(b,{name:"location",color:"secondary"}),t__default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},n))),t__default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center"},o&&t__default.createElement(t__default.Fragment,null,t__default.createElement(b,{name:"profile",color:"secondary"}),t__default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},"Member Since"," ",t__default.createElement(d,{as:"span",variant:["lg:body-lg-semibold","md:body-default-bold","body-xs-bold"]},o)))),s&&t__default.createElement("div",{className:"flex flex-col gap-2 pt-4"},t__default.createElement(d,{variant:["sm:heading-xs","body-default-bold"],className:"sm:text-left text-center"},"Interests"),t__default.createElement("div",{className:"flex flex-wrap gap-2 sm:justify-start justify-center items-center"},l.map((w,u)=>t__default.createElement(W,{key:u},w)),m&&t__default.createElement(j,{content:s.slice(P).join(", ")},t__default.createElement(d,{variant:"label-default"},"+",T," more")))))))};export{Ye as ProfileCard};//# sourceMappingURL=ProfileCard.js.map
7
+ `,...a},r)});d.displayName="Text";var R={pink:"bg-tertiary-5",orange:"bg-tertiary-15",green:"bg-tertiary-25",purple:"bg-secondary-300"},re=e=>{let t=Object.keys(R),n=e.split("").reduce((i,a)=>a.charCodeAt(0)+((i<<5)-i),0),o=Math.abs(n)%t.length;return t[o]},I=s.forwardRef(({className:e,variant:t,iconName:n,children:o,...r},i)=>{let a=t||(typeof o=="string"?re(o):"pink");return s.createElement("span",{ref:i,className:p("inline-flex items-center gap-2","rounded px-2 py-1.5","text-sm font-medium",R[a],e),...r},n&&s.createElement(v,{size:16,name:n}),s.createElement(d,{variant:"body-xxs-semibold",className:"mt-0.5"},o))});I.displayName="Badge";var G={sm:"h-4",md:"h-6",lg:"h-8"},oe={sm:"w-20",md:"w-32",lg:"w-48"},B={sm:"w-8 h-8",md:"w-12 h-12",lg:"w-16 h-16"},y=s__default.forwardRef(({variant:e="text",size:t="md",lines:n=1,className:o,animate:r=true},i)=>{let a="bg-secondary-50 rounded-lg overflow-hidden",l=r?"animate-pulse":"",m=typeof t=="number"?(b=>({height:`${b}px`,width:e==="avatar"||e==="image"?`${b}px`:void 0}))(t):void 0,h=()=>{switch(e){case "text":return s__default.createElement("div",{className:"flex flex-col gap-2"},Array.from({length:n}).map((b,f)=>s__default.createElement("div",{key:f,style:m,className:p(a,l,typeof t=="string"?G[t]:void 0,f===n-1&&n>1?"w-3/4":"w-full",o)})));case "image":return s__default.createElement("div",{style:m,className:p(a,l,(!m||!o)&&"aspect-square w-full max-w-[300px]",o)});case "button":return s__default.createElement("div",{style:m,className:p(a,l,typeof t=="string"&&[G[t],oe[t]],o)});case "card":return s__default.createElement("div",{className:p("flex flex-col gap-4 p-6 border border-stroke rounded-xl",o)},s__default.createElement("div",{className:p(a,l,"w-16 h-16 rounded-full")}),s__default.createElement("div",{className:"space-y-2"},s__default.createElement("div",{className:p(a,l,"h-6 w-3/4")}),s__default.createElement("div",{className:p(a,l,"h-4 w-1/2")})),s__default.createElement("div",{className:"space-y-2"},s__default.createElement("div",{className:p(a,l,"h-4 w-full")}),s__default.createElement("div",{className:p(a,l,"h-4 w-full")}),s__default.createElement("div",{className:p(a,l,"h-4 w-2/3")})));case "avatar":return s__default.createElement("div",{style:m,className:p(a,l,"rounded-full",{[B.sm]:t==="sm",[B.md]:t==="md",[B.lg]:t==="lg"},o)});default:return null}};return s__default.createElement("div",{ref:i,className:p("w-full",o)},h())});y.displayName="Fallback";var _="focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-100";var P=s__default.forwardRef(({children:e,type:t="button",className:n,disabled:o,...r},i)=>s__default.createElement("button",{ref:i,type:t,disabled:o,className:p("appearance-none hover:opacity-80 transition-all active:scale-95",_,o&&"opacity-50 cursor-not-allowed",n),...r},e));P.displayName="Pressable";function q({children:e,color:t="primary",className:n,onClose:o,...r}){let[i,a]=useState(false),l=useCallback(()=>{a(true);},[]),c=useCallback(()=>{a(false);},[]),m=s__default.createElement("div",{className:p("flex gap-2",o?"justify-between items-center max-w-fit":"items-center justify-center","hover:bg-primary-100 rounded bg-secondary-400 px-2 py-1 sm:px-3 sm:py-1.5 h-min hover:text-white",t==="primary"?"text-primary-100":"text-primary",n),onMouseEnter:l,onMouseLeave:c},typeof e=="string"?s__default.createElement(d,{color:"inherit",variant:["md:body-default-medium","body-xxs-medium"],className:"truncate pt-0.5"},e):e,o&&s__default.createElement(P,{...r,onClick:o,className:"flex items-center justify-center"},s__default.createElement(v,{name:"close",size:12,color:i?"white":"primaryBlue"})));return o?m:s__default.createElement(P,{...r},m)}function V({content:e,children:t,side:n="bottom",align:o="center",className:r,delayDuration:i=200,defaultOpen:a,open:l,onOpenChange:c,longPressDuration:m=500}){let[h,b]=useState(a||false),f=null,w=l??h,u=useCallback(N=>{l||b(N),c?.(N);},[l,c]),E=useCallback(()=>{f=setTimeout(()=>{u(true);},m);},[u,m]),z=useCallback(()=>{f&&(clearTimeout(f),f=null),setTimeout(()=>u(false),1500);},[f,u]);return s.createElement(g.Provider,{delayDuration:i},s.createElement(g.Root,{open:w,onOpenChange:u},s.createElement(g.Trigger,{asChild:true},s.createElement("span",{tabIndex:0,onTouchStart:E,onTouchEnd:z,onTouchCancel:z},t)),s.createElement(g.Portal,null,s.createElement(g.Content,{side:n,align:o,sideOffset:4,className:p("z-50 overflow-hidden rounded-lg","bg-primary px-3 py-1.5","text-xs text-white","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0","data-[side=bottom]:slide-in-from-top-2","data-[side=top]:slide-in-from-bottom-2","select-none","max-w-60","touch-none",r)},typeof e=="string"?s.createElement(d,{variant:"body-default-medium",color:"white"},e):e,s.createElement(g.Arrow,{className:"fill-text-primary",width:10,height:5})))))}var S=4,$=3;function We({profileImage:e,name:t,location:n,memberSince:o,interests:r,badges:i,isLoading:a}){let l=useMemo(()=>r?.slice(0,S)||[],[r]),c=useMemo(()=>i?.slice(0,$)||[],[i]),m=r&&r.length>S,h=i&&i.length>$,b=r?r.length-S:0,f=i?i.length-$:0,w=a||!n&&!o&&!r&&!i;return s__default.createElement("div",{className:"lg:p-10 md:p-8 p-4 rounded-xl border border-stroke relative flex gap-6 md:flex-row flex-col"},s__default.createElement("div",{className:"flex md:flex-row flex-col gap-6"},s__default.createElement("div",{className:"flex flex-col gap-4 md:items-start items-center"},s__default.createElement("div",{className:"flex items-center justify-center w-[164px] h-[164px]"},e?s__default.createElement("img",{src:e,alt:`Profile for ${t}`,className:"object-cover rounded-full w-full h-full"}):w?s__default.createElement(y,{variant:"avatar",size:164}):s__default.createElement("div",{className:"w-full h-full bg-secondary-50 rounded-full"}))),s__default.createElement("div",{className:"flex flex-col gap-2"},t?s__default.createElement(d,{as:"h1",variant:["lg:heading-lg","md:heading-md","heading-sm"],className:"text-wrap text-center md:text-left"},t):s__default.createElement(y,{variant:"text",size:"lg",lines:1}),w?s__default.createElement("div",{className:"flex gap-2 py-2"},s__default.createElement(y,{variant:"button",size:"sm"}),s__default.createElement(y,{variant:"button",size:"sm"})):i&&i.length>0?s__default.createElement("div",{className:"flex gap-2 flex-wrap py-2 sm:justify-start justify-center items-center"},c.map((u,E)=>s__default.createElement(I,{key:E,...u})),h&&s__default.createElement(V,{content:i.slice($).map(u=>u.children).join(", ")},s__default.createElement(d,{variant:"label-default"},"+",f," more"))):null,s__default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center pt-1"},w?s__default.createElement(y,{variant:"text",size:"sm",lines:1}):n?s__default.createElement(s__default.Fragment,null,s__default.createElement(v,{name:"location",color:"secondary"}),s__default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},n)):null),s__default.createElement("div",{className:"flex gap-2 items-center sm:justify-start justify-center"},w?s__default.createElement(y,{variant:"text",size:"sm",lines:1}):o?s__default.createElement(s__default.Fragment,null,s__default.createElement(v,{name:"profile",color:"secondary"}),s__default.createElement(d,{variant:["lg:body-lg","md:body-default","body-xs"],color:"secondary",className:"sm:text-left text-center truncate max-w-[300px]"},"Member Since"," ",s__default.createElement(d,{as:"span",variant:["lg:body-lg-semibold","md:body-default-bold","body-xs-bold"]},o))):null),w?s__default.createElement("div",{className:"flex flex-col gap-2 pt-4"},s__default.createElement(y,{variant:"text",size:"sm",lines:3})):r&&r.length>0?s__default.createElement("div",{className:"flex flex-col gap-2 pt-4"},s__default.createElement(d,{variant:["sm:heading-xs","body-default-bold"],className:"sm:text-left text-center"},"Interests"),s__default.createElement("div",{className:"flex flex-wrap gap-2 sm:justify-start justify-center items-center"},l.map((u,E)=>s__default.createElement(q,{key:E},u)),m&&s__default.createElement(V,{content:r.slice(S).join(", ")},s__default.createElement(d,{variant:"label-default"},"+",b," more")))):null)))}export{We as ProfileCard};//# sourceMappingURL=ProfileCard.js.map
8
8
  //# sourceMappingURL=ProfileCard.js.map