@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.
- package/LICENSE +105 -0
- package/README.md +361 -0
- package/THIRD_PARTY_NOTICES.md +180 -0
- package/dist/Avatar-BwVXK1gt.d.ts +37 -0
- package/dist/Avatar-P14MVkK1.js +2815 -0
- package/dist/Avatar-P14MVkK1.js.map +1 -0
- package/dist/avatars.d.ts +130 -0
- package/dist/avatars.js +531 -0
- package/dist/avatars.js.map +1 -0
- package/dist/cx-Bn-0YiVq.js +10 -0
- package/dist/cx-Bn-0YiVq.js.map +1 -0
- package/dist/flags/1x1/ad-BLe4yr61.js +6 -0
- package/dist/flags/1x1/ae-DWj10f_-.js +6 -0
- package/dist/flags/1x1/af-DavbPdY_.js +6 -0
- package/dist/flags/1x1/ag-CQgo5awT.js +6 -0
- package/dist/flags/1x1/ai-i1e-tRb-.js +6 -0
- package/dist/flags/1x1/al-BUFgcw5S.js +6 -0
- package/dist/flags/1x1/am-NU473ju2.js +6 -0
- package/dist/flags/1x1/ao-B-pKKU_Z.js +6 -0
- package/dist/flags/1x1/aq-BheU24WX.js +6 -0
- package/dist/flags/1x1/ar-DNwRSqYh.js +6 -0
- package/dist/flags/1x1/arab-88qGIYv0.js +6 -0
- package/dist/flags/1x1/as-CGCC07cj.js +6 -0
- package/dist/flags/1x1/asean-DdlmT25h.js +6 -0
- package/dist/flags/1x1/at-BEu8eDs7.js +6 -0
- package/dist/flags/1x1/au-C5Xq8bGD.js +6 -0
- package/dist/flags/1x1/aw-CB9G0R84.js +6 -0
- package/dist/flags/1x1/ax-Buob1nIg.js +6 -0
- package/dist/flags/1x1/az-CcVicXqN.js +6 -0
- package/dist/flags/1x1/ba-Cxm2rPWt.js +6 -0
- package/dist/flags/1x1/bb-CelcvA2P.js +6 -0
- package/dist/flags/1x1/bd-CZOnB2bt.js +6 -0
- package/dist/flags/1x1/be-BeSuVKmy.js +6 -0
- package/dist/flags/1x1/bf-DCR3ADbo.js +6 -0
- package/dist/flags/1x1/bg-DT2du0bc.js +6 -0
- package/dist/flags/1x1/bh-C20nQ3k2.js +6 -0
- package/dist/flags/1x1/bi-DV69kx68.js +6 -0
- package/dist/flags/1x1/bj-Cd_6yaxw.js +6 -0
- package/dist/flags/1x1/bl-TaG2WuKM.js +6 -0
- package/dist/flags/1x1/bm-Blnd9QyE.js +6 -0
- package/dist/flags/1x1/bn-rjF94qbn.js +6 -0
- package/dist/flags/1x1/bo-DDdGwBdI.js +6 -0
- package/dist/flags/1x1/bq-B5WRxpfU.js +6 -0
- package/dist/flags/1x1/br-bpueSDua.js +6 -0
- package/dist/flags/1x1/bs-CEEd020S.js +6 -0
- package/dist/flags/1x1/bt-JCokd5Ri.js +6 -0
- package/dist/flags/1x1/bv-VkQe2kr4.js +6 -0
- package/dist/flags/1x1/bw-FyQwptO9.js +6 -0
- package/dist/flags/1x1/by-D-0OPUI_.js +6 -0
- package/dist/flags/1x1/bz-R83MH-fy.js +6 -0
- package/dist/flags/1x1/ca-CmGq-ESK.js +6 -0
- package/dist/flags/1x1/cc-BqKVdIBU.js +6 -0
- package/dist/flags/1x1/cd-OeN90lUp.js +6 -0
- package/dist/flags/1x1/cefta-DoN3C1FP.js +6 -0
- package/dist/flags/1x1/cf-c_IWvoMt.js +6 -0
- package/dist/flags/1x1/cg-DB6A28kr.js +6 -0
- package/dist/flags/1x1/ch-BoUeVhR3.js +6 -0
- package/dist/flags/1x1/ci-DO7X3pCD.js +6 -0
- package/dist/flags/1x1/ck-DbhiimVc.js +6 -0
- package/dist/flags/1x1/cl-D18TvDyU.js +6 -0
- package/dist/flags/1x1/cm-BkkRG54s.js +6 -0
- package/dist/flags/1x1/cn-DXW0Zc-C.js +6 -0
- package/dist/flags/1x1/co-Cy9H7OxQ.js +6 -0
- package/dist/flags/1x1/cp-OJP4OSI_.js +6 -0
- package/dist/flags/1x1/cr-DjqO_sqT.js +6 -0
- package/dist/flags/1x1/cu-DHMTbgXc.js +6 -0
- package/dist/flags/1x1/cv-DTvqMV9p.js +6 -0
- package/dist/flags/1x1/cw-0DPof2UJ.js +6 -0
- package/dist/flags/1x1/cx-PKvWuYvr.js +6 -0
- package/dist/flags/1x1/cy-DNqBiZyI.js +6 -0
- package/dist/flags/1x1/cz-yXbpq9dW.js +6 -0
- package/dist/flags/1x1/de-C8riQ_D-.js +6 -0
- package/dist/flags/1x1/dg-Bq-Ud7da.js +6 -0
- package/dist/flags/1x1/dj-ND_VVEYo.js +6 -0
- package/dist/flags/1x1/dk-Bomd7YHA.js +6 -0
- package/dist/flags/1x1/dm-qszJkHRv.js +6 -0
- package/dist/flags/1x1/do-Bv0isgHk.js +6 -0
- package/dist/flags/1x1/dz-CUA3AvZL.js +6 -0
- package/dist/flags/1x1/eac-Ba3w7XxY.js +6 -0
- package/dist/flags/1x1/ec-CcdQ1fLf.js +6 -0
- package/dist/flags/1x1/ee-B-9UyJkI.js +6 -0
- package/dist/flags/1x1/eg-CZg9XtnS.js +6 -0
- package/dist/flags/1x1/eh-COr5bQZC.js +6 -0
- package/dist/flags/1x1/er-CYCgUEjl.js +6 -0
- package/dist/flags/1x1/es-CZgLUvTm.js +6 -0
- package/dist/flags/1x1/es-ct-Bx84VtrH.js +6 -0
- package/dist/flags/1x1/es-ga-CYZIqZNg.js +6 -0
- package/dist/flags/1x1/es-pv-D_xA9FJj.js +6 -0
- package/dist/flags/1x1/et-7yKufKNW.js +6 -0
- package/dist/flags/1x1/eu-CkGTFKZG.js +6 -0
- package/dist/flags/1x1/fi-PhiA7TSZ.js +6 -0
- package/dist/flags/1x1/fj-D5HT3L1Q.js +6 -0
- package/dist/flags/1x1/fk-D1r8PWRL.js +6 -0
- package/dist/flags/1x1/fm-DzWMFpux.js +6 -0
- package/dist/flags/1x1/fo-Bu22hwIJ.js +6 -0
- package/dist/flags/1x1/fr-DSs3a2MO.js +6 -0
- package/dist/flags/1x1/ga-DYufGjqh.js +6 -0
- package/dist/flags/1x1/gb-DQrKw26J.js +6 -0
- package/dist/flags/1x1/gb-eng-CLG2z7wM.js +6 -0
- package/dist/flags/1x1/gb-nir-BBzZa87S.js +6 -0
- package/dist/flags/1x1/gb-sct-C0keZmXy.js +6 -0
- package/dist/flags/1x1/gb-wls-D2caXmYS.js +6 -0
- package/dist/flags/1x1/gd-B-wv-GsF.js +6 -0
- package/dist/flags/1x1/ge-CIgkNaAi.js +6 -0
- package/dist/flags/1x1/gf-CcFRsGEB.js +6 -0
- package/dist/flags/1x1/gg-CRVhi7RS.js +6 -0
- package/dist/flags/1x1/gh-ZIIas1gx.js +6 -0
- package/dist/flags/1x1/gi-aNP9A0DW.js +6 -0
- package/dist/flags/1x1/gl-BzgDzfSn.js +6 -0
- package/dist/flags/1x1/gm-D8gqU6yg.js +6 -0
- package/dist/flags/1x1/gn-CUq13_pA.js +6 -0
- package/dist/flags/1x1/gp-CccqVUWo.js +6 -0
- package/dist/flags/1x1/gq-NOK-yjB9.js +6 -0
- package/dist/flags/1x1/gr-BuFzOeZR.js +6 -0
- package/dist/flags/1x1/gs-BTz9XWE1.js +6 -0
- package/dist/flags/1x1/gt-9_0vebb7.js +6 -0
- package/dist/flags/1x1/gu-BYwEbw67.js +6 -0
- package/dist/flags/1x1/gw-C6MASvA4.js +6 -0
- package/dist/flags/1x1/gy-CVJynGMI.js +6 -0
- package/dist/flags/1x1/hk-BK85zxRX.js +6 -0
- package/dist/flags/1x1/hm-C2DNwCnS.js +6 -0
- package/dist/flags/1x1/hn-CovnHmxi.js +6 -0
- package/dist/flags/1x1/hr-Xiutii4P.js +6 -0
- package/dist/flags/1x1/ht-BW7wprT-.js +6 -0
- package/dist/flags/1x1/hu-CYCcM7tq.js +6 -0
- package/dist/flags/1x1/ic-D4t41hrd.js +6 -0
- package/dist/flags/1x1/id-Ch177K4Q.js +6 -0
- package/dist/flags/1x1/ie-jdf-in47.js +6 -0
- package/dist/flags/1x1/il-CWEqhQTm.js +6 -0
- package/dist/flags/1x1/im-DpubIP14.js +6 -0
- package/dist/flags/1x1/in-G0wDC92n.js +6 -0
- package/dist/flags/1x1/io-DBkbcbKG.js +6 -0
- package/dist/flags/1x1/iq-B0897GsN.js +6 -0
- package/dist/flags/1x1/ir-Decsonvj.js +6 -0
- package/dist/flags/1x1/is-yn_GGMix.js +6 -0
- package/dist/flags/1x1/it-CzpFdgc2.js +6 -0
- package/dist/flags/1x1/je-DXwHIhBp.js +6 -0
- package/dist/flags/1x1/jm-ByvGfY6R.js +6 -0
- package/dist/flags/1x1/jo-Bikg0_s4.js +6 -0
- package/dist/flags/1x1/jp-BJaExao-.js +6 -0
- package/dist/flags/1x1/ke-KCANUoB9.js +6 -0
- package/dist/flags/1x1/kg-DpLGJA_E.js +6 -0
- package/dist/flags/1x1/kh-B1cMsgzP.js +6 -0
- package/dist/flags/1x1/ki-CyD2gdcT.js +6 -0
- package/dist/flags/1x1/km-53bL6Y8i.js +6 -0
- package/dist/flags/1x1/kn-BEyi33Ey.js +6 -0
- package/dist/flags/1x1/kp-YyqYNIfr.js +6 -0
- package/dist/flags/1x1/kr-C6fy0Xrq.js +6 -0
- package/dist/flags/1x1/kw-CTe0WExz.js +6 -0
- package/dist/flags/1x1/ky-FVDALRC1.js +6 -0
- package/dist/flags/1x1/kz-ByrgvZkC.js +6 -0
- package/dist/flags/1x1/la-xaxFHwKj.js +6 -0
- package/dist/flags/1x1/lb-CVRf8x3C.js +6 -0
- package/dist/flags/1x1/lc-DggZ-MAM.js +6 -0
- package/dist/flags/1x1/li-BjKARW5X.js +6 -0
- package/dist/flags/1x1/lk-DKp1FG25.js +6 -0
- package/dist/flags/1x1/lr-CRdeQLZp.js +6 -0
- package/dist/flags/1x1/ls-DsmPxnLE.js +6 -0
- package/dist/flags/1x1/lt-ppTAzYgZ.js +6 -0
- package/dist/flags/1x1/lu-Uh-VRqcJ.js +6 -0
- package/dist/flags/1x1/lv-QLDxm2XB.js +6 -0
- package/dist/flags/1x1/ly-CALXfGtF.js +6 -0
- package/dist/flags/1x1/ma-BUv6slh8.js +6 -0
- package/dist/flags/1x1/mc-DbRaSw7Z.js +6 -0
- package/dist/flags/1x1/md-BAbGk1u-.js +6 -0
- package/dist/flags/1x1/me-Cn9otM5-.js +6 -0
- package/dist/flags/1x1/mf-VN2Hxfy5.js +6 -0
- package/dist/flags/1x1/mg-DMFg3gWK.js +6 -0
- package/dist/flags/1x1/mh-mLFhHPfv.js +6 -0
- package/dist/flags/1x1/mk-BYU_KcQn.js +6 -0
- package/dist/flags/1x1/ml-CxUloBPA.js +6 -0
- package/dist/flags/1x1/mm-B1GvkWeA.js +6 -0
- package/dist/flags/1x1/mn-CGxIncf0.js +6 -0
- package/dist/flags/1x1/mo-mVFWphva.js +6 -0
- package/dist/flags/1x1/mp-n86_oaVp.js +6 -0
- package/dist/flags/1x1/mq-BKYfdZ6x.js +6 -0
- package/dist/flags/1x1/mr-fpb5SDjH.js +6 -0
- package/dist/flags/1x1/ms-DJ2RoBuC.js +6 -0
- package/dist/flags/1x1/mt-DRCD8PbR.js +6 -0
- package/dist/flags/1x1/mu-DIwBWq5I.js +6 -0
- package/dist/flags/1x1/mv-BMA6eE3m.js +6 -0
- package/dist/flags/1x1/mw-Ebs1mO8O.js +6 -0
- package/dist/flags/1x1/mx-BH8Za6dt.js +6 -0
- package/dist/flags/1x1/my-fd4tKRXC.js +6 -0
- package/dist/flags/1x1/mz-44mCvMzP.js +6 -0
- package/dist/flags/1x1/na-Bc17qIOR.js +6 -0
- package/dist/flags/1x1/nc-BEiZyZM6.js +6 -0
- package/dist/flags/1x1/ne-3wSQFOSk.js +6 -0
- package/dist/flags/1x1/nf-BBG5Bp7Y.js +6 -0
- package/dist/flags/1x1/ng-BQyiUScm.js +6 -0
- package/dist/flags/1x1/ni-CZP_RJzQ.js +6 -0
- package/dist/flags/1x1/nl-Dod3207s.js +6 -0
- package/dist/flags/1x1/no-DDekGkfu.js +6 -0
- package/dist/flags/1x1/np-DMopwWij.js +6 -0
- package/dist/flags/1x1/nr-nDPYj76A.js +6 -0
- package/dist/flags/1x1/nu-DEw3csOK.js +6 -0
- package/dist/flags/1x1/nz-CxrPsIb1.js +6 -0
- package/dist/flags/1x1/om-CyVvqtLi.js +6 -0
- package/dist/flags/1x1/pa-BO-gt67V.js +6 -0
- package/dist/flags/1x1/pc-CBmqnctk.js +6 -0
- package/dist/flags/1x1/pe-B9LhqS9S.js +6 -0
- package/dist/flags/1x1/pf-hjhdLHA3.js +6 -0
- package/dist/flags/1x1/pg-C-wKaAj0.js +6 -0
- package/dist/flags/1x1/ph-C9JTsx92.js +6 -0
- package/dist/flags/1x1/pk-DrN39bQT.js +6 -0
- package/dist/flags/1x1/pl-CrEpBNNE.js +6 -0
- package/dist/flags/1x1/pm-Btdxx1lW.js +6 -0
- package/dist/flags/1x1/pn-DzqRGCQA.js +6 -0
- package/dist/flags/1x1/pr-U6tnqx1t.js +6 -0
- package/dist/flags/1x1/ps-DHIlPg16.js +6 -0
- package/dist/flags/1x1/pt-Cj6X3TbL.js +6 -0
- package/dist/flags/1x1/pw-UpjwxQ0z.js +6 -0
- package/dist/flags/1x1/py-Cn2qwuG7.js +6 -0
- package/dist/flags/1x1/qa-Biuy4UWu.js +6 -0
- package/dist/flags/1x1/re-B25_JOkL.js +6 -0
- package/dist/flags/1x1/ro-B9VO8uV5.js +6 -0
- package/dist/flags/1x1/rs-CS2zrjg3.js +6 -0
- package/dist/flags/1x1/ru-7-OkapKW.js +6 -0
- package/dist/flags/1x1/rw-COm3RNUj.js +6 -0
- package/dist/flags/1x1/sa-DhosoqBh.js +6 -0
- package/dist/flags/1x1/sb-dEOdp0-U.js +6 -0
- package/dist/flags/1x1/sc-DH5lZ-X1.js +6 -0
- package/dist/flags/1x1/sd-CjLepWrS.js +6 -0
- package/dist/flags/1x1/se-fjKCg3uq.js +6 -0
- package/dist/flags/1x1/sg-CvvPJuek.js +6 -0
- package/dist/flags/1x1/sh-BACbCuQV.js +6 -0
- package/dist/flags/1x1/sh-ac-B8mGy82J.js +6 -0
- package/dist/flags/1x1/sh-hl-CdNllvu3.js +6 -0
- package/dist/flags/1x1/sh-ta-BpzAidVW.js +6 -0
- package/dist/flags/1x1/si-C9wDaOie.js +6 -0
- package/dist/flags/1x1/sj-DmQ-l-GG.js +6 -0
- package/dist/flags/1x1/sk-csj-UEpd.js +6 -0
- package/dist/flags/1x1/sl-66khImvm.js +6 -0
- package/dist/flags/1x1/sm-Dw-fwny-.js +6 -0
- package/dist/flags/1x1/sn-DFOPTJuS.js +6 -0
- package/dist/flags/1x1/so-NmeQT-wa.js +6 -0
- package/dist/flags/1x1/sr-DY7R8R1H.js +6 -0
- package/dist/flags/1x1/ss-BRaIhTBI.js +6 -0
- package/dist/flags/1x1/st-DbWpIgL_.js +6 -0
- package/dist/flags/1x1/sv-CCR1P023.js +6 -0
- package/dist/flags/1x1/sx-Dqve8sOF.js +6 -0
- package/dist/flags/1x1/sy-uUGakD8a.js +6 -0
- package/dist/flags/1x1/sz-DnPvNXRi.js +6 -0
- package/dist/flags/1x1/tc-sWa0Hka-.js +6 -0
- package/dist/flags/1x1/td-BH8NEKMZ.js +6 -0
- package/dist/flags/1x1/tf-DGr1cSmp.js +6 -0
- package/dist/flags/1x1/tg-CzXZhjV5.js +6 -0
- package/dist/flags/1x1/th-Bd7yXeo8.js +6 -0
- package/dist/flags/1x1/tj-BXE2hU6d.js +6 -0
- package/dist/flags/1x1/tk-BvAJwB5n.js +6 -0
- package/dist/flags/1x1/tl-Cf7eXtjJ.js +6 -0
- package/dist/flags/1x1/tm-C8XHem7_.js +6 -0
- package/dist/flags/1x1/tn-A574RUnc.js +6 -0
- package/dist/flags/1x1/to-rZfgCO86.js +6 -0
- package/dist/flags/1x1/tr-DRqxGnLc.js +6 -0
- package/dist/flags/1x1/tt-BciLQvVK.js +6 -0
- package/dist/flags/1x1/tv-DLgi8rdd.js +6 -0
- package/dist/flags/1x1/tw-BcCRKYqW.js +6 -0
- package/dist/flags/1x1/tz-BjDpP6SA.js +6 -0
- package/dist/flags/1x1/ua-DPOXiMzw.js +6 -0
- package/dist/flags/1x1/ug-C0vrxL4F.js +6 -0
- package/dist/flags/1x1/um-DqpOJgNl.js +6 -0
- package/dist/flags/1x1/un-Bk0wLUvy.js +6 -0
- package/dist/flags/1x1/us-f-Xdfkne.js +6 -0
- package/dist/flags/1x1/uy-BrUGNLWK.js +6 -0
- package/dist/flags/1x1/uz-BKDQBNxr.js +6 -0
- package/dist/flags/1x1/va-BderRROs.js +6 -0
- package/dist/flags/1x1/vc-DPo9h-3V.js +6 -0
- package/dist/flags/1x1/ve-DrDTrDyq.js +6 -0
- package/dist/flags/1x1/vg-DxocsseP.js +6 -0
- package/dist/flags/1x1/vi-DsQ40wwi.js +6 -0
- package/dist/flags/1x1/vn-YEvgXi4o.js +6 -0
- package/dist/flags/1x1/vu-Dy0sZ3Ly.js +6 -0
- package/dist/flags/1x1/wf-BZfYe7wF.js +6 -0
- package/dist/flags/1x1/ws-C4FYzmn6.js +6 -0
- package/dist/flags/1x1/xk-DZFilPCh.js +6 -0
- package/dist/flags/1x1/xx-0UytpHfL.js +6 -0
- package/dist/flags/1x1/ye-CZMZu1ZB.js +6 -0
- package/dist/flags/1x1/yt-DBYDbgIm.js +6 -0
- package/dist/flags/1x1/za-ClvA8Dny.js +6 -0
- package/dist/flags/1x1/zm-D7L0dPCl.js +6 -0
- package/dist/flags/1x1/zw-DpCNoBk-.js +6 -0
- package/dist/flags/4x3/ad-BwDf_AgT.js +6 -0
- package/dist/flags/4x3/ae-KPB0rRvk.js +6 -0
- package/dist/flags/4x3/af-CPngQm7Z.js +6 -0
- package/dist/flags/4x3/ag-Cvrhc-BK.js +6 -0
- package/dist/flags/4x3/ai-Dex-oYnB.js +6 -0
- package/dist/flags/4x3/al-C2rnSjJ-.js +6 -0
- package/dist/flags/4x3/am-u91DPBsf.js +6 -0
- package/dist/flags/4x3/ao-B0AdkYiM.js +6 -0
- package/dist/flags/4x3/aq-5iFhwg5i.js +6 -0
- package/dist/flags/4x3/ar-BLK5U8Sr.js +6 -0
- package/dist/flags/4x3/arab-zVkSqGyE.js +6 -0
- package/dist/flags/4x3/as-CgVHGYml.js +6 -0
- package/dist/flags/4x3/asean-D0zehsSg.js +6 -0
- package/dist/flags/4x3/at-Cge2pfYH.js +6 -0
- package/dist/flags/4x3/au-BUHitxZ7.js +6 -0
- package/dist/flags/4x3/aw-9FVkX8eg.js +6 -0
- package/dist/flags/4x3/ax-BhOsTuXD.js +6 -0
- package/dist/flags/4x3/az-_xXDkPBy.js +6 -0
- package/dist/flags/4x3/ba-czeMkj9F.js +6 -0
- package/dist/flags/4x3/bb-CLWVnfR9.js +6 -0
- package/dist/flags/4x3/bd-B-3DhjKL.js +6 -0
- package/dist/flags/4x3/be-Bpxb3n8W.js +6 -0
- package/dist/flags/4x3/bf-DJ8HJgOv.js +6 -0
- package/dist/flags/4x3/bg-CcHaZEiP.js +6 -0
- package/dist/flags/4x3/bh-CgYuyQai.js +6 -0
- package/dist/flags/4x3/bi-DFDeFqbN.js +6 -0
- package/dist/flags/4x3/bj-BJ2Mv3Qn.js +6 -0
- package/dist/flags/4x3/bl-49c6xkK_.js +6 -0
- package/dist/flags/4x3/bm-DUnGX933.js +6 -0
- package/dist/flags/4x3/bn-D5OzuSfC.js +6 -0
- package/dist/flags/4x3/bo-h7n1xblU.js +6 -0
- package/dist/flags/4x3/bq-kCIKVZCB.js +6 -0
- package/dist/flags/4x3/br-CeKOfZ4p.js +6 -0
- package/dist/flags/4x3/bs-D-dpb2Wt.js +6 -0
- package/dist/flags/4x3/bt-DYguJJqP.js +6 -0
- package/dist/flags/4x3/bv-CxfcHUGg.js +6 -0
- package/dist/flags/4x3/bw-Dmlo2Xrl.js +6 -0
- package/dist/flags/4x3/by-DpJ2tbSJ.js +6 -0
- package/dist/flags/4x3/bz-C8KkVEct.js +6 -0
- package/dist/flags/4x3/ca-B0vqIN4C.js +6 -0
- package/dist/flags/4x3/cc-1AhJzny1.js +6 -0
- package/dist/flags/4x3/cd-C15eWPm0.js +6 -0
- package/dist/flags/4x3/cefta-T0n99-tg.js +6 -0
- package/dist/flags/4x3/cf-B-N0dXk3.js +6 -0
- package/dist/flags/4x3/cg-RBObVHlS.js +6 -0
- package/dist/flags/4x3/ch-BAwraSMD.js +6 -0
- package/dist/flags/4x3/ci-LZ8Apa_f.js +6 -0
- package/dist/flags/4x3/ck-DxgfUgaV.js +6 -0
- package/dist/flags/4x3/cl-Dn5PmBH_.js +6 -0
- package/dist/flags/4x3/cm-DT7ZRDLD.js +6 -0
- package/dist/flags/4x3/cn-Uxu_n0TL.js +6 -0
- package/dist/flags/4x3/co-DUXgiBfK.js +6 -0
- package/dist/flags/4x3/cp-DBFQpzcn.js +6 -0
- package/dist/flags/4x3/cr-B3r-jfDb.js +6 -0
- package/dist/flags/4x3/cu-C2AkPSKm.js +6 -0
- package/dist/flags/4x3/cv-BSCHMcjA.js +6 -0
- package/dist/flags/4x3/cw-CTl-jMEj.js +6 -0
- package/dist/flags/4x3/cx-Blx2-PJu.js +6 -0
- package/dist/flags/4x3/cy-CmfldoYM.js +6 -0
- package/dist/flags/4x3/cz-Bc4FVt_z.js +6 -0
- package/dist/flags/4x3/de-CwT-mfsC.js +6 -0
- package/dist/flags/4x3/dg-CMYWTwG_.js +6 -0
- package/dist/flags/4x3/dj-Bog9QII6.js +6 -0
- package/dist/flags/4x3/dk-CEB1aRPZ.js +6 -0
- package/dist/flags/4x3/dm-idTEOH5b.js +6 -0
- package/dist/flags/4x3/do-C-xUzrhA.js +6 -0
- package/dist/flags/4x3/dz-B0XT3h3L.js +6 -0
- package/dist/flags/4x3/eac-BYyC7gTx.js +6 -0
- package/dist/flags/4x3/ec-DHPDQJB4.js +6 -0
- package/dist/flags/4x3/ee-YEP7-YiI.js +6 -0
- package/dist/flags/4x3/eg-DphZyJ3R.js +6 -0
- package/dist/flags/4x3/eh-BMMUn6kT.js +6 -0
- package/dist/flags/4x3/er-02p7NzRX.js +6 -0
- package/dist/flags/4x3/es-CxCY_HyC.js +6 -0
- package/dist/flags/4x3/es-ct-COxgK6gN.js +6 -0
- package/dist/flags/4x3/es-ga-YtOQPf2W.js +6 -0
- package/dist/flags/4x3/es-pv-BJWGTixJ.js +6 -0
- package/dist/flags/4x3/et-C9te-XyE.js +6 -0
- package/dist/flags/4x3/eu-D3pBiamG.js +6 -0
- package/dist/flags/4x3/fi-p8gKOqu5.js +6 -0
- package/dist/flags/4x3/fj-WA6Sj14C.js +6 -0
- package/dist/flags/4x3/fk-C3YQpfie.js +6 -0
- package/dist/flags/4x3/fm-WlAfSSOy.js +6 -0
- package/dist/flags/4x3/fo-CnipJFZB.js +6 -0
- package/dist/flags/4x3/fr-wcxjBEM6.js +6 -0
- package/dist/flags/4x3/ga-D4QkmEbT.js +6 -0
- package/dist/flags/4x3/gb-Iu59IqG4.js +6 -0
- package/dist/flags/4x3/gb-eng-J2KeRbF6.js +6 -0
- package/dist/flags/4x3/gb-nir-D8v4gixn.js +6 -0
- package/dist/flags/4x3/gb-sct-eUMUOmec.js +6 -0
- package/dist/flags/4x3/gb-wls-DNa6cGuk.js +6 -0
- package/dist/flags/4x3/gd-CcutC5Jv.js +6 -0
- package/dist/flags/4x3/ge-BT79hKsn.js +6 -0
- package/dist/flags/4x3/gf-C6HTKVwe.js +6 -0
- package/dist/flags/4x3/gg-CBz1K2KV.js +6 -0
- package/dist/flags/4x3/gh-C_hnux9x.js +6 -0
- package/dist/flags/4x3/gi-DwDUY2CR.js +6 -0
- package/dist/flags/4x3/gl-ul6S0drK.js +6 -0
- package/dist/flags/4x3/gm-C8-_GrOJ.js +6 -0
- package/dist/flags/4x3/gn-DpAS4Emu.js +6 -0
- package/dist/flags/4x3/gp-v6jMGkOl.js +6 -0
- package/dist/flags/4x3/gq-BHcHFt2R.js +6 -0
- package/dist/flags/4x3/gr-oAWzdDL5.js +6 -0
- package/dist/flags/4x3/gs-Bv3j5ihx.js +6 -0
- package/dist/flags/4x3/gt-D58m-PIf.js +6 -0
- package/dist/flags/4x3/gu-DA1wyGyA.js +6 -0
- package/dist/flags/4x3/gw-C4R5CLxA.js +6 -0
- package/dist/flags/4x3/gy-B03XmJhj.js +6 -0
- package/dist/flags/4x3/hk-DR5PFCoc.js +6 -0
- package/dist/flags/4x3/hm-a3gZlVMF.js +6 -0
- package/dist/flags/4x3/hn-DxaVMgH9.js +6 -0
- package/dist/flags/4x3/hr-BDsdEZ9G.js +6 -0
- package/dist/flags/4x3/ht-DgQNMO2Q.js +6 -0
- package/dist/flags/4x3/hu-C2qm-xRb.js +6 -0
- package/dist/flags/4x3/ic-D9RMzjWn.js +6 -0
- package/dist/flags/4x3/id-DEj8jtC8.js +6 -0
- package/dist/flags/4x3/ie-6bydCA7G.js +6 -0
- package/dist/flags/4x3/il-D0CMPynd.js +6 -0
- package/dist/flags/4x3/im-Bk7Igczt.js +6 -0
- package/dist/flags/4x3/in-CSwUkXPH.js +6 -0
- package/dist/flags/4x3/io-Dr_xhh5f.js +6 -0
- package/dist/flags/4x3/iq-C0Met1sv.js +6 -0
- package/dist/flags/4x3/ir-CLPSHIql.js +6 -0
- package/dist/flags/4x3/is-D5nGt-6k.js +6 -0
- package/dist/flags/4x3/it-B2NNW4yZ.js +6 -0
- package/dist/flags/4x3/je-BPuVMtBX.js +6 -0
- package/dist/flags/4x3/jm-DFjIgq_Z.js +6 -0
- package/dist/flags/4x3/jo-DnWyEAoq.js +6 -0
- package/dist/flags/4x3/jp-DaC3ftqV.js +6 -0
- package/dist/flags/4x3/ke-DQltk3Nm.js +6 -0
- package/dist/flags/4x3/kg-B9wByXjn.js +6 -0
- package/dist/flags/4x3/kh-DsD475kI.js +6 -0
- package/dist/flags/4x3/ki-BYmKP6AJ.js +6 -0
- package/dist/flags/4x3/km-Dj1BRPW5.js +6 -0
- package/dist/flags/4x3/kn-DFhgS6Sx.js +6 -0
- package/dist/flags/4x3/kp-CeyDf8wh.js +6 -0
- package/dist/flags/4x3/kr-DruUFoV6.js +6 -0
- package/dist/flags/4x3/kw-xFITUXkK.js +6 -0
- package/dist/flags/4x3/ky-CDzTcYQP.js +6 -0
- package/dist/flags/4x3/kz-CA-J-BrJ.js +6 -0
- package/dist/flags/4x3/la-DFsAJIHb.js +6 -0
- package/dist/flags/4x3/lb-Bmhu7qDU.js +6 -0
- package/dist/flags/4x3/lc-c1kA4IQi.js +6 -0
- package/dist/flags/4x3/li-D7EkWWIr.js +6 -0
- package/dist/flags/4x3/lk-DjV8GlBc.js +6 -0
- package/dist/flags/4x3/lr-D_nRBy7g.js +6 -0
- package/dist/flags/4x3/ls-BQtizfhz.js +6 -0
- package/dist/flags/4x3/lt-BtwRhwiF.js +6 -0
- package/dist/flags/4x3/lu-BuGEmjGI.js +6 -0
- package/dist/flags/4x3/lv-BzSskWH0.js +6 -0
- package/dist/flags/4x3/ly-BQOllMQt.js +6 -0
- package/dist/flags/4x3/ma-Sdg_SxjA.js +6 -0
- package/dist/flags/4x3/mc-EjXwAk3n.js +6 -0
- package/dist/flags/4x3/md-Dq3fri60.js +6 -0
- package/dist/flags/4x3/me-Czx-10De.js +6 -0
- package/dist/flags/4x3/mf-Do15dk7j.js +6 -0
- package/dist/flags/4x3/mg-CXajwe-a.js +6 -0
- package/dist/flags/4x3/mh-DnobhgT4.js +6 -0
- package/dist/flags/4x3/mk-BRiJw8Tt.js +6 -0
- package/dist/flags/4x3/ml-aAwTONwn.js +6 -0
- package/dist/flags/4x3/mm-C1m5tOBJ.js +6 -0
- package/dist/flags/4x3/mn-C9ULzcTg.js +6 -0
- package/dist/flags/4x3/mo-DeMiFKJD.js +6 -0
- package/dist/flags/4x3/mp-BWLTjTll.js +6 -0
- package/dist/flags/4x3/mq-DVS4CJ07.js +6 -0
- package/dist/flags/4x3/mr-DGqyf4qY.js +6 -0
- package/dist/flags/4x3/ms-rAHNRTea.js +6 -0
- package/dist/flags/4x3/mt-Bm7FiwOE.js +6 -0
- package/dist/flags/4x3/mu-JFEJCkzB.js +6 -0
- package/dist/flags/4x3/mv-BTeEwa1J.js +6 -0
- package/dist/flags/4x3/mw-D0tRc77D.js +6 -0
- package/dist/flags/4x3/mx-CUaww8P5.js +6 -0
- package/dist/flags/4x3/my-DAanXl_d.js +6 -0
- package/dist/flags/4x3/mz-BIGM9L2m.js +6 -0
- package/dist/flags/4x3/na-B0qW9JE2.js +6 -0
- package/dist/flags/4x3/nc-WNgLHyf6.js +6 -0
- package/dist/flags/4x3/ne-DidYQTz7.js +6 -0
- package/dist/flags/4x3/nf-B72F6aJy.js +6 -0
- package/dist/flags/4x3/ng-DvIbB1xq.js +6 -0
- package/dist/flags/4x3/ni-BH4HRye2.js +6 -0
- package/dist/flags/4x3/nl-B43Plb7G.js +6 -0
- package/dist/flags/4x3/no-DcP-jaEB.js +6 -0
- package/dist/flags/4x3/np-zDFTSsAD.js +6 -0
- package/dist/flags/4x3/nr-Dne6n-U4.js +6 -0
- package/dist/flags/4x3/nu-BcXVN0pM.js +6 -0
- package/dist/flags/4x3/nz-BXB8x6bx.js +6 -0
- package/dist/flags/4x3/om-Dv3qsB7p.js +6 -0
- package/dist/flags/4x3/pa-CHIJ1Gj2.js +6 -0
- package/dist/flags/4x3/pc-VmqK_LID.js +6 -0
- package/dist/flags/4x3/pe-RvGqR0R-.js +6 -0
- package/dist/flags/4x3/pf-DRmCnqA_.js +6 -0
- package/dist/flags/4x3/pg-Df7s4vFf.js +6 -0
- package/dist/flags/4x3/ph-B3B1UTrp.js +6 -0
- package/dist/flags/4x3/pk-Dk1ksVx0.js +6 -0
- package/dist/flags/4x3/pl-D3tYaKmt.js +6 -0
- package/dist/flags/4x3/pm-SV9tklTs.js +6 -0
- package/dist/flags/4x3/pn-DQGkKgDr.js +6 -0
- package/dist/flags/4x3/pr-BPSfxHTy.js +6 -0
- package/dist/flags/4x3/ps-mnWMreGY.js +6 -0
- package/dist/flags/4x3/pt-VcneVeGg.js +6 -0
- package/dist/flags/4x3/pw-KY-EGmiX.js +6 -0
- package/dist/flags/4x3/py-CUyHPIqw.js +6 -0
- package/dist/flags/4x3/qa-BoCDaZ5y.js +6 -0
- package/dist/flags/4x3/re-DZBesO0V.js +6 -0
- package/dist/flags/4x3/ro-B7sesSSL.js +6 -0
- package/dist/flags/4x3/rs-B7-UORMV.js +6 -0
- package/dist/flags/4x3/ru-CdydeEda.js +6 -0
- package/dist/flags/4x3/rw-BITmNEbj.js +6 -0
- package/dist/flags/4x3/sa-CEgkBKZZ.js +6 -0
- package/dist/flags/4x3/sb-23uLUQKM.js +6 -0
- package/dist/flags/4x3/sc-DErwXRuR.js +6 -0
- package/dist/flags/4x3/sd-CjpBOzMD.js +6 -0
- package/dist/flags/4x3/se-XCNX4vGY.js +6 -0
- package/dist/flags/4x3/sg-BtnYiuwt.js +6 -0
- package/dist/flags/4x3/sh-6GY_cF-o.js +6 -0
- package/dist/flags/4x3/sh-ac-CTk21Nif.js +6 -0
- package/dist/flags/4x3/sh-hl-8dH1yqR1.js +6 -0
- package/dist/flags/4x3/sh-ta-Cdv7EnHK.js +6 -0
- package/dist/flags/4x3/si-Cw1Vyq_K.js +6 -0
- package/dist/flags/4x3/sj-CL2an3Th.js +6 -0
- package/dist/flags/4x3/sk-C4liHPFg.js +6 -0
- package/dist/flags/4x3/sl-BEPk-LAG.js +6 -0
- package/dist/flags/4x3/sm-C1vEPLxP.js +6 -0
- package/dist/flags/4x3/sn-Covr6Xmh.js +6 -0
- package/dist/flags/4x3/so-DDPk0fUE.js +6 -0
- package/dist/flags/4x3/sr-MDcgyROR.js +6 -0
- package/dist/flags/4x3/ss-Dy5O7Lgr.js +6 -0
- package/dist/flags/4x3/st-EMIr_lQj.js +6 -0
- package/dist/flags/4x3/sv-uTqJibDY.js +6 -0
- package/dist/flags/4x3/sx-CgbBHNON.js +6 -0
- package/dist/flags/4x3/sy-C4aYR08W.js +6 -0
- package/dist/flags/4x3/sz-BAgMx7HS.js +6 -0
- package/dist/flags/4x3/tc-DMg2Jb3V.js +6 -0
- package/dist/flags/4x3/td-BrA1SxCq.js +6 -0
- package/dist/flags/4x3/tf-DoYbh5AE.js +6 -0
- package/dist/flags/4x3/tg-CMdw-T1t.js +6 -0
- package/dist/flags/4x3/th-B8VvXk2o.js +6 -0
- package/dist/flags/4x3/tj-9RifD4z9.js +6 -0
- package/dist/flags/4x3/tk-D332FDkf.js +6 -0
- package/dist/flags/4x3/tl-DepW4rFc.js +6 -0
- package/dist/flags/4x3/tm-DlPsOPJl.js +6 -0
- package/dist/flags/4x3/tn-_n6aSOVC.js +6 -0
- package/dist/flags/4x3/to-BjHOduFR.js +6 -0
- package/dist/flags/4x3/tr-D8FSsqzD.js +6 -0
- package/dist/flags/4x3/tt-DF_MyPwW.js +6 -0
- package/dist/flags/4x3/tv-CaZzLQ4T.js +6 -0
- package/dist/flags/4x3/tw-DwoJdato.js +6 -0
- package/dist/flags/4x3/tz-Cwgfqcan.js +6 -0
- package/dist/flags/4x3/ua-DczPl-DK.js +6 -0
- package/dist/flags/4x3/ug-Bhd5tzWZ.js +6 -0
- package/dist/flags/4x3/um-xZ3EHJTJ.js +6 -0
- package/dist/flags/4x3/un-DW3M9Rfg.js +6 -0
- package/dist/flags/4x3/us-BZHTCCSU.js +6 -0
- package/dist/flags/4x3/uy-DkzWeMZ_.js +6 -0
- package/dist/flags/4x3/uz-CO7BpRjt.js +6 -0
- package/dist/flags/4x3/va-CuzPfqQ5.js +6 -0
- package/dist/flags/4x3/vc-Dvt-xnVp.js +6 -0
- package/dist/flags/4x3/ve-DUN0cG2f.js +6 -0
- package/dist/flags/4x3/vg-BnMCm3Lp.js +6 -0
- package/dist/flags/4x3/vi-a5qpfbwf.js +6 -0
- package/dist/flags/4x3/vn-Mfo0Etd-.js +6 -0
- package/dist/flags/4x3/vu-CMXE67-m.js +6 -0
- package/dist/flags/4x3/wf-C2pOdB7O.js +6 -0
- package/dist/flags/4x3/ws-UNuo3E3p.js +6 -0
- package/dist/flags/4x3/xk-CyeCbLw7.js +6 -0
- package/dist/flags/4x3/xx-X7wcWWS4.js +6 -0
- package/dist/flags/4x3/ye-BGZWYDat.js +6 -0
- package/dist/flags/4x3/yt-zZ_nlbyQ.js +6 -0
- package/dist/flags/4x3/za-T6vuGNwj.js +6 -0
- package/dist/flags/4x3/zm-BbWQxaas.js +6 -0
- package/dist/flags/4x3/zw-CJUOj-vi.js +6 -0
- package/dist/flags.d.ts +50 -0
- package/dist/flags.js +999 -0
- package/dist/flags.js.map +1 -0
- package/dist/flow.css +8648 -0
- package/dist/flow.d.ts +6452 -0
- package/dist/flow.js +29982 -0
- package/dist/flow.js.map +1 -0
- package/dist/index-C3WAwKdm.d.ts +6363 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/src-Ds9ArSaP.js +20940 -0
- package/dist/src-Ds9ArSaP.js.map +1 -0
- package/dist/styles.css +23945 -0
- package/package.json +191 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Functional Source License, Version 1.1, ALv2 Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-ALv2
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2026 Natalia Mesquita
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly display
|
|
28
|
+
and redistribute the Software for any Permitted Purpose identified below.
|
|
29
|
+
|
|
30
|
+
### Permitted Purpose
|
|
31
|
+
|
|
32
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing Use
|
|
33
|
+
means making the Software available to others in a commercial product or
|
|
34
|
+
service that:
|
|
35
|
+
|
|
36
|
+
1. substitutes for the Software;
|
|
37
|
+
|
|
38
|
+
2. substitutes for any other product or service we offer using the Software
|
|
39
|
+
that exists as of the date we make the Software available; or
|
|
40
|
+
|
|
41
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
42
|
+
|
|
43
|
+
Permitted Purposes specifically include using the Software:
|
|
44
|
+
|
|
45
|
+
1. for your internal use and access;
|
|
46
|
+
|
|
47
|
+
2. for non-commercial education;
|
|
48
|
+
|
|
49
|
+
3. for non-commercial research; and
|
|
50
|
+
|
|
51
|
+
4. in connection with professional services that you provide to a licensee
|
|
52
|
+
using the Software in accordance with these Terms and Conditions.
|
|
53
|
+
|
|
54
|
+
### Patents
|
|
55
|
+
|
|
56
|
+
To the extent your use for a Permitted Purpose would necessarily infringe our
|
|
57
|
+
patents, the license grant above includes a license under our patents. If you
|
|
58
|
+
make a claim against any party that the Software infringes or contributes to
|
|
59
|
+
the infringement of any patent, then your patent license to the Software ends
|
|
60
|
+
immediately.
|
|
61
|
+
|
|
62
|
+
### Redistribution
|
|
63
|
+
|
|
64
|
+
The Terms and Conditions apply to all copies, modifications and derivatives of
|
|
65
|
+
the Software.
|
|
66
|
+
|
|
67
|
+
If you redistribute any copies, modifications or derivatives of the Software,
|
|
68
|
+
you must include a copy of or a link to these Terms and Conditions and not
|
|
69
|
+
remove any copyright notices provided in or with the Software.
|
|
70
|
+
|
|
71
|
+
### Disclaimer
|
|
72
|
+
|
|
73
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR
|
|
74
|
+
IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR
|
|
75
|
+
PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
76
|
+
|
|
77
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO THE
|
|
78
|
+
SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES,
|
|
79
|
+
EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
80
|
+
|
|
81
|
+
### Trademarks
|
|
82
|
+
|
|
83
|
+
Except for displaying the License Details and identifying us as the origin of
|
|
84
|
+
the Software, you have no right under these Terms and Conditions to use our
|
|
85
|
+
trademarks, trade names, service marks or product names.
|
|
86
|
+
|
|
87
|
+
## Grant of Future License
|
|
88
|
+
|
|
89
|
+
We hereby irrevocably grant you an additional license to use the Software under
|
|
90
|
+
the Apache License, Version 2.0 that is effective on the second anniversary of
|
|
91
|
+
the date we make the Software available. On or after that date, you may use the
|
|
92
|
+
Software under the Apache License, Version 2.0, in which case the following
|
|
93
|
+
will apply:
|
|
94
|
+
|
|
95
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
96
|
+
this file except in compliance with the License.
|
|
97
|
+
|
|
98
|
+
You may obtain a copy of the License at
|
|
99
|
+
|
|
100
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
101
|
+
|
|
102
|
+
Unless required by applicable law or agreed to in writing, software distributed
|
|
103
|
+
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
|
104
|
+
CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
105
|
+
specific language governing permissions and limitations under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# @datatechsolutions/tympan
|
|
2
|
+
|
|
3
|
+
Tympan: accessible React components (React 18.3 or 19), built on
|
|
4
|
+
[React Aria Components](https://react-spectrum.adobe.com/react-aria/) and
|
|
5
|
+
styled with plain CSS custom properties (`--ty-*`) in `@layer tympan`.
|
|
6
|
+
Tympan is an Astrlabe-family component published by Datatech. Licence: FSL-1.1-ALv2 (Functional Source License, Version 1.1,
|
|
7
|
+
Apache 2.0 Future License); see `LICENSE`.
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm run build -w @datatechsolutions/tympan # dist/index.js, flow.js, avatars.js, flags.js (+ dist/flags/*), styles.css, flow.css and types (builds @datatechsolutions/tympan-tokens and the flag modules first)
|
|
11
|
+
npm run typecheck -w @datatechsolutions/tympan
|
|
12
|
+
npm test -w @datatechsolutions/tympan # vitest + Testing Library + axe-core
|
|
13
|
+
npm run gallery -w @datatechsolutions/tympan # http://localhost:3310 (components, theme customizer, flow canvas at #/flow/...)
|
|
14
|
+
npm run gallery:build -w @datatechsolutions/tympan # static gallery in dist-gallery/
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Ready-made components and a ready theme system
|
|
18
|
+
|
|
19
|
+
Install (workspace or package registry), then import one stylesheet. It
|
|
20
|
+
already contains the `@datatechsolutions/tympan-tokens` stylesheet (every `--ty-*` custom
|
|
21
|
+
property for the `tympan`, `fakhir`, `neutral` and `high-contrast` presets, light and
|
|
22
|
+
dark), so no other CSS is needed:
|
|
23
|
+
|
|
24
|
+
```sh
|
|
25
|
+
npm install @datatechsolutions/tympan @datatechsolutions/tympan-tokens react react-dom
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import '@datatechsolutions/tympan/styles.css' // components + tokens, in @layer tympan.*
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
For a tailored theme, generate its CSS with `@datatechsolutions/tympan-tokens`
|
|
33
|
+
(`generateThemeCss(resolveTheme(config))`, see its README or the gallery's
|
|
34
|
+
theme customizer, which exports DTCG and CSS) and load it after the
|
|
35
|
+
stylesheet; then select it with `ThemeProvider theme="<name>"`. Hosts that use
|
|
36
|
+
the tokens without components can import `@datatechsolutions/tympan-tokens/tokens.css` alone.
|
|
37
|
+
|
|
38
|
+
**Print styles as themes (opt-in).** Every book style of
|
|
39
|
+
`@datatechsolutions/tympan-print` is also a UI theme named `print-<style>`
|
|
40
|
+
(palette, typography, radius and surface treatment of the style, light and
|
|
41
|
+
dark, WCAG AA). They are not in `styles.css`; load them after it and pass the
|
|
42
|
+
font map so the style's families load with the theme:
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
import '@datatechsolutions/tympan/styles.css'
|
|
46
|
+
import '@datatechsolutions/tympan-tokens/print-themes.css' // or print-themes/print-<style>.css for one
|
|
47
|
+
import { printThemeFontUrls } from '@datatechsolutions/tympan-tokens'
|
|
48
|
+
|
|
49
|
+
<ThemeProvider theme="print-minimo-de-tinta" fonts={printThemeFontUrls}>…</ThemeProvider>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Print styles renamed to neutral ids keep their old theme names as deprecated
|
|
53
|
+
aliases: `ThemeProvider` and `themeInitScript` read a stored or passed
|
|
54
|
+
`print-<old id>` (for example `print-tufte`) as the renamed theme
|
|
55
|
+
(`print-minimo-de-tinta`), store the new name and warn once in development.
|
|
56
|
+
See `PRINT_THEME_ALIASES` in the tokens README; the aliases go away in the
|
|
57
|
+
next major version.
|
|
58
|
+
|
|
59
|
+
### The research shell (no top bar)
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import '@datatechsolutions/tympan/styles.css'
|
|
63
|
+
import {
|
|
64
|
+
AppFrame, TympanProvider, FloatingActionBar, PageHeader, RailContextButton,
|
|
65
|
+
RailNavItem, RailNavSection, StatStrip, ThemeProvider, ToastProvider, messagesPtBR,
|
|
66
|
+
} from '@datatechsolutions/tympan'
|
|
67
|
+
import { CheckSquare, FileStack, Home } from 'lucide-react'
|
|
68
|
+
|
|
69
|
+
export function App() {
|
|
70
|
+
const [navOpen, setNavOpen] = useState(false)
|
|
71
|
+
return (
|
|
72
|
+
<TympanProvider baseMessages={messagesPtBR} locale="pt-BR" navigate={router.navigate} useHref={useHref}>
|
|
73
|
+
<ThemeProvider storageKey="ty-theme">
|
|
74
|
+
<ToastProvider>
|
|
75
|
+
<AppFrame
|
|
76
|
+
layout="rail"
|
|
77
|
+
ambient
|
|
78
|
+
navOpen={navOpen}
|
|
79
|
+
onNavOpenChange={setNavOpen}
|
|
80
|
+
brand="Laboratório Exemplo"
|
|
81
|
+
context={<RailContextButton scope="Laboratório Exemplo" name="Ar de Vila Aurora" />}
|
|
82
|
+
navigation={
|
|
83
|
+
<>
|
|
84
|
+
<RailNavSection>
|
|
85
|
+
<RailNavItem label="Visão geral" icon={Home} href="/overview" current />
|
|
86
|
+
</RailNavSection>
|
|
87
|
+
<RailNavSection label="Coletar">
|
|
88
|
+
<RailNavItem label="Verificação" icon={CheckSquare} href="/verify" count={12} />
|
|
89
|
+
</RailNavSection>
|
|
90
|
+
</>
|
|
91
|
+
}
|
|
92
|
+
account={<AccountMenu />}
|
|
93
|
+
dock={
|
|
94
|
+
<FloatingActionBar
|
|
95
|
+
anchor="container"
|
|
96
|
+
edge="bottom"
|
|
97
|
+
narrowVariant="tabbar"
|
|
98
|
+
destinations={[
|
|
99
|
+
{ id: 'overview', label: 'Visão geral', icon: Home, href: '/overview', active: true },
|
|
100
|
+
{ id: 'base', label: 'Base', icon: FileStack, href: '/base' },
|
|
101
|
+
]}
|
|
102
|
+
/>
|
|
103
|
+
}
|
|
104
|
+
>
|
|
105
|
+
<PageHeader variant="editorial" title="Visão geral" trail={[{ label: 'Laboratório Exemplo', href: '/org' }, { label: 'Visão geral' }]} lead="…" />
|
|
106
|
+
<StatStrip label="Estado da pesquisa" items={[{ id: 'r', value: 1460, label: 'leituras', href: '/base' }]} />
|
|
107
|
+
</AppFrame>
|
|
108
|
+
</ToastProvider>
|
|
109
|
+
</ThemeProvider>
|
|
110
|
+
</TympanProvider>
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- **`AppFrame layout="rail"`** (the default when no `topBar` is given): a
|
|
116
|
+
248 px rail (brand, context switcher, grouped sections, account at the
|
|
117
|
+
bottom; active item = accent-soft fill + 3 px inset bar), the page on one
|
|
118
|
+
glass sheet (radius 24, 12 px margin, own scroll) and the dock floating at
|
|
119
|
+
the bottom of the sheet. Below 768 px the rail becomes a drawer and the dock
|
|
120
|
+
a bottom tab bar (five items + "Mais", safe-area aware; "Mais" also opens
|
|
121
|
+
the rail). `layout="topbar"` keeps the wave-1 frame.
|
|
122
|
+
- **`FloatingActionBar`**: toolbar with roving focus (arrows, Home/End), item
|
|
123
|
+
menus (Down Arrow, Shift+F10, right click, long press), overflow into
|
|
124
|
+
"more", tooltips, counts, auto-hide, and a focus chord (`Alt+Shift+D` by
|
|
125
|
+
default, `focusShortcut` to change or `null` to disable). It publishes
|
|
126
|
+
`--ty-action-bar-inset-<edge>` so the sheet never hides content under it.
|
|
127
|
+
- **Research pieces**: `PageHeader variant="editorial"` (mono trail, serif
|
|
128
|
+
title, 68ch lead, actions, divider), `StatStrip`, `StageStrip`,
|
|
129
|
+
`AttentionList`, `PhaseBar`, `ActivityFeed`, `EvidencePanel` (docked 340–420
|
|
130
|
+
px ≥ 1280, drawer 1024–1279, bottom sheet below) and `ResizableSplit`.
|
|
131
|
+
|
|
132
|
+
### Providers
|
|
133
|
+
|
|
134
|
+
- **`TympanProvider`**: copy (`messages` overrides on top of `baseMessages`,
|
|
135
|
+
English by default, `messagesPtBR` included) and the router adapter
|
|
136
|
+
(`navigate`, `useHref`) used by every link-like component. Components hold no
|
|
137
|
+
hard-coded copy. `I18nAdapterProvider` and `RoutingProvider` (wave 2)
|
|
138
|
+
plug a host i18n library or router in without TympanProvider.
|
|
139
|
+
- **`ThemeProvider` / `useTheme`**: sets `data-ty-theme` (`tympan` by default,
|
|
140
|
+
`fakhir`, `neutral`, `high-contrast`, an opt-in `print-*` theme or a generated theme), `data-ty-mode` (`system`, `light`,
|
|
141
|
+
`dark`) and `data-ty-density` (`compact`, `default`, `comfortable`) on
|
|
142
|
+
`<html>` (or on a wrapper with `target="scope"`). Persistence belongs to the
|
|
143
|
+
host: pass controlled values and callbacks, or `storageKey` for localStorage.
|
|
144
|
+
`fonts` (theme name to stylesheet URL, e.g. `printThemeFontUrls`) adds the
|
|
145
|
+
font link of the current theme.
|
|
146
|
+
- **No flash of the wrong theme (SPA)**: put the output of
|
|
147
|
+
`themeInitScript('ty-theme')` in an inline `<script>` in `<head>`, before the
|
|
148
|
+
stylesheet; it sets the three attributes from storage before first paint
|
|
149
|
+
(`themeInitScript(key, defaults, { fonts })` also adds the theme's font link).
|
|
150
|
+
The gallery's `vite.config.ts` shows it with a `transformIndexHtml` hook.
|
|
151
|
+
- **`ThemeScope`**: applies a theme/mode/density to a subtree (previews).
|
|
152
|
+
- **`variants()`**: variants declared as data; returns `data-*` attributes the
|
|
153
|
+
component CSS selects on.
|
|
154
|
+
|
|
155
|
+
## Components
|
|
156
|
+
|
|
157
|
+
Wave 1 (36 specs): ActionMenu, AppFrame, Avatar, Breadcrumbs, Button,
|
|
158
|
+
Checkbox/CheckboxGroup, DataTable, Drawer, EmptyState, ErrorState,
|
|
159
|
+
Field/Fieldset/FieldStack, Heading/Subheading, InlineNotice, Link,
|
|
160
|
+
ListboxSelect, ModalDialog, NativeSelect, PageHeader, Pagination, Popover,
|
|
161
|
+
ProgressBar, SectionHeading, SegmentedControl, Separator,
|
|
162
|
+
Skeleton/PageLoadingState, SkipLink, Spinner, StatusPill, Surface,
|
|
163
|
+
Switch/SwitchGroup, Tabs, Tag/TagList, TextArea, TextField, Text/Strong/Code,
|
|
164
|
+
Toast (ToastProvider/useToast). Plus ProofBadge and ActorChip (design
|
|
165
|
+
direction §2.11).
|
|
166
|
+
|
|
167
|
+
Wave 2 (89 specs) and wave 4 (20 non-canvas specs plus 9 research-shell
|
|
168
|
+
specs), grouped as in the gallery:
|
|
169
|
+
|
|
170
|
+
- **Shell and research**: AppFrame rail layout (RailNavSection, RailNavItem,
|
|
171
|
+
RailContextButton), FloatingActionBar, PageHeader editorial, EvidencePanel,
|
|
172
|
+
ResizableSplit, StatStrip, StageStrip, AttentionList, PhaseBar, ActivityFeed.
|
|
173
|
+
- **Choices and filters**: ThemeSwitcher, StateSwitch, OneTimeCodeField,
|
|
174
|
+
PasswordStrength, SearchBar, FilterField, FilterChips, FilterTile,
|
|
175
|
+
ChoiceCard, ChoiceTile, ChoiceGrid, ChipGroup, FlagSetPicker.
|
|
176
|
+
- **Pickers and forms**: CategoryTabs, TagField, CurrencyField, DateField,
|
|
177
|
+
TimeField, MonthField, WheelPicker, LocalePicker, ImagePicker,
|
|
178
|
+
SchemaRequestForm, FormLayout parts, FormActions.
|
|
179
|
+
- **Overlays and navigation**: SectionedModal, SettingsDialog and
|
|
180
|
+
PreferenceGroup, ConfirmProvider/useConfirm, CompactConfirm, DetailsPopover,
|
|
181
|
+
NavigationFlyout, ToolbarTrigger, AppNavigation (and its builders),
|
|
182
|
+
AppLauncherGrid, CommandPalette, LongPressMenu, FloatingActionButton,
|
|
183
|
+
StepList, PageDots, WizardPage.
|
|
184
|
+
- **Lists and records**: SectionPanel, ListPanel, ListRow, SummaryRow,
|
|
185
|
+
CountBadge, NotificationCenter, ProfileAvatar, CopyIdentifier, HistoryList,
|
|
186
|
+
GroupedDisclosureList, RecoveryCodeList, MarkdownView.
|
|
187
|
+
- **Metrics and cards**: StatTile, MetricTile, TweenedNumber, DeltaIndicator,
|
|
188
|
+
AgentOutputCard, RecordCard, ProfileSummary, ContactCard parts, InsightCard,
|
|
189
|
+
TickerCard.
|
|
190
|
+
- **Charts and regions**: Chart, ReportView, LiveReportView, RegionMap,
|
|
191
|
+
ToneTint, RegionThemeRegistry, RegionThemeData (BR), CountryProfileData (BR).
|
|
192
|
+
- **Auth, brand and pages**: FederatedSignIn, AuthFrame, BrandPanel,
|
|
193
|
+
BrandMark, BrandLoader and LoaderPresets, UpgradeGate, HttpErrorPage,
|
|
194
|
+
RouteProgress, ConsentBanner, EnvironmentBanner, AmbientBackdrop,
|
|
195
|
+
LegalDocumentFrame, SkeletonFill, ThirdPartyMarkSlot/ProviderMark.
|
|
196
|
+
- **Touch and utilities**: SwipeRow, PullToRefresh, EdgeSwipeBack,
|
|
197
|
+
SafeAreaInset, Haptics, animateChange (view transitions), EntityListLoader, Routing (router adapter),
|
|
198
|
+
I18nAdapter, MotionFoundation, Formatters, ApiErrorModel, GlassCheckToggle
|
|
199
|
+
(developer only), CascadeGrid (off unless `decorativeMotion`), and the
|
|
200
|
+
LegacyAliasMap decision record (no aliases exported).
|
|
201
|
+
- **Public pages**: ShowcaseHeading (Kicker, Lead), RevealNumber,
|
|
202
|
+
ShowcaseBackdrop and AccentBand, FeatureShowcaseCard, RuledGrid,
|
|
203
|
+
HighlightStat, FeatureTile.
|
|
204
|
+
|
|
205
|
+
The canvas specs (wave 3 and the five canvas items of wave 4) are the flow
|
|
206
|
+
canvas, a separate entry point of this package (below).
|
|
207
|
+
|
|
208
|
+
## Flow and provenance canvas (`@datatechsolutions/tympan/flow`)
|
|
209
|
+
|
|
210
|
+
A W3C PROV provenance graph viewer, a DAG workflow editor, run inspection and
|
|
211
|
+
the forms and dialogs around them ship as the `/flow` subpath, with their own
|
|
212
|
+
stylesheet. The main entry does not re-export them, so hosts that only use
|
|
213
|
+
the components never load the canvas. The canvas lays graphs out with
|
|
214
|
+
`@dagrejs/dagre`, an optional peer dependency: install it when you import
|
|
215
|
+
`/flow`.
|
|
216
|
+
|
|
217
|
+
```sh
|
|
218
|
+
npm install @datatechsolutions/tympan @dagrejs/dagre
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
import '@datatechsolutions/tympan/styles.css'
|
|
223
|
+
import '@datatechsolutions/tympan/flow.css' // after styles.css
|
|
224
|
+
import { TympanProvider } from '@datatechsolutions/tympan'
|
|
225
|
+
import { ProvenanceGraph, FlowEditor } from '@datatechsolutions/tympan/flow'
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
What is inside, canvas tools, languages and accessibility: `src/flow/README.md`;
|
|
229
|
+
records: `src/flow/CLEAN-ROOM.md` and `src/flow/PROVENANCE.md`.
|
|
230
|
+
|
|
231
|
+
**Migrating from `@datatechsolutions/tympan-flow`.** The separate package is
|
|
232
|
+
gone; its exports are unchanged under the subpath:
|
|
233
|
+
|
|
234
|
+
| Before | After |
|
|
235
|
+
|---|---|
|
|
236
|
+
| `npm install @datatechsolutions/tympan-flow` | `npm install @dagrejs/dagre` (next to `@datatechsolutions/tympan`) |
|
|
237
|
+
| `from '@datatechsolutions/tympan-flow'` | `from '@datatechsolutions/tympan/flow'` |
|
|
238
|
+
| `import '@datatechsolutions/tympan-flow/styles.css'` | `import '@datatechsolutions/tympan/flow.css'` |
|
|
239
|
+
|
|
240
|
+
## Generated avatars (`@datatechsolutions/tympan/avatars`)
|
|
241
|
+
|
|
242
|
+
Deterministic avatars drawn by [DiceBear](https://www.dicebear.com) 9 from a
|
|
243
|
+
seed, in the colours of the active theme. `@dicebear/core` and the style
|
|
244
|
+
packages are optional peer dependencies: install core and only the styles you
|
|
245
|
+
use.
|
|
246
|
+
|
|
247
|
+
```sh
|
|
248
|
+
npm install @dicebear/core@^9 @dicebear/shapes@^9 @dicebear/notionists@^9
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```tsx
|
|
252
|
+
import * as shapes from '@dicebear/shapes'
|
|
253
|
+
import { GeneratedAvatar, avatarSvg, avatarPalette } from '@datatechsolutions/tympan/avatars'
|
|
254
|
+
|
|
255
|
+
<GeneratedAvatar seed={user.id} avatarStyle={shapes} name={user.name} fallbackText="IC" />
|
|
256
|
+
<GeneratedAvatar seed={agent.key} avatarStyle={shapes} name={agent.name} actorKind="agent" />
|
|
257
|
+
|
|
258
|
+
avatarSvg({ seed: 'user-42', style: shapes }) // SVG string, colours as --ty-* custom properties
|
|
259
|
+
avatarSvg({ seed: 'user-42', style: shapes, size: 64, theme: avatarPalette('tympan', 'dark') }) // fixed hex colours
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
- **Licence gate.** Only styles whose artwork is CC0 1.0 or MIT are accepted:
|
|
263
|
+
glass, icons (Bootstrap Icons, MIT), identicon, initials, lorelei,
|
|
264
|
+
lorelei-neutral, notionists, notionists-neutral, open-peeps, pixel-art,
|
|
265
|
+
pixel-art-neutral, rings, shapes and thumbs. Any other style throws
|
|
266
|
+
`AvatarStyleError` (the component shows its fallback), `check:provenance`
|
|
267
|
+
fails on an import of an excluded style, and a test compares the allow-list
|
|
268
|
+
with the installed LICENSE files. The CC BY 4.0 styles (adventurer,
|
|
269
|
+
big-ears, big-smile, croodles, dylan, fun-emoji, micah, miniavs, personas,
|
|
270
|
+
toon-head) and the custom-licensed ones (avataaars, bottts) are left out;
|
|
271
|
+
so is `@dicebear/collection`, which re-exports all of them. Details:
|
|
272
|
+
`ALLOWED_AVATAR_STYLES`, `EXCLUDED_AVATAR_STYLES`, THIRD_PARTY_NOTICES.md.
|
|
273
|
+
- **Theme colours.** By default every colour is
|
|
274
|
+
`var(--ty-avatar-<slot>, <theme expression>)`: soft backgrounds mixed from
|
|
275
|
+
`--ty-brand` and `--ty-bg`, ink shapes from `--ty-brand`/`--ty-brand-strong`,
|
|
276
|
+
solid fills from the brand ramp, light paper (brand 100/200) behind the
|
|
277
|
+
black line art of figure styles. The inline SVG follows all themes and
|
|
278
|
+
both modes without re-rendering; set a `--ty-avatar-*` property to repaint a
|
|
279
|
+
slot. Figure styles keep the artist's skin, hair and eye colours.
|
|
280
|
+
`avatarPalette(theme, mode)` resolves the same recipe to hex for images,
|
|
281
|
+
e-mail or files.
|
|
282
|
+
- **People and agents.** `actorKind="agent"` keeps Avatar's rounded, dashed
|
|
283
|
+
frame, draws from the neutral ink instead of the brand, and accepts only the
|
|
284
|
+
abstract styles (glass, icons, identicon, rings, shapes): an agent never gets
|
|
285
|
+
a face or initials.
|
|
286
|
+
- **Avatar behaviour kept.** GeneratedAvatar is Avatar with generated
|
|
287
|
+
`artwork`: a loaded `src` wins, the frame is `role="img"` named by `name` (or
|
|
288
|
+
`aria-hidden` with `decorative` next to a visible name), `onPress`/`href`
|
|
289
|
+
make it a control, and when the artwork cannot be drawn the initials (or
|
|
290
|
+
the agent bot icon) show. Avatars do not mirror in right-to-left layouts.
|
|
291
|
+
- **Determinism.** Same seed, style, kind and palette give the same SVG;
|
|
292
|
+
internal ids are prefixed per instance so avatars never share a mask.
|
|
293
|
+
- DiceBear 10 (`@dicebear/core` 10 with `@dicebear/styles`) packs styles
|
|
294
|
+
differently; this subpath targets the 9.x core and per-style packages,
|
|
295
|
+
whose majors match.
|
|
296
|
+
|
|
297
|
+
## Flags (`@datatechsolutions/tympan/flags`)
|
|
298
|
+
|
|
299
|
+
```tsx
|
|
300
|
+
import { Flag, flagName } from '@datatechsolutions/tympan/flags'
|
|
301
|
+
|
|
302
|
+
<Flag code="JP" /> // role="img", named "Japan" / "Japão" / "日本" by locale
|
|
303
|
+
<Flag code="gb-sct" aspect="1x1" size="small" />
|
|
304
|
+
<Flag code="eu" aspect="circle" />
|
|
305
|
+
<Flag code="ke" decorative /> {flagName('ke', locale)}
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
- Artwork: [flag-icons](https://github.com/lipis/flag-icons) 7.5.0 (MIT), 271
|
|
309
|
+
flags (ISO 3166-1 alpha-2, England, Scotland, Wales, Northern Ireland,
|
|
310
|
+
Catalonia, Galicia, Basque Country, Ascension, Saint Helena, Tristan da
|
|
311
|
+
Cunha, the EU, the UN, ASEAN, the Arab League, CEFTA, the EAC, the Pacific
|
|
312
|
+
Community and an "unknown" flag) in 4:3 and 1:1. `aspect="circle"` clips
|
|
313
|
+
the square art.
|
|
314
|
+
- Each flag is its own lazily loaded chunk (`dist/flags/<aspect>/<code>-*.js`),
|
|
315
|
+
generated at build time from the flag-icons SVGs; importing `Flag` does not
|
|
316
|
+
bundle 271 flags, and hosts need no bundler setup for SVG files. The flag
|
|
317
|
+
appears once its chunk has loaded; the named frame is there from the first
|
|
318
|
+
render.
|
|
319
|
+
- Accessible name: `Intl.DisplayNames` in the active locale (from
|
|
320
|
+
`TympanProvider`/`I18nProvider`), own names in English, Portuguese and
|
|
321
|
+
Spanish for the flags CLDR has no region for, the code otherwise; `label`
|
|
322
|
+
overrides it, `decorative` hides the flag next to a visible name. Unknown
|
|
323
|
+
codes draw the "unknown" flag and keep the code as the name.
|
|
324
|
+
- **Flags stand for countries and regions, never for languages.** Spanish,
|
|
325
|
+
Arabic, English or Portuguese are spoken in many countries, and many
|
|
326
|
+
countries have several languages. A language picker lists each language by
|
|
327
|
+
its own name (English, Español, العربية, 日本語), as the gallery's language
|
|
328
|
+
menu does; use a flag only where the place itself is meant (an office, a
|
|
329
|
+
shipping destination, a phone country code).
|
|
330
|
+
- Flags never mirror in right-to-left layouts.
|
|
331
|
+
|
|
332
|
+
## Styling rules
|
|
333
|
+
|
|
334
|
+
- Class names are `ty-` prefixed (BEM-ish); state comes from React Aria data
|
|
335
|
+
attributes (`[data-hovered]`, `[data-focus-visible]`, …) or `data-*` variants.
|
|
336
|
+
- Layers: `tympan.tokens`, `tympan.base`, `tympan.components`. Host styles
|
|
337
|
+
outside the layers win without `!important`.
|
|
338
|
+
- Every interactive control keeps a 44 × 44 px hit area; visible controls are
|
|
339
|
+
40 px on desktop and 44 px below 1024 px.
|
|
340
|
+
- `prefers-reduced-motion`, `prefers-reduced-transparency`,
|
|
341
|
+
`prefers-contrast`, and `forced-colors` are handled by the tokens and by each
|
|
342
|
+
component stylesheet.
|
|
343
|
+
|
|
344
|
+
## Languages and scripts
|
|
345
|
+
|
|
346
|
+
Copy ships in English, Brazilian Portuguese and Spanish; any other locale gets
|
|
347
|
+
English copy with locale-correct numbers, dates, lists and plurals (`Intl.*`
|
|
348
|
+
with the provider's `locale`). Override any string with `messages` or with ICU
|
|
349
|
+
MessageFormat strings through `icuMessages`; `pseudo` turns on
|
|
350
|
+
pseudo-localization. Layout CSS is logical only, so `dir="rtl"` mirrors the
|
|
351
|
+
whole library; the token stylesheet adapts fonts, line heights and line
|
|
352
|
+
breaking per script with `:lang()` (Noto fallbacks for Arabic, Hebrew,
|
|
353
|
+
Devanagari and other Indic scripts, Thai, Ethiopic, CJK and more). Set `lang`
|
|
354
|
+
and `dir` on `<html>` (or on a subtree).
|
|
355
|
+
|
|
356
|
+
## Records
|
|
357
|
+
|
|
358
|
+
`CLEAN-ROOM.md` (process and inputs), `PROVENANCE.md` (per component),
|
|
359
|
+
`THIRD_PARTY_NOTICES.md` (including the avatar style and flag artwork
|
|
360
|
+
licences), `LICENSE`; for the flow canvas, `src/flow/CLEAN-ROOM.md` and
|
|
361
|
+
`src/flow/PROVENANCE.md`.
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
`@datatechsolutions/tympan` (including its flow canvas entry,
|
|
4
|
+
`@datatechsolutions/tympan/flow`, formerly `@datatechsolutions/tympan-flow`,
|
|
5
|
+
and its `/avatars` and `/flags` entries)
|
|
6
|
+
and `@datatechsolutions/tympan-tokens` are licensed under FSL-1.1-ALv2
|
|
7
|
+
(Copyright 2026 Natalia Mesquita). They depend on, but do not copy, the packages
|
|
8
|
+
below, except the flag artwork of flag-icons, which is bundled (see
|
|
9
|
+
"Bundled artwork"). Versions are those resolved on 2026-09-26.
|
|
10
|
+
|
|
11
|
+
## Runtime dependencies
|
|
12
|
+
|
|
13
|
+
| Package | Version | Licence | Use |
|
|
14
|
+
|---|---|---|---|
|
|
15
|
+
| react-aria-components (and its react-aria / react-stately / @internationalized dependencies) | 1.21.1 | Apache-2.0 | accessible primitives (Button, Link, Menu, Popover, Dialog, Modal, Select, ListBox, Table, Tabs, TagGroup, TextField, SearchField, Checkbox, Switch, RadioGroup, ProgressBar, Disclosure, Tooltip, Breadcrumbs, RouterProvider, I18nProvider; in the flow canvas also ToggleButton, Toolbar, Tree, GridList, Autocomplete, ComboBox, Slider, NumberField, DropZone, FileTrigger) |
|
|
16
|
+
| lucide-react | 1.48.0 | ISC | icons (design direction §4.4) |
|
|
17
|
+
| react-aria (hooks: useLink, useButton, useLongPress, mergeProps) | 3.52.1 | Apache-2.0 | roving-focus items of FloatingActionBar |
|
|
18
|
+
| @internationalized/date | 3.12 | Apache-2.0 | calendar dates in DateField (external) |
|
|
19
|
+
| d3-geo | 3.1.1 | ISC | projection and path generation in RegionMap (external, not bundled) |
|
|
20
|
+
| @dagrejs/dagre (optional peer, flow canvas only) | 3.1.1 | MIT | ranked (Sugiyama-style) layout behind `autoLayout` |
|
|
21
|
+
| @dagrejs/graphlib (dependency of dagre) | 4.0.5 | MIT | graph structure used by dagre |
|
|
22
|
+
| @dicebear/core (optional peer, `/avatars` only) | 9.4.3 | MIT | seeded avatar generation behind `avatarSvg` and `GeneratedAvatar` |
|
|
23
|
+
| @dicebear/* avatar styles (optional peers, `/avatars` only) | 9.4.3 | code MIT; artwork CC0 1.0 or MIT (table below) | avatar artwork |
|
|
24
|
+
| react, react-dom (peer) | 19.x | MIT | rendering |
|
|
25
|
+
|
|
26
|
+
Apache License 2.0: https://www.apache.org/licenses/LICENSE-2.0. Copyright
|
|
27
|
+
Adobe for React Aria. The Apache-2.0 NOTICE obligations apply to
|
|
28
|
+
redistribution of React Aria itself; this package declares it as a dependency
|
|
29
|
+
and ships none of its code in `dist/` (it is marked external).
|
|
30
|
+
|
|
31
|
+
ISC licence (lucide): Copyright (c) for portions of Lucide are held by Cole
|
|
32
|
+
Bemis 2013-2022 as part of Feather (MIT); all other copyright for Lucide is
|
|
33
|
+
held by Lucide Contributors 2022. Icons are imported as components and not
|
|
34
|
+
bundled into `dist/`.
|
|
35
|
+
|
|
36
|
+
MIT licence (dagre, graphlib): Copyright (c) 2012-2014 Chris Pettitt and the
|
|
37
|
+
dagrejs contributors. The full text ships with each package in
|
|
38
|
+
`node_modules/@dagrejs/*/LICENSE`. Neither is bundled into `dist/` (both are
|
|
39
|
+
marked external); hosts install dagre only when they use the flow entry.
|
|
40
|
+
|
|
41
|
+
ISC licence (d3-geo): Copyright 2010-2024 Mike Bostock. Declared as a
|
|
42
|
+
dependency and marked external; no d3 code is copied into `dist/`.
|
|
43
|
+
|
|
44
|
+
MIT licence (DiceBear): Copyright (c) 2024 Florian Körner. `@dicebear/core`
|
|
45
|
+
and the style packages are optional peers, marked external and not bundled
|
|
46
|
+
into `dist/`; hosts install core and the styles they use. Each generated SVG
|
|
47
|
+
carries DiceBear's Dublin Core metadata (title, creator, source, licence) of
|
|
48
|
+
its style.
|
|
49
|
+
|
|
50
|
+
### Avatar styles: artwork licences
|
|
51
|
+
|
|
52
|
+
Read from each package's `LICENSE` file and `meta` export on 2026-09-26
|
|
53
|
+
(version 9.4.3). The package code is MIT (Copyright (c) 2024 Florian Körner)
|
|
54
|
+
in every case; the artwork licence decides. Only CC0 1.0 and MIT artwork is
|
|
55
|
+
accepted (`src/avatars/styles.ts`, enforced at runtime, by a test against the
|
|
56
|
+
installed LICENSE files, and by `check:provenance` on imports).
|
|
57
|
+
|
|
58
|
+
Included:
|
|
59
|
+
|
|
60
|
+
| Package | Artwork | Designer | Artwork licence |
|
|
61
|
+
|---|---|---|---|
|
|
62
|
+
| @dicebear/glass | Glass | DiceBear | CC0 1.0 |
|
|
63
|
+
| @dicebear/icons | Bootstrap Icons | The Bootstrap Authors (Copyright (c) 2019-2024) | MIT |
|
|
64
|
+
| @dicebear/identicon | Identicon | DiceBear | CC0 1.0 |
|
|
65
|
+
| @dicebear/initials | Initials (text only) | DiceBear | CC0 1.0 per `meta`; package LICENSE MIT |
|
|
66
|
+
| @dicebear/lorelei | Lorelei | Lisa Wischofsky | CC0 1.0 |
|
|
67
|
+
| @dicebear/lorelei-neutral | Lorelei Neutral | Lisa Wischofsky | CC0 1.0 |
|
|
68
|
+
| @dicebear/notionists | Notionists | Zoish | CC0 1.0 |
|
|
69
|
+
| @dicebear/notionists-neutral | Notionists | Zoish | CC0 1.0 |
|
|
70
|
+
| @dicebear/open-peeps | Open Peeps | Pablo Stanley | CC0 1.0 |
|
|
71
|
+
| @dicebear/pixel-art | Pixel Art | DiceBear | CC0 1.0 |
|
|
72
|
+
| @dicebear/pixel-art-neutral | Pixel Art Neutral | DiceBear | CC0 1.0 |
|
|
73
|
+
| @dicebear/rings | Rings | DiceBear | CC0 1.0 |
|
|
74
|
+
| @dicebear/shapes | Shapes | DiceBear | CC0 1.0 |
|
|
75
|
+
| @dicebear/thumbs | Thumbs | DiceBear | CC0 1.0 |
|
|
76
|
+
|
|
77
|
+
MIT licence (Bootstrap Icons, through @dicebear/icons): Copyright (c) 2019-2024
|
|
78
|
+
The Bootstrap Authors; the full text ships in
|
|
79
|
+
`node_modules/@dicebear/icons/LICENSE`.
|
|
80
|
+
|
|
81
|
+
Excluded:
|
|
82
|
+
|
|
83
|
+
| Package | Designer | Artwork licence | Why |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| @dicebear/adventurer, adventurer-neutral | Lisa Wischofsky | CC BY 4.0 | attribution required wherever shown |
|
|
86
|
+
| @dicebear/big-ears, big-ears-neutral | The Visual Team | CC BY 4.0 | attribution required |
|
|
87
|
+
| @dicebear/big-smile | Ashley Seo | CC BY 4.0 | attribution required |
|
|
88
|
+
| @dicebear/croodles, croodles-neutral | vijay verma | CC BY 4.0 | attribution required |
|
|
89
|
+
| @dicebear/dylan | Natalia Spivak | CC BY 4.0 | attribution required |
|
|
90
|
+
| @dicebear/fun-emoji | Davis Uche | CC BY 4.0 | attribution required |
|
|
91
|
+
| @dicebear/micah | Micah Lanier | CC BY 4.0 | attribution required |
|
|
92
|
+
| @dicebear/miniavs | Webpixels | CC BY 4.0 | attribution required |
|
|
93
|
+
| @dicebear/personas | Draftbit | CC BY 4.0 | attribution required |
|
|
94
|
+
| @dicebear/toon-head | Johan Melin | CC BY 4.0 | attribution required |
|
|
95
|
+
| @dicebear/avataaars, avataaars-neutral | Pablo Stanley | "Free for personal and commercial use" | custom terms, not an open licence |
|
|
96
|
+
| @dicebear/bottts, bottts-neutral | Pablo Stanley | "Free for personal and commercial use" | custom terms, not an open licence |
|
|
97
|
+
| @dicebear/collection | (all) | mixed | re-exports every style, excluded ones included |
|
|
98
|
+
|
|
99
|
+
## Bundled artwork
|
|
100
|
+
|
|
101
|
+
| Package | Version | Licence | Use |
|
|
102
|
+
|---|---|---|---|
|
|
103
|
+
| flag-icons (dev dependency; artwork bundled into `dist/flags/`) | 7.5.0 | MIT | the 271 flags of `/flags`, 4:3 and 1:1 |
|
|
104
|
+
|
|
105
|
+
`scripts/build-flags.mjs` copies each flag SVG into its own module: it drops
|
|
106
|
+
whitespace between tags and the root id and prefixes internal ids; the
|
|
107
|
+
drawings are unchanged.
|
|
108
|
+
|
|
109
|
+
The MIT License (MIT)
|
|
110
|
+
|
|
111
|
+
Copyright (c) 2013 Panayiotis Lipiridis
|
|
112
|
+
|
|
113
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
114
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
115
|
+
the Software without restriction, including without limitation the rights to
|
|
116
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
117
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
118
|
+
so, subject to the following conditions:
|
|
119
|
+
|
|
120
|
+
The above copyright notice and this permission notice shall be included in all
|
|
121
|
+
copies or substantial portions of the Software.
|
|
122
|
+
|
|
123
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
124
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
125
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
126
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
127
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
128
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
129
|
+
SOFTWARE.
|
|
130
|
+
|
|
131
|
+
## Considered and not used
|
|
132
|
+
|
|
133
|
+
- **country-flag-icons** (MIT, catamphetamine) for the flags. It ships per-flag
|
|
134
|
+
ES modules, but in 3:2 and 1:1 rather than 4:3, without the UN, Galicia,
|
|
135
|
+
Basque Country or Saint Helena subdivision flags; flag-icons covers those.
|
|
136
|
+
- **SVGRepo flag collections.** Licences vary per collection (several need
|
|
137
|
+
attribution or forbid redistribution in packs); no SVGRepo artwork is used.
|
|
138
|
+
- **DiceBear 10** (`@dicebear/core` 10 with `@dicebear/styles`). Different
|
|
139
|
+
packaging with no per-style packages; the 9.x core and per-style packages
|
|
140
|
+
have matching majors and let hosts install only allowed styles.
|
|
141
|
+
|
|
142
|
+
- **elkjs** (for the flow canvas layout). Its licence is EPL-2.0 (or
|
|
143
|
+
GPL-3.0), not MIT, and its layout runs asynchronously (worker); dagre is
|
|
144
|
+
MIT, synchronous (so `autoLayout` stays a pure function) and deterministic.
|
|
145
|
+
|
|
146
|
+
## Build and test tools (not shipped)
|
|
147
|
+
|
|
148
|
+
| Package | Licence |
|
|
149
|
+
|---|---|
|
|
150
|
+
| style-dictionary 5.5.5 | Apache-2.0 |
|
|
151
|
+
| tsdown, vite, @vitejs/plugin-react, vitest | MIT |
|
|
152
|
+
| typescript | Apache-2.0 |
|
|
153
|
+
| axe-core 4.13 | MPL-2.0 (used unmodified as a test dependency) |
|
|
154
|
+
| @types/d3-geo | MIT |
|
|
155
|
+
| @testing-library/react, user-event, jest-dom, jsdom | MIT |
|
|
156
|
+
|
|
157
|
+
## Methods implemented from public descriptions
|
|
158
|
+
|
|
159
|
+
- OKLab / OKLCH conversion: formulas and matrices published by Björn Ottosson
|
|
160
|
+
(public domain / MIT description), implemented in `@datatechsolutions/tympan-tokens/src/color.ts`.
|
|
161
|
+
- WCAG 2.x relative luminance and contrast ratio (W3C).
|
|
162
|
+
- APCA lightness contrast: implemented from the public description of the
|
|
163
|
+
APCA-W3 0.0.98G constants, used only for an informational report, never as a
|
|
164
|
+
conformance gate. APCA is a method by Myndex Research; no APCA code is included.
|
|
165
|
+
- Cubic Bézier midpoint and tangent (Bernstein polynomials) for connector
|
|
166
|
+
paths and label placement (flow canvas).
|
|
167
|
+
- Ray and axis-aligned box intersection for border-attached connectors.
|
|
168
|
+
- Kahn topological ordering and longest-path layering for reading order.
|
|
169
|
+
- A subset of ICU MessageFormat (arguments, `number`, `plural` with `=n`
|
|
170
|
+
and CLDR categories through `Intl.PluralRules`, `select`), written from the
|
|
171
|
+
public ICU syntax description (flow canvas labels).
|
|
172
|
+
|
|
173
|
+
## Fonts converted to outlines
|
|
174
|
+
|
|
175
|
+
| Font | Licence | Use |
|
|
176
|
+
|---|---|---|
|
|
177
|
+
| Archivo (Omnibus-Type) | SIL Open Font License 1.1 | the wordmarks of `ProductMark` (horizontal variant), converted to outlined paths; no font file is shipped |
|
|
178
|
+
|
|
179
|
+
SIL OFL 1.1: https://openfontlicense.org. Outlined glyphs in a logo are artwork,
|
|
180
|
+
not a font software redistribution; the notice is kept for attribution.
|