@datatechsolutions/tympan 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/LICENSE +105 -0
  2. package/README.md +361 -0
  3. package/THIRD_PARTY_NOTICES.md +180 -0
  4. package/dist/Avatar-BwVXK1gt.d.ts +37 -0
  5. package/dist/Avatar-P14MVkK1.js +2815 -0
  6. package/dist/Avatar-P14MVkK1.js.map +1 -0
  7. package/dist/avatars.d.ts +130 -0
  8. package/dist/avatars.js +531 -0
  9. package/dist/avatars.js.map +1 -0
  10. package/dist/cx-Bn-0YiVq.js +10 -0
  11. package/dist/cx-Bn-0YiVq.js.map +1 -0
  12. package/dist/flags/1x1/ad-BLe4yr61.js +6 -0
  13. package/dist/flags/1x1/ae-DWj10f_-.js +6 -0
  14. package/dist/flags/1x1/af-DavbPdY_.js +6 -0
  15. package/dist/flags/1x1/ag-CQgo5awT.js +6 -0
  16. package/dist/flags/1x1/ai-i1e-tRb-.js +6 -0
  17. package/dist/flags/1x1/al-BUFgcw5S.js +6 -0
  18. package/dist/flags/1x1/am-NU473ju2.js +6 -0
  19. package/dist/flags/1x1/ao-B-pKKU_Z.js +6 -0
  20. package/dist/flags/1x1/aq-BheU24WX.js +6 -0
  21. package/dist/flags/1x1/ar-DNwRSqYh.js +6 -0
  22. package/dist/flags/1x1/arab-88qGIYv0.js +6 -0
  23. package/dist/flags/1x1/as-CGCC07cj.js +6 -0
  24. package/dist/flags/1x1/asean-DdlmT25h.js +6 -0
  25. package/dist/flags/1x1/at-BEu8eDs7.js +6 -0
  26. package/dist/flags/1x1/au-C5Xq8bGD.js +6 -0
  27. package/dist/flags/1x1/aw-CB9G0R84.js +6 -0
  28. package/dist/flags/1x1/ax-Buob1nIg.js +6 -0
  29. package/dist/flags/1x1/az-CcVicXqN.js +6 -0
  30. package/dist/flags/1x1/ba-Cxm2rPWt.js +6 -0
  31. package/dist/flags/1x1/bb-CelcvA2P.js +6 -0
  32. package/dist/flags/1x1/bd-CZOnB2bt.js +6 -0
  33. package/dist/flags/1x1/be-BeSuVKmy.js +6 -0
  34. package/dist/flags/1x1/bf-DCR3ADbo.js +6 -0
  35. package/dist/flags/1x1/bg-DT2du0bc.js +6 -0
  36. package/dist/flags/1x1/bh-C20nQ3k2.js +6 -0
  37. package/dist/flags/1x1/bi-DV69kx68.js +6 -0
  38. package/dist/flags/1x1/bj-Cd_6yaxw.js +6 -0
  39. package/dist/flags/1x1/bl-TaG2WuKM.js +6 -0
  40. package/dist/flags/1x1/bm-Blnd9QyE.js +6 -0
  41. package/dist/flags/1x1/bn-rjF94qbn.js +6 -0
  42. package/dist/flags/1x1/bo-DDdGwBdI.js +6 -0
  43. package/dist/flags/1x1/bq-B5WRxpfU.js +6 -0
  44. package/dist/flags/1x1/br-bpueSDua.js +6 -0
  45. package/dist/flags/1x1/bs-CEEd020S.js +6 -0
  46. package/dist/flags/1x1/bt-JCokd5Ri.js +6 -0
  47. package/dist/flags/1x1/bv-VkQe2kr4.js +6 -0
  48. package/dist/flags/1x1/bw-FyQwptO9.js +6 -0
  49. package/dist/flags/1x1/by-D-0OPUI_.js +6 -0
  50. package/dist/flags/1x1/bz-R83MH-fy.js +6 -0
  51. package/dist/flags/1x1/ca-CmGq-ESK.js +6 -0
  52. package/dist/flags/1x1/cc-BqKVdIBU.js +6 -0
  53. package/dist/flags/1x1/cd-OeN90lUp.js +6 -0
  54. package/dist/flags/1x1/cefta-DoN3C1FP.js +6 -0
  55. package/dist/flags/1x1/cf-c_IWvoMt.js +6 -0
  56. package/dist/flags/1x1/cg-DB6A28kr.js +6 -0
  57. package/dist/flags/1x1/ch-BoUeVhR3.js +6 -0
  58. package/dist/flags/1x1/ci-DO7X3pCD.js +6 -0
  59. package/dist/flags/1x1/ck-DbhiimVc.js +6 -0
  60. package/dist/flags/1x1/cl-D18TvDyU.js +6 -0
  61. package/dist/flags/1x1/cm-BkkRG54s.js +6 -0
  62. package/dist/flags/1x1/cn-DXW0Zc-C.js +6 -0
  63. package/dist/flags/1x1/co-Cy9H7OxQ.js +6 -0
  64. package/dist/flags/1x1/cp-OJP4OSI_.js +6 -0
  65. package/dist/flags/1x1/cr-DjqO_sqT.js +6 -0
  66. package/dist/flags/1x1/cu-DHMTbgXc.js +6 -0
  67. package/dist/flags/1x1/cv-DTvqMV9p.js +6 -0
  68. package/dist/flags/1x1/cw-0DPof2UJ.js +6 -0
  69. package/dist/flags/1x1/cx-PKvWuYvr.js +6 -0
  70. package/dist/flags/1x1/cy-DNqBiZyI.js +6 -0
  71. package/dist/flags/1x1/cz-yXbpq9dW.js +6 -0
  72. package/dist/flags/1x1/de-C8riQ_D-.js +6 -0
  73. package/dist/flags/1x1/dg-Bq-Ud7da.js +6 -0
  74. package/dist/flags/1x1/dj-ND_VVEYo.js +6 -0
  75. package/dist/flags/1x1/dk-Bomd7YHA.js +6 -0
  76. package/dist/flags/1x1/dm-qszJkHRv.js +6 -0
  77. package/dist/flags/1x1/do-Bv0isgHk.js +6 -0
  78. package/dist/flags/1x1/dz-CUA3AvZL.js +6 -0
  79. package/dist/flags/1x1/eac-Ba3w7XxY.js +6 -0
  80. package/dist/flags/1x1/ec-CcdQ1fLf.js +6 -0
  81. package/dist/flags/1x1/ee-B-9UyJkI.js +6 -0
  82. package/dist/flags/1x1/eg-CZg9XtnS.js +6 -0
  83. package/dist/flags/1x1/eh-COr5bQZC.js +6 -0
  84. package/dist/flags/1x1/er-CYCgUEjl.js +6 -0
  85. package/dist/flags/1x1/es-CZgLUvTm.js +6 -0
  86. package/dist/flags/1x1/es-ct-Bx84VtrH.js +6 -0
  87. package/dist/flags/1x1/es-ga-CYZIqZNg.js +6 -0
  88. package/dist/flags/1x1/es-pv-D_xA9FJj.js +6 -0
  89. package/dist/flags/1x1/et-7yKufKNW.js +6 -0
  90. package/dist/flags/1x1/eu-CkGTFKZG.js +6 -0
  91. package/dist/flags/1x1/fi-PhiA7TSZ.js +6 -0
  92. package/dist/flags/1x1/fj-D5HT3L1Q.js +6 -0
  93. package/dist/flags/1x1/fk-D1r8PWRL.js +6 -0
  94. package/dist/flags/1x1/fm-DzWMFpux.js +6 -0
  95. package/dist/flags/1x1/fo-Bu22hwIJ.js +6 -0
  96. package/dist/flags/1x1/fr-DSs3a2MO.js +6 -0
  97. package/dist/flags/1x1/ga-DYufGjqh.js +6 -0
  98. package/dist/flags/1x1/gb-DQrKw26J.js +6 -0
  99. package/dist/flags/1x1/gb-eng-CLG2z7wM.js +6 -0
  100. package/dist/flags/1x1/gb-nir-BBzZa87S.js +6 -0
  101. package/dist/flags/1x1/gb-sct-C0keZmXy.js +6 -0
  102. package/dist/flags/1x1/gb-wls-D2caXmYS.js +6 -0
  103. package/dist/flags/1x1/gd-B-wv-GsF.js +6 -0
  104. package/dist/flags/1x1/ge-CIgkNaAi.js +6 -0
  105. package/dist/flags/1x1/gf-CcFRsGEB.js +6 -0
  106. package/dist/flags/1x1/gg-CRVhi7RS.js +6 -0
  107. package/dist/flags/1x1/gh-ZIIas1gx.js +6 -0
  108. package/dist/flags/1x1/gi-aNP9A0DW.js +6 -0
  109. package/dist/flags/1x1/gl-BzgDzfSn.js +6 -0
  110. package/dist/flags/1x1/gm-D8gqU6yg.js +6 -0
  111. package/dist/flags/1x1/gn-CUq13_pA.js +6 -0
  112. package/dist/flags/1x1/gp-CccqVUWo.js +6 -0
  113. package/dist/flags/1x1/gq-NOK-yjB9.js +6 -0
  114. package/dist/flags/1x1/gr-BuFzOeZR.js +6 -0
  115. package/dist/flags/1x1/gs-BTz9XWE1.js +6 -0
  116. package/dist/flags/1x1/gt-9_0vebb7.js +6 -0
  117. package/dist/flags/1x1/gu-BYwEbw67.js +6 -0
  118. package/dist/flags/1x1/gw-C6MASvA4.js +6 -0
  119. package/dist/flags/1x1/gy-CVJynGMI.js +6 -0
  120. package/dist/flags/1x1/hk-BK85zxRX.js +6 -0
  121. package/dist/flags/1x1/hm-C2DNwCnS.js +6 -0
  122. package/dist/flags/1x1/hn-CovnHmxi.js +6 -0
  123. package/dist/flags/1x1/hr-Xiutii4P.js +6 -0
  124. package/dist/flags/1x1/ht-BW7wprT-.js +6 -0
  125. package/dist/flags/1x1/hu-CYCcM7tq.js +6 -0
  126. package/dist/flags/1x1/ic-D4t41hrd.js +6 -0
  127. package/dist/flags/1x1/id-Ch177K4Q.js +6 -0
  128. package/dist/flags/1x1/ie-jdf-in47.js +6 -0
  129. package/dist/flags/1x1/il-CWEqhQTm.js +6 -0
  130. package/dist/flags/1x1/im-DpubIP14.js +6 -0
  131. package/dist/flags/1x1/in-G0wDC92n.js +6 -0
  132. package/dist/flags/1x1/io-DBkbcbKG.js +6 -0
  133. package/dist/flags/1x1/iq-B0897GsN.js +6 -0
  134. package/dist/flags/1x1/ir-Decsonvj.js +6 -0
  135. package/dist/flags/1x1/is-yn_GGMix.js +6 -0
  136. package/dist/flags/1x1/it-CzpFdgc2.js +6 -0
  137. package/dist/flags/1x1/je-DXwHIhBp.js +6 -0
  138. package/dist/flags/1x1/jm-ByvGfY6R.js +6 -0
  139. package/dist/flags/1x1/jo-Bikg0_s4.js +6 -0
  140. package/dist/flags/1x1/jp-BJaExao-.js +6 -0
  141. package/dist/flags/1x1/ke-KCANUoB9.js +6 -0
  142. package/dist/flags/1x1/kg-DpLGJA_E.js +6 -0
  143. package/dist/flags/1x1/kh-B1cMsgzP.js +6 -0
  144. package/dist/flags/1x1/ki-CyD2gdcT.js +6 -0
  145. package/dist/flags/1x1/km-53bL6Y8i.js +6 -0
  146. package/dist/flags/1x1/kn-BEyi33Ey.js +6 -0
  147. package/dist/flags/1x1/kp-YyqYNIfr.js +6 -0
  148. package/dist/flags/1x1/kr-C6fy0Xrq.js +6 -0
  149. package/dist/flags/1x1/kw-CTe0WExz.js +6 -0
  150. package/dist/flags/1x1/ky-FVDALRC1.js +6 -0
  151. package/dist/flags/1x1/kz-ByrgvZkC.js +6 -0
  152. package/dist/flags/1x1/la-xaxFHwKj.js +6 -0
  153. package/dist/flags/1x1/lb-CVRf8x3C.js +6 -0
  154. package/dist/flags/1x1/lc-DggZ-MAM.js +6 -0
  155. package/dist/flags/1x1/li-BjKARW5X.js +6 -0
  156. package/dist/flags/1x1/lk-DKp1FG25.js +6 -0
  157. package/dist/flags/1x1/lr-CRdeQLZp.js +6 -0
  158. package/dist/flags/1x1/ls-DsmPxnLE.js +6 -0
  159. package/dist/flags/1x1/lt-ppTAzYgZ.js +6 -0
  160. package/dist/flags/1x1/lu-Uh-VRqcJ.js +6 -0
  161. package/dist/flags/1x1/lv-QLDxm2XB.js +6 -0
  162. package/dist/flags/1x1/ly-CALXfGtF.js +6 -0
  163. package/dist/flags/1x1/ma-BUv6slh8.js +6 -0
  164. package/dist/flags/1x1/mc-DbRaSw7Z.js +6 -0
  165. package/dist/flags/1x1/md-BAbGk1u-.js +6 -0
  166. package/dist/flags/1x1/me-Cn9otM5-.js +6 -0
  167. package/dist/flags/1x1/mf-VN2Hxfy5.js +6 -0
  168. package/dist/flags/1x1/mg-DMFg3gWK.js +6 -0
  169. package/dist/flags/1x1/mh-mLFhHPfv.js +6 -0
  170. package/dist/flags/1x1/mk-BYU_KcQn.js +6 -0
  171. package/dist/flags/1x1/ml-CxUloBPA.js +6 -0
  172. package/dist/flags/1x1/mm-B1GvkWeA.js +6 -0
  173. package/dist/flags/1x1/mn-CGxIncf0.js +6 -0
  174. package/dist/flags/1x1/mo-mVFWphva.js +6 -0
  175. package/dist/flags/1x1/mp-n86_oaVp.js +6 -0
  176. package/dist/flags/1x1/mq-BKYfdZ6x.js +6 -0
  177. package/dist/flags/1x1/mr-fpb5SDjH.js +6 -0
  178. package/dist/flags/1x1/ms-DJ2RoBuC.js +6 -0
  179. package/dist/flags/1x1/mt-DRCD8PbR.js +6 -0
  180. package/dist/flags/1x1/mu-DIwBWq5I.js +6 -0
  181. package/dist/flags/1x1/mv-BMA6eE3m.js +6 -0
  182. package/dist/flags/1x1/mw-Ebs1mO8O.js +6 -0
  183. package/dist/flags/1x1/mx-BH8Za6dt.js +6 -0
  184. package/dist/flags/1x1/my-fd4tKRXC.js +6 -0
  185. package/dist/flags/1x1/mz-44mCvMzP.js +6 -0
  186. package/dist/flags/1x1/na-Bc17qIOR.js +6 -0
  187. package/dist/flags/1x1/nc-BEiZyZM6.js +6 -0
  188. package/dist/flags/1x1/ne-3wSQFOSk.js +6 -0
  189. package/dist/flags/1x1/nf-BBG5Bp7Y.js +6 -0
  190. package/dist/flags/1x1/ng-BQyiUScm.js +6 -0
  191. package/dist/flags/1x1/ni-CZP_RJzQ.js +6 -0
  192. package/dist/flags/1x1/nl-Dod3207s.js +6 -0
  193. package/dist/flags/1x1/no-DDekGkfu.js +6 -0
  194. package/dist/flags/1x1/np-DMopwWij.js +6 -0
  195. package/dist/flags/1x1/nr-nDPYj76A.js +6 -0
  196. package/dist/flags/1x1/nu-DEw3csOK.js +6 -0
  197. package/dist/flags/1x1/nz-CxrPsIb1.js +6 -0
  198. package/dist/flags/1x1/om-CyVvqtLi.js +6 -0
  199. package/dist/flags/1x1/pa-BO-gt67V.js +6 -0
  200. package/dist/flags/1x1/pc-CBmqnctk.js +6 -0
  201. package/dist/flags/1x1/pe-B9LhqS9S.js +6 -0
  202. package/dist/flags/1x1/pf-hjhdLHA3.js +6 -0
  203. package/dist/flags/1x1/pg-C-wKaAj0.js +6 -0
  204. package/dist/flags/1x1/ph-C9JTsx92.js +6 -0
  205. package/dist/flags/1x1/pk-DrN39bQT.js +6 -0
  206. package/dist/flags/1x1/pl-CrEpBNNE.js +6 -0
  207. package/dist/flags/1x1/pm-Btdxx1lW.js +6 -0
  208. package/dist/flags/1x1/pn-DzqRGCQA.js +6 -0
  209. package/dist/flags/1x1/pr-U6tnqx1t.js +6 -0
  210. package/dist/flags/1x1/ps-DHIlPg16.js +6 -0
  211. package/dist/flags/1x1/pt-Cj6X3TbL.js +6 -0
  212. package/dist/flags/1x1/pw-UpjwxQ0z.js +6 -0
  213. package/dist/flags/1x1/py-Cn2qwuG7.js +6 -0
  214. package/dist/flags/1x1/qa-Biuy4UWu.js +6 -0
  215. package/dist/flags/1x1/re-B25_JOkL.js +6 -0
  216. package/dist/flags/1x1/ro-B9VO8uV5.js +6 -0
  217. package/dist/flags/1x1/rs-CS2zrjg3.js +6 -0
  218. package/dist/flags/1x1/ru-7-OkapKW.js +6 -0
  219. package/dist/flags/1x1/rw-COm3RNUj.js +6 -0
  220. package/dist/flags/1x1/sa-DhosoqBh.js +6 -0
  221. package/dist/flags/1x1/sb-dEOdp0-U.js +6 -0
  222. package/dist/flags/1x1/sc-DH5lZ-X1.js +6 -0
  223. package/dist/flags/1x1/sd-CjLepWrS.js +6 -0
  224. package/dist/flags/1x1/se-fjKCg3uq.js +6 -0
  225. package/dist/flags/1x1/sg-CvvPJuek.js +6 -0
  226. package/dist/flags/1x1/sh-BACbCuQV.js +6 -0
  227. package/dist/flags/1x1/sh-ac-B8mGy82J.js +6 -0
  228. package/dist/flags/1x1/sh-hl-CdNllvu3.js +6 -0
  229. package/dist/flags/1x1/sh-ta-BpzAidVW.js +6 -0
  230. package/dist/flags/1x1/si-C9wDaOie.js +6 -0
  231. package/dist/flags/1x1/sj-DmQ-l-GG.js +6 -0
  232. package/dist/flags/1x1/sk-csj-UEpd.js +6 -0
  233. package/dist/flags/1x1/sl-66khImvm.js +6 -0
  234. package/dist/flags/1x1/sm-Dw-fwny-.js +6 -0
  235. package/dist/flags/1x1/sn-DFOPTJuS.js +6 -0
  236. package/dist/flags/1x1/so-NmeQT-wa.js +6 -0
  237. package/dist/flags/1x1/sr-DY7R8R1H.js +6 -0
  238. package/dist/flags/1x1/ss-BRaIhTBI.js +6 -0
  239. package/dist/flags/1x1/st-DbWpIgL_.js +6 -0
  240. package/dist/flags/1x1/sv-CCR1P023.js +6 -0
  241. package/dist/flags/1x1/sx-Dqve8sOF.js +6 -0
  242. package/dist/flags/1x1/sy-uUGakD8a.js +6 -0
  243. package/dist/flags/1x1/sz-DnPvNXRi.js +6 -0
  244. package/dist/flags/1x1/tc-sWa0Hka-.js +6 -0
  245. package/dist/flags/1x1/td-BH8NEKMZ.js +6 -0
  246. package/dist/flags/1x1/tf-DGr1cSmp.js +6 -0
  247. package/dist/flags/1x1/tg-CzXZhjV5.js +6 -0
  248. package/dist/flags/1x1/th-Bd7yXeo8.js +6 -0
  249. package/dist/flags/1x1/tj-BXE2hU6d.js +6 -0
  250. package/dist/flags/1x1/tk-BvAJwB5n.js +6 -0
  251. package/dist/flags/1x1/tl-Cf7eXtjJ.js +6 -0
  252. package/dist/flags/1x1/tm-C8XHem7_.js +6 -0
  253. package/dist/flags/1x1/tn-A574RUnc.js +6 -0
  254. package/dist/flags/1x1/to-rZfgCO86.js +6 -0
  255. package/dist/flags/1x1/tr-DRqxGnLc.js +6 -0
  256. package/dist/flags/1x1/tt-BciLQvVK.js +6 -0
  257. package/dist/flags/1x1/tv-DLgi8rdd.js +6 -0
  258. package/dist/flags/1x1/tw-BcCRKYqW.js +6 -0
  259. package/dist/flags/1x1/tz-BjDpP6SA.js +6 -0
  260. package/dist/flags/1x1/ua-DPOXiMzw.js +6 -0
  261. package/dist/flags/1x1/ug-C0vrxL4F.js +6 -0
  262. package/dist/flags/1x1/um-DqpOJgNl.js +6 -0
  263. package/dist/flags/1x1/un-Bk0wLUvy.js +6 -0
  264. package/dist/flags/1x1/us-f-Xdfkne.js +6 -0
  265. package/dist/flags/1x1/uy-BrUGNLWK.js +6 -0
  266. package/dist/flags/1x1/uz-BKDQBNxr.js +6 -0
  267. package/dist/flags/1x1/va-BderRROs.js +6 -0
  268. package/dist/flags/1x1/vc-DPo9h-3V.js +6 -0
  269. package/dist/flags/1x1/ve-DrDTrDyq.js +6 -0
  270. package/dist/flags/1x1/vg-DxocsseP.js +6 -0
  271. package/dist/flags/1x1/vi-DsQ40wwi.js +6 -0
  272. package/dist/flags/1x1/vn-YEvgXi4o.js +6 -0
  273. package/dist/flags/1x1/vu-Dy0sZ3Ly.js +6 -0
  274. package/dist/flags/1x1/wf-BZfYe7wF.js +6 -0
  275. package/dist/flags/1x1/ws-C4FYzmn6.js +6 -0
  276. package/dist/flags/1x1/xk-DZFilPCh.js +6 -0
  277. package/dist/flags/1x1/xx-0UytpHfL.js +6 -0
  278. package/dist/flags/1x1/ye-CZMZu1ZB.js +6 -0
  279. package/dist/flags/1x1/yt-DBYDbgIm.js +6 -0
  280. package/dist/flags/1x1/za-ClvA8Dny.js +6 -0
  281. package/dist/flags/1x1/zm-D7L0dPCl.js +6 -0
  282. package/dist/flags/1x1/zw-DpCNoBk-.js +6 -0
  283. package/dist/flags/4x3/ad-BwDf_AgT.js +6 -0
  284. package/dist/flags/4x3/ae-KPB0rRvk.js +6 -0
  285. package/dist/flags/4x3/af-CPngQm7Z.js +6 -0
  286. package/dist/flags/4x3/ag-Cvrhc-BK.js +6 -0
  287. package/dist/flags/4x3/ai-Dex-oYnB.js +6 -0
  288. package/dist/flags/4x3/al-C2rnSjJ-.js +6 -0
  289. package/dist/flags/4x3/am-u91DPBsf.js +6 -0
  290. package/dist/flags/4x3/ao-B0AdkYiM.js +6 -0
  291. package/dist/flags/4x3/aq-5iFhwg5i.js +6 -0
  292. package/dist/flags/4x3/ar-BLK5U8Sr.js +6 -0
  293. package/dist/flags/4x3/arab-zVkSqGyE.js +6 -0
  294. package/dist/flags/4x3/as-CgVHGYml.js +6 -0
  295. package/dist/flags/4x3/asean-D0zehsSg.js +6 -0
  296. package/dist/flags/4x3/at-Cge2pfYH.js +6 -0
  297. package/dist/flags/4x3/au-BUHitxZ7.js +6 -0
  298. package/dist/flags/4x3/aw-9FVkX8eg.js +6 -0
  299. package/dist/flags/4x3/ax-BhOsTuXD.js +6 -0
  300. package/dist/flags/4x3/az-_xXDkPBy.js +6 -0
  301. package/dist/flags/4x3/ba-czeMkj9F.js +6 -0
  302. package/dist/flags/4x3/bb-CLWVnfR9.js +6 -0
  303. package/dist/flags/4x3/bd-B-3DhjKL.js +6 -0
  304. package/dist/flags/4x3/be-Bpxb3n8W.js +6 -0
  305. package/dist/flags/4x3/bf-DJ8HJgOv.js +6 -0
  306. package/dist/flags/4x3/bg-CcHaZEiP.js +6 -0
  307. package/dist/flags/4x3/bh-CgYuyQai.js +6 -0
  308. package/dist/flags/4x3/bi-DFDeFqbN.js +6 -0
  309. package/dist/flags/4x3/bj-BJ2Mv3Qn.js +6 -0
  310. package/dist/flags/4x3/bl-49c6xkK_.js +6 -0
  311. package/dist/flags/4x3/bm-DUnGX933.js +6 -0
  312. package/dist/flags/4x3/bn-D5OzuSfC.js +6 -0
  313. package/dist/flags/4x3/bo-h7n1xblU.js +6 -0
  314. package/dist/flags/4x3/bq-kCIKVZCB.js +6 -0
  315. package/dist/flags/4x3/br-CeKOfZ4p.js +6 -0
  316. package/dist/flags/4x3/bs-D-dpb2Wt.js +6 -0
  317. package/dist/flags/4x3/bt-DYguJJqP.js +6 -0
  318. package/dist/flags/4x3/bv-CxfcHUGg.js +6 -0
  319. package/dist/flags/4x3/bw-Dmlo2Xrl.js +6 -0
  320. package/dist/flags/4x3/by-DpJ2tbSJ.js +6 -0
  321. package/dist/flags/4x3/bz-C8KkVEct.js +6 -0
  322. package/dist/flags/4x3/ca-B0vqIN4C.js +6 -0
  323. package/dist/flags/4x3/cc-1AhJzny1.js +6 -0
  324. package/dist/flags/4x3/cd-C15eWPm0.js +6 -0
  325. package/dist/flags/4x3/cefta-T0n99-tg.js +6 -0
  326. package/dist/flags/4x3/cf-B-N0dXk3.js +6 -0
  327. package/dist/flags/4x3/cg-RBObVHlS.js +6 -0
  328. package/dist/flags/4x3/ch-BAwraSMD.js +6 -0
  329. package/dist/flags/4x3/ci-LZ8Apa_f.js +6 -0
  330. package/dist/flags/4x3/ck-DxgfUgaV.js +6 -0
  331. package/dist/flags/4x3/cl-Dn5PmBH_.js +6 -0
  332. package/dist/flags/4x3/cm-DT7ZRDLD.js +6 -0
  333. package/dist/flags/4x3/cn-Uxu_n0TL.js +6 -0
  334. package/dist/flags/4x3/co-DUXgiBfK.js +6 -0
  335. package/dist/flags/4x3/cp-DBFQpzcn.js +6 -0
  336. package/dist/flags/4x3/cr-B3r-jfDb.js +6 -0
  337. package/dist/flags/4x3/cu-C2AkPSKm.js +6 -0
  338. package/dist/flags/4x3/cv-BSCHMcjA.js +6 -0
  339. package/dist/flags/4x3/cw-CTl-jMEj.js +6 -0
  340. package/dist/flags/4x3/cx-Blx2-PJu.js +6 -0
  341. package/dist/flags/4x3/cy-CmfldoYM.js +6 -0
  342. package/dist/flags/4x3/cz-Bc4FVt_z.js +6 -0
  343. package/dist/flags/4x3/de-CwT-mfsC.js +6 -0
  344. package/dist/flags/4x3/dg-CMYWTwG_.js +6 -0
  345. package/dist/flags/4x3/dj-Bog9QII6.js +6 -0
  346. package/dist/flags/4x3/dk-CEB1aRPZ.js +6 -0
  347. package/dist/flags/4x3/dm-idTEOH5b.js +6 -0
  348. package/dist/flags/4x3/do-C-xUzrhA.js +6 -0
  349. package/dist/flags/4x3/dz-B0XT3h3L.js +6 -0
  350. package/dist/flags/4x3/eac-BYyC7gTx.js +6 -0
  351. package/dist/flags/4x3/ec-DHPDQJB4.js +6 -0
  352. package/dist/flags/4x3/ee-YEP7-YiI.js +6 -0
  353. package/dist/flags/4x3/eg-DphZyJ3R.js +6 -0
  354. package/dist/flags/4x3/eh-BMMUn6kT.js +6 -0
  355. package/dist/flags/4x3/er-02p7NzRX.js +6 -0
  356. package/dist/flags/4x3/es-CxCY_HyC.js +6 -0
  357. package/dist/flags/4x3/es-ct-COxgK6gN.js +6 -0
  358. package/dist/flags/4x3/es-ga-YtOQPf2W.js +6 -0
  359. package/dist/flags/4x3/es-pv-BJWGTixJ.js +6 -0
  360. package/dist/flags/4x3/et-C9te-XyE.js +6 -0
  361. package/dist/flags/4x3/eu-D3pBiamG.js +6 -0
  362. package/dist/flags/4x3/fi-p8gKOqu5.js +6 -0
  363. package/dist/flags/4x3/fj-WA6Sj14C.js +6 -0
  364. package/dist/flags/4x3/fk-C3YQpfie.js +6 -0
  365. package/dist/flags/4x3/fm-WlAfSSOy.js +6 -0
  366. package/dist/flags/4x3/fo-CnipJFZB.js +6 -0
  367. package/dist/flags/4x3/fr-wcxjBEM6.js +6 -0
  368. package/dist/flags/4x3/ga-D4QkmEbT.js +6 -0
  369. package/dist/flags/4x3/gb-Iu59IqG4.js +6 -0
  370. package/dist/flags/4x3/gb-eng-J2KeRbF6.js +6 -0
  371. package/dist/flags/4x3/gb-nir-D8v4gixn.js +6 -0
  372. package/dist/flags/4x3/gb-sct-eUMUOmec.js +6 -0
  373. package/dist/flags/4x3/gb-wls-DNa6cGuk.js +6 -0
  374. package/dist/flags/4x3/gd-CcutC5Jv.js +6 -0
  375. package/dist/flags/4x3/ge-BT79hKsn.js +6 -0
  376. package/dist/flags/4x3/gf-C6HTKVwe.js +6 -0
  377. package/dist/flags/4x3/gg-CBz1K2KV.js +6 -0
  378. package/dist/flags/4x3/gh-C_hnux9x.js +6 -0
  379. package/dist/flags/4x3/gi-DwDUY2CR.js +6 -0
  380. package/dist/flags/4x3/gl-ul6S0drK.js +6 -0
  381. package/dist/flags/4x3/gm-C8-_GrOJ.js +6 -0
  382. package/dist/flags/4x3/gn-DpAS4Emu.js +6 -0
  383. package/dist/flags/4x3/gp-v6jMGkOl.js +6 -0
  384. package/dist/flags/4x3/gq-BHcHFt2R.js +6 -0
  385. package/dist/flags/4x3/gr-oAWzdDL5.js +6 -0
  386. package/dist/flags/4x3/gs-Bv3j5ihx.js +6 -0
  387. package/dist/flags/4x3/gt-D58m-PIf.js +6 -0
  388. package/dist/flags/4x3/gu-DA1wyGyA.js +6 -0
  389. package/dist/flags/4x3/gw-C4R5CLxA.js +6 -0
  390. package/dist/flags/4x3/gy-B03XmJhj.js +6 -0
  391. package/dist/flags/4x3/hk-DR5PFCoc.js +6 -0
  392. package/dist/flags/4x3/hm-a3gZlVMF.js +6 -0
  393. package/dist/flags/4x3/hn-DxaVMgH9.js +6 -0
  394. package/dist/flags/4x3/hr-BDsdEZ9G.js +6 -0
  395. package/dist/flags/4x3/ht-DgQNMO2Q.js +6 -0
  396. package/dist/flags/4x3/hu-C2qm-xRb.js +6 -0
  397. package/dist/flags/4x3/ic-D9RMzjWn.js +6 -0
  398. package/dist/flags/4x3/id-DEj8jtC8.js +6 -0
  399. package/dist/flags/4x3/ie-6bydCA7G.js +6 -0
  400. package/dist/flags/4x3/il-D0CMPynd.js +6 -0
  401. package/dist/flags/4x3/im-Bk7Igczt.js +6 -0
  402. package/dist/flags/4x3/in-CSwUkXPH.js +6 -0
  403. package/dist/flags/4x3/io-Dr_xhh5f.js +6 -0
  404. package/dist/flags/4x3/iq-C0Met1sv.js +6 -0
  405. package/dist/flags/4x3/ir-CLPSHIql.js +6 -0
  406. package/dist/flags/4x3/is-D5nGt-6k.js +6 -0
  407. package/dist/flags/4x3/it-B2NNW4yZ.js +6 -0
  408. package/dist/flags/4x3/je-BPuVMtBX.js +6 -0
  409. package/dist/flags/4x3/jm-DFjIgq_Z.js +6 -0
  410. package/dist/flags/4x3/jo-DnWyEAoq.js +6 -0
  411. package/dist/flags/4x3/jp-DaC3ftqV.js +6 -0
  412. package/dist/flags/4x3/ke-DQltk3Nm.js +6 -0
  413. package/dist/flags/4x3/kg-B9wByXjn.js +6 -0
  414. package/dist/flags/4x3/kh-DsD475kI.js +6 -0
  415. package/dist/flags/4x3/ki-BYmKP6AJ.js +6 -0
  416. package/dist/flags/4x3/km-Dj1BRPW5.js +6 -0
  417. package/dist/flags/4x3/kn-DFhgS6Sx.js +6 -0
  418. package/dist/flags/4x3/kp-CeyDf8wh.js +6 -0
  419. package/dist/flags/4x3/kr-DruUFoV6.js +6 -0
  420. package/dist/flags/4x3/kw-xFITUXkK.js +6 -0
  421. package/dist/flags/4x3/ky-CDzTcYQP.js +6 -0
  422. package/dist/flags/4x3/kz-CA-J-BrJ.js +6 -0
  423. package/dist/flags/4x3/la-DFsAJIHb.js +6 -0
  424. package/dist/flags/4x3/lb-Bmhu7qDU.js +6 -0
  425. package/dist/flags/4x3/lc-c1kA4IQi.js +6 -0
  426. package/dist/flags/4x3/li-D7EkWWIr.js +6 -0
  427. package/dist/flags/4x3/lk-DjV8GlBc.js +6 -0
  428. package/dist/flags/4x3/lr-D_nRBy7g.js +6 -0
  429. package/dist/flags/4x3/ls-BQtizfhz.js +6 -0
  430. package/dist/flags/4x3/lt-BtwRhwiF.js +6 -0
  431. package/dist/flags/4x3/lu-BuGEmjGI.js +6 -0
  432. package/dist/flags/4x3/lv-BzSskWH0.js +6 -0
  433. package/dist/flags/4x3/ly-BQOllMQt.js +6 -0
  434. package/dist/flags/4x3/ma-Sdg_SxjA.js +6 -0
  435. package/dist/flags/4x3/mc-EjXwAk3n.js +6 -0
  436. package/dist/flags/4x3/md-Dq3fri60.js +6 -0
  437. package/dist/flags/4x3/me-Czx-10De.js +6 -0
  438. package/dist/flags/4x3/mf-Do15dk7j.js +6 -0
  439. package/dist/flags/4x3/mg-CXajwe-a.js +6 -0
  440. package/dist/flags/4x3/mh-DnobhgT4.js +6 -0
  441. package/dist/flags/4x3/mk-BRiJw8Tt.js +6 -0
  442. package/dist/flags/4x3/ml-aAwTONwn.js +6 -0
  443. package/dist/flags/4x3/mm-C1m5tOBJ.js +6 -0
  444. package/dist/flags/4x3/mn-C9ULzcTg.js +6 -0
  445. package/dist/flags/4x3/mo-DeMiFKJD.js +6 -0
  446. package/dist/flags/4x3/mp-BWLTjTll.js +6 -0
  447. package/dist/flags/4x3/mq-DVS4CJ07.js +6 -0
  448. package/dist/flags/4x3/mr-DGqyf4qY.js +6 -0
  449. package/dist/flags/4x3/ms-rAHNRTea.js +6 -0
  450. package/dist/flags/4x3/mt-Bm7FiwOE.js +6 -0
  451. package/dist/flags/4x3/mu-JFEJCkzB.js +6 -0
  452. package/dist/flags/4x3/mv-BTeEwa1J.js +6 -0
  453. package/dist/flags/4x3/mw-D0tRc77D.js +6 -0
  454. package/dist/flags/4x3/mx-CUaww8P5.js +6 -0
  455. package/dist/flags/4x3/my-DAanXl_d.js +6 -0
  456. package/dist/flags/4x3/mz-BIGM9L2m.js +6 -0
  457. package/dist/flags/4x3/na-B0qW9JE2.js +6 -0
  458. package/dist/flags/4x3/nc-WNgLHyf6.js +6 -0
  459. package/dist/flags/4x3/ne-DidYQTz7.js +6 -0
  460. package/dist/flags/4x3/nf-B72F6aJy.js +6 -0
  461. package/dist/flags/4x3/ng-DvIbB1xq.js +6 -0
  462. package/dist/flags/4x3/ni-BH4HRye2.js +6 -0
  463. package/dist/flags/4x3/nl-B43Plb7G.js +6 -0
  464. package/dist/flags/4x3/no-DcP-jaEB.js +6 -0
  465. package/dist/flags/4x3/np-zDFTSsAD.js +6 -0
  466. package/dist/flags/4x3/nr-Dne6n-U4.js +6 -0
  467. package/dist/flags/4x3/nu-BcXVN0pM.js +6 -0
  468. package/dist/flags/4x3/nz-BXB8x6bx.js +6 -0
  469. package/dist/flags/4x3/om-Dv3qsB7p.js +6 -0
  470. package/dist/flags/4x3/pa-CHIJ1Gj2.js +6 -0
  471. package/dist/flags/4x3/pc-VmqK_LID.js +6 -0
  472. package/dist/flags/4x3/pe-RvGqR0R-.js +6 -0
  473. package/dist/flags/4x3/pf-DRmCnqA_.js +6 -0
  474. package/dist/flags/4x3/pg-Df7s4vFf.js +6 -0
  475. package/dist/flags/4x3/ph-B3B1UTrp.js +6 -0
  476. package/dist/flags/4x3/pk-Dk1ksVx0.js +6 -0
  477. package/dist/flags/4x3/pl-D3tYaKmt.js +6 -0
  478. package/dist/flags/4x3/pm-SV9tklTs.js +6 -0
  479. package/dist/flags/4x3/pn-DQGkKgDr.js +6 -0
  480. package/dist/flags/4x3/pr-BPSfxHTy.js +6 -0
  481. package/dist/flags/4x3/ps-mnWMreGY.js +6 -0
  482. package/dist/flags/4x3/pt-VcneVeGg.js +6 -0
  483. package/dist/flags/4x3/pw-KY-EGmiX.js +6 -0
  484. package/dist/flags/4x3/py-CUyHPIqw.js +6 -0
  485. package/dist/flags/4x3/qa-BoCDaZ5y.js +6 -0
  486. package/dist/flags/4x3/re-DZBesO0V.js +6 -0
  487. package/dist/flags/4x3/ro-B7sesSSL.js +6 -0
  488. package/dist/flags/4x3/rs-B7-UORMV.js +6 -0
  489. package/dist/flags/4x3/ru-CdydeEda.js +6 -0
  490. package/dist/flags/4x3/rw-BITmNEbj.js +6 -0
  491. package/dist/flags/4x3/sa-CEgkBKZZ.js +6 -0
  492. package/dist/flags/4x3/sb-23uLUQKM.js +6 -0
  493. package/dist/flags/4x3/sc-DErwXRuR.js +6 -0
  494. package/dist/flags/4x3/sd-CjpBOzMD.js +6 -0
  495. package/dist/flags/4x3/se-XCNX4vGY.js +6 -0
  496. package/dist/flags/4x3/sg-BtnYiuwt.js +6 -0
  497. package/dist/flags/4x3/sh-6GY_cF-o.js +6 -0
  498. package/dist/flags/4x3/sh-ac-CTk21Nif.js +6 -0
  499. package/dist/flags/4x3/sh-hl-8dH1yqR1.js +6 -0
  500. package/dist/flags/4x3/sh-ta-Cdv7EnHK.js +6 -0
  501. package/dist/flags/4x3/si-Cw1Vyq_K.js +6 -0
  502. package/dist/flags/4x3/sj-CL2an3Th.js +6 -0
  503. package/dist/flags/4x3/sk-C4liHPFg.js +6 -0
  504. package/dist/flags/4x3/sl-BEPk-LAG.js +6 -0
  505. package/dist/flags/4x3/sm-C1vEPLxP.js +6 -0
  506. package/dist/flags/4x3/sn-Covr6Xmh.js +6 -0
  507. package/dist/flags/4x3/so-DDPk0fUE.js +6 -0
  508. package/dist/flags/4x3/sr-MDcgyROR.js +6 -0
  509. package/dist/flags/4x3/ss-Dy5O7Lgr.js +6 -0
  510. package/dist/flags/4x3/st-EMIr_lQj.js +6 -0
  511. package/dist/flags/4x3/sv-uTqJibDY.js +6 -0
  512. package/dist/flags/4x3/sx-CgbBHNON.js +6 -0
  513. package/dist/flags/4x3/sy-C4aYR08W.js +6 -0
  514. package/dist/flags/4x3/sz-BAgMx7HS.js +6 -0
  515. package/dist/flags/4x3/tc-DMg2Jb3V.js +6 -0
  516. package/dist/flags/4x3/td-BrA1SxCq.js +6 -0
  517. package/dist/flags/4x3/tf-DoYbh5AE.js +6 -0
  518. package/dist/flags/4x3/tg-CMdw-T1t.js +6 -0
  519. package/dist/flags/4x3/th-B8VvXk2o.js +6 -0
  520. package/dist/flags/4x3/tj-9RifD4z9.js +6 -0
  521. package/dist/flags/4x3/tk-D332FDkf.js +6 -0
  522. package/dist/flags/4x3/tl-DepW4rFc.js +6 -0
  523. package/dist/flags/4x3/tm-DlPsOPJl.js +6 -0
  524. package/dist/flags/4x3/tn-_n6aSOVC.js +6 -0
  525. package/dist/flags/4x3/to-BjHOduFR.js +6 -0
  526. package/dist/flags/4x3/tr-D8FSsqzD.js +6 -0
  527. package/dist/flags/4x3/tt-DF_MyPwW.js +6 -0
  528. package/dist/flags/4x3/tv-CaZzLQ4T.js +6 -0
  529. package/dist/flags/4x3/tw-DwoJdato.js +6 -0
  530. package/dist/flags/4x3/tz-Cwgfqcan.js +6 -0
  531. package/dist/flags/4x3/ua-DczPl-DK.js +6 -0
  532. package/dist/flags/4x3/ug-Bhd5tzWZ.js +6 -0
  533. package/dist/flags/4x3/um-xZ3EHJTJ.js +6 -0
  534. package/dist/flags/4x3/un-DW3M9Rfg.js +6 -0
  535. package/dist/flags/4x3/us-BZHTCCSU.js +6 -0
  536. package/dist/flags/4x3/uy-DkzWeMZ_.js +6 -0
  537. package/dist/flags/4x3/uz-CO7BpRjt.js +6 -0
  538. package/dist/flags/4x3/va-CuzPfqQ5.js +6 -0
  539. package/dist/flags/4x3/vc-Dvt-xnVp.js +6 -0
  540. package/dist/flags/4x3/ve-DUN0cG2f.js +6 -0
  541. package/dist/flags/4x3/vg-BnMCm3Lp.js +6 -0
  542. package/dist/flags/4x3/vi-a5qpfbwf.js +6 -0
  543. package/dist/flags/4x3/vn-Mfo0Etd-.js +6 -0
  544. package/dist/flags/4x3/vu-CMXE67-m.js +6 -0
  545. package/dist/flags/4x3/wf-C2pOdB7O.js +6 -0
  546. package/dist/flags/4x3/ws-UNuo3E3p.js +6 -0
  547. package/dist/flags/4x3/xk-CyeCbLw7.js +6 -0
  548. package/dist/flags/4x3/xx-X7wcWWS4.js +6 -0
  549. package/dist/flags/4x3/ye-BGZWYDat.js +6 -0
  550. package/dist/flags/4x3/yt-zZ_nlbyQ.js +6 -0
  551. package/dist/flags/4x3/za-T6vuGNwj.js +6 -0
  552. package/dist/flags/4x3/zm-BbWQxaas.js +6 -0
  553. package/dist/flags/4x3/zw-CJUOj-vi.js +6 -0
  554. package/dist/flags.d.ts +50 -0
  555. package/dist/flags.js +999 -0
  556. package/dist/flags.js.map +1 -0
  557. package/dist/flow.css +8648 -0
  558. package/dist/flow.d.ts +6452 -0
  559. package/dist/flow.js +29982 -0
  560. package/dist/flow.js.map +1 -0
  561. package/dist/index-C3WAwKdm.d.ts +6363 -0
  562. package/dist/index.d.ts +4 -0
  563. package/dist/index.js +4 -0
  564. package/dist/src-Ds9ArSaP.js +20940 -0
  565. package/dist/src-Ds9ArSaP.js.map +1 -0
  566. package/dist/styles.css +23945 -0
  567. package/package.json +191 -0
@@ -0,0 +1,531 @@
1
+ "use client";
2
+ import { n as devWarning, t as Avatar } from "./Avatar-P14MVkK1.js";
3
+ import { useId, useMemo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { oklchToRgb, presets, printThemePresets, resolveTheme, rgbToOklch, toHex } from "@datatechsolutions/tympan-tokens";
6
+ import { createAvatar } from "@dicebear/core";
7
+ //#region src/avatars/styles.ts
8
+ /** Artwork licences that need no attribution in the UI and allow any use. */
9
+ const ALLOWED_AVATAR_LICENSES = ["CC0 1.0", "MIT"];
10
+ const ALLOWED_AVATAR_STYLES = [
11
+ {
12
+ package: "@dicebear/glass",
13
+ title: "Glass",
14
+ designer: "DiceBear",
15
+ source: "https://www.dicebear.com",
16
+ designLicense: "CC0 1.0",
17
+ codeLicense: "MIT",
18
+ subject: "abstract"
19
+ },
20
+ {
21
+ package: "@dicebear/icons",
22
+ title: "Bootstrap Icons",
23
+ designer: "The Bootstrap Authors",
24
+ source: "https://github.com/twbs/icons",
25
+ designLicense: "MIT",
26
+ codeLicense: "MIT",
27
+ subject: "abstract"
28
+ },
29
+ {
30
+ package: "@dicebear/identicon",
31
+ title: "Identicon",
32
+ designer: "DiceBear",
33
+ source: "https://www.dicebear.com",
34
+ designLicense: "CC0 1.0",
35
+ codeLicense: "MIT",
36
+ subject: "abstract"
37
+ },
38
+ {
39
+ package: "@dicebear/initials",
40
+ title: "Initials",
41
+ designer: "DiceBear",
42
+ source: "https://github.com/dicebear/dicebear",
43
+ designLicense: "CC0 1.0",
44
+ codeLicense: "MIT",
45
+ subject: "text"
46
+ },
47
+ {
48
+ package: "@dicebear/lorelei",
49
+ title: "Lorelei",
50
+ designer: "Lisa Wischofsky",
51
+ source: "https://www.figma.com/community/file/1198749693280469639",
52
+ designLicense: "CC0 1.0",
53
+ codeLicense: "MIT",
54
+ subject: "figure"
55
+ },
56
+ {
57
+ package: "@dicebear/lorelei-neutral",
58
+ title: "Lorelei Neutral",
59
+ designer: "Lisa Wischofsky",
60
+ source: "https://www.figma.com/community/file/1198749693280469639",
61
+ designLicense: "CC0 1.0",
62
+ codeLicense: "MIT",
63
+ subject: "figure"
64
+ },
65
+ {
66
+ package: "@dicebear/notionists",
67
+ title: "Notionists",
68
+ designer: "Zoish",
69
+ source: "https://heyzoish.gumroad.com/l/notionists",
70
+ designLicense: "CC0 1.0",
71
+ codeLicense: "MIT",
72
+ subject: "figure"
73
+ },
74
+ {
75
+ package: "@dicebear/notionists-neutral",
76
+ title: "Notionists",
77
+ designer: "Zoish",
78
+ source: "https://heyzoish.gumroad.com/l/notionists",
79
+ designLicense: "CC0 1.0",
80
+ codeLicense: "MIT",
81
+ subject: "figure"
82
+ },
83
+ {
84
+ package: "@dicebear/open-peeps",
85
+ title: "Open Peeps",
86
+ designer: "Pablo Stanley",
87
+ source: "https://www.openpeeps.com/",
88
+ designLicense: "CC0 1.0",
89
+ codeLicense: "MIT",
90
+ subject: "figure"
91
+ },
92
+ {
93
+ package: "@dicebear/pixel-art",
94
+ title: "Pixel Art",
95
+ designer: "DiceBear",
96
+ source: "https://www.figma.com/community/file/1198754108850888330",
97
+ designLicense: "CC0 1.0",
98
+ codeLicense: "MIT",
99
+ subject: "figure"
100
+ },
101
+ {
102
+ package: "@dicebear/pixel-art-neutral",
103
+ title: "Pixel Art Neutral",
104
+ designer: "DiceBear",
105
+ source: "https://www.figma.com/community/file/1198754108850888330",
106
+ designLicense: "CC0 1.0",
107
+ codeLicense: "MIT",
108
+ subject: "figure"
109
+ },
110
+ {
111
+ package: "@dicebear/rings",
112
+ title: "Rings",
113
+ designer: "DiceBear",
114
+ source: "https://www.dicebear.com",
115
+ designLicense: "CC0 1.0",
116
+ codeLicense: "MIT",
117
+ subject: "abstract"
118
+ },
119
+ {
120
+ package: "@dicebear/shapes",
121
+ title: "Shapes",
122
+ designer: "DiceBear",
123
+ source: "https://www.dicebear.com",
124
+ designLicense: "CC0 1.0",
125
+ codeLicense: "MIT",
126
+ subject: "abstract"
127
+ },
128
+ {
129
+ package: "@dicebear/thumbs",
130
+ title: "Thumbs",
131
+ designer: "DiceBear",
132
+ source: "https://www.dicebear.com",
133
+ designLicense: "CC0 1.0",
134
+ codeLicense: "MIT",
135
+ subject: "figure"
136
+ }
137
+ ];
138
+ const CC_BY = "CC BY 4.0 requires visible attribution wherever the artwork is shown.";
139
+ const CUSTOM = "Custom \"free for personal and commercial use\" terms: not an open licence, no redistribution grant.";
140
+ /** DiceBear 9 styles left out, and why. Importing any of them fails `check:provenance`. */
141
+ const EXCLUDED_AVATAR_STYLES = [
142
+ {
143
+ package: "@dicebear/adventurer",
144
+ designer: "Lisa Wischofsky",
145
+ designLicense: "CC BY 4.0",
146
+ reason: CC_BY
147
+ },
148
+ {
149
+ package: "@dicebear/adventurer-neutral",
150
+ designer: "Lisa Wischofsky",
151
+ designLicense: "CC BY 4.0",
152
+ reason: CC_BY
153
+ },
154
+ {
155
+ package: "@dicebear/avataaars",
156
+ designer: "Pablo Stanley",
157
+ designLicense: "Free for personal and commercial use",
158
+ reason: CUSTOM
159
+ },
160
+ {
161
+ package: "@dicebear/avataaars-neutral",
162
+ designer: "Pablo Stanley",
163
+ designLicense: "Free for personal and commercial use",
164
+ reason: CUSTOM
165
+ },
166
+ {
167
+ package: "@dicebear/big-ears",
168
+ designer: "The Visual Team",
169
+ designLicense: "CC BY 4.0",
170
+ reason: CC_BY
171
+ },
172
+ {
173
+ package: "@dicebear/big-ears-neutral",
174
+ designer: "The Visual Team",
175
+ designLicense: "CC BY 4.0",
176
+ reason: CC_BY
177
+ },
178
+ {
179
+ package: "@dicebear/big-smile",
180
+ designer: "Ashley Seo",
181
+ designLicense: "CC BY 4.0",
182
+ reason: CC_BY
183
+ },
184
+ {
185
+ package: "@dicebear/bottts",
186
+ designer: "Pablo Stanley",
187
+ designLicense: "Free for personal and commercial use",
188
+ reason: CUSTOM
189
+ },
190
+ {
191
+ package: "@dicebear/bottts-neutral",
192
+ designer: "Pablo Stanley",
193
+ designLicense: "Free for personal and commercial use",
194
+ reason: CUSTOM
195
+ },
196
+ {
197
+ package: "@dicebear/croodles",
198
+ designer: "vijay verma",
199
+ designLicense: "CC BY 4.0",
200
+ reason: CC_BY
201
+ },
202
+ {
203
+ package: "@dicebear/croodles-neutral",
204
+ designer: "vijay verma",
205
+ designLicense: "CC BY 4.0",
206
+ reason: CC_BY
207
+ },
208
+ {
209
+ package: "@dicebear/dylan",
210
+ designer: "Natalia Spivak",
211
+ designLicense: "CC BY 4.0",
212
+ reason: CC_BY
213
+ },
214
+ {
215
+ package: "@dicebear/fun-emoji",
216
+ designer: "Davis Uche",
217
+ designLicense: "CC BY 4.0",
218
+ reason: CC_BY
219
+ },
220
+ {
221
+ package: "@dicebear/micah",
222
+ designer: "Micah Lanier",
223
+ designLicense: "CC BY 4.0",
224
+ reason: CC_BY
225
+ },
226
+ {
227
+ package: "@dicebear/miniavs",
228
+ designer: "Webpixels",
229
+ designLicense: "CC BY 4.0",
230
+ reason: CC_BY
231
+ },
232
+ {
233
+ package: "@dicebear/personas",
234
+ designer: "Draftbit",
235
+ designLicense: "CC BY 4.0",
236
+ reason: CC_BY
237
+ },
238
+ {
239
+ package: "@dicebear/toon-head",
240
+ designer: "Johan Melin",
241
+ designLicense: "CC BY 4.0",
242
+ reason: CC_BY
243
+ },
244
+ {
245
+ package: "@dicebear/collection",
246
+ designer: "(all of the above)",
247
+ designLicense: "mixed",
248
+ reason: "Re-exports every style, including the excluded ones."
249
+ }
250
+ ];
251
+ //#endregion
252
+ //#region src/avatars/avatarSvg.ts
253
+ /**
254
+ * Colour slots the styles draw with: soft backgrounds (follow the mode), ink
255
+ * shapes, solid fills that carry white artwork, and light paper behind the
256
+ * black line art of figure styles (light in both modes, so faces stay legible).
257
+ */
258
+ const AVATAR_SLOTS = [
259
+ "soft-1",
260
+ "soft-2",
261
+ "soft-3",
262
+ "ink-1",
263
+ "ink-2",
264
+ "ink-3",
265
+ "solid-1",
266
+ "solid-2",
267
+ "solid-3",
268
+ "paper-1",
269
+ "paper-2",
270
+ "paper-3"
271
+ ];
272
+ /** Thrown for a style outside the licence allow-list, or a people-only style drawn for an agent. */
273
+ var AvatarStyleError = class extends Error {
274
+ name = "AvatarStyleError";
275
+ };
276
+ const SENTINEL = {
277
+ "soft-1": "fe01a1",
278
+ "soft-2": "fe01a2",
279
+ "soft-3": "fe01a3",
280
+ "ink-1": "fe01b1",
281
+ "ink-2": "fe01b2",
282
+ "ink-3": "fe01b3",
283
+ "solid-1": "fe01c1",
284
+ "solid-2": "fe01c2",
285
+ "solid-3": "fe01c3",
286
+ "paper-1": "fe01d1",
287
+ "paper-2": "fe01d2",
288
+ "paper-3": "fe01d3"
289
+ };
290
+ const s = (...slots) => slots.map((slot) => SENTINEL[slot]);
291
+ const SOFT = s("soft-1", "soft-2", "soft-3");
292
+ const INK = s("ink-1", "ink-2", "ink-3");
293
+ const SOLID = s("solid-1", "solid-2", "solid-3");
294
+ const PAPER = s("paper-1", "paper-2", "paper-3");
295
+ /**
296
+ * Which DiceBear colour options each style gets. Figure styles only get a
297
+ * background: skin, hair and eye colours stay the artist's, never the brand.
298
+ */
299
+ const COLOR_OPTIONS = {
300
+ Glass: { backgroundColor: SOLID },
301
+ "Bootstrap Icons": { backgroundColor: SOLID },
302
+ Identicon: {
303
+ backgroundColor: s("soft-1", "soft-3"),
304
+ rowColor: INK
305
+ },
306
+ Initials: {
307
+ backgroundColor: s("soft-1", "soft-2"),
308
+ textColor: s("ink-2")
309
+ },
310
+ Lorelei: { backgroundColor: PAPER },
311
+ "Lorelei Neutral": { backgroundColor: PAPER },
312
+ Notionists: { backgroundColor: PAPER },
313
+ "Open Peeps": { backgroundColor: PAPER },
314
+ "Pixel Art": { backgroundColor: PAPER },
315
+ "Pixel Art Neutral": { backgroundColor: PAPER },
316
+ Rings: {
317
+ backgroundColor: s("soft-1", "soft-3"),
318
+ ringColor: INK
319
+ },
320
+ Shapes: {
321
+ backgroundColor: SOFT,
322
+ shape1Color: INK,
323
+ shape2Color: SOLID,
324
+ shape3Color: s("ink-3", "solid-1")
325
+ },
326
+ Thumbs: {
327
+ backgroundColor: SOFT,
328
+ shapeColor: INK
329
+ }
330
+ };
331
+ const mix = (a, pct, b) => `color-mix(in oklch, ${a} ${pct}%, ${b})`;
332
+ /** The theme expressions behind each slot; people draw from the brand, agents from the neutral ink. */
333
+ const CSS_SOURCES = {
334
+ person: {
335
+ "soft-1": mix("var(--ty-brand)", 14, "var(--ty-bg)"),
336
+ "soft-2": mix("var(--ty-brand)", 28, "var(--ty-bg)"),
337
+ "soft-3": mix("var(--ty-ink)", 10, "var(--ty-bg)"),
338
+ "ink-1": "var(--ty-brand)",
339
+ "ink-2": "var(--ty-brand-strong)",
340
+ "ink-3": mix("var(--ty-brand)", 55, "var(--ty-ink)"),
341
+ "solid-1": "var(--ty-brand-600)",
342
+ "solid-2": "var(--ty-brand-700)",
343
+ "solid-3": "var(--ty-brand-800)",
344
+ "paper-1": "var(--ty-brand-100)",
345
+ "paper-2": "var(--ty-brand-200)",
346
+ "paper-3": "var(--ty-neutral-100)"
347
+ },
348
+ agent: {
349
+ "soft-1": mix("var(--ty-ink)", 8, "var(--ty-bg)"),
350
+ "soft-2": mix("var(--ty-ink)", 14, "var(--ty-bg)"),
351
+ "soft-3": mix("var(--ty-ink)", 20, "var(--ty-bg)"),
352
+ "ink-1": "var(--ty-actor-agent)",
353
+ "ink-2": "var(--ty-ink-3)",
354
+ "ink-3": mix("var(--ty-ink)", 70, "var(--ty-bg)"),
355
+ "solid-1": "var(--ty-neutral-600)",
356
+ "solid-2": "var(--ty-neutral-700)",
357
+ "solid-3": "var(--ty-neutral-800)",
358
+ "paper-1": "var(--ty-neutral-50)",
359
+ "paper-2": "var(--ty-neutral-100)",
360
+ "paper-3": "var(--ty-neutral-200)"
361
+ }
362
+ };
363
+ /**
364
+ * The palette as CSS: each slot is `var(--ty-avatar-<slot>, <theme expression>)`,
365
+ * so a host can repaint one slot with a custom property and everything else
366
+ * follows the Tympan theme and colour mode in scope.
367
+ */
368
+ function avatarCssPalette(kind = "person") {
369
+ const out = {};
370
+ for (const slot of AVATAR_SLOTS) out[slot] = `var(--ty-avatar-${slot}, ${CSS_SOURCES[kind][slot]})`;
371
+ return out;
372
+ }
373
+ function mixRgb(a, pct, b) {
374
+ const p = pct / 100;
375
+ const x = rgbToOklch(a);
376
+ const y = rgbToOklch(b);
377
+ const hx = x.c < .02 ? y.h : x.h;
378
+ let dh = (y.c < .02 ? x.h : y.h) - hx;
379
+ if (dh > 180) dh -= 360;
380
+ if (dh < -180) dh += 360;
381
+ return oklchToRgb({
382
+ l: x.l * p + y.l * (1 - p),
383
+ c: x.c * p + y.c * (1 - p),
384
+ h: (hx + dh * (1 - p) + 360) % 360
385
+ });
386
+ }
387
+ /** Finds a built-in or print theme preset by name. */
388
+ function presetByName(name) {
389
+ const found = [...presets, ...printThemePresets].find((p) => p.name === name);
390
+ if (!found) throw new Error(`Unknown Tympan theme "${name}".`);
391
+ return found;
392
+ }
393
+ /**
394
+ * The palette resolved to hex for one theme (a preset name or a
395
+ * `ThemeConfig`) in one mode: the same recipe as the CSS palette.
396
+ */
397
+ function avatarPalette(theme, mode, kind = "person") {
398
+ const r = resolveTheme(typeof theme === "string" ? presetByName(theme) : theme, mode);
399
+ const c = (role) => r.colors[role] ?? {
400
+ r: .5,
401
+ g: .5,
402
+ b: .5,
403
+ a: 1
404
+ };
405
+ const hex = (x) => toHex(x);
406
+ if (kind === "agent") return {
407
+ "soft-1": hex(mixRgb(c("ink"), 8, c("bg"))),
408
+ "soft-2": hex(mixRgb(c("ink"), 14, c("bg"))),
409
+ "soft-3": hex(mixRgb(c("ink"), 20, c("bg"))),
410
+ "ink-1": hex(c("actor-agent")),
411
+ "ink-2": hex(c("ink-3")),
412
+ "ink-3": hex(mixRgb(c("ink"), 70, c("bg"))),
413
+ "solid-1": hex(r.ramps.neutral[600]),
414
+ "solid-2": hex(r.ramps.neutral[700]),
415
+ "solid-3": hex(r.ramps.neutral[800]),
416
+ "paper-1": hex(r.ramps.neutral[50]),
417
+ "paper-2": hex(r.ramps.neutral[100]),
418
+ "paper-3": hex(r.ramps.neutral[200])
419
+ };
420
+ return {
421
+ "soft-1": hex(mixRgb(c("brand"), 14, c("bg"))),
422
+ "soft-2": hex(mixRgb(c("brand"), 28, c("bg"))),
423
+ "soft-3": hex(mixRgb(c("ink"), 10, c("bg"))),
424
+ "ink-1": hex(c("brand")),
425
+ "ink-2": hex(c("brand-strong")),
426
+ "ink-3": hex(mixRgb(c("brand"), 55, c("ink"))),
427
+ "solid-1": hex(r.ramps.brand[600]),
428
+ "solid-2": hex(r.ramps.brand[700]),
429
+ "solid-3": hex(r.ramps.brand[800]),
430
+ "paper-1": hex(r.ramps.brand[100]),
431
+ "paper-2": hex(r.ramps.brand[200]),
432
+ "paper-3": hex(r.ramps.neutral[100])
433
+ };
434
+ }
435
+ /**
436
+ * The allow-list entry of a style, or an `AvatarStyleError` when the style's
437
+ * artwork licence is not CC0 1.0 or MIT, or the style is not on the list.
438
+ */
439
+ function allowedAvatarStyle(style) {
440
+ const title = style?.meta?.title;
441
+ const license = style?.meta?.license?.name;
442
+ if (!license || !ALLOWED_AVATAR_LICENSES.includes(license)) throw new AvatarStyleError(`Avatar style "${title ?? "unknown"}" has artwork licence "${license ?? "unknown"}"; only CC0 1.0 and MIT styles are allowed.`);
443
+ const entry = ALLOWED_AVATAR_STYLES.find((e) => e.title === title && e.designLicense === license);
444
+ if (!entry) throw new AvatarStyleError(`Avatar style "${title ?? "unknown"}" is not on the Tympan allow-list.`);
445
+ return entry;
446
+ }
447
+ /** FNV-1a, for short deterministic id prefixes. */
448
+ function hash(text) {
449
+ let h = 2166136261;
450
+ for (let i = 0; i < text.length; i++) {
451
+ h ^= text.charCodeAt(i);
452
+ h = Math.imul(h, 16777619);
453
+ }
454
+ return (h >>> 0).toString(36);
455
+ }
456
+ const escapeAttr = (v) => v.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;");
457
+ /**
458
+ * A generated avatar as an SVG string, deterministic from the seed. Throws
459
+ * `AvatarStyleError` for a style outside the licence allow-list, and for a
460
+ * face or initials style drawn for an agent.
461
+ */
462
+ function avatarSvg({ seed, style, size, theme = "css", kind = "person", idPrefix, title }) {
463
+ const entry = allowedAvatarStyle(style);
464
+ if (kind === "agent" && entry.subject !== "abstract") throw new AvatarStyleError(`Avatar style "${entry.title}" draws ${entry.subject === "text" ? "initials" : "a face"}; agents take an abstract style (Glass, Bootstrap Icons, Identicon, Rings, Shapes).`);
465
+ const colors = COLOR_OPTIONS[entry.title] ?? { backgroundColor: SOFT };
466
+ const extra = entry.title === "Initials" ? {
467
+ fontFamily: [theme === "css" ? "var(--ty-font-sans, system-ui, sans-serif)" : "system-ui, sans-serif"],
468
+ fontWeight: 600,
469
+ fontSize: 42
470
+ } : {};
471
+ let svg = createAvatar(style, {
472
+ seed,
473
+ ...size ? { size } : {},
474
+ ...colors,
475
+ ...extra
476
+ }).toString();
477
+ const palette = theme === "css" ? avatarCssPalette(kind) : theme;
478
+ for (const slot of AVATAR_SLOTS) svg = svg.replace(new RegExp(`#${SENTINEL[slot]}`, "gi"), escapeAttr(palette[slot]));
479
+ const prefix = (idPrefix ?? `ty-av-${hash(`${entry.title}\u0000${kind}\u0000${seed}`)}`).replace(/[^\w-]/g, "");
480
+ svg = svg.replace(/(\bid="|url\(#|href="#)([\w-]+)([")])/g, (_m, a, id, b) => `${a}${prefix}-${id}${b}`);
481
+ const a11y = title ? `role="img" aria-label="${escapeAttr(title)}"` : "aria-hidden=\"true\" focusable=\"false\"";
482
+ return svg.replace(/^<svg /, `<svg ${a11y} `);
483
+ }
484
+ //#endregion
485
+ //#region src/avatars/GeneratedAvatar.tsx
486
+ /**
487
+ * Avatar with generated artwork (DiceBear, CC0 or MIT styles only) in the
488
+ * active theme's colours. Everything else is Avatar: an image wins when it
489
+ * loads, the frame carries the accessible name (or is hidden when
490
+ * `decorative`), agents keep the rounded, dashed frame and take abstract
491
+ * styles only. If the artwork cannot be drawn (a style outside the
492
+ * allow-list, a face style for an agent) the Avatar fallback shows: initials
493
+ * for a person, the bot icon for an agent.
494
+ */
495
+ function GeneratedAvatar({ seed, avatarStyle, palette, actorKind = "person", ...rest }) {
496
+ const uid = useId();
497
+ const svg = useMemo(() => {
498
+ try {
499
+ return avatarSvg({
500
+ seed,
501
+ style: avatarStyle,
502
+ theme: palette ?? "css",
503
+ kind: actorKind,
504
+ idPrefix: `ty-av${uid}`
505
+ });
506
+ } catch (error) {
507
+ devWarning(true, `GeneratedAvatar: ${error.message} Showing the fallback.`);
508
+ return null;
509
+ }
510
+ }, [
511
+ seed,
512
+ avatarStyle,
513
+ palette,
514
+ actorKind,
515
+ uid
516
+ ]);
517
+ return /* @__PURE__ */ jsx(Avatar, {
518
+ ...rest,
519
+ actorKind,
520
+ artwork: svg ? /* @__PURE__ */ jsx("span", {
521
+ className: "ty-avatar__artwork",
522
+ "data-generated": "",
523
+ "aria-hidden": "true",
524
+ dangerouslySetInnerHTML: { __html: svg }
525
+ }) : null
526
+ });
527
+ }
528
+ //#endregion
529
+ export { ALLOWED_AVATAR_LICENSES, ALLOWED_AVATAR_STYLES, AVATAR_SLOTS, AvatarStyleError, EXCLUDED_AVATAR_STYLES, GeneratedAvatar, allowedAvatarStyle, avatarCssPalette, avatarPalette, avatarSvg };
530
+
531
+ //# sourceMappingURL=avatars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatars.js","names":[],"sources":["../src/avatars/styles.ts","../src/avatars/avatarSvg.ts","../src/avatars/GeneratedAvatar.tsx"],"sourcesContent":["// Licence gate for DiceBear avatar styles. DiceBear's code is MIT, but every\n// style carries its own artwork licence. Only styles whose artwork is CC0 1.0\n// or MIT are allowed; the list below was read from each package's LICENSE file\n// and its `meta` export (DiceBear 9.4.3, 2026-09-26). THIRD_PARTY_NOTICES.md\n// and PROVENANCE.md carry the same table.\n\n/** Artwork licences that need no attribution in the UI and allow any use. */\nexport const ALLOWED_AVATAR_LICENSES = ['CC0 1.0', 'MIT'] as const\nexport type AllowedAvatarLicense = (typeof ALLOWED_AVATAR_LICENSES)[number]\n\n/**\n * What a style depicts. `figure` and `text` styles are for people only: an\n * agent is never drawn with a face or with initials (design direction §2.11).\n */\nexport type AvatarSubject = 'abstract' | 'figure' | 'text'\n\nexport interface AllowedAvatarStyle {\n /** npm package that holds the style. */\n package: string\n /** `meta.title` of the style module (the key the gate matches). */\n title: string\n /** Artwork author as recorded by the package. */\n designer: string\n /** Where the artwork comes from. */\n source: string\n /** Artwork licence (`meta.license.name`). */\n designLicense: AllowedAvatarLicense\n /** Licence of the package code. */\n codeLicense: 'MIT'\n subject: AvatarSubject\n}\n\nexport const ALLOWED_AVATAR_STYLES: readonly AllowedAvatarStyle[] = [\n { package: '@dicebear/glass', title: 'Glass', designer: 'DiceBear', source: 'https://www.dicebear.com', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'abstract' },\n { package: '@dicebear/icons', title: 'Bootstrap Icons', designer: 'The Bootstrap Authors', source: 'https://github.com/twbs/icons', designLicense: 'MIT', codeLicense: 'MIT', subject: 'abstract' },\n { package: '@dicebear/identicon', title: 'Identicon', designer: 'DiceBear', source: 'https://www.dicebear.com', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'abstract' },\n { package: '@dicebear/initials', title: 'Initials', designer: 'DiceBear', source: 'https://github.com/dicebear/dicebear', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'text' },\n { package: '@dicebear/lorelei', title: 'Lorelei', designer: 'Lisa Wischofsky', source: 'https://www.figma.com/community/file/1198749693280469639', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/lorelei-neutral', title: 'Lorelei Neutral', designer: 'Lisa Wischofsky', source: 'https://www.figma.com/community/file/1198749693280469639', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/notionists', title: 'Notionists', designer: 'Zoish', source: 'https://heyzoish.gumroad.com/l/notionists', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/notionists-neutral', title: 'Notionists', designer: 'Zoish', source: 'https://heyzoish.gumroad.com/l/notionists', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/open-peeps', title: 'Open Peeps', designer: 'Pablo Stanley', source: 'https://www.openpeeps.com/', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/pixel-art', title: 'Pixel Art', designer: 'DiceBear', source: 'https://www.figma.com/community/file/1198754108850888330', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/pixel-art-neutral', title: 'Pixel Art Neutral', designer: 'DiceBear', source: 'https://www.figma.com/community/file/1198754108850888330', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n { package: '@dicebear/rings', title: 'Rings', designer: 'DiceBear', source: 'https://www.dicebear.com', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'abstract' },\n { package: '@dicebear/shapes', title: 'Shapes', designer: 'DiceBear', source: 'https://www.dicebear.com', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'abstract' },\n { package: '@dicebear/thumbs', title: 'Thumbs', designer: 'DiceBear', source: 'https://www.dicebear.com', designLicense: 'CC0 1.0', codeLicense: 'MIT', subject: 'figure' },\n]\n\nexport interface ExcludedAvatarStyle {\n package: string\n designer: string\n designLicense: string\n reason: string\n}\n\nconst CC_BY = 'CC BY 4.0 requires visible attribution wherever the artwork is shown.'\nconst CUSTOM = 'Custom \"free for personal and commercial use\" terms: not an open licence, no redistribution grant.'\n\n/** DiceBear 9 styles left out, and why. Importing any of them fails `check:provenance`. */\nexport const EXCLUDED_AVATAR_STYLES: readonly ExcludedAvatarStyle[] = [\n { package: '@dicebear/adventurer', designer: 'Lisa Wischofsky', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/adventurer-neutral', designer: 'Lisa Wischofsky', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/avataaars', designer: 'Pablo Stanley', designLicense: 'Free for personal and commercial use', reason: CUSTOM },\n { package: '@dicebear/avataaars-neutral', designer: 'Pablo Stanley', designLicense: 'Free for personal and commercial use', reason: CUSTOM },\n { package: '@dicebear/big-ears', designer: 'The Visual Team', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/big-ears-neutral', designer: 'The Visual Team', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/big-smile', designer: 'Ashley Seo', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/bottts', designer: 'Pablo Stanley', designLicense: 'Free for personal and commercial use', reason: CUSTOM },\n { package: '@dicebear/bottts-neutral', designer: 'Pablo Stanley', designLicense: 'Free for personal and commercial use', reason: CUSTOM },\n { package: '@dicebear/croodles', designer: 'vijay verma', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/croodles-neutral', designer: 'vijay verma', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/dylan', designer: 'Natalia Spivak', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/fun-emoji', designer: 'Davis Uche', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/micah', designer: 'Micah Lanier', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/miniavs', designer: 'Webpixels', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/personas', designer: 'Draftbit', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/toon-head', designer: 'Johan Melin', designLicense: 'CC BY 4.0', reason: CC_BY },\n { package: '@dicebear/collection', designer: '(all of the above)', designLicense: 'mixed', reason: 'Re-exports every style, including the excluded ones.' },\n]\n","// Deterministic generated avatars: DiceBear draws the artwork from a seed,\n// Tympan supplies the colours. By default the colours are CSS custom\n// properties, so an inline avatar follows the active theme and mode with no\n// re-render; `avatarPalette()` resolves them to hex for contexts without the\n// Tympan stylesheet (images, e-mail, server rendering to a file).\nimport { createAvatar, type Style } from '@dicebear/core'\nimport { oklchToRgb, presets, printThemePresets, resolveTheme, rgbToOklch, toHex, type Rgba, type ThemeConfig } from '@datatechsolutions/tympan-tokens'\nimport { ALLOWED_AVATAR_LICENSES, ALLOWED_AVATAR_STYLES, type AllowedAvatarStyle } from './styles'\n\n/**\n * A DiceBear style module (`import * as shapes from '@dicebear/shapes'`).\n * Only the styles in `ALLOWED_AVATAR_STYLES` are accepted.\n */\nexport interface AvatarStyle {\n meta?: { title?: string; creator?: string; source?: string; license?: { name?: string; url?: string } }\n create: (...args: never[]) => unknown\n schema?: unknown\n}\n\nexport type AvatarKind = 'person' | 'agent'\n\n/**\n * Colour slots the styles draw with: soft backgrounds (follow the mode), ink\n * shapes, solid fills that carry white artwork, and light paper behind the\n * black line art of figure styles (light in both modes, so faces stay legible).\n */\nexport const AVATAR_SLOTS = ['soft-1', 'soft-2', 'soft-3', 'ink-1', 'ink-2', 'ink-3', 'solid-1', 'solid-2', 'solid-3', 'paper-1', 'paper-2', 'paper-3'] as const\nexport type AvatarSlot = (typeof AVATAR_SLOTS)[number]\n/** One CSS colour per slot. */\nexport type AvatarPalette = Record<AvatarSlot, string>\n\n/** Thrown for a style outside the licence allow-list, or a people-only style drawn for an agent. */\nexport class AvatarStyleError extends Error {\n override name = 'AvatarStyleError'\n}\n\n// Sentinel colours handed to DiceBear and swapped for the palette afterwards.\n// They are valid hex (DiceBear's option schema) and appear in no allowed style.\nconst SENTINEL: Record<AvatarSlot, string> = {\n 'soft-1': 'fe01a1',\n 'soft-2': 'fe01a2',\n 'soft-3': 'fe01a3',\n 'ink-1': 'fe01b1',\n 'ink-2': 'fe01b2',\n 'ink-3': 'fe01b3',\n 'solid-1': 'fe01c1',\n 'solid-2': 'fe01c2',\n 'solid-3': 'fe01c3',\n 'paper-1': 'fe01d1',\n 'paper-2': 'fe01d2',\n 'paper-3': 'fe01d3',\n}\nconst s = (...slots: AvatarSlot[]) => slots.map((slot) => SENTINEL[slot])\nconst SOFT = s('soft-1', 'soft-2', 'soft-3')\nconst INK = s('ink-1', 'ink-2', 'ink-3')\nconst SOLID = s('solid-1', 'solid-2', 'solid-3')\nconst PAPER = s('paper-1', 'paper-2', 'paper-3')\n\n/**\n * Which DiceBear colour options each style gets. Figure styles only get a\n * background: skin, hair and eye colours stay the artist's, never the brand.\n */\nconst COLOR_OPTIONS: Record<string, Record<string, string[]>> = {\n Glass: { backgroundColor: SOLID },\n 'Bootstrap Icons': { backgroundColor: SOLID },\n Identicon: { backgroundColor: s('soft-1', 'soft-3'), rowColor: INK },\n Initials: { backgroundColor: s('soft-1', 'soft-2'), textColor: s('ink-2') },\n Lorelei: { backgroundColor: PAPER },\n 'Lorelei Neutral': { backgroundColor: PAPER },\n Notionists: { backgroundColor: PAPER },\n 'Open Peeps': { backgroundColor: PAPER },\n 'Pixel Art': { backgroundColor: PAPER },\n 'Pixel Art Neutral': { backgroundColor: PAPER },\n Rings: { backgroundColor: s('soft-1', 'soft-3'), ringColor: INK },\n Shapes: { backgroundColor: SOFT, shape1Color: INK, shape2Color: SOLID, shape3Color: s('ink-3', 'solid-1') },\n Thumbs: { backgroundColor: SOFT, shapeColor: INK },\n}\n\nconst mix = (a: string, pct: number, b: string) => `color-mix(in oklch, ${a} ${pct}%, ${b})`\n\n/** The theme expressions behind each slot; people draw from the brand, agents from the neutral ink. */\nconst CSS_SOURCES: Record<AvatarKind, AvatarPalette> = {\n person: {\n 'soft-1': mix('var(--ty-brand)', 14, 'var(--ty-bg)'),\n 'soft-2': mix('var(--ty-brand)', 28, 'var(--ty-bg)'),\n 'soft-3': mix('var(--ty-ink)', 10, 'var(--ty-bg)'),\n 'ink-1': 'var(--ty-brand)',\n 'ink-2': 'var(--ty-brand-strong)',\n 'ink-3': mix('var(--ty-brand)', 55, 'var(--ty-ink)'),\n 'solid-1': 'var(--ty-brand-600)',\n 'solid-2': 'var(--ty-brand-700)',\n 'solid-3': 'var(--ty-brand-800)',\n 'paper-1': 'var(--ty-brand-100)',\n 'paper-2': 'var(--ty-brand-200)',\n 'paper-3': 'var(--ty-neutral-100)',\n },\n agent: {\n 'soft-1': mix('var(--ty-ink)', 8, 'var(--ty-bg)'),\n 'soft-2': mix('var(--ty-ink)', 14, 'var(--ty-bg)'),\n 'soft-3': mix('var(--ty-ink)', 20, 'var(--ty-bg)'),\n 'ink-1': 'var(--ty-actor-agent)',\n 'ink-2': 'var(--ty-ink-3)',\n 'ink-3': mix('var(--ty-ink)', 70, 'var(--ty-bg)'),\n 'solid-1': 'var(--ty-neutral-600)',\n 'solid-2': 'var(--ty-neutral-700)',\n 'solid-3': 'var(--ty-neutral-800)',\n 'paper-1': 'var(--ty-neutral-50)',\n 'paper-2': 'var(--ty-neutral-100)',\n 'paper-3': 'var(--ty-neutral-200)',\n },\n}\n\n/**\n * The palette as CSS: each slot is `var(--ty-avatar-<slot>, <theme expression>)`,\n * so a host can repaint one slot with a custom property and everything else\n * follows the Tympan theme and colour mode in scope.\n */\nexport function avatarCssPalette(kind: AvatarKind = 'person'): AvatarPalette {\n const out = {} as AvatarPalette\n for (const slot of AVATAR_SLOTS) out[slot] = `var(--ty-avatar-${slot}, ${CSS_SOURCES[kind][slot]})`\n return out\n}\n\nfunction mixRgb(a: Rgba, pct: number, b: Rgba): Rgba {\n // OKLCH interpolation like CSS color-mix(in oklch): shorter hue arc, an achromatic side takes the other's hue.\n const p = pct / 100\n const x = rgbToOklch(a)\n const y = rgbToOklch(b)\n const hx = x.c < 0.02 ? y.h : x.h\n const hy = y.c < 0.02 ? x.h : y.h\n let dh = hy - hx\n if (dh > 180) dh -= 360\n if (dh < -180) dh += 360\n return oklchToRgb({ l: x.l * p + y.l * (1 - p), c: x.c * p + y.c * (1 - p), h: (hx + dh * (1 - p) + 360) % 360 })\n}\n\n/** Finds a built-in or print theme preset by name. */\nfunction presetByName(name: string): ThemeConfig {\n const found = [...presets, ...printThemePresets].find((p) => p.name === name)\n if (!found) throw new Error(`Unknown Tympan theme \"${name}\".`)\n return found\n}\n\n/**\n * The palette resolved to hex for one theme (a preset name or a\n * `ThemeConfig`) in one mode: the same recipe as the CSS palette.\n */\nexport function avatarPalette(theme: string | ThemeConfig, mode: 'light' | 'dark', kind: AvatarKind = 'person'): AvatarPalette {\n const r = resolveTheme(typeof theme === 'string' ? presetByName(theme) : theme, mode)\n const c = (role: string): Rgba => r.colors[role] ?? { r: 0.5, g: 0.5, b: 0.5, a: 1 }\n const hex = (x: Rgba) => toHex(x)\n if (kind === 'agent') {\n return {\n 'soft-1': hex(mixRgb(c('ink'), 8, c('bg'))),\n 'soft-2': hex(mixRgb(c('ink'), 14, c('bg'))),\n 'soft-3': hex(mixRgb(c('ink'), 20, c('bg'))),\n 'ink-1': hex(c('actor-agent')),\n 'ink-2': hex(c('ink-3')),\n 'ink-3': hex(mixRgb(c('ink'), 70, c('bg'))),\n 'solid-1': hex(r.ramps.neutral[600]),\n 'solid-2': hex(r.ramps.neutral[700]),\n 'solid-3': hex(r.ramps.neutral[800]),\n 'paper-1': hex(r.ramps.neutral[50]),\n 'paper-2': hex(r.ramps.neutral[100]),\n 'paper-3': hex(r.ramps.neutral[200]),\n }\n }\n return {\n 'soft-1': hex(mixRgb(c('brand'), 14, c('bg'))),\n 'soft-2': hex(mixRgb(c('brand'), 28, c('bg'))),\n 'soft-3': hex(mixRgb(c('ink'), 10, c('bg'))),\n 'ink-1': hex(c('brand')),\n 'ink-2': hex(c('brand-strong')),\n 'ink-3': hex(mixRgb(c('brand'), 55, c('ink'))),\n 'solid-1': hex(r.ramps.brand[600]),\n 'solid-2': hex(r.ramps.brand[700]),\n 'solid-3': hex(r.ramps.brand[800]),\n 'paper-1': hex(r.ramps.brand[100]),\n 'paper-2': hex(r.ramps.brand[200]),\n 'paper-3': hex(r.ramps.neutral[100]),\n }\n}\n\n/**\n * The allow-list entry of a style, or an `AvatarStyleError` when the style's\n * artwork licence is not CC0 1.0 or MIT, or the style is not on the list.\n */\nexport function allowedAvatarStyle(style: AvatarStyle): AllowedAvatarStyle {\n const title = style?.meta?.title\n const license = style?.meta?.license?.name\n if (!license || !(ALLOWED_AVATAR_LICENSES as readonly string[]).includes(license)) {\n throw new AvatarStyleError(`Avatar style \"${title ?? 'unknown'}\" has artwork licence \"${license ?? 'unknown'}\"; only CC0 1.0 and MIT styles are allowed.`)\n }\n const entry = ALLOWED_AVATAR_STYLES.find((e) => e.title === title && e.designLicense === license)\n if (!entry) throw new AvatarStyleError(`Avatar style \"${title ?? 'unknown'}\" is not on the Tympan allow-list.`)\n return entry\n}\n\n/** FNV-1a, for short deterministic id prefixes. */\nfunction hash(text: string): string {\n let h = 0x811c9dc5\n for (let i = 0; i < text.length; i++) {\n h ^= text.charCodeAt(i)\n h = Math.imul(h, 0x01000193)\n }\n return (h >>> 0).toString(36)\n}\n\nconst escapeAttr = (v: string) => v.replace(/&/g, '&amp;').replace(/\"/g, '&quot;').replace(/</g, '&lt;')\n\nexport interface AvatarSvgOptions {\n /** Any stable string (user id, e-mail hash, agent key): same seed, same avatar. */\n seed: string\n /** An allowed DiceBear style module. */\n style: AvatarStyle\n /** Width and height in px; omitted, the SVG fills its container. */\n size?: number\n /** `'css'` (default): colours follow the theme in scope. A palette (see `avatarPalette`): fixed colours. */\n theme?: 'css' | AvatarPalette\n /** People draw from the brand; agents from the neutral ink, and only with abstract styles. */\n kind?: AvatarKind\n /** Prefix for the SVG's internal ids (masks, gradients); defaults to a hash of seed, style and kind. */\n idPrefix?: string\n /** Accessible name: the SVG becomes role=\"img\". Without it the SVG is aria-hidden (decorative). */\n title?: string\n}\n\n/**\n * A generated avatar as an SVG string, deterministic from the seed. Throws\n * `AvatarStyleError` for a style outside the licence allow-list, and for a\n * face or initials style drawn for an agent.\n */\nexport function avatarSvg({ seed, style, size, theme = 'css', kind = 'person', idPrefix, title }: AvatarSvgOptions): string {\n const entry = allowedAvatarStyle(style)\n if (kind === 'agent' && entry.subject !== 'abstract') {\n throw new AvatarStyleError(`Avatar style \"${entry.title}\" draws ${entry.subject === 'text' ? 'initials' : 'a face'}; agents take an abstract style (Glass, Bootstrap Icons, Identicon, Rings, Shapes).`)\n }\n const colors = COLOR_OPTIONS[entry.title] ?? { backgroundColor: SOFT }\n const extra: Record<string, unknown> =\n entry.title === 'Initials' ? { fontFamily: [theme === 'css' ? 'var(--ty-font-sans, system-ui, sans-serif)' : 'system-ui, sans-serif'], fontWeight: 600, fontSize: 42 } : {}\n let svg = createAvatar(style as unknown as Style<object>, { seed, ...(size ? { size } : {}), ...colors, ...extra }).toString()\n\n const palette = theme === 'css' ? avatarCssPalette(kind) : theme\n for (const slot of AVATAR_SLOTS) svg = svg.replace(new RegExp(`#${SENTINEL[slot]}`, 'gi'), escapeAttr(palette[slot]))\n\n // Scope internal ids so several avatars on one page never share a mask or gradient.\n const prefix = (idPrefix ?? `ty-av-${hash(`${entry.title}\\u0000${kind}\\u0000${seed}`)}`).replace(/[^\\w-]/g, '')\n svg = svg.replace(/(\\bid=\"|url\\(#|href=\"#)([\\w-]+)([\")])/g, (_m, a: string, id: string, b: string) => `${a}${prefix}-${id}${b}`)\n\n const a11y = title ? `role=\"img\" aria-label=\"${escapeAttr(title)}\"` : 'aria-hidden=\"true\" focusable=\"false\"'\n return svg.replace(/^<svg /, `<svg ${a11y} `)\n}\n","import { useId, useMemo } from 'react'\nimport { Avatar, type AvatarProps } from '../components/avatar/Avatar'\nimport { devWarning } from '../internal/dev'\nimport { avatarSvg, type AvatarPalette, type AvatarStyle } from './avatarSvg'\n\nexport interface GeneratedAvatarProps extends Omit<AvatarProps, 'artwork'> {\n /** Any stable string (user id, agent key): the same seed always draws the same avatar. */\n seed: string\n /** An allowed DiceBear style module, e.g. `import * as shapes from '@dicebear/shapes'`. */\n avatarStyle: AvatarStyle\n /** Fixed colours (see `avatarPalette`); by default the avatar follows the theme in scope. */\n palette?: AvatarPalette\n}\n\n/**\n * Avatar with generated artwork (DiceBear, CC0 or MIT styles only) in the\n * active theme's colours. Everything else is Avatar: an image wins when it\n * loads, the frame carries the accessible name (or is hidden when\n * `decorative`), agents keep the rounded, dashed frame and take abstract\n * styles only. If the artwork cannot be drawn (a style outside the\n * allow-list, a face style for an agent) the Avatar fallback shows: initials\n * for a person, the bot icon for an agent.\n */\nexport function GeneratedAvatar({ seed, avatarStyle, palette, actorKind = 'person', ...rest }: GeneratedAvatarProps) {\n const uid = useId()\n const svg = useMemo(() => {\n try {\n return avatarSvg({ seed, style: avatarStyle, theme: palette ?? 'css', kind: actorKind, idPrefix: `ty-av${uid}` })\n } catch (error) {\n devWarning(true, `GeneratedAvatar: ${(error as Error).message} Showing the fallback.`)\n return null\n }\n }, [seed, avatarStyle, palette, actorKind, uid])\n return (\n <Avatar\n {...rest}\n actorKind={actorKind}\n artwork={svg ? <span className=\"ty-avatar__artwork\" data-generated=\"\" aria-hidden=\"true\" dangerouslySetInnerHTML={{ __html: svg }} /> : null}\n />\n )\n}\n"],"mappings":";;;;;;;;AAOA,MAAa,0BAA0B,CAAC,WAAW,KAAK;AAyBxD,MAAa,wBAAuD;CAClE;EAAE,SAAS;EAAmB,OAAO;EAAS,UAAU;EAAY,QAAQ;EAA4B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAW;CAC1K;EAAE,SAAS;EAAmB,OAAO;EAAmB,UAAU;EAAyB,QAAQ;EAAiC,eAAe;EAAO,aAAa;EAAO,SAAS;CAAW;CAClM;EAAE,SAAS;EAAuB,OAAO;EAAa,UAAU;EAAY,QAAQ;EAA4B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAW;CAClL;EAAE,SAAS;EAAsB,OAAO;EAAY,UAAU;EAAY,QAAQ;EAAwC,eAAe;EAAW,aAAa;EAAO,SAAS;CAAO;CACxL;EAAE,SAAS;EAAqB,OAAO;EAAW,UAAU;EAAmB,QAAQ;EAA4D,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CACnN;EAAE,SAAS;EAA6B,OAAO;EAAmB,UAAU;EAAmB,QAAQ;EAA4D,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CACnO;EAAE,SAAS;EAAwB,OAAO;EAAc,UAAU;EAAS,QAAQ;EAA6C,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CAChM;EAAE,SAAS;EAAgC,OAAO;EAAc,UAAU;EAAS,QAAQ;EAA6C,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CACxM;EAAE,SAAS;EAAwB,OAAO;EAAc,UAAU;EAAiB,QAAQ;EAA8B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CACzL;EAAE,SAAS;EAAuB,OAAO;EAAa,UAAU;EAAY,QAAQ;EAA4D,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CAChN;EAAE,SAAS;EAA+B,OAAO;EAAqB,UAAU;EAAY,QAAQ;EAA4D,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;CAChO;EAAE,SAAS;EAAmB,OAAO;EAAS,UAAU;EAAY,QAAQ;EAA4B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAW;CAC1K;EAAE,SAAS;EAAoB,OAAO;EAAU,UAAU;EAAY,QAAQ;EAA4B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAW;CAC5K;EAAE,SAAS;EAAoB,OAAO;EAAU,UAAU;EAAY,QAAQ;EAA4B,eAAe;EAAW,aAAa;EAAO,SAAS;CAAS;AAC5K;AASA,MAAM,QAAQ;AACd,MAAM,SAAS;;AAGf,MAAa,yBAAyD;CACpE;EAAE,SAAS;EAAwB,UAAU;EAAmB,eAAe;EAAa,QAAQ;CAAM;CAC1G;EAAE,SAAS;EAAgC,UAAU;EAAmB,eAAe;EAAa,QAAQ;CAAM;CAClH;EAAE,SAAS;EAAuB,UAAU;EAAiB,eAAe;EAAwC,QAAQ;CAAO;CACnI;EAAE,SAAS;EAA+B,UAAU;EAAiB,eAAe;EAAwC,QAAQ;CAAO;CAC3I;EAAE,SAAS;EAAsB,UAAU;EAAmB,eAAe;EAAa,QAAQ;CAAM;CACxG;EAAE,SAAS;EAA8B,UAAU;EAAmB,eAAe;EAAa,QAAQ;CAAM;CAChH;EAAE,SAAS;EAAuB,UAAU;EAAc,eAAe;EAAa,QAAQ;CAAM;CACpG;EAAE,SAAS;EAAoB,UAAU;EAAiB,eAAe;EAAwC,QAAQ;CAAO;CAChI;EAAE,SAAS;EAA4B,UAAU;EAAiB,eAAe;EAAwC,QAAQ;CAAO;CACxI;EAAE,SAAS;EAAsB,UAAU;EAAe,eAAe;EAAa,QAAQ;CAAM;CACpG;EAAE,SAAS;EAA8B,UAAU;EAAe,eAAe;EAAa,QAAQ;CAAM;CAC5G;EAAE,SAAS;EAAmB,UAAU;EAAkB,eAAe;EAAa,QAAQ;CAAM;CACpG;EAAE,SAAS;EAAuB,UAAU;EAAc,eAAe;EAAa,QAAQ;CAAM;CACpG;EAAE,SAAS;EAAmB,UAAU;EAAgB,eAAe;EAAa,QAAQ;CAAM;CAClG;EAAE,SAAS;EAAqB,UAAU;EAAa,eAAe;EAAa,QAAQ;CAAM;CACjG;EAAE,SAAS;EAAsB,UAAU;EAAY,eAAe;EAAa,QAAQ;CAAM;CACjG;EAAE,SAAS;EAAuB,UAAU;EAAe,eAAe;EAAa,QAAQ;CAAM;CACrG;EAAE,SAAS;EAAwB,UAAU;EAAsB,eAAe;EAAS,QAAQ;CAAuD;AAC5J;;;;;;;;ACrDA,MAAa,eAAe;CAAC;CAAU;CAAU;CAAU;CAAS;CAAS;CAAS;CAAW;CAAW;CAAW;CAAW;CAAW;AAAS;;AAMtJ,IAAa,mBAAb,cAAsC,MAAM;CAC1C,OAAgB;AAClB;AAIA,MAAM,WAAuC;CAC3C,UAAU;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CACT,SAAS;CACT,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;AACb;AACA,MAAM,KAAK,GAAG,UAAwB,MAAM,KAAK,SAAS,SAAS,KAAK;AACxE,MAAM,OAAO,EAAE,UAAU,UAAU,QAAQ;AAC3C,MAAM,MAAM,EAAE,SAAS,SAAS,OAAO;AACvC,MAAM,QAAQ,EAAE,WAAW,WAAW,SAAS;AAC/C,MAAM,QAAQ,EAAE,WAAW,WAAW,SAAS;;;;;AAM/C,MAAM,gBAA0D;CAC9D,OAAO,EAAE,iBAAiB,MAAM;CAChC,mBAAmB,EAAE,iBAAiB,MAAM;CAC5C,WAAW;EAAE,iBAAiB,EAAE,UAAU,QAAQ;EAAG,UAAU;CAAI;CACnE,UAAU;EAAE,iBAAiB,EAAE,UAAU,QAAQ;EAAG,WAAW,EAAE,OAAO;CAAE;CAC1E,SAAS,EAAE,iBAAiB,MAAM;CAClC,mBAAmB,EAAE,iBAAiB,MAAM;CAC5C,YAAY,EAAE,iBAAiB,MAAM;CACrC,cAAc,EAAE,iBAAiB,MAAM;CACvC,aAAa,EAAE,iBAAiB,MAAM;CACtC,qBAAqB,EAAE,iBAAiB,MAAM;CAC9C,OAAO;EAAE,iBAAiB,EAAE,UAAU,QAAQ;EAAG,WAAW;CAAI;CAChE,QAAQ;EAAE,iBAAiB;EAAM,aAAa;EAAK,aAAa;EAAO,aAAa,EAAE,SAAS,SAAS;CAAE;CAC1G,QAAQ;EAAE,iBAAiB;EAAM,YAAY;CAAI;AACnD;AAEA,MAAM,OAAO,GAAW,KAAa,MAAc,uBAAuB,EAAE,GAAG,IAAI,KAAK,EAAE;;AAG1F,MAAM,cAAiD;CACrD,QAAQ;EACN,UAAU,IAAI,mBAAmB,IAAI,cAAc;EACnD,UAAU,IAAI,mBAAmB,IAAI,cAAc;EACnD,UAAU,IAAI,iBAAiB,IAAI,cAAc;EACjD,SAAS;EACT,SAAS;EACT,SAAS,IAAI,mBAAmB,IAAI,eAAe;EACnD,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;CACb;CACA,OAAO;EACL,UAAU,IAAI,iBAAiB,GAAG,cAAc;EAChD,UAAU,IAAI,iBAAiB,IAAI,cAAc;EACjD,UAAU,IAAI,iBAAiB,IAAI,cAAc;EACjD,SAAS;EACT,SAAS;EACT,SAAS,IAAI,iBAAiB,IAAI,cAAc;EAChD,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;EACX,WAAW;CACb;AACF;;;;;;AAOA,SAAgB,iBAAiB,OAAmB,UAAyB;CAC3E,MAAM,MAAM,CAAC;CACb,KAAK,MAAM,QAAQ,cAAc,IAAI,QAAQ,mBAAmB,KAAK,IAAI,YAAY,KAAK,CAAC,MAAM;CACjG,OAAO;AACT;AAEA,SAAS,OAAO,GAAS,KAAa,GAAe;CAEnD,MAAM,IAAI,MAAM;CAChB,MAAM,IAAI,WAAW,CAAC;CACtB,MAAM,IAAI,WAAW,CAAC;CACtB,MAAM,KAAK,EAAE,IAAI,MAAO,EAAE,IAAI,EAAE;CAEhC,IAAI,MADO,EAAE,IAAI,MAAO,EAAE,IAAI,EAAE,KAClB;CACd,IAAI,KAAK,KAAK,MAAM;CACpB,IAAI,KAAK,MAAM,MAAM;CACrB,OAAO,WAAW;EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI;EAAI,GAAG,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI;EAAI,IAAI,KAAK,MAAM,IAAI,KAAK,OAAO;CAAI,CAAC;AAClH;;AAGA,SAAS,aAAa,MAA2B;CAC/C,MAAM,QAAQ,CAAC,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC,MAAM,MAAM,EAAE,SAAS,IAAI;CAC5E,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,yBAAyB,KAAK,GAAG;CAC7D,OAAO;AACT;;;;;AAMA,SAAgB,cAAc,OAA6B,MAAwB,OAAmB,UAAyB;CAC7H,MAAM,IAAI,aAAa,OAAO,UAAU,WAAW,aAAa,KAAK,IAAI,OAAO,IAAI;CACpF,MAAM,KAAK,SAAuB,EAAE,OAAO,SAAS;EAAE,GAAG;EAAK,GAAG;EAAK,GAAG;EAAK,GAAG;CAAE;CACnF,MAAM,OAAO,MAAY,MAAM,CAAC;CAChC,IAAI,SAAS,SACX,OAAO;EACL,UAAU,IAAI,OAAO,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;EAC1C,UAAU,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC3C,UAAU,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC3C,SAAS,IAAI,EAAE,aAAa,CAAC;EAC7B,SAAS,IAAI,EAAE,OAAO,CAAC;EACvB,SAAS,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC1C,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;EACnC,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;EACnC,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;EACnC,WAAW,IAAI,EAAE,MAAM,QAAQ,GAAG;EAClC,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;EACnC,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;CACrC;CAEF,OAAO;EACL,UAAU,IAAI,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC7C,UAAU,IAAI,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC7C,UAAU,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;EAC3C,SAAS,IAAI,EAAE,OAAO,CAAC;EACvB,SAAS,IAAI,EAAE,cAAc,CAAC;EAC9B,SAAS,IAAI,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;EAC7C,WAAW,IAAI,EAAE,MAAM,MAAM,IAAI;EACjC,WAAW,IAAI,EAAE,MAAM,MAAM,IAAI;EACjC,WAAW,IAAI,EAAE,MAAM,MAAM,IAAI;EACjC,WAAW,IAAI,EAAE,MAAM,MAAM,IAAI;EACjC,WAAW,IAAI,EAAE,MAAM,MAAM,IAAI;EACjC,WAAW,IAAI,EAAE,MAAM,QAAQ,IAAI;CACrC;AACF;;;;;AAMA,SAAgB,mBAAmB,OAAwC;CACzE,MAAM,QAAQ,OAAO,MAAM;CAC3B,MAAM,UAAU,OAAO,MAAM,SAAS;CACtC,IAAI,CAAC,WAAW,CAAE,wBAA8C,SAAS,OAAO,GAC9E,MAAM,IAAI,iBAAiB,iBAAiB,SAAS,UAAU,yBAAyB,WAAW,UAAU,4CAA4C;CAE3J,MAAM,QAAQ,sBAAsB,MAAM,MAAM,EAAE,UAAU,SAAS,EAAE,kBAAkB,OAAO;CAChG,IAAI,CAAC,OAAO,MAAM,IAAI,iBAAiB,iBAAiB,SAAS,UAAU,mCAAmC;CAC9G,OAAO;AACT;;AAGA,SAAS,KAAK,MAAsB;CAClC,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;EACpC,KAAK,KAAK,WAAW,CAAC;EACtB,IAAI,KAAK,KAAK,GAAG,QAAU;CAC7B;CACA,QAAQ,MAAM,EAAA,CAAG,SAAS,EAAE;AAC9B;AAEA,MAAM,cAAc,MAAc,EAAE,QAAQ,MAAM,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,CAAC,QAAQ,MAAM,MAAM;;;;;;AAwBvG,SAAgB,UAAU,EAAE,MAAM,OAAO,MAAM,QAAQ,OAAO,OAAO,UAAU,UAAU,SAAmC;CAC1H,MAAM,QAAQ,mBAAmB,KAAK;CACtC,IAAI,SAAS,WAAW,MAAM,YAAY,YACxC,MAAM,IAAI,iBAAiB,iBAAiB,MAAM,MAAM,UAAU,MAAM,YAAY,SAAS,aAAa,SAAS,oFAAoF;CAEzM,MAAM,SAAS,cAAc,MAAM,UAAU,EAAE,iBAAiB,KAAK;CACrE,MAAM,QACJ,MAAM,UAAU,aAAa;EAAE,YAAY,CAAC,UAAU,QAAQ,+CAA+C,uBAAuB;EAAG,YAAY;EAAK,UAAU;CAAG,IAAI,CAAC;CAC5K,IAAI,MAAM,aAAa,OAAmC;EAAE;EAAM,GAAI,OAAO,EAAE,KAAK,IAAI,CAAC;EAAI,GAAG;EAAQ,GAAG;CAAM,CAAC,CAAC,CAAC,SAAS;CAE7H,MAAM,UAAU,UAAU,QAAQ,iBAAiB,IAAI,IAAI;CAC3D,KAAK,MAAM,QAAQ,cAAc,MAAM,IAAI,QAAQ,IAAI,OAAO,IAAI,SAAS,SAAS,IAAI,GAAG,WAAW,QAAQ,KAAK,CAAC;CAGpH,MAAM,UAAU,YAAY,SAAS,KAAK,GAAG,MAAM,MAAM,QAAQ,KAAK,QAAQ,MAAM,IAAA,CAAK,QAAQ,WAAW,EAAE;CAC9G,MAAM,IAAI,QAAQ,2CAA2C,IAAI,GAAW,IAAY,MAAc,GAAG,IAAI,OAAO,GAAG,KAAK,GAAG;CAE/H,MAAM,OAAO,QAAQ,0BAA0B,WAAW,KAAK,EAAE,KAAK;CACtE,OAAO,IAAI,QAAQ,UAAU,QAAQ,KAAK,EAAE;AAC9C;;;;;;;;;;;;ACpOA,SAAgB,gBAAgB,EAAE,MAAM,aAAa,SAAS,YAAY,UAAU,GAAG,QAA8B;CACnH,MAAM,MAAM,MAAM;CAClB,MAAM,MAAM,cAAc;EACxB,IAAI;GACF,OAAO,UAAU;IAAE;IAAM,OAAO;IAAa,OAAO,WAAW;IAAO,MAAM;IAAW,UAAU,QAAQ;GAAM,CAAC;EAClH,SAAS,OAAO;GACd,WAAW,MAAM,oBAAqB,MAAgB,QAAQ,uBAAuB;GACrF,OAAO;EACT;CACF,GAAG;EAAC;EAAM;EAAa;EAAS;EAAW;CAAG,CAAC;CAC/C,OACE,oBAAC,QAAD;EACE,GAAI;EACO;EACX,SAAS,MAAM,oBAAC,QAAD;GAAM,WAAU;GAAqB,kBAAe;GAAG,eAAY;GAAO,yBAAyB,EAAE,QAAQ,IAAI;EAAI,CAAA,IAAI;CACzI,CAAA;AAEL"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ //#region src/internal/cx.ts
3
+ /** Joins class names, skipping falsy values. */
4
+ function cx(...parts) {
5
+ return parts.filter(Boolean).join(" ");
6
+ }
7
+ //#endregion
8
+ export { cx as t };
9
+
10
+ //# sourceMappingURL=cx-Bn-0YiVq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cx-Bn-0YiVq.js","names":[],"sources":["../src/internal/cx.ts"],"sourcesContent":["/** Joins class names, skipping falsy values. */\nexport function cx(...parts: Array<string | false | null | undefined>): string {\n return parts.filter(Boolean).join(' ')\n}\n"],"mappings":";;;AACA,SAAgB,GAAG,GAAG,OAAyD;CAC7E,OAAO,MAAM,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;AACvC"}