@ossy/design-system 3.21.0 → 3.23.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/build/abstract-Bls8QE_n.js +1 -0
- package/build/add-r-NW6dYKev.js +1 -0
- package/build/adidas-BN3TAUXD.js +1 -0
- package/build/airplane-DLtfA7JR.js +1 -0
- package/build/alarm-N8-_9huw.js +1 -0
- package/build/album-BNy1kALS.js +1 -0
- package/build/align-bottom-D8RCzobl.js +1 -0
- package/build/align-center-BwTg9Ju4.js +1 -0
- package/build/align-left-QeccnSL6.js +1 -0
- package/build/align-middle-II_nyGFX.js +1 -0
- package/build/align-right-CgtENwdd.js +1 -0
- package/build/align-top-Cftuo071.js +1 -0
- package/build/anchor-CmN8MSKv.js +1 -0
- package/build/apple-watch--miQfKcP.js +1 -0
- package/build/arrange-back-CGARIOtO.js +1 -0
- package/build/arrange-front-DfRc05po.js +1 -0
- package/build/arrow-align-h-Bddf1t-d.js +1 -0
- package/build/arrow-align-v-DRbtjRJs.js +1 -0
- package/build/arrow-bottom-left-NzJAwtLd.js +1 -0
- package/build/arrow-bottom-left-o-Du6nu-X-.js +1 -0
- package/build/arrow-bottom-left-r-DmUMrQdE.js +1 -0
- package/build/arrow-bottom-right-CkW0AKU8.js +1 -0
- package/build/arrow-bottom-right-o-CZnmkgQZ.js +1 -0
- package/build/arrow-bottom-right-r-Ci6lGZL9.js +1 -0
- package/build/arrow-down-Dn6GBxoc.js +1 -0
- package/build/arrow-down-o-nsa_wmF-.js +1 -0
- package/build/arrow-down-r-DAmv6AIJ.js +1 -0
- package/build/arrow-left-CjvohivZ.js +1 -0
- package/build/arrow-left-o-DlXS1QBb.js +1 -0
- package/build/arrow-left-r-DUUoGLSW.js +1 -0
- package/build/arrow-long-down-c-DgcUyWs1.js +1 -0
- package/build/arrow-long-down-e-DAEKr8mX.js +1 -0
- package/build/arrow-long-down-l-Ce-peaGY.js +1 -0
- package/build/arrow-long-down-r-DvIAeF__.js +1 -0
- package/build/arrow-long-down-w0iwPz6W.js +1 -0
- package/build/arrow-long-left-c-CGFrOmaL.js +1 -0
- package/build/arrow-long-left-e-CkrLo0Vd.js +1 -0
- package/build/arrow-long-left-l-Dgae6XQs.js +1 -0
- package/build/arrow-long-left-r-DaA2uQw7.js +1 -0
- package/build/arrow-long-right-c-B8MAO2ge.js +1 -0
- package/build/arrow-long-right-e-DhmJhW0C.js +1 -0
- package/build/arrow-long-right-l-0lsioXYd.js +1 -0
- package/build/arrow-long-right-r-PWZ_RDpC.js +1 -0
- package/build/arrow-long-up-BwnvkSU-.js +1 -0
- package/build/arrow-long-up-c-BAomM5Cw.js +1 -0
- package/build/arrow-long-up-e-Kvj2nUqE.js +1 -0
- package/build/arrow-long-up-l-BeToYQJp.js +1 -0
- package/build/arrow-long-up-r-BAteghUv.js +1 -0
- package/build/arrow-right-DrDhVQXh.js +1 -0
- package/build/arrow-right-o-wzi7CSVR.js +1 -0
- package/build/arrow-right-r-DoMTgdpx.js +1 -0
- package/build/arrow-top-left-BjgPqYWT.js +1 -0
- package/build/arrow-top-left-o-ClzsTTvI.js +1 -0
- package/build/arrow-top-left-r-jsKPM_Y1.js +1 -0
- package/build/arrow-top-right-Fe1b2o7y.js +1 -0
- package/build/arrow-top-right-o-D8WxWLz1.js +1 -0
- package/build/arrow-top-right-r-D_W5XOuu.js +1 -0
- package/build/arrow-up-ByhxeXKl.js +1 -0
- package/build/arrow-up-o-BEYzC18-.js +1 -0
- package/build/arrow-up-r-Z0t9LMMV.js +1 -0
- package/build/arrows-breake-h-B_GwrDmE.js +1 -0
- package/build/arrows-breake-v-waanQ0mb.js +1 -0
- package/build/arrows-exchange-BZ-v6ssM.js +1 -0
- package/build/arrows-exchange-alt-DYZNKJ4c.js +1 -0
- package/build/arrows-exchange-alt-v-CHZlui50.js +1 -0
- package/build/arrows-exchange-v-kOZ-lhBN.js +1 -0
- package/build/arrows-expand-down-left-BQdlsYAT.js +1 -0
- package/build/arrows-expand-down-right-CGTwsXGl.js +1 -0
- package/build/arrows-expand-left-DX4PzHbW.js +1 -0
- package/build/arrows-expand-left-alt-CnyItARk.js +1 -0
- package/build/arrows-expand-right-BMG3UJup.js +1 -0
- package/build/arrows-expand-right-alt-DK-vdnzx.js +1 -0
- package/build/arrows-expand-up-left-D4q1wBXb.js +1 -0
- package/build/arrows-expand-up-right-RyyGBpb3.js +1 -0
- package/build/arrows-h-DRzqQugN.js +1 -0
- package/build/arrows-h-alt-BZzLLxwt.js +1 -0
- package/build/arrows-merge-alt-h-Bx2IYSEn.js +1 -0
- package/build/arrows-merge-alt-v-BqQqkTUw.js +1 -0
- package/build/arrows-scroll-h-BHCgsf17.js +1 -0
- package/build/arrows-scroll-v-BfzWZYL6.js +1 -0
- package/build/arrows-shrink-h-HNl-bBaC.js +1 -0
- package/build/arrows-shrink-v-Q1wUD4So.js +1 -0
- package/build/arrows-v-BMHw4D1K.js +1 -0
- package/build/arrows-v-alt-MRgaS2gq.js +1 -0
- package/build/assign-Dgl2tcAX.js +1 -0
- package/build/asterisk-DgNSnjqc.js +1 -0
- package/build/atlasian-DHflyCmB.js +1 -0
- package/build/attachment-DEDJnR7O.js +1 -0
- package/build/attribution-BpXcMRBJ.js +1 -0
- package/build/awards-DeVBfFo7.js +1 -0
- package/build/backspace-BhyW-fmK.js +1 -0
- package/build/band-aid-DQRdfSmG.js +1 -0
- package/build/battery-ClRlkE2H.js +1 -0
- package/build/battery-empty-CQxirR1h.js +1 -0
- package/build/battery-full-Bk5brCbb.js +1 -0
- package/build/bee-C5ovgW84.js +1 -0
- package/build/bell-p3_Db2Wf.js +1 -0
- package/build/bitbucket-BsDXBpG2.js +1 -0
- package/build/block-BtowVGiw.js +1 -0
- package/build/bmw-DeFVhDYk.js +1 -0
- package/build/board-JLINjsQU.js +1 -0
- package/build/bolt-CgVeScQA.js +1 -0
- package/build/bookmark-BncEG8jm.js +1 -0
- package/build/border-all-CCQZrDR2.js +1 -0
- package/build/border-bottom-Ds6jwrTz.js +1 -0
- package/build/border-left-CLjStX1V.js +1 -0
- package/build/border-right-DTBeLHKk.js +1 -0
- package/build/border-style-dashed-D_cgtceU.js +1 -0
- package/build/border-style-dotted-CGH-XG1p.js +1 -0
- package/build/border-style-solid-BqjW2DG1.js +1 -0
- package/build/border-top-BaWoGRS3.js +1 -0
- package/build/bot-CBLVnrz_.js +1 -0
- package/build/bowl-AUzUrrSn.js +1 -0
- package/build/box-Bthjw-Ff.js +1 -0
- package/build/boy-BYQBBZSv.js +1 -0
- package/build/brackets-DZXPAoBJ.js +1 -0
- package/build/briefcase-DwEYmzIa.js +1 -0
- package/build/browse-Ddfud9jC.js +1 -0
- package/build/browser-C91BxATn.js +1 -0
- package/build/brush-Blkut9Ej.js +1 -0
- package/build/bulb-Da2voCPI.js +1 -0
- package/build/c-plus-plus-Csb8K6hf.js +1 -0
- package/build/calculator-CWstvPUZ.js +1 -0
- package/build/calendar-Y_IZeWBH.js +1 -0
- package/build/calendar-dates-DQ3VWn_k.js +1 -0
- package/build/calendar-due-Bp9NExB3.js +1 -0
- package/build/calendar-next-BKwYF8mM.js +1 -0
- package/build/calendar-today-iYddm0n1.js +1 -0
- package/build/calendar-two-CtXxRYFm.js +1 -0
- package/build/calibrate-Bb4d4zvf.js +1 -0
- package/build/camera-Dc41meKq.js +1 -0
- package/build/cap-OliGd2ac.js +1 -0
- package/build/captions-CrlFA2ga.js +1 -0
- package/build/card-clubs-DxduwjgJ.js +1 -0
- package/build/card-diamonds-B4viX9v8.js +1 -0
- package/build/card-hearts-Bj4r8e-J.js +1 -0
- package/build/card-spades-gIuOtPG4.js +1 -0
- package/build/carousel-FPeUPIj0.js +1 -0
- package/build/cast-CokZxhuT.js +1 -0
- package/build/chanel-CR8_kAJ4.js +1 -0
- package/build/chart-BHo26cYO.js +1 -0
- package/build/check-DTsyTrVv.js +1 -0
- package/build/check-o-DqniBmGd.js +1 -0
- package/build/check-r-2C6AXqmx.js +1 -0
- package/build/chevron-double-down-C5p9D_XU.js +1 -0
- package/build/chevron-double-down-o-Cj8l08uD.js +1 -0
- package/build/chevron-double-down-r-DTzjIL3q.js +1 -0
- package/build/chevron-double-left-BM93_TiK.js +1 -0
- package/build/chevron-double-left-o-BgjplvZ8.js +1 -0
- package/build/chevron-double-left-r-BzQ35bvi.js +1 -0
- package/build/chevron-double-right-DN0A3b13.js +1 -0
- package/build/chevron-double-right-o-DDxMKxTd.js +1 -0
- package/build/chevron-double-right-r-BDZoHnV4.js +1 -0
- package/build/chevron-double-up-DxU651MQ.js +1 -0
- package/build/chevron-double-up-o-CZSU96F7.js +1 -0
- package/build/chevron-double-up-r-0kWN3-rD.js +1 -0
- package/build/chevron-down-CcF0eaJf.js +1 -0
- package/build/chevron-down-o-BPSAym3W.js +1 -0
- package/build/chevron-down-r-B8uP5saP.js +1 -0
- package/build/chevron-left-DQOIhlXw.js +1 -0
- package/build/chevron-left-o-Bc7G2ULC.js +1 -0
- package/build/chevron-left-r-hr3yn1br.js +1 -0
- package/build/chevron-right-CU2Jjorg.js +1 -0
- package/build/chevron-right-o-DxlRqaOt.js +1 -0
- package/build/chevron-right-r-dYSb6SQD.js +1 -0
- package/build/chevron-up-B9NI7jkD.js +1 -0
- package/build/chevron-up-o-7P1YDpUS.js +1 -0
- package/build/chevron-up-r-BTrBSc_8.js +1 -0
- package/build/circleci-C7efs64i.js +1 -0
- package/build/clapper-board-BOQYYkZc.js +1 -0
- package/build/clipboard-Cf16fAqD.js +1 -0
- package/build/close-ZKbPmE6m.js +1 -0
- package/build/close-o-CvyuZ_Hb.js +1 -0
- package/build/close-r-CHja59if.js +1 -0
- package/build/cloud-BecU12jS.js +1 -0
- package/build/code-BThUZxUB.js +1 -0
- package/build/code-climate-BmkPA0ik.js +1 -0
- package/build/code-slash-CTAwikBQ.js +1 -0
- package/build/coffee-LkbSmDWS.js +1 -0
- package/build/collage-BX_MVoIK.js +1 -0
- package/build/color-bucket-1s5jl3ru.js +1 -0
- package/build/color-picker-3uoX1gb0.js +1 -0
- package/build/comedy-central-BeUWPAp0.js +1 -0
- package/build/comment-C-7h6VSz.js +1 -0
- package/build/community-CIgi0rrO.js +1 -0
- package/build/components-BNl2H5S7.js +1 -0
- package/build/compress-ChqYtPwU.js +1 -0
- package/build/compress-left-CzIVyQam.js +1 -0
- package/build/compress-right-B8qq23EL.js +1 -0
- package/build/compress-v-D2TX2W34.js +1 -0
- package/build/copy-CZ0VwIWZ.js +1 -0
- package/build/copyright-BrhkYuiC.js +1 -0
- package/build/corner-double-down-left-DFBMwQbj.js +1 -0
- package/build/corner-double-down-right-Dg0LTyYB.js +1 -0
- package/build/corner-double-left-down-kfXPfPfL.js +1 -0
- package/build/corner-double-left-up-D9sjef55.js +1 -0
- package/build/corner-double-right-down-DiG0koHe.js +1 -0
- package/build/corner-double-right-up-CrxjGa0R.js +1 -0
- package/build/corner-double-up-left-DQ28RZAd.js +1 -0
- package/build/corner-double-up-right-B2HC0fCN.js +1 -0
- package/build/corner-down-left-C2vQM-P_.js +1 -0
- package/build/corner-down-right-CCM20Tz-.js +1 -0
- package/build/corner-left-down-_z26B4Ns.js +1 -0
- package/build/corner-left-up-CKozfpIT.js +1 -0
- package/build/corner-right-down-Cx_nht0r.js +1 -0
- package/build/corner-right-up-DyNAdcyS.js +1 -0
- package/build/corner-up-left-xGfgfMF_.js +1 -0
- package/build/corner-up-right-Blv4Odz0.js +1 -0
- package/build/credit-card-DQJturLT.js +1 -0
- package/build/crop-aw0fT1r-.js +1 -0
- package/build/cross-BwzxeqxR.js +1 -0
- package/build/crowdfire-fcb8aDjM.js +1 -0
- package/build/crown-BB_KnUVO.js +1 -0
- package/build/danger-x4N5UVWq.js +1 -0
- package/build/data-DloUB729.js +1 -0
- package/build/database-DTZ9d2Mq.js +1 -0
- package/build/debug-CB8B0tLh.js +1 -0
- package/build/designmodo-Biqz-9hG.js +1 -0
- package/build/desktop-DGGsqPXm.js +1 -0
- package/build/details-less-BHHDqmja.js +1 -0
- package/build/dialpad-Do7BB42j.js +1 -0
- package/build/dice-1-Dk7eh4Dr.js +1 -0
- package/build/dice-2-CuyFLAfy.js +1 -0
- package/build/dice-3-CieMUVkG.js +1 -0
- package/build/dice-4-BpcWGyQ2.js +1 -0
- package/build/dice-5-tQV6LVHp.js +1 -0
- package/build/dice-6-NSHSIHYB.js +1 -0
- package/build/digitalocean-s_PwpJmh.js +1 -0
- package/build/disc-vQYijl5x.js +1 -0
- package/build/display-flex-BR3dveI8.js +1 -0
- package/build/display-fullwidth-Bs6evLNI.js +1 -0
- package/build/display-grid-C9k0zNxE.js +1 -0
- package/build/display-spacing-DMiyJbbZ.js +1 -0
- package/build/distribute-horizontal-DZr_sEq-.js +1 -0
- package/build/distribute-vertical-CVF2ZyV4.js +1 -0
- package/build/dock-bottom-ntTBQ4mX.js +1 -0
- package/build/dock-left-fIkzmcnv.js +1 -0
- package/build/dock-right-B71HKfYA.js +1 -0
- package/build/dock-window-CT9AiF7O.js +1 -0
- package/build/dolby-ClRGKvSd.js +1 -0
- package/build/dollar-CikziGo2.js +1 -0
- package/build/dribbble-BSMkb3ij.js +1 -0
- package/build/drive-cu-Hpva3.js +1 -0
- package/build/drop-C3hoRiM4.js +1 -0
- package/build/drop-invert-CyX0qiPE.js +1 -0
- package/build/drop-opacity-BOC_KgeN.js +1 -0
- package/build/duplicate-wOcAeOll.js +1 -0
- package/build/edit-black-point-BYUxE-yv.js +1 -0
- package/build/edit-contrast-JaUmR9TU.js +1 -0
- package/build/edit-exposure-5tCVi7al.js +1 -0
- package/build/edit-fade-D3T7sWxA.js +1 -0
- package/build/edit-flip-h-DcGmqZva.js +1 -0
- package/build/edit-flip-v-Z_tb85Bu.js +1 -0
- package/build/edit-highlight-R1-yhAes.js +1 -0
- package/build/edit-markup-C7pFDU63.js +1 -0
- package/build/edit-mask-B1L4OshW.js +1 -0
- package/build/edit-noise-e1MCA6cW.js +1 -0
- package/build/edit-shadows-DEanKRKt.js +1 -0
- package/build/edit-straight-fL6QEsW_.js +1 -0
- package/build/edit-unmask-EzpEkrvD.js +1 -0
- package/build/eject-u6AGxmRT.js +1 -0
- package/build/enter-TXVecM5n.js +1 -0
- package/build/erase-DlJSdh2P.js +1 -0
- package/build/ereader-_ADuFMQV.js +1 -0
- package/build/ericsson-BoJTsJ64.js +1 -0
- package/build/ethernet-s8VcTZFF.js +1 -0
- package/build/euro-BH6qvLqk.js +1 -0
- package/build/eventbrite-rd470gvs.js +1 -0
- package/build/expand-DpH-KDQs.js +1 -0
- package/build/export-CMM0TTbz.js +1 -0
- package/build/extension-B8L4WcDq.js +1 -0
- package/build/extension-add-BDDdMa1I.js +1 -0
- package/build/extension-alt-hj59vqBA.js +1 -0
- package/build/extension-remove-12ctEQ4T.js +1 -0
- package/build/external-cCP3qKLG.js +1 -0
- package/build/eye-alt-ZjkT9kQu.js +1 -0
- package/build/eye-szKCIhWy.js +1 -0
- package/build/facebook-DKj7eobc.js +1 -0
- package/build/feed-D6xncTkP.js +1 -0
- package/build/figma-BR-U9yPC.js +1 -0
- package/build/file-add-BLBxYuob.js +1 -0
- package/build/file-document-DrkdoM2O.js +1 -0
- package/build/file-remove-DlqFFTY3.js +1 -0
- package/build/film-BQy8njM3.js +1 -0
- package/build/filters-C8HQuPuF.js +1 -0
- package/build/flag-Dma-wyDo.js +1 -0
- package/build/flag-alt-DgplisM7.js +1 -0
- package/build/folder-remove-Cv6_0OJg.js +1 -0
- package/build/font-height-CzpdIJYj.js +1 -0
- package/build/font-spacing-BQfhsEXh.js +1 -0
- package/build/format-bold-B-Tcc93s.js +1 -0
- package/build/format-center-FUOctggN.js +1 -0
- package/build/format-color-C6TPW353.js +1 -0
- package/build/format-heading-DuLsRzDl.js +1 -0
- package/build/format-indent-decrease-DG6D2kpR.js +1 -0
- package/build/format-indent-increase-B4vF36V5.js +1 -0
- package/build/format-italic-UG2b0R_Y.js +1 -0
- package/build/format-justify-DFb8uDzC.js +1 -0
- package/build/format-left-BlEKEeim.js +1 -0
- package/build/format-line-height-CPyV6W4o.js +1 -0
- package/build/format-right-DGALcihq.js +1 -0
- package/build/format-separator-B3RLnUfY.js +1 -0
- package/build/format-slash-pt5eYMmh.js +1 -0
- package/build/format-strike-uQJcbumK.js +1 -0
- package/build/format-text-BNPRkZ-P.js +1 -0
- package/build/format-underline-DRmjLLT_.js +1 -0
- package/build/format-uppercase-BZ-8kd73.js +1 -0
- package/build/framer-Bw-rp2dF.js +1 -0
- package/build/games-aDZXUxoS.js +1 -0
- package/build/gender-female-D5f8RYZW.js +1 -0
- package/build/gender-male-DhhuesLV.js +1 -0
- package/build/ghost-CsrrqhFp.js +1 -0
- package/build/ghost-character-DzEyNtD-.js +1 -0
- package/build/gift-G86f0pXY.js +1 -0
- package/build/girl-Ca2AVUjs.js +1 -0
- package/build/git-branch-C3ETbaMJ.js +1 -0
- package/build/git-commit-DBJ5fU1P.js +1 -0
- package/build/git-fork-DmpeuRdk.js +1 -0
- package/build/git-pull-CRit5dsL.js +1 -0
- package/build/gitter-B-r2WzBH.js +1 -0
- package/build/glass-BlwJbP7C.js +1 -0
- package/build/glass-alt-CgBu8Cmm.js +1 -0
- package/build/globe-CGwADXyG.js +1 -0
- package/build/globe-alt-DtIdpR9B.js +1 -0
- package/build/google-DlIxmx5v.js +1 -0
- package/build/google-tasks-CWK3b8lP.js +1 -0
- package/build/gym-Dgb8Ua6v.js +1 -0
- package/build/hashtag-3a72iRoI.js +1 -0
- package/build/headset-qY4kGFr0.js +1 -0
- package/build/heart-B-5-LIT7.js +1 -0
- package/build/hello-ktBfxe6C.js +1 -0
- package/build/home-screen-DwiD3pIw.js +1 -0
- package/build/icecream-DNrp70AQ.js +1 -0
- package/build/if-design-CVcTuPCJ.js +1 -0
- package/build/image-CGvEeolp.js +1 -0
- package/build/import-CgzoAWz4.js +1 -0
- package/build/inbox-XK_nvE2G.js +1 -0
- package/build/index-CPG57YaF.js +1 -0
- package/build/index.js +1 -1
- package/build/indie-hackers-RWxOg7uI.js +1 -0
- package/build/infinity-LfrHIveW.js +1 -0
- package/build/info-DxucZuHT.js +1 -0
- package/build/inpicture-DWtUM6Na.js +1 -0
- package/build/insert-after-D6uFNkFu.js +1 -0
- package/build/insert-after-o-D0PPozub.js +1 -0
- package/build/insert-after-r-BTI8RBte.js +1 -0
- package/build/insert-before-CjbiWgP9.js +1 -0
- package/build/insert-before-o-BRvUC-OE.js +1 -0
- package/build/insert-before-r-CCIDyL8f.js +1 -0
- package/build/insights-BR_9BCzm.js +1 -0
- package/build/instagram-CUlv5OyK.js +1 -0
- package/build/internal-BbdcdGbk.js +1 -0
- package/build/key-lhNTst7V.js +1 -0
- package/build/keyboard-CaTpWUSr.js +1 -0
- package/build/keyhole-nSo_k8b1.js +1 -0
- package/build/laptop-grfhz0oo.js +1 -0
- package/build/lastpass-CdlD27rR.js +1 -0
- package/build/layout-grid-CkXlas4K.js +1 -0
- package/build/layout-grid-small-CUxR_FHZ.js +1 -0
- package/build/layout-list-BjPnH3xt.js +1 -0
- package/build/layout-pin-DnsMkw9G.js +1 -0
- package/build/linear-4Bmi1xje.js +1 -0
- package/build/link-BulyCy06.js +1 -0
- package/build/list-VlPe7-p3.js +1 -0
- package/build/list-tree-DZXW5yxl.js +1 -0
- package/build/live-photo-Ct3JD3yy.js +1 -0
- package/build/loadbar-alt-P3e6P-z1.js +1 -0
- package/build/loadbar-doc-CholskuY.js +1 -0
- package/build/loadbar-lrC0aLwl.js +1 -0
- package/build/loadbar-sound-wMphhsNe.js +1 -0
- package/build/lock-DsJcJ1Zr.js +1 -0
- package/build/lock-unlock-BholW3ra.js +1 -0
- package/build/log-in-DdlHt9Jl.js +1 -0
- package/build/log-off-i9792LEH.js +1 -0
- package/build/log-out-CDcmA-0B.js +1 -0
- package/build/loupe-Bjsm15kH.js +1 -0
- package/build/magnet-Dn7cc9ri.js +1 -0
- package/build/mail-open-BzK_JHhA.js +1 -0
- package/build/mail-reply-CVaFuxl1.js +1 -0
- package/build/math-divide-Dxv4xrWP.js +1 -0
- package/build/math-equal-gT5bmgQM.js +1 -0
- package/build/math-minus-DluX6npV.js +1 -0
- package/build/math-percent-CmnngS1I.js +1 -0
- package/build/math-plus-CAhgMqap.js +1 -0
- package/build/maximize-DOx8sAA0.js +1 -0
- package/build/maximize-alt-Ba4YZphT.js +1 -0
- package/build/maze-BQ9i0QAX.js +1 -0
- package/build/media-live-BRBN1XpA.js +1 -0
- package/build/media-podcast-BfW8aP0s.js +1 -0
- package/build/menu-D6wEOGdq.js +1 -0
- package/build/menu-boxed-cjiJmnsE.js +1 -0
- package/build/menu-cake-BztgScmf.js +1 -0
- package/build/menu-cheese-BJo4EN2E.js +1 -0
- package/build/menu-grid-o-DPTx5ADw.js +1 -0
- package/build/menu-grid-r-DZ4prD58.js +1 -0
- package/build/menu-hotdog-C7dJVlX3.js +1 -0
- package/build/menu-left-_1IkkGsy.js +1 -0
- package/build/menu-left-alt-onn1jsgU.js +1 -0
- package/build/menu-motion-5wk5JPvI.js +1 -0
- package/build/menu-oreos-Dgcz9QYK.js +1 -0
- package/build/menu-right-CWABrP1m.js +1 -0
- package/build/menu-right-alt-CV9k0me6.js +1 -0
- package/build/menu-round-jQR6265p.js +1 -0
- package/build/merge-horizontal-FZFaTagJ.js +1 -0
- package/build/merge-vertical-McICcEIk.js +1 -0
- package/build/mic-BLBDBnjp.js +1 -0
- package/build/microbit-SWoPHyC9.js +1 -0
- package/build/microsoft-fSE_xGIR.js +1 -0
- package/build/mini-player-BshNeC0l.js +1 -0
- package/build/minimize-BQhbHIGf.js +1 -0
- package/build/minimize-alt-WSavT4B-.js +1 -0
- package/build/modem-CHB617eM.js +1 -0
- package/build/monday-0VbfQVxQ.js +1 -0
- package/build/more-D9KLovti.js +1 -0
- package/build/more-alt-DhxaqVo-.js +1 -0
- package/build/more-o-B0-5X-Ig.js +1 -0
- package/build/more-r-CdnjtwuG.js +1 -0
- package/build/more-vertical-Bb02nElI.js +1 -0
- package/build/more-vertical-o-DGEzud2L.js +1 -0
- package/build/more-vertical-r-Dub2XwvL.js +1 -0
- package/build/mouse--jZyN0-l.js +1 -0
- package/build/move-down-qCBDxKro.js +1 -0
- package/build/move-left-oWpkAJhS.js +1 -0
- package/build/move-right-CRI0oxSJ.js +1 -0
- package/build/move-task-DgL3rFlW.js +1 -0
- package/build/move-up-B0qjFY8H.js +1 -0
- package/build/music-C5JcWSFL.js +1 -0
- package/build/music-note-MHfGLQeN.js +1 -0
- package/build/music-speaker-CZiSzKTC.js +1 -0
- package/build/nametag-C_l2Y73f.js +1 -0
- package/build/notes-D11A82aq.js +1 -0
- package/build/notifications-C6-iI3H8.js +1 -0
- package/build/npm-j2aOPTqx.js +1 -0
- package/build/oculus-C1X_Gizt.js +1 -0
- package/build/open-collective-DQf9MpSI.js +1 -0
- package/build/organisation-VyGcCA1Q.js +1 -0
- package/build/overflow-B2b-rrk2.js +1 -0
- package/build/pacman-N4TZKtiA.js +1 -0
- package/build/password-BtDtm8Zy.js +1 -0
- package/build/path-back-DNuyNTuj.js +1 -0
- package/build/path-crop-haLEnW0R.js +1 -0
- package/build/path-divide-k05NW3md.js +1 -0
- package/build/path-exclude-VMQK_adK.js +1 -0
- package/build/path-front-BiWoiAVO.js +1 -0
- package/build/path-intersect-D9cMk9Ns.js +1 -0
- package/build/path-outline-BzDRqltS.js +1 -0
- package/build/path-trim-Cg7jNm4-.js +1 -0
- package/build/path-unite-CjmiWPQR.js +1 -0
- package/build/patreon-bOM_tWJf.js +1 -0
- package/build/paypal-DHCAGHa5.js +1 -0
- package/build/pen-LMM6F35o.js +1 -0
- package/build/pentagon-bottom-left-Dh1iF9l_.js +1 -0
- package/build/pentagon-bottom-right-CcCL4BIG.js +1 -0
- package/build/pentagon-down-DLqEoTD_.js +1 -0
- package/build/pentagon-left-DZ_-8WFE.js +1 -0
- package/build/pentagon-right-DHRCW90n.js +1 -0
- package/build/pentagon-top-left-Chx-O1MW.js +1 -0
- package/build/pentagon-top-right-e7sXd4iy.js +1 -0
- package/build/pentagon-up-DRcxtUPt.js +1 -0
- package/build/performance-B92ARAbF.js +1 -0
- package/build/pexels-DA1JQNw6.js +1 -0
- package/build/phone-C3sKBfgd.js +1 -0
- package/build/photoscan-BEfVMmog.js +1 -0
- package/build/piano-BjM4JzNY.js +1 -0
- package/build/pill-DlqoOXE8.js +1 -0
- package/build/pin-DYqauPmQ.js +1 -0
- package/build/pin-alt-Qk1l8V57.js +1 -0
- package/build/pin-bottom-CS-2rGUe.js +1 -0
- package/build/pin-top-CfdJOPXB.js +1 -0
- package/build/play-backwards-DsYOlNee.js +1 -0
- package/build/play-button-BeId9dGh.js +1 -0
- package/build/play-button-o-DNkGlTUj.js +1 -0
- package/build/play-button-r-DcM13qus.js +1 -0
- package/build/play-forwards-CUuXbNtN.js +1 -0
- package/build/play-list-CygUn4qQ.js +1 -0
- package/build/play-list-add-CQJ2unDk.js +1 -0
- package/build/play-list-check-x3WLhdt5.js +1 -0
- package/build/play-list-remove-jiJ5_Hds.js +1 -0
- package/build/play-list-search-2tNhRiYn.js +1 -0
- package/build/play-pause-o-CmhtzPvl.js +1 -0
- package/build/play-pause-r-3m1LRo53.js +1 -0
- package/build/play-pause-zrGHnyPW.js +1 -0
- package/build/play-stop-Mpq_w-Nb.js +1 -0
- package/build/play-stop-o-CIlOdVsq.js +1 -0
- package/build/play-stop-r-CaeB3y_N.js +1 -0
- package/build/play-track-next-B5wsiPI6.js +1 -0
- package/build/play-track-next-o-DfXbj1eq.js +1 -0
- package/build/play-track-next-r-C3ug_ZT2.js +1 -0
- package/build/play-track-prev-CBXaB1h2.js +1 -0
- package/build/play-track-prev-o-C4DvfreA.js +1 -0
- package/build/play-track-prev-r-Co80D1Df.js +1 -0
- package/build/plug-PhnesGI3.js +1 -0
- package/build/pocket-Dsq2YhnK.js +1 -0
- package/build/pokemon-Dx7dcvBn.js +1 -0
- package/build/polaroid-BBs12qZy.js +1 -0
- package/build/poll-DjKHJ0x7.js +1 -0
- package/build/presentation-C5cWptCV.js +1 -0
- package/build/printer-r0ora3bm.js +1 -0
- package/build/product-hunt-BVUhNBnu.js +1 -0
- package/build/pull-clear-89VnJHr0.js +1 -0
- package/build/push-chevron-down-DrtA4ZaW.js +1 -0
- package/build/push-chevron-down-o-CmyqfHMs.js +1 -0
- package/build/push-chevron-down-r-ClR3aTh7.js +1 -0
- package/build/push-chevron-left-B5NOn-NW.js +1 -0
- package/build/push-chevron-left-o-CAYsaR39.js +1 -0
- package/build/push-chevron-left-r-BBxRhUFe.js +1 -0
- package/build/push-chevron-right-BtpM8G9C.js +1 -0
- package/build/push-chevron-right-o-DCORkdsd.js +1 -0
- package/build/push-chevron-right-r-BfJifiBE.js +1 -0
- package/build/push-chevron-up-VKpOHOhG.js +1 -0
- package/build/push-chevron-up-o-CvAHf3Sy.js +1 -0
- package/build/push-chevron-up-r-CXCNH6wW.js +1 -0
- package/build/push-down-9s8lqZCR.js +1 -0
- package/build/push-left-DVGCuPny.js +1 -0
- package/build/push-right-EdgEJ7VF.js +1 -0
- package/build/push-up-CUNFPBCA.js +1 -0
- package/build/qr-BAjKg9L9.js +1 -0
- package/build/quote-CRLxBNWZ.js +1 -0
- package/build/quote-o--WMWw2ny.js +1 -0
- package/build/radio-check-Dt_2AA7x.js +1 -0
- package/build/radio-checked-D-0xcjYw.js +1 -0
- package/build/ratio-C0pwzOBS.js +1 -0
- package/build/read-BRkhhztB.js +1 -0
- package/build/readme-DkjOtibo.js +1 -0
- package/build/record-XiEJHF3A.js +1 -0
- package/build/redo-JPovaKhC.js +1 -0
- package/build/remote-FR-OpcRC.js +1 -0
- package/build/remove-CE261r5L.js +1 -0
- package/build/remove-r-D4aOb7lf.js +1 -0
- package/build/rename-CjS3T7-V.js +1 -0
- package/build/reorder-B6_6PRPt.js +1 -0
- package/build/repeat-PbNToeRm.js +1 -0
- package/build/ring-DkOtJQH_.js +1 -0
- package/build/row-first-Dob69JYo.js +1 -0
- package/build/row-last-D-as6W6U.js +1 -0
- package/build/ruler-nrHC-Vpm.js +1 -0
- package/build/sand-clock-MTTqIhe1.js +1 -0
- package/build/scan-B-kGwNrk.js +1 -0
- package/build/screen-CUMeo_Dm.js +1 -0
- package/build/screen-mirror-CSISWPYV.js +1 -0
- package/build/screen-shot-BTR6-68D.js +1 -0
- package/build/screen-wide-cKy-ClhJ.js +1 -0
- package/build/scroll-h-CbjPkpcH.js +1 -0
- package/build/scroll-v-BboFCs5z.js +1 -0
- package/build/search-DpUAeWUq.js +1 -0
- package/build/search-found-BIA_TufT.js +1 -0
- package/build/search-loading-BJhjHzx-.js +1 -0
- package/build/select-o-BiXEwPSv.js +1 -0
- package/build/select-r-D6Q_A9h3.js +1 -0
- package/build/server-K8zKo91g.js +1 -0
- package/build/serverless-BNhDHUsD.js +1 -0
- package/build/shape-circle-DAqjGsw4.js +1 -0
- package/build/shape-half-circle-87tBDpFM.js +1 -0
- package/build/shape-hexagon-DjyMZCQN.js +1 -0
- package/build/shape-rhombus-DaZY_6Ci.js +1 -0
- package/build/shape-square-C5JXsWk5.js +1 -0
- package/build/shape-triangle-DVDmbUBN.js +1 -0
- package/build/shape-zigzag-CwxZUEX6.js +1 -0
- package/build/share-nS95hsDi.js +1 -0
- package/build/shield-DAcs_9Cq.js +1 -0
- package/build/shopping-bag-sdvXe1wO.js +1 -0
- package/build/shopping-cart-CnNsCVej.js +1 -0
- package/build/shortcut-BO4YkS9_.js +1 -0
- package/build/shutterstock-p0_sA8VB.js +1 -0
- package/build/sidebar-CCSySa_a.js +1 -0
- package/build/sidebar-open-Dkm8jAEa.js +1 -0
- package/build/sidebar-right-BOI0vjTD.js +1 -0
- package/build/signal-Bd3jGPm2.js +1 -0
- package/build/size-DRaWZl2R.js +1 -0
- package/build/sketch-BTOlhUe5.js +1 -0
- package/build/slack-f7I_r4jI.js +1 -0
- package/build/sleep-DE9L1Exs.js +1 -0
- package/build/smart-home-boiler-DlvJWs_g.js +1 -0
- package/build/smart-home-cooker-PzFp8pZS.js +1 -0
- package/build/smart-home-heat-HNF-3wMh.js +1 -0
- package/build/smart-home-light-Bbqy58q6.js +1 -0
- package/build/smart-home-refrigerator-BrPljmnv.js +1 -0
- package/build/smart-home-wash-machine-DSsG_NIC.js +1 -0
- package/build/smartphone-CmLlnEwz.js +1 -0
- package/build/smartphone-chip-J2vO9c0P.js +1 -0
- package/build/smartphone-ram-FzW1Co__.js +1 -0
- package/build/smartphone-shake-CxfiuMb8.js +1 -0
- package/build/smile-mouth-open-GAFJIqx8.js +1 -0
- package/build/smile-neutral-4OMh1f89.js +1 -0
- package/build/smile-no-mouth-1UKwEZ-D.js +1 -0
- package/build/smile-none-CCwVKkc0.js +1 -0
- package/build/smile-sad-DSpadFYV.js +1 -0
- package/build/smile-tlUerlf9.js +1 -0
- package/build/smile-upside-SZgSZNad.js +1 -0
- package/build/software-download-BKLUM-lF.js +1 -0
- package/build/sort-az-CUUBDcA9.js +1 -0
- package/build/sort-za-C6L-F83R.js +1 -0
- package/build/space-between-DvQbY03V.js +1 -0
- package/build/space-between-v-ZtzUY0as.js +1 -0
- package/build/spectrum-LvC9EcIW.js +1 -0
- package/build/spinner-alt-DXW8mD8Z.js +1 -0
- package/build/spinner-ctG7L3oO.js +1 -0
- package/build/spinner-two-CaKVlCxW.js +1 -0
- package/build/spinner-two-alt-nzjWJmcp.js +1 -0
- package/build/square-tHP-j_la.js +1 -0
- package/build/stack-C9P9iALR.js +1 -0
- package/build/stark-4N8m3dNl.js +1 -0
- package/build/stopwatch-DuG4wlG5.js +1 -0
- package/build/stories-DOp0jcZB.js +1 -0
- package/build/studio-BZY78vw8.js +1 -0
- package/build/style-DUt7XELi.js +1 -0
- package/build/support-DKJ-iu2U.js +1 -0
- package/build/swap-BcARRfme.js +1 -0
- package/build/swap-vertical-Dtp4mEs4.js +1 -0
- package/build/sweden-DmJZoBKD.js +1 -0
- package/build/swiss-D6HjAiK5.js +1 -0
- package/build/sync-UY00rw5M.js +1 -0
- package/build/tab-DQuXph06.js +1 -0
- package/build/tag-rBGGPgl1.js +1 -0
- package/build/tally-DBsys7_f.js +1 -0
- package/build/tap-double-w6ZQNPQr.js +1 -0
- package/build/tap-single-DX5DfGkd.js +1 -0
- package/build/template-UkAA3C4E.js +1 -0
- package/build/tennis-JzLV8nmU.js +1 -0
- package/build/terminal-BMBUjUbt.js +1 -0
- package/build/terrain-DdBd6uRr.js +1 -0
- package/build/thermometer-Cx2RA3Sc.js +1 -0
- package/build/thermostat-Bk6QmmsB.js +1 -0
- package/build/tikcode-l5wLURk-.js +1 -0
- package/build/time-D-vqIZDr.js +1 -0
- package/build/timelapse-C26RjV8W.js +1 -0
- package/build/timer-ClSsqL3L.js +1 -0
- package/build/today-Dnh9jInp.js +1 -0
- package/build/toggle-off-BBytJs8g.js +1 -0
- package/build/toggle-on-Dk0HIlc8.js +1 -0
- package/build/toggle-square-Bbr6UI52.js +1 -0
- package/build/toggle-square-off-BkUswCBX.js +1 -0
- package/build/toolbar-bottom-D99onegt.js +1 -0
- package/build/toolbar-left-BPGWOzXv.js +1 -0
- package/build/toolbar-right-BQmUJ8R2.js +1 -0
- package/build/toolbar-top-8_N-hKrv.js +1 -0
- package/build/toolbox-CS9rxUEX.js +1 -0
- package/build/touchpad-Bnnr6WKP.js +1 -0
- package/build/track-Dg1cJ-pn.js +1 -0
- package/build/transcript-BWXcOpps.js +1 -0
- package/build/trash-DMO66xWO.js +1 -0
- package/build/tree-C4Q3R_A6.js +1 -0
- package/build/trees-VziJmTrP.js +1 -0
- package/build/trello-DAqbqHH4.js +1 -0
- package/build/trending-Cgz9-Z2-.js +1 -0
- package/build/trending-down-DhitdwQk.js +1 -0
- package/build/trophy-D2_iJbLy.js +1 -0
- package/build/tv-CcMjmzAU.js +1 -0
- package/build/twilio-D0wgytjj.js +1 -0
- package/build/twitter-BYw28T4Q.js +1 -0
- package/build/ui-kit-kBNNlQBr.js +1 -0
- package/build/umbrella-D8QIhaRp.js +1 -0
- package/build/unavailable-Dv0fvXf2.js +1 -0
- package/build/unblock-B-zdhyQ3.js +1 -0
- package/build/undo-RjPSyjYE.js +1 -0
- package/build/unfold-Buk82y5B.js +1 -0
- package/build/unsplash-BOV8nviX.js +1 -0
- package/build/usb-ClE8cFGt.js +1 -0
- package/build/usb-c-B0_PfOm2.js +1 -0
- package/build/user-D1K3kLC9.js +1 -0
- package/build/user-add-BspackYh.js +1 -0
- package/build/user-remove-D2InlziS.js +1 -0
- package/build/userlane-Dwof68RP.js +1 -0
- package/build/vercel-BaxqPEcZ.js +1 -0
- package/build/view-cols-DtRjBj7L.js +1 -0
- package/build/view-comfortable-b27fJxjA.js +1 -0
- package/build/view-day-Dln-Z--P.js +1 -0
- package/build/view-grid-DkDot8pz.js +1 -0
- package/build/view-list-CfRn43H0.js +1 -0
- package/build/view-month-DU_2k83s.js +1 -0
- package/build/view-split-DgUgVGnk.js +1 -0
- package/build/vinyl-B7Bl2qUL.js +1 -0
- package/build/voicemail-BjCBCPyM.js +1 -0
- package/build/voicemail-o-gCRjr5Wa.js +1 -0
- package/build/voicemail-r-CfwNHCMQ.js +1 -0
- package/build/volume-C_uvDifF.js +1 -0
- package/build/webcam-CAcJuazz.js +1 -0
- package/build/website-3aror2Wj.js +1 -0
- package/build/windows-mhY7fTH3.js +1 -0
- package/build/work-alt-B3tjZMdM.js +1 -0
- package/build/yinyang-CnHG9r3l.js +1 -0
- package/build/youtube-DNAmMDmz.js +1 -0
- package/build/zoom-in-DAneZwFU.js +1 -0
- package/build/zoom-out-DViZi2hw.js +1 -0
- package/package.json +4 -4
- package/src/accordion/Accordion.jsx +5 -11
- package/src/accordion/Accordion.stories.jsx +88 -0
- package/src/dashboard-layout/DashboardLayout.jsx +166 -0
- package/src/dashboard-layout/DashboardLayout.stories.jsx +125 -0
- package/src/dashboard-layout/index.js +11 -0
- package/src/index.js +3 -0
- package/src/line-chart/LineChart.jsx +207 -0
- package/src/line-chart/LineChart.stories.jsx +44 -0
- package/src/line-chart/index.js +1 -0
- package/src/line-chart/line-chart.js +215 -0
- package/src/line-chart/line-chart.spec.js +193 -0
- package/src/panel/Panel.jsx +172 -0
- package/src/panel/Panel.stories.jsx +51 -0
- package/src/panel/index.js +1 -0
- package/src/tabs/Tabs.jsx +5 -5
- package/build/abstract-1QC9Fu49.js +0 -1
- package/build/add-r-9A3mjii8.js +0 -1
- package/build/adidas-BHTzSHDW.js +0 -1
- package/build/airplane-l5ex8J7f.js +0 -1
- package/build/alarm-BK3rjVZL.js +0 -1
- package/build/album-DqXdE-4i.js +0 -1
- package/build/align-bottom-DnCJa2gt.js +0 -1
- package/build/align-center-DUaGvQdF.js +0 -1
- package/build/align-left-B6k6OXrJ.js +0 -1
- package/build/align-middle-CHVHnhby.js +0 -1
- package/build/align-right-C7pQooKW.js +0 -1
- package/build/align-top-DWaPIKKK.js +0 -1
- package/build/anchor-6ZZ-ffyq.js +0 -1
- package/build/apple-watch-B_ShwFP2.js +0 -1
- package/build/arrange-back-BeYun6V-.js +0 -1
- package/build/arrange-front-CNfqoExh.js +0 -1
- package/build/arrow-align-h-DS6ht24F.js +0 -1
- package/build/arrow-align-v-E5pmlFxN.js +0 -1
- package/build/arrow-bottom-left-DMcdk6zv.js +0 -1
- package/build/arrow-bottom-left-o-DWBtkn6S.js +0 -1
- package/build/arrow-bottom-left-r-Cf_SbReb.js +0 -1
- package/build/arrow-bottom-right-CgNKhPu0.js +0 -1
- package/build/arrow-bottom-right-o-DlurgJA1.js +0 -1
- package/build/arrow-bottom-right-r-Dz8SXZkH.js +0 -1
- package/build/arrow-down-BBCXxNO-.js +0 -1
- package/build/arrow-down-o-_TJls06e.js +0 -1
- package/build/arrow-down-r-03arbYm_.js +0 -1
- package/build/arrow-left-Cy2BBHMA.js +0 -1
- package/build/arrow-left-o-BejAn-W0.js +0 -1
- package/build/arrow-left-r-CGWKJu_w.js +0 -1
- package/build/arrow-long-down-Y6voQitn.js +0 -1
- package/build/arrow-long-down-c-Dw-dX-r8.js +0 -1
- package/build/arrow-long-down-e-CPHoRmF4.js +0 -1
- package/build/arrow-long-down-l-bIGehlke.js +0 -1
- package/build/arrow-long-down-r-BO8AuuUD.js +0 -1
- package/build/arrow-long-left-c-xbIpMdCY.js +0 -1
- package/build/arrow-long-left-e-m3-HTW-C.js +0 -1
- package/build/arrow-long-left-l-CJDTO6aH.js +0 -1
- package/build/arrow-long-left-r-CMp6wxhB.js +0 -1
- package/build/arrow-long-right-c-CeF9fFJe.js +0 -1
- package/build/arrow-long-right-e-BMedpmqf.js +0 -1
- package/build/arrow-long-right-l-BXZ9EPeZ.js +0 -1
- package/build/arrow-long-right-r-DP2QtsvX.js +0 -1
- package/build/arrow-long-up-C6tWIXGk.js +0 -1
- package/build/arrow-long-up-c-ChtIisoF.js +0 -1
- package/build/arrow-long-up-e-Dmvz-whu.js +0 -1
- package/build/arrow-long-up-l-Di9FxBoA.js +0 -1
- package/build/arrow-long-up-r-OZ4EjWOV.js +0 -1
- package/build/arrow-right-CmBBQqIX.js +0 -1
- package/build/arrow-right-o-hEuWQnRv.js +0 -1
- package/build/arrow-right-r-BUWv2cqw.js +0 -1
- package/build/arrow-top-left-DNjttGAt.js +0 -1
- package/build/arrow-top-left-o-DcCYzBSU.js +0 -1
- package/build/arrow-top-left-r-DTGT3TjP.js +0 -1
- package/build/arrow-top-right-B8fcxNe9.js +0 -1
- package/build/arrow-top-right-o-Cmm2dIfh.js +0 -1
- package/build/arrow-top-right-r-CtO45E1L.js +0 -1
- package/build/arrow-up-PX0OeQNP.js +0 -1
- package/build/arrow-up-o-CufjOouh.js +0 -1
- package/build/arrow-up-r-BprQ8Na0.js +0 -1
- package/build/arrows-breake-h-2SdteAcK.js +0 -1
- package/build/arrows-breake-v-CPnQi8f3.js +0 -1
- package/build/arrows-exchange-Dgev-RFS.js +0 -1
- package/build/arrows-exchange-alt-DioIIJLa.js +0 -1
- package/build/arrows-exchange-alt-v-CsudTc3h.js +0 -1
- package/build/arrows-exchange-v-1c2N8WK2.js +0 -1
- package/build/arrows-expand-down-left-CdrWOugj.js +0 -1
- package/build/arrows-expand-down-right-BeEbgj-5.js +0 -1
- package/build/arrows-expand-left-D5gZ6pu_.js +0 -1
- package/build/arrows-expand-left-alt-CWzetxM5.js +0 -1
- package/build/arrows-expand-right-BtSbTyAI.js +0 -1
- package/build/arrows-expand-right-alt-INLhghTi.js +0 -1
- package/build/arrows-expand-up-left-yZ7heLVH.js +0 -1
- package/build/arrows-expand-up-right-Grmegcxy.js +0 -1
- package/build/arrows-h-BiwiVQ9O.js +0 -1
- package/build/arrows-h-alt-BiiJopt1.js +0 -1
- package/build/arrows-merge-alt-h-C7a4rQt6.js +0 -1
- package/build/arrows-merge-alt-v-C2NZaPiG.js +0 -1
- package/build/arrows-scroll-h-D2slWYp1.js +0 -1
- package/build/arrows-scroll-v-FwYw98vf.js +0 -1
- package/build/arrows-shrink-h-BltwPpZz.js +0 -1
- package/build/arrows-shrink-v-B-uGD94O.js +0 -1
- package/build/arrows-v-DgFt4B5b.js +0 -1
- package/build/arrows-v-alt-BIgjL_0Z.js +0 -1
- package/build/assign-BzJ-Zbbp.js +0 -1
- package/build/asterisk-CZc6PC78.js +0 -1
- package/build/atlasian-BmODbe1_.js +0 -1
- package/build/attachment-rcJX1KXI.js +0 -1
- package/build/attribution-C7wRVfJY.js +0 -1
- package/build/awards-Cvri_cXk.js +0 -1
- package/build/backspace-B3Qcm5hW.js +0 -1
- package/build/band-aid-DFEH0jiq.js +0 -1
- package/build/battery-CQ0ZIqhu.js +0 -1
- package/build/battery-empty-BRwmUurv.js +0 -1
- package/build/battery-full-HA-8KCfN.js +0 -1
- package/build/bee-Bx4ThKuF.js +0 -1
- package/build/bell-DKLsPMFf.js +0 -1
- package/build/bitbucket-D6K6H6zL.js +0 -1
- package/build/block-Bh7rBzmz.js +0 -1
- package/build/bmw-DlVc0clG.js +0 -1
- package/build/board-65aSi9jF.js +0 -1
- package/build/bolt-CC1IzYZ-.js +0 -1
- package/build/bookmark-DmlyULCt.js +0 -1
- package/build/border-all-cZHN1Aee.js +0 -1
- package/build/border-bottom-CR1V1ra9.js +0 -1
- package/build/border-left-BUVpASwo.js +0 -1
- package/build/border-right-DOgxwcvt.js +0 -1
- package/build/border-style-dashed-hxT3p6AC.js +0 -1
- package/build/border-style-dotted-CdVlePpC.js +0 -1
- package/build/border-style-solid-nnj8pfbA.js +0 -1
- package/build/border-top-BbokfAgo.js +0 -1
- package/build/bot-Dhgzz650.js +0 -1
- package/build/bowl-BnSK3__H.js +0 -1
- package/build/box-DoV6utJM.js +0 -1
- package/build/boy-r2h-PFH7.js +0 -1
- package/build/brackets-CKJRtrp6.js +0 -1
- package/build/briefcase-CYocvV2G.js +0 -1
- package/build/browse-DA4ZFFyi.js +0 -1
- package/build/browser-CzrGQgv3.js +0 -1
- package/build/brush-DknVNisJ.js +0 -1
- package/build/bulb-9JM8jqgZ.js +0 -1
- package/build/c-plus-plus-ChMn9M4F.js +0 -1
- package/build/calculator-CdlxRbpM.js +0 -1
- package/build/calendar-GsCgNCup.js +0 -1
- package/build/calendar-dates-LvOTEGds.js +0 -1
- package/build/calendar-due-DgHIdbl5.js +0 -1
- package/build/calendar-next-BX6qH9xF.js +0 -1
- package/build/calendar-today-DUu_gNQ0.js +0 -1
- package/build/calendar-two-ItDFSkZ2.js +0 -1
- package/build/calibrate-D-2bhZ3M.js +0 -1
- package/build/camera-CVnBN1R_.js +0 -1
- package/build/cap-CJyCYAfE.js +0 -1
- package/build/captions-CBl77L5L.js +0 -1
- package/build/card-clubs-EQ4m7lDV.js +0 -1
- package/build/card-diamonds-Czh8-LsF.js +0 -1
- package/build/card-hearts-uMzMeeK_.js +0 -1
- package/build/card-spades-Bj2vSQLD.js +0 -1
- package/build/carousel-BQZjsdOo.js +0 -1
- package/build/cast-CynbqZd2.js +0 -1
- package/build/chanel-DJTxoEv0.js +0 -1
- package/build/chart-BJh0IVb7.js +0 -1
- package/build/check-B57-1ygY.js +0 -1
- package/build/check-o-LqMMzb19.js +0 -1
- package/build/check-r-D8B8ifmg.js +0 -1
- package/build/chevron-double-down-BLCu4Lx8.js +0 -1
- package/build/chevron-double-down-o-DntxjPAW.js +0 -1
- package/build/chevron-double-down-r-C3_LF6Fo.js +0 -1
- package/build/chevron-double-left-BkuIdeXM.js +0 -1
- package/build/chevron-double-left-o-B2DPgy4F.js +0 -1
- package/build/chevron-double-left-r-Br8d-7Ya.js +0 -1
- package/build/chevron-double-right-U-2_XaTk.js +0 -1
- package/build/chevron-double-right-o-C3JQ5ZND.js +0 -1
- package/build/chevron-double-right-r-q8fUofPz.js +0 -1
- package/build/chevron-double-up-CHQPnU1y.js +0 -1
- package/build/chevron-double-up-o-CpYbPMEW.js +0 -1
- package/build/chevron-double-up-r-C2GrNRId.js +0 -1
- package/build/chevron-down-CCpkeMUP.js +0 -1
- package/build/chevron-down-o-Bv0vFNGE.js +0 -1
- package/build/chevron-down-r-DuyERxjw.js +0 -1
- package/build/chevron-left-o--htYUM2j.js +0 -1
- package/build/chevron-left-r-DfRX45Wr.js +0 -1
- package/build/chevron-left-tD4-fbYL.js +0 -1
- package/build/chevron-right-CfopoIkG.js +0 -1
- package/build/chevron-right-o-lBIufZGe.js +0 -1
- package/build/chevron-right-r-DTjMap90.js +0 -1
- package/build/chevron-up-Cdtwi4uh.js +0 -1
- package/build/chevron-up-o-hIzIHlrL.js +0 -1
- package/build/chevron-up-r-CnRISOVM.js +0 -1
- package/build/circleci-DJJwsafH.js +0 -1
- package/build/clapper-board-BZwHhFyx.js +0 -1
- package/build/clipboard-Cw-hqjF2.js +0 -1
- package/build/close-DcHrGrcb.js +0 -1
- package/build/close-o-CSMfPLAX.js +0 -1
- package/build/close-r-D8BxU8ZF.js +0 -1
- package/build/cloud-C9KHVera.js +0 -1
- package/build/code-BM-p36xx.js +0 -1
- package/build/code-climate-LTFPk8e8.js +0 -1
- package/build/code-slash-CHKw4PJ7.js +0 -1
- package/build/coffee-DWKgSkRW.js +0 -1
- package/build/collage-DKuwPsLy.js +0 -1
- package/build/color-bucket-DqOmiuI9.js +0 -1
- package/build/color-picker-mXgouiJC.js +0 -1
- package/build/comedy-central-mII-ksiz.js +0 -1
- package/build/comment-DAog6tBz.js +0 -1
- package/build/community-BJBeLiYY.js +0 -1
- package/build/components-CPylLRC-.js +0 -1
- package/build/compress-DnbWaWgm.js +0 -1
- package/build/compress-left-_1IQZU8i.js +0 -1
- package/build/compress-right-W5xRNA3k.js +0 -1
- package/build/compress-v-ChpXuDsK.js +0 -1
- package/build/copy-BvwfqJKV.js +0 -1
- package/build/copyright-BuMssevq.js +0 -1
- package/build/corner-double-down-left-BSoixH2G.js +0 -1
- package/build/corner-double-down-right-BaM1R6S5.js +0 -1
- package/build/corner-double-left-down-BpTtzE13.js +0 -1
- package/build/corner-double-left-up-fPuJT0xe.js +0 -1
- package/build/corner-double-right-down-CTVsKfRV.js +0 -1
- package/build/corner-double-right-up-BXdT-DJe.js +0 -1
- package/build/corner-double-up-left-Cvd93FnX.js +0 -1
- package/build/corner-double-up-right-BH5ofXDw.js +0 -1
- package/build/corner-down-left-Bk8oJQaB.js +0 -1
- package/build/corner-down-right-DfBAAiqi.js +0 -1
- package/build/corner-left-down-DiORvPFE.js +0 -1
- package/build/corner-left-up-DSrgfhdn.js +0 -1
- package/build/corner-right-down-aUEIDRlp.js +0 -1
- package/build/corner-right-up-CQ0xSGRo.js +0 -1
- package/build/corner-up-left-CdofLWSa.js +0 -1
- package/build/corner-up-right-BZM4yt7m.js +0 -1
- package/build/credit-card-CFTYijji.js +0 -1
- package/build/crop-DYldt9pl.js +0 -1
- package/build/cross-DZbMzHFG.js +0 -1
- package/build/crowdfire-DBWxZ4ff.js +0 -1
- package/build/crown-DDZw8xMo.js +0 -1
- package/build/danger--xbpDBKz.js +0 -1
- package/build/data-Bmcwczha.js +0 -1
- package/build/database-BpZMy_LC.js +0 -1
- package/build/debug-wEX2dON3.js +0 -1
- package/build/designmodo-B1z0WjSD.js +0 -1
- package/build/desktop-B-J8yeN5.js +0 -1
- package/build/details-less-Dcm3kyRg.js +0 -1
- package/build/dialpad-BtPe4C4f.js +0 -1
- package/build/dice-1-DIweWbfE.js +0 -1
- package/build/dice-2-uO0qS7Bf.js +0 -1
- package/build/dice-3-D5rtxNK-.js +0 -1
- package/build/dice-4-eg0wZXPL.js +0 -1
- package/build/dice-5-CqoaeQzx.js +0 -1
- package/build/dice-6-DLGB06nQ.js +0 -1
- package/build/digitalocean-DG4VAg5D.js +0 -1
- package/build/disc-9EPz4Qyg.js +0 -1
- package/build/display-flex-CbwTsobO.js +0 -1
- package/build/display-fullwidth-CyfHIXL2.js +0 -1
- package/build/display-grid-B6eO60rL.js +0 -1
- package/build/display-spacing-T9q2EV7P.js +0 -1
- package/build/distribute-horizontal-CCFrmNON.js +0 -1
- package/build/distribute-vertical-CUa8fYBh.js +0 -1
- package/build/dock-bottom-Cq12V0ZQ.js +0 -1
- package/build/dock-left-CET3zqy_.js +0 -1
- package/build/dock-right-Covlv_Dm.js +0 -1
- package/build/dock-window-D3En9is2.js +0 -1
- package/build/dolby-Cpossdec.js +0 -1
- package/build/dollar--G0rJUb0.js +0 -1
- package/build/dribbble-dQJFYjO1.js +0 -1
- package/build/drive-x3_8fAoO.js +0 -1
- package/build/drop-BAz58ujy.js +0 -1
- package/build/drop-invert-CE1fi0v1.js +0 -1
- package/build/drop-opacity-BZK2FOb9.js +0 -1
- package/build/duplicate-TbjsdnXq.js +0 -1
- package/build/edit-black-point-B_8TvuZd.js +0 -1
- package/build/edit-contrast-C_YC2g1P.js +0 -1
- package/build/edit-exposure-B5hvY_JO.js +0 -1
- package/build/edit-fade-DoqMwicB.js +0 -1
- package/build/edit-flip-h-BbrmF06x.js +0 -1
- package/build/edit-flip-v-D4bchESO.js +0 -1
- package/build/edit-highlight-C7zr8C-v.js +0 -1
- package/build/edit-markup-BOTbQW8q.js +0 -1
- package/build/edit-mask-j5YjQrlV.js +0 -1
- package/build/edit-noise-BdQxEc26.js +0 -1
- package/build/edit-shadows-Bhtn6kYF.js +0 -1
- package/build/edit-straight-Bx491SSh.js +0 -1
- package/build/edit-unmask-DmjuYqcx.js +0 -1
- package/build/eject-BA0IkdBd.js +0 -1
- package/build/enter-D4Fz-SdE.js +0 -1
- package/build/erase-CNOWU1Gq.js +0 -1
- package/build/ereader-Tdsmdd0D.js +0 -1
- package/build/ericsson-DOfibL-6.js +0 -1
- package/build/ethernet-BHbaK-7Y.js +0 -1
- package/build/euro-B8cL-sIM.js +0 -1
- package/build/eventbrite-Dp9gBmHp.js +0 -1
- package/build/expand-D1IYlZYx.js +0 -1
- package/build/export-BuIDklTz.js +0 -1
- package/build/extension-BQErjeD-.js +0 -1
- package/build/extension-add-DxPbuNU2.js +0 -1
- package/build/extension-alt-P9TECX4Y.js +0 -1
- package/build/extension-remove-sPaTwLm8.js +0 -1
- package/build/external-Ew4jA79a.js +0 -1
- package/build/eye-BBQg9xOt.js +0 -1
- package/build/eye-alt-B0betwDy.js +0 -1
- package/build/facebook-DFOD-iw0.js +0 -1
- package/build/feed-CDK9d3la.js +0 -1
- package/build/figma-Dskz6Uen.js +0 -1
- package/build/file-add-C2IVTFqH.js +0 -1
- package/build/file-document-CjrZvp1F.js +0 -1
- package/build/file-remove-Acw1_5ua.js +0 -1
- package/build/film-v-b1qN1B.js +0 -1
- package/build/filters-CnXeRAQS.js +0 -1
- package/build/flag-JeEs9HO4.js +0 -1
- package/build/flag-alt-DceLOI6p.js +0 -1
- package/build/folder-remove-BnhEsERW.js +0 -1
- package/build/font-height-CUeJWWup.js +0 -1
- package/build/font-spacing-CmMikkjp.js +0 -1
- package/build/format-bold-DIP6YRZZ.js +0 -1
- package/build/format-center-LlUENOpr.js +0 -1
- package/build/format-color-BpfBoQ4W.js +0 -1
- package/build/format-heading-BZ5NkeF4.js +0 -1
- package/build/format-indent-decrease-C3xJbsnS.js +0 -1
- package/build/format-indent-increase-CrxdYC8M.js +0 -1
- package/build/format-italic-PHciO9YR.js +0 -1
- package/build/format-justify-Sk3CfIvh.js +0 -1
- package/build/format-left-DgP8Ok-t.js +0 -1
- package/build/format-line-height-Cfsn4St8.js +0 -1
- package/build/format-right-z8JqMzs9.js +0 -1
- package/build/format-separator-B1j26Fgk.js +0 -1
- package/build/format-slash-V7h8cGuz.js +0 -1
- package/build/format-strike-B7XXlxbG.js +0 -1
- package/build/format-text-AUIBFKFg.js +0 -1
- package/build/format-underline-DZZAgHLa.js +0 -1
- package/build/format-uppercase-CqyjzLgF.js +0 -1
- package/build/framer-D1t2WZ8B.js +0 -1
- package/build/games-AvqqUxdj.js +0 -1
- package/build/gender-female-BGHmzeTO.js +0 -1
- package/build/gender-male-B02uPW_D.js +0 -1
- package/build/ghost-DIizz5rY.js +0 -1
- package/build/ghost-character-Cp-Voi_Y.js +0 -1
- package/build/gift-BGcBSikM.js +0 -1
- package/build/girl-DL2DC9r-.js +0 -1
- package/build/git-branch-QeMhxM63.js +0 -1
- package/build/git-commit-iqE0AYNe.js +0 -1
- package/build/git-fork-DVIAAgol.js +0 -1
- package/build/git-pull-xx77e5rf.js +0 -1
- package/build/gitter-BoTnmZrV.js +0 -1
- package/build/glass-BYq2xWqy.js +0 -1
- package/build/glass-alt-DUVQ-U0a.js +0 -1
- package/build/globe-DFgtmmY8.js +0 -1
- package/build/globe-alt-BRPMtl9E.js +0 -1
- package/build/google-BIsh41qu.js +0 -1
- package/build/google-tasks-CLMLlnIw.js +0 -1
- package/build/gym-BhH9lxsp.js +0 -1
- package/build/hashtag-Cy0NQ53l.js +0 -1
- package/build/headset-oOpfOCrx.js +0 -1
- package/build/heart-6eO5pwd0.js +0 -1
- package/build/hello-DVV7EvJM.js +0 -1
- package/build/home-screen-Df0d2wlD.js +0 -1
- package/build/icecream-yQ3wHbYF.js +0 -1
- package/build/if-design-Cn-vR6Vk.js +0 -1
- package/build/image-CyHnSloW.js +0 -1
- package/build/import-C6Ip_v-9.js +0 -1
- package/build/inbox-BTpio-vC.js +0 -1
- package/build/index-DOYpEhP5.js +0 -1
- package/build/indie-hackers-C2Y8NIZa.js +0 -1
- package/build/infinity-CL4Iz4z7.js +0 -1
- package/build/info-DEHI1tYx.js +0 -1
- package/build/inpicture-D5Jp1xuC.js +0 -1
- package/build/insert-after-DW1G1oMA.js +0 -1
- package/build/insert-after-o-BFpAvQjz.js +0 -1
- package/build/insert-after-r-CBhyjhaK.js +0 -1
- package/build/insert-before-B-n7Q8g3.js +0 -1
- package/build/insert-before-o-frt4SV4x.js +0 -1
- package/build/insert-before-r-BK_ai4eW.js +0 -1
- package/build/insights-DmgM8nsN.js +0 -1
- package/build/instagram-BUkHZO8I.js +0 -1
- package/build/internal-BiHxRDVp.js +0 -1
- package/build/key-BxiaMJ0-.js +0 -1
- package/build/keyboard-CrdjGyhj.js +0 -1
- package/build/keyhole-DiteH97w.js +0 -1
- package/build/laptop-B7e0jeBP.js +0 -1
- package/build/lastpass-CIIg8ZFK.js +0 -1
- package/build/layout-grid-7b6gAsoW.js +0 -1
- package/build/layout-grid-small-DtWbIcr_.js +0 -1
- package/build/layout-list-hE4ZkpTF.js +0 -1
- package/build/layout-pin-sPj85KIJ.js +0 -1
- package/build/linear-D3sdp0Sf.js +0 -1
- package/build/link-Dawic_U8.js +0 -1
- package/build/list-HM3oZnoX.js +0 -1
- package/build/list-tree-N0sdft16.js +0 -1
- package/build/live-photo-CluDnsoo.js +0 -1
- package/build/loadbar-Cj6oIb4C.js +0 -1
- package/build/loadbar-alt-54ivg0Kc.js +0 -1
- package/build/loadbar-doc-FWFX942C.js +0 -1
- package/build/loadbar-sound-DVBGMpDn.js +0 -1
- package/build/lock-CNYsAliE.js +0 -1
- package/build/lock-unlock-JCQpVj8x.js +0 -1
- package/build/log-in-xZ41X6kl.js +0 -1
- package/build/log-off-Un47yI2i.js +0 -1
- package/build/log-out-DKvNDXhk.js +0 -1
- package/build/loupe-3bhjRBjU.js +0 -1
- package/build/magnet-D_xeUn4O.js +0 -1
- package/build/mail-open-ClLWzjXa.js +0 -1
- package/build/mail-reply-BCkVi_D6.js +0 -1
- package/build/math-divide-fdxzOkON.js +0 -1
- package/build/math-equal-D9yAMHCZ.js +0 -1
- package/build/math-minus-BXT8Iwl_.js +0 -1
- package/build/math-percent-agXvhLQ5.js +0 -1
- package/build/math-plus-BsER_9aZ.js +0 -1
- package/build/maximize-CVLX9q5h.js +0 -1
- package/build/maximize-alt-DVKlgxWD.js +0 -1
- package/build/maze-kOSseWqB.js +0 -1
- package/build/media-live-Bl1ZcrB6.js +0 -1
- package/build/media-podcast-DRIUE-9X.js +0 -1
- package/build/menu-BIKDKHWl.js +0 -1
- package/build/menu-boxed-6W3gLlZS.js +0 -1
- package/build/menu-cake-DJdGsHQv.js +0 -1
- package/build/menu-cheese-Dl4Sc9tR.js +0 -1
- package/build/menu-grid-o-MAoWmO5o.js +0 -1
- package/build/menu-grid-r-Dfuq3rIp.js +0 -1
- package/build/menu-hotdog-_SX_qpgd.js +0 -1
- package/build/menu-left-C_V0jNsZ.js +0 -1
- package/build/menu-left-alt-BsKDzNtW.js +0 -1
- package/build/menu-motion-AK5-9IlQ.js +0 -1
- package/build/menu-oreos-Bwq6ufuu.js +0 -1
- package/build/menu-right-alt-C-vKDQ0e.js +0 -1
- package/build/menu-right-zpIwDdPa.js +0 -1
- package/build/menu-round-RYEu_CBL.js +0 -1
- package/build/merge-horizontal-BdOO3Au_.js +0 -1
- package/build/merge-vertical-CTU76xN7.js +0 -1
- package/build/mic-TXZkeJnF.js +0 -1
- package/build/microbit-uqU7yWPl.js +0 -1
- package/build/microsoft-DW5X0D6B.js +0 -1
- package/build/mini-player-BEhap6vq.js +0 -1
- package/build/minimize-B0yy830o.js +0 -1
- package/build/minimize-alt-Csi7T9BY.js +0 -1
- package/build/modem-BgsvM8vL.js +0 -1
- package/build/monday-DDOQ0h7G.js +0 -1
- package/build/more-D89w1CGq.js +0 -1
- package/build/more-alt-DTkqG-im.js +0 -1
- package/build/more-o-ntqk19Pc.js +0 -1
- package/build/more-r-dbkjg2dP.js +0 -1
- package/build/more-vertical-BTedcGun.js +0 -1
- package/build/more-vertical-o-CPtyTvrr.js +0 -1
- package/build/more-vertical-r-CYllAnVI.js +0 -1
- package/build/mouse-DWWhx_SO.js +0 -1
- package/build/move-down-CadbGGuR.js +0 -1
- package/build/move-left-DovA5rL8.js +0 -1
- package/build/move-right-DP6LgDlb.js +0 -1
- package/build/move-task-TUTcA-HE.js +0 -1
- package/build/move-up-D7p8TRE_.js +0 -1
- package/build/music-DA6BA2LV.js +0 -1
- package/build/music-note-C8aDRqF6.js +0 -1
- package/build/music-speaker-Dq5pNm5K.js +0 -1
- package/build/nametag-DhA2wl1v.js +0 -1
- package/build/notes-DWLeqyWr.js +0 -1
- package/build/notifications-ordPxzEw.js +0 -1
- package/build/npm-C8mIpURs.js +0 -1
- package/build/oculus-Dxmh2YzS.js +0 -1
- package/build/open-collective-CY0Ut0I5.js +0 -1
- package/build/organisation-CFGbGzXA.js +0 -1
- package/build/overflow-CK4ISazS.js +0 -1
- package/build/pacman-U08uG-Uu.js +0 -1
- package/build/password-CAxWCBgv.js +0 -1
- package/build/path-back-B5AUhP77.js +0 -1
- package/build/path-crop-CKQYqsac.js +0 -1
- package/build/path-divide-nPLbJJuc.js +0 -1
- package/build/path-exclude-BkxC48-o.js +0 -1
- package/build/path-front-C7pGAGx0.js +0 -1
- package/build/path-intersect-CBFlPyqM.js +0 -1
- package/build/path-outline-PPs4FTMg.js +0 -1
- package/build/path-trim-Ce1oZZfg.js +0 -1
- package/build/path-unite-CdurSvv-.js +0 -1
- package/build/patreon-Cik74W9N.js +0 -1
- package/build/paypal-FQNKLh00.js +0 -1
- package/build/pen-rDPMtYCZ.js +0 -1
- package/build/pentagon-bottom-left-Cacg9U0u.js +0 -1
- package/build/pentagon-bottom-right-Twd4nCIM.js +0 -1
- package/build/pentagon-down-Dpk5_xte.js +0 -1
- package/build/pentagon-left-C0jC9_TI.js +0 -1
- package/build/pentagon-right-Cpaxbkk8.js +0 -1
- package/build/pentagon-top-left-B0-suJ5E.js +0 -1
- package/build/pentagon-top-right-BiL7-t3e.js +0 -1
- package/build/pentagon-up-MRuxWORL.js +0 -1
- package/build/performance-CRWAuWFq.js +0 -1
- package/build/pexels-DFTmf9xR.js +0 -1
- package/build/phone-D5t8ZCnS.js +0 -1
- package/build/photoscan-nOCDoFvG.js +0 -1
- package/build/piano-cAnrcqi8.js +0 -1
- package/build/pill-B7xNdqS-.js +0 -1
- package/build/pin-BPPA66Xx.js +0 -1
- package/build/pin-alt-B6sfFvi2.js +0 -1
- package/build/pin-bottom-RDhCCqfD.js +0 -1
- package/build/pin-top-7L-eDeMJ.js +0 -1
- package/build/play-backwards-B6Ei8pYy.js +0 -1
- package/build/play-button-CCP13K8j.js +0 -1
- package/build/play-button-o-Q-DG9MYl.js +0 -1
- package/build/play-button-r-DHuWQ35y.js +0 -1
- package/build/play-forwards-BNXwuvT4.js +0 -1
- package/build/play-list-Dtrz1TXW.js +0 -1
- package/build/play-list-add-VZNajXEh.js +0 -1
- package/build/play-list-check-DidaQ6qM.js +0 -1
- package/build/play-list-remove-grrc0tjK.js +0 -1
- package/build/play-list-search-DFtVaVg8.js +0 -1
- package/build/play-pause-RxOwSqOt.js +0 -1
- package/build/play-pause-o-BIs-lUyQ.js +0 -1
- package/build/play-pause-r-C_-sKPqy.js +0 -1
- package/build/play-stop-D2XIUadx.js +0 -1
- package/build/play-stop-o-kGf_2Uos.js +0 -1
- package/build/play-stop-r-BZI_iUD7.js +0 -1
- package/build/play-track-next-C9oIWh-6.js +0 -1
- package/build/play-track-next-o-BFKf9z9b.js +0 -1
- package/build/play-track-next-r-B14M7Lz0.js +0 -1
- package/build/play-track-prev-D1jBH4ZM.js +0 -1
- package/build/play-track-prev-o-CuGp3oWZ.js +0 -1
- package/build/play-track-prev-r-BCpwln1F.js +0 -1
- package/build/plug-CKjvv0VI.js +0 -1
- package/build/pocket-CAs5eTvB.js +0 -1
- package/build/pokemon-BjeYADk0.js +0 -1
- package/build/polaroid-BdDiYhFY.js +0 -1
- package/build/poll-DrtatweL.js +0 -1
- package/build/presentation-CKDm0VFX.js +0 -1
- package/build/printer-CxDTrrsS.js +0 -1
- package/build/product-hunt-DXcJq5Ym.js +0 -1
- package/build/pull-clear-Cwdvozzk.js +0 -1
- package/build/push-chevron-down-Bl3dmc2o.js +0 -1
- package/build/push-chevron-down-o-CzMaXi_s.js +0 -1
- package/build/push-chevron-down-r-NKNfhjMA.js +0 -1
- package/build/push-chevron-left-4RWttz7T.js +0 -1
- package/build/push-chevron-left-o-gkK6t7P_.js +0 -1
- package/build/push-chevron-left-r-WCsSFfkz.js +0 -1
- package/build/push-chevron-right-T1AvjuUJ.js +0 -1
- package/build/push-chevron-right-o-DBXw61PG.js +0 -1
- package/build/push-chevron-right-r-DJ-lNqQo.js +0 -1
- package/build/push-chevron-up-CsORINGC.js +0 -1
- package/build/push-chevron-up-o-B3-2Tkev.js +0 -1
- package/build/push-chevron-up-r-BTxo-FrH.js +0 -1
- package/build/push-down-CCtJ_kiE.js +0 -1
- package/build/push-left-RcrR0DSZ.js +0 -1
- package/build/push-right-2pT9KIeC.js +0 -1
- package/build/push-up-r0ObSiEO.js +0 -1
- package/build/qr-SWfHULIh.js +0 -1
- package/build/quote-CsRd8N-n.js +0 -1
- package/build/quote-o-DCCFnxxv.js +0 -1
- package/build/radio-check-BVvLHfd1.js +0 -1
- package/build/radio-checked-Cj_qG2Sr.js +0 -1
- package/build/ratio-CzdDUIi2.js +0 -1
- package/build/read-CT1ic16N.js +0 -1
- package/build/readme-CgMaYMFk.js +0 -1
- package/build/record-BKVsabo2.js +0 -1
- package/build/redo-DiUhY76a.js +0 -1
- package/build/remote-eL4_ndbD.js +0 -1
- package/build/remove-r-CQTZnqGx.js +0 -1
- package/build/remove-zIMYJaQb.js +0 -1
- package/build/rename-TlP6thlA.js +0 -1
- package/build/reorder-DbpmGg9m.js +0 -1
- package/build/repeat-B4CGthxR.js +0 -1
- package/build/ring-tWlS893c.js +0 -1
- package/build/row-first-JW6hD3jd.js +0 -1
- package/build/row-last-37l17kZx.js +0 -1
- package/build/ruler-DEyYVB3z.js +0 -1
- package/build/sand-clock-BIrzhlIg.js +0 -1
- package/build/scan-DsOZw5aK.js +0 -1
- package/build/screen-CAtdAP2j.js +0 -1
- package/build/screen-mirror-4gkhLMxu.js +0 -1
- package/build/screen-shot-CzCUv3z4.js +0 -1
- package/build/screen-wide-C1bZ4OKe.js +0 -1
- package/build/scroll-h-Ce3k9j-6.js +0 -1
- package/build/scroll-v-B1vwtUGQ.js +0 -1
- package/build/search-CoDbMxPb.js +0 -1
- package/build/search-found-D0ZvShdH.js +0 -1
- package/build/search-loading-DXlFfVou.js +0 -1
- package/build/select-o-oRIJ6SNV.js +0 -1
- package/build/select-r-fNpynjLm.js +0 -1
- package/build/server-D7DCBY-M.js +0 -1
- package/build/serverless-rMLGd7X1.js +0 -1
- package/build/shape-circle-C2NUKfuk.js +0 -1
- package/build/shape-half-circle-CX79kCz-.js +0 -1
- package/build/shape-hexagon-F3xjVvon.js +0 -1
- package/build/shape-rhombus-CWDMUPcy.js +0 -1
- package/build/shape-square-fjdEhkJt.js +0 -1
- package/build/shape-triangle-C_UF9ftF.js +0 -1
- package/build/shape-zigzag-zhS8B-rw.js +0 -1
- package/build/share-CoMXwFra.js +0 -1
- package/build/shield-dsYDrNDR.js +0 -1
- package/build/shopping-bag-DNON-agC.js +0 -1
- package/build/shopping-cart-MNExbR7t.js +0 -1
- package/build/shortcut-Dfl4Jgl5.js +0 -1
- package/build/shutterstock-D9g5DXkr.js +0 -1
- package/build/sidebar-DH2YX4oa.js +0 -1
- package/build/sidebar-open-DEj2PAH9.js +0 -1
- package/build/sidebar-right-odegLRqZ.js +0 -1
- package/build/signal-BF5jzG-P.js +0 -1
- package/build/size-COUhpgBX.js +0 -1
- package/build/sketch-9iKykRo7.js +0 -1
- package/build/slack-B27YqK0u.js +0 -1
- package/build/sleep-CKCYXCMb.js +0 -1
- package/build/smart-home-boiler-DlXBpWBe.js +0 -1
- package/build/smart-home-cooker-0Z6P7QrD.js +0 -1
- package/build/smart-home-heat-BhskLlyI.js +0 -1
- package/build/smart-home-light-BRqAX8kO.js +0 -1
- package/build/smart-home-refrigerator-AZd9yrHt.js +0 -1
- package/build/smart-home-wash-machine-s4Pqo03R.js +0 -1
- package/build/smartphone-10RtXbS9.js +0 -1
- package/build/smartphone-chip-pUFtmeNr.js +0 -1
- package/build/smartphone-ram-VSCC_j7B.js +0 -1
- package/build/smartphone-shake-C0TshFiS.js +0 -1
- package/build/smile-CwSIsXLo.js +0 -1
- package/build/smile-mouth-open-CpAG-t3F.js +0 -1
- package/build/smile-neutral-BMTmemmC.js +0 -1
- package/build/smile-no-mouth-DIRUbskD.js +0 -1
- package/build/smile-none-BNbj5GP5.js +0 -1
- package/build/smile-sad-CL_30LuZ.js +0 -1
- package/build/smile-upside-CaFUjCG6.js +0 -1
- package/build/software-download-DQh3w5AQ.js +0 -1
- package/build/sort-az-BPw-0FdO.js +0 -1
- package/build/sort-za-B-cUAJeC.js +0 -1
- package/build/space-between-KdeHkBHI.js +0 -1
- package/build/space-between-v-DLrAbKr8.js +0 -1
- package/build/spectrum-BJ57M99e.js +0 -1
- package/build/spinner-B6sgONxf.js +0 -1
- package/build/spinner-alt-TCmFSiIs.js +0 -1
- package/build/spinner-two-DWzd-833.js +0 -1
- package/build/spinner-two-alt-ClXKWTGf.js +0 -1
- package/build/square-CjPmoTax.js +0 -1
- package/build/stack-BBxcZ7ZL.js +0 -1
- package/build/stark-Bt91CASw.js +0 -1
- package/build/stopwatch-DkJtKmtW.js +0 -1
- package/build/stories-CEW-JYQ5.js +0 -1
- package/build/studio-DPLBRC_f.js +0 -1
- package/build/style-kbHezLRG.js +0 -1
- package/build/support-Czh-9XHF.js +0 -1
- package/build/swap-D2SsQatT.js +0 -1
- package/build/swap-vertical-1dlb6bBs.js +0 -1
- package/build/sweden-DDKwJV8r.js +0 -1
- package/build/swiss-CTJRx2aw.js +0 -1
- package/build/sync-DiqD54ca.js +0 -1
- package/build/tab-mnTifNSd.js +0 -1
- package/build/tag-BqH3osUv.js +0 -1
- package/build/tally-zI63iOrg.js +0 -1
- package/build/tap-double-tNqmIyWq.js +0 -1
- package/build/tap-single-BipBy62F.js +0 -1
- package/build/template-CPiwdqxA.js +0 -1
- package/build/tennis-DYOqu4w9.js +0 -1
- package/build/terminal-mmTMoehF.js +0 -1
- package/build/terrain-Dxoov6Vr.js +0 -1
- package/build/thermometer-C48JAQ3V.js +0 -1
- package/build/thermostat-Bh-ATQ3G.js +0 -1
- package/build/tikcode-BchXsLSV.js +0 -1
- package/build/time-CXyvDsEi.js +0 -1
- package/build/timelapse-C22buJMw.js +0 -1
- package/build/timer-BgkOZUhb.js +0 -1
- package/build/today-C5hP0_SX.js +0 -1
- package/build/toggle-off-BSvucfoj.js +0 -1
- package/build/toggle-on-DK5WClTk.js +0 -1
- package/build/toggle-square-BAhcq5GU.js +0 -1
- package/build/toggle-square-off-BOrpWv1X.js +0 -1
- package/build/toolbar-bottom-tFvbBVag.js +0 -1
- package/build/toolbar-left-BZZxnz1e.js +0 -1
- package/build/toolbar-right-BRkmLAUX.js +0 -1
- package/build/toolbar-top-DDWO963o.js +0 -1
- package/build/toolbox-DrGLG88X.js +0 -1
- package/build/touchpad-BDMkxbZy.js +0 -1
- package/build/track-Cpe1SKSs.js +0 -1
- package/build/transcript-deEmmcsb.js +0 -1
- package/build/trash-CYWzNgmP.js +0 -1
- package/build/tree-NH-ujHdD.js +0 -1
- package/build/trees-CzdA--Xh.js +0 -1
- package/build/trello-CiPOqXE4.js +0 -1
- package/build/trending-COIGxemF.js +0 -1
- package/build/trending-down-DuXCUikh.js +0 -1
- package/build/trophy-B-1Em7hU.js +0 -1
- package/build/tv-BAHzR81s.js +0 -1
- package/build/twilio-CGdiO-iW.js +0 -1
- package/build/twitter-DHvYb2S2.js +0 -1
- package/build/ui-kit-Cl1RHIUf.js +0 -1
- package/build/umbrella-CfB7nDby.js +0 -1
- package/build/unavailable-En-LVuxI.js +0 -1
- package/build/unblock-Bswak22S.js +0 -1
- package/build/undo-Cx_U9hOO.js +0 -1
- package/build/unfold-9Zvv9981.js +0 -1
- package/build/unsplash-BpzPwcB5.js +0 -1
- package/build/usb-Dt32dsYt.js +0 -1
- package/build/usb-c-iiTs_iAc.js +0 -1
- package/build/user-add-DzQaDgNA.js +0 -1
- package/build/user-remove-BgCjct3S.js +0 -1
- package/build/user-tPY09SIh.js +0 -1
- package/build/userlane-Dz-iOzzJ.js +0 -1
- package/build/vercel-32cRcAMQ.js +0 -1
- package/build/view-cols-NIWYyZ9Y.js +0 -1
- package/build/view-comfortable-CtoaVjC3.js +0 -1
- package/build/view-day-CmsoZkS1.js +0 -1
- package/build/view-grid-tHZGS9gI.js +0 -1
- package/build/view-list-DDAU4g12.js +0 -1
- package/build/view-month-DZYuNwQu.js +0 -1
- package/build/view-split-Dgls4hSQ.js +0 -1
- package/build/vinyl-CCbv2DWw.js +0 -1
- package/build/voicemail-Cj55sb-D.js +0 -1
- package/build/voicemail-o-H4wHxmBo.js +0 -1
- package/build/voicemail-r-DYsiVGDT.js +0 -1
- package/build/volume-CIzS9gOR.js +0 -1
- package/build/webcam-DIauod8Y.js +0 -1
- package/build/website-CrE9LyKe.js +0 -1
- package/build/windows-l6QGcWSg.js +0 -1
- package/build/work-alt-BkIA6ytL.js +0 -1
- package/build/yinyang-hA7xFW3H.js +0 -1
- package/build/youtube-BqYfcCNB.js +0 -1
- package/build/zoom-in-j794SdJw.js +0 -1
- package/build/zoom-out-DRzSRVYm.js +0 -1
package/src/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './content-header'
|
|
|
6
6
|
export * from './separator'
|
|
7
7
|
export * from './button'
|
|
8
8
|
export * from './card'
|
|
9
|
+
export * from './panel'
|
|
9
10
|
export * from './carousel'
|
|
10
11
|
export * from './context-menu'
|
|
11
12
|
export * from './dropdown'
|
|
@@ -48,3 +49,5 @@ export * from './locale'
|
|
|
48
49
|
export * from './profile'
|
|
49
50
|
export * from './code-example'
|
|
50
51
|
export * from './accordion'
|
|
52
|
+
export * from './line-chart'
|
|
53
|
+
export * from './dashboard-layout'
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import React, { useMemo } from 'react'
|
|
2
|
+
import { useLocale } from '../locale'
|
|
3
|
+
import { Text } from '../text'
|
|
4
|
+
import { View } from '../view'
|
|
5
|
+
import { buildKpiChartLayout } from './line-chart.js'
|
|
6
|
+
|
|
7
|
+
function ChartAxisLabel ({ x, y, viewWidth, viewHeight, children }) {
|
|
8
|
+
return (
|
|
9
|
+
<Text
|
|
10
|
+
as="span"
|
|
11
|
+
variant="small"
|
|
12
|
+
data-chart-axis-label=""
|
|
13
|
+
style={{
|
|
14
|
+
position: 'absolute',
|
|
15
|
+
left: `${(x / viewWidth) * 100}%`,
|
|
16
|
+
top: `${(y / viewHeight) * 100}%`,
|
|
17
|
+
transform: 'translate(-50%, -100%)',
|
|
18
|
+
margin: 0,
|
|
19
|
+
opacity: 0.75,
|
|
20
|
+
lineHeight: 1,
|
|
21
|
+
whiteSpace: 'nowrap',
|
|
22
|
+
pointerEvents: 'none',
|
|
23
|
+
}}
|
|
24
|
+
>
|
|
25
|
+
{children}
|
|
26
|
+
</Text>
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Multi-series line chart. Months share one money scale unless a series sets
|
|
32
|
+
* `scale: 'hours'`. Dashed series render as a dashed stroke and legend mark.
|
|
33
|
+
*
|
|
34
|
+
* @param {object} props
|
|
35
|
+
* @param {Array<Record<string, unknown>>} props.months
|
|
36
|
+
* @param {Array<{ key: string, label: string, color: string, dashed?: boolean, scale?: string }>} props.series
|
|
37
|
+
* @param {string} [props.unit] Translation key shown beside the legend.
|
|
38
|
+
* @param {string} [props.empty] Translation key shown when there is nothing to plot.
|
|
39
|
+
*/
|
|
40
|
+
export function LineChart ({ months, series, unit, empty }) {
|
|
41
|
+
const { language, t } = useLocale()
|
|
42
|
+
const chart = useMemo(
|
|
43
|
+
() => buildKpiChartLayout({ months, series, language }),
|
|
44
|
+
[months, series, language],
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
if (!chart) {
|
|
48
|
+
if (!empty) return null
|
|
49
|
+
return (
|
|
50
|
+
<View inset="m">
|
|
51
|
+
<Text variant="small" text={empty} />
|
|
52
|
+
</View>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<View gap="s" inset="m" data-line-chart="" style={{ width: '100%' }}>
|
|
58
|
+
<View layout="row-wrap" gap="m" style={{ alignItems: 'center', justifyContent: 'space-between' }}>
|
|
59
|
+
<View layout="row-wrap" gap="m" style={{ alignItems: 'center' }}>
|
|
60
|
+
{series.map((entry) => (
|
|
61
|
+
<View key={entry.key} layout="row" gap="s" style={{ alignItems: 'center' }}>
|
|
62
|
+
<span
|
|
63
|
+
aria-hidden
|
|
64
|
+
style={{
|
|
65
|
+
width: 10,
|
|
66
|
+
height: 10,
|
|
67
|
+
borderRadius: 2,
|
|
68
|
+
background: entry.color,
|
|
69
|
+
display: 'inline-block',
|
|
70
|
+
flexShrink: 0,
|
|
71
|
+
...(entry.dashed
|
|
72
|
+
? {
|
|
73
|
+
background: 'transparent',
|
|
74
|
+
borderTop: `2px dashed ${entry.color}`,
|
|
75
|
+
height: 0,
|
|
76
|
+
borderRadius: 0,
|
|
77
|
+
}
|
|
78
|
+
: null),
|
|
79
|
+
}}
|
|
80
|
+
/>
|
|
81
|
+
<Text variant="small" style={{ marginBottom: 0 }} text={entry.label} />
|
|
82
|
+
</View>
|
|
83
|
+
))}
|
|
84
|
+
</View>
|
|
85
|
+
{unit ? (
|
|
86
|
+
<Text
|
|
87
|
+
as="span"
|
|
88
|
+
variant="small"
|
|
89
|
+
data-line-chart-unit=""
|
|
90
|
+
text={unit}
|
|
91
|
+
style={{ marginBottom: 0 }}
|
|
92
|
+
/>
|
|
93
|
+
) : null}
|
|
94
|
+
</View>
|
|
95
|
+
<div style={{ display: 'flex', alignItems: 'stretch', width: '100%', gap: 4 }}>
|
|
96
|
+
{chart.yTicks.length > 0 ? (
|
|
97
|
+
<div style={{ position: 'relative', flex: '0 0 auto' }}>
|
|
98
|
+
<div aria-hidden style={{ display: 'grid' }}>
|
|
99
|
+
{chart.yTicks.map((tick) => (
|
|
100
|
+
<Text
|
|
101
|
+
key={`tick-size-${tick.value}`}
|
|
102
|
+
as="span"
|
|
103
|
+
variant="small"
|
|
104
|
+
style={{
|
|
105
|
+
gridArea: '1 / 1',
|
|
106
|
+
visibility: 'hidden',
|
|
107
|
+
margin: 0,
|
|
108
|
+
lineHeight: 1,
|
|
109
|
+
whiteSpace: 'nowrap',
|
|
110
|
+
}}
|
|
111
|
+
>
|
|
112
|
+
{tick.label}
|
|
113
|
+
</Text>
|
|
114
|
+
))}
|
|
115
|
+
</div>
|
|
116
|
+
{chart.yTicks.map((tick) => (
|
|
117
|
+
<Text
|
|
118
|
+
key={`tick-label-${tick.value}`}
|
|
119
|
+
as="span"
|
|
120
|
+
variant="small"
|
|
121
|
+
data-line-chart-tick={tick.label}
|
|
122
|
+
style={{
|
|
123
|
+
position: 'absolute',
|
|
124
|
+
right: 0,
|
|
125
|
+
top: `${(tick.y / chart.viewHeight) * 100}%`,
|
|
126
|
+
transform: 'translateY(-50%)',
|
|
127
|
+
margin: 0,
|
|
128
|
+
opacity: 0.75,
|
|
129
|
+
lineHeight: 1,
|
|
130
|
+
whiteSpace: 'nowrap',
|
|
131
|
+
pointerEvents: 'none',
|
|
132
|
+
}}
|
|
133
|
+
>
|
|
134
|
+
{tick.label}
|
|
135
|
+
</Text>
|
|
136
|
+
))}
|
|
137
|
+
</div>
|
|
138
|
+
) : null}
|
|
139
|
+
<div style={{ position: 'relative', flex: '1 1 auto', minWidth: 0 }}>
|
|
140
|
+
<svg
|
|
141
|
+
data-line-chart-plot=""
|
|
142
|
+
viewBox={`0 0 ${chart.viewWidth} ${chart.viewHeight}`}
|
|
143
|
+
width="100%"
|
|
144
|
+
role="img"
|
|
145
|
+
aria-label={unit ? t(unit) : undefined}
|
|
146
|
+
style={{
|
|
147
|
+
display: 'block',
|
|
148
|
+
width: '100%',
|
|
149
|
+
height: 'auto',
|
|
150
|
+
aspectRatio: `${chart.viewWidth} / ${chart.viewHeight}`,
|
|
151
|
+
}}
|
|
152
|
+
preserveAspectRatio="xMidYMid meet"
|
|
153
|
+
>
|
|
154
|
+
{chart.yTicks.map((tick) => (
|
|
155
|
+
<line
|
|
156
|
+
key={`tick-${tick.value}`}
|
|
157
|
+
x1={tick.x1}
|
|
158
|
+
x2={tick.x2}
|
|
159
|
+
y1={tick.y}
|
|
160
|
+
y2={tick.y}
|
|
161
|
+
stroke="currentColor"
|
|
162
|
+
strokeOpacity="0.15"
|
|
163
|
+
vectorEffect="non-scaling-stroke"
|
|
164
|
+
/>
|
|
165
|
+
))}
|
|
166
|
+
{chart.seriesPaths.map((entry) => (
|
|
167
|
+
entry.path ? (
|
|
168
|
+
<g key={entry.key}>
|
|
169
|
+
<path
|
|
170
|
+
d={entry.path}
|
|
171
|
+
fill="none"
|
|
172
|
+
stroke={entry.color}
|
|
173
|
+
strokeWidth={2}
|
|
174
|
+
strokeLinejoin="round"
|
|
175
|
+
strokeLinecap="round"
|
|
176
|
+
strokeDasharray={entry.dashed ? '6 4' : undefined}
|
|
177
|
+
vectorEffect="non-scaling-stroke"
|
|
178
|
+
/>
|
|
179
|
+
{entry.points?.length === 1 ? (
|
|
180
|
+
<circle
|
|
181
|
+
data-line-chart-point={entry.key}
|
|
182
|
+
cx={entry.points[0].x}
|
|
183
|
+
cy={entry.points[0].y}
|
|
184
|
+
r={4}
|
|
185
|
+
fill={entry.color}
|
|
186
|
+
/>
|
|
187
|
+
) : null}
|
|
188
|
+
</g>
|
|
189
|
+
) : null
|
|
190
|
+
))}
|
|
191
|
+
</svg>
|
|
192
|
+
{chart.monthLabels.map((label) => (
|
|
193
|
+
<ChartAxisLabel
|
|
194
|
+
key={`month-${label.index}`}
|
|
195
|
+
x={label.x}
|
|
196
|
+
y={label.y}
|
|
197
|
+
viewWidth={chart.viewWidth}
|
|
198
|
+
viewHeight={chart.viewHeight}
|
|
199
|
+
>
|
|
200
|
+
<span data-line-chart-month={label.label}>{label.label}</span>
|
|
201
|
+
</ChartAxisLabel>
|
|
202
|
+
))}
|
|
203
|
+
</div>
|
|
204
|
+
</div>
|
|
205
|
+
</View>
|
|
206
|
+
)
|
|
207
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { Panel } from '../panel'
|
|
3
|
+
import { LineChart } from './LineChart.jsx'
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Design System/Display/LineChart',
|
|
7
|
+
component: LineChart,
|
|
8
|
+
parameters: {
|
|
9
|
+
docs: {
|
|
10
|
+
description: {
|
|
11
|
+
component:
|
|
12
|
+
'Multi-series line chart. Series share one scale unless a series sets scale to hours. Dashed series draw a dashed stroke.',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const months = Array.from({ length: 12 }, (_, index) => ({
|
|
19
|
+
year: 2026,
|
|
20
|
+
monthNumber: index + 1,
|
|
21
|
+
projectedIncome: 400000 + Math.round(Math.sin(index / 2) * 180000),
|
|
22
|
+
monthlyCostOfEmployees: 320000,
|
|
23
|
+
revenue: 80000 + Math.round(Math.sin(index / 2) * 180000),
|
|
24
|
+
}))
|
|
25
|
+
|
|
26
|
+
const series = [
|
|
27
|
+
{ key: 'projectedIncome', label: 'Forecast income', color: 'var(--color-info, hsl(199, 89%, 43%))', dashed: true },
|
|
28
|
+
{ key: 'monthlyCostOfEmployees', label: 'Salary cost', color: 'var(--color-warning, hsl(38, 92%, 50%))' },
|
|
29
|
+
{ key: 'revenue', label: 'Revenue', color: 'var(--color-accent, hsl(167, 89%, 43%))' },
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
export const Default = () => (
|
|
33
|
+
<div style={{ maxWidth: 720 }}>
|
|
34
|
+
<Panel title="Year" style={{ height: 'auto' }}>
|
|
35
|
+
<LineChart months={months} series={series} unit="kr" />
|
|
36
|
+
</Panel>
|
|
37
|
+
</div>
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
export const Empty = () => (
|
|
41
|
+
<div style={{ maxWidth: 720 }}>
|
|
42
|
+
<LineChart months={[]} series={series} empty="Nothing to plot yet" />
|
|
43
|
+
</div>
|
|
44
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LineChart.jsx'
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure layout helpers for multi-series line charts.
|
|
3
|
+
* Money series share one Y-scale. Series with `scale: 'hours'` (or the legacy
|
|
4
|
+
* `hoursWorked` key) share a second scale so hour shapes stay distinct from money.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const MONEY_KEYS = ['projectedIncome', 'monthlyCostOfEmployees', 'revenue']
|
|
8
|
+
export const HOURS_KEY = 'hoursWorked'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A missing value is a gap. Zero is a real point.
|
|
12
|
+
*
|
|
13
|
+
* @param {unknown} value
|
|
14
|
+
* @returns {number | null}
|
|
15
|
+
*/
|
|
16
|
+
export function plottedValue (value) {
|
|
17
|
+
if (value == null || value === '') return null
|
|
18
|
+
const number = Number(value)
|
|
19
|
+
return Number.isFinite(number) ? number : null
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 3-letter month label for chart axis (locale-aware short month, truncated).
|
|
24
|
+
*
|
|
25
|
+
* @param {{ year?: number|string, monthNumber?: number|string, month?: string }} month
|
|
26
|
+
* @param {string} [language='en']
|
|
27
|
+
* @returns {string}
|
|
28
|
+
*/
|
|
29
|
+
export function shortMonthLabel (month, language = 'en') {
|
|
30
|
+
const year = Number(month?.year)
|
|
31
|
+
const monthNumber = Number(month?.monthNumber)
|
|
32
|
+
if (Number.isFinite(year) && Number.isFinite(monthNumber) && monthNumber >= 1 && monthNumber <= 12) {
|
|
33
|
+
const locale = language === 'sv' ? 'sv-SE' : 'en'
|
|
34
|
+
const date = new Date(Date.UTC(year, monthNumber - 1, 1))
|
|
35
|
+
const short = new Intl.DateTimeFormat(locale, { month: 'short' }).format(date)
|
|
36
|
+
const letters = short.replace(/\./g, '').trim()
|
|
37
|
+
if (letters.length >= 3) {
|
|
38
|
+
return letters.slice(0, 3).replace(/^./, (c) => c.toUpperCase())
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const fallback = String(month?.month || '').replace(/\./g, '').trim()
|
|
42
|
+
return fallback.slice(0, 3).replace(/^./, (c) => c.toUpperCase())
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @param {Array<Record<string, unknown>>} months
|
|
47
|
+
* @param {string[]} keys
|
|
48
|
+
* @returns {{ min: number, max: number } | null}
|
|
49
|
+
*/
|
|
50
|
+
export function extentForKeys (months, keys) {
|
|
51
|
+
if (!months?.length || !keys?.length) return null
|
|
52
|
+
let min = Infinity
|
|
53
|
+
let max = -Infinity
|
|
54
|
+
for (const month of months) {
|
|
55
|
+
for (const key of keys) {
|
|
56
|
+
const value = plottedValue(month[key])
|
|
57
|
+
if (value == null) continue
|
|
58
|
+
if (value < min) min = value
|
|
59
|
+
if (value > max) max = value
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (!Number.isFinite(min) || !Number.isFinite(max)) return null
|
|
63
|
+
if (min === max) {
|
|
64
|
+
min -= 1
|
|
65
|
+
max += 1
|
|
66
|
+
}
|
|
67
|
+
return { min, max }
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @param {number} value
|
|
72
|
+
* @param {{ min: number, max: number }} extent
|
|
73
|
+
* @param {number} padY
|
|
74
|
+
* @param {number} innerH
|
|
75
|
+
*/
|
|
76
|
+
export function valueToY (value, extent, padY, innerH) {
|
|
77
|
+
const span = extent.max - extent.min
|
|
78
|
+
return padY + innerH - ((value - extent.min) / span) * innerH
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Build SVG path strings for series plus all-month X labels.
|
|
83
|
+
*
|
|
84
|
+
* ViewBox defaults use a wide aspect ratio (~3.5:1) so `preserveAspectRatio="meet"`
|
|
85
|
+
* can scale uniformly without squishing axis labels (see #1001).
|
|
86
|
+
*
|
|
87
|
+
* @param {object} options
|
|
88
|
+
* @param {Array<Record<string, unknown>>} options.months
|
|
89
|
+
* @param {Array<{ key: string, label: string, color: string, dashed?: boolean, scale?: string }>} options.series
|
|
90
|
+
* @param {string} [options.language='en']
|
|
91
|
+
* @param {number} [options.viewWidth=560]
|
|
92
|
+
* @param {number} [options.plotHeight=140]
|
|
93
|
+
* @param {number} [options.padX=16] Right inset.
|
|
94
|
+
* @param {number} [options.padLeft=12] Left inset. Tick labels sit outside the plot.
|
|
95
|
+
* @param {number} [options.padTop=12]
|
|
96
|
+
* @param {number} [options.padBottom=28]
|
|
97
|
+
* @returns {{ viewWidth: number, viewHeight: number, seriesPaths: Array<object>, monthLabels: Array<object>, yTicks: Array<object> } | null}
|
|
98
|
+
*/
|
|
99
|
+
export function buildKpiChartLayout ({
|
|
100
|
+
months,
|
|
101
|
+
series,
|
|
102
|
+
language = 'en',
|
|
103
|
+
viewWidth = 560,
|
|
104
|
+
plotHeight = 140,
|
|
105
|
+
padX = 16,
|
|
106
|
+
padLeft = 12,
|
|
107
|
+
padTop = 12,
|
|
108
|
+
padBottom = 28,
|
|
109
|
+
}) {
|
|
110
|
+
if (!months?.length || !series?.length) return null
|
|
111
|
+
|
|
112
|
+
const viewHeight = padTop + plotHeight + padBottom
|
|
113
|
+
const innerW = Math.max(0, viewWidth - padLeft - padX)
|
|
114
|
+
const innerH = plotHeight
|
|
115
|
+
const step = months.length === 1 ? 0 : innerW / (months.length - 1)
|
|
116
|
+
const xAt = (index) => (
|
|
117
|
+
months.length === 1 ? padLeft + innerW / 2 : padLeft + index * step
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
const hoursKeys = [...new Set(
|
|
121
|
+
series
|
|
122
|
+
.filter((entry) => entry.scale === 'hours' || entry.key === HOURS_KEY)
|
|
123
|
+
.map((entry) => entry.key),
|
|
124
|
+
)]
|
|
125
|
+
const moneyKeys = [...new Set(
|
|
126
|
+
series
|
|
127
|
+
.filter((entry) => entry.scale !== 'hours' && entry.key !== HOURS_KEY)
|
|
128
|
+
.map((entry) => entry.key),
|
|
129
|
+
)]
|
|
130
|
+
const moneyExtent = moneyKeys.length ? extentForKeys(months, moneyKeys) : null
|
|
131
|
+
const hoursExtent = hoursKeys.length ? extentForKeys(months, hoursKeys) : null
|
|
132
|
+
|
|
133
|
+
const seriesPaths = series.map((entry) => {
|
|
134
|
+
const extent = (entry.scale === 'hours' || entry.key === HOURS_KEY) ? hoursExtent : moneyExtent
|
|
135
|
+
if (!extent) return { ...entry, path: null }
|
|
136
|
+
|
|
137
|
+
const points = []
|
|
138
|
+
const commands = []
|
|
139
|
+
let open = false
|
|
140
|
+
months.forEach((month, index) => {
|
|
141
|
+
const value = plottedValue(month[entry.key])
|
|
142
|
+
if (value == null) {
|
|
143
|
+
open = false
|
|
144
|
+
return
|
|
145
|
+
}
|
|
146
|
+
const point = {
|
|
147
|
+
x: xAt(index),
|
|
148
|
+
y: valueToY(value, extent, padTop, innerH),
|
|
149
|
+
}
|
|
150
|
+
points.push(point)
|
|
151
|
+
commands.push(`${open ? 'L' : 'M'} ${point.x},${point.y}`)
|
|
152
|
+
open = true
|
|
153
|
+
})
|
|
154
|
+
return {
|
|
155
|
+
...entry,
|
|
156
|
+
points,
|
|
157
|
+
path: commands.length ? commands.join(' ') : null,
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
|
|
161
|
+
const monthLabels = months.map((month, index) => ({
|
|
162
|
+
index,
|
|
163
|
+
label: shortMonthLabel(month, language),
|
|
164
|
+
x: xAt(index),
|
|
165
|
+
y: viewHeight - 6,
|
|
166
|
+
}))
|
|
167
|
+
|
|
168
|
+
const tickScale = hoursExtent && !moneyExtent ? 'hours' : (moneyExtent ? 'money' : null)
|
|
169
|
+
const tickExtent = tickScale === 'hours' ? hoursExtent : moneyExtent
|
|
170
|
+
const yTicks = tickExtent
|
|
171
|
+
? [tickExtent.max, tickExtent.min + (tickExtent.max - tickExtent.min) / 2, tickExtent.min].map((value) => ({
|
|
172
|
+
value,
|
|
173
|
+
label: formatChartTick(value, tickScale, language),
|
|
174
|
+
y: valueToY(value, tickExtent, padTop, innerH),
|
|
175
|
+
x1: padLeft,
|
|
176
|
+
x2: viewWidth - padX,
|
|
177
|
+
}))
|
|
178
|
+
: []
|
|
179
|
+
|
|
180
|
+
return {
|
|
181
|
+
viewWidth,
|
|
182
|
+
viewHeight,
|
|
183
|
+
seriesPaths,
|
|
184
|
+
monthLabels,
|
|
185
|
+
yTicks,
|
|
186
|
+
step,
|
|
187
|
+
padX,
|
|
188
|
+
padLeft,
|
|
189
|
+
padTop,
|
|
190
|
+
padBottom,
|
|
191
|
+
plotHeight,
|
|
192
|
+
innerW,
|
|
193
|
+
innerH,
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Compact axis number. The chart legend already states the unit.
|
|
199
|
+
*
|
|
200
|
+
* @param {number} value
|
|
201
|
+
* @param {'money'|'hours'} scale
|
|
202
|
+
* @param {string} [language='en']
|
|
203
|
+
* @returns {string}
|
|
204
|
+
*/
|
|
205
|
+
export function formatChartTick (value, scale, language = 'en') {
|
|
206
|
+
const locale = language === 'sv' ? 'sv-SE' : 'en'
|
|
207
|
+
if (scale === 'hours') {
|
|
208
|
+
return new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(value)
|
|
209
|
+
}
|
|
210
|
+
const abs = Math.abs(value)
|
|
211
|
+
return new Intl.NumberFormat(locale, {
|
|
212
|
+
notation: abs >= 1000 ? 'compact' : 'standard',
|
|
213
|
+
maximumFractionDigits: abs >= 1000 ? 1 : 0,
|
|
214
|
+
}).format(value)
|
|
215
|
+
}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MONEY_KEYS,
|
|
3
|
+
HOURS_KEY,
|
|
4
|
+
extentForKeys,
|
|
5
|
+
valueToY,
|
|
6
|
+
buildKpiChartLayout,
|
|
7
|
+
shortMonthLabel,
|
|
8
|
+
} from './line-chart.js'
|
|
9
|
+
|
|
10
|
+
const sampleMonths = [
|
|
11
|
+
{ year: 2026, monthNumber: '01', month: 'January', projectedIncome: 100, monthlyCostOfEmployees: 50, revenue: 50, hoursWorked: 10 },
|
|
12
|
+
{ year: 2026, monthNumber: '02', month: 'February', projectedIncome: 200, monthlyCostOfEmployees: 50, revenue: 150, hoursWorked: 20 },
|
|
13
|
+
{ year: 2026, monthNumber: '03', month: 'March', projectedIncome: 150, monthlyCostOfEmployees: 50, revenue: 100, hoursWorked: 15 },
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
const series = [
|
|
17
|
+
{ key: 'projectedIncome', label: 'income', color: 'blue' },
|
|
18
|
+
{ key: 'monthlyCostOfEmployees', label: 'salary', color: 'orange' },
|
|
19
|
+
{ key: 'revenue', label: 'revenue', color: 'green' },
|
|
20
|
+
{ key: 'hoursWorked', label: 'hours', color: 'gray', dashed: true },
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
describe('shortMonthLabel', () => {
|
|
24
|
+
it('formats English months as three letters', () => {
|
|
25
|
+
expect(shortMonthLabel({ year: 2026, monthNumber: '01' }, 'en')).toBe('Jan')
|
|
26
|
+
expect(shortMonthLabel({ year: 2026, monthNumber: '09' }, 'en')).toBe('Sep')
|
|
27
|
+
expect(shortMonthLabel({ year: 2026, monthNumber: 12 }, 'en')).toBe('Dec')
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it('formats Swedish months as three letters without trailing punctuation', () => {
|
|
31
|
+
expect(shortMonthLabel({ year: 2026, monthNumber: '01' }, 'sv')).toBe('Jan')
|
|
32
|
+
expect(shortMonthLabel({ year: 2026, monthNumber: '02' }, 'sv')).toBe('Feb')
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
it('falls back to the long month name when numbers are missing', () => {
|
|
36
|
+
expect(shortMonthLabel({ month: 'January' }, 'en')).toBe('Jan')
|
|
37
|
+
})
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
describe('extentForKeys', () => {
|
|
41
|
+
it('returns shared min/max across money keys', () => {
|
|
42
|
+
const extent = extentForKeys(sampleMonths, MONEY_KEYS)
|
|
43
|
+
expect(extent).toEqual({ min: 50, max: 200 })
|
|
44
|
+
})
|
|
45
|
+
|
|
46
|
+
it('expands a constant series so a flat line stays mid-range', () => {
|
|
47
|
+
const flat = [
|
|
48
|
+
{ monthlyCostOfEmployees: 50 },
|
|
49
|
+
{ monthlyCostOfEmployees: 50 },
|
|
50
|
+
]
|
|
51
|
+
const extent = extentForKeys(flat, ['monthlyCostOfEmployees'])
|
|
52
|
+
expect(extent.min).toBe(49)
|
|
53
|
+
expect(extent.max).toBe(51)
|
|
54
|
+
})
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
describe('buildKpiChartLayout', () => {
|
|
58
|
+
it('centers a single month and keeps its point', () => {
|
|
59
|
+
const layout = buildKpiChartLayout({
|
|
60
|
+
months: [{ year: 2026, monthNumber: 10, count: 1 }],
|
|
61
|
+
series: [{ key: 'count', label: 'Requests', color: 'blue' }],
|
|
62
|
+
viewWidth: 560,
|
|
63
|
+
})
|
|
64
|
+
const seriesPath = layout.seriesPaths[0]
|
|
65
|
+
expect(seriesPath.points).toHaveLength(1)
|
|
66
|
+
expect(seriesPath.points[0].x).toBeCloseTo(layout.padLeft + layout.innerW / 2)
|
|
67
|
+
expect(layout.monthLabels[0].x).toBeCloseTo(seriesPath.points[0].x)
|
|
68
|
+
expect(layout.monthLabels[0].label).toBe('Oct')
|
|
69
|
+
})
|
|
70
|
+
|
|
71
|
+
it('spans the full viewBox width for N months', () => {
|
|
72
|
+
const layout = buildKpiChartLayout({ months: sampleMonths, series, viewWidth: 100 })
|
|
73
|
+
expect(layout).not.toBeNull()
|
|
74
|
+
expect(layout.padLeft + (sampleMonths.length - 1) * layout.step).toBeCloseTo(100 - layout.padX)
|
|
75
|
+
expect(layout.viewWidth).toBe(100)
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
it('keeps salary flat and distinct from income under a shared money scale', () => {
|
|
79
|
+
const layout = buildKpiChartLayout({ months: sampleMonths, series })
|
|
80
|
+
const income = layout.seriesPaths.find((s) => s.key === 'projectedIncome')
|
|
81
|
+
const salary = layout.seriesPaths.find((s) => s.key === 'monthlyCostOfEmployees')
|
|
82
|
+
const revenue = layout.seriesPaths.find((s) => s.key === 'revenue')
|
|
83
|
+
const hours = layout.seriesPaths.find((s) => s.key === HOURS_KEY)
|
|
84
|
+
|
|
85
|
+
expect(income.path).not.toBe(salary.path)
|
|
86
|
+
expect(income.path).not.toBe(revenue.path)
|
|
87
|
+
expect(salary.path).not.toBe(revenue.path)
|
|
88
|
+
|
|
89
|
+
const salaryYs = salary.path.match(/[\d.]+,([\d.]+)/g).map((p) => p.split(',')[1])
|
|
90
|
+
expect(new Set(salaryYs).size).toBe(1)
|
|
91
|
+
|
|
92
|
+
expect(hours.path).not.toBe(income.path)
|
|
93
|
+
expect(hours.dashed).toBe(true)
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
it('maps shared money extent extremes to plot top/bottom', () => {
|
|
97
|
+
const extent = extentForKeys(sampleMonths, MONEY_KEYS)
|
|
98
|
+
const padTop = 10
|
|
99
|
+
const plotHeight = 100
|
|
100
|
+
expect(valueToY(extent.max, extent, padTop, plotHeight)).toBeCloseTo(padTop)
|
|
101
|
+
expect(valueToY(extent.min, extent, padTop, plotHeight)).toBeCloseTo(padTop + plotHeight)
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
it('labels every month with a 3-letter abbreviation', () => {
|
|
105
|
+
const fiscalYear = Array.from({ length: 12 }, (_, i) => ({
|
|
106
|
+
year: 2026,
|
|
107
|
+
monthNumber: String(i + 1).padStart(2, '0'),
|
|
108
|
+
month: 'placeholder',
|
|
109
|
+
projectedIncome: 100 + i,
|
|
110
|
+
monthlyCostOfEmployees: 50,
|
|
111
|
+
revenue: 50 + i,
|
|
112
|
+
hoursWorked: 10,
|
|
113
|
+
}))
|
|
114
|
+
const layout = buildKpiChartLayout({ months: fiscalYear, series, language: 'en' })
|
|
115
|
+
expect(layout.monthLabels).toHaveLength(12)
|
|
116
|
+
expect(layout.monthLabels.map((entry) => entry.label)).toEqual([
|
|
117
|
+
'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
|
|
118
|
+
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',
|
|
119
|
+
])
|
|
120
|
+
expect(layout.monthLabels[0].x).toBe(layout.padLeft)
|
|
121
|
+
expect(layout.monthLabels[11].x).toBeCloseTo(layout.padLeft + 11 * layout.step)
|
|
122
|
+
})
|
|
123
|
+
|
|
124
|
+
it('defaults to a wide viewBox so meet-scaling keeps labels readable', () => {
|
|
125
|
+
const layout = buildKpiChartLayout({ months: sampleMonths, series })
|
|
126
|
+
expect(layout.viewWidth).toBe(560)
|
|
127
|
+
expect(layout.viewHeight / layout.viewWidth).toBeLessThan(0.5)
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
it('stops a series where values are missing', () => {
|
|
131
|
+
const layout = buildKpiChartLayout({
|
|
132
|
+
months: [
|
|
133
|
+
{ actualIncome: 10, projectedIncome: 20 },
|
|
134
|
+
{ actualIncome: 12, projectedIncome: 22 },
|
|
135
|
+
{ actualIncome: null, projectedIncome: 24 },
|
|
136
|
+
],
|
|
137
|
+
series: [
|
|
138
|
+
{ key: 'actualIncome', label: 'actual', color: 'blue' },
|
|
139
|
+
{ key: 'projectedIncome', label: 'forecast', color: 'green', dashed: true },
|
|
140
|
+
],
|
|
141
|
+
})
|
|
142
|
+
const actual = layout.seriesPaths.find((entry) => entry.key === 'actualIncome')
|
|
143
|
+
const forecast = layout.seriesPaths.find((entry) => entry.key === 'forecast' || entry.key === 'projectedIncome')
|
|
144
|
+
expect(actual.points).toHaveLength(2)
|
|
145
|
+
expect(forecast.points).toHaveLength(3)
|
|
146
|
+
expect(extentForKeys([
|
|
147
|
+
{ actualIncome: 100 },
|
|
148
|
+
{ actualIncome: null },
|
|
149
|
+
{ actualIncome: 200 },
|
|
150
|
+
], ['actualIncome'])).toEqual({ min: 100, max: 200 })
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
it('returns null for empty months', () => {
|
|
154
|
+
expect(buildKpiChartLayout({ months: [], series })).toBeNull()
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
it('plots hour series on one scale independent of money', () => {
|
|
158
|
+
const hourSeries = [
|
|
159
|
+
{ key: 'forecastHours', label: 'forecast', color: 'blue', scale: 'hours' },
|
|
160
|
+
{ key: 'actualHours', label: 'actual', color: 'green', scale: 'hours' },
|
|
161
|
+
]
|
|
162
|
+
const months = [
|
|
163
|
+
{ forecastHours: 0, actualHours: 40, projectedIncome: 100000 },
|
|
164
|
+
{ forecastHours: 80, actualHours: 40, projectedIncome: 100000 },
|
|
165
|
+
]
|
|
166
|
+
const layout = buildKpiChartLayout({ months, series: hourSeries })
|
|
167
|
+
const forecast = layout.seriesPaths.find((entry) => entry.key === 'forecastHours')
|
|
168
|
+
const actual = layout.seriesPaths.find((entry) => entry.key === 'actualHours')
|
|
169
|
+
const forecastStartY = Number(forecast.path.split(' ')[1].split(',')[1])
|
|
170
|
+
const actualStartY = Number(actual.path.split(' ')[1].split(',')[1])
|
|
171
|
+
|
|
172
|
+
expect(forecast.path).not.toBe(actual.path)
|
|
173
|
+
expect(forecastStartY).toBeGreaterThan(actualStartY)
|
|
174
|
+
expect(layout.yTicks.map((tick) => tick.label)).toEqual(['80', '40', '0'])
|
|
175
|
+
expect(layout.yTicks[0].y).toBeLessThan(layout.yTicks[2].y)
|
|
176
|
+
})
|
|
177
|
+
|
|
178
|
+
it('labels the money scale with compact values', () => {
|
|
179
|
+
const months = sampleMonths.map((month) => ({
|
|
180
|
+
...month,
|
|
181
|
+
projectedIncome: month.projectedIncome * 10000,
|
|
182
|
+
monthlyCostOfEmployees: month.monthlyCostOfEmployees * 10000,
|
|
183
|
+
revenue: month.revenue * 10000,
|
|
184
|
+
}))
|
|
185
|
+
const layout = buildKpiChartLayout({
|
|
186
|
+
months,
|
|
187
|
+
series: series.filter((entry) => entry.key !== 'hoursWorked'),
|
|
188
|
+
language: 'en',
|
|
189
|
+
})
|
|
190
|
+
expect(layout.yTicks.map((tick) => tick.label)).toEqual(['2M', '1.3M', '500K'])
|
|
191
|
+
expect(layout.yTicks[0].y).toBeLessThan(layout.yTicks[2].y)
|
|
192
|
+
})
|
|
193
|
+
})
|