@thunderid/react 0.12.0 → 0.13.1

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 (395) hide show
  1. package/dist/api/getUsersMeMeta.d.ts +22 -0
  2. package/dist/api/getUsersMeMeta.d.ts.map +1 -0
  3. package/dist/api/getUsersMeMeta.js +32 -0
  4. package/dist/api/getUsersMeMeta.js.map +1 -0
  5. package/dist/cjs/api/getUsersMeMeta.cjs +34 -0
  6. package/dist/cjs/api/getUsersMeMeta.cjs.map +1 -0
  7. package/dist/cjs/components/actions/SignInButton/BaseSignInButton.cjs +2 -3
  8. package/dist/cjs/components/actions/SignInButton/BaseSignInButton.cjs.map +1 -1
  9. package/dist/cjs/components/actions/SignOutButton/BaseSignOutButton.cjs +2 -3
  10. package/dist/cjs/components/actions/SignOutButton/BaseSignOutButton.cjs.map +1 -1
  11. package/dist/cjs/components/actions/SignUpButton/BaseSignUpButton.cjs +2 -3
  12. package/dist/cjs/components/actions/SignUpButton/BaseSignUpButton.cjs.map +1 -1
  13. package/dist/cjs/components/adapters/Consent.cjs +34 -27
  14. package/dist/cjs/components/adapters/Consent.cjs.map +1 -1
  15. package/dist/cjs/components/adapters/ConsentCheckboxList.cjs +7 -8
  16. package/dist/cjs/components/adapters/ConsentCheckboxList.cjs.map +1 -1
  17. package/dist/cjs/components/adapters/ConsentCheckboxList.styles.cjs +8 -9
  18. package/dist/cjs/components/adapters/ConsentCheckboxList.styles.cjs.map +1 -1
  19. package/dist/cjs/components/adapters/GoogleButton.cjs +425 -31
  20. package/dist/cjs/components/adapters/GoogleButton.cjs.map +1 -1
  21. package/dist/cjs/components/adapters/ImageComponent.cjs +13 -9
  22. package/dist/cjs/components/adapters/ImageComponent.cjs.map +1 -1
  23. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs +3 -4
  24. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.cjs.map +1 -1
  25. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.cjs +11 -12
  26. package/dist/cjs/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.cjs.map +1 -1
  27. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs +12 -16
  28. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.cjs.map +1 -1
  29. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.styles.cjs +18 -15
  30. package/dist/cjs/components/presentation/UserDropdown/BaseUserDropdown.styles.cjs.map +1 -1
  31. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs +96 -41
  32. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.cjs.map +1 -1
  33. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.styles.cjs +25 -26
  34. package/dist/cjs/components/presentation/UserProfile/BaseUserProfile.styles.cjs.map +1 -1
  35. package/dist/cjs/components/presentation/UserProfile/UserProfile.cjs +4 -2
  36. package/dist/cjs/components/presentation/UserProfile/UserProfile.cjs.map +1 -1
  37. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs +10 -31
  38. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.cjs.map +1 -1
  39. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs +41 -9
  40. package/dist/cjs/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.cjs.map +1 -1
  41. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs +75 -71
  42. package/dist/cjs/components/presentation/auth/AuthOptionFactory.cjs.map +1 -1
  43. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs +9 -22
  44. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.cjs.map +1 -1
  45. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs +22 -9
  46. package/dist/cjs/components/presentation/auth/InviteUser/BaseInviteUser.styles.cjs.map +1 -1
  47. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs +11 -12
  48. package/dist/cjs/components/presentation/auth/Recovery/BaseRecovery.cjs.map +1 -1
  49. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs +11 -16
  50. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.cjs.map +1 -1
  51. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.styles.cjs +32 -27
  52. package/dist/cjs/components/presentation/auth/SignIn/BaseSignIn.styles.cjs.map +1 -1
  53. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs +11 -12
  54. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.cjs.map +1 -1
  55. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.styles.cjs +25 -26
  56. package/dist/cjs/components/presentation/auth/SignUp/BaseSignUp.styles.cjs.map +1 -1
  57. package/dist/cjs/components/primitives/AffixedField/AffixedField.cjs +6 -7
  58. package/dist/cjs/components/primitives/AffixedField/AffixedField.cjs.map +1 -1
  59. package/dist/cjs/components/primitives/AffixedField/AffixedField.styles.cjs +9 -10
  60. package/dist/cjs/components/primitives/AffixedField/AffixedField.styles.cjs.map +1 -1
  61. package/dist/cjs/components/primitives/Alert/Alert.cjs +6 -7
  62. package/dist/cjs/components/primitives/Alert/Alert.cjs.map +1 -1
  63. package/dist/cjs/components/primitives/Alert/Alert.styles.cjs +10 -11
  64. package/dist/cjs/components/primitives/Alert/Alert.styles.cjs.map +1 -1
  65. package/dist/cjs/components/primitives/Avatar/Avatar.cjs +5 -6
  66. package/dist/cjs/components/primitives/Avatar/Avatar.cjs.map +1 -1
  67. package/dist/cjs/components/primitives/Avatar/Avatar.styles.cjs +7 -8
  68. package/dist/cjs/components/primitives/Avatar/Avatar.styles.cjs.map +1 -1
  69. package/dist/cjs/components/primitives/Button/Button.cjs +8 -12
  70. package/dist/cjs/components/primitives/Button/Button.cjs.map +1 -1
  71. package/dist/cjs/components/primitives/Button/Button.styles.cjs +23 -24
  72. package/dist/cjs/components/primitives/Button/Button.styles.cjs.map +1 -1
  73. package/dist/cjs/components/primitives/Card/Card.cjs +8 -9
  74. package/dist/cjs/components/primitives/Card/Card.cjs.map +1 -1
  75. package/dist/cjs/components/primitives/Card/Card.styles.cjs +12 -13
  76. package/dist/cjs/components/primitives/Card/Card.styles.cjs.map +1 -1
  77. package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs +5 -6
  78. package/dist/cjs/components/primitives/Checkbox/Checkbox.cjs.map +1 -1
  79. package/dist/cjs/components/primitives/Checkbox/Checkbox.styles.cjs +7 -8
  80. package/dist/cjs/components/primitives/Checkbox/Checkbox.styles.cjs.map +1 -1
  81. package/dist/cjs/components/primitives/CopyableText/CopyableText.styles.cjs +6 -7
  82. package/dist/cjs/components/primitives/CopyableText/CopyableText.styles.cjs.map +1 -1
  83. package/dist/cjs/components/primitives/DatePicker/DatePicker.cjs +4 -5
  84. package/dist/cjs/components/primitives/DatePicker/DatePicker.cjs.map +1 -1
  85. package/dist/cjs/components/primitives/DatePicker/DatePicker.styles.cjs +5 -6
  86. package/dist/cjs/components/primitives/DatePicker/DatePicker.styles.cjs.map +1 -1
  87. package/dist/cjs/components/primitives/Dialog/Dialog.cjs +7 -8
  88. package/dist/cjs/components/primitives/Dialog/Dialog.cjs.map +1 -1
  89. package/dist/cjs/components/primitives/Dialog/Dialog.styles.cjs +8 -9
  90. package/dist/cjs/components/primitives/Dialog/Dialog.styles.cjs.map +1 -1
  91. package/dist/cjs/components/primitives/Divider/Divider.cjs +7 -8
  92. package/dist/cjs/components/primitives/Divider/Divider.cjs.map +1 -1
  93. package/dist/cjs/components/primitives/Divider/Divider.styles.cjs +7 -8
  94. package/dist/cjs/components/primitives/Divider/Divider.styles.cjs.map +1 -1
  95. package/dist/cjs/components/primitives/FormControl/FormControl.cjs +3 -4
  96. package/dist/cjs/components/primitives/FormControl/FormControl.cjs.map +1 -1
  97. package/dist/cjs/components/primitives/FormControl/FormControl.styles.cjs +4 -5
  98. package/dist/cjs/components/primitives/FormControl/FormControl.styles.cjs.map +1 -1
  99. package/dist/cjs/components/primitives/InputLabel/InputLabel.cjs +3 -4
  100. package/dist/cjs/components/primitives/InputLabel/InputLabel.cjs.map +1 -1
  101. package/dist/cjs/components/primitives/InputLabel/InputLabel.styles.cjs +6 -7
  102. package/dist/cjs/components/primitives/InputLabel/InputLabel.styles.cjs.map +1 -1
  103. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs +19 -20
  104. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.cjs.map +1 -1
  105. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.styles.cjs +16 -17
  106. package/dist/cjs/components/primitives/KeyValueInput/KeyValueInput.styles.cjs.map +1 -1
  107. package/dist/cjs/components/primitives/Logo/Logo.cjs +3 -4
  108. package/dist/cjs/components/primitives/Logo/Logo.cjs.map +1 -1
  109. package/dist/cjs/components/primitives/Logo/Logo.styles.cjs +9 -10
  110. package/dist/cjs/components/primitives/Logo/Logo.styles.cjs.map +1 -1
  111. package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs +11 -12
  112. package/dist/cjs/components/primitives/MultiInput/MultiInput.cjs.map +1 -1
  113. package/dist/cjs/components/primitives/MultiInput/MultiInput.styles.cjs +10 -11
  114. package/dist/cjs/components/primitives/MultiInput/MultiInput.styles.cjs.map +1 -1
  115. package/dist/cjs/components/primitives/OtpField/OtpField.cjs +4 -5
  116. package/dist/cjs/components/primitives/OtpField/OtpField.cjs.map +1 -1
  117. package/dist/cjs/components/primitives/OtpField/OtpField.styles.cjs +5 -6
  118. package/dist/cjs/components/primitives/OtpField/OtpField.styles.cjs.map +1 -1
  119. package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs +3 -4
  120. package/dist/cjs/components/primitives/PasswordField/PasswordField.cjs.map +1 -1
  121. package/dist/cjs/components/primitives/PasswordField/PasswordField.styles.cjs +4 -5
  122. package/dist/cjs/components/primitives/PasswordField/PasswordField.styles.cjs.map +1 -1
  123. package/dist/cjs/components/primitives/Select/Select.cjs +3 -4
  124. package/dist/cjs/components/primitives/Select/Select.cjs.map +1 -1
  125. package/dist/cjs/components/primitives/Select/Select.styles.cjs +5 -6
  126. package/dist/cjs/components/primitives/Select/Select.styles.cjs.map +1 -1
  127. package/dist/cjs/components/primitives/Spinner/Spinner.cjs +4 -6
  128. package/dist/cjs/components/primitives/Spinner/Spinner.cjs.map +1 -1
  129. package/dist/cjs/components/primitives/Spinner/Spinner.styles.cjs +20 -12
  130. package/dist/cjs/components/primitives/Spinner/Spinner.styles.cjs.map +1 -1
  131. package/dist/cjs/components/primitives/TextField/TextField.cjs +6 -7
  132. package/dist/cjs/components/primitives/TextField/TextField.cjs.map +1 -1
  133. package/dist/cjs/components/primitives/TextField/TextField.styles.cjs +8 -9
  134. package/dist/cjs/components/primitives/TextField/TextField.styles.cjs.map +1 -1
  135. package/dist/cjs/components/primitives/Toggle/Toggle.cjs +7 -8
  136. package/dist/cjs/components/primitives/Toggle/Toggle.cjs.map +1 -1
  137. package/dist/cjs/components/primitives/Toggle/Toggle.styles.cjs +7 -8
  138. package/dist/cjs/components/primitives/Toggle/Toggle.styles.cjs.map +1 -1
  139. package/dist/cjs/components/primitives/Tooltip/Tooltip.cjs +4 -5
  140. package/dist/cjs/components/primitives/Tooltip/Tooltip.cjs.map +1 -1
  141. package/dist/cjs/components/primitives/Tooltip/Tooltip.styles.cjs +13 -14
  142. package/dist/cjs/components/primitives/Tooltip/Tooltip.styles.cjs.map +1 -1
  143. package/dist/cjs/components/primitives/Typography/Typography.cjs +2 -3
  144. package/dist/cjs/components/primitives/Typography/Typography.cjs.map +1 -1
  145. package/dist/cjs/components/primitives/Typography/Typography.styles.cjs +18 -19
  146. package/dist/cjs/components/primitives/Typography/Typography.styles.cjs.map +1 -1
  147. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs +1 -0
  148. package/dist/cjs/contexts/ThunderID/ThunderIDContext.cjs.map +1 -1
  149. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs +36 -14
  150. package/dist/cjs/contexts/ThunderID/ThunderIDProvider.cjs.map +1 -1
  151. package/dist/cjs/contexts/User/UserContext.cjs +2 -1
  152. package/dist/cjs/contexts/User/UserContext.cjs.map +1 -1
  153. package/dist/cjs/contexts/User/UserProvider.cjs +5 -3
  154. package/dist/cjs/contexts/User/UserProvider.cjs.map +1 -1
  155. package/dist/cjs/index.cjs +2 -0
  156. package/dist/cjs/styles/emotion.cjs +64 -0
  157. package/dist/cjs/styles/emotion.cjs.map +1 -0
  158. package/dist/components/actions/SignInButton/BaseSignInButton.d.ts.map +1 -1
  159. package/dist/components/actions/SignInButton/BaseSignInButton.js +1 -1
  160. package/dist/components/actions/SignInButton/BaseSignInButton.js.map +1 -1
  161. package/dist/components/actions/SignOutButton/BaseSignOutButton.d.ts.map +1 -1
  162. package/dist/components/actions/SignOutButton/BaseSignOutButton.js +1 -1
  163. package/dist/components/actions/SignOutButton/BaseSignOutButton.js.map +1 -1
  164. package/dist/components/actions/SignUpButton/BaseSignUpButton.d.ts.map +1 -1
  165. package/dist/components/actions/SignUpButton/BaseSignUpButton.js +1 -1
  166. package/dist/components/actions/SignUpButton/BaseSignUpButton.js.map +1 -1
  167. package/dist/components/adapters/Consent.d.ts.map +1 -1
  168. package/dist/components/adapters/Consent.js +34 -27
  169. package/dist/components/adapters/Consent.js.map +1 -1
  170. package/dist/components/adapters/ConsentCheckboxList.d.ts.map +1 -1
  171. package/dist/components/adapters/ConsentCheckboxList.js +1 -1
  172. package/dist/components/adapters/ConsentCheckboxList.js.map +1 -1
  173. package/dist/components/adapters/ConsentCheckboxList.styles.d.ts.map +1 -1
  174. package/dist/components/adapters/ConsentCheckboxList.styles.js +1 -1
  175. package/dist/components/adapters/ConsentCheckboxList.styles.js.map +1 -1
  176. package/dist/components/adapters/GoogleButton.d.ts.map +1 -1
  177. package/dist/components/adapters/GoogleButton.js +425 -31
  178. package/dist/components/adapters/GoogleButton.js.map +1 -1
  179. package/dist/components/adapters/ImageComponent.d.ts.map +1 -1
  180. package/dist/components/adapters/ImageComponent.js +13 -9
  181. package/dist/components/adapters/ImageComponent.js.map +1 -1
  182. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts.map +1 -1
  183. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js +1 -1
  184. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.js.map +1 -1
  185. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts.map +1 -1
  186. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.js +1 -1
  187. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.js.map +1 -1
  188. package/dist/components/presentation/UserDropdown/BaseUserDropdown.d.ts.map +1 -1
  189. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js +5 -8
  190. package/dist/components/presentation/UserDropdown/BaseUserDropdown.js.map +1 -1
  191. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.d.ts.map +1 -1
  192. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.js +5 -1
  193. package/dist/components/presentation/UserDropdown/BaseUserDropdown.styles.js.map +1 -1
  194. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +2 -1
  195. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts.map +1 -1
  196. package/dist/components/presentation/UserProfile/BaseUserProfile.js +92 -36
  197. package/dist/components/presentation/UserProfile/BaseUserProfile.js.map +1 -1
  198. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.d.ts.map +1 -1
  199. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.js +1 -1
  200. package/dist/components/presentation/UserProfile/BaseUserProfile.styles.js.map +1 -1
  201. package/dist/components/presentation/UserProfile/UserProfile.d.ts.map +1 -1
  202. package/dist/components/presentation/UserProfile/UserProfile.js +5 -3
  203. package/dist/components/presentation/UserProfile/UserProfile.js.map +1 -1
  204. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.d.ts.map +1 -1
  205. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js +7 -27
  206. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.js.map +1 -1
  207. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.d.ts.map +1 -1
  208. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js +38 -5
  209. package/dist/components/presentation/auth/AcceptInvite/BaseAcceptInvite.styles.js.map +1 -1
  210. package/dist/components/presentation/auth/AuthOptionFactory.d.ts.map +1 -1
  211. package/dist/components/presentation/auth/AuthOptionFactory.js +68 -63
  212. package/dist/components/presentation/auth/AuthOptionFactory.js.map +1 -1
  213. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.d.ts.map +1 -1
  214. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js +5 -17
  215. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.js.map +1 -1
  216. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.d.ts.map +1 -1
  217. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js +19 -5
  218. package/dist/components/presentation/auth/InviteUser/BaseInviteUser.styles.js.map +1 -1
  219. package/dist/components/presentation/auth/Recovery/BaseRecovery.d.ts.map +1 -1
  220. package/dist/components/presentation/auth/Recovery/BaseRecovery.js +1 -1
  221. package/dist/components/presentation/auth/Recovery/BaseRecovery.js.map +1 -1
  222. package/dist/components/presentation/auth/SignIn/BaseSignIn.d.ts.map +1 -1
  223. package/dist/components/presentation/auth/SignIn/BaseSignIn.js +2 -6
  224. package/dist/components/presentation/auth/SignIn/BaseSignIn.js.map +1 -1
  225. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.d.ts.map +1 -1
  226. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.js +7 -1
  227. package/dist/components/presentation/auth/SignIn/BaseSignIn.styles.js.map +1 -1
  228. package/dist/components/presentation/auth/SignUp/BaseSignUp.d.ts.map +1 -1
  229. package/dist/components/presentation/auth/SignUp/BaseSignUp.js +1 -1
  230. package/dist/components/presentation/auth/SignUp/BaseSignUp.js.map +1 -1
  231. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.d.ts.map +1 -1
  232. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.js +1 -1
  233. package/dist/components/presentation/auth/SignUp/BaseSignUp.styles.js.map +1 -1
  234. package/dist/components/primitives/AffixedField/AffixedField.d.ts.map +1 -1
  235. package/dist/components/primitives/AffixedField/AffixedField.js +1 -1
  236. package/dist/components/primitives/AffixedField/AffixedField.js.map +1 -1
  237. package/dist/components/primitives/AffixedField/AffixedField.styles.d.ts.map +1 -1
  238. package/dist/components/primitives/AffixedField/AffixedField.styles.js +1 -1
  239. package/dist/components/primitives/AffixedField/AffixedField.styles.js.map +1 -1
  240. package/dist/components/primitives/Alert/Alert.d.ts.map +1 -1
  241. package/dist/components/primitives/Alert/Alert.js +1 -1
  242. package/dist/components/primitives/Alert/Alert.js.map +1 -1
  243. package/dist/components/primitives/Alert/Alert.styles.d.ts.map +1 -1
  244. package/dist/components/primitives/Alert/Alert.styles.js +1 -1
  245. package/dist/components/primitives/Alert/Alert.styles.js.map +1 -1
  246. package/dist/components/primitives/Avatar/Avatar.d.ts.map +1 -1
  247. package/dist/components/primitives/Avatar/Avatar.js +1 -1
  248. package/dist/components/primitives/Avatar/Avatar.js.map +1 -1
  249. package/dist/components/primitives/Avatar/Avatar.styles.d.ts.map +1 -1
  250. package/dist/components/primitives/Avatar/Avatar.styles.js +1 -1
  251. package/dist/components/primitives/Avatar/Avatar.styles.js.map +1 -1
  252. package/dist/components/primitives/Button/Button.d.ts.map +1 -1
  253. package/dist/components/primitives/Button/Button.js +2 -5
  254. package/dist/components/primitives/Button/Button.js.map +1 -1
  255. package/dist/components/primitives/Button/Button.styles.d.ts.map +1 -1
  256. package/dist/components/primitives/Button/Button.styles.js +1 -1
  257. package/dist/components/primitives/Button/Button.styles.js.map +1 -1
  258. package/dist/components/primitives/Card/Card.d.ts.map +1 -1
  259. package/dist/components/primitives/Card/Card.js +1 -1
  260. package/dist/components/primitives/Card/Card.js.map +1 -1
  261. package/dist/components/primitives/Card/Card.styles.d.ts.map +1 -1
  262. package/dist/components/primitives/Card/Card.styles.js +1 -1
  263. package/dist/components/primitives/Card/Card.styles.js.map +1 -1
  264. package/dist/components/primitives/Checkbox/Checkbox.d.ts.map +1 -1
  265. package/dist/components/primitives/Checkbox/Checkbox.js +1 -1
  266. package/dist/components/primitives/Checkbox/Checkbox.js.map +1 -1
  267. package/dist/components/primitives/Checkbox/Checkbox.styles.d.ts.map +1 -1
  268. package/dist/components/primitives/Checkbox/Checkbox.styles.js +1 -1
  269. package/dist/components/primitives/Checkbox/Checkbox.styles.js.map +1 -1
  270. package/dist/components/primitives/CopyableText/CopyableText.styles.d.ts.map +1 -1
  271. package/dist/components/primitives/CopyableText/CopyableText.styles.js +1 -1
  272. package/dist/components/primitives/CopyableText/CopyableText.styles.js.map +1 -1
  273. package/dist/components/primitives/DatePicker/DatePicker.d.ts.map +1 -1
  274. package/dist/components/primitives/DatePicker/DatePicker.js +1 -1
  275. package/dist/components/primitives/DatePicker/DatePicker.js.map +1 -1
  276. package/dist/components/primitives/DatePicker/DatePicker.styles.d.ts.map +1 -1
  277. package/dist/components/primitives/DatePicker/DatePicker.styles.js +1 -1
  278. package/dist/components/primitives/DatePicker/DatePicker.styles.js.map +1 -1
  279. package/dist/components/primitives/Dialog/Dialog.d.ts.map +1 -1
  280. package/dist/components/primitives/Dialog/Dialog.js +1 -1
  281. package/dist/components/primitives/Dialog/Dialog.js.map +1 -1
  282. package/dist/components/primitives/Dialog/Dialog.styles.d.ts.map +1 -1
  283. package/dist/components/primitives/Dialog/Dialog.styles.js +1 -1
  284. package/dist/components/primitives/Dialog/Dialog.styles.js.map +1 -1
  285. package/dist/components/primitives/Divider/Divider.d.ts.map +1 -1
  286. package/dist/components/primitives/Divider/Divider.js +1 -1
  287. package/dist/components/primitives/Divider/Divider.js.map +1 -1
  288. package/dist/components/primitives/Divider/Divider.styles.d.ts.map +1 -1
  289. package/dist/components/primitives/Divider/Divider.styles.js +1 -1
  290. package/dist/components/primitives/Divider/Divider.styles.js.map +1 -1
  291. package/dist/components/primitives/FormControl/FormControl.d.ts.map +1 -1
  292. package/dist/components/primitives/FormControl/FormControl.js +1 -1
  293. package/dist/components/primitives/FormControl/FormControl.js.map +1 -1
  294. package/dist/components/primitives/FormControl/FormControl.styles.d.ts.map +1 -1
  295. package/dist/components/primitives/FormControl/FormControl.styles.js +1 -1
  296. package/dist/components/primitives/FormControl/FormControl.styles.js.map +1 -1
  297. package/dist/components/primitives/InputLabel/InputLabel.d.ts.map +1 -1
  298. package/dist/components/primitives/InputLabel/InputLabel.js +1 -1
  299. package/dist/components/primitives/InputLabel/InputLabel.js.map +1 -1
  300. package/dist/components/primitives/InputLabel/InputLabel.styles.d.ts.map +1 -1
  301. package/dist/components/primitives/InputLabel/InputLabel.styles.js +1 -1
  302. package/dist/components/primitives/InputLabel/InputLabel.styles.js.map +1 -1
  303. package/dist/components/primitives/KeyValueInput/KeyValueInput.d.ts.map +1 -1
  304. package/dist/components/primitives/KeyValueInput/KeyValueInput.js +1 -1
  305. package/dist/components/primitives/KeyValueInput/KeyValueInput.js.map +1 -1
  306. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.d.ts.map +1 -1
  307. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.js +1 -1
  308. package/dist/components/primitives/KeyValueInput/KeyValueInput.styles.js.map +1 -1
  309. package/dist/components/primitives/Logo/Logo.d.ts.map +1 -1
  310. package/dist/components/primitives/Logo/Logo.js +1 -1
  311. package/dist/components/primitives/Logo/Logo.js.map +1 -1
  312. package/dist/components/primitives/Logo/Logo.styles.d.ts.map +1 -1
  313. package/dist/components/primitives/Logo/Logo.styles.js +1 -1
  314. package/dist/components/primitives/Logo/Logo.styles.js.map +1 -1
  315. package/dist/components/primitives/MultiInput/MultiInput.d.ts.map +1 -1
  316. package/dist/components/primitives/MultiInput/MultiInput.js +1 -1
  317. package/dist/components/primitives/MultiInput/MultiInput.js.map +1 -1
  318. package/dist/components/primitives/MultiInput/MultiInput.styles.d.ts.map +1 -1
  319. package/dist/components/primitives/MultiInput/MultiInput.styles.js +1 -1
  320. package/dist/components/primitives/MultiInput/MultiInput.styles.js.map +1 -1
  321. package/dist/components/primitives/OtpField/OtpField.d.ts.map +1 -1
  322. package/dist/components/primitives/OtpField/OtpField.js +1 -1
  323. package/dist/components/primitives/OtpField/OtpField.js.map +1 -1
  324. package/dist/components/primitives/OtpField/OtpField.styles.d.ts.map +1 -1
  325. package/dist/components/primitives/OtpField/OtpField.styles.js +1 -1
  326. package/dist/components/primitives/OtpField/OtpField.styles.js.map +1 -1
  327. package/dist/components/primitives/PasswordField/PasswordField.d.ts.map +1 -1
  328. package/dist/components/primitives/PasswordField/PasswordField.js +1 -1
  329. package/dist/components/primitives/PasswordField/PasswordField.js.map +1 -1
  330. package/dist/components/primitives/PasswordField/PasswordField.styles.d.ts.map +1 -1
  331. package/dist/components/primitives/PasswordField/PasswordField.styles.js +1 -1
  332. package/dist/components/primitives/PasswordField/PasswordField.styles.js.map +1 -1
  333. package/dist/components/primitives/Select/Select.d.ts.map +1 -1
  334. package/dist/components/primitives/Select/Select.js +1 -1
  335. package/dist/components/primitives/Select/Select.js.map +1 -1
  336. package/dist/components/primitives/Select/Select.styles.d.ts.map +1 -1
  337. package/dist/components/primitives/Select/Select.styles.js +1 -1
  338. package/dist/components/primitives/Select/Select.styles.js.map +1 -1
  339. package/dist/components/primitives/Spinner/Spinner.d.ts +5 -3
  340. package/dist/components/primitives/Spinner/Spinner.d.ts.map +1 -1
  341. package/dist/components/primitives/Spinner/Spinner.js +4 -5
  342. package/dist/components/primitives/Spinner/Spinner.js.map +1 -1
  343. package/dist/components/primitives/Spinner/Spinner.styles.d.ts +4 -1
  344. package/dist/components/primitives/Spinner/Spinner.styles.d.ts.map +1 -1
  345. package/dist/components/primitives/Spinner/Spinner.styles.js +16 -7
  346. package/dist/components/primitives/Spinner/Spinner.styles.js.map +1 -1
  347. package/dist/components/primitives/TextField/TextField.d.ts.map +1 -1
  348. package/dist/components/primitives/TextField/TextField.js +1 -1
  349. package/dist/components/primitives/TextField/TextField.js.map +1 -1
  350. package/dist/components/primitives/TextField/TextField.styles.d.ts.map +1 -1
  351. package/dist/components/primitives/TextField/TextField.styles.js +1 -1
  352. package/dist/components/primitives/TextField/TextField.styles.js.map +1 -1
  353. package/dist/components/primitives/Toggle/Toggle.d.ts.map +1 -1
  354. package/dist/components/primitives/Toggle/Toggle.js +1 -1
  355. package/dist/components/primitives/Toggle/Toggle.js.map +1 -1
  356. package/dist/components/primitives/Toggle/Toggle.styles.d.ts.map +1 -1
  357. package/dist/components/primitives/Toggle/Toggle.styles.js +1 -1
  358. package/dist/components/primitives/Toggle/Toggle.styles.js.map +1 -1
  359. package/dist/components/primitives/Tooltip/Tooltip.d.ts.map +1 -1
  360. package/dist/components/primitives/Tooltip/Tooltip.js +1 -1
  361. package/dist/components/primitives/Tooltip/Tooltip.js.map +1 -1
  362. package/dist/components/primitives/Tooltip/Tooltip.styles.d.ts.map +1 -1
  363. package/dist/components/primitives/Tooltip/Tooltip.styles.js +1 -1
  364. package/dist/components/primitives/Tooltip/Tooltip.styles.js.map +1 -1
  365. package/dist/components/primitives/Typography/Typography.d.ts.map +1 -1
  366. package/dist/components/primitives/Typography/Typography.js +1 -1
  367. package/dist/components/primitives/Typography/Typography.js.map +1 -1
  368. package/dist/components/primitives/Typography/Typography.styles.d.ts.map +1 -1
  369. package/dist/components/primitives/Typography/Typography.styles.js +1 -1
  370. package/dist/components/primitives/Typography/Typography.styles.js.map +1 -1
  371. package/dist/contexts/ThunderID/ThunderIDContext.d.ts +5 -1
  372. package/dist/contexts/ThunderID/ThunderIDContext.d.ts.map +1 -1
  373. package/dist/contexts/ThunderID/ThunderIDContext.js +1 -0
  374. package/dist/contexts/ThunderID/ThunderIDContext.js.map +1 -1
  375. package/dist/contexts/ThunderID/ThunderIDProvider.d.ts.map +1 -1
  376. package/dist/contexts/ThunderID/ThunderIDProvider.js +36 -14
  377. package/dist/contexts/ThunderID/ThunderIDProvider.js.map +1 -1
  378. package/dist/contexts/User/UserContext.d.ts +2 -1
  379. package/dist/contexts/User/UserContext.d.ts.map +1 -1
  380. package/dist/contexts/User/UserContext.js +2 -1
  381. package/dist/contexts/User/UserContext.js.map +1 -1
  382. package/dist/contexts/User/UserProvider.d.ts +5 -2
  383. package/dist/contexts/User/UserProvider.d.ts.map +1 -1
  384. package/dist/contexts/User/UserProvider.js +5 -3
  385. package/dist/contexts/User/UserProvider.js.map +1 -1
  386. package/dist/index.d.ts +2 -0
  387. package/dist/index.d.ts.map +1 -1
  388. package/dist/index.js +2 -1
  389. package/dist/models/config.d.ts +10 -1
  390. package/dist/models/config.d.ts.map +1 -1
  391. package/dist/styles/emotion.d.ts +36 -0
  392. package/dist/styles/emotion.d.ts.map +1 -0
  393. package/dist/styles/emotion.js +58 -0
  394. package/dist/styles/emotion.js.map +1 -0
  395. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","names":["Avatar: FC<AvatarProps>","useTheme","resolvedIcon: ResolvedLogo | undefined","hasImage: boolean","hash: number","charCode: number","seed: number","hue1: number","hue2: number","saturation: number","styles: ReturnType<typeof useStyles>","useStyles","isDefaultState: boolean"],"sources":["../../../../src/components/primitives/Avatar/Avatar.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {withVendorCSSClassPrefix, bem, resolveLogoUri, ResolvedLogo} from '@thunderid/browser';\nimport {FC, JSX, useMemo} from 'react';\nimport useStyles from './Avatar.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\n\nexport interface AvatarProps {\n /**\n * Alternative text for the avatar image\n */\n alt?: string;\n /**\n * Background generation strategy\n * - 'random': Generate background color based on ASCII values of the name\n * - 'none': Use default theme background\n * - string: Use custom background color\n * @default 'random'\n */\n background?: 'random' | 'none' | string;\n /**\n * Optional className for the avatar\n */\n className?: string;\n /**\n * The avatar image. Accepts a plain URL, or any `resolveLogoUri`-compatible\n * spec (`emoji:<glyph>`, or `avatar:shape=...,variant=...,content=...,colors=...,bg=...`).\n */\n imageUrl?: string;\n /**\n * Loading state of the avatar\n */\n isLoading?: boolean;\n /**\n * The name to use for generating initials when no image is provided\n */\n name?: string;\n /**\n * The size of the avatar in pixels\n */\n size?: number;\n /**\n * The variant of the avatar shape\n * @default 'circular'\n */\n variant?: 'circular' | 'square';\n}\n\nexport const Avatar: FC<AvatarProps> = ({\n alt = 'User avatar',\n background = 'random',\n className = '',\n imageUrl,\n name,\n size = 64,\n variant = 'circular',\n isLoading = false,\n}: AvatarProps): JSX.Element => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n\n const resolvedIcon: ResolvedLogo | undefined = useMemo(\n () => (imageUrl ? resolveLogoUri(imageUrl, name ?? alt) : undefined),\n [imageUrl, name, alt],\n );\n\n const hasImage: boolean = resolvedIcon?.kind !== 'emoji' && Boolean(resolvedIcon?.imgSrc);\n\n const generateBackgroundColor = (inputString: string): string => {\n const hash: number = inputString.split('').reduce((acc: number, char: string) => {\n const charCode: number = char.charCodeAt(0);\n\n return ((acc << 5) - acc + charCode) & 0xffffffff;\n }, 0);\n\n const seed: number = Math.abs(hash);\n\n const generateColor = (offset: number): string => {\n const hue1: number = (seed + offset) % 360;\n const hue2: number = (hue1 + 60 + (seed % 120)) % 360;\n\n const saturation: number = 70 + (seed % 20);\n const lightness1: number = 55 + (seed % 15);\n const lightness2: number = 60 + ((seed + offset) % 15);\n\n return `hsl(${hue1}, ${saturation}%, ${lightness1}%), hsl(${hue2}, ${saturation}%, ${lightness2}%)`;\n };\n\n const angle: number = 45 + (seed % 91);\n\n const colors: string = generateColor(seed);\n return `linear-gradient(${angle}deg, ${colors})`;\n };\n\n const backgroundColor: string | undefined = useMemo(() => {\n if (!name || hasImage) {\n return undefined;\n }\n\n if (background === 'random') {\n return generateBackgroundColor(name);\n }\n\n if (background === 'none') {\n return undefined;\n }\n\n return background;\n }, [background, name, hasImage]);\n\n const styles: ReturnType<typeof useStyles> = useStyles(theme, colorScheme, size, variant, backgroundColor);\n\n // Determine if we're in the default state (no image, no name, not loading)\n const isDefaultState: boolean = !imageUrl && !name && !isLoading;\n\n const getInitials = (fullName: string): string =>\n fullName\n .split(' ')\n .map((part: string) => part[0])\n .slice(0, 2)\n .join('')\n .toUpperCase();\n\n const renderContent = (): JSX.Element | string => {\n if (resolvedIcon?.kind === 'emoji') {\n return (\n <span role=\"img\" aria-label={alt}>\n {resolvedIcon.glyph}\n </span>\n );\n }\n\n if (hasImage) {\n return (\n <img\n src={resolvedIcon?.imgSrc}\n alt={alt}\n className={cx(withVendorCSSClassPrefix(bem('avatar', 'image')), styles['image'])}\n />\n );\n }\n\n if (name) {\n return getInitials(name);\n }\n\n if (isLoading) {\n return <div className={cx(withVendorCSSClassPrefix(bem('avatar', 'skeleton')), styles['skeleton'])} />;\n }\n\n // Default user icon\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n className={cx(withVendorCSSClassPrefix(bem('avatar', 'icon')), styles['icon'])}\n >\n <path d=\"M240 192C240 147.8 275.8 112 320 112C364.2 112 400 147.8 400 192C400 236.2 364.2 272 320 272C275.8 272 240 236.2 240 192zM448 192C448 121.3 390.7 64 320 64C249.3 64 192 121.3 192 192C192 262.7 249.3 320 320 320C390.7 320 448 262.7 448 192zM144 544C144 473.3 201.3 416 272 416L368 416C438.7 416 496 473.3 496 544L496 552C496 565.3 506.7 576 520 576C533.3 576 544 565.3 544 552L544 544C544 446.8 465.2 368 368 368L272 368C174.8 368 96 446.8 96 544L96 552C96 565.3 106.7 576 120 576C133.3 576 144 565.3 144 552L144 544z\" />\n </svg>\n );\n };\n\n return (\n <div\n className={cx(\n withVendorCSSClassPrefix(bem('avatar')),\n styles['avatar'],\n styles['variant'],\n withVendorCSSClassPrefix(bem('avatar', null, variant)),\n isDefaultState && withVendorCSSClassPrefix(bem('avatar', 'default')),\n className,\n )}\n >\n {renderContent()}\n </div>\n );\n};\n\nexport default Avatar;\n"],"mappings":";;;;;;;;AAkDA,MAAaA,UAA2B,EACtC,MAAM,eACN,aAAa,UACb,YAAY,IACZ,UACA,MACA,OAAO,IACP,UAAU,YACV,YAAY,YACkB;CAC9B,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CAEpE,MAAMC,eAAyC,cACtC,WAAW,eAAe,UAAU,QAAQ,IAAI,GAAG,QAC1D;EAAC;EAAU;EAAM;EAAI,CACtB;CAED,MAAMC,WAAoB,cAAc,SAAS,WAAW,QAAQ,cAAc,OAAO;CAEzF,MAAM,2BAA2B,gBAAgC;EAC/D,MAAMC,OAAe,YAAY,MAAM,GAAG,CAAC,QAAQ,KAAa,SAAiB;GAC/E,MAAMC,WAAmB,KAAK,WAAW,EAAE;AAE3C,WAAS,OAAO,KAAK,MAAM,WAAY;KACtC,EAAE;EAEL,MAAMC,OAAe,KAAK,IAAI,KAAK;EAEnC,MAAM,iBAAiB,WAA2B;GAChD,MAAMC,QAAgB,OAAO,UAAU;GACvC,MAAMC,QAAgB,OAAO,KAAM,OAAO,OAAQ;GAElD,MAAMC,aAAqB,KAAM,OAAO;AAIxC,UAAO,OAAO,KAAK,IAAI,WAAW,KAHP,KAAM,OAAO,GAGU,UAAU,KAAK,IAAI,WAAW,KAFrD,MAAO,OAAO,UAAU,GAE6C;;AAMlG,SAAO,mBAHe,KAAM,OAAO,GAGH,OADT,cAAc,KAAK,CACI;;CAmBhD,MAAMC,SAAuCC,sBAAU,OAAO,aAAa,MAAM,SAhBrC,cAAc;AACxD,MAAI,CAAC,QAAQ,SACX;AAGF,MAAI,eAAe,SACjB,QAAO,wBAAwB,KAAK;AAGtC,MAAI,eAAe,OACjB;AAGF,SAAO;IACN;EAAC;EAAY;EAAM;EAAS,CAAC,CAE0E;CAG1G,MAAMC,iBAA0B,CAAC,YAAY,CAAC,QAAQ,CAAC;CAEvD,MAAM,eAAe,aACnB,SACG,MAAM,IAAI,CACV,KAAK,SAAiB,KAAK,GAAG,CAC9B,MAAM,GAAG,EAAE,CACX,KAAK,GAAG,CACR,aAAa;CAElB,MAAM,sBAA4C;AAChD,MAAI,cAAc,SAAS,QACzB,QACE,oBAAC;GAAK,MAAK;GAAM,cAAY;aAC1B,aAAa;IACT;AAIX,MAAI,SACF,QACE,oBAAC;GACC,KAAK,cAAc;GACd;GACL,WAAW,GAAG,yBAAyB,IAAI,UAAU,QAAQ,CAAC,EAAE,OAAO,SAAS;IAChF;AAIN,MAAI,KACF,QAAO,YAAY,KAAK;AAG1B,MAAI,UACF,QAAO,oBAAC,SAAI,WAAW,GAAG,yBAAyB,IAAI,UAAU,WAAW,CAAC,EAAE,OAAO,YAAY,GAAI;AAIxG,SACE,oBAAC;GACC,OAAM;GACN,SAAQ;GACR,WAAW,GAAG,yBAAyB,IAAI,UAAU,OAAO,CAAC,EAAE,OAAO,QAAQ;aAE9E,oBAAC,UAAK,GAAE,ygBAAygB;IAC7gB;;AAIV,QACE,oBAAC;EACC,WAAW,GACT,yBAAyB,IAAI,SAAS,CAAC,EACvC,OAAO,WACP,OAAO,YACP,yBAAyB,IAAI,UAAU,MAAM,QAAQ,CAAC,EACtD,kBAAkB,yBAAyB,IAAI,UAAU,UAAU,CAAC,EACpE,UACD;YAEA,eAAe;GACZ"}
1
+ {"version":3,"file":"Avatar.js","names":["Avatar: FC<AvatarProps>","useTheme","resolvedIcon: ResolvedLogo | undefined","hasImage: boolean","hash: number","charCode: number","seed: number","hue1: number","hue2: number","saturation: number","styles: ReturnType<typeof useStyles>","useStyles","isDefaultState: boolean"],"sources":["../../../../src/components/primitives/Avatar/Avatar.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {withVendorCSSClassPrefix, bem, resolveLogoUri, ResolvedLogo} from '@thunderid/browser';\nimport {FC, JSX, useMemo} from 'react';\nimport useStyles from './Avatar.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport {cx} from '../../../styles/emotion';\n\nexport interface AvatarProps {\n /**\n * Alternative text for the avatar image\n */\n alt?: string;\n /**\n * Background generation strategy\n * - 'random': Generate background color based on ASCII values of the name\n * - 'none': Use default theme background\n * - string: Use custom background color\n * @default 'random'\n */\n background?: 'random' | 'none' | string;\n /**\n * Optional className for the avatar\n */\n className?: string;\n /**\n * The avatar image. Accepts a plain URL, or any `resolveLogoUri`-compatible\n * spec (`emoji:<glyph>`, or `avatar:shape=...,variant=...,content=...,colors=...,bg=...`).\n */\n imageUrl?: string;\n /**\n * Loading state of the avatar\n */\n isLoading?: boolean;\n /**\n * The name to use for generating initials when no image is provided\n */\n name?: string;\n /**\n * The size of the avatar in pixels\n */\n size?: number;\n /**\n * The variant of the avatar shape\n * @default 'circular'\n */\n variant?: 'circular' | 'square';\n}\n\nexport const Avatar: FC<AvatarProps> = ({\n alt = 'User avatar',\n background = 'random',\n className = '',\n imageUrl,\n name,\n size = 64,\n variant = 'circular',\n isLoading = false,\n}: AvatarProps): JSX.Element => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n\n const resolvedIcon: ResolvedLogo | undefined = useMemo(\n () => (imageUrl ? resolveLogoUri(imageUrl, name ?? alt) : undefined),\n [imageUrl, name, alt],\n );\n\n const hasImage: boolean = resolvedIcon?.kind !== 'emoji' && Boolean(resolvedIcon?.imgSrc);\n\n const generateBackgroundColor = (inputString: string): string => {\n const hash: number = inputString.split('').reduce((acc: number, char: string) => {\n const charCode: number = char.charCodeAt(0);\n\n return ((acc << 5) - acc + charCode) & 0xffffffff;\n }, 0);\n\n const seed: number = Math.abs(hash);\n\n const generateColor = (offset: number): string => {\n const hue1: number = (seed + offset) % 360;\n const hue2: number = (hue1 + 60 + (seed % 120)) % 360;\n\n const saturation: number = 70 + (seed % 20);\n const lightness1: number = 55 + (seed % 15);\n const lightness2: number = 60 + ((seed + offset) % 15);\n\n return `hsl(${hue1}, ${saturation}%, ${lightness1}%), hsl(${hue2}, ${saturation}%, ${lightness2}%)`;\n };\n\n const angle: number = 45 + (seed % 91);\n\n const colors: string = generateColor(seed);\n return `linear-gradient(${angle}deg, ${colors})`;\n };\n\n const backgroundColor: string | undefined = useMemo(() => {\n if (!name || hasImage) {\n return undefined;\n }\n\n if (background === 'random') {\n return generateBackgroundColor(name);\n }\n\n if (background === 'none') {\n return undefined;\n }\n\n return background;\n }, [background, name, hasImage]);\n\n const styles: ReturnType<typeof useStyles> = useStyles(theme, colorScheme, size, variant, backgroundColor);\n\n // Determine if we're in the default state (no image, no name, not loading)\n const isDefaultState: boolean = !imageUrl && !name && !isLoading;\n\n const getInitials = (fullName: string): string =>\n fullName\n .split(' ')\n .map((part: string) => part[0])\n .slice(0, 2)\n .join('')\n .toUpperCase();\n\n const renderContent = (): JSX.Element | string => {\n if (resolvedIcon?.kind === 'emoji') {\n return (\n <span role=\"img\" aria-label={alt}>\n {resolvedIcon.glyph}\n </span>\n );\n }\n\n if (hasImage) {\n return (\n <img\n src={resolvedIcon?.imgSrc}\n alt={alt}\n className={cx(withVendorCSSClassPrefix(bem('avatar', 'image')), styles['image'])}\n />\n );\n }\n\n if (name) {\n return getInitials(name);\n }\n\n if (isLoading) {\n return <div className={cx(withVendorCSSClassPrefix(bem('avatar', 'skeleton')), styles['skeleton'])} />;\n }\n\n // Default user icon\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 640 640\"\n className={cx(withVendorCSSClassPrefix(bem('avatar', 'icon')), styles['icon'])}\n >\n <path d=\"M240 192C240 147.8 275.8 112 320 112C364.2 112 400 147.8 400 192C400 236.2 364.2 272 320 272C275.8 272 240 236.2 240 192zM448 192C448 121.3 390.7 64 320 64C249.3 64 192 121.3 192 192C192 262.7 249.3 320 320 320C390.7 320 448 262.7 448 192zM144 544C144 473.3 201.3 416 272 416L368 416C438.7 416 496 473.3 496 544L496 552C496 565.3 506.7 576 520 576C533.3 576 544 565.3 544 552L544 544C544 446.8 465.2 368 368 368L272 368C174.8 368 96 446.8 96 544L96 552C96 565.3 106.7 576 120 576C133.3 576 144 565.3 144 552L144 544z\" />\n </svg>\n );\n };\n\n return (\n <div\n className={cx(\n withVendorCSSClassPrefix(bem('avatar')),\n styles['avatar'],\n styles['variant'],\n withVendorCSSClassPrefix(bem('avatar', null, variant)),\n isDefaultState && withVendorCSSClassPrefix(bem('avatar', 'default')),\n className,\n )}\n >\n {renderContent()}\n </div>\n );\n};\n\nexport default Avatar;\n"],"mappings":";;;;;;;;AAkDA,MAAaA,UAA2B,EACtC,MAAM,eACN,aAAa,UACb,YAAY,IACZ,UACA,MACA,OAAO,IACP,UAAU,YACV,YAAY,YACkB;CAC9B,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CAEpE,MAAMC,eAAyC,cACtC,WAAW,eAAe,UAAU,QAAQ,IAAI,GAAG,QAC1D;EAAC;EAAU;EAAM;EAAI,CACtB;CAED,MAAMC,WAAoB,cAAc,SAAS,WAAW,QAAQ,cAAc,OAAO;CAEzF,MAAM,2BAA2B,gBAAgC;EAC/D,MAAMC,OAAe,YAAY,MAAM,GAAG,CAAC,QAAQ,KAAa,SAAiB;GAC/E,MAAMC,WAAmB,KAAK,WAAW,EAAE;AAE3C,WAAS,OAAO,KAAK,MAAM,WAAY;KACtC,EAAE;EAEL,MAAMC,OAAe,KAAK,IAAI,KAAK;EAEnC,MAAM,iBAAiB,WAA2B;GAChD,MAAMC,QAAgB,OAAO,UAAU;GACvC,MAAMC,QAAgB,OAAO,KAAM,OAAO,OAAQ;GAElD,MAAMC,aAAqB,KAAM,OAAO;AAIxC,UAAO,OAAO,KAAK,IAAI,WAAW,KAHP,KAAM,OAAO,GAGU,UAAU,KAAK,IAAI,WAAW,KAFrD,MAAO,OAAO,UAAU,GAE6C;;AAMlG,SAAO,mBAHe,KAAM,OAAO,GAGH,OADT,cAAc,KAAK,CACI;;CAmBhD,MAAMC,SAAuCC,sBAAU,OAAO,aAAa,MAAM,SAhBrC,cAAc;AACxD,MAAI,CAAC,QAAQ,SACX;AAGF,MAAI,eAAe,SACjB,QAAO,wBAAwB,KAAK;AAGtC,MAAI,eAAe,OACjB;AAGF,SAAO;IACN;EAAC;EAAY;EAAM;EAAS,CAAC,CAE0E;CAG1G,MAAMC,iBAA0B,CAAC,YAAY,CAAC,QAAQ,CAAC;CAEvD,MAAM,eAAe,aACnB,SACG,MAAM,IAAI,CACV,KAAK,SAAiB,KAAK,GAAG,CAC9B,MAAM,GAAG,EAAE,CACX,KAAK,GAAG,CACR,aAAa;CAElB,MAAM,sBAA4C;AAChD,MAAI,cAAc,SAAS,QACzB,QACE,oBAAC;GAAK,MAAK;GAAM,cAAY;aAC1B,aAAa;IACT;AAIX,MAAI,SACF,QACE,oBAAC;GACC,KAAK,cAAc;GACd;GACL,WAAW,GAAG,yBAAyB,IAAI,UAAU,QAAQ,CAAC,EAAE,OAAO,SAAS;IAChF;AAIN,MAAI,KACF,QAAO,YAAY,KAAK;AAG1B,MAAI,UACF,QAAO,oBAAC,SAAI,WAAW,GAAG,yBAAyB,IAAI,UAAU,WAAW,CAAC,EAAE,OAAO,YAAY,GAAI;AAIxG,SACE,oBAAC;GACC,OAAM;GACN,SAAQ;GACR,WAAW,GAAG,yBAAyB,IAAI,UAAU,OAAO,CAAC,EAAE,OAAO,QAAQ;aAE9E,oBAAC,UAAK,GAAE,ygBAAygB;IAC7gB;;AAIV,QACE,oBAAC;EACC,WAAW,GACT,yBAAyB,IAAI,SAAS,CAAC,EACvC,OAAO,WACP,OAAO,YACP,yBAAyB,IAAI,UAAU,MAAM,QAAQ,CAAC,EACtD,kBAAkB,yBAAyB,IAAI,UAAU,UAAU,CAAC,EACpE,UACD;YAEA,eAAe;GACZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Avatar/Avatar.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElD;;;;;;;;GAQG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,MAAM,MAAM,EACZ,SAAS,aAAa,EACtB,kBAAkB,MAAM,KACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAkEkC,CAAC;AAE3D,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Avatar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Avatar/Avatar.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,QAAQ,CAAC;AAElD;;;;;;;;GAQG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,MAAM,MAAM,EACZ,SAAS,aAAa,EACtB,kBAAkB,MAAM,KACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAkEkC,CAAC;AAE3D,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/Avatar/Avatar.styles.ts
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.styles.js","names":["baseAvatar: string","variantStyles: Record<string, string>","imageStyles: string","skeletonStyles: string"],"sources":["../../../../src/components/primitives/Avatar/Avatar.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\nexport type AvatarVariant = 'circular' | 'square';\n\n/**\n * Creates styles for the Avatar component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param size - The size of the avatar in pixels\n * @param variant - The avatar variant\n * @param backgroundColor - The background color for the avatar\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n size: number,\n variant: AvatarVariant,\n backgroundColor?: string,\n): Record<string, string> =>\n useMemo(() => {\n const baseAvatar: string = css`\n align-items: center;\n background: ${backgroundColor || theme.vars.colors.background.surface};\n border: ${backgroundColor ? 'none' : `1px solid ${theme.vars.colors.border}`};\n border-radius: ${variant === 'circular' ? '50%' : '8px'};\n color: ${backgroundColor ? '#ffffff' : theme.vars.colors.text.primary};\n display: flex;\n font-size: ${size * 0.4}px;\n font-family: ${theme.vars.typography.fontFamily};\n font-weight: 600;\n height: ${size}px;\n justify-content: center;\n overflow: hidden;\n text-shadow: ${backgroundColor ? '0 1px 2px rgba(0, 0, 0, 0.1)' : 'none'};\n width: ${size}px;\n `;\n\n const variantStyles: Record<string, string> = {\n circular: css`\n border-radius: 50%;\n `,\n square: css`\n border-radius: 8px;\n `,\n };\n\n const imageStyles: string = css`\n height: 100%;\n object-fit: cover;\n width: 100%;\n `;\n\n const skeletonStyles: string = css`\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n background-size: 200% 100%;\n animation: skeleton-loading 1.5s infinite;\n border-radius: ${variant === 'circular' ? '50%' : '8px'};\n\n @keyframes skeleton-loading {\n 0% {\n background-position: -200% 0;\n }\n 100% {\n background-position: 200% 0;\n }\n }\n `;\n\n const iconStyles: string = css`\n width: 60%;\n height: 60%;\n fill: ${backgroundColor ? '#ffffff' : theme.vars.colors.text.secondary};\n opacity: 0.8;\n `;\n\n return {\n avatar: baseAvatar,\n icon: iconStyles,\n image: imageStyles,\n skeleton: skeletonStyles,\n variant: variantStyles[variant],\n };\n }, [theme, colorScheme, size, variant, backgroundColor]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,aACJ,OACA,aACA,MACA,SACA,oBAEA,cAAc;CACZ,MAAMA,aAAqB,GAAG;;oBAEd,mBAAmB,MAAM,KAAK,OAAO,WAAW,QAAQ;gBAC5D,kBAAkB,SAAS,aAAa,MAAM,KAAK,OAAO,SAAS;uBAC5D,YAAY,aAAa,QAAQ,MAAM;eAC/C,kBAAkB,YAAY,MAAM,KAAK,OAAO,KAAK,QAAQ;;mBAEzD,OAAO,GAAI;qBACT,MAAM,KAAK,WAAW,WAAW;;gBAEtC,KAAK;;;qBAGA,kBAAkB,iCAAiC,OAAO;eAChE,KAAK;;CAGhB,MAAMC,gBAAwC;EAC5C,UAAU,GAAG;;;EAGb,QAAQ,GAAG;;;EAGZ;CAED,MAAMC,cAAsB,GAAG;;;;;CAM/B,MAAMC,iBAAyB,GAAG;;;;;;uBAMf,YAAY,aAAa,QAAQ,MAAM;;;;;;;;;;;AAmB1D,QAAO;EACL,QAAQ;EACR,MATyB,GAAG;;;cAGpB,kBAAkB,YAAY,MAAM,KAAK,OAAO,KAAK,UAAU;;;EAOvE,OAAO;EACP,UAAU;EACV,SAAS,cAAc;EACxB;GACA;CAAC;CAAO;CAAa;CAAM;CAAS;CAAgB,CAAC;AAE1D,4BAAe"}
1
+ {"version":3,"file":"Avatar.styles.js","names":["baseAvatar: string","variantStyles: Record<string, string>","imageStyles: string","skeletonStyles: string"],"sources":["../../../../src/components/primitives/Avatar/Avatar.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\nexport type AvatarVariant = 'circular' | 'square';\n\n/**\n * Creates styles for the Avatar component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param size - The size of the avatar in pixels\n * @param variant - The avatar variant\n * @param backgroundColor - The background color for the avatar\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n size: number,\n variant: AvatarVariant,\n backgroundColor?: string,\n): Record<string, string> =>\n useMemo(() => {\n const baseAvatar: string = css`\n align-items: center;\n background: ${backgroundColor || theme.vars.colors.background.surface};\n border: ${backgroundColor ? 'none' : `1px solid ${theme.vars.colors.border}`};\n border-radius: ${variant === 'circular' ? '50%' : '8px'};\n color: ${backgroundColor ? '#ffffff' : theme.vars.colors.text.primary};\n display: flex;\n font-size: ${size * 0.4}px;\n font-family: ${theme.vars.typography.fontFamily};\n font-weight: 600;\n height: ${size}px;\n justify-content: center;\n overflow: hidden;\n text-shadow: ${backgroundColor ? '0 1px 2px rgba(0, 0, 0, 0.1)' : 'none'};\n width: ${size}px;\n `;\n\n const variantStyles: Record<string, string> = {\n circular: css`\n border-radius: 50%;\n `,\n square: css`\n border-radius: 8px;\n `,\n };\n\n const imageStyles: string = css`\n height: 100%;\n object-fit: cover;\n width: 100%;\n `;\n\n const skeletonStyles: string = css`\n width: 100%;\n height: 100%;\n background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n background-size: 200% 100%;\n animation: skeleton-loading 1.5s infinite;\n border-radius: ${variant === 'circular' ? '50%' : '8px'};\n\n @keyframes skeleton-loading {\n 0% {\n background-position: -200% 0;\n }\n 100% {\n background-position: 200% 0;\n }\n }\n `;\n\n const iconStyles: string = css`\n width: 60%;\n height: 60%;\n fill: ${backgroundColor ? '#ffffff' : theme.vars.colors.text.secondary};\n opacity: 0.8;\n `;\n\n return {\n avatar: baseAvatar,\n icon: iconStyles,\n image: imageStyles,\n skeleton: skeletonStyles,\n variant: variantStyles[variant],\n };\n }, [theme, colorScheme, size, variant, backgroundColor]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,aACJ,OACA,aACA,MACA,SACA,oBAEA,cAAc;CACZ,MAAMA,aAAqB,GAAG;;oBAEd,mBAAmB,MAAM,KAAK,OAAO,WAAW,QAAQ;gBAC5D,kBAAkB,SAAS,aAAa,MAAM,KAAK,OAAO,SAAS;uBAC5D,YAAY,aAAa,QAAQ,MAAM;eAC/C,kBAAkB,YAAY,MAAM,KAAK,OAAO,KAAK,QAAQ;;mBAEzD,OAAO,GAAI;qBACT,MAAM,KAAK,WAAW,WAAW;;gBAEtC,KAAK;;;qBAGA,kBAAkB,iCAAiC,OAAO;eAChE,KAAK;;CAGhB,MAAMC,gBAAwC;EAC5C,UAAU,GAAG;;;EAGb,QAAQ,GAAG;;;EAGZ;CAED,MAAMC,cAAsB,GAAG;;;;;CAM/B,MAAMC,iBAAyB,GAAG;;;;;;uBAMf,YAAY,aAAa,QAAQ,MAAM;;;;;;;;;;;AAmB1D,QAAO;EACL,QAAQ;EACR,MATyB,GAAG;;;cAGpB,kBAAkB,YAAY,MAAM,KAAK,OAAO,KAAK,UAAU;;;EAOvE,OAAO;EACP,UAAU;EACV,SAAS,cAAc;EACxB;GACA;CAAC;CAAO;CAAa;CAAM;CAAS;CAAgB,CAAC;AAE1D,4BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Button/Button.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,oBAAoB,EAAc,SAAS,EAAE,yBAAyB,EAAE,aAAa,EAAM,MAAM,OAAO,CAAC;AAKjH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACzF;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,QAAA,MAAM,MAAM,EAAE,yBAAyB,CAAC,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,CA8FrF,CAAC;AAIF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Button/Button.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,oBAAoB,EAAc,SAAS,EAAE,yBAAyB,EAAE,aAAa,EAAM,MAAM,OAAO,CAAC;AAMjH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IACzF;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAYD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,QAAA,MAAM,MAAM,EAAE,yBAAyB,CAAC,WAAW,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAuFrF,CAAC;AAIF,eAAe,MAAM,CAAC"}
@@ -1,10 +1,10 @@
1
+ import { cx } from "../../../styles/emotion.js";
1
2
  import useTheme_default from "../../../contexts/Theme/useTheme.js";
2
3
  import Button_styles_default from "./Button.styles.js";
3
4
  import Spinner_default from "../Spinner/Spinner.js";
4
5
  import { bem, withVendorCSSClassPrefix } from "@thunderid/browser";
5
6
  import { forwardRef } from "react";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { cx } from "@emotion/css";
8
8
 
9
9
  //#region src/components/primitives/Button/Button.tsx
10
10
  const getSpinnerWidth = (sizeVal, spacingUnit) => {
@@ -59,10 +59,7 @@ const Button = forwardRef(({ color = "primary", variant = "solid", size = "mediu
59
59
  children: /* @__PURE__ */ jsx(Spinner_default, {
60
60
  size,
61
61
  color: "currentColor",
62
- style: {
63
- height: spinnerWidth,
64
- width: spinnerWidth
65
- }
62
+ widthOverride: spinnerWidth
66
63
  })
67
64
  }),
68
65
  !loading && isIconVariant && /* @__PURE__ */ jsx("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>","useTheme","styles: Record<string, string | null>","useStyles","isIconVariant: boolean","spinnerWidth: string","Spinner"],"sources":["../../../../src/components/primitives/Button/Button.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {ButtonHTMLAttributes, forwardRef, ReactNode, ForwardRefExoticComponent, RefAttributes, Ref} from 'react';\nimport useStyles from './Button.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport Spinner, {SpinnerSize} from '../Spinner/Spinner';\n\nexport type ButtonColor = 'primary' | 'secondary' | 'tertiary' | string;\nexport type ButtonVariant = 'solid' | 'outline' | 'text' | 'icon';\nexport type ButtonSize = 'small' | 'medium' | 'large';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /**\n * The button color that determines the color scheme\n */\n color?: ButtonColor;\n /**\n * Icon to display after the button text\n */\n endIcon?: ReactNode;\n /**\n * Whether the button should take the full width of its container\n */\n fullWidth?: boolean;\n /**\n * Whether the button is in a loading state\n */\n loading?: boolean;\n /**\n * The shape of the button: square or round\n */\n shape?: 'square' | 'round';\n /**\n * The size of the button\n */\n size?: ButtonSize;\n /**\n * Icon to display before the button text\n */\n startIcon?: ReactNode;\n /**\n * The button variant that determines the visual style\n */\n variant?: ButtonVariant;\n}\n\nconst getSpinnerWidth = (sizeVal: ButtonSize, spacingUnit: string): string => {\n if (sizeVal === 'small') {\n return `calc(${spacingUnit} * 1.5)`;\n }\n if (sizeVal === 'medium') {\n return `calc(${spacingUnit} * 2)`;\n }\n return `calc(${spacingUnit} * 2.5)`;\n};\n\n/**\n * Button component with multiple variants and types.\n *\n * @example\n * ```tsx\n * // Primary solid button\n * <Button color=\"primary\" variant=\"solid\">\n * Click me\n * </Button>\n *\n * // Secondary outline button\n * <Button color=\"secondary\" variant=\"outline\" size=\"large\">\n * Cancel\n * </Button>\n *\n * // Text button with loading state\n * <Button color=\"tertiary\" variant=\"text\" loading>\n * Loading...\n * </Button>\n *\n * // Button with icons\n * <Button\n * color=\"primary\"\n * startIcon={<Icon />}\n * endIcon={<Arrow />}\n * >\n * Save and Continue\n * </Button>\n * ```\n */\nconst Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>> = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(\n (\n {\n color = 'primary',\n variant = 'solid',\n size = 'medium',\n fullWidth = false,\n loading = false,\n startIcon,\n endIcon,\n children,\n className,\n disabled,\n style,\n shape = 'square',\n ...rest\n }: ButtonProps,\n ref: Ref<HTMLButtonElement>,\n ) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string | null> = useStyles(\n theme,\n colorScheme,\n color,\n variant,\n size,\n fullWidth,\n disabled || false,\n loading,\n shape,\n );\n\n const isIconVariant: boolean = variant === 'icon';\n\n const spinnerWidth: string = getSpinnerWidth(size, theme.vars.spacing.unit);\n\n return (\n <button\n ref={ref}\n style={style}\n className={cx(\n withVendorCSSClassPrefix(bem('button')),\n withVendorCSSClassPrefix(bem('button', variant)),\n withVendorCSSClassPrefix(bem('button', color)),\n withVendorCSSClassPrefix(bem('button', size)),\n withVendorCSSClassPrefix(bem('button', shape)),\n fullWidth ? withVendorCSSClassPrefix(bem('button', 'fullWidth')) : undefined,\n loading ? withVendorCSSClassPrefix(bem('button', 'loading')) : undefined,\n disabled || loading ? withVendorCSSClassPrefix(bem('button', 'disabled')) : undefined,\n styles['button'],\n styles['size'],\n styles['variant'],\n styles['fullWidth'],\n styles['loading'],\n styles['shape'],\n className,\n )}\n disabled={disabled || loading}\n {...rest}\n >\n {loading && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'spinner')), styles['spinner'])}>\n <Spinner\n size={size as SpinnerSize}\n color=\"currentColor\"\n style={{\n height: spinnerWidth,\n width: spinnerWidth,\n }}\n />\n </span>\n )}\n {!loading && isIconVariant && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'icon')), styles['icon'])}>\n {children || startIcon || endIcon}\n </span>\n )}\n {!loading && !isIconVariant && startIcon && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'start-icon')), styles['startIcon'])}>\n {startIcon}\n </span>\n )}\n {!isIconVariant && children && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'content')), styles['content'])}>{children}</span>\n )}\n {!loading && !isIconVariant && endIcon && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'end-icon')), styles['endIcon'])}>{endIcon}</span>\n )}\n </button>\n );\n },\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":";;;;;;;;;AAiDA,MAAM,mBAAmB,SAAqB,gBAAgC;AAC5E,KAAI,YAAY,QACd,QAAO,QAAQ,YAAY;AAE7B,KAAI,YAAY,SACd,QAAO,QAAQ,YAAY;AAE7B,QAAO,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiC7B,MAAMA,SAAoF,YAKtF,EACE,QAAQ,WACR,UAAU,SACV,OAAO,UACP,YAAY,OACZ,UAAU,OACV,WACA,SACA,UACA,WACA,UACA,OACA,QAAQ,SACR,GAAG,QAEL,QACG;CACH,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAMC,SAAwCC,sBAC5C,OACA,aACA,OACA,SACA,MACA,WACA,YAAY,OACZ,SACA,MACD;CAED,MAAMC,gBAAyB,YAAY;CAE3C,MAAMC,eAAuB,gBAAgB,MAAM,MAAM,KAAK,QAAQ,KAAK;AAE3E,QACE,qBAAC;EACM;EACE;EACP,WAAW,GACT,yBAAyB,IAAI,SAAS,CAAC,EACvC,yBAAyB,IAAI,UAAU,QAAQ,CAAC,EAChD,yBAAyB,IAAI,UAAU,MAAM,CAAC,EAC9C,yBAAyB,IAAI,UAAU,KAAK,CAAC,EAC7C,yBAAyB,IAAI,UAAU,MAAM,CAAC,EAC9C,YAAY,yBAAyB,IAAI,UAAU,YAAY,CAAC,GAAG,QACnE,UAAU,yBAAyB,IAAI,UAAU,UAAU,CAAC,GAAG,QAC/D,YAAY,UAAU,yBAAyB,IAAI,UAAU,WAAW,CAAC,GAAG,QAC5E,OAAO,WACP,OAAO,SACP,OAAO,YACP,OAAO,cACP,OAAO,YACP,OAAO,UACP,UACD;EACD,UAAU,YAAY;EACtB,GAAI;;GAEH,WACC,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,UAAU,CAAC,EAAE,OAAO,WAAW;cACxF,oBAACC;KACO;KACN,OAAM;KACN,OAAO;MACL,QAAQ;MACR,OAAO;MACR;MACD;KACG;GAER,CAAC,WAAW,iBACX,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,OAAO,CAAC,EAAE,OAAO,QAAQ;cACjF,YAAY,aAAa;KACrB;GAER,CAAC,WAAW,CAAC,iBAAiB,aAC7B,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,aAAa,CAAC,EAAE,OAAO,aAAa;cAC5F;KACI;GAER,CAAC,iBAAiB,YACjB,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,UAAU,CAAC,EAAE,OAAO,WAAW;IAAG;KAAgB;GAE9G,CAAC,WAAW,CAAC,iBAAiB,WAC7B,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,WAAW,CAAC,EAAE,OAAO,WAAW;cAAG;KAAe;;GAExG;EAGd;AAED,OAAO,cAAc;AAErB,qBAAe"}
1
+ {"version":3,"file":"Button.js","names":["Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>>","useTheme","styles: Record<string, string | null>","useStyles","isIconVariant: boolean","spinnerWidth: string","Spinner"],"sources":["../../../../src/components/primitives/Button/Button.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {ButtonHTMLAttributes, forwardRef, ReactNode, ForwardRefExoticComponent, RefAttributes, Ref} from 'react';\nimport useStyles from './Button.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport {cx} from '../../../styles/emotion';\nimport Spinner, {SpinnerSize} from '../Spinner/Spinner';\n\nexport type ButtonColor = 'primary' | 'secondary' | 'tertiary' | string;\nexport type ButtonVariant = 'solid' | 'outline' | 'text' | 'icon';\nexport type ButtonSize = 'small' | 'medium' | 'large';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {\n /**\n * The button color that determines the color scheme\n */\n color?: ButtonColor;\n /**\n * Icon to display after the button text\n */\n endIcon?: ReactNode;\n /**\n * Whether the button should take the full width of its container\n */\n fullWidth?: boolean;\n /**\n * Whether the button is in a loading state\n */\n loading?: boolean;\n /**\n * The shape of the button: square or round\n */\n shape?: 'square' | 'round';\n /**\n * The size of the button\n */\n size?: ButtonSize;\n /**\n * Icon to display before the button text\n */\n startIcon?: ReactNode;\n /**\n * The button variant that determines the visual style\n */\n variant?: ButtonVariant;\n}\n\nconst getSpinnerWidth = (sizeVal: ButtonSize, spacingUnit: string): string => {\n if (sizeVal === 'small') {\n return `calc(${spacingUnit} * 1.5)`;\n }\n if (sizeVal === 'medium') {\n return `calc(${spacingUnit} * 2)`;\n }\n return `calc(${spacingUnit} * 2.5)`;\n};\n\n/**\n * Button component with multiple variants and types.\n *\n * @example\n * ```tsx\n * // Primary solid button\n * <Button color=\"primary\" variant=\"solid\">\n * Click me\n * </Button>\n *\n * // Secondary outline button\n * <Button color=\"secondary\" variant=\"outline\" size=\"large\">\n * Cancel\n * </Button>\n *\n * // Text button with loading state\n * <Button color=\"tertiary\" variant=\"text\" loading>\n * Loading...\n * </Button>\n *\n * // Button with icons\n * <Button\n * color=\"primary\"\n * startIcon={<Icon />}\n * endIcon={<Arrow />}\n * >\n * Save and Continue\n * </Button>\n * ```\n */\nconst Button: ForwardRefExoticComponent<ButtonProps & RefAttributes<HTMLButtonElement>> = forwardRef<\n HTMLButtonElement,\n ButtonProps\n>(\n (\n {\n color = 'primary',\n variant = 'solid',\n size = 'medium',\n fullWidth = false,\n loading = false,\n startIcon,\n endIcon,\n children,\n className,\n disabled,\n style,\n shape = 'square',\n ...rest\n }: ButtonProps,\n ref: Ref<HTMLButtonElement>,\n ) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string | null> = useStyles(\n theme,\n colorScheme,\n color,\n variant,\n size,\n fullWidth,\n disabled || false,\n loading,\n shape,\n );\n\n const isIconVariant: boolean = variant === 'icon';\n\n const spinnerWidth: string = getSpinnerWidth(size, theme.vars.spacing.unit);\n\n return (\n <button\n ref={ref}\n style={style}\n className={cx(\n withVendorCSSClassPrefix(bem('button')),\n withVendorCSSClassPrefix(bem('button', variant)),\n withVendorCSSClassPrefix(bem('button', color)),\n withVendorCSSClassPrefix(bem('button', size)),\n withVendorCSSClassPrefix(bem('button', shape)),\n fullWidth ? withVendorCSSClassPrefix(bem('button', 'fullWidth')) : undefined,\n loading ? withVendorCSSClassPrefix(bem('button', 'loading')) : undefined,\n disabled || loading ? withVendorCSSClassPrefix(bem('button', 'disabled')) : undefined,\n styles['button'],\n styles['size'],\n styles['variant'],\n styles['fullWidth'],\n styles['loading'],\n styles['shape'],\n className,\n )}\n disabled={disabled || loading}\n {...rest}\n >\n {loading && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'spinner')), styles['spinner'])}>\n <Spinner size={size as SpinnerSize} color=\"currentColor\" widthOverride={spinnerWidth} />\n </span>\n )}\n {!loading && isIconVariant && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'icon')), styles['icon'])}>\n {children || startIcon || endIcon}\n </span>\n )}\n {!loading && !isIconVariant && startIcon && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'start-icon')), styles['startIcon'])}>\n {startIcon}\n </span>\n )}\n {!isIconVariant && children && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'content')), styles['content'])}>{children}</span>\n )}\n {!loading && !isIconVariant && endIcon && (\n <span className={cx(withVendorCSSClassPrefix(bem('button', 'end-icon')), styles['endIcon'])}>{endIcon}</span>\n )}\n </button>\n );\n },\n);\n\nButton.displayName = 'Button';\n\nexport default Button;\n"],"mappings":";;;;;;;;;AAiDA,MAAM,mBAAmB,SAAqB,gBAAgC;AAC5E,KAAI,YAAY,QACd,QAAO,QAAQ,YAAY;AAE7B,KAAI,YAAY,SACd,QAAO,QAAQ,YAAY;AAE7B,QAAO,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiC7B,MAAMA,SAAoF,YAKtF,EACE,QAAQ,WACR,UAAU,SACV,OAAO,UACP,YAAY,OACZ,UAAU,OACV,WACA,SACA,UACA,WACA,UACA,OACA,QAAQ,SACR,GAAG,QAEL,QACG;CACH,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAMC,SAAwCC,sBAC5C,OACA,aACA,OACA,SACA,MACA,WACA,YAAY,OACZ,SACA,MACD;CAED,MAAMC,gBAAyB,YAAY;CAE3C,MAAMC,eAAuB,gBAAgB,MAAM,MAAM,KAAK,QAAQ,KAAK;AAE3E,QACE,qBAAC;EACM;EACE;EACP,WAAW,GACT,yBAAyB,IAAI,SAAS,CAAC,EACvC,yBAAyB,IAAI,UAAU,QAAQ,CAAC,EAChD,yBAAyB,IAAI,UAAU,MAAM,CAAC,EAC9C,yBAAyB,IAAI,UAAU,KAAK,CAAC,EAC7C,yBAAyB,IAAI,UAAU,MAAM,CAAC,EAC9C,YAAY,yBAAyB,IAAI,UAAU,YAAY,CAAC,GAAG,QACnE,UAAU,yBAAyB,IAAI,UAAU,UAAU,CAAC,GAAG,QAC/D,YAAY,UAAU,yBAAyB,IAAI,UAAU,WAAW,CAAC,GAAG,QAC5E,OAAO,WACP,OAAO,SACP,OAAO,YACP,OAAO,cACP,OAAO,YACP,OAAO,UACP,UACD;EACD,UAAU,YAAY;EACtB,GAAI;;GAEH,WACC,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,UAAU,CAAC,EAAE,OAAO,WAAW;cACxF,oBAACC;KAAc;KAAqB,OAAM;KAAe,eAAe;MAAgB;KACnF;GAER,CAAC,WAAW,iBACX,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,OAAO,CAAC,EAAE,OAAO,QAAQ;cACjF,YAAY,aAAa;KACrB;GAER,CAAC,WAAW,CAAC,iBAAiB,aAC7B,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,aAAa,CAAC,EAAE,OAAO,aAAa;cAC5F;KACI;GAER,CAAC,iBAAiB,YACjB,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,UAAU,CAAC,EAAE,OAAO,WAAW;IAAG;KAAgB;GAE9G,CAAC,WAAW,CAAC,iBAAiB,WAC7B,oBAAC;IAAK,WAAW,GAAG,yBAAyB,IAAI,UAAU,WAAW,CAAC,EAAE,OAAO,WAAW;cAAG;KAAe;;GAExG;EAGd;AAED,OAAO,cAAc;AAErB,qBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,OAAO,WAAW,EAClB,SAAS,aAAa,EACtB,MAAM,UAAU,EAChB,WAAW,OAAO,EAClB,UAAU,OAAO,EACjB,SAAS,OAAO,EAChB,QAAO,QAAQ,GAAG,OAAkB,KACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAoV+C,CAAC;AAE/E,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Button.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,OAAO,WAAW,EAClB,SAAS,aAAa,EACtB,MAAM,UAAU,EAChB,WAAW,OAAO,EAClB,UAAU,OAAO,EACjB,SAAS,OAAO,EAChB,QAAO,QAAQ,GAAG,OAAkB,KACnC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAoV+C,CAAC;AAE/E,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/Button/Button.styles.ts
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Button.styles.js","names":["iconSizeMap: Record<string, string>","iconDimension: string","baseButton: string","sizeStyles: Record<string, string>","variantStyles: Record<string, string>","spinnerStyles: string","iconStyles: string"],"sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\nexport type ButtonColor = 'primary' | 'secondary' | 'tertiary' | string;\nexport type ButtonVariant = 'solid' | 'outline' | 'text' | 'icon';\nexport type ButtonSize = 'small' | 'medium' | 'large';\n\n/**\n * Creates styles for the Button component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param color - The button color\n * @param variant - The button variant\n * @param size - The button size\n * @param fullWidth - Whether the button should take full width\n * @param disabled - Whether the button is disabled\n * @param loading - Whether the button is in loading state\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n color: ButtonColor,\n variant: ButtonVariant,\n size: ButtonSize,\n fullWidth: boolean,\n disabled: boolean,\n loading: boolean,\n shape: 'square' | 'round' = 'square',\n): Record<string, string | null> =>\n useMemo(() => {\n const iconSizeMap: Record<string, string> = {\n large: `calc(${theme.vars.spacing.unit} * 5)`,\n medium: `calc(${theme.vars.spacing.unit} * 4)`,\n small: `calc(${theme.vars.spacing.unit} * 3)`,\n };\n\n const iconDimension: string = iconSizeMap[size] || iconSizeMap['medium'];\n\n const baseButton: string = css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(${theme.vars.spacing.unit} * 1);\n border-radius: ${shape === 'round'\n ? '50%'\n : theme.vars.components?.Button?.root?.borderRadius || theme.vars.borderRadius.medium};\n font-weight: 500;\n cursor: ${disabled || loading ? 'not-allowed' : 'pointer'};\n outline: none;\n text-decoration: none;\n white-space: nowrap;\n width: ${fullWidth ? '100%' : 'auto'};\n opacity: ${disabled || loading ? 0.6 : 1};\n font-family: ${theme.vars.typography.fontFamily};\n border-width: 1px;\n border-style: solid;\n ${variant === 'icon'\n ? `\n padding: 0;\n min-width: unset;\n min-height: unset;\n width: ${iconDimension};\n height: ${iconDimension};\n justify-content: center;\n align-items: center;\n `\n : ''}\n `;\n\n const sizeStyles: Record<string, string> = {\n large: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.lg};`\n : `padding: calc(${theme.vars.spacing.unit} * 1.5) calc(${theme.vars.spacing.unit} * 3);\n font-size: ${theme.vars.typography.fontSizes.lg};\n min-height: calc(${theme.vars.spacing.unit} * 5);`}\n `,\n medium: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.md};`\n : `padding: calc(${theme.vars.spacing.unit} * 1) calc(${theme.vars.spacing.unit} * 2);\n font-size: ${theme.vars.typography.fontSizes.md};\n min-height: calc(${theme.vars.spacing.unit} * 4);`}\n `,\n small: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.sm};`\n : `padding: calc(${theme.vars.spacing.unit} * 0.5) calc(${theme.vars.spacing.unit} * 1);\n font-size: ${theme.vars.typography.fontSizes.sm};\n min-height: calc(${theme.vars.spacing.unit} * 3);`}\n `,\n };\n\n const variantStyles: Record<string, string> = {\n 'primary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.primary.dark};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.primary.dark};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.primary.dark};\n outline: none;\n }\n `,\n 'primary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: ${theme.vars.colors.primary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n opacity: 0.9;\n }\n `,\n 'primary-solid': css`\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n border-color: ${theme.vars.colors.primary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.9;\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.8;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.8;\n }\n `,\n 'primary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n outline: none;\n }\n `,\n 'secondary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.secondary.dark};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.secondary.dark};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.secondary.dark};\n outline: none;\n }\n `,\n 'secondary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: ${theme.vars.colors.secondary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n opacity: 0.9;\n }\n `,\n 'secondary-solid': css`\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n border-color: ${theme.vars.colors.secondary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.9;\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.8;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.8;\n }\n `,\n 'secondary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n outline: none;\n }\n `,\n 'tertiary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.text.primary};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.text.primary};\n outline: none;\n }\n `,\n 'tertiary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: ${theme.vars.colors.border};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.action.hover};\n border-color: ${theme.vars.colors.text.secondary};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.action.selected};\n border-color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.action.focus};\n border-color: ${theme.vars.colors.text.primary};\n }\n `,\n 'tertiary-solid': css`\n background-color: ${theme.vars.colors.text.secondary};\n color: ${theme.vars.colors.background.surface};\n border-color: ${theme.vars.colors.text.secondary};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n opacity: 0.9;\n }\n `,\n 'tertiary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.text.primary};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.text.primary};\n outline: none;\n }\n `,\n };\n\n const spinnerStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n const iconStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n const contentStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n return {\n button: baseButton,\n content: contentStyles,\n endIcon: iconStyles,\n fullWidth: fullWidth\n ? css`\n width: 100%;\n `\n : null,\n icon: iconStyles,\n loading: loading\n ? css`\n pointer-events: none;\n `\n : null,\n shape:\n shape === 'round'\n ? css`\n border-radius: 50%;\n `\n : null,\n size: sizeStyles[size],\n spinner: spinnerStyles,\n startIcon: iconStyles,\n variant: variantStyles[`${color}-${variant}`] || variantStyles['primary-solid'],\n };\n }, [theme, colorScheme, color, variant, size, fullWidth, disabled, loading]);\n\nexport default useStyles;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.styles.js","names":["iconSizeMap: Record<string, string>","iconDimension: string","baseButton: string","sizeStyles: Record<string, string>","variantStyles: Record<string, string>","spinnerStyles: string","iconStyles: string"],"sources":["../../../../src/components/primitives/Button/Button.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\nexport type ButtonColor = 'primary' | 'secondary' | 'tertiary' | string;\nexport type ButtonVariant = 'solid' | 'outline' | 'text' | 'icon';\nexport type ButtonSize = 'small' | 'medium' | 'large';\n\n/**\n * Creates styles for the Button component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param color - The button color\n * @param variant - The button variant\n * @param size - The button size\n * @param fullWidth - Whether the button should take full width\n * @param disabled - Whether the button is disabled\n * @param loading - Whether the button is in loading state\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n color: ButtonColor,\n variant: ButtonVariant,\n size: ButtonSize,\n fullWidth: boolean,\n disabled: boolean,\n loading: boolean,\n shape: 'square' | 'round' = 'square',\n): Record<string, string | null> =>\n useMemo(() => {\n const iconSizeMap: Record<string, string> = {\n large: `calc(${theme.vars.spacing.unit} * 5)`,\n medium: `calc(${theme.vars.spacing.unit} * 4)`,\n small: `calc(${theme.vars.spacing.unit} * 3)`,\n };\n\n const iconDimension: string = iconSizeMap[size] || iconSizeMap['medium'];\n\n const baseButton: string = css`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: calc(${theme.vars.spacing.unit} * 1);\n border-radius: ${shape === 'round'\n ? '50%'\n : theme.vars.components?.Button?.root?.borderRadius || theme.vars.borderRadius.medium};\n font-weight: 500;\n cursor: ${disabled || loading ? 'not-allowed' : 'pointer'};\n outline: none;\n text-decoration: none;\n white-space: nowrap;\n width: ${fullWidth ? '100%' : 'auto'};\n opacity: ${disabled || loading ? 0.6 : 1};\n font-family: ${theme.vars.typography.fontFamily};\n border-width: 1px;\n border-style: solid;\n ${variant === 'icon'\n ? `\n padding: 0;\n min-width: unset;\n min-height: unset;\n width: ${iconDimension};\n height: ${iconDimension};\n justify-content: center;\n align-items: center;\n `\n : ''}\n `;\n\n const sizeStyles: Record<string, string> = {\n large: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.lg};`\n : `padding: calc(${theme.vars.spacing.unit} * 1.5) calc(${theme.vars.spacing.unit} * 3);\n font-size: ${theme.vars.typography.fontSizes.lg};\n min-height: calc(${theme.vars.spacing.unit} * 5);`}\n `,\n medium: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.md};`\n : `padding: calc(${theme.vars.spacing.unit} * 1) calc(${theme.vars.spacing.unit} * 2);\n font-size: ${theme.vars.typography.fontSizes.md};\n min-height: calc(${theme.vars.spacing.unit} * 4);`}\n `,\n small: css`\n ${variant === 'icon'\n ? `font-size: ${theme.vars.typography.fontSizes.sm};`\n : `padding: calc(${theme.vars.spacing.unit} * 0.5) calc(${theme.vars.spacing.unit} * 1);\n font-size: ${theme.vars.typography.fontSizes.sm};\n min-height: calc(${theme.vars.spacing.unit} * 3);`}\n `,\n };\n\n const variantStyles: Record<string, string> = {\n 'primary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.primary.dark};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.primary.dark};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.primary.dark};\n outline: none;\n }\n `,\n 'primary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: ${theme.vars.colors.primary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n opacity: 0.9;\n }\n `,\n 'primary-solid': css`\n background-color: ${theme.vars.colors.primary.main};\n color: ${theme.vars.colors.primary.contrastText};\n border-color: ${theme.vars.colors.primary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.9;\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.8;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.primary.main};\n opacity: 0.8;\n }\n `,\n 'primary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.primary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n outline: none;\n }\n `,\n 'secondary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.secondary.dark};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.secondary.dark};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.secondary.dark};\n outline: none;\n }\n `,\n 'secondary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: ${theme.vars.colors.secondary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n opacity: 0.9;\n }\n `,\n 'secondary-solid': css`\n background-color: ${theme.vars.colors.secondary.main};\n color: ${theme.vars.colors.secondary.contrastText};\n border-color: ${theme.vars.colors.secondary.main};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.9;\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.8;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.secondary.main};\n opacity: 0.8;\n }\n `,\n 'secondary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.secondary.main};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n outline: none;\n }\n `,\n 'tertiary-icon': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.text.primary};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.text.primary};\n outline: none;\n }\n `,\n 'tertiary-outline': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: ${theme.vars.colors.border};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.action.hover};\n border-color: ${theme.vars.colors.text.secondary};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.action.selected};\n border-color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.action.focus};\n border-color: ${theme.vars.colors.text.primary};\n }\n `,\n 'tertiary-solid': css`\n background-color: ${theme.vars.colors.text.secondary};\n color: ${theme.vars.colors.background.surface};\n border-color: ${theme.vars.colors.text.secondary};\n &:hover:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n }\n &:active:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n opacity: 0.9;\n }\n &:focus:not(:disabled) {\n background-color: ${theme.vars.colors.text.primary};\n color: ${theme.vars.colors.background.surface};\n opacity: 0.9;\n }\n `,\n 'tertiary-text': css`\n background-color: transparent;\n color: ${theme.vars.colors.text.secondary};\n border-color: transparent;\n &:hover:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.hover};\n color: ${theme.vars.colors.text.primary};\n }\n &:active:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.selected};\n color: ${theme.vars.colors.text.primary};\n }\n &:focus:not(:disabled) {\n border-color: transparent;\n background-color: ${theme.vars.colors.action.focus};\n color: ${theme.vars.colors.text.primary};\n outline: none;\n }\n `,\n };\n\n const spinnerStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n const iconStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n const contentStyles: string = css`\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n return {\n button: baseButton,\n content: contentStyles,\n endIcon: iconStyles,\n fullWidth: fullWidth\n ? css`\n width: 100%;\n `\n : null,\n icon: iconStyles,\n loading: loading\n ? css`\n pointer-events: none;\n `\n : null,\n shape:\n shape === 'round'\n ? css`\n border-radius: 50%;\n `\n : null,\n size: sizeStyles[size],\n spinner: spinnerStyles,\n startIcon: iconStyles,\n variant: variantStyles[`${color}-${variant}`] || variantStyles['primary-solid'],\n };\n }, [theme, colorScheme, color, variant, size, fullWidth, disabled, loading]);\n\nexport default useStyles;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Card/Card.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EAEd,SAAS,EACT,yBAAyB,EACzB,aAAa,EAGb,EAAE,EACH,MAAM,OAAO,CAAC;AAMf,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACxE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IAChF;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,IAAI,EAAE,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,CAgC9E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAwDjC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAkB7C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,WAAW,EAAE,yBAAyB,CAAC,gBAAgB,GAAG,aAAa,CAAC,cAAc,CAAC,CAiB3F,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAiBH,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IACzG,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,WAAW,EAAE,OAAO,eAAe,CAAC;IACpC,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,KAAK,EAAE,OAAO,SAAS,CAAC;CACzB;wBAEsB,aAAa;AAApC,wBAAqC;AACrC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAC,CAAC"}
1
+ {"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Card/Card.tsx"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EAEd,SAAS,EACT,yBAAyB,EACzB,aAAa,EAGb,EAAE,EACH,MAAM,OAAO,CAAC;AAOf,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,kBAAkB,CAAC;IACxE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IAChF;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,eAAgB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACrE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,QAAA,MAAM,IAAI,EAAE,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,CAgC9E,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,cAAc,CAwDjC,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAkB7C,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,WAAW,EAAE,yBAAyB,CAAC,gBAAgB,GAAG,aAAa,CAAC,cAAc,CAAC,CAiB3F,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,UAAU,EAAE,yBAAyB,CAAC,eAAe,GAAG,aAAa,CAAC,cAAc,CAAC,CAiBzF,CAAC;AAiBH,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAAC,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;IACzG,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,OAAO,EAAE,OAAO,WAAW,CAAC;IAC5B,WAAW,EAAE,OAAO,eAAe,CAAC;IACpC,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,MAAM,EAAE,OAAO,UAAU,CAAC;IAC1B,KAAK,EAAE,OAAO,SAAS,CAAC;CACzB;wBAEsB,aAAa;AAApC,wBAAqC;AACrC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAC,CAAC"}
@@ -1,10 +1,10 @@
1
+ import { cx } from "../../../styles/emotion.js";
1
2
  import useTheme_default from "../../../contexts/Theme/useTheme.js";
2
3
  import Typography_default from "../Typography/Typography.js";
3
4
  import Card_styles_default from "./Card.styles.js";
4
5
  import { bem, withVendorCSSClassPrefix } from "@thunderid/browser";
5
6
  import { forwardRef } from "react";
6
7
  import { jsx } from "react/jsx-runtime";
7
- import { cx } from "@emotion/css";
8
8
 
9
9
  //#region src/components/primitives/Card/Card.tsx
10
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","names":["Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>","useTheme","styles: Record<string, string>","useStyles","CardHeader: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>>","CardTitle: FC<CardTitleProps>","Typography","CardDescription: FC<CardDescriptionProps>","CardAction: ForwardRefExoticComponent<CardActionProps & RefAttributes<HTMLDivElement>>","CardContent: ForwardRefExoticComponent<CardContentProps & RefAttributes<HTMLDivElement>>","CardFooter: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>>"],"sources":["../../../../src/components/primitives/Card/Card.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {\n HTMLAttributes,\n forwardRef,\n ReactNode,\n ForwardRefExoticComponent,\n RefAttributes,\n Ref,\n ElementType,\n FC,\n} from 'react';\nimport useStyles from './Card.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport Typography from '../Typography/Typography';\nimport {TypographyVariant} from '../Typography/Typography.styles';\n\nexport type CardVariant = 'default' | 'outlined' | 'elevated';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Card content\n */\n children?: ReactNode;\n /**\n * Whether the card should be clickable (shows hover effects)\n */\n clickable?: boolean;\n /**\n * The visual variant of the card\n */\n variant?: CardVariant;\n}\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Header content\n */\n children?: ReactNode;\n}\n\nexport interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n /**\n * Title content\n */\n children?: ReactNode;\n /**\n * The heading level to use\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n /**\n * Description content\n */\n children?: ReactNode;\n}\n\nexport interface CardActionProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Action content\n */\n children?: ReactNode;\n}\n\nexport interface CardContentProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Content\n */\n children?: ReactNode;\n}\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Footer content\n */\n children?: ReactNode;\n}\n\n/**\n * Card component that provides a flexible container for content.\n *\n * @example\n * ```tsx\n * <Card variant=\"elevated\" clickable>\n * <Card.Header>\n * <Card.Title>Card Title</Card.Title>\n * <Card.Description>Card Description</Card.Description>\n * <Card.Action>\n * <Button variant=\"link\">Action</Button>\n * </Card.Action>\n * </Card.Header>\n * <Card.Content>\n * <p>Card content goes here</p>\n * </Card.Content>\n * <Card.Footer>\n * <Button>Cancel</Button>\n * <Button variant=\"outline\">Submit</Button>\n * </Card.Footer>\n * </Card>\n * ```\n */\nconst Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardProps\n>(\n (\n {variant = 'default', clickable = false, children, className, style, ...rest}: CardProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, variant, clickable);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(\n withVendorCSSClassPrefix(bem('card')),\n styles['card'],\n styles['variant'],\n styles['clickable'],\n withVendorCSSClassPrefix(bem('card', null, variant)),\n {\n [withVendorCSSClassPrefix(bem('card', null, 'clickable'))]: clickable,\n },\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\n/**\n * Card header component that contains the title, description, and optional actions.\n */\nconst CardHeader: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardHeaderProps\n>(({children, className, style, ...rest}: CardHeaderProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'header')), styles['header'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card title component.\n */\nconst CardTitle: FC<CardTitleProps> = ({children, level = 3, className, style, ...rest}: CardTitleProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n const getVariantFromLevel = (lvl: number): string => {\n switch (lvl) {\n case 1:\n return 'h1';\n case 2:\n return 'h2';\n case 3:\n return 'h3';\n case 4:\n return 'h4';\n case 5:\n return 'h5';\n case 6:\n return 'h6';\n default:\n return 'h3';\n }\n };\n\n const getComponentFromLevel = (lvl: number): string => {\n switch (lvl) {\n case 1:\n return 'h1';\n case 2:\n return 'h2';\n case 3:\n return 'h3';\n case 4:\n return 'h4';\n case 5:\n return 'h5';\n case 6:\n return 'h6';\n default:\n return 'h3';\n }\n };\n\n const {color, ...filteredRest} = rest;\n\n return (\n <Typography\n component={getComponentFromLevel(level) as ElementType}\n variant={getVariantFromLevel(level) as TypographyVariant}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'title')), styles['title'], className)}\n fontWeight={600}\n {...filteredRest}\n >\n {children}\n </Typography>\n );\n};\n\n/**\n * Card description component.\n */\nconst CardDescription: FC<CardDescriptionProps> = ({children, className, style, ...rest}: CardDescriptionProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n const {color, ...filteredRest} = rest;\n\n return (\n <Typography\n component=\"p\"\n variant=\"body2\"\n color=\"textSecondary\"\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'description')), styles['description'], className)}\n {...filteredRest}\n >\n {children}\n </Typography>\n );\n};\n\n/**\n * Card action component for action elements in the header.\n */\nconst CardAction: ForwardRefExoticComponent<CardActionProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardActionProps\n>(({children, className, style, ...rest}: CardActionProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'action')), styles['action'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card content component that contains the main content of the card.\n */\nconst CardContent: ForwardRefExoticComponent<CardContentProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardContentProps\n>(({children, className, style, ...rest}: CardContentProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'content')), styles['content'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card footer component that contains footer actions or additional information.\n */\nconst CardFooter: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardFooterProps\n>(({children, className, style, ...rest}: CardFooterProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'footer')), styles['footer'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nCard.displayName = 'Card';\nCardHeader.displayName = 'Card.Header';\nCardTitle.displayName = 'Card.Title';\nCardDescription.displayName = 'Card.Description';\nCardAction.displayName = 'Card.Action';\nCardContent.displayName = 'Card.Content';\nCardFooter.displayName = 'Card.Footer';\n\n(Card as any).Header = CardHeader;\n(Card as any).Title = CardTitle;\n(Card as any).Description = CardDescription;\n(Card as any).Action = CardAction;\n(Card as any).Content = CardContent;\n(Card as any).Footer = CardFooter;\n\nexport interface CardComponent extends ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> {\n Action: typeof CardAction;\n Content: typeof CardContent;\n Description: typeof CardDescription;\n Footer: typeof CardFooter;\n Header: typeof CardHeader;\n Title: typeof CardTitle;\n}\n\nexport default Card as CardComponent;\nexport {Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","names":["Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>>","useTheme","styles: Record<string, string>","useStyles","CardHeader: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>>","CardTitle: FC<CardTitleProps>","Typography","CardDescription: FC<CardDescriptionProps>","CardAction: ForwardRefExoticComponent<CardActionProps & RefAttributes<HTMLDivElement>>","CardContent: ForwardRefExoticComponent<CardContentProps & RefAttributes<HTMLDivElement>>","CardFooter: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>>"],"sources":["../../../../src/components/primitives/Card/Card.tsx"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {\n HTMLAttributes,\n forwardRef,\n ReactNode,\n ForwardRefExoticComponent,\n RefAttributes,\n Ref,\n ElementType,\n FC,\n} from 'react';\nimport useStyles from './Card.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport {cx} from '../../../styles/emotion';\nimport Typography from '../Typography/Typography';\nimport {TypographyVariant} from '../Typography/Typography.styles';\n\nexport type CardVariant = 'default' | 'outlined' | 'elevated';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Card content\n */\n children?: ReactNode;\n /**\n * Whether the card should be clickable (shows hover effects)\n */\n clickable?: boolean;\n /**\n * The visual variant of the card\n */\n variant?: CardVariant;\n}\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Header content\n */\n children?: ReactNode;\n}\n\nexport interface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n /**\n * Title content\n */\n children?: ReactNode;\n /**\n * The heading level to use\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\nexport interface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n /**\n * Description content\n */\n children?: ReactNode;\n}\n\nexport interface CardActionProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Action content\n */\n children?: ReactNode;\n}\n\nexport interface CardContentProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Content\n */\n children?: ReactNode;\n}\n\nexport interface CardFooterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Footer content\n */\n children?: ReactNode;\n}\n\n/**\n * Card component that provides a flexible container for content.\n *\n * @example\n * ```tsx\n * <Card variant=\"elevated\" clickable>\n * <Card.Header>\n * <Card.Title>Card Title</Card.Title>\n * <Card.Description>Card Description</Card.Description>\n * <Card.Action>\n * <Button variant=\"link\">Action</Button>\n * </Card.Action>\n * </Card.Header>\n * <Card.Content>\n * <p>Card content goes here</p>\n * </Card.Content>\n * <Card.Footer>\n * <Button>Cancel</Button>\n * <Button variant=\"outline\">Submit</Button>\n * </Card.Footer>\n * </Card>\n * ```\n */\nconst Card: ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardProps\n>(\n (\n {variant = 'default', clickable = false, children, className, style, ...rest}: CardProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, variant, clickable);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(\n withVendorCSSClassPrefix(bem('card')),\n styles['card'],\n styles['variant'],\n styles['clickable'],\n withVendorCSSClassPrefix(bem('card', null, variant)),\n {\n [withVendorCSSClassPrefix(bem('card', null, 'clickable'))]: clickable,\n },\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\n/**\n * Card header component that contains the title, description, and optional actions.\n */\nconst CardHeader: ForwardRefExoticComponent<CardHeaderProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardHeaderProps\n>(({children, className, style, ...rest}: CardHeaderProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'header')), styles['header'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card title component.\n */\nconst CardTitle: FC<CardTitleProps> = ({children, level = 3, className, style, ...rest}: CardTitleProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n const getVariantFromLevel = (lvl: number): string => {\n switch (lvl) {\n case 1:\n return 'h1';\n case 2:\n return 'h2';\n case 3:\n return 'h3';\n case 4:\n return 'h4';\n case 5:\n return 'h5';\n case 6:\n return 'h6';\n default:\n return 'h3';\n }\n };\n\n const getComponentFromLevel = (lvl: number): string => {\n switch (lvl) {\n case 1:\n return 'h1';\n case 2:\n return 'h2';\n case 3:\n return 'h3';\n case 4:\n return 'h4';\n case 5:\n return 'h5';\n case 6:\n return 'h6';\n default:\n return 'h3';\n }\n };\n\n const {color, ...filteredRest} = rest;\n\n return (\n <Typography\n component={getComponentFromLevel(level) as ElementType}\n variant={getVariantFromLevel(level) as TypographyVariant}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'title')), styles['title'], className)}\n fontWeight={600}\n {...filteredRest}\n >\n {children}\n </Typography>\n );\n};\n\n/**\n * Card description component.\n */\nconst CardDescription: FC<CardDescriptionProps> = ({children, className, style, ...rest}: CardDescriptionProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n const {color, ...filteredRest} = rest;\n\n return (\n <Typography\n component=\"p\"\n variant=\"body2\"\n color=\"textSecondary\"\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'description')), styles['description'], className)}\n {...filteredRest}\n >\n {children}\n </Typography>\n );\n};\n\n/**\n * Card action component for action elements in the header.\n */\nconst CardAction: ForwardRefExoticComponent<CardActionProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardActionProps\n>(({children, className, style, ...rest}: CardActionProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'action')), styles['action'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card content component that contains the main content of the card.\n */\nconst CardContent: ForwardRefExoticComponent<CardContentProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardContentProps\n>(({children, className, style, ...rest}: CardContentProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'content')), styles['content'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\n/**\n * Card footer component that contains footer actions or additional information.\n */\nconst CardFooter: ForwardRefExoticComponent<CardFooterProps & RefAttributes<HTMLDivElement>> = forwardRef<\n HTMLDivElement,\n CardFooterProps\n>(({children, className, style, ...rest}: CardFooterProps, ref: Ref<HTMLDivElement>) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const styles: Record<string, string> = useStyles(theme, colorScheme, 'default', false);\n\n return (\n <div\n ref={ref}\n style={style}\n className={cx(withVendorCSSClassPrefix(bem('card', 'footer')), styles['footer'], className)}\n {...rest}\n >\n {children}\n </div>\n );\n});\n\nCard.displayName = 'Card';\nCardHeader.displayName = 'Card.Header';\nCardTitle.displayName = 'Card.Title';\nCardDescription.displayName = 'Card.Description';\nCardAction.displayName = 'Card.Action';\nCardContent.displayName = 'Card.Content';\nCardFooter.displayName = 'Card.Footer';\n\n(Card as any).Header = CardHeader;\n(Card as any).Title = CardTitle;\n(Card as any).Description = CardDescription;\n(Card as any).Action = CardAction;\n(Card as any).Content = CardContent;\n(Card as any).Footer = CardFooter;\n\nexport interface CardComponent extends ForwardRefExoticComponent<CardProps & RefAttributes<HTMLDivElement>> {\n Action: typeof CardAction;\n Content: typeof CardContent;\n Description: typeof CardDescription;\n Footer: typeof CardFooter;\n Header: typeof CardHeader;\n Title: typeof CardTitle;\n}\n\nexport default Card as CardComponent;\nexport {Card, CardHeader, CardTitle, CardDescription, CardAction, CardContent, CardFooter};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Card/Card.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,SAAS,WAAW,EACpB,WAAW,OAAO,KACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAoFsB,CAAC;AAE/C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Card.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Card/Card.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9D;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GACb,OAAO,KAAK,EACZ,aAAa,MAAM,EACnB,SAAS,WAAW,EACpB,WAAW,OAAO,KACjB,MAAM,CAAC,MAAM,EAAE,MAAM,CAoFsB,CAAC;AAE/C,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/Card/Card.styles.ts
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Card.styles.js","names":["baseCard: string","variantStyles: Record<string, string>","clickableStyles: string","headerStyles: string","titleStyles: string","descriptionStyles: string","actionStyles: string","contentStyles: string","footerStyles: string"],"sources":["../../../../src/components/primitives/Card/Card.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\nexport type CardVariant = 'default' | 'outlined' | 'elevated';\n\n/**\n * Creates styles for the Card component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param variant - The card variant\n * @param clickable - Whether the card is clickable\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n variant: CardVariant,\n clickable: boolean,\n): Record<string, string> =>\n useMemo(() => {\n const baseCard: string = css`\n border-radius: ${theme.vars.borderRadius.medium};\n background-color: ${theme.vars.colors.background.surface};\n font-family: ${theme.vars.typography.fontFamily};\n transition: all 0.2s ease-in-out;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const variantStyles: Record<string, string> = {\n default: css`\n /* Base styles only */\n `,\n elevated: css`\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n border: none;\n `,\n outlined: css`\n border: 1px solid ${theme.vars.colors.border};\n `,\n };\n\n const clickableStyles: string = css`\n cursor: pointer;\n\n &:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n `;\n\n const headerStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2);\n margin-top: calc(${theme.vars.spacing.unit} * 2);\n display: flex;\n flex-direction: column;\n gap: ${theme.vars.spacing.unit};\n `;\n\n const titleStyles: string = css`\n margin: 0;\n /* Typography component will handle color, fontSize, fontWeight, lineHeight */\n `;\n\n const descriptionStyles: string = css`\n margin: 0;\n color: ${theme.vars.colors.text.secondary};\n font-size: ${theme.vars.typography.fontSizes.sm};\n line-height: 1.5;\n `;\n\n const actionStyles: string = css`\n margin-top: ${theme.vars.spacing.unit};\n `;\n\n const contentStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2);\n margin-bottom: calc(${theme.vars.spacing.unit} * 2);\n flex: 1;\n `;\n\n const footerStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2) calc(${theme.vars.spacing.unit} * 2);\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n `;\n\n return {\n action: actionStyles,\n card: baseCard,\n clickable: clickable ? clickableStyles : '',\n content: contentStyles,\n description: descriptionStyles,\n footer: footerStyles,\n header: headerStyles,\n title: titleStyles,\n variant: variantStyles[variant],\n };\n }, [theme, colorScheme, variant, clickable]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,aACJ,OACA,aACA,SACA,cAEA,cAAc;CACZ,MAAMA,WAAmB,GAAG;uBACT,MAAM,KAAK,aAAa,OAAO;0BAC5B,MAAM,KAAK,OAAO,WAAW,QAAQ;qBAC1C,MAAM,KAAK,WAAW,WAAW;;;;;;sBAMhC,MAAM,KAAK,QAAQ,KAAK;;CAG1C,MAAMC,gBAAwC;EAC5C,SAAS,GAAG;;;EAGZ,UAAU,GAAG;;;;EAIb,UAAU,GAAG;4BACS,MAAM,KAAK,OAAO,OAAO;;EAEhD;CAED,MAAMC,kBAA0B,GAAG;;;;;;;;CASnC,MAAMC,eAAuB,GAAG;wBACZ,MAAM,KAAK,QAAQ,KAAK;yBACvB,MAAM,KAAK,QAAQ,KAAK;;;aAGpC,MAAM,KAAK,QAAQ,KAAK;;CAGjC,MAAMC,cAAsB,GAAG;;;;CAK/B,MAAMC,oBAA4B,GAAG;;eAE1B,MAAM,KAAK,OAAO,KAAK,UAAU;mBAC7B,MAAM,KAAK,WAAW,UAAU,GAAG;;;CAIlD,MAAMC,eAAuB,GAAG;oBAChB,MAAM,KAAK,QAAQ,KAAK;;CAGxC,MAAMC,gBAAwB,GAAG;wBACb,MAAM,KAAK,QAAQ,KAAK;4BACpB,MAAM,KAAK,QAAQ,KAAK;;;CAIhD,MAAMC,eAAuB,GAAG;wBACZ,MAAM,KAAK,QAAQ,KAAK,aAAa,MAAM,KAAK,QAAQ,KAAK;;;aAGxE,MAAM,KAAK,QAAQ,KAAK;;AAGjC,QAAO;EACL,QAAQ;EACR,MAAM;EACN,WAAW,YAAY,kBAAkB;EACzC,SAAS;EACT,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,SAAS,cAAc;EACxB;GACA;CAAC;CAAO;CAAa;CAAS;CAAU,CAAC;AAE9C,0BAAe"}
1
+ {"version":3,"file":"Card.styles.js","names":["baseCard: string","variantStyles: Record<string, string>","clickableStyles: string","headerStyles: string","titleStyles: string","descriptionStyles: string","actionStyles: string","contentStyles: string","footerStyles: string"],"sources":["../../../../src/components/primitives/Card/Card.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\nexport type CardVariant = 'default' | 'outlined' | 'elevated';\n\n/**\n * Creates styles for the Card component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param variant - The card variant\n * @param clickable - Whether the card is clickable\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (\n theme: Theme,\n colorScheme: string,\n variant: CardVariant,\n clickable: boolean,\n): Record<string, string> =>\n useMemo(() => {\n const baseCard: string = css`\n border-radius: ${theme.vars.borderRadius.medium};\n background-color: ${theme.vars.colors.background.surface};\n font-family: ${theme.vars.typography.fontFamily};\n transition: all 0.2s ease-in-out;\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: calc(${theme.vars.spacing.unit} * 2);\n `;\n\n const variantStyles: Record<string, string> = {\n default: css`\n /* Base styles only */\n `,\n elevated: css`\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n border: none;\n `,\n outlined: css`\n border: 1px solid ${theme.vars.colors.border};\n `,\n };\n\n const clickableStyles: string = css`\n cursor: pointer;\n\n &:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n }\n `;\n\n const headerStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2);\n margin-top: calc(${theme.vars.spacing.unit} * 2);\n display: flex;\n flex-direction: column;\n gap: ${theme.vars.spacing.unit};\n `;\n\n const titleStyles: string = css`\n margin: 0;\n /* Typography component will handle color, fontSize, fontWeight, lineHeight */\n `;\n\n const descriptionStyles: string = css`\n margin: 0;\n color: ${theme.vars.colors.text.secondary};\n font-size: ${theme.vars.typography.fontSizes.sm};\n line-height: 1.5;\n `;\n\n const actionStyles: string = css`\n margin-top: ${theme.vars.spacing.unit};\n `;\n\n const contentStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2);\n margin-bottom: calc(${theme.vars.spacing.unit} * 2);\n flex: 1;\n `;\n\n const footerStyles: string = css`\n padding: 0 calc(${theme.vars.spacing.unit} * 2) calc(${theme.vars.spacing.unit} * 2);\n display: flex;\n align-items: center;\n gap: ${theme.vars.spacing.unit};\n `;\n\n return {\n action: actionStyles,\n card: baseCard,\n clickable: clickable ? clickableStyles : '',\n content: contentStyles,\n description: descriptionStyles,\n footer: footerStyles,\n header: headerStyles,\n title: titleStyles,\n variant: variantStyles[variant],\n };\n }, [theme, colorScheme, variant, clickable]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;AAiBA,MAAM,aACJ,OACA,aACA,SACA,cAEA,cAAc;CACZ,MAAMA,WAAmB,GAAG;uBACT,MAAM,KAAK,aAAa,OAAO;0BAC5B,MAAM,KAAK,OAAO,WAAW,QAAQ;qBAC1C,MAAM,KAAK,WAAW,WAAW;;;;;;sBAMhC,MAAM,KAAK,QAAQ,KAAK;;CAG1C,MAAMC,gBAAwC;EAC5C,SAAS,GAAG;;;EAGZ,UAAU,GAAG;;;;EAIb,UAAU,GAAG;4BACS,MAAM,KAAK,OAAO,OAAO;;EAEhD;CAED,MAAMC,kBAA0B,GAAG;;;;;;;;CASnC,MAAMC,eAAuB,GAAG;wBACZ,MAAM,KAAK,QAAQ,KAAK;yBACvB,MAAM,KAAK,QAAQ,KAAK;;;aAGpC,MAAM,KAAK,QAAQ,KAAK;;CAGjC,MAAMC,cAAsB,GAAG;;;;CAK/B,MAAMC,oBAA4B,GAAG;;eAE1B,MAAM,KAAK,OAAO,KAAK,UAAU;mBAC7B,MAAM,KAAK,WAAW,UAAU,GAAG;;;CAIlD,MAAMC,eAAuB,GAAG;oBAChB,MAAM,KAAK,QAAQ,KAAK;;CAGxC,MAAMC,gBAAwB,GAAG;wBACb,MAAM,KAAK,QAAQ,KAAK;4BACpB,MAAM,KAAK,QAAQ,KAAK;;;CAIhD,MAAMC,eAAuB,GAAG;wBACZ,MAAM,KAAK,QAAQ,KAAK,aAAa,MAAM,KAAK,QAAQ,KAAK;;;aAGxE,MAAM,KAAK,QAAQ,KAAK;;AAGjC,QAAO;EACL,QAAQ;EACR,MAAM;EACN,WAAW,YAAY,kBAAkB;EACzC,SAAS;EACT,aAAa;EACb,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,SAAS,cAAc;EACxB;GACA;CAAC;CAAO;CAAa;CAAS;CAAU,CAAC;AAE9C,0BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAM9C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA6C/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAO9C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACtG;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA6C/B,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -1,10 +1,10 @@
1
+ import { cx } from "../../../styles/emotion.js";
1
2
  import useTheme_default from "../../../contexts/Theme/useTheme.js";
2
3
  import FormControl_default from "../FormControl/FormControl.js";
3
4
  import InputLabel_default from "../InputLabel/InputLabel.js";
4
5
  import Checkbox_styles_default from "./Checkbox.styles.js";
5
6
  import { bem, withVendorCSSClassPrefix } from "@thunderid/browser";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { cx } from "@emotion/css";
8
8
 
9
9
  //#region src/components/primitives/Checkbox/Checkbox.tsx
10
10
  const Checkbox = ({ label, error, className, required, helperText, style = {},...rest }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["Checkbox: FC<CheckboxProps>","useTheme","styles: Record<string, string>","useStyles","FormControl","InputLabel"],"sources":["../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"sourcesContent":["// Copyright 2024 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {FC, InputHTMLAttributes} from 'react';\nimport useStyles from './Checkbox.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport FormControl from '../FormControl/FormControl';\nimport InputLabel from '../InputLabel/InputLabel';\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {\n /**\n * Additional CSS class names\n */\n className?: string;\n /**\n * Error message to display below the checkbox\n */\n error?: string;\n /**\n * Helper text to display below the checkbox\n */\n helperText?: string;\n /**\n * Label text to display next to the checkbox\n */\n label?: string;\n /**\n * Whether the field is required\n */\n required?: boolean;\n}\n\nconst Checkbox: FC<CheckboxProps> = ({\n label,\n error,\n className,\n required,\n helperText,\n style = {},\n ...rest\n}: CheckboxProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const hasError = !!error;\n const styles: Record<string, string> = useStyles(theme, colorScheme, hasError, !!required);\n\n return (\n <FormControl\n error={error}\n helperText={helperText}\n className={cx(withVendorCSSClassPrefix(bem('checkbox')), className)}\n helperTextMarginLeft={`calc(${theme.vars.spacing.unit} * 3.5)`}\n >\n <div style={style} className={cx(withVendorCSSClassPrefix(bem('checkbox', 'container')), styles['container'])}>\n <input\n type=\"checkbox\"\n className={cx(withVendorCSSClassPrefix(bem('checkbox', 'input')), styles['input'], styles['errorInput'], {\n [withVendorCSSClassPrefix(bem('checkbox', 'input', 'error'))]: hasError,\n })}\n aria-invalid={hasError}\n aria-required={required}\n {...rest}\n />\n {label && (\n <InputLabel\n required={required}\n error={hasError}\n variant=\"inline\"\n className={cx(withVendorCSSClassPrefix(bem('checkbox', 'label')), styles['label'], styles['errorLabel'], {\n [withVendorCSSClassPrefix(bem('checkbox', 'label', 'error'))]: hasError,\n })}\n >\n {label}\n </InputLabel>\n )}\n </div>\n </FormControl>\n );\n};\n\nexport default Checkbox;\n"],"mappings":";;;;;;;;;AAkCA,MAAMA,YAA+B,EACnC,OACA,OACA,WACA,UACA,YACA,QAAQ,EAAE,CACV,GAAG,WACgB;CACnB,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAM,WAAW,CAAC,CAAC;CACnB,MAAMC,SAAiCC,wBAAU,OAAO,aAAa,UAAU,CAAC,CAAC,SAAS;AAE1F,QACE,oBAACC;EACQ;EACK;EACZ,WAAW,GAAG,yBAAyB,IAAI,WAAW,CAAC,EAAE,UAAU;EACnE,sBAAsB,QAAQ,MAAM,KAAK,QAAQ,KAAK;YAEtD,qBAAC;GAAW;GAAO,WAAW,GAAG,yBAAyB,IAAI,YAAY,YAAY,CAAC,EAAE,OAAO,aAAa;cAC3G,oBAAC;IACC,MAAK;IACL,WAAW,GAAG,yBAAyB,IAAI,YAAY,QAAQ,CAAC,EAAE,OAAO,UAAU,OAAO,eAAe,GACtG,yBAAyB,IAAI,YAAY,SAAS,QAAQ,CAAC,GAAG,UAChE,CAAC;IACF,gBAAc;IACd,iBAAe;IACf,GAAI;KACJ,EACD,SACC,oBAACC;IACW;IACV,OAAO;IACP,SAAQ;IACR,WAAW,GAAG,yBAAyB,IAAI,YAAY,QAAQ,CAAC,EAAE,OAAO,UAAU,OAAO,eAAe,GACtG,yBAAyB,IAAI,YAAY,SAAS,QAAQ,CAAC,GAAG,UAChE,CAAC;cAED;KACU;IAEX;GACM;;AAIlB,uBAAe"}
1
+ {"version":3,"file":"Checkbox.js","names":["Checkbox: FC<CheckboxProps>","useTheme","styles: Record<string, string>","useStyles","FormControl","InputLabel"],"sources":["../../../../src/components/primitives/Checkbox/Checkbox.tsx"],"sourcesContent":["// Copyright 2024 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {FC, InputHTMLAttributes} from 'react';\nimport useStyles from './Checkbox.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport {cx} from '../../../styles/emotion';\nimport FormControl from '../FormControl/FormControl';\nimport InputLabel from '../InputLabel/InputLabel';\n\nexport interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {\n /**\n * Additional CSS class names\n */\n className?: string;\n /**\n * Error message to display below the checkbox\n */\n error?: string;\n /**\n * Helper text to display below the checkbox\n */\n helperText?: string;\n /**\n * Label text to display next to the checkbox\n */\n label?: string;\n /**\n * Whether the field is required\n */\n required?: boolean;\n}\n\nconst Checkbox: FC<CheckboxProps> = ({\n label,\n error,\n className,\n required,\n helperText,\n style = {},\n ...rest\n}: CheckboxProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const hasError = !!error;\n const styles: Record<string, string> = useStyles(theme, colorScheme, hasError, !!required);\n\n return (\n <FormControl\n error={error}\n helperText={helperText}\n className={cx(withVendorCSSClassPrefix(bem('checkbox')), className)}\n helperTextMarginLeft={`calc(${theme.vars.spacing.unit} * 3.5)`}\n >\n <div style={style} className={cx(withVendorCSSClassPrefix(bem('checkbox', 'container')), styles['container'])}>\n <input\n type=\"checkbox\"\n className={cx(withVendorCSSClassPrefix(bem('checkbox', 'input')), styles['input'], styles['errorInput'], {\n [withVendorCSSClassPrefix(bem('checkbox', 'input', 'error'))]: hasError,\n })}\n aria-invalid={hasError}\n aria-required={required}\n {...rest}\n />\n {label && (\n <InputLabel\n required={required}\n error={hasError}\n variant=\"inline\"\n className={cx(withVendorCSSClassPrefix(bem('checkbox', 'label')), styles['label'], styles['errorLabel'], {\n [withVendorCSSClassPrefix(bem('checkbox', 'label', 'error'))]: hasError,\n })}\n >\n {label}\n </InputLabel>\n )}\n </div>\n </FormControl>\n );\n};\n\nexport default Checkbox;\n"],"mappings":";;;;;;;;;AAkCA,MAAMA,YAA+B,EACnC,OACA,OACA,WACA,UACA,YACA,QAAQ,EAAE,CACV,GAAG,WACgB;CACnB,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAM,WAAW,CAAC,CAAC;CACnB,MAAMC,SAAiCC,wBAAU,OAAO,aAAa,UAAU,CAAC,CAAC,SAAS;AAE1F,QACE,oBAACC;EACQ;EACK;EACZ,WAAW,GAAG,yBAAyB,IAAI,WAAW,CAAC,EAAE,UAAU;EACnE,sBAAsB,QAAQ,MAAM,KAAK,QAAQ,KAAK;YAEtD,qBAAC;GAAW;GAAO,WAAW,GAAG,yBAAyB,IAAI,YAAY,YAAY,CAAC,EAAE,OAAO,aAAa;cAC3G,oBAAC;IACC,MAAK;IACL,WAAW,GAAG,yBAAyB,IAAI,YAAY,QAAQ,CAAC,EAAE,OAAO,UAAU,OAAO,eAAe,GACtG,yBAAyB,IAAI,YAAY,SAAS,QAAQ,CAAC,GAAG,UAChE,CAAC;IACF,gBAAc;IACd,iBAAe;IACf,GAAI;KACJ,EACD,SACC,oBAACC;IACW;IACV,OAAO;IACP,SAAQ;IACR,WAAW,GAAG,yBAAyB,IAAI,YAAY,QAAQ,CAAC,EAAE,OAAO,UAAU,OAAO,eAAe,GACtG,yBAAyB,IAAI,YAAY,SAAS,QAAQ,CAAC,GAAG,UAChE,CAAC;cAED;KACU;IAEX;GACM;;AAIlB,uBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Checkbox/Checkbox.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,EAAE,UAAU,OAAO,EAAE,UAAU,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA4DpE,CAAC;AAE/C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"Checkbox.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/Checkbox/Checkbox.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,EAAE,UAAU,OAAO,EAAE,UAAU,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CA4DpE,CAAC;AAE/C,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/Checkbox/Checkbox.styles.ts
5
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.styles.js","names":["containerStyles: string","inputStyles: string","errorInputStyles: string","labelStyles: string","errorLabelStyles: string","requiredStyles: string"],"sources":["../../../../src/components/primitives/Checkbox/Checkbox.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\n/**\n * Creates styles for the Checkbox component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param hasError - Whether the checkbox has an error state\n * @param required - Whether the checkbox is required\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (theme: Theme, colorScheme: string, hasError: boolean, required: boolean): Record<string, string> =>\n useMemo(() => {\n const containerStyles: string = css`\n display: flex;\n align-items: center;\n `;\n\n const inputStyles: string = css`\n width: calc(${theme.vars.spacing.unit} * 2.5);\n height: calc(${theme.vars.spacing.unit} * 2.5);\n margin-inline-end: ${theme.vars.spacing.unit};\n accent-color: ${theme.vars.colors.primary.main};\n cursor: pointer;\n\n &:focus {\n outline: 2px solid ${theme.vars.colors.primary.main};\n outline-offset: 2px;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n `;\n\n const errorInputStyles: string = css`\n accent-color: ${theme.vars.colors.error.main};\n\n &:focus {\n outline-color: ${theme.vars.colors.error.main};\n }\n `;\n\n const labelStyles: string = css`\n color: ${theme.vars.colors.text.primary};\n font-size: ${theme.vars.typography.fontSizes.sm};\n font-family: ${theme.vars.typography.fontFamily};\n cursor: pointer;\n\n &:hover {\n color: ${theme.vars.colors.text.primary};\n }\n `;\n\n const errorLabelStyles: string = css`\n color: ${theme.vars.colors.error.main};\n `;\n\n const requiredStyles: string = css`\n /* Required indicator styles will be handled by InputLabel */\n `;\n\n return {\n container: containerStyles,\n errorInput: hasError ? errorInputStyles : '',\n errorLabel: hasError ? errorLabelStyles : '',\n input: inputStyles,\n label: labelStyles,\n required: required ? requiredStyles : '',\n };\n }, [theme, colorScheme, hasError, required]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,aAAa,OAAc,aAAqB,UAAmB,aACvE,cAAc;CACZ,MAAMA,kBAA0B,GAAG;;;;CAKnC,MAAMC,cAAsB,GAAG;oBACf,MAAM,KAAK,QAAQ,KAAK;qBACvB,MAAM,KAAK,QAAQ,KAAK;2BAClB,MAAM,KAAK,QAAQ,KAAK;sBAC7B,MAAM,KAAK,OAAO,QAAQ,KAAK;;;;6BAIxB,MAAM,KAAK,OAAO,QAAQ,KAAK;;;;;;;;;CAUxD,MAAMC,mBAA2B,GAAG;sBAClB,MAAM,KAAK,OAAO,MAAM,KAAK;;;yBAG1B,MAAM,KAAK,OAAO,MAAM,KAAK;;;CAIlD,MAAMC,cAAsB,GAAG;eACpB,MAAM,KAAK,OAAO,KAAK,QAAQ;mBAC3B,MAAM,KAAK,WAAW,UAAU,GAAG;qBACjC,MAAM,KAAK,WAAW,WAAW;;;;iBAIrC,MAAM,KAAK,OAAO,KAAK,QAAQ;;;CAI5C,MAAMC,mBAA2B,GAAG;eACzB,MAAM,KAAK,OAAO,MAAM,KAAK;;CAGxC,MAAMC,iBAAyB,GAAG;;;AAIlC,QAAO;EACL,WAAW;EACX,YAAY,WAAW,mBAAmB;EAC1C,YAAY,WAAW,mBAAmB;EAC1C,OAAO;EACP,OAAO;EACP,UAAU,WAAW,iBAAiB;EACvC;GACA;CAAC;CAAO;CAAa;CAAU;CAAS,CAAC;AAE9C,8BAAe"}
1
+ {"version":3,"file":"Checkbox.styles.js","names":["containerStyles: string","inputStyles: string","errorInputStyles: string","labelStyles: string","errorLabelStyles: string","requiredStyles: string"],"sources":["../../../../src/components/primitives/Checkbox/Checkbox.styles.ts"],"sourcesContent":["// Copyright 2025 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\n/**\n * Creates styles for the Checkbox component using BEM methodology\n * @param theme - The theme object containing design tokens\n * @param colorScheme - The current color scheme (used for memoization)\n * @param hasError - Whether the checkbox has an error state\n * @param required - Whether the checkbox is required\n * @returns Object containing CSS class names for component styling\n */\nconst useStyles = (theme: Theme, colorScheme: string, hasError: boolean, required: boolean): Record<string, string> =>\n useMemo(() => {\n const containerStyles: string = css`\n display: flex;\n align-items: center;\n `;\n\n const inputStyles: string = css`\n width: calc(${theme.vars.spacing.unit} * 2.5);\n height: calc(${theme.vars.spacing.unit} * 2.5);\n margin-inline-end: ${theme.vars.spacing.unit};\n accent-color: ${theme.vars.colors.primary.main};\n cursor: pointer;\n\n &:focus {\n outline: 2px solid ${theme.vars.colors.primary.main};\n outline-offset: 2px;\n }\n\n &:disabled {\n cursor: not-allowed;\n opacity: 0.6;\n }\n `;\n\n const errorInputStyles: string = css`\n accent-color: ${theme.vars.colors.error.main};\n\n &:focus {\n outline-color: ${theme.vars.colors.error.main};\n }\n `;\n\n const labelStyles: string = css`\n color: ${theme.vars.colors.text.primary};\n font-size: ${theme.vars.typography.fontSizes.sm};\n font-family: ${theme.vars.typography.fontFamily};\n cursor: pointer;\n\n &:hover {\n color: ${theme.vars.colors.text.primary};\n }\n `;\n\n const errorLabelStyles: string = css`\n color: ${theme.vars.colors.error.main};\n `;\n\n const requiredStyles: string = css`\n /* Required indicator styles will be handled by InputLabel */\n `;\n\n return {\n container: containerStyles,\n errorInput: hasError ? errorInputStyles : '',\n errorLabel: hasError ? errorLabelStyles : '',\n input: inputStyles,\n label: labelStyles,\n required: required ? requiredStyles : '',\n };\n }, [theme, colorScheme, hasError, required]);\n\nexport default useStyles;\n"],"mappings":";;;;;;;;;;;;AAeA,MAAM,aAAa,OAAc,aAAqB,UAAmB,aACvE,cAAc;CACZ,MAAMA,kBAA0B,GAAG;;;;CAKnC,MAAMC,cAAsB,GAAG;oBACf,MAAM,KAAK,QAAQ,KAAK;qBACvB,MAAM,KAAK,QAAQ,KAAK;2BAClB,MAAM,KAAK,QAAQ,KAAK;sBAC7B,MAAM,KAAK,OAAO,QAAQ,KAAK;;;;6BAIxB,MAAM,KAAK,OAAO,QAAQ,KAAK;;;;;;;;;CAUxD,MAAMC,mBAA2B,GAAG;sBAClB,MAAM,KAAK,OAAO,MAAM,KAAK;;;yBAG1B,MAAM,KAAK,OAAO,MAAM,KAAK;;;CAIlD,MAAMC,cAAsB,GAAG;eACpB,MAAM,KAAK,OAAO,KAAK,QAAQ;mBAC3B,MAAM,KAAK,WAAW,UAAU,GAAG;qBACjC,MAAM,KAAK,WAAW,WAAW;;;;iBAIrC,MAAM,KAAK,OAAO,KAAK,QAAQ;;;CAI5C,MAAMC,mBAA2B,GAAG;eACzB,MAAM,KAAK,OAAO,MAAM,KAAK;;CAGxC,MAAMC,iBAAyB,GAAG;;;AAIlC,QAAO;EACL,WAAW;EACX,YAAY,WAAW,mBAAmB;EAC1C,YAAY,WAAW,mBAAmB;EAC1C,OAAO;EACP,OAAO;EACP,UAAU,WAAW,iBAAiB;EACvC;GACA;CAAC;CAAO;CAAa;CAAU;CAAS,CAAC;AAE9C,8BAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"CopyableText.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/CopyableText/CopyableText.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAuCpD,CAAC;AAEJ,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"CopyableText.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/CopyableText/CopyableText.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAuCpD,CAAC;AAEJ,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/CopyableText/CopyableText.styles.ts
5
5
  const useStyles = (theme) => useMemo(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"CopyableText.styles.js","names":[],"sources":["../../../../src/components/primitives/CopyableText/CopyableText.styles.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {css} from '@emotion/css';\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\n\nconst useStyles = (theme: Theme): Record<string, string> =>\n useMemo(\n () => ({\n container: css`\n display: flex;\n flex-direction: column;\n gap: calc(${theme.vars.spacing.unit} * 0.5);\n width: 100%;\n `,\n copyButton: css`\n flex-shrink: 0;\n white-space: nowrap;\n `,\n label: css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.875rem;\n font-weight: 500;\n `,\n valueBox: css`\n align-items: center;\n background-color: ${theme.vars.colors.background.surface};\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n display: flex;\n gap: calc(${theme.vars.spacing.unit} * 1);\n padding: calc(${theme.vars.spacing.unit} * 0.75) calc(${theme.vars.spacing.unit} * 1);\n `,\n valueText: css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n font-family: monospace;\n font-size: 0.85rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n word-break: break-all;\n `,\n }),\n [theme],\n );\n\nexport default useStyles;\n"],"mappings":";;;;AAOA,MAAM,aAAa,UACjB,eACS;CACL,WAAW,GAAG;;;oBAGA,MAAM,KAAK,QAAQ,KAAK;;;CAGtC,YAAY,GAAG;;;;CAIf,OAAO,GAAG;iBACC,MAAM,KAAK,OAAO,KAAK,UAAU;;;;CAI5C,UAAU,GAAG;;4BAES,MAAM,KAAK,OAAO,WAAW,QAAQ;4BACrC,MAAM,KAAK,OAAO,OAAO;yBAC5B,MAAM,KAAK,aAAa,MAAM;;oBAEnC,MAAM,KAAK,QAAQ,KAAK;wBACpB,MAAM,KAAK,QAAQ,KAAK,gBAAgB,MAAM,KAAK,QAAQ,KAAK;;CAElF,WAAW,GAAG;iBACH,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;;;;;;CAS3C,GACD,CAAC,MAAM,CACR;AAEH,kCAAe"}
1
+ {"version":3,"file":"CopyableText.styles.js","names":[],"sources":["../../../../src/components/primitives/CopyableText/CopyableText.styles.ts"],"sourcesContent":["// Copyright 2026 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {Theme} from '@thunderid/browser';\nimport {useMemo} from 'react';\nimport {css} from '../../../styles/emotion';\n\nconst useStyles = (theme: Theme): Record<string, string> =>\n useMemo(\n () => ({\n container: css`\n display: flex;\n flex-direction: column;\n gap: calc(${theme.vars.spacing.unit} * 0.5);\n width: 100%;\n `,\n copyButton: css`\n flex-shrink: 0;\n white-space: nowrap;\n `,\n label: css`\n color: ${theme.vars.colors.text.secondary};\n font-size: 0.875rem;\n font-weight: 500;\n `,\n valueBox: css`\n align-items: center;\n background-color: ${theme.vars.colors.background.surface};\n border: 1px solid ${theme.vars.colors.border};\n border-radius: ${theme.vars.borderRadius.small};\n display: flex;\n gap: calc(${theme.vars.spacing.unit} * 1);\n padding: calc(${theme.vars.spacing.unit} * 0.75) calc(${theme.vars.spacing.unit} * 1);\n `,\n valueText: css`\n color: ${theme.vars.colors.text.primary};\n flex: 1;\n font-family: monospace;\n font-size: 0.85rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n word-break: break-all;\n `,\n }),\n [theme],\n );\n\nexport default useStyles;\n"],"mappings":";;;;AAOA,MAAM,aAAa,UACjB,eACS;CACL,WAAW,GAAG;;;oBAGA,MAAM,KAAK,QAAQ,KAAK;;;CAGtC,YAAY,GAAG;;;;CAIf,OAAO,GAAG;iBACC,MAAM,KAAK,OAAO,KAAK,UAAU;;;;CAI5C,UAAU,GAAG;;4BAES,MAAM,KAAK,OAAO,WAAW,QAAQ;4BACrC,MAAM,KAAK,OAAO,OAAO;yBAC5B,MAAM,KAAK,aAAa,MAAM;;oBAEnC,MAAM,KAAK,QAAQ,KAAK;wBACpB,MAAM,KAAK,QAAQ,KAAK,gBAAgB,MAAM,KAAK,QAAQ,KAAK;;CAElF,WAAW,GAAG;iBACH,MAAM,KAAK,OAAO,KAAK,QAAQ;;;;;;;;;CAS3C,GACD,CAAC,MAAM,CACR;AAEH,kCAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAM9C,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACxG;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoDnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/DatePicker/DatePicker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,EAAE,EAAE,mBAAmB,EAAC,MAAM,OAAO,CAAC;AAO9C,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IACxG;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAoDnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,10 +1,10 @@
1
+ import { cx } from "../../../styles/emotion.js";
1
2
  import useTheme_default from "../../../contexts/Theme/useTheme.js";
2
3
  import FormControl_default from "../FormControl/FormControl.js";
3
4
  import InputLabel_default from "../InputLabel/InputLabel.js";
4
5
  import DatePicker_styles_default from "./DatePicker.styles.js";
5
6
  import { bem, withVendorCSSClassPrefix } from "@thunderid/browser";
6
7
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { cx } from "@emotion/css";
8
8
 
9
9
  //#region src/components/primitives/DatePicker/DatePicker.tsx
10
10
  const DatePicker = ({ label, error, className, required, disabled, helperText, dateFormat = "yyyy-MM-dd", style = {},...rest }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","names":["DatePicker: FC<DatePickerProps>","useTheme","styles: Record<string, string>","useStyles","FormControl","InputLabel"],"sources":["../../../../src/components/primitives/DatePicker/DatePicker.tsx"],"sourcesContent":["// Copyright 2024 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {cx} from '@emotion/css';\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {FC, InputHTMLAttributes} from 'react';\nimport useStyles from './DatePicker.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport FormControl from '../FormControl/FormControl';\nimport InputLabel from '../InputLabel/InputLabel';\n\nexport interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {\n /**\n * Additional CSS class names\n */\n className?: string;\n /**\n * Custom date format for the regex pattern\n */\n dateFormat?: string;\n /**\n * Whether the field is disabled\n */\n disabled?: boolean;\n /**\n * Error message to display below the input\n */\n error?: string;\n /**\n * Helper text to display below the input\n */\n helperText?: string;\n /**\n * Label text to display above the input\n */\n label?: string;\n /**\n * Whether the field is required\n */\n required?: boolean;\n}\n\nconst DatePicker: FC<DatePickerProps> = ({\n label,\n error,\n className,\n required,\n disabled,\n helperText,\n dateFormat = 'yyyy-MM-dd',\n style = {},\n ...rest\n}: DatePickerProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const hasError = !!error;\n const styles: Record<string, string> = useStyles(theme, colorScheme, hasError, !!disabled);\n\n return (\n <FormControl\n error={error}\n helperText={helperText}\n className={cx(withVendorCSSClassPrefix(bem('date-picker')), className)}\n style={style}\n >\n {label && (\n <InputLabel\n required={required}\n error={hasError}\n className={cx(withVendorCSSClassPrefix(bem('date-picker', 'label')), styles['label'])}\n >\n {label}\n </InputLabel>\n )}\n <input\n type=\"date\"\n pattern=\"\\d{4}-\\d{2}-\\d{2}\"\n placeholder={dateFormat}\n className={cx(\n withVendorCSSClassPrefix(bem('date-picker', 'input')),\n styles['input'],\n styles['errorInput'],\n styles['disabledInput'],\n {\n [withVendorCSSClassPrefix(bem('date-picker', 'input', 'error'))]: hasError,\n [withVendorCSSClassPrefix(bem('date-picker', 'input', 'disabled'))]: disabled,\n },\n )}\n disabled={disabled}\n aria-invalid={hasError}\n aria-required={required}\n {...rest}\n />\n </FormControl>\n );\n};\n\nexport default DatePicker;\n"],"mappings":";;;;;;;;;AA0CA,MAAMA,cAAmC,EACvC,OACA,OACA,WACA,UACA,UACA,YACA,aAAa,cACb,QAAQ,EAAE,CACV,GAAG,WACkB;CACrB,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAM,WAAW,CAAC,CAAC;CACnB,MAAMC,SAAiCC,0BAAU,OAAO,aAAa,UAAU,CAAC,CAAC,SAAS;AAE1F,QACE,qBAACC;EACQ;EACK;EACZ,WAAW,GAAG,yBAAyB,IAAI,cAAc,CAAC,EAAE,UAAU;EAC/D;aAEN,SACC,oBAACC;GACW;GACV,OAAO;GACP,WAAW,GAAG,yBAAyB,IAAI,eAAe,QAAQ,CAAC,EAAE,OAAO,SAAS;aAEpF;IACU,EAEf,oBAAC;GACC,MAAK;GACL,SAAQ;GACR,aAAa;GACb,WAAW,GACT,yBAAyB,IAAI,eAAe,QAAQ,CAAC,EACrD,OAAO,UACP,OAAO,eACP,OAAO,kBACP;KACG,yBAAyB,IAAI,eAAe,SAAS,QAAQ,CAAC,GAAG;KACjE,yBAAyB,IAAI,eAAe,SAAS,WAAW,CAAC,GAAG;IACtE,CACF;GACS;GACV,gBAAc;GACd,iBAAe;GACf,GAAI;IACJ;GACU;;AAIlB,yBAAe"}
1
+ {"version":3,"file":"DatePicker.js","names":["DatePicker: FC<DatePickerProps>","useTheme","styles: Record<string, string>","useStyles","FormControl","InputLabel"],"sources":["../../../../src/components/primitives/DatePicker/DatePicker.tsx"],"sourcesContent":["// Copyright 2024 The ThunderID Authors\n// SPDX-License-Identifier: Apache-2.0\n\nimport {withVendorCSSClassPrefix, bem} from '@thunderid/browser';\nimport {FC, InputHTMLAttributes} from 'react';\nimport useStyles from './DatePicker.styles';\nimport useTheme from '../../../contexts/Theme/useTheme';\nimport {cx} from '../../../styles/emotion';\nimport FormControl from '../FormControl/FormControl';\nimport InputLabel from '../InputLabel/InputLabel';\n\nexport interface DatePickerProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'className' | 'type'> {\n /**\n * Additional CSS class names\n */\n className?: string;\n /**\n * Custom date format for the regex pattern\n */\n dateFormat?: string;\n /**\n * Whether the field is disabled\n */\n disabled?: boolean;\n /**\n * Error message to display below the input\n */\n error?: string;\n /**\n * Helper text to display below the input\n */\n helperText?: string;\n /**\n * Label text to display above the input\n */\n label?: string;\n /**\n * Whether the field is required\n */\n required?: boolean;\n}\n\nconst DatePicker: FC<DatePickerProps> = ({\n label,\n error,\n className,\n required,\n disabled,\n helperText,\n dateFormat = 'yyyy-MM-dd',\n style = {},\n ...rest\n}: DatePickerProps) => {\n const {theme, colorScheme}: ReturnType<typeof useTheme> = useTheme();\n const hasError = !!error;\n const styles: Record<string, string> = useStyles(theme, colorScheme, hasError, !!disabled);\n\n return (\n <FormControl\n error={error}\n helperText={helperText}\n className={cx(withVendorCSSClassPrefix(bem('date-picker')), className)}\n style={style}\n >\n {label && (\n <InputLabel\n required={required}\n error={hasError}\n className={cx(withVendorCSSClassPrefix(bem('date-picker', 'label')), styles['label'])}\n >\n {label}\n </InputLabel>\n )}\n <input\n type=\"date\"\n pattern=\"\\d{4}-\\d{2}-\\d{2}\"\n placeholder={dateFormat}\n className={cx(\n withVendorCSSClassPrefix(bem('date-picker', 'input')),\n styles['input'],\n styles['errorInput'],\n styles['disabledInput'],\n {\n [withVendorCSSClassPrefix(bem('date-picker', 'input', 'error'))]: hasError,\n [withVendorCSSClassPrefix(bem('date-picker', 'input', 'disabled'))]: disabled,\n },\n )}\n disabled={disabled}\n aria-invalid={hasError}\n aria-required={required}\n {...rest}\n />\n </FormControl>\n );\n};\n\nexport default DatePicker;\n"],"mappings":";;;;;;;;;AA0CA,MAAMA,cAAmC,EACvC,OACA,OACA,WACA,UACA,UACA,YACA,aAAa,cACb,QAAQ,EAAE,CACV,GAAG,WACkB;CACrB,MAAM,EAAC,OAAO,gBAA4CC,kBAAU;CACpE,MAAM,WAAW,CAAC,CAAC;CACnB,MAAMC,SAAiCC,0BAAU,OAAO,aAAa,UAAU,CAAC,CAAC,SAAS;AAE1F,QACE,qBAACC;EACQ;EACK;EACZ,WAAW,GAAG,yBAAyB,IAAI,cAAc,CAAC,EAAE,UAAU;EAC/D;aAEN,SACC,oBAACC;GACW;GACV,OAAO;GACP,WAAW,GAAG,yBAAyB,IAAI,eAAe,QAAQ,CAAC,EAAE,OAAO,SAAS;aAEpF;IACU,EAEf,oBAAC;GACC,MAAK;GACL,SAAQ;GACR,aAAa;GACb,WAAW,GACT,yBAAyB,IAAI,eAAe,QAAQ,CAAC,EACrD,OAAO,UACP,OAAO,eACP,OAAO,kBACP;KACG,yBAAyB,IAAI,eAAe,SAAS,QAAQ,CAAC,GAAG;KACjE,yBAAyB,IAAI,eAAe,SAAS,WAAW,CAAC,GAAG;IACtE,CACF;GACS;GACV,gBAAc;GACd,iBAAe;GACf,GAAI;IACJ;GACU;;AAIlB,yBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/DatePicker/DatePicker.styles.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAGzC;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,EAAE,UAAU,OAAO,EAAE,UAAU,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAkEpE,CAAC;AAE/C,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"DatePicker.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/primitives/DatePicker/DatePicker.styles.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAC;AAIzC;;;;;;;GAOG;AACH,QAAA,MAAM,SAAS,GAAI,OAAO,KAAK,EAAE,aAAa,MAAM,EAAE,UAAU,OAAO,EAAE,UAAU,OAAO,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAkEpE,CAAC;AAE/C,eAAe,SAAS,CAAC"}
@@ -1,5 +1,5 @@
1
+ import { css } from "../../../styles/emotion.js";
1
2
  import { useMemo } from "react";
2
- import { css } from "@emotion/css";
3
3
 
4
4
  //#region src/components/primitives/DatePicker/DatePicker.styles.ts
5
5
  /**