@deckai/deck-ui 0.0.7 → 0.0.9

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 (151) hide show
  1. package/dist/components/AboutCard.cjs +14 -0
  2. package/dist/components/AboutCard.cjs.map +1 -0
  3. package/dist/components/AboutCard.d.cts +12 -0
  4. package/dist/components/AboutCard.d.ts +12 -0
  5. package/dist/components/AboutCard.js +14 -0
  6. package/dist/components/AboutCard.js.map +1 -0
  7. package/dist/components/Avatar.cjs +2 -0
  8. package/dist/components/Avatar.cjs.map +1 -0
  9. package/dist/components/Avatar.d.cts +10 -0
  10. package/dist/components/Avatar.d.ts +10 -0
  11. package/dist/components/Avatar.js +2 -0
  12. package/dist/components/Avatar.js.map +1 -0
  13. package/dist/components/Badge.cjs +2 -0
  14. package/dist/components/Badge.cjs.map +1 -0
  15. package/dist/components/Badge.d.cts +13 -0
  16. package/dist/components/Badge.d.ts +13 -0
  17. package/dist/components/Badge.js +2 -0
  18. package/dist/components/Badge.js.map +1 -0
  19. package/dist/components/Breadcrumbs.cjs +2 -0
  20. package/dist/components/Breadcrumbs.cjs.map +1 -0
  21. package/dist/components/Breadcrumbs.d.cts +15 -0
  22. package/dist/components/Breadcrumbs.d.ts +15 -0
  23. package/dist/components/Breadcrumbs.js +2 -0
  24. package/dist/components/Breadcrumbs.js.map +1 -0
  25. package/dist/components/Button.cjs +14 -0
  26. package/dist/components/Button.cjs.map +1 -0
  27. package/dist/components/Button.d.cts +28 -0
  28. package/dist/components/Button.d.ts +28 -0
  29. package/dist/components/Button.js +14 -0
  30. package/dist/components/Button.js.map +1 -0
  31. package/dist/components/Combobox.cjs +2 -0
  32. package/dist/components/Combobox.cjs.map +1 -0
  33. package/dist/components/Combobox.d.cts +14 -0
  34. package/dist/components/Combobox.d.ts +14 -0
  35. package/dist/components/Combobox.js +2 -0
  36. package/dist/components/Combobox.js.map +1 -0
  37. package/dist/components/ContactItem.cjs +2 -0
  38. package/dist/components/ContactItem.cjs.map +1 -0
  39. package/dist/components/ContactItem.d.cts +11 -0
  40. package/dist/components/ContactItem.d.ts +11 -0
  41. package/dist/components/ContactItem.js +2 -0
  42. package/dist/components/ContactItem.js.map +1 -0
  43. package/dist/components/Icon.cjs +2 -0
  44. package/dist/components/Icon.cjs.map +1 -0
  45. package/dist/components/Icon.d.cts +18 -0
  46. package/dist/components/Icon.d.ts +18 -0
  47. package/dist/components/Icon.js +2 -0
  48. package/dist/components/Icon.js.map +1 -0
  49. package/dist/components/Input.cjs +2 -0
  50. package/dist/components/Input.cjs.map +1 -0
  51. package/dist/components/Input.d.cts +14 -0
  52. package/dist/components/Input.d.ts +14 -0
  53. package/dist/components/Input.js +2 -0
  54. package/dist/components/Input.js.map +1 -0
  55. package/dist/components/Link.cjs +2 -0
  56. package/dist/components/Link.cjs.map +1 -0
  57. package/dist/components/Link.d.cts +13 -0
  58. package/dist/components/Link.d.ts +13 -0
  59. package/dist/components/Link.js +2 -0
  60. package/dist/components/Link.js.map +1 -0
  61. package/dist/components/Logo.cjs +3 -0
  62. package/dist/components/Logo.cjs.map +1 -0
  63. package/dist/components/Logo.d.cts +11 -0
  64. package/dist/components/Logo.d.ts +11 -0
  65. package/dist/components/Logo.js +3 -0
  66. package/dist/components/Logo.js.map +1 -0
  67. package/dist/components/Navbar.cjs +3 -0
  68. package/dist/components/Navbar.cjs.map +1 -0
  69. package/dist/components/Navbar.d.cts +19 -0
  70. package/dist/components/Navbar.d.ts +19 -0
  71. package/dist/components/Navbar.js +3 -0
  72. package/dist/components/Navbar.js.map +1 -0
  73. package/dist/components/NavbarItem.cjs +2 -0
  74. package/dist/components/NavbarItem.cjs.map +1 -0
  75. package/dist/components/NavbarItem.d.cts +13 -0
  76. package/dist/components/NavbarItem.d.ts +13 -0
  77. package/dist/components/NavbarItem.js +2 -0
  78. package/dist/components/NavbarItem.js.map +1 -0
  79. package/dist/components/Option.cjs +2 -0
  80. package/dist/components/Option.cjs.map +1 -0
  81. package/dist/components/Option.d.cts +11 -0
  82. package/dist/components/Option.d.ts +11 -0
  83. package/dist/components/Option.js +2 -0
  84. package/dist/components/Option.js.map +1 -0
  85. package/dist/components/Pressable.cjs +2 -0
  86. package/dist/components/Pressable.cjs.map +1 -0
  87. package/dist/components/Pressable.d.cts +6 -0
  88. package/dist/components/Pressable.d.ts +6 -0
  89. package/dist/components/Pressable.js +2 -0
  90. package/dist/components/Pressable.js.map +1 -0
  91. package/dist/components/ProfileCard.cjs +14 -0
  92. package/dist/components/ProfileCard.cjs.map +1 -0
  93. package/dist/components/ProfileCard.d.cts +15 -0
  94. package/dist/components/ProfileCard.d.ts +15 -0
  95. package/dist/components/ProfileCard.js +14 -0
  96. package/dist/components/ProfileCard.js.map +1 -0
  97. package/dist/components/SocialCard.cjs +2 -0
  98. package/dist/components/SocialCard.cjs.map +1 -0
  99. package/dist/components/SocialCard.d.cts +12 -0
  100. package/dist/components/SocialCard.d.ts +12 -0
  101. package/dist/components/SocialCard.js +2 -0
  102. package/dist/components/SocialCard.js.map +1 -0
  103. package/dist/components/Switch.cjs +2 -0
  104. package/dist/components/Switch.cjs.map +1 -0
  105. package/dist/components/Switch.d.cts +13 -0
  106. package/dist/components/Switch.d.ts +13 -0
  107. package/dist/components/Switch.js +2 -0
  108. package/dist/components/Switch.js.map +1 -0
  109. package/dist/components/Tabs.cjs +2 -0
  110. package/dist/components/Tabs.cjs.map +1 -0
  111. package/dist/components/Tabs.d.cts +16 -0
  112. package/dist/components/Tabs.d.ts +16 -0
  113. package/dist/components/Tabs.js +2 -0
  114. package/dist/components/Tabs.js.map +1 -0
  115. package/dist/components/Tag.cjs +2 -0
  116. package/dist/components/Tag.cjs.map +1 -0
  117. package/dist/components/Tag.d.cts +10 -0
  118. package/dist/components/Tag.d.ts +10 -0
  119. package/dist/components/Tag.js +2 -0
  120. package/dist/components/Tag.js.map +1 -0
  121. package/dist/components/Text.cjs +2 -0
  122. package/dist/components/Text.cjs.map +1 -0
  123. package/dist/components/Text.d.cts +46 -0
  124. package/dist/components/Text.d.ts +46 -0
  125. package/dist/components/Text.js +2 -0
  126. package/dist/components/Text.js.map +1 -0
  127. package/dist/components/Tooltip.cjs +2 -0
  128. package/dist/components/Tooltip.cjs.map +1 -0
  129. package/dist/components/Tooltip.d.cts +13 -0
  130. package/dist/components/Tooltip.d.ts +13 -0
  131. package/dist/components/Tooltip.js +2 -0
  132. package/dist/components/Tooltip.js.map +1 -0
  133. package/dist/components/WorkCard.cjs +2 -0
  134. package/dist/components/WorkCard.cjs.map +1 -0
  135. package/dist/components/WorkCard.d.cts +13 -0
  136. package/dist/components/WorkCard.d.ts +13 -0
  137. package/dist/components/WorkCard.js +2 -0
  138. package/dist/components/WorkCard.js.map +1 -0
  139. package/dist/index.cjs +5 -1005
  140. package/dist/index.cjs.map +1 -1
  141. package/dist/index.d.cts +29 -288
  142. package/dist/index.d.ts +29 -288
  143. package/dist/index.js +5 -954
  144. package/dist/index.js.map +1 -1
  145. package/dist/styles/fonts.css +1 -29
  146. package/dist/styles/fonts.css.map +1 -1
  147. package/dist/styles/styles.css +1 -1
  148. package/dist/styles/styles.css.map +1 -1
  149. package/dist/tailwind-DJFscIlV.d.cts +35 -0
  150. package/dist/tailwind-DJFscIlV.d.ts +35 -0
  151. package/package.json +10 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/index.ts","../../src/components/Icon.tsx","../../src/components/Text.tsx","../../src/components/Tag.tsx","../../src/components/WorkCard.tsx"],"names":["cn","inputs","twMerge","clsx","COLOR_MAP","BREAKPOINT_MAP","processSizes","sizes","sizeArray","baseSize","style","mediaQueries","size","acc","breakpoint","value","Icon","React","name","color","title","className","props","ref","IconComponent","IconMap","sizeStyles","HEADING_ELEMENT_MAP","getElementFromVariant","variant","category","fontWeight","processVariants","variants","typographyClass","Text","as","children","weight","typographyClasses","colorClasses","suggestedElement","baseVariant","Tag","padded","WorkCard","socialIconName","tags","caption","playCount","backgroundImage","tag","index"],"mappings":"sHAGO,SAASA,CAAAA,CAAAA,GAAMC,EAAsB,CAC1C,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC7B,CCWA,IAAMG,EAAwC,CAC5C,OAAA,CAAS,SACT,CAAA,SAAA,CAAW,UACX,KAAO,CAAA,SAAA,CACP,WAAa,CAAA,SACf,EAKMC,CAA6C,CAAA,CACjD,EAAI,CAAA,2BAAA,CACJ,GAAI,2BACJ,CAAA,EAAA,CAAI,4BACJ,CAAA,EAAA,CAAI,6BACJ,KAAO,CAAA,4BACT,CAEMC,CAAAA,CAAAA,CACJC,GACwB,CACxB,GAAI,CAACA,CAAAA,CAAO,OAAO,CAAE,KAAA,CAAO,MAAQ,CAAA,MAAA,CAAQ,MAAO,CAEnD,CAAA,IAAMC,CAAY,CAAA,KAAA,CAAM,QAAQD,CAAK,CAAA,CAAIA,CAAQ,CAAA,CAACA,CAAK,CACjDE,CAAAA,CAAAA,CAAW,OAAOD,CAAAA,CAAU,CAAC,CAAM,EAAA,QAAA,CAAWA,CAAU,CAAA,CAAC,EAAI,EAE7DE,CAAAA,CAAAA,CAA6B,CACjC,KAAA,CAAO,GAAGD,CAAQ,CAAA,EAAA,CAAA,CAClB,MAAQ,CAAA,CAAA,EAAGA,CAAQ,CACrB,EAAA,CAAA,CAAA,CAGME,CAAeH,CAAAA,CAAAA,CAClB,OACEI,CACC,EAAA,OAAOA,CAAS,EAAA,QAAA,EAAYA,EAAK,QAAS,CAAA,GAAG,CACjD,CAAA,CACC,OACC,CAACC,CAAAA,CAAKD,CAAS,GAAA,CACb,GAAM,CAACE,CAAAA,CAAYC,CAAK,CAAA,CAAIH,EAAK,KAAM,CAAA,GAAG,CAC1C,CAAA,OAAAC,EAAIR,CAAeS,CAAAA,CAAU,CAAC,CAAA,CAAI,CAChC,KAAO,CAAA,CAAA,EAAGC,CAAK,CAAA,EAAA,CAAA,CACf,OAAQ,CAAGA,EAAAA,CAAK,CAClB,EAAA,CAAA,CAAA,CACOF,CACT,CACA,CAAA,EACF,CAAA,CAEF,OAAI,MAAO,CAAA,IAAA,CAAKF,CAAY,CAAA,CAAE,OAAS,CACpCD,GAAAA,CAAAA,CAAc,QAAQ,CAAA,CAAIC,GAGtBD,CACT,CAAA,CAEaM,CAAOC,CAAAA,CAAAA,CAAM,UACxB,CAAA,CACE,CACE,IAAA,CAAAC,EACA,IAAAN,CAAAA,CAAAA,CAAO,EACP,CAAA,KAAA,CAAAO,EAAQ,SACR,CAAA,KAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,EACA,KAAAX,CAAAA,CAAAA,CAAQ,EAAC,CACT,GAAGY,CACL,CAAA,CACAC,CACG,GAAA,CACH,IAAMC,CAAgBC,CAAAA,OAAAA,CAAQP,CAAI,CAAA,CAC5BQ,EAAapB,CAAaM,CAAAA,CAAI,CAEpC,CAAA,OACEK,EAAA,aAAC,CAAA,KAAA,CAAA,CACC,SAAWjB,CAAAA,CAAAA,CAAG,mCAAoCqB,CAAS,CAAA,CAC3D,KAAO,CAAA,CACL,GAAGK,CACF,CAAA,eAAA,CAA4BtB,CAAUe,CAAAA,CAAK,EAC5C,GAAGT,CACL,CAEAO,CAAAA,CAAAA,CAAAA,CAAA,cAACO,CAAA,CAAA,CACC,GAAKD,CAAAA,CAAAA,CACL,cAAa,CAACH,CAAAA,CACd,YAAYA,CAAAA,CAAAA,CACZ,OAAQF,CAAK,CAAA,QAAA,CAAS,QAAQ,CAAA,CAAI,OAAYd,CAAUe,CAAAA,CAAK,CAC5D,CAAA,GAAGG,EACN,CACF,CAEJ,CACF,CAAA,CAEAN,EAAK,WAAc,CAAA,MAAA,CCjBnB,IAAMW,EAAmD,CACvD,EAAA,CAAI,IACJ,CAAA,EAAA,CAAI,KACJ,EAAI,CAAA,IAAA,CACJ,EAAI,CAAA,IAAA,CACJ,GAAI,IACN,CAAA,CAEMC,CAAyBC,CAAAA,CAAAA,EAAwC,CACrE,GAAM,CAACC,CAAUlB,CAAAA,CAAI,EAAIiB,CAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CAE1C,OAAIC,CAAa,GAAA,SAAA,CACRH,CAAoBf,CAAAA,CAAI,GAAK,GAGlCkB,CAAAA,CAAAA,GAAa,OACR,CAAA,OAAA,CAGF,GACT,CAIMC,CAAAA,CAAAA,CAAqC,CACzC,KAAA,CAAO,aACP,OAAS,CAAA,cAAA,CACT,QAAU,CAAA,eAAA,CACV,KAAM,WACR,CAAA,CAiBMC,CACJC,CAAAA,CAAAA,EAEKA,GAEgB,KAAM,CAAA,OAAA,CAAQA,CAAQ,CAAA,CAAIA,EAAW,CAACA,CAAQ,CAGhE,EAAA,GAAA,CAAKJ,GAAY,CAChB,GAAIA,CAAQ,CAAA,QAAA,CAAS,GAAG,CAAG,CAAA,CACzB,GAAM,CAACf,CAAYoB,CAAAA,CAAe,CAAIL,CAAAA,CAAAA,CAAQ,MAAM,GAAG,CAAA,CACvD,OAAO,CAAA,EAAGf,CAAU,CAASoB,MAAAA,EAAAA,CAAe,CAC9C,CAAA,CACA,OAAO,KAAM,CAAA,OAAA,CAAQD,CAAQ,CAAA,CAAI,WAAWJ,CAAO,CAAA,CAAA,CAAK,CAAQA,KAAAA,EAAAA,CAAO,EACzE,CAAC,CAAA,CACA,IAAK,CAAA,GAAG,EAZW,mBAeXM,CAAAA,CAAAA,CAAOlB,CAAM,CAAA,UAAA,CACxB,CACE,CACE,OAAA,CAAAY,CAAU,CAAA,cAAA,CACV,MAAAV,CAAQ,CAAA,cAAA,CACR,EAAAiB,CAAAA,CAAAA,CACA,UAAAf,CACA,CAAA,QAAA,CAAAgB,CACA,CAAA,MAAA,CAAAC,EACA,GAAGhB,CACL,CACAC,CAAAA,CAAAA,GACG,CAEH,IAAMgB,CAAAA,CAAoBP,CAAgBH,CAAAA,CAAO,EAG3CW,CACJrB,CAAAA,CAAAA,EAASA,CAAU,GAAA,SAAA,CAAY,UAAYA,CAAQ,CAAA,CAAA,KAAA,EAAQA,CAAK,CAAA,CAAA,CAAK,GAEjEsB,CAAmBxB,CAAAA,CAAAA,CAAM,OAAQ,CAAA,IAAM,CAC3C,IAAMyB,CAAAA,CACJ,OAAOb,CAAAA,EAAY,SACfA,CAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CAAE,KACnB,CAAA,KAAA,CAAM,OAAQA,CAAAA,CAAO,EACnBA,CAAQ,CAAA,CAAC,CAAE,CAAA,KAAA,CAAM,GAAG,CAAE,CAAA,GAAA,EACtB,CAAA,cAAA,CACR,OAAOD,CAAsBc,CAAAA,CAA4B,CAC3D,CAAA,CAAG,CAACb,CAAO,CAAC,CAIZ,CAAA,OAEEZ,EAAA,aAJiBmB,CAAAA,CAAAA,EAAMK,CAItB,CAAA,CACC,IAAKlB,CACL,CAAA,SAAA,CAAW,CAAyBgB,sBAAAA,EAAAA,CAAiB,IAAIC,CAAY,CAAA,CAAA,EACnEF,CAAS,CAAA,CAAA,CAAA,EAAIP,EAAWO,CAAM,CAAC,CAAK,CAAA,CAAA,EACtC,IAAIjB,CAAa,EAAA,EAAE,CAClB,CAAA,CAAA,GAAGC,GAEHe,CACH,CAEJ,CACF,CAAA,CAEAF,EAAK,WAAc,CAAA,MAAA,CClMZ,IAAMQ,CAAAA,CAAM,CAAC,CAClB,QAAA,CAAAN,CACA,CAAA,MAAA,CAAAO,EACA,KAAAzB,CAAAA,CAAAA,CAAQ,SACR,CAAA,GAAGG,CACL,CACEL,GAAAA,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CACC,SAAW,CAAA,CAAA,yBAAA,EAA4B2B,CAAS,CAAA,MAAA,CAAS,MAAM,CAC9D,aAAA,CAAA,CAAA,GAAGtB,CAEH,CAAA,CAAA,OAAOe,GAAa,QACnBpB,CAAAA,CAAAA,CAAA,aAACkB,CAAAA,CAAAA,CAAA,CACC,KAAOhB,CAAAA,CAAAA,GAAU,SAAY,CAAA,aAAA,CAAgB,eAC7C,OAAS,CAAA,CAAC,qBAAuB,CAAA,mBAAmB,EACpD,SAAU,CAAA,UAAA,CAAA,CAETkB,CACH,CAAA,CAEAA,CAEJ,CChBK,CAAA,IAAMQ,CAAW,CAAA,CAAC,CACvB,cAAAC,CAAAA,CAAAA,CACA,IAAAC,CAAAA,CAAAA,CACA,QAAAC,CACA,CAAA,SAAA,CAAAC,CACA,CAAA,eAAA,CAAAC,CACF,CAEIjC,GAAAA,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CACC,UAAW,4FACX,CAAA,KAAA,CAAO,CACL,eAAA,CAAiB,UACjB,eAAiB,CAAA,CAAA,IAAA,EAAOiC,CAAe,CAAA,CAAA,CAAA,CACvC,eAAgB,OAChB,CAAA,kBAAA,CAAoB,QACpB,CAAA,gBAAA,CAAkB,WACpB,CAEAjC,CAAAA,CAAAA,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CAAI,UAAU,6CACbA,CAAAA,CAAAA,CAAAA,CAAA,aAAC,CAAA,KAAA,CAAA,CAAI,UAAU,oEACbA,CAAAA,CAAAA,CAAAA,CAAA,aAACD,CAAAA,CAAAA,CAAA,CAAK,IAAM8B,CAAAA,CAAAA,CAAgB,IAAM,CAAA,EAAA,CAAI,UAAU,YAAa,CAAA,CAC/D,CACA7B,CAAAA,CAAAA,CAAA,cAAC,KAAI,CAAA,CAAA,SAAA,CAAU,yBACZ8B,CAAAA,CAAAA,CAAAA,CAAK,IAAI,CAACI,CAAAA,CAAKC,CACdnC,GAAAA,CAAAA,CAAA,cAAC0B,CAAA,CAAA,CAAI,MAAM,CAAA,CAAA,CAAA,CAAC,IAAKS,CAAO,CAAA,KAAA,CAAM,MAC3BD,CAAAA,CAAAA,CACH,CACD,CACH,CACF,CACAlC,CAAAA,CAAAA,CAAA,cAAC,KAAI,CAAA,CAAA,SAAA,CAAU,+CACbA,CAAAA,CAAAA,CAAAA,CAAA,cAACkB,CAAA,CAAA,CAAK,OAAQ,CAAA,qBAAA,CAAsB,UAAU,YAC3Ca,CAAAA,CAAAA,CACH,CACA/B,CAAAA,CAAAA,CAAA,cAAC,KAAI,CAAA,CAAA,SAAA,CAAU,YACbA,CAAAA,CAAAA,CAAAA,CAAA,cAACD,CAAA,CAAA,CAAK,IAAK,CAAA,MAAA,CAAO,KAAM,EAAI,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAA,CAC1CC,EAAA,aAACkB,CAAAA,CAAAA,CAAA,CAAK,OAAA,CAAQ,iBAAiB,SAAU,CAAA,YAAA,CAAA,CACtCc,CACH,CACF,CACF,CACF","file":"WorkCard.js","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","import React, { SVGProps } from \"react\";\nimport { IconName, IconMap } from \"@deckai/icons\";\nimport { IconColors } from \"../types/tailwind\";\nimport { cn } from \"../utils\";\n\nexport type IconProps = {\n name: IconName;\n /** @default 24 */\n size?: number | `${Breakpoint}:${number}`;\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\nconst COLOR_MAP: Record<IconColors, string> = {\n primary: \"#080808\",\n secondary: \"#666666\",\n white: \"#ffffff\",\n primaryBlue: \"#089CCB\"\n};\n\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\ntype ResponsiveSize = number | `${Breakpoint}:${number}`;\n\nconst BREAKPOINT_MAP: Record<Breakpoint, string> = {\n sm: \"@media (min-width: 640px)\",\n md: \"@media (min-width: 768px)\",\n lg: \"@media (min-width: 1024px)\",\n xl: \"@media (min-width: 1280px)\",\n \"2xl\": \"@media (min-width: 1536px)\"\n};\n\nconst processSizes = (\n sizes: ResponsiveSize | ResponsiveSize[] | undefined\n): React.CSSProperties => {\n if (!sizes) return { width: \"24px\", height: \"24px\" };\n\n const sizeArray = Array.isArray(sizes) ? sizes : [sizes];\n const baseSize = typeof sizeArray[0] === \"number\" ? sizeArray[0] : 24;\n\n const style: React.CSSProperties = {\n width: `${baseSize}px`,\n height: `${baseSize}px`\n };\n\n // Add media queries for responsive sizes\n const mediaQueries = sizeArray\n .filter(\n (size): size is `${Breakpoint}:${number}` =>\n typeof size === \"string\" && size.includes(\":\")\n )\n .reduce(\n (acc, size) => {\n const [breakpoint, value] = size.split(\":\") as [Breakpoint, string];\n acc[BREAKPOINT_MAP[breakpoint]] = {\n width: `${value}px`,\n height: `${value}px`\n };\n return acc;\n },\n {} as Record<string, React.CSSProperties>\n );\n\n if (Object.keys(mediaQueries).length > 0) {\n (style as any)[\"@media\"] = mediaQueries;\n }\n\n return style;\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 sizeStyles = processSizes(size);\n\n return (\n <div\n className={cn(\"flex justify-center items-center\", className)}\n style={{\n ...sizeStyles,\n [\"--icon-stroke\" as string]: COLOR_MAP[color],\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 {\n Colors,\n TextColorVariant,\n PrimaryShades,\n SecondaryShades,\n TertiaryShades,\n Typography\n} from \"../types/tailwind\";\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 ColorCategory = keyof Omit<Colors, \"stroke\" | \"background\">;\ntype ColorValue<T extends ColorCategory> = T extends \"text\"\n ? TextColorVariant\n : T extends \"primary\"\n ? keyof PrimaryShades\n : T extends \"secondary\"\n ? keyof SecondaryShades\n : T extends \"tertiary\"\n ? keyof TertiaryShades\n : never;\n\ntype ColorKey = {\n [T in ColorCategory]: `${T}-${ColorValue<T>}`;\n}[ColorCategory];\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\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\n// Add breakpoint types\ntype Breakpoint = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\ntype ResponsiveVariant = TypographyKey | `${Breakpoint}:${TypographyKey}`;\n\n// Update TextProps to use ResponsiveVariant\nexport type TextProps<T extends TextElement = \"p\"> = {\n variant?: ResponsiveVariant | ResponsiveVariant[];\n color?: ColorKey | \"inherit\";\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 Array.isArray(variants) ? `lg:text-${variant}` : `text-${variant}`;\n })\n .join(\" \");\n};\n\nexport const Text = React.forwardRef(\n <T extends TextElement = \"p\">(\n {\n variant = \"body-default\",\n color = \"text-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\n const colorClasses =\n color && color === \"inherit\" ? \"inherit\" : color ? `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={`font-sans antialiased ${typographyClasses} ${colorClasses} ${\n weight ? `!${fontWeight[weight]}` : \"\"\n } ${className ?? \"\"}`}\n {...props}\n >\n {children}\n </Component>\n );\n }\n);\n\nText.displayName = \"Text\";\n","import React, { HTMLAttributes } from \"react\";\nimport { Text } from \"./Text\";\n\nexport type TagProps = {\n children: React.ReactNode;\n padded?: boolean;\n color?: \"primary\" | \"text\";\n} & HTMLAttributes<HTMLDivElement>;\n\nexport const Tag = ({\n children,\n padded,\n color = \"primary\",\n ...props\n}: TagProps) => (\n <div\n className={`rounded bg-secondary-400 ${padded ? \"px-3\" : \"px-2\"} py-1.5 h-min`}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text\n color={color === \"primary\" ? \"primary-100\" : \"text-primary\"}\n variant={[\"body-default-medium\", \"md:body-xs-medium\"]}\n className=\"truncate\"\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </div>\n);\n","import React from \"react\";\nimport { Icon } from \"./Icon\";\nimport { Tag } from \"./Tag\";\nimport { Text } from \"./Text\";\n\nexport type WorkCardProps = {\n socialIconName: \"instagram-filled\" | \"tiktok-filled\" | \"youtube-filled\";\n tags: string[];\n caption: string;\n /** play count should already be formatted with k or m */\n playCount: string;\n backgroundImage: string;\n};\n\nexport const WorkCard = ({\n socialIconName,\n tags,\n caption,\n playCount,\n backgroundImage\n}: WorkCardProps) => {\n return (\n <div\n className={`flex flex-col justify-between p-4 w-[292px] h-[403px] rounded-2xl relative overflow-hidden`}\n style={{\n backgroundColor: \"#e7e7e7\",\n backgroundImage: `url(${backgroundImage})`,\n backgroundSize: \"cover\",\n backgroundPosition: \"center\",\n backgroundRepeat: \"no-repeat\"\n }}\n >\n <div className=\"flex justify-between px-4 py-2 items-center\">\n <div className=\"flex items-center justify-center bg-overlay h-10 w-10 rounded-full\">\n <Icon name={socialIconName} size={20} className=\"fill-white\" />\n </div>\n <div className=\"flex gap-2 items-center\">\n {tags.map((tag, index) => (\n <Tag padded key={index} color=\"text\">\n {tag}\n </Tag>\n ))}\n </div>\n </div>\n <div className=\"flex flex-col gap-1 p-2 rounded-lg bg-overlay\">\n <Text variant=\"body-default-medium\" className=\"text-white\">\n {caption}\n </Text>\n <div className=\"flex gap-2\">\n <Icon name=\"play\" size={16} color=\"white\" />\n <Text variant=\"body-xs-medium\" className=\"text-white\">\n {playCount}\n </Text>\n </div>\n </div>\n </div>\n );\n};\n"]}