@cambly/syntax-core 10.9.0 → 10.11.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/dist/Avatar/Avatar.cjs +10 -9
- package/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/Avatar/Avatar.js +10 -9
- package/dist/AvatarGroup/AvatarGroup.cjs +9 -8
- package/dist/AvatarGroup/AvatarGroup.js +9 -8
- package/dist/Badge/Badge.cjs +11 -10
- package/dist/Badge/Badge.d.ts +1 -1
- package/dist/Badge/Badge.js +11 -10
- package/dist/Box/Box.cjs +8 -7
- package/dist/Box/Box.js +8 -7
- package/dist/Button/Button.cjs +19 -18
- package/dist/Button/Button.js +20 -19
- package/dist/Button/constants/classicSize.cjs +2 -1
- package/dist/Button/constants/classicSize.cjs.map +1 -1
- package/dist/Button/constants/classicSize.js +2 -1
- package/dist/Button/constants/classicSize.js.map +1 -1
- package/dist/Button/constants/color.cjs +5 -4
- package/dist/Button/constants/color.js +3 -2
- package/dist/Button/constants/iconSize.cjs +6 -5
- package/dist/Button/constants/iconSize.js +4 -3
- package/dist/Button/constants/loadingIconSize.cjs +5 -4
- package/dist/Button/constants/loadingIconSize.js +3 -2
- package/dist/Button/constants/textVariant.cjs +5 -4
- package/dist/Button/constants/textVariant.js +3 -2
- package/dist/ButtonGroup/ButtonGroup.cjs +5 -4
- package/dist/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/dist/ButtonGroup/ButtonGroup.js +3 -2
- package/dist/Card/Card.cjs +9 -8
- package/dist/Card/Card.d.ts +1 -12
- package/dist/Card/Card.js +9 -8
- package/dist/Checkbox/Checkbox.cjs +12 -11
- package/dist/Checkbox/Checkbox.d.ts +1 -1
- package/dist/Checkbox/Checkbox.js +10 -9
- package/dist/Chip/Chip.cjs +12 -11
- package/dist/Chip/Chip.js +12 -11
- package/dist/Dialog/Dialog.cjs +11 -10
- package/dist/Dialog/Dialog.js +11 -10
- package/dist/Dialog/ModalDialog.cjs +22 -21
- package/dist/Dialog/ModalDialog.js +23 -22
- package/dist/Divider/Divider.cjs +5 -4
- package/dist/Divider/Divider.js +3 -2
- package/dist/Heading/Heading.cjs +9 -8
- package/dist/Heading/Heading.d.ts +2 -2
- package/dist/Heading/Heading.js +7 -6
- package/dist/IconButton/IconButton.cjs +13 -12
- package/dist/IconButton/IconButton.js +12 -11
- package/dist/LinkButton/LinkButton.cjs +16 -15
- package/dist/LinkButton/LinkButton.js +15 -14
- package/dist/Modal/FocusTrap.cjs +5 -4
- package/dist/Modal/FocusTrap.js +3 -2
- package/dist/Modal/Layer.cjs +9 -8
- package/dist/Modal/Layer.js +9 -8
- package/dist/Modal/Modal.cjs +15 -14
- package/dist/Modal/Modal.js +15 -14
- package/dist/Modal/StopScroll.cjs +5 -4
- package/dist/Modal/StopScroll.js +3 -2
- package/dist/Popover/Popover.cjs +26 -25
- package/dist/Popover/Popover.js +27 -26
- package/dist/RadioButton/RadioButton.cjs +12 -11
- package/dist/RadioButton/RadioButton.d.ts +1 -1
- package/dist/RadioButton/RadioButton.js +10 -9
- package/dist/RichSelect/RichSelectBox.cjs +32 -31
- package/dist/RichSelect/RichSelectBox.d.ts +1 -1
- package/dist/RichSelect/RichSelectBox.js +33 -32
- package/dist/RichSelect/RichSelectChip.cjs +14 -13
- package/dist/RichSelect/RichSelectChip.js +14 -13
- package/dist/RichSelect/RichSelectItem.cjs +6 -5
- package/dist/RichSelect/RichSelectItem.js +4 -3
- package/dist/RichSelect/RichSelectList.cjs +45 -44
- package/dist/RichSelect/RichSelectList.d.ts +1 -1
- package/dist/RichSelect/RichSelectList.js +46 -45
- package/dist/RichSelect/RichSelectRadioButton.cjs +14 -13
- package/dist/RichSelect/RichSelectRadioButton.d.ts +1 -1
- package/dist/RichSelect/RichSelectRadioButton.js +12 -11
- package/dist/RichSelect/RichSelectSection.cjs +11 -10
- package/dist/RichSelect/RichSelectSection.js +10 -9
- package/dist/SelectList/SelectList.cjs +14 -13
- package/dist/SelectList/SelectList.js +12 -11
- package/dist/SelectList/SelectOption.cjs +5 -4
- package/dist/SelectList/SelectOption.js +3 -2
- package/dist/TapArea/TapArea.cjs +7 -6
- package/dist/TapArea/TapArea.d.ts +1 -1
- package/dist/TapArea/TapArea.js +5 -4
- package/dist/TextArea/TextArea.cjs +12 -11
- package/dist/TextArea/TextArea.js +13 -12
- package/dist/TextField/TextField.cjs +12 -11
- package/dist/TextField/TextField.js +13 -12
- package/dist/ThemeProvider/ThemeProvider.cjs +5 -4
- package/dist/ThemeProvider/ThemeProvider.js +3 -2
- package/dist/Tooltip/Tooltip.cjs +16 -15
- package/dist/Tooltip/Tooltip.js +16 -15
- package/dist/Typography/Typography.cjs +8 -7
- package/dist/Typography/Typography.d.ts +5 -5
- package/dist/Typography/Typography.js +6 -5
- package/dist/__chunks/{Q5RYWCW7.js → 23RTNWVN.js} +7 -6
- package/dist/__chunks/{Q5RYWCW7.js.map → 23RTNWVN.js.map} +1 -1
- package/dist/__chunks/{T2WKEFB5.js → 2HKT4ZZ3.js} +10 -9
- package/dist/__chunks/{T2WKEFB5.js.map → 2HKT4ZZ3.js.map} +1 -1
- package/dist/__chunks/{OI44OAX7.cjs → 2LJ5BR5J.cjs} +16 -15
- package/dist/__chunks/2LJ5BR5J.cjs.map +1 -0
- package/dist/__chunks/{PKXXQ3OV.js → 37PNBG3P.js} +3 -1
- package/dist/__chunks/{PKXXQ3OV.js.map → 37PNBG3P.js.map} +1 -1
- package/dist/__chunks/{Y6L6EOCB.js → 3AAZZWKY.js} +3 -2
- package/dist/__chunks/{Y6L6EOCB.js.map → 3AAZZWKY.js.map} +1 -1
- package/dist/__chunks/{GYI2PBXY.cjs → 3K37FYOT.cjs} +5 -4
- package/dist/__chunks/3K37FYOT.cjs.map +1 -0
- package/dist/__chunks/{LQ6T5UCI.cjs → 3P2PWHOU.cjs} +4 -2
- package/dist/__chunks/3P2PWHOU.cjs.map +1 -0
- package/dist/__chunks/{MGHMASZR.cjs → 44AWCXIE.cjs} +5 -4
- package/dist/__chunks/44AWCXIE.cjs.map +1 -0
- package/dist/__chunks/{DSGIOBWG.js → 46XGANFF.js} +3 -1
- package/dist/__chunks/{DSGIOBWG.js.map → 46XGANFF.js.map} +1 -1
- package/dist/__chunks/{UWLK56NJ.js → 4DDBT2NH.js} +3 -2
- package/dist/__chunks/{UWLK56NJ.js.map → 4DDBT2NH.js.map} +1 -1
- package/dist/__chunks/{SPWDKPHT.cjs → 4RHEB5F4.cjs} +5 -10
- package/dist/__chunks/4RHEB5F4.cjs.map +1 -0
- package/dist/__chunks/4U4UW4AK.js +2 -0
- package/dist/__chunks/{GKECCWR3.cjs → 4UJE5GMH.cjs} +4 -2
- package/dist/__chunks/4UJE5GMH.cjs.map +1 -0
- package/dist/__chunks/{DM4UMQ5D.cjs → 4ZST4KQI.cjs} +35 -34
- package/dist/__chunks/4ZST4KQI.cjs.map +1 -0
- package/dist/__chunks/{A72TS5OX.cjs → 54PSDUCD.cjs} +4 -2
- package/dist/__chunks/54PSDUCD.cjs.map +1 -0
- package/dist/__chunks/{7AYSDTC6.cjs → 5JUNB754.cjs} +4 -2
- package/dist/__chunks/5JUNB754.cjs.map +1 -0
- package/dist/__chunks/{4QCCTDDW.cjs → 6B2PWEM7.cjs} +8 -7
- package/dist/__chunks/6B2PWEM7.cjs.map +1 -0
- package/dist/__chunks/{SJG2X2VN.cjs → 6DRTKEXK.cjs} +11 -10
- package/dist/__chunks/6DRTKEXK.cjs.map +1 -0
- package/dist/__chunks/{CVY5S6ZX.cjs → 6IS4356O.cjs} +11 -10
- package/dist/__chunks/6IS4356O.cjs.map +1 -0
- package/dist/__chunks/{ANT3IQ3X.cjs → 6SALMOFU.cjs} +22 -21
- package/dist/__chunks/6SALMOFU.cjs.map +1 -0
- package/dist/__chunks/{KP3CHNJW.js → 6WW5YWOS.js} +10 -9
- package/dist/__chunks/{KP3CHNJW.js.map → 6WW5YWOS.js.map} +1 -1
- package/dist/__chunks/{5ZDZZL2P.js → 7N4ZDVVD.js} +3 -1
- package/dist/__chunks/{5ZDZZL2P.js.map → 7N4ZDVVD.js.map} +1 -1
- package/dist/__chunks/{JOG44CT2.js → 7P2G663D.js} +10 -9
- package/dist/__chunks/{JOG44CT2.js.map → 7P2G663D.js.map} +1 -1
- package/dist/__chunks/A4O4F3KK.cjs +57 -0
- package/dist/__chunks/A4O4F3KK.cjs.map +1 -0
- package/dist/__chunks/{BIOBVFK4.js → A4QZYP2J.js} +5 -4
- package/dist/__chunks/{BIOBVFK4.js.map → A4QZYP2J.js.map} +1 -1
- package/dist/__chunks/{ARYTS7XZ.js → ABAYJGAF.js} +6 -5
- package/dist/__chunks/{ARYTS7XZ.js.map → ABAYJGAF.js.map} +1 -1
- package/dist/__chunks/{SJFWRAOP.cjs → BA4JPX36.cjs} +4 -2
- package/dist/__chunks/BA4JPX36.cjs.map +1 -0
- package/dist/__chunks/{OGJDUOWP.js → BWPNF6RD.js} +3 -1
- package/dist/__chunks/{OGJDUOWP.js.map → BWPNF6RD.js.map} +1 -1
- package/dist/__chunks/{POAYQEOA.cjs → CJJAA2FD.cjs} +4 -2
- package/dist/__chunks/CJJAA2FD.cjs.map +1 -0
- package/dist/__chunks/{WKDXUPAM.cjs → COV3XKSJ.cjs} +4 -2
- package/dist/__chunks/COV3XKSJ.cjs.map +1 -0
- package/dist/__chunks/{PTWXXDFF.js → DDUJFFG7.js} +3 -1
- package/dist/__chunks/{PTWXXDFF.js.map → DDUJFFG7.js.map} +1 -1
- package/dist/__chunks/{3TXXNWWA.cjs → DJHFPKBX.cjs} +4 -2
- package/dist/__chunks/DJHFPKBX.cjs.map +1 -0
- package/dist/__chunks/{M3L2KJQY.cjs → DKBI6MRY.cjs} +14 -13
- package/dist/__chunks/DKBI6MRY.cjs.map +1 -0
- package/dist/__chunks/{ZUFGJYFB.js → DUQSTRXU.js} +3 -2
- package/dist/__chunks/{ZUFGJYFB.js.map → DUQSTRXU.js.map} +1 -1
- package/dist/__chunks/{XKDASN7N.js → E5KMIBEU.js} +3 -1
- package/dist/__chunks/{XKDASN7N.js.map → E5KMIBEU.js.map} +1 -1
- package/dist/__chunks/{RFHPSEBF.cjs → E5P6WRJD.cjs} +4 -2
- package/dist/__chunks/E5P6WRJD.cjs.map +1 -0
- package/dist/__chunks/{DWTZH7KM.cjs → EQIP4BAD.cjs} +12 -11
- package/dist/__chunks/EQIP4BAD.cjs.map +1 -0
- package/dist/__chunks/{GJ44NFS5.cjs → FFPBVVGU.cjs} +7 -6
- package/dist/__chunks/FFPBVVGU.cjs.map +1 -0
- package/dist/__chunks/{5I67FE26.js → FMQVMNVR.js} +3 -1
- package/dist/__chunks/{5I67FE26.js.map → FMQVMNVR.js.map} +1 -1
- package/dist/__chunks/{WPRJVUVL.cjs → FO34OHGH.cjs} +27 -26
- package/dist/__chunks/FO34OHGH.cjs.map +1 -0
- package/dist/__chunks/{4PLE46VU.cjs → FZLDJPVT.cjs} +4 -2
- package/dist/__chunks/FZLDJPVT.cjs.map +1 -0
- package/dist/__chunks/{K3H7QFPB.js → GFKDPMFK.js} +3 -1
- package/dist/__chunks/{K3H7QFPB.js.map → GFKDPMFK.js.map} +1 -1
- package/dist/__chunks/{CRDTRKBH.js → GHQXAXV3.js} +8 -7
- package/dist/__chunks/{CRDTRKBH.js.map → GHQXAXV3.js.map} +1 -1
- package/dist/__chunks/{2IVYMX2N.cjs → H44LFJ2L.cjs} +15 -14
- package/dist/__chunks/H44LFJ2L.cjs.map +1 -0
- package/dist/__chunks/{DAMHOGG6.js → HNDUANRX.js} +5 -4
- package/dist/__chunks/{DAMHOGG6.js.map → HNDUANRX.js.map} +1 -1
- package/dist/__chunks/{PBWG2BB5.cjs → HUIHS6RN.cjs} +4 -2
- package/dist/__chunks/HUIHS6RN.cjs.map +1 -0
- package/dist/__chunks/{PSWX5DBC.cjs → HWQUS53M.cjs} +4 -2
- package/dist/__chunks/HWQUS53M.cjs.map +1 -0
- package/dist/__chunks/{BQ6CW43H.js → IDI4ITMK.js} +5 -4
- package/dist/__chunks/{BQ6CW43H.js.map → IDI4ITMK.js.map} +1 -1
- package/dist/__chunks/{7W5RYLTS.cjs → IYA2TMMR.cjs} +10 -9
- package/dist/__chunks/IYA2TMMR.cjs.map +1 -0
- package/dist/__chunks/{3UFCDOCF.js → IYVE2HA6.js} +5 -4
- package/dist/__chunks/{3UFCDOCF.js.map → IYVE2HA6.js.map} +1 -1
- package/dist/__chunks/{MQUMPR4A.js → J6IV47MV.js} +9 -8
- package/dist/__chunks/{MQUMPR4A.js.map → J6IV47MV.js.map} +1 -1
- package/dist/__chunks/{YJ7YDIGB.js → JB65NEXK.js} +3 -1
- package/dist/__chunks/{YJ7YDIGB.js.map → JB65NEXK.js.map} +1 -1
- package/dist/__chunks/{X6F66N7W.cjs → JDLL6DAC.cjs} +16 -15
- package/dist/__chunks/JDLL6DAC.cjs.map +1 -0
- package/dist/__chunks/{5OB72SMM.js → JHJZ5COD.js} +3 -1
- package/dist/__chunks/{5OB72SMM.js.map → JHJZ5COD.js.map} +1 -1
- package/dist/__chunks/{DSCWFIR3.cjs → JQGCEUQE.cjs} +12 -11
- package/dist/__chunks/JQGCEUQE.cjs.map +1 -0
- package/dist/__chunks/{YHKD5YRY.js → JVOQF4CG.js} +3 -2
- package/dist/__chunks/{YHKD5YRY.js.map → JVOQF4CG.js.map} +1 -1
- package/dist/__chunks/{FZRIE7EX.cjs → K4AUV2VK.cjs} +4 -2
- package/dist/__chunks/K4AUV2VK.cjs.map +1 -0
- package/dist/__chunks/{2O6FDRTF.js → KKADUD65.js} +3 -1
- package/dist/__chunks/{2O6FDRTF.js.map → KKADUD65.js.map} +1 -1
- package/dist/__chunks/{42YPEAFS.js → KODEDJGB.js} +3 -1
- package/dist/__chunks/{42YPEAFS.js.map → KODEDJGB.js.map} +1 -1
- package/dist/__chunks/{SCOOHJY4.js → KUXGXAAN.js} +5 -4
- package/dist/__chunks/{SCOOHJY4.js.map → KUXGXAAN.js.map} +1 -1
- package/dist/__chunks/{32FNU7ZY.js → L7PPCZM5.js} +4 -3
- package/dist/__chunks/{32FNU7ZY.js.map → L7PPCZM5.js.map} +1 -1
- package/dist/__chunks/{4EXO6IHD.cjs → LLFHCGRA.cjs} +4 -2
- package/dist/__chunks/LLFHCGRA.cjs.map +1 -0
- package/dist/__chunks/{JQ6POHCA.js → M26PGOYA.js} +4 -3
- package/dist/__chunks/{JQ6POHCA.js.map → M26PGOYA.js.map} +1 -1
- package/dist/__chunks/{I5W7ECUO.js → MAPDSZR4.js} +5 -4
- package/dist/__chunks/{I5W7ECUO.js.map → MAPDSZR4.js.map} +1 -1
- package/dist/__chunks/{ZDMSFZS3.cjs → MF7LLV7V.cjs} +4 -2
- package/dist/__chunks/MF7LLV7V.cjs.map +1 -0
- package/dist/__chunks/{6LBX2D7Z.js → MNVLUU4O.js} +14 -13
- package/dist/__chunks/{6LBX2D7Z.js.map → MNVLUU4O.js.map} +1 -1
- package/dist/__chunks/{5HJFQPOL.js → MTLPG2DC.js} +4 -3
- package/dist/__chunks/{5HJFQPOL.js.map → MTLPG2DC.js.map} +1 -1
- package/dist/__chunks/{GVEA7SLQ.cjs → NOELZTQX.cjs} +4 -2
- package/dist/__chunks/NOELZTQX.cjs.map +1 -0
- package/dist/__chunks/{TVGN7SBI.cjs → NYOKOJQB.cjs} +24 -23
- package/dist/__chunks/NYOKOJQB.cjs.map +1 -0
- package/dist/__chunks/{KMIZI5PW.js → O3CEUWCC.js} +3 -1
- package/dist/__chunks/{KMIZI5PW.js.map → O3CEUWCC.js.map} +1 -1
- package/dist/__chunks/{IISMRA4R.js → OF66QEJL.js} +3 -1
- package/dist/__chunks/{IISMRA4R.js.map → OF66QEJL.js.map} +1 -1
- package/dist/__chunks/{HOSRHZZG.js → OFOTR7RY.js} +5 -4
- package/dist/__chunks/{HOSRHZZG.js.map → OFOTR7RY.js.map} +1 -1
- package/dist/__chunks/{ZEA5JDEB.js → OULAADL7.js} +7 -6
- package/dist/__chunks/{ZEA5JDEB.js.map → OULAADL7.js.map} +1 -1
- package/dist/__chunks/{UXWIAEKV.cjs → P67XTYNK.cjs} +24 -23
- package/dist/__chunks/P67XTYNK.cjs.map +1 -0
- package/dist/__chunks/{5WNFAQGY.cjs → PLUVW6AM.cjs} +4 -2
- package/dist/__chunks/PLUVW6AM.cjs.map +1 -0
- package/dist/__chunks/{AXP5KWIY.cjs → PTQQBZPQ.cjs} +12 -11
- package/dist/__chunks/PTQQBZPQ.cjs.map +1 -0
- package/dist/__chunks/{OXKLJY2L.js → QBGKDCTG.js} +5 -4
- package/dist/__chunks/{OXKLJY2L.js.map → QBGKDCTG.js.map} +1 -1
- package/dist/__chunks/{AFINOME7.js → QQT35OLE.js} +3 -1
- package/dist/__chunks/{AFINOME7.js.map → QQT35OLE.js.map} +1 -1
- package/dist/__chunks/{CGFXAKKI.js → QSC7CAQA.js} +3 -1
- package/dist/__chunks/{CGFXAKKI.js.map → QSC7CAQA.js.map} +1 -1
- package/dist/__chunks/{VS4SS6B3.cjs → RKEF7WKZ.cjs} +13 -12
- package/dist/__chunks/RKEF7WKZ.cjs.map +1 -0
- package/dist/__chunks/{RXNTJFP4.js → RN3PLPAG.js} +3 -1
- package/dist/__chunks/{RXNTJFP4.js.map → RN3PLPAG.js.map} +1 -1
- package/dist/__chunks/{VMARHE5B.cjs → SBCGYV6N.cjs} +4 -2
- package/dist/__chunks/SBCGYV6N.cjs.map +1 -0
- package/dist/__chunks/{ARBLKS7D.js → SVZOETLJ.js} +3 -1
- package/dist/__chunks/{ARBLKS7D.js.map → SVZOETLJ.js.map} +1 -1
- package/dist/__chunks/{K2AMFXJG.cjs → T6GJCK6W.cjs} +26 -25
- package/dist/__chunks/T6GJCK6W.cjs.map +1 -0
- package/dist/__chunks/{KOZMH6AE.js → TXXXNKKO.js} +6 -5
- package/dist/__chunks/{KOZMH6AE.js.map → TXXXNKKO.js.map} +1 -1
- package/dist/__chunks/{QJI4G5FP.cjs → UAN6WTHU.cjs} +8 -7
- package/dist/__chunks/UAN6WTHU.cjs.map +1 -0
- package/dist/__chunks/{VA23P3ZI.cjs → ULMCQ7EA.cjs} +20 -19
- package/dist/__chunks/ULMCQ7EA.cjs.map +1 -0
- package/dist/__chunks/{LULBCTQR.js → UWGNJENA.js} +2 -1
- package/dist/__chunks/{6NXOQHE2.js → UZODIMNK.js} +11 -10
- package/dist/__chunks/{6NXOQHE2.js.map → UZODIMNK.js.map} +1 -1
- package/dist/__chunks/{2L772DMJ.js → V6DB6ZQU.js} +5 -4
- package/dist/__chunks/{2L772DMJ.js.map → V6DB6ZQU.js.map} +1 -1
- package/dist/__chunks/{TMH27D62.js → VBRCBEDC.js} +12 -11
- package/dist/__chunks/{TMH27D62.js.map → VBRCBEDC.js.map} +1 -1
- package/dist/__chunks/{7GJ2SD7O.cjs → VF7PQHZP.cjs} +4 -2
- package/dist/__chunks/VF7PQHZP.cjs.map +1 -0
- package/dist/__chunks/{4YO26FWL.cjs → VKB7KOAH.cjs} +4 -2
- package/dist/__chunks/VKB7KOAH.cjs.map +1 -0
- package/dist/__chunks/{LCEAHKFE.cjs → WEIWUACW.cjs} +8 -7
- package/dist/__chunks/WEIWUACW.cjs.map +1 -0
- package/dist/__chunks/WFVGNGEP.cjs +2 -0
- package/dist/__chunks/{SZCVEBN2.cjs → WJRIAS4W.cjs} +12 -11
- package/dist/__chunks/WJRIAS4W.cjs.map +1 -0
- package/dist/__chunks/{33HJ72Y2.cjs → WRTSVDQZ.cjs} +4 -2
- package/dist/__chunks/WRTSVDQZ.cjs.map +1 -0
- package/dist/__chunks/{74UCGNED.js → WSRIDHYX.js} +3 -8
- package/dist/__chunks/WSRIDHYX.js.map +1 -0
- package/dist/__chunks/{FINKF5MC.cjs → WYWNQJ3B.cjs} +9 -8
- package/dist/__chunks/WYWNQJ3B.cjs.map +1 -0
- package/dist/__chunks/{TF76F532.cjs → X2LNODY7.cjs} +4 -2
- package/dist/__chunks/X2LNODY7.cjs.map +1 -0
- package/dist/__chunks/{I64JGYX7.cjs → X2SDR4SD.cjs} +3 -2
- package/dist/__chunks/{TPMQI44L.js → X5UGK633.js} +3 -1
- package/dist/__chunks/{TPMQI44L.js.map → X5UGK633.js.map} +1 -1
- package/dist/__chunks/{TIW4V757.cjs → X6HZ6DM2.cjs} +21 -20
- package/dist/__chunks/X6HZ6DM2.cjs.map +1 -0
- package/dist/__chunks/{7W3S3GV2.cjs → XE3INH2F.cjs} +5 -4
- package/dist/__chunks/XE3INH2F.cjs.map +1 -0
- package/dist/__chunks/{TZX4M4BC.cjs → XEN6XJKU.cjs} +4 -2
- package/dist/__chunks/XEN6XJKU.cjs.map +1 -0
- package/dist/__chunks/{IOQT7L7F.js → XFP4MBWD.js} +3 -1
- package/dist/__chunks/{IOQT7L7F.js.map → XFP4MBWD.js.map} +1 -1
- package/dist/__chunks/{LTM57QMY.cjs → XLUVINJW.cjs} +4 -2
- package/dist/__chunks/XLUVINJW.cjs.map +1 -0
- package/dist/__chunks/{YOMN7RCA.js → Y2OAIOQE.js} +3 -2
- package/dist/__chunks/{YOMN7RCA.js.map → Y2OAIOQE.js.map} +1 -1
- package/dist/__chunks/{HOUO3WV6.js → Y47XTR6M.js} +3 -1
- package/dist/__chunks/{HOUO3WV6.js.map → Y47XTR6M.js.map} +1 -1
- package/dist/__chunks/{WDR3YIMA.cjs → YT3NEG6Z.cjs} +9 -8
- package/dist/__chunks/YT3NEG6Z.cjs.map +1 -0
- package/dist/__chunks/{6VWFOSQZ.js → Z4ZJZXZV.js} +3 -1
- package/dist/__chunks/{6VWFOSQZ.js.map → Z4ZJZXZV.js.map} +1 -1
- package/dist/__chunks/{JXZMI4WT.js → Z5ZUAP2B.js} +3 -1
- package/dist/__chunks/{JXZMI4WT.js.map → Z5ZUAP2B.js.map} +1 -1
- package/dist/__chunks/{JBEJC7X2.js → Z7EXVTCJ.js} +4 -3
- package/dist/__chunks/{JBEJC7X2.js.map → Z7EXVTCJ.js.map} +1 -1
- package/dist/__chunks/{IOYNCG2J.js → ZBDW45GJ.js} +8 -7
- package/dist/__chunks/{IOYNCG2J.js.map → ZBDW45GJ.js.map} +1 -1
- package/dist/__chunks/{652STTPK.js → ZOWOFYUE.js} +3 -1
- package/dist/__chunks/{652STTPK.js.map → ZOWOFYUE.js.map} +1 -1
- package/dist/__chunks/{K2SCOMJX.cjs → ZX7LO5H4.cjs} +28 -27
- package/dist/__chunks/ZX7LO5H4.cjs.map +1 -0
- package/dist/colors/allColors.cjs +2 -1
- package/dist/colors/allColors.cjs.map +1 -1
- package/dist/colors/allColors.js +2 -1
- package/dist/colors/allColors.js.map +1 -1
- package/dist/colors/backgroundColor.cjs +7 -6
- package/dist/colors/backgroundColor.js +5 -4
- package/dist/colors/foregroundColor.cjs +7 -6
- package/dist/colors/foregroundColor.js +5 -4
- package/dist/colors/foregroundTypographyColor.cjs +2 -1
- package/dist/colors/foregroundTypographyColor.cjs.map +1 -1
- package/dist/colors/foregroundTypographyColor.js +2 -1
- package/dist/colors/foregroundTypographyColor.js.map +1 -1
- package/dist/constants.cjs +2 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.cjs +61 -60
- package/dist/index.js +63 -62
- package/dist/react-aria-utils/OverlayVisibility.cjs +5 -4
- package/dist/react-aria-utils/OverlayVisibility.js +3 -2
- package/dist/react-aria-utils/Triggerable.cjs +6 -5
- package/dist/react-aria-utils/Triggerable.js +4 -3
- package/dist/react-aria-utils/placement.cjs +5 -4
- package/dist/react-aria-utils/placement.js +3 -2
- package/dist/react-aria-utils/useDomRefSyntheticEventBridge.cjs +5 -4
- package/dist/react-aria-utils/useDomRefSyntheticEventBridge.js +3 -2
- package/dist/useFocusVisible.cjs +5 -4
- package/dist/useFocusVisible.js +3 -2
- package/dist/useIsHydrated.cjs +5 -4
- package/dist/useIsHydrated.js +3 -2
- package/package.json +1 -1
- package/dist/__chunks/2IVYMX2N.cjs.map +0 -1
- package/dist/__chunks/33HJ72Y2.cjs.map +0 -1
- package/dist/__chunks/3TXXNWWA.cjs.map +0 -1
- package/dist/__chunks/4EXO6IHD.cjs.map +0 -1
- package/dist/__chunks/4PLE46VU.cjs.map +0 -1
- package/dist/__chunks/4QCCTDDW.cjs.map +0 -1
- package/dist/__chunks/4YO26FWL.cjs.map +0 -1
- package/dist/__chunks/5AR53MHD.js +0 -1
- package/dist/__chunks/5WNFAQGY.cjs.map +0 -1
- package/dist/__chunks/74UCGNED.js.map +0 -1
- package/dist/__chunks/7AYSDTC6.cjs.map +0 -1
- package/dist/__chunks/7GJ2SD7O.cjs.map +0 -1
- package/dist/__chunks/7W3S3GV2.cjs.map +0 -1
- package/dist/__chunks/7W5RYLTS.cjs.map +0 -1
- package/dist/__chunks/A72TS5OX.cjs.map +0 -1
- package/dist/__chunks/ANT3IQ3X.cjs.map +0 -1
- package/dist/__chunks/AXP5KWIY.cjs.map +0 -1
- package/dist/__chunks/CVY5S6ZX.cjs.map +0 -1
- package/dist/__chunks/DM4UMQ5D.cjs.map +0 -1
- package/dist/__chunks/DSCWFIR3.cjs.map +0 -1
- package/dist/__chunks/DWTZH7KM.cjs.map +0 -1
- package/dist/__chunks/FINKF5MC.cjs.map +0 -1
- package/dist/__chunks/FZRIE7EX.cjs.map +0 -1
- package/dist/__chunks/GJ44NFS5.cjs.map +0 -1
- package/dist/__chunks/GKECCWR3.cjs.map +0 -1
- package/dist/__chunks/GVEA7SLQ.cjs.map +0 -1
- package/dist/__chunks/GYI2PBXY.cjs.map +0 -1
- package/dist/__chunks/K2AMFXJG.cjs.map +0 -1
- package/dist/__chunks/K2SCOMJX.cjs.map +0 -1
- package/dist/__chunks/LCEAHKFE.cjs.map +0 -1
- package/dist/__chunks/LQ6T5UCI.cjs.map +0 -1
- package/dist/__chunks/LTM57QMY.cjs.map +0 -1
- package/dist/__chunks/M3L2KJQY.cjs.map +0 -1
- package/dist/__chunks/MF7Q6ZSW.cjs +0 -56
- package/dist/__chunks/MF7Q6ZSW.cjs.map +0 -1
- package/dist/__chunks/MGHMASZR.cjs.map +0 -1
- package/dist/__chunks/OI44OAX7.cjs.map +0 -1
- package/dist/__chunks/PBWG2BB5.cjs.map +0 -1
- package/dist/__chunks/POAYQEOA.cjs.map +0 -1
- package/dist/__chunks/PSWX5DBC.cjs.map +0 -1
- package/dist/__chunks/QJI4G5FP.cjs.map +0 -1
- package/dist/__chunks/RFHPSEBF.cjs.map +0 -1
- package/dist/__chunks/SJFWRAOP.cjs.map +0 -1
- package/dist/__chunks/SJG2X2VN.cjs.map +0 -1
- package/dist/__chunks/SPWDKPHT.cjs.map +0 -1
- package/dist/__chunks/SZCVEBN2.cjs.map +0 -1
- package/dist/__chunks/TF76F532.cjs.map +0 -1
- package/dist/__chunks/TIW4V757.cjs.map +0 -1
- package/dist/__chunks/TVGN7SBI.cjs.map +0 -1
- package/dist/__chunks/TZX4M4BC.cjs.map +0 -1
- package/dist/__chunks/UXWIAEKV.cjs.map +0 -1
- package/dist/__chunks/VA23P3ZI.cjs.map +0 -1
- package/dist/__chunks/VMARHE5B.cjs.map +0 -1
- package/dist/__chunks/VS4SS6B3.cjs.map +0 -1
- package/dist/__chunks/VUANIQYP.cjs +0 -1
- package/dist/__chunks/WDR3YIMA.cjs.map +0 -1
- package/dist/__chunks/WKDXUPAM.cjs.map +0 -1
- package/dist/__chunks/WPRJVUVL.cjs.map +0 -1
- package/dist/__chunks/X6F66N7W.cjs.map +0 -1
- package/dist/__chunks/ZDMSFZS3.cjs.map +0 -1
- /package/dist/__chunks/{5AR53MHD.js.map → 4U4UW4AK.js.map} +0 -0
- /package/dist/__chunks/{LULBCTQR.js.map → UWGNJENA.js.map} +0 -0
- /package/dist/__chunks/{I64JGYX7.cjs.map → WFVGNGEP.cjs.map} +0 -0
- /package/dist/__chunks/{VUANIQYP.cjs.map → X2SDR4SD.cjs.map} +0 -0
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client"
|
|
2
2
|
|
|
3
|
-
var _TZX4M4BCcjs = require('./TZX4M4BC.cjs');
|
|
4
3
|
|
|
4
|
+
var _XEN6XJKUcjs = require('./XEN6XJKU.cjs');
|
|
5
5
|
|
|
6
|
-
var _UXWIAEKVcjs = require('./UXWIAEKV.cjs');
|
|
7
6
|
|
|
7
|
+
var _P67XTYNKcjs = require('./P67XTYNK.cjs');
|
|
8
8
|
|
|
9
|
-
var _3TXXNWWAcjs = require('./3TXXNWWA.cjs');
|
|
10
9
|
|
|
10
|
+
var _DJHFPKBXcjs = require('./DJHFPKBX.cjs');
|
|
11
11
|
|
|
12
|
-
var _LCEAHKFEcjs = require('./LCEAHKFE.cjs');
|
|
13
12
|
|
|
13
|
+
var _WEIWUACWcjs = require('./WEIWUACW.cjs');
|
|
14
14
|
|
|
15
|
-
var _7W5RYLTScjs = require('./7W5RYLTS.cjs');
|
|
16
15
|
|
|
16
|
+
var _IYA2TMMRcjs = require('./IYA2TMMR.cjs');
|
|
17
17
|
|
|
18
|
-
var _WDR3YIMAcjs = require('./WDR3YIMA.cjs');
|
|
19
18
|
|
|
19
|
+
var _YT3NEG6Zcjs = require('./YT3NEG6Z.cjs');
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var _GYI2PBXYcjs = require('./GYI2PBXY.cjs');
|
|
23
22
|
|
|
23
|
+
var _3K37FYOTcjs = require('./3K37FYOT.cjs');
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
var _WJRIAS4Wcjs = require('./WJRIAS4W.cjs');
|
|
26
27
|
|
|
27
28
|
// src/RichSelect/RichSelectBox.tsx
|
|
28
29
|
|
|
@@ -124,7 +125,7 @@ var RichSelectBox = _react.forwardRef.call(void 0,
|
|
|
124
125
|
});
|
|
125
126
|
}, []);
|
|
126
127
|
const { autoFocus } = _react.useContext.call(void 0, RichSelectBoxContext);
|
|
127
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
128
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _3K37FYOTcjs.RichSelectItemContext.Provider, { value: { disableKey }, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _WJRIAS4Wcjs.Box_default, { children: [
|
|
128
129
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
129
130
|
_reactariacomponents.ListBox,
|
|
130
131
|
{
|
|
@@ -138,12 +139,12 @@ var RichSelectBox = _react.forwardRef.call(void 0,
|
|
|
138
139
|
selectedKeys: stagedKeys,
|
|
139
140
|
onSelectionChange: stageChanges,
|
|
140
141
|
disabledKeys: disabledKeysComposed,
|
|
141
|
-
className:
|
|
142
|
+
className: _3K37FYOTcjs.RichSelect_module_default.richSelectBox,
|
|
142
143
|
children
|
|
143
144
|
}
|
|
144
145
|
),
|
|
145
146
|
!autosave && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
146
|
-
|
|
147
|
+
_WJRIAS4Wcjs.Box_default,
|
|
147
148
|
{
|
|
148
149
|
backgroundColor: "white",
|
|
149
150
|
display: "flex",
|
|
@@ -158,17 +159,17 @@ var RichSelectBox = _react.forwardRef.call(void 0,
|
|
|
158
159
|
}
|
|
159
160
|
},
|
|
160
161
|
children: [
|
|
161
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
162
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _WJRIAS4Wcjs.Box_default, { flex: "grow", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _DJHFPKBXcjs.Divider, {}) }),
|
|
162
163
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
163
|
-
|
|
164
|
+
_WJRIAS4Wcjs.Box_default,
|
|
164
165
|
{
|
|
165
166
|
paddingY: 5,
|
|
166
167
|
marginTop: -5,
|
|
167
168
|
display: "flex",
|
|
168
169
|
justifyContent: "end",
|
|
169
|
-
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
170
|
+
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _XEN6XJKUcjs.ButtonGroup_default, { orientation: "horizontal", children: [
|
|
170
171
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
171
|
-
|
|
172
|
+
_P67XTYNKcjs.Button_default,
|
|
172
173
|
{
|
|
173
174
|
onClick: clearChanges,
|
|
174
175
|
color: "secondary",
|
|
@@ -178,7 +179,7 @@ var RichSelectBox = _react.forwardRef.call(void 0,
|
|
|
178
179
|
}
|
|
179
180
|
),
|
|
180
181
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
181
|
-
|
|
182
|
+
_P67XTYNKcjs.Button_default,
|
|
182
183
|
{
|
|
183
184
|
onClick: saveChanges,
|
|
184
185
|
text: primaryButtonText,
|
|
@@ -197,9 +198,9 @@ var RichSelectBox = _react.forwardRef.call(void 0,
|
|
|
197
198
|
}
|
|
198
199
|
);
|
|
199
200
|
var RichSelectBox_default = Object.assign(RichSelectBox, {
|
|
200
|
-
Section:
|
|
201
|
-
Chip:
|
|
202
|
-
RadioButton:
|
|
201
|
+
Section: _IYA2TMMRcjs.RichSelectSection_default,
|
|
202
|
+
Chip: _WEIWUACWcjs.RichSelectChip_default,
|
|
203
|
+
RadioButton: _YT3NEG6Zcjs.RichSelectRadioButton_default
|
|
203
204
|
});
|
|
204
205
|
|
|
205
206
|
|
|
@@ -207,4 +208,4 @@ var RichSelectBox_default = Object.assign(RichSelectBox, {
|
|
|
207
208
|
|
|
208
209
|
|
|
209
210
|
exports.convertSelection = convertSelection; exports.RichSelectBoxContext = RichSelectBoxContext; exports.RichSelectBox_default = RichSelectBox_default;
|
|
210
|
-
//# sourceMappingURL=
|
|
211
|
+
//# sourceMappingURL=6SALMOFU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/RichSelect/RichSelectBox.tsx"],"names":["RichSelectBox"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n type ReactElement,\n useContext,\n useState,\n useCallback,\n createContext,\n useMemo,\n} from \"react\";\nimport { ListBox as ReactAriaListBox } from \"react-aria-components\";\nimport { type Key } from \"react-aria\";\nimport { type Selection } from \"react-stately\";\nimport { useControlledState } from \"@react-stately/utils\";\nimport { RichSelectItemContext } from \"./RichSelectItem\";\nimport ButtonGroup from \"../ButtonGroup/ButtonGroup\";\nimport Button from \"../Button/Button\";\nimport styles from \"./RichSelect.module.css\";\nimport Box from \"../Box/Box\";\nimport Divider from \"../Divider/Divider\";\nimport RichSelectSection from \"./RichSelectSection\";\nimport RichSelectChip from \"./RichSelectChip\";\nimport RichSelectRadioButton from \"./RichSelectRadioButton\";\n\ntype RichSelectChild =\n | ReactElement<typeof RichSelectChip>\n | ReactElement<typeof RichSelectRadioButton>\n | ReactElement<typeof RichSelectSection>;\n\nfunction isString(val: unknown): val is string {\n return typeof val === \"string\";\n}\n\nfunction isEqualSelection(set1?: Selection, set2?: Selection): boolean {\n if (set1 === set2) return true;\n if (!set1 && !set2) return true;\n if (!set1 || !set2) return false;\n if (isString(set1)) return set1 === set2;\n if (isString(set2)) return false;\n if (set1.size !== set2.size) return false;\n for (const item of set1) {\n if (!set2.has(item)) return false;\n }\n return true;\n}\n\nexport function convertSelection(\n selection: \"all\" | Iterable<Key> | undefined,\n defaultValue?: \"all\" | Set<Key>,\n): \"all\" | Set<Key> | undefined {\n if (!selection) return defaultValue;\n if (selection === \"all\") return \"all\";\n return new Set(selection);\n}\n\nexport type RichSelectBoxProps = {\n /** aria-label for the list box */\n accessibilityLabel: string;\n /** Automatically saves changes when true, shows save/clear buttons when not true */\n autosave?: boolean;\n /** Test id for the list box element */\n \"data-testid\"?: string;\n /** One or more RichSelectList.<Chip|RadioButton|Section|...> components. */\n children: RichSelectChild | RichSelectChild[];\n /** Default selected values */\n defaultSelectedValues?: Set<Key> | string[] | \"all\";\n /** Enables multiple selection (multiselect) */\n multiple?: boolean;\n /** The callback to be called when options are selected / committed */\n onChange: (selectedValues: string[] | \"all\") => void;\n /** Text for primary button (Save). Required: string must be translated */\n primaryButtonText: string;\n /** accessibilityLabel for primary Button component (Save). Required: string must be translated */\n primaryButtonAccessibilityLabel: string;\n /** Text for primary button (Clear). Required: string must be translated */\n secondaryButtonText: string;\n /** accessibilityLabel for secondary Button component (Clear). Required: string must be translated */\n secondaryButtonAccessibilityLabel: string;\n /** Value of the currently selected options */\n selectedValues?: Set<Key> | string[] | \"all\";\n};\n\ntype RichSelectBoxContextType = {\n /** Automatically focuses RichSelectBox on mount when enabled */\n autoFocus?: boolean;\n};\nexport const RichSelectBoxContext = createContext<RichSelectBoxContextType>({});\n\n/**\n * [RichSelectBox](https://cambly-syntax.vercel.app/?path=/docs/components-richselectbox--docs) is an element that allows users to select one or multiple options from a list.\n *\n * Example Usage:\n ```\n <RichSelectBox\n label=\"My Label\"\n multiple\n onChange={() => { ... }}\n primaryButtonText=\"Save\"\n primaryButtonAccessibilityLabel=\"Save\"\n secondaryButtonText=\"Clear\"\n secondaryButtonAccessibilityLabel=\"Clear\"\n >\n <RichSelectBox.Section label=\"Cities\">\n <RichSelectBox.Chip label=\"San Francisco\" value=\"sf\" />\n <RichSelectBox.Chip label=\"New York\" value=\"ny\" disabled />\n <RichSelectBox.Chip label=\"Tulsa\" value=\"tulsa\" />\n <RichSelectBox.Chip label=\"Chicago\" value=\"chicago\" disabled />\n </RichSelectBox.Section>\n </RichSelectBox>\n ```\n */\nconst RichSelectBox = forwardRef<HTMLDivElement, RichSelectBoxProps>(\n function RichSelectBox(props, ref): ReactElement {\n const {\n accessibilityLabel,\n autosave,\n children,\n \"data-testid\": dataTestId,\n multiple = false,\n onChange,\n primaryButtonText,\n primaryButtonAccessibilityLabel,\n secondaryButtonText,\n secondaryButtonAccessibilityLabel,\n selectedValues: selectedValuesProp,\n defaultSelectedValues: defaultSelectedValuesProp,\n } = props;\n\n const selectedKeysProp = useMemo(\n () => convertSelection(selectedValuesProp),\n [selectedValuesProp],\n );\n const defaultSelectedKeys = useMemo(\n () => convertSelection(defaultSelectedValuesProp, new Set()),\n [defaultSelectedValuesProp],\n );\n const [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp!, // eslint-disable-line @typescript-eslint/no-non-null-assertion -- there is a bug in the typedef for useControlledState from react-stately. Internally they rely on value (first arg) able to be undefined\n defaultSelectedKeys,\n (value) => {\n if (isEqualSelection(value, selectedKeys)) return;\n // Notify parent about the changes\n if (value === \"all\") return onChange(\"all\");\n onChange([...value].map(String));\n },\n );\n const [stagedKeys, setStagedKeys] = useState<Set<Key> | \"all\">(\n selectedKeys,\n );\n\n const saveChanges = () => setSelectedKeys(stagedKeys);\n const clearChanges = () => setStagedKeys(new Set());\n const stageChanges = (selectedValues: Selection) => {\n setStagedKeys(selectedValues);\n if (autosave) setSelectedKeys(selectedValues);\n };\n\n // inject method into context so children can disable themselves\n // by adding `disabled` attribute (through RichSelectItem)\n const [disabledKeysComposed, setDisabledKeysComposed] = useState<Set<Key>>(\n new Set(),\n );\n const disableKey = useCallback((key: Key, _disabled: boolean) => {\n setDisabledKeysComposed((keys) => {\n if (keys.has(key) === _disabled) return keys;\n _disabled ? keys.add(key) : keys.delete(key);\n return new Set(keys);\n });\n }, []);\n\n // higher level context for autoFocus behavior (parent sets when rendering RichSelectBox in overlay)\n const { autoFocus } = useContext(RichSelectBoxContext);\n\n return (\n <RichSelectItemContext.Provider value={{ disableKey }}>\n <Box>\n <ReactAriaListBox\n ref={ref}\n aria-label={accessibilityLabel}\n autoFocus={autoFocus}\n selectionMode={multiple ? \"multiple\" : \"single\"}\n selectionBehavior={multiple ? \"toggle\" : \"replace\"}\n shouldFocusWrap={true}\n orientation=\"horizontal\"\n selectedKeys={stagedKeys}\n onSelectionChange={stageChanges}\n disabledKeys={disabledKeysComposed}\n className={styles.richSelectBox}\n >\n {children}\n </ReactAriaListBox>\n {!autosave && (\n <Box\n backgroundColor=\"white\"\n display=\"flex\"\n direction=\"column\"\n gap={5}\n marginTop={5}\n justifyContent=\"end\"\n position=\"sticky\"\n dangerouslySetInlineStyle={{\n __style: {\n bottom: 0,\n },\n }}\n >\n <Box flex=\"grow\">\n <Divider />\n </Box>\n <Box\n paddingY={5}\n marginTop={-5}\n display=\"flex\"\n justifyContent=\"end\"\n >\n <ButtonGroup orientation=\"horizontal\">\n <Button\n onClick={clearChanges}\n color={\"secondary\"}\n text={secondaryButtonText}\n accessibilityLabel={secondaryButtonAccessibilityLabel}\n data-testid={[dataTestId, \"secondary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n <Button\n onClick={saveChanges}\n text={primaryButtonText}\n accessibilityLabel={primaryButtonAccessibilityLabel}\n color=\"primary\"\n data-testid={[dataTestId, \"primary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n </ButtonGroup>\n </Box>\n </Box>\n )}\n </Box>\n </RichSelectItemContext.Provider>\n );\n },\n);\n\nexport default Object.assign(RichSelectBox, {\n Section: RichSelectSection,\n Chip: RichSelectChip,\n RadioButton: RichSelectRadioButton,\n});\n"]}
|
|
@@ -1,30 +1,31 @@
|
|
|
1
|
+
"use client"
|
|
1
2
|
import {
|
|
2
3
|
textVariant_default
|
|
3
|
-
} from "./
|
|
4
|
+
} from "./Z5ZUAP2B.js";
|
|
4
5
|
import {
|
|
5
6
|
iconSize_default
|
|
6
|
-
} from "./
|
|
7
|
+
} from "./37PNBG3P.js";
|
|
7
8
|
import {
|
|
8
9
|
Button_module_default
|
|
9
|
-
} from "./
|
|
10
|
+
} from "./46XGANFF.js";
|
|
10
11
|
import {
|
|
11
12
|
cambioColor,
|
|
12
13
|
classicColor
|
|
13
|
-
} from "./
|
|
14
|
+
} from "./GFKDPMFK.js";
|
|
14
15
|
import {
|
|
15
16
|
cambioForegroundColor,
|
|
16
17
|
classicForegroundColor
|
|
17
|
-
} from "./
|
|
18
|
+
} from "./JVOQF4CG.js";
|
|
18
19
|
import {
|
|
19
20
|
cambioBackgroundColor,
|
|
20
21
|
classicBackgroundColor
|
|
21
|
-
} from "./
|
|
22
|
+
} from "./Y2OAIOQE.js";
|
|
22
23
|
import {
|
|
23
24
|
Typography_default
|
|
24
|
-
} from "./
|
|
25
|
+
} from "./L7PPCZM5.js";
|
|
25
26
|
import {
|
|
26
27
|
useTheme
|
|
27
|
-
} from "./
|
|
28
|
+
} from "./RN3PLPAG.js";
|
|
28
29
|
|
|
29
30
|
// src/LinkButton/LinkButton.tsx
|
|
30
31
|
import { forwardRef } from "react";
|
|
@@ -121,4 +122,4 @@ var LinkButton_default = LinkButton;
|
|
|
121
122
|
export {
|
|
122
123
|
LinkButton_default
|
|
123
124
|
};
|
|
124
|
-
//# sourceMappingURL=
|
|
125
|
+
//# sourceMappingURL=6WW5YWOS.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/LinkButton/LinkButton.tsx","css-module:./LinkButton.module.css#css-module"],"sourcesContent":["import { forwardRef, type HtmlHTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { type Size } from \"../constants\";\nimport Typography from \"../Typography/Typography\";\nimport buttonStyles from \"../Button/Button.module.css\";\nimport iconSize from \"../Button/constants/iconSize\";\nimport textVariant from \"../Button/constants/textVariant\";\nimport styles from \"./LinkButton.module.css\";\n\nimport { classicColor, cambioColor } from \"../Button/constants/color\";\nimport {\n classicBackgroundColor,\n cambioBackgroundColor,\n} from \"../colors//backgroundColor\";\nimport {\n classicForegroundColor,\n cambioForegroundColor,\n} from \"../colors/foregroundColor\";\nimport { useTheme } from \"../ThemeProvider/ThemeProvider\";\n\ntype LinkButtonProps = {\n /**\n * Test id for the button\n */\n \"data-testid\"?: string;\n /**\n * The text to be displayed inside the button\n */\n text: string;\n /**\n * The link that the LinkButton should route to.\n *\n */\n href?: string;\n /**\n * The target attribute specifies where to open the linked document.\n *\n */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n /**\n * The rel attribute specifies the relationship between the document and the link.\n *\n */\n rel?: HtmlHTMLAttributes<HTMLAnchorElement>[\"rel\"];\n /**\n * The color of the button\n *\n * Classic only:\n * * `inverse`\n * * `success`\n *\n * Cambio only:\n * * `success-primary`\n * * `success-secondary`\n * * `success-tertiary`\n *\n * @defaultValue \"primary\"\n */\n color?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"destructive-primary\"\n | \"destructive-secondary\"\n | \"destructive-tertiary\"\n | \"branded\"\n | \"success\"\n | \"success-primary\"\n | \"success-secondary\"\n | \"success-tertiary\"\n | \"inverse\";\n /**\n * The size of the button\n *\n * Classic:\n * * `sm`: 32px\n * * `md`: 40px\n * * `lg`: 48px\n *\n * Cambio:\n * * `sm`: 32px\n * * `md`: 48px\n * * `lg`: 64px\n *\n * @defaultValue \"md\"\n */\n size?: (typeof Size)[number];\n /**\n * If `true`, the button will take up the full width of its container\n *\n * @defaultValue false\n */\n fullWidth?: boolean;\n /**\n * The icon to be displayed at the start of the button. Please use a [Rounded Material Icon](https://material.io/resources/icons/?style=round)\n * Note: startIcon is not supported in the Cambio theme\n */\n startIcon?: React.ComponentType<{ className?: string }>;\n /**\n * The icon to be displayed at the end of the button. Please use a [Rounded Material Icon](https://material.io/resources/icons/?style=round)\n * Note: endIcon is not supported in the Cambio theme\n */\n endIcon?: React.ComponentType<{ className?: string }>;\n /**\n * An optional onClick event. This is used for certain wrapper's support (such as react-router-dom).\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n};\n\n/**\n * [LinkButton](https://cambly-syntax.vercel.app/?path=/docs/components-linkbutton--docs) is a \"variation\" of Button that should look identical to Button, but should be used to render links instead.\n */\nconst LinkButton = forwardRef<HTMLAnchorElement, LinkButtonProps>(\n (\n {\n text,\n href,\n target,\n rel,\n \"data-testid\": dataTestId,\n color = \"primary\",\n size = \"md\",\n fullWidth = false,\n startIcon: StartIcon,\n endIcon: EndIcon,\n onClick,\n }: LinkButtonProps,\n ref,\n ) => {\n const { themeName } = useTheme();\n\n const foregroundColorClass =\n themeName === \"classic\"\n ? classicForegroundColor(classicColor(color))\n : cambioForegroundColor(cambioColor(color));\n\n const backgroundColorClass =\n themeName === \"classic\"\n ? classicBackgroundColor(classicColor(color))\n : cambioBackgroundColor(cambioColor(color));\n\n return (\n <a\n href={href}\n data-testid={dataTestId}\n target={target}\n ref={ref}\n rel={rel}\n className={classNames(\n styles.linkButton,\n buttonStyles.button,\n foregroundColorClass,\n backgroundColorClass,\n themeName === \"classic\"\n ? buttonStyles[size]\n : buttonStyles[`${size}Cambio`],\n {\n [buttonStyles.fullWidth]: fullWidth,\n [styles.fitContent]: !fullWidth,\n [buttonStyles.buttonGap]:\n themeName === \"classic\" && (size === \"lg\" || size === \"md\"),\n [buttonStyles.secondaryBorder]:\n themeName === \"classic\" && color === \"secondary\",\n [buttonStyles.secondaryDestructiveBorder]:\n themeName === \"classic\" && color === \"destructive-secondary\",\n },\n )}\n onClick={onClick}\n >\n {StartIcon && themeName === \"classic\" && (\n <StartIcon\n className={classNames(\n buttonStyles.icon,\n iconSize[size],\n foregroundColorClass,\n )}\n />\n )}\n <Typography\n size={themeName === \"classic\" ? textVariant[size] : textVariant[size]}\n >\n <span\n // Temporary - until we have cambio colors on Typogrphay\n className={foregroundColorClass}\n style={{ fontWeight: 500 }}\n >\n {text}\n </span>\n </Typography>\n {EndIcon && themeName === \"classic\" && (\n <EndIcon\n className={classNames(\n buttonStyles.icon,\n iconSize[size],\n foregroundColorClass,\n )}\n />\n )}\n </a>\n );\n },\n);\n\nLinkButton.displayName = \"LinkButton\";\n\nexport default LinkButton;\n","import \"/home/runner/work/syntax/syntax/packages/syntax-core/src/LinkButton/LinkButton.module.css\"; export default {\"linkButton\":\"_linkButton_1qjrb_1\",\"fitContent\":\"_fitContent_1qjrb_11\"}"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/LinkButton/LinkButton.tsx","css-module:./LinkButton.module.css#css-module"],"sourcesContent":["import { forwardRef, type HtmlHTMLAttributes } from \"react\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { type Size } from \"../constants\";\nimport Typography from \"../Typography/Typography\";\nimport buttonStyles from \"../Button/Button.module.css\";\nimport iconSize from \"../Button/constants/iconSize\";\nimport textVariant from \"../Button/constants/textVariant\";\nimport styles from \"./LinkButton.module.css\";\n\nimport { classicColor, cambioColor } from \"../Button/constants/color\";\nimport {\n classicBackgroundColor,\n cambioBackgroundColor,\n} from \"../colors//backgroundColor\";\nimport {\n classicForegroundColor,\n cambioForegroundColor,\n} from \"../colors/foregroundColor\";\nimport { useTheme } from \"../ThemeProvider/ThemeProvider\";\n\ntype LinkButtonProps = {\n /**\n * Test id for the button\n */\n \"data-testid\"?: string;\n /**\n * The text to be displayed inside the button\n */\n text: string;\n /**\n * The link that the LinkButton should route to.\n *\n */\n href?: string;\n /**\n * The target attribute specifies where to open the linked document.\n *\n */\n target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\n /**\n * The rel attribute specifies the relationship between the document and the link.\n *\n */\n rel?: HtmlHTMLAttributes<HTMLAnchorElement>[\"rel\"];\n /**\n * The color of the button\n *\n * Classic only:\n * * `inverse`\n * * `success`\n *\n * Cambio only:\n * * `success-primary`\n * * `success-secondary`\n * * `success-tertiary`\n *\n * @defaultValue \"primary\"\n */\n color?:\n | \"primary\"\n | \"secondary\"\n | \"tertiary\"\n | \"destructive-primary\"\n | \"destructive-secondary\"\n | \"destructive-tertiary\"\n | \"branded\"\n | \"success\"\n | \"success-primary\"\n | \"success-secondary\"\n | \"success-tertiary\"\n | \"inverse\";\n /**\n * The size of the button\n *\n * Classic:\n * * `sm`: 32px\n * * `md`: 40px\n * * `lg`: 48px\n *\n * Cambio:\n * * `sm`: 32px\n * * `md`: 48px\n * * `lg`: 64px\n *\n * @defaultValue \"md\"\n */\n size?: (typeof Size)[number];\n /**\n * If `true`, the button will take up the full width of its container\n *\n * @defaultValue false\n */\n fullWidth?: boolean;\n /**\n * The icon to be displayed at the start of the button. Please use a [Rounded Material Icon](https://material.io/resources/icons/?style=round)\n * Note: startIcon is not supported in the Cambio theme\n */\n startIcon?: React.ComponentType<{ className?: string }>;\n /**\n * The icon to be displayed at the end of the button. Please use a [Rounded Material Icon](https://material.io/resources/icons/?style=round)\n * Note: endIcon is not supported in the Cambio theme\n */\n endIcon?: React.ComponentType<{ className?: string }>;\n /**\n * An optional onClick event. This is used for certain wrapper's support (such as react-router-dom).\n */\n onClick?: React.MouseEventHandler<HTMLAnchorElement>;\n};\n\n/**\n * [LinkButton](https://cambly-syntax.vercel.app/?path=/docs/components-linkbutton--docs) is a \"variation\" of Button that should look identical to Button, but should be used to render links instead.\n */\nconst LinkButton = forwardRef<HTMLAnchorElement, LinkButtonProps>(\n (\n {\n text,\n href,\n target,\n rel,\n \"data-testid\": dataTestId,\n color = \"primary\",\n size = \"md\",\n fullWidth = false,\n startIcon: StartIcon,\n endIcon: EndIcon,\n onClick,\n }: LinkButtonProps,\n ref,\n ) => {\n const { themeName } = useTheme();\n\n const foregroundColorClass =\n themeName === \"classic\"\n ? classicForegroundColor(classicColor(color))\n : cambioForegroundColor(cambioColor(color));\n\n const backgroundColorClass =\n themeName === \"classic\"\n ? classicBackgroundColor(classicColor(color))\n : cambioBackgroundColor(cambioColor(color));\n\n return (\n <a\n href={href}\n data-testid={dataTestId}\n target={target}\n ref={ref}\n rel={rel}\n className={classNames(\n styles.linkButton,\n buttonStyles.button,\n foregroundColorClass,\n backgroundColorClass,\n themeName === \"classic\"\n ? buttonStyles[size]\n : buttonStyles[`${size}Cambio`],\n {\n [buttonStyles.fullWidth]: fullWidth,\n [styles.fitContent]: !fullWidth,\n [buttonStyles.buttonGap]:\n themeName === \"classic\" && (size === \"lg\" || size === \"md\"),\n [buttonStyles.secondaryBorder]:\n themeName === \"classic\" && color === \"secondary\",\n [buttonStyles.secondaryDestructiveBorder]:\n themeName === \"classic\" && color === \"destructive-secondary\",\n },\n )}\n onClick={onClick}\n >\n {StartIcon && themeName === \"classic\" && (\n <StartIcon\n className={classNames(\n buttonStyles.icon,\n iconSize[size],\n foregroundColorClass,\n )}\n />\n )}\n <Typography\n size={themeName === \"classic\" ? textVariant[size] : textVariant[size]}\n >\n <span\n // Temporary - until we have cambio colors on Typogrphay\n className={foregroundColorClass}\n style={{ fontWeight: 500 }}\n >\n {text}\n </span>\n </Typography>\n {EndIcon && themeName === \"classic\" && (\n <EndIcon\n className={classNames(\n buttonStyles.icon,\n iconSize[size],\n foregroundColorClass,\n )}\n />\n )}\n </a>\n );\n },\n);\n\nLinkButton.displayName = \"LinkButton\";\n\nexport default LinkButton;\n","import \"/home/runner/work/syntax/syntax/packages/syntax-core/src/LinkButton/LinkButton.module.css\"; export default {\"linkButton\":\"_linkButton_1qjrb_1\",\"fitContent\":\"_fitContent_1qjrb_11\"}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,kBAA2C;AACpD,OAAO,gBAAgB;;;ACD6E,IAAO,4BAAQ,EAAC,cAAa,uBAAsB,cAAa,uBAAsB;;;AD+IpL,SA4BI,KA5BJ;AA9BN,IAAM,aAAa;AAAA,EACjB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,EACF,GACA,QACG;AACH,UAAM,EAAE,UAAU,IAAI,SAAS;AAE/B,UAAM,uBACJ,cAAc,YACV,uBAAuB,aAAa,KAAK,CAAC,IAC1C,sBAAsB,YAAY,KAAK,CAAC;AAE9C,UAAM,uBACJ,cAAc,YACV,uBAAuB,aAAa,KAAK,CAAC,IAC1C,sBAAsB,YAAY,KAAK,CAAC;AAE9C,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,0BAAO;AAAA,UACP,sBAAa;AAAA,UACb;AAAA,UACA;AAAA,UACA,cAAc,YACV,sBAAa,IAAI,IACjB,sBAAa,GAAG,YAAY;AAAA,UAChC;AAAA,YACE,CAAC,sBAAa,SAAS,GAAG;AAAA,YAC1B,CAAC,0BAAO,UAAU,GAAG,CAAC;AAAA,YACtB,CAAC,sBAAa,SAAS,GACrB,cAAc,cAAc,SAAS,QAAQ,SAAS;AAAA,YACxD,CAAC,sBAAa,eAAe,GAC3B,cAAc,aAAa,UAAU;AAAA,YACvC,CAAC,sBAAa,0BAA0B,GACtC,cAAc,aAAa,UAAU;AAAA,UACzC;AAAA,QACF;AAAA,QACA;AAAA,QAEC;AAAA,uBAAa,cAAc,aAC1B;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT,sBAAa;AAAA,gBACb,iBAAS,IAAI;AAAA,gBACb;AAAA,cACF;AAAA;AAAA,UACF;AAAA,UAEF;AAAA,YAAC;AAAA;AAAA,cACC,MAAM,cAAc,YAAY,oBAAY,IAAI,IAAI,oBAAY,IAAI;AAAA,cAEpE;AAAA,gBAAC;AAAA;AAAA,kBAEC,WAAW;AAAA,kBACX,OAAO,EAAE,YAAY,IAAI;AAAA,kBAExB;AAAA;AAAA,cACH;AAAA;AAAA,UACF;AAAA,UACC,WAAW,cAAc,aACxB;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT,sBAAa;AAAA,gBACb,iBAAS,IAAI;AAAA,gBACb;AAAA,cACF;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAEzB,IAAO,qBAAQ;","names":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
1
3
|
// src/react-aria-utils/useDomRefSyntheticEventBridge.ts
|
|
2
4
|
import { useEffect } from "react";
|
|
3
5
|
var createSyntheticEvent = (event) => {
|
|
@@ -60,4 +62,4 @@ var useDomRefSyntheticEventBridge = (props, ref, { enabled = true } = {}) => {
|
|
|
60
62
|
export {
|
|
61
63
|
useDomRefSyntheticEventBridge
|
|
62
64
|
};
|
|
63
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=7N4ZDVVD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react-aria-utils/useDomRefSyntheticEventBridge.ts"],"sourcesContent":["import { type SyntheticEvent, useEffect } from \"react\";\n\nconst createSyntheticEvent = <T extends Element, E extends Event>(\n event: E,\n): SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => undefined,\n timeStamp: event.timeStamp,\n type: event.type,\n };\n};\n\nexport const useDomRefSyntheticEventBridge = <T extends Element>(\n props: Record<string, unknown>,\n ref: React.RefObject<T>,\n { enabled = true }: { enabled?: boolean } = {},\n): void => {\n useEffect(() => {\n if (!enabled) return () => undefined;\n if (!ref.current) return () => undefined;\n const element = ref.current;\n\n const cleanups = Object.entries(props).map<(() => void) | undefined>(\n ([key, value]) => {\n if (!key.startsWith(\"on\")) return;\n if (typeof value !== \"function\") return;\n const endsWithCapture = key.endsWith(\"Capture\");\n const eventname = key\n .slice(2, endsWithCapture ? -7 : undefined)\n .toLowerCase();\n\n const handler = (evt: Event) => {\n const fn = value as (event: SyntheticEvent) => void;\n fn(createSyntheticEvent(evt));\n };\n\n const args: [\n eventname: string,\n handler: EventListenerOrEventListenerObject,\n useCapture?: boolean,\n ] = [eventname, handler, endsWithCapture];\n element.addEventListener(...args);\n return () => element.removeEventListener(...args);\n },\n );\n\n return () => cleanups.forEach((cleanup) => cleanup?.());\n }, [enabled, props, ref]);\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/react-aria-utils/useDomRefSyntheticEventBridge.ts"],"sourcesContent":["import { type SyntheticEvent, useEffect } from \"react\";\n\nconst createSyntheticEvent = <T extends Element, E extends Event>(\n event: E,\n): SyntheticEvent<T, E> => {\n let isDefaultPrevented = false;\n let isPropagationStopped = false;\n const preventDefault = () => {\n isDefaultPrevented = true;\n event.preventDefault();\n };\n const stopPropagation = () => {\n isPropagationStopped = true;\n event.stopPropagation();\n };\n return {\n nativeEvent: event,\n currentTarget: event.currentTarget as EventTarget & T,\n target: event.target as EventTarget & T,\n bubbles: event.bubbles,\n cancelable: event.cancelable,\n defaultPrevented: event.defaultPrevented,\n eventPhase: event.eventPhase,\n isTrusted: event.isTrusted,\n preventDefault,\n isDefaultPrevented: () => isDefaultPrevented,\n stopPropagation,\n isPropagationStopped: () => isPropagationStopped,\n persist: () => undefined,\n timeStamp: event.timeStamp,\n type: event.type,\n };\n};\n\nexport const useDomRefSyntheticEventBridge = <T extends Element>(\n props: Record<string, unknown>,\n ref: React.RefObject<T>,\n { enabled = true }: { enabled?: boolean } = {},\n): void => {\n useEffect(() => {\n if (!enabled) return () => undefined;\n if (!ref.current) return () => undefined;\n const element = ref.current;\n\n const cleanups = Object.entries(props).map<(() => void) | undefined>(\n ([key, value]) => {\n if (!key.startsWith(\"on\")) return;\n if (typeof value !== \"function\") return;\n const endsWithCapture = key.endsWith(\"Capture\");\n const eventname = key\n .slice(2, endsWithCapture ? -7 : undefined)\n .toLowerCase();\n\n const handler = (evt: Event) => {\n const fn = value as (event: SyntheticEvent) => void;\n fn(createSyntheticEvent(evt));\n };\n\n const args: [\n eventname: string,\n handler: EventListenerOrEventListenerObject,\n useCapture?: boolean,\n ] = [eventname, handler, endsWithCapture];\n element.addEventListener(...args);\n return () => element.removeEventListener(...args);\n },\n );\n\n return () => cleanups.forEach((cleanup) => cleanup?.());\n }, [enabled, props, ref]);\n};\n"],"mappings":";;;AAAA,SAA8B,iBAAiB;AAE/C,IAAM,uBAAuB,CAC3B,UACyB;AACzB,MAAI,qBAAqB;AACzB,MAAI,uBAAuB;AAC3B,QAAM,iBAAiB,MAAM;AAC3B,yBAAqB;AACrB,UAAM,eAAe;AAAA,EACvB;AACA,QAAM,kBAAkB,MAAM;AAC5B,2BAAuB;AACvB,UAAM,gBAAgB;AAAA,EACxB;AACA,SAAO;AAAA,IACL,aAAa;AAAA,IACb,eAAe,MAAM;AAAA,IACrB,QAAQ,MAAM;AAAA,IACd,SAAS,MAAM;AAAA,IACf,YAAY,MAAM;AAAA,IAClB,kBAAkB,MAAM;AAAA,IACxB,YAAY,MAAM;AAAA,IAClB,WAAW,MAAM;AAAA,IACjB;AAAA,IACA,oBAAoB,MAAM;AAAA,IAC1B;AAAA,IACA,sBAAsB,MAAM;AAAA,IAC5B,SAAS,MAAM;AAAA,IACf,WAAW,MAAM;AAAA,IACjB,MAAM,MAAM;AAAA,EACd;AACF;AAEO,IAAM,gCAAgC,CAC3C,OACA,KACA,EAAE,UAAU,KAAK,IAA2B,CAAC,MACpC;AACT,YAAU,MAAM;AACd,QAAI,CAAC;AAAS,aAAO,MAAM;AAC3B,QAAI,CAAC,IAAI;AAAS,aAAO,MAAM;AAC/B,UAAM,UAAU,IAAI;AAEpB,UAAM,WAAW,OAAO,QAAQ,KAAK,EAAE;AAAA,MACrC,CAAC,CAAC,KAAK,KAAK,MAAM;AAChB,YAAI,CAAC,IAAI,WAAW,IAAI;AAAG;AAC3B,YAAI,OAAO,UAAU;AAAY;AACjC,cAAM,kBAAkB,IAAI,SAAS,SAAS;AAC9C,cAAM,YAAY,IACf,MAAM,GAAG,kBAAkB,KAAK,MAAS,EACzC,YAAY;AAEf,cAAM,UAAU,CAAC,QAAe;AAC9B,gBAAM,KAAK;AACX,aAAG,qBAAqB,GAAG,CAAC;AAAA,QAC9B;AAEA,cAAM,OAIF,CAAC,WAAW,SAAS,eAAe;AACxC,gBAAQ,iBAAiB,GAAG,IAAI;AAChC,eAAO,MAAM,QAAQ,oBAAoB,GAAG,IAAI;AAAA,MAClD;AAAA,IACF;AAEA,WAAO,MAAM,SAAS,QAAQ,CAAC,YAAY,oCAAW;AAAA,EACxD,GAAG,CAAC,SAAS,OAAO,GAAG,CAAC;AAC1B;","names":[]}
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
+
"use client"
|
|
1
2
|
import {
|
|
2
3
|
ButtonGroup_default
|
|
3
|
-
} from "./
|
|
4
|
+
} from "./OF66QEJL.js";
|
|
4
5
|
import {
|
|
5
6
|
Button_default
|
|
6
|
-
} from "./
|
|
7
|
+
} from "./VBRCBEDC.js";
|
|
7
8
|
import {
|
|
8
9
|
Divider
|
|
9
|
-
} from "./
|
|
10
|
+
} from "./Z4ZJZXZV.js";
|
|
10
11
|
import {
|
|
11
12
|
RichSelectChip_default
|
|
12
|
-
} from "./
|
|
13
|
+
} from "./HNDUANRX.js";
|
|
13
14
|
import {
|
|
14
15
|
RichSelectSection_default
|
|
15
|
-
} from "./
|
|
16
|
+
} from "./A4QZYP2J.js";
|
|
16
17
|
import {
|
|
17
18
|
RichSelectRadioButton_default
|
|
18
|
-
} from "./
|
|
19
|
+
} from "./OFOTR7RY.js";
|
|
19
20
|
import {
|
|
20
21
|
RichSelectItemContext,
|
|
21
22
|
RichSelect_module_default
|
|
22
|
-
} from "./
|
|
23
|
+
} from "./3AAZZWKY.js";
|
|
23
24
|
import {
|
|
24
25
|
Box_default
|
|
25
|
-
} from "./
|
|
26
|
+
} from "./MAPDSZR4.js";
|
|
26
27
|
|
|
27
28
|
// src/RichSelect/RichSelectBox.tsx
|
|
28
29
|
import {
|
|
@@ -207,4 +208,4 @@ export {
|
|
|
207
208
|
RichSelectBoxContext,
|
|
208
209
|
RichSelectBox_default
|
|
209
210
|
};
|
|
210
|
-
//# sourceMappingURL=
|
|
211
|
+
//# sourceMappingURL=7P2G663D.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/RichSelect/RichSelectBox.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ReactElement,\n useContext,\n useState,\n useCallback,\n createContext,\n useMemo,\n} from \"react\";\nimport { ListBox as ReactAriaListBox } from \"react-aria-components\";\nimport { type Key } from \"react-aria\";\nimport { type Selection } from \"react-stately\";\nimport { useControlledState } from \"@react-stately/utils\";\nimport { RichSelectItemContext } from \"./RichSelectItem\";\nimport ButtonGroup from \"../ButtonGroup/ButtonGroup\";\nimport Button from \"../Button/Button\";\nimport styles from \"./RichSelect.module.css\";\nimport Box from \"../Box/Box\";\nimport Divider from \"../Divider/Divider\";\nimport RichSelectSection from \"./RichSelectSection\";\nimport RichSelectChip from \"./RichSelectChip\";\nimport RichSelectRadioButton from \"./RichSelectRadioButton\";\n\ntype RichSelectChild =\n | ReactElement<typeof RichSelectChip>\n | ReactElement<typeof RichSelectRadioButton>\n | ReactElement<typeof RichSelectSection>;\n\nfunction isString(val: unknown): val is string {\n return typeof val === \"string\";\n}\n\nfunction isEqualSelection(set1?: Selection, set2?: Selection): boolean {\n if (set1 === set2) return true;\n if (!set1 && !set2) return true;\n if (!set1 || !set2) return false;\n if (isString(set1)) return set1 === set2;\n if (isString(set2)) return false;\n if (set1.size !== set2.size) return false;\n for (const item of set1) {\n if (!set2.has(item)) return false;\n }\n return true;\n}\n\nexport function convertSelection(\n selection: \"all\" | Iterable<Key> | undefined,\n defaultValue?: \"all\" | Set<Key>,\n): \"all\" | Set<Key> | undefined {\n if (!selection) return defaultValue;\n if (selection === \"all\") return \"all\";\n return new Set(selection);\n}\n\nexport type RichSelectBoxProps = {\n /** aria-label for the list box */\n accessibilityLabel: string;\n /** Automatically saves changes when true, shows save/clear buttons when not true */\n autosave?: boolean;\n /** Test id for the list box element */\n \"data-testid\"?: string;\n /** One or more RichSelectList.<Chip|RadioButton|Section|...> components. */\n children: RichSelectChild | RichSelectChild[];\n /** Default selected values */\n defaultSelectedValues?: Set<Key> | string[] | \"all\";\n /** Enables multiple selection (multiselect) */\n multiple?: boolean;\n /** The callback to be called when options are selected / committed */\n onChange: (selectedValues: string[] | \"all\") => void;\n /** Text for primary button (Save). Required: string must be translated */\n primaryButtonText: string;\n /** accessibilityLabel for primary Button component (Save). Required: string must be translated */\n primaryButtonAccessibilityLabel: string;\n /** Text for primary button (Clear). Required: string must be translated */\n secondaryButtonText: string;\n /** accessibilityLabel for secondary Button component (Clear). Required: string must be translated */\n secondaryButtonAccessibilityLabel: string;\n /** Value of the currently selected options */\n selectedValues?: Set<Key> | string[] | \"all\";\n};\n\ntype RichSelectBoxContextType = {\n /** Automatically focuses RichSelectBox on mount when enabled */\n autoFocus?: boolean;\n};\nexport const RichSelectBoxContext = createContext<RichSelectBoxContextType>({});\n\n/**\n * [RichSelectBox](https://cambly-syntax.vercel.app/?path=/docs/components-richselectbox--docs) is an element that allows users to select one or multiple options from a list.\n *\n * Example Usage:\n ```\n <RichSelectBox\n label=\"My Label\"\n multiple\n onChange={() => { ... }}\n primaryButtonText=\"Save\"\n primaryButtonAccessibilityLabel=\"Save\"\n secondaryButtonText=\"Clear\"\n secondaryButtonAccessibilityLabel=\"Clear\"\n >\n <RichSelectBox.Section label=\"Cities\">\n <RichSelectBox.Chip label=\"San Francisco\" value=\"sf\" />\n <RichSelectBox.Chip label=\"New York\" value=\"ny\" disabled />\n <RichSelectBox.Chip label=\"Tulsa\" value=\"tulsa\" />\n <RichSelectBox.Chip label=\"Chicago\" value=\"chicago\" disabled />\n </RichSelectBox.Section>\n </RichSelectBox>\n ```\n */\nconst RichSelectBox = forwardRef<HTMLDivElement, RichSelectBoxProps>(\n function RichSelectBox(props, ref): ReactElement {\n const {\n accessibilityLabel,\n autosave,\n children,\n \"data-testid\": dataTestId,\n multiple = false,\n onChange,\n primaryButtonText,\n primaryButtonAccessibilityLabel,\n secondaryButtonText,\n secondaryButtonAccessibilityLabel,\n selectedValues: selectedValuesProp,\n defaultSelectedValues: defaultSelectedValuesProp,\n } = props;\n\n const selectedKeysProp = useMemo(\n () => convertSelection(selectedValuesProp),\n [selectedValuesProp],\n );\n const defaultSelectedKeys = useMemo(\n () => convertSelection(defaultSelectedValuesProp, new Set()),\n [defaultSelectedValuesProp],\n );\n const [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp!, // eslint-disable-line @typescript-eslint/no-non-null-assertion -- there is a bug in the typedef for useControlledState from react-stately. Internally they rely on value (first arg) able to be undefined\n defaultSelectedKeys,\n (value) => {\n if (isEqualSelection(value, selectedKeys)) return;\n // Notify parent about the changes\n if (value === \"all\") return onChange(\"all\");\n onChange([...value].map(String));\n },\n );\n const [stagedKeys, setStagedKeys] = useState<Set<Key> | \"all\">(\n selectedKeys,\n );\n\n const saveChanges = () => setSelectedKeys(stagedKeys);\n const clearChanges = () => setStagedKeys(new Set());\n const stageChanges = (selectedValues: Selection) => {\n setStagedKeys(selectedValues);\n if (autosave) setSelectedKeys(selectedValues);\n };\n\n // inject method into context so children can disable themselves\n // by adding `disabled` attribute (through RichSelectItem)\n const [disabledKeysComposed, setDisabledKeysComposed] = useState<Set<Key>>(\n new Set(),\n );\n const disableKey = useCallback((key: Key, _disabled: boolean) => {\n setDisabledKeysComposed((keys) => {\n if (keys.has(key) === _disabled) return keys;\n _disabled ? keys.add(key) : keys.delete(key);\n return new Set(keys);\n });\n }, []);\n\n // higher level context for autoFocus behavior (parent sets when rendering RichSelectBox in overlay)\n const { autoFocus } = useContext(RichSelectBoxContext);\n\n return (\n <RichSelectItemContext.Provider value={{ disableKey }}>\n <Box>\n <ReactAriaListBox\n ref={ref}\n aria-label={accessibilityLabel}\n autoFocus={autoFocus}\n selectionMode={multiple ? \"multiple\" : \"single\"}\n selectionBehavior={multiple ? \"toggle\" : \"replace\"}\n shouldFocusWrap={true}\n orientation=\"horizontal\"\n selectedKeys={stagedKeys}\n onSelectionChange={stageChanges}\n disabledKeys={disabledKeysComposed}\n className={styles.richSelectBox}\n >\n {children}\n </ReactAriaListBox>\n {!autosave && (\n <Box\n backgroundColor=\"white\"\n display=\"flex\"\n direction=\"column\"\n gap={5}\n marginTop={5}\n justifyContent=\"end\"\n position=\"sticky\"\n dangerouslySetInlineStyle={{\n __style: {\n bottom: 0,\n },\n }}\n >\n <Box flex=\"grow\">\n <Divider />\n </Box>\n <Box\n paddingY={5}\n marginTop={-5}\n display=\"flex\"\n justifyContent=\"end\"\n >\n <ButtonGroup orientation=\"horizontal\">\n <Button\n onClick={clearChanges}\n color={\"secondary\"}\n text={secondaryButtonText}\n accessibilityLabel={secondaryButtonAccessibilityLabel}\n data-testid={[dataTestId, \"secondary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n <Button\n onClick={saveChanges}\n text={primaryButtonText}\n accessibilityLabel={primaryButtonAccessibilityLabel}\n color=\"primary\"\n data-testid={[dataTestId, \"primary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n </ButtonGroup>\n </Box>\n </Box>\n )}\n </Box>\n </RichSelectItemContext.Provider>\n );\n },\n);\n\nexport default Object.assign(RichSelectBox, {\n Section: RichSelectSection,\n Chip: RichSelectChip,\n RadioButton: RichSelectRadioButton,\n});\n"],"mappings":"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","names":["RichSelectBox"]}
|
|
1
|
+
{"version":3,"sources":["../../src/RichSelect/RichSelectBox.tsx"],"sourcesContent":["import React, {\n forwardRef,\n type ReactElement,\n useContext,\n useState,\n useCallback,\n createContext,\n useMemo,\n} from \"react\";\nimport { ListBox as ReactAriaListBox } from \"react-aria-components\";\nimport { type Key } from \"react-aria\";\nimport { type Selection } from \"react-stately\";\nimport { useControlledState } from \"@react-stately/utils\";\nimport { RichSelectItemContext } from \"./RichSelectItem\";\nimport ButtonGroup from \"../ButtonGroup/ButtonGroup\";\nimport Button from \"../Button/Button\";\nimport styles from \"./RichSelect.module.css\";\nimport Box from \"../Box/Box\";\nimport Divider from \"../Divider/Divider\";\nimport RichSelectSection from \"./RichSelectSection\";\nimport RichSelectChip from \"./RichSelectChip\";\nimport RichSelectRadioButton from \"./RichSelectRadioButton\";\n\ntype RichSelectChild =\n | ReactElement<typeof RichSelectChip>\n | ReactElement<typeof RichSelectRadioButton>\n | ReactElement<typeof RichSelectSection>;\n\nfunction isString(val: unknown): val is string {\n return typeof val === \"string\";\n}\n\nfunction isEqualSelection(set1?: Selection, set2?: Selection): boolean {\n if (set1 === set2) return true;\n if (!set1 && !set2) return true;\n if (!set1 || !set2) return false;\n if (isString(set1)) return set1 === set2;\n if (isString(set2)) return false;\n if (set1.size !== set2.size) return false;\n for (const item of set1) {\n if (!set2.has(item)) return false;\n }\n return true;\n}\n\nexport function convertSelection(\n selection: \"all\" | Iterable<Key> | undefined,\n defaultValue?: \"all\" | Set<Key>,\n): \"all\" | Set<Key> | undefined {\n if (!selection) return defaultValue;\n if (selection === \"all\") return \"all\";\n return new Set(selection);\n}\n\nexport type RichSelectBoxProps = {\n /** aria-label for the list box */\n accessibilityLabel: string;\n /** Automatically saves changes when true, shows save/clear buttons when not true */\n autosave?: boolean;\n /** Test id for the list box element */\n \"data-testid\"?: string;\n /** One or more RichSelectList.<Chip|RadioButton|Section|...> components. */\n children: RichSelectChild | RichSelectChild[];\n /** Default selected values */\n defaultSelectedValues?: Set<Key> | string[] | \"all\";\n /** Enables multiple selection (multiselect) */\n multiple?: boolean;\n /** The callback to be called when options are selected / committed */\n onChange: (selectedValues: string[] | \"all\") => void;\n /** Text for primary button (Save). Required: string must be translated */\n primaryButtonText: string;\n /** accessibilityLabel for primary Button component (Save). Required: string must be translated */\n primaryButtonAccessibilityLabel: string;\n /** Text for primary button (Clear). Required: string must be translated */\n secondaryButtonText: string;\n /** accessibilityLabel for secondary Button component (Clear). Required: string must be translated */\n secondaryButtonAccessibilityLabel: string;\n /** Value of the currently selected options */\n selectedValues?: Set<Key> | string[] | \"all\";\n};\n\ntype RichSelectBoxContextType = {\n /** Automatically focuses RichSelectBox on mount when enabled */\n autoFocus?: boolean;\n};\nexport const RichSelectBoxContext = createContext<RichSelectBoxContextType>({});\n\n/**\n * [RichSelectBox](https://cambly-syntax.vercel.app/?path=/docs/components-richselectbox--docs) is an element that allows users to select one or multiple options from a list.\n *\n * Example Usage:\n ```\n <RichSelectBox\n label=\"My Label\"\n multiple\n onChange={() => { ... }}\n primaryButtonText=\"Save\"\n primaryButtonAccessibilityLabel=\"Save\"\n secondaryButtonText=\"Clear\"\n secondaryButtonAccessibilityLabel=\"Clear\"\n >\n <RichSelectBox.Section label=\"Cities\">\n <RichSelectBox.Chip label=\"San Francisco\" value=\"sf\" />\n <RichSelectBox.Chip label=\"New York\" value=\"ny\" disabled />\n <RichSelectBox.Chip label=\"Tulsa\" value=\"tulsa\" />\n <RichSelectBox.Chip label=\"Chicago\" value=\"chicago\" disabled />\n </RichSelectBox.Section>\n </RichSelectBox>\n ```\n */\nconst RichSelectBox = forwardRef<HTMLDivElement, RichSelectBoxProps>(\n function RichSelectBox(props, ref): ReactElement {\n const {\n accessibilityLabel,\n autosave,\n children,\n \"data-testid\": dataTestId,\n multiple = false,\n onChange,\n primaryButtonText,\n primaryButtonAccessibilityLabel,\n secondaryButtonText,\n secondaryButtonAccessibilityLabel,\n selectedValues: selectedValuesProp,\n defaultSelectedValues: defaultSelectedValuesProp,\n } = props;\n\n const selectedKeysProp = useMemo(\n () => convertSelection(selectedValuesProp),\n [selectedValuesProp],\n );\n const defaultSelectedKeys = useMemo(\n () => convertSelection(defaultSelectedValuesProp, new Set()),\n [defaultSelectedValuesProp],\n );\n const [selectedKeys, setSelectedKeys] = useControlledState(\n selectedKeysProp!, // eslint-disable-line @typescript-eslint/no-non-null-assertion -- there is a bug in the typedef for useControlledState from react-stately. Internally they rely on value (first arg) able to be undefined\n defaultSelectedKeys,\n (value) => {\n if (isEqualSelection(value, selectedKeys)) return;\n // Notify parent about the changes\n if (value === \"all\") return onChange(\"all\");\n onChange([...value].map(String));\n },\n );\n const [stagedKeys, setStagedKeys] = useState<Set<Key> | \"all\">(\n selectedKeys,\n );\n\n const saveChanges = () => setSelectedKeys(stagedKeys);\n const clearChanges = () => setStagedKeys(new Set());\n const stageChanges = (selectedValues: Selection) => {\n setStagedKeys(selectedValues);\n if (autosave) setSelectedKeys(selectedValues);\n };\n\n // inject method into context so children can disable themselves\n // by adding `disabled` attribute (through RichSelectItem)\n const [disabledKeysComposed, setDisabledKeysComposed] = useState<Set<Key>>(\n new Set(),\n );\n const disableKey = useCallback((key: Key, _disabled: boolean) => {\n setDisabledKeysComposed((keys) => {\n if (keys.has(key) === _disabled) return keys;\n _disabled ? keys.add(key) : keys.delete(key);\n return new Set(keys);\n });\n }, []);\n\n // higher level context for autoFocus behavior (parent sets when rendering RichSelectBox in overlay)\n const { autoFocus } = useContext(RichSelectBoxContext);\n\n return (\n <RichSelectItemContext.Provider value={{ disableKey }}>\n <Box>\n <ReactAriaListBox\n ref={ref}\n aria-label={accessibilityLabel}\n autoFocus={autoFocus}\n selectionMode={multiple ? \"multiple\" : \"single\"}\n selectionBehavior={multiple ? \"toggle\" : \"replace\"}\n shouldFocusWrap={true}\n orientation=\"horizontal\"\n selectedKeys={stagedKeys}\n onSelectionChange={stageChanges}\n disabledKeys={disabledKeysComposed}\n className={styles.richSelectBox}\n >\n {children}\n </ReactAriaListBox>\n {!autosave && (\n <Box\n backgroundColor=\"white\"\n display=\"flex\"\n direction=\"column\"\n gap={5}\n marginTop={5}\n justifyContent=\"end\"\n position=\"sticky\"\n dangerouslySetInlineStyle={{\n __style: {\n bottom: 0,\n },\n }}\n >\n <Box flex=\"grow\">\n <Divider />\n </Box>\n <Box\n paddingY={5}\n marginTop={-5}\n display=\"flex\"\n justifyContent=\"end\"\n >\n <ButtonGroup orientation=\"horizontal\">\n <Button\n onClick={clearChanges}\n color={\"secondary\"}\n text={secondaryButtonText}\n accessibilityLabel={secondaryButtonAccessibilityLabel}\n data-testid={[dataTestId, \"secondary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n <Button\n onClick={saveChanges}\n text={primaryButtonText}\n accessibilityLabel={primaryButtonAccessibilityLabel}\n color=\"primary\"\n data-testid={[dataTestId, \"primary-button\"]\n .filter(Boolean)\n .join(\"-\")}\n />\n </ButtonGroup>\n </Box>\n </Box>\n )}\n </Box>\n </RichSelectItemContext.Provider>\n );\n },\n);\n\nexport default Object.assign(RichSelectBox, {\n Section: RichSelectSection,\n Chip: RichSelectChip,\n RadioButton: RichSelectRadioButton,\n});\n"],"mappings":"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","names":["RichSelectBox"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client"
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _VKB7KOAHcjs = require('./VKB7KOAH.cjs');
|
|
5
|
+
|
|
6
|
+
// src/colors/backgroundColor.ts
|
|
7
|
+
function classicBackgroundColor(color) {
|
|
8
|
+
switch (color) {
|
|
9
|
+
case "secondary":
|
|
10
|
+
return _VKB7KOAHcjs.colors_module_default.primary100BackgroundColor;
|
|
11
|
+
case "destructive-primary":
|
|
12
|
+
return _VKB7KOAHcjs.colors_module_default.destructive700BackgroundColor;
|
|
13
|
+
case "destructive-secondary":
|
|
14
|
+
return _VKB7KOAHcjs.colors_module_default.destructive100BackgroundColor;
|
|
15
|
+
case "success":
|
|
16
|
+
return _VKB7KOAHcjs.colors_module_default.success700BackgroundColor;
|
|
17
|
+
case "tertiary":
|
|
18
|
+
case "destructive-tertiary":
|
|
19
|
+
return _VKB7KOAHcjs.colors_module_default.whiteBackgroundColor;
|
|
20
|
+
case "branded":
|
|
21
|
+
return _VKB7KOAHcjs.colors_module_default.yellow700BackgroundColor;
|
|
22
|
+
case "inverse":
|
|
23
|
+
return _VKB7KOAHcjs.colors_module_default.gray60BackgroundColor;
|
|
24
|
+
default:
|
|
25
|
+
return _VKB7KOAHcjs.colors_module_default.primary700BackgroundColor;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function cambioBackgroundColor(color) {
|
|
29
|
+
switch (color) {
|
|
30
|
+
case "primary":
|
|
31
|
+
return _VKB7KOAHcjs.colors_module_default.cambioBlackBackgroundColor;
|
|
32
|
+
case "secondary":
|
|
33
|
+
return _VKB7KOAHcjs.colors_module_default.cambioGray370BackgroundColor;
|
|
34
|
+
case "tertiary":
|
|
35
|
+
case "success-tertiary":
|
|
36
|
+
case "destructive-tertiary":
|
|
37
|
+
return _VKB7KOAHcjs.colors_module_default.cambioTransparentFullBackgroundColor;
|
|
38
|
+
case "success-primary":
|
|
39
|
+
return _VKB7KOAHcjs.colors_module_default.cambioSuccess700BackgroundColor;
|
|
40
|
+
case "success-secondary":
|
|
41
|
+
return _VKB7KOAHcjs.colors_module_default.cambioSuccess370BackgroundColor;
|
|
42
|
+
case "destructive-primary":
|
|
43
|
+
return _VKB7KOAHcjs.colors_module_default.cambioDestructive700BackgroundColor;
|
|
44
|
+
case "destructive-secondary":
|
|
45
|
+
return _VKB7KOAHcjs.colors_module_default.cambioDestructive370BackgroundColor;
|
|
46
|
+
case "branded":
|
|
47
|
+
return _VKB7KOAHcjs.colors_module_default.cambioYellow700BackgroundColor;
|
|
48
|
+
default:
|
|
49
|
+
return _VKB7KOAHcjs.colors_module_default.cambioBlackBackgroundColor;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
exports.classicBackgroundColor = classicBackgroundColor; exports.cambioBackgroundColor = cambioBackgroundColor;
|
|
57
|
+
//# sourceMappingURL=A4O4F3KK.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/colors/backgroundColor.ts"],"names":[],"mappings":";;;;;;AAGO,SAAS,uBAAuB,OAAuC;AAC5E,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB;AACE,aAAO,sBAAO;AAAA,EAClB;AACF;AAEO,SAAS,sBACd,OACQ;AACR,UAAQ,OAAO;AAAA,IACb,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB,KAAK;AACH,aAAO,sBAAO;AAAA,IAChB;AACE,aAAO,sBAAO;AAAA,EAClB;AACF","sourcesContent":["import { type CambioColor, type Color } from \"../constants\";\nimport styles from \"./colors.module.css\";\n\nexport function classicBackgroundColor(color: (typeof Color)[number]): string {\n switch (color) {\n case \"secondary\":\n return styles.primary100BackgroundColor;\n case \"destructive-primary\":\n return styles.destructive700BackgroundColor;\n case \"destructive-secondary\":\n return styles.destructive100BackgroundColor;\n case \"success\":\n return styles.success700BackgroundColor;\n case \"tertiary\":\n case \"destructive-tertiary\":\n return styles.whiteBackgroundColor;\n case \"branded\":\n return styles.yellow700BackgroundColor;\n case \"inverse\":\n return styles.gray60BackgroundColor;\n default:\n return styles.primary700BackgroundColor;\n }\n}\n\nexport function cambioBackgroundColor(\n color: (typeof CambioColor)[number],\n): string {\n switch (color) {\n case \"primary\":\n return styles.cambioBlackBackgroundColor;\n case \"secondary\":\n return styles.cambioGray370BackgroundColor;\n case \"tertiary\":\n case \"success-tertiary\":\n case \"destructive-tertiary\":\n return styles.cambioTransparentFullBackgroundColor;\n case \"success-primary\":\n return styles.cambioSuccess700BackgroundColor;\n case \"success-secondary\":\n return styles.cambioSuccess370BackgroundColor;\n case \"destructive-primary\":\n return styles.cambioDestructive700BackgroundColor;\n case \"destructive-secondary\":\n return styles.cambioDestructive370BackgroundColor;\n case \"branded\":\n return styles.cambioYellow700BackgroundColor;\n default:\n return styles.cambioBlackBackgroundColor;\n }\n}\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
"use client"
|
|
1
2
|
import {
|
|
2
3
|
layout_module_default
|
|
3
|
-
} from "./
|
|
4
|
+
} from "./DDUJFFG7.js";
|
|
4
5
|
import {
|
|
5
6
|
Box_module_default
|
|
6
|
-
} from "./
|
|
7
|
+
} from "./O3CEUWCC.js";
|
|
7
8
|
import {
|
|
8
9
|
Typography_default
|
|
9
|
-
} from "./
|
|
10
|
+
} from "./L7PPCZM5.js";
|
|
10
11
|
|
|
11
12
|
// src/RichSelect/RichSelectSection.tsx
|
|
12
13
|
import { forwardRef } from "react";
|
|
@@ -49,4 +50,4 @@ var RichSelectSection_default = forwardRef(
|
|
|
49
50
|
export {
|
|
50
51
|
RichSelectSection_default
|
|
51
52
|
};
|
|
52
|
-
//# sourceMappingURL=
|
|
53
|
+
//# sourceMappingURL=A4QZYP2J.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/RichSelect/RichSelectSection.tsx"],"sourcesContent":["import React, { forwardRef, type ReactElement } from \"react\";\nimport {\n Section as ReactAriaSection,\n Header as ReactAriaHeader,\n Collection as ReactAriaCollection,\n} from \"react-aria-components\";\nimport classNames from \"classnames\";\nimport boxStyles from \"../Box/Box.module.css\";\nimport layoutStyles from \"../layout.module.css\";\nimport Typography from \"../Typography/Typography\";\n\ntype RichSelectSectionProps = {\n \"data-testid\"?: string;\n label: string;\n children: ReactElement | ReactElement[];\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nexport default forwardRef<HTMLDivElement, RichSelectSectionProps>(\n function RichSelectSection(props, ref): ReactElement {\n const {\n \"data-testid\": dataTestId,\n label,\n children,\n orientation = \"horizontal\",\n } = props;\n\n return (\n <ReactAriaSection\n ref={ref}\n data-testid={dataTestId}\n className={classNames(\n [boxStyles.box, boxStyles.flex, boxStyles.flexWrap, boxStyles.gap3],\n {\n [boxStyles.row]: orientation === \"horizontal\",\n [boxStyles.column]: orientation === \"vertical\",\n },\n )}\n >\n <ReactAriaHeader className={classNames(layoutStyles.fullWidth)}>\n <Typography>{label}</Typography>\n </ReactAriaHeader>\n <ReactAriaCollection>{children}</ReactAriaCollection>\n </ReactAriaSection>\n );\n },\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/RichSelect/RichSelectSection.tsx"],"sourcesContent":["import React, { forwardRef, type ReactElement } from \"react\";\nimport {\n Section as ReactAriaSection,\n Header as ReactAriaHeader,\n Collection as ReactAriaCollection,\n} from \"react-aria-components\";\nimport classNames from \"classnames\";\nimport boxStyles from \"../Box/Box.module.css\";\nimport layoutStyles from \"../layout.module.css\";\nimport Typography from \"../Typography/Typography\";\n\ntype RichSelectSectionProps = {\n \"data-testid\"?: string;\n label: string;\n children: ReactElement | ReactElement[];\n orientation?: \"horizontal\" | \"vertical\";\n};\n\nexport default forwardRef<HTMLDivElement, RichSelectSectionProps>(\n function RichSelectSection(props, ref): ReactElement {\n const {\n \"data-testid\": dataTestId,\n label,\n children,\n orientation = \"horizontal\",\n } = props;\n\n return (\n <ReactAriaSection\n ref={ref}\n data-testid={dataTestId}\n className={classNames(\n [boxStyles.box, boxStyles.flex, boxStyles.flexWrap, boxStyles.gap3],\n {\n [boxStyles.row]: orientation === \"horizontal\",\n [boxStyles.column]: orientation === \"vertical\",\n },\n )}\n >\n <ReactAriaHeader className={classNames(layoutStyles.fullWidth)}>\n <Typography>{label}</Typography>\n </ReactAriaHeader>\n <ReactAriaCollection>{children}</ReactAriaCollection>\n </ReactAriaSection>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;AAAA,SAAgB,kBAAqC;AACrD;AAAA,EACE,WAAW;AAAA,EACX,UAAU;AAAA,EACV,cAAc;AAAA,OACT;AACP,OAAO,gBAAgB;AAsBjB,SAYI,KAZJ;AAVN,IAAO,4BAAQ;AAAA,EACb,SAAS,kBAAkB,OAAO,KAAmB;AACnD,UAAM;AAAA,MACJ,eAAe;AAAA,MACf;AAAA,MACA;AAAA,MACA,cAAc;AAAA,IAChB,IAAI;AAEJ,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,WAAW;AAAA,UACT,CAAC,mBAAU,KAAK,mBAAU,MAAM,mBAAU,UAAU,mBAAU,IAAI;AAAA,UAClE;AAAA,YACE,CAAC,mBAAU,GAAG,GAAG,gBAAgB;AAAA,YACjC,CAAC,mBAAU,MAAM,GAAG,gBAAgB;AAAA,UACtC;AAAA,QACF;AAAA,QAEA;AAAA,8BAAC,mBAAgB,WAAW,WAAW,sBAAa,SAAS,GAC3D,8BAAC,sBAAY,iBAAM,GACrB;AAAA,UACA,oBAAC,uBAAqB,UAAS;AAAA;AAAA;AAAA,IACjC;AAAA,EAEJ;AACF;","names":[]}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
"use client"
|
|
1
2
|
import {
|
|
2
3
|
Focus_module_default
|
|
3
|
-
} from "./
|
|
4
|
+
} from "./KKADUD65.js";
|
|
4
5
|
import {
|
|
5
6
|
Typography_default
|
|
6
|
-
} from "./
|
|
7
|
+
} from "./L7PPCZM5.js";
|
|
7
8
|
import {
|
|
8
9
|
useIsHydrated
|
|
9
|
-
} from "./
|
|
10
|
+
} from "./JB65NEXK.js";
|
|
10
11
|
import {
|
|
11
12
|
useFocusVisible
|
|
12
|
-
} from "./
|
|
13
|
+
} from "./BWPNF6RD.js";
|
|
13
14
|
|
|
14
15
|
// src/Checkbox/Checkbox.tsx
|
|
15
16
|
import { useState } from "react";
|
|
@@ -108,4 +109,4 @@ var Checkbox_default = Checkbox;
|
|
|
108
109
|
export {
|
|
109
110
|
Checkbox_default
|
|
110
111
|
};
|
|
111
|
-
//# sourceMappingURL=
|
|
112
|
+
//# sourceMappingURL=ABAYJGAF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Checkbox/Checkbox.tsx","css-module:./Checkbox.module.css#css-module"],"sourcesContent":["import React, { type ReactElement, useState } from \"react\";\nimport classNames from \"classnames\";\nimport useFocusVisible from \"../useFocusVisible\";\nimport styles from \"./Checkbox.module.css\";\nimport focusStyles from \"../Focus.module.css\";\nimport Typography from \"../Typography/Typography\";\nimport useIsHydrated from \"../useIsHydrated\";\n\nconst typographySize = {\n sm: 100,\n md: 200,\n} as const;\n\nconst iconWidth = {\n sm: 12,\n md: 20,\n};\n\n/**\n * [Checkbox](https://cambly-syntax.vercel.app/?path=/docs/components-checkbox--docs) is a clickable element that will show if an option has been selected or not.\n */\nconst Checkbox = ({\n checked = false,\n \"data-testid\": dataTestId,\n disabled: disabledProp = false,\n size = \"md\",\n label,\n error = false,\n onChange,\n}: {\n /**\n * Whether or not the box has been clicked\n *\n * @defaultValue false\n */\n checked: boolean;\n /**\n * Test id for the checkbox\n */\n \"data-testid\"?: string;\n /**\n * The callback to be called when the checkbox value changes\n */\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n /**\n * Whether or not the box is disabled\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * The size of the checkbox and icon\n *\n * * `sm`: 16px\n * * `md`: 24px\n *\n * @defaultValue \"md\"\n */\n size?: \"sm\" | \"md\";\n /**\n * The text accompanying the checkbox\n */\n label: string;\n /**\n * Whether or not there is an error with the input\n *\n * @defaultValue false\n */\n error?: boolean;\n}): ReactElement => {\n const isHydrated = useIsHydrated();\n const disabled = !isHydrated || disabledProp;\n const [isFocused, setIsFocused] = useState(false);\n const { isFocusVisible } = useFocusVisible();\n\n const checkboxStyling = classNames(styles.checkbox, styles[size]);\n const uncheckedStyling = classNames(checkboxStyling, styles.uncheckedBox, {\n [styles.uncheckedBorder]: !error,\n [styles.uncheckedErrorBorder]: error,\n [focusStyles.accessibilityOutlineFocus]: isFocused && isFocusVisible,\n });\n const checkedStyling = classNames(checkboxStyling, styles.checkedBox, {\n [styles.checkedNonError]: !error,\n [styles.checkedError]: error,\n [focusStyles.accessibilityOutlineFocus]: isFocused && isFocusVisible,\n });\n\n return (\n <label\n className={classNames(\n styles.mainContainer,\n styles[`cursor${disabled ? \"Disabled\" : \"Enabled\"}`],\n {\n [styles.disabled]: disabled,\n },\n )}\n >\n <div className={checked ? checkedStyling : uncheckedStyling}>\n {checked && (\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" width={iconWidth[size]}>\n <path\n fill=\"#fff\"\n d=\"m9 16.2-3.5-3.5a.9839.9839 0 0 0-1.4 0c-.39.39-.39 1.01 0 1.4l4.19 4.19c.39.39 1.02.39 1.41 0L20.3 7.7c.39-.39.39-1.01 0-1.4a.9839.9839 0 0 0-1.4 0L9 16.2z\"\n ></path>\n </svg>\n )}\n </div>\n <input\n data-testid={dataTestId}\n type=\"checkbox\"\n className={classNames(\n styles.inputOverlay,\n styles[size],\n styles[`cursor${disabled ? \"Disabled\" : \"Enabled\"}`],\n )}\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n onFocus={() => {\n setIsFocused(true);\n }}\n onBlur={() => {\n setIsFocused(false);\n }}\n />\n <Typography\n size={typographySize[size]}\n color={error ? \"destructive-primary\" : \"gray900\"}\n >\n {label}\n </Typography>\n </label>\n );\n};\n\nexport default Checkbox;\n","import \"/home/runner/work/syntax/syntax/packages/syntax-core/src/Checkbox/Checkbox.module.css\"; export default {\"mainContainer\":\"_mainContainer_an7al_1\",\"inputOverlay\":\"_inputOverlay_an7al_9\",\"checkbox\":\"_checkbox_an7al_17\",\"disabled\":\"_disabled_an7al_25\",\"cursorDisabled\":\"_cursorDisabled_an7al_29\",\"cursorEnabled\":\"_cursorEnabled_an7al_33\",\"uncheckedBox\":\"_uncheckedBox_an7al_37\",\"uncheckedBorder\":\"_uncheckedBorder_an7al_41\",\"uncheckedErrorBorder\":\"_uncheckedErrorBorder_an7al_45\",\"checkedBox\":\"_checkedBox_an7al_49\",\"checkedNonError\":\"_checkedNonError_an7al_53\",\"checkedError\":\"_checkedError_an7al_57\",\"sm\":\"_sm_an7al_61\",\"md\":\"_md_an7al_67\"}"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/Checkbox/Checkbox.tsx","css-module:./Checkbox.module.css#css-module"],"sourcesContent":["import React, { type ReactElement, useState } from \"react\";\nimport classNames from \"classnames\";\nimport useFocusVisible from \"../useFocusVisible\";\nimport styles from \"./Checkbox.module.css\";\nimport focusStyles from \"../Focus.module.css\";\nimport Typography from \"../Typography/Typography\";\nimport useIsHydrated from \"../useIsHydrated\";\n\nconst typographySize = {\n sm: 100,\n md: 200,\n} as const;\n\nconst iconWidth = {\n sm: 12,\n md: 20,\n};\n\n/**\n * [Checkbox](https://cambly-syntax.vercel.app/?path=/docs/components-checkbox--docs) is a clickable element that will show if an option has been selected or not.\n */\nconst Checkbox = ({\n checked = false,\n \"data-testid\": dataTestId,\n disabled: disabledProp = false,\n size = \"md\",\n label,\n error = false,\n onChange,\n}: {\n /**\n * Whether or not the box has been clicked\n *\n * @defaultValue false\n */\n checked: boolean;\n /**\n * Test id for the checkbox\n */\n \"data-testid\"?: string;\n /**\n * The callback to be called when the checkbox value changes\n */\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n /**\n * Whether or not the box is disabled\n *\n * @defaultValue false\n */\n disabled?: boolean;\n /**\n * The size of the checkbox and icon\n *\n * * `sm`: 16px\n * * `md`: 24px\n *\n * @defaultValue \"md\"\n */\n size?: \"sm\" | \"md\";\n /**\n * The text accompanying the checkbox\n */\n label: string;\n /**\n * Whether or not there is an error with the input\n *\n * @defaultValue false\n */\n error?: boolean;\n}): ReactElement => {\n const isHydrated = useIsHydrated();\n const disabled = !isHydrated || disabledProp;\n const [isFocused, setIsFocused] = useState(false);\n const { isFocusVisible } = useFocusVisible();\n\n const checkboxStyling = classNames(styles.checkbox, styles[size]);\n const uncheckedStyling = classNames(checkboxStyling, styles.uncheckedBox, {\n [styles.uncheckedBorder]: !error,\n [styles.uncheckedErrorBorder]: error,\n [focusStyles.accessibilityOutlineFocus]: isFocused && isFocusVisible,\n });\n const checkedStyling = classNames(checkboxStyling, styles.checkedBox, {\n [styles.checkedNonError]: !error,\n [styles.checkedError]: error,\n [focusStyles.accessibilityOutlineFocus]: isFocused && isFocusVisible,\n });\n\n return (\n <label\n className={classNames(\n styles.mainContainer,\n styles[`cursor${disabled ? \"Disabled\" : \"Enabled\"}`],\n {\n [styles.disabled]: disabled,\n },\n )}\n >\n <div className={checked ? checkedStyling : uncheckedStyling}>\n {checked && (\n <svg aria-hidden=\"true\" viewBox=\"0 0 24 24\" width={iconWidth[size]}>\n <path\n fill=\"#fff\"\n d=\"m9 16.2-3.5-3.5a.9839.9839 0 0 0-1.4 0c-.39.39-.39 1.01 0 1.4l4.19 4.19c.39.39 1.02.39 1.41 0L20.3 7.7c.39-.39.39-1.01 0-1.4a.9839.9839 0 0 0-1.4 0L9 16.2z\"\n ></path>\n </svg>\n )}\n </div>\n <input\n data-testid={dataTestId}\n type=\"checkbox\"\n className={classNames(\n styles.inputOverlay,\n styles[size],\n styles[`cursor${disabled ? \"Disabled\" : \"Enabled\"}`],\n )}\n checked={checked}\n onChange={onChange}\n disabled={disabled}\n onFocus={() => {\n setIsFocused(true);\n }}\n onBlur={() => {\n setIsFocused(false);\n }}\n />\n <Typography\n size={typographySize[size]}\n color={error ? \"destructive-primary\" : \"gray900\"}\n >\n {label}\n </Typography>\n </label>\n );\n};\n\nexport default Checkbox;\n","import \"/home/runner/work/syntax/syntax/packages/syntax-core/src/Checkbox/Checkbox.module.css\"; export default {\"mainContainer\":\"_mainContainer_an7al_1\",\"inputOverlay\":\"_inputOverlay_an7al_9\",\"checkbox\":\"_checkbox_an7al_17\",\"disabled\":\"_disabled_an7al_25\",\"cursorDisabled\":\"_cursorDisabled_an7al_29\",\"cursorEnabled\":\"_cursorEnabled_an7al_33\",\"uncheckedBox\":\"_uncheckedBox_an7al_37\",\"uncheckedBorder\":\"_uncheckedBorder_an7al_41\",\"uncheckedErrorBorder\":\"_uncheckedErrorBorder_an7al_45\",\"checkedBox\":\"_checkedBox_an7al_49\",\"checkedNonError\":\"_checkedNonError_an7al_53\",\"checkedError\":\"_checkedError_an7al_57\",\"sm\":\"_sm_an7al_61\",\"md\":\"_md_an7al_67\"}"],"mappings":";;;;;;;;;;;;;;;AAAA,SAAmC,gBAAgB;AACnD,OAAO,gBAAgB;;;ACDyE,IAAO,0BAAQ,EAAC,iBAAgB,0BAAyB,gBAAe,yBAAwB,YAAW,sBAAqB,YAAW,sBAAqB,kBAAiB,4BAA2B,iBAAgB,2BAA0B,gBAAe,0BAAyB,mBAAkB,6BAA4B,wBAAuB,kCAAiC,cAAa,wBAAuB,mBAAkB,6BAA4B,gBAAe,0BAAyB,MAAK,gBAAe,MAAK,eAAc;;;ADwFjoB,SAYQ,KAZR;AAhFJ,IAAM,iBAAiB;AAAA,EACrB,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,IAAM,YAAY;AAAA,EAChB,IAAI;AAAA,EACJ,IAAI;AACN;AAKA,IAAM,WAAW,CAAC;AAAA,EAChB,UAAU;AAAA,EACV,eAAe;AAAA,EACf,UAAU,eAAe;AAAA,EACzB,OAAO;AAAA,EACP;AAAA,EACA,QAAQ;AAAA,EACR;AACF,MAwCoB;AAClB,QAAM,aAAa,cAAc;AACjC,QAAM,WAAW,CAAC,cAAc;AAChC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAChD,QAAM,EAAE,eAAe,IAAI,gBAAgB;AAE3C,QAAM,kBAAkB,WAAW,wBAAO,UAAU,wBAAO,IAAI,CAAC;AAChE,QAAM,mBAAmB,WAAW,iBAAiB,wBAAO,cAAc;AAAA,IACxE,CAAC,wBAAO,eAAe,GAAG,CAAC;AAAA,IAC3B,CAAC,wBAAO,oBAAoB,GAAG;AAAA,IAC/B,CAAC,qBAAY,yBAAyB,GAAG,aAAa;AAAA,EACxD,CAAC;AACD,QAAM,iBAAiB,WAAW,iBAAiB,wBAAO,YAAY;AAAA,IACpE,CAAC,wBAAO,eAAe,GAAG,CAAC;AAAA,IAC3B,CAAC,wBAAO,YAAY,GAAG;AAAA,IACvB,CAAC,qBAAY,yBAAyB,GAAG,aAAa;AAAA,EACxD,CAAC;AAED,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,wBAAO;AAAA,QACP,wBAAO,SAAS,WAAW,aAAa,WAAW;AAAA,QACnD;AAAA,UACE,CAAC,wBAAO,QAAQ,GAAG;AAAA,QACrB;AAAA,MACF;AAAA,MAEA;AAAA,4BAAC,SAAI,WAAW,UAAU,iBAAiB,kBACxC,qBACC,oBAAC,SAAI,eAAY,QAAO,SAAQ,aAAY,OAAO,UAAU,IAAI,GAC/D;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,GAAE;AAAA;AAAA,QACH,GACH,GAEJ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,eAAa;AAAA,YACb,MAAK;AAAA,YACL,WAAW;AAAA,cACT,wBAAO;AAAA,cACP,wBAAO,IAAI;AAAA,cACX,wBAAO,SAAS,WAAW,aAAa,WAAW;AAAA,YACrD;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,SAAS,MAAM;AACb,2BAAa,IAAI;AAAA,YACnB;AAAA,YACA,QAAQ,MAAM;AACZ,2BAAa,KAAK;AAAA,YACpB;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,MAAM,eAAe,IAAI;AAAA,YACzB,OAAO,QAAQ,wBAAwB;AAAA,YAEtC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,mBAAQ;","names":[]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true})
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client"
|
|
2
|
+
|
|
3
|
+
// src/Modal/FocusTrap.tsx
|
|
2
4
|
var _react = require('react');
|
|
3
5
|
var _jsxruntime = require('react/jsx-runtime');
|
|
4
6
|
function queryFocusableAll(el) {
|
|
@@ -67,4 +69,4 @@ function FocusTrap({
|
|
|
67
69
|
|
|
68
70
|
|
|
69
71
|
exports.FocusTrap = FocusTrap;
|
|
70
|
-
//# sourceMappingURL=
|
|
72
|
+
//# sourceMappingURL=BA4JPX36.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Modal/FocusTrap.tsx"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,cAAiC;AAyFxD;AAvFJ,SAAS,kBAAkB,IAA6C;AAEtE,QAAM,WAAW;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAE,KAAK,GAAG;AACV,SAAO,GAAG,iBAAiB,QAAQ;AACrC;AAEA,IAAM,eAAe,CAAC,OAAoB;AACxC,MAAI,OAAO,GAAG,UAAU,YAAY;AAClC,OAAG,MAAM;AAAA,EACX;AACF;AAKe,SAAR,UAA2B;AAAA,EAChC;AACF,GAEiB;AACf,QAAM,QAAQ,OAA8B,IAAI;AAChD,QAAM,yBAAyB,OAA2B,IAAI;AAE9D,YAAU,MAAM;AACd,UAAM,EAAE,SAAS,QAAQ,IAAI;AAG7B,UAAM,kBAAkB,MAAM;AAC5B,YAAM,eAAe,WAAW,OAAO;AACvC,UAAI,WAAW,CAAC,cAAc;AAC5B,qBAAa,kBAAkB,OAAO,EAAE,CAAC,CAAC;AAAA,MAC5C;AAAA,IACF;AAEA,UAAM,cAA2C,CAAC,UAAsB;AACtE,UACE,CAAC,WACA,MAAM,kBAAkB,QAAQ,QAAQ,SAAS,MAAM,MAAM,GAC9D;AACA;AAAA,MACF;AAGA,UACE,MAAM,kBAAkB,WACxB,MAAM,OAAO,QAAQ,mCAAmC,MAAM,MAC9D;AACA;AAAA,MACF;AAEA,YAAM,gBAAgB;AACtB,YAAM,eAAe;AACrB,sBAAgB;AAAA,IAClB;AAGA,2BAAuB,UAAU,SAAS;AAC1C,oBAAgB;AAChB,aAAS,iBAAiB,SAAS,aAAa,IAAI;AAEpD,WAAO,SAAS,UAAU;AACxB,YAAM,EAAE,SAAS,oBAAoB,IAAI;AACzC,eAAS,oBAAoB,SAAS,aAAa,IAAI;AAEvD,UAAI,qBAAqB;AACvB,qBAAa,mBAAmB;AAAA,MAClC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,sBAAsB,CAAC;AAElC,SACE,oBAAC,SAAI,eAAY,qBAAoB,KAAK,OACvC,UACH;AAEJ","sourcesContent":["import React, { useEffect, useRef, type ReactElement } from \"react\";\n\nfunction queryFocusableAll(el: HTMLDivElement): NodeListOf<HTMLElement> {\n // Focusable, interactive elements that could possibly be in children\n const selector = [\n \"a[href]\",\n \"area[href]\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\",\n \"button:not([disabled])\",\n \"iframe\",\n \"object\",\n \"embed\",\n '[tabindex=\"-1\"]',\n '[tabindex=\"0\"]',\n \"[contenteditable]\",\n \"audio[controls]\",\n \"video[controls]\",\n \"summary\",\n ].join(\",\");\n return el.querySelectorAll(selector);\n}\n\nconst focusElement = (el: HTMLElement) => {\n if (typeof el.focus === \"function\") {\n el.focus();\n }\n};\n\n/**\n * FocusTrap is used by components like Modal to ensure that only elements within children components can be focused.\n */\nexport default function FocusTrap({\n children,\n}: {\n children?: ReactElement | null;\n}): ReactElement {\n const elRef = useRef<HTMLDivElement | null>(null);\n const previouslyFocusedElRef = useRef<HTMLElement | null>(null);\n\n useEffect(() => {\n const { current: element } = elRef;\n\n // Focus the first child element among all the focusable, interactive elements within `children`\n const focusFirstChild = () => {\n const withinIframe = window !== window.parent;\n if (element && !withinIframe) {\n focusElement(queryFocusableAll(element)[0]);\n }\n };\n\n const handleFocus: (event: FocusEvent) => void = (event: FocusEvent) => {\n if (\n !element ||\n (event.target instanceof Node && element.contains(event.target))\n ) {\n return;\n }\n\n // This prevents stack overflow when multiple FocusTraps are rendered\n if (\n event.target instanceof Element &&\n event.target.closest('[data-testid=\"syntax-focus-trap\"]') !== null\n ) {\n return;\n }\n\n event.stopPropagation();\n event.preventDefault();\n focusFirstChild();\n };\n\n // If an element has focus currently, keep a reference to that element\n previouslyFocusedElRef.current = document.activeElement as HTMLElement;\n focusFirstChild();\n document.addEventListener(\"focus\", handleFocus, true);\n\n return function cleanup() {\n const { current: previouslyFocusedEl } = previouslyFocusedElRef;\n document.removeEventListener(\"focus\", handleFocus, true);\n // If we previously stored a reference to a focused element, return focus to that element\n if (previouslyFocusedEl) {\n focusElement(previouslyFocusedEl);\n }\n };\n }, [elRef, previouslyFocusedElRef]);\n\n return (\n <div data-testid=\"syntax-focus-trap\" ref={elRef}>\n {children}\n </div>\n );\n}\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
1
3
|
// src/useFocusVisible.tsx
|
|
2
4
|
import { useState, useEffect } from "react";
|
|
3
5
|
var hasSetupGlobalListeners = false;
|
|
@@ -91,4 +93,4 @@ function useFocusVisible() {
|
|
|
91
93
|
export {
|
|
92
94
|
useFocusVisible
|
|
93
95
|
};
|
|
94
|
-
//# sourceMappingURL=
|
|
96
|
+
//# sourceMappingURL=BWPNF6RD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/useFocusVisible.tsx"],"sourcesContent":["// Portions of the code in this file are based on code from react & react-spectrum:\n// https://github.com/facebook/react/blob/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions/events/src/dom/create-event-handle/Focus.js\n// https://github.com/adobe/react-spectrum/blob/c700898916bbd076bcc63e49d77c16d80623a8e7/packages/@react-aria/interactions/src/useFocusVisible.ts\n\nimport { useState, useEffect } from \"react\";\n\ntype Modality = \"keyboard\" | \"pointer\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\n\nlet hasSetupGlobalListeners = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\nlet hasEventBeforeFocus = false;\n\nconst isMac =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof window !== \"undefined\" && window.navigator != null\n ? // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n /^Mac/.test(window.navigator.platform)\n : false;\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(e.metaKey || (!isMac && e.altKey) || e.ctrlKey);\n}\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => {\n handler(modality, e);\n });\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to keyboard modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n\n hasEventBeforeFocus = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n}\n\nfunction isFocusVisible(): boolean {\n return currentModality !== \"pointer\";\n}\n\nfunction setupGlobalFocusEvents() {\n if (typeof window === \"undefined\" || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n // $FlowExpectedError[method-unbinding]\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { focus } = HTMLElement.prototype;\n // $FlowIssue[cannot-write]\n HTMLElement.prototype.focus = function focusElement(...args) {\n hasEventBeforeFocus = true;\n focus.apply(this, args);\n };\n\n document.addEventListener(\"keydown\", handleKeyboardEvent, true);\n document.addEventListener(\"keyup\", handleKeyboardEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener(\"focus\", handleFocusEvent, true);\n window.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n document.addEventListener(\"pointerdown\", handlePointerEvent, true);\n document.addEventListener(\"pointermove\", handlePointerEvent, true);\n document.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n document.addEventListener(\"mousedown\", handlePointerEvent, true);\n document.addEventListener(\"mousemove\", handlePointerEvent, true);\n document.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nexport default function useFocusVisible(): {\n isFocusVisible: boolean;\n} {\n setupGlobalFocusEvents();\n const [isFocusVisibleState, setFocusVisible] = useState(isFocusVisible());\n useEffect(() => {\n const handler = () => {\n setFocusVisible(isFocusVisible());\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return { isFocusVisible: isFocusVisibleState };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/useFocusVisible.tsx"],"sourcesContent":["// Portions of the code in this file are based on code from react & react-spectrum:\n// https://github.com/facebook/react/blob/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions/events/src/dom/create-event-handle/Focus.js\n// https://github.com/adobe/react-spectrum/blob/c700898916bbd076bcc63e49d77c16d80623a8e7/packages/@react-aria/interactions/src/useFocusVisible.ts\n\nimport { useState, useEffect } from \"react\";\n\ntype Modality = \"keyboard\" | \"pointer\";\ntype HandlerEvent = PointerEvent | MouseEvent | KeyboardEvent | FocusEvent;\ntype Handler = (modality: Modality, e: HandlerEvent) => void;\n\nlet hasSetupGlobalListeners = false;\nlet currentModality: Modality | null = null;\nconst changeHandlers = new Set<Handler>();\nlet hasEventBeforeFocus = false;\n\nconst isMac =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n typeof window !== \"undefined\" && window.navigator != null\n ? // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n /^Mac/.test(window.navigator.platform)\n : false;\n\nfunction isValidKey(e: KeyboardEvent) {\n return !(e.metaKey || (!isMac && e.altKey) || e.ctrlKey);\n}\n\nfunction triggerChangeHandlers(modality: Modality, e: HandlerEvent) {\n changeHandlers.forEach((handler) => {\n handler(modality, e);\n });\n}\n\nfunction handleKeyboardEvent(e: KeyboardEvent) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\n\nfunction handlePointerEvent(e: PointerEvent | MouseEvent) {\n currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n }\n}\n\nfunction handleFocusEvent(e: FocusEvent) {\n // Firefox fires two extra focus events when the user first clicks into an iframe:\n // first on the window, then on the document. We ignore these events so they don't\n // cause keyboard focus rings to appear.\n if (e.target === window || e.target === document) {\n return;\n }\n\n // If a focus event occurs without a preceding keyboard or pointer event, switch to keyboard modality.\n // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n if (!hasEventBeforeFocus) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n\n hasEventBeforeFocus = false;\n}\n\nfunction handleWindowBlur() {\n // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n // for example, since a subsequent focus event won't be fired.\n hasEventBeforeFocus = false;\n}\n\nfunction isFocusVisible(): boolean {\n return currentModality !== \"pointer\";\n}\n\nfunction setupGlobalFocusEvents() {\n if (typeof window === \"undefined\" || hasSetupGlobalListeners) {\n return;\n }\n\n // Programmatic focus() calls shouldn't affect the current input modality.\n // However, we need to detect other cases when a focus event occurs without\n // a preceding user event (e.g. screen reader focus). Overriding the focus\n // method on HTMLElement.prototype is a bit hacky, but works.\n // $FlowExpectedError[method-unbinding]\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { focus } = HTMLElement.prototype;\n // $FlowIssue[cannot-write]\n HTMLElement.prototype.focus = function focusElement(...args) {\n hasEventBeforeFocus = true;\n focus.apply(this, args);\n };\n\n document.addEventListener(\"keydown\", handleKeyboardEvent, true);\n document.addEventListener(\"keyup\", handleKeyboardEvent, true);\n\n // Register focus events on the window so they are sure to happen\n // before React's event listeners (registered on the document).\n window.addEventListener(\"focus\", handleFocusEvent, true);\n window.addEventListener(\"blur\", handleWindowBlur, false);\n\n if (typeof PointerEvent !== \"undefined\") {\n document.addEventListener(\"pointerdown\", handlePointerEvent, true);\n document.addEventListener(\"pointermove\", handlePointerEvent, true);\n document.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n document.addEventListener(\"mousedown\", handlePointerEvent, true);\n document.addEventListener(\"mousemove\", handlePointerEvent, true);\n document.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n\n hasSetupGlobalListeners = true;\n}\n\nexport default function useFocusVisible(): {\n isFocusVisible: boolean;\n} {\n setupGlobalFocusEvents();\n const [isFocusVisibleState, setFocusVisible] = useState(isFocusVisible());\n useEffect(() => {\n const handler = () => {\n setFocusVisible(isFocusVisible());\n };\n\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n }, []);\n\n return { isFocusVisible: isFocusVisibleState };\n}\n"],"mappings":";;;AAIA,SAAS,UAAU,iBAAiB;AAMpC,IAAI,0BAA0B;AAC9B,IAAI,kBAAmC;AACvC,IAAM,iBAAiB,oBAAI,IAAa;AACxC,IAAI,sBAAsB;AAE1B,IAAM;AAAA;AAAA,EAEJ,OAAO,WAAW,eAAe,OAAO,aAAa;AAAA;AAAA,IAEjD,OAAO,KAAK,OAAO,UAAU,QAAQ;AAAA,MACrC;AAAA;AAEN,SAAS,WAAW,GAAkB;AACpC,SAAO,EAAE,EAAE,WAAY,CAAC,SAAS,EAAE,UAAW,EAAE;AAClD;AAEA,SAAS,sBAAsB,UAAoB,GAAiB;AAClE,iBAAe,QAAQ,CAAC,YAAY;AAClC,YAAQ,UAAU,CAAC;AAAA,EACrB,CAAC;AACH;AAEA,SAAS,oBAAoB,GAAkB;AAC7C,wBAAsB;AACtB,MAAI,WAAW,CAAC,GAAG;AACjB,sBAAkB;AAClB,0BAAsB,YAAY,CAAC;AAAA,EACrC;AACF;AAEA,SAAS,mBAAmB,GAA8B;AACxD,oBAAkB;AAClB,MAAI,EAAE,SAAS,eAAe,EAAE,SAAS,eAAe;AACtD,0BAAsB;AACtB,0BAAsB,WAAW,CAAC;AAAA,EACpC;AACF;AAEA,SAAS,iBAAiB,GAAe;AAIvC,MAAI,EAAE,WAAW,UAAU,EAAE,WAAW,UAAU;AAChD;AAAA,EACF;AAIA,MAAI,CAAC,qBAAqB;AACxB,sBAAkB;AAClB,0BAAsB,YAAY,CAAC;AAAA,EACrC;AAEA,wBAAsB;AACxB;AAEA,SAAS,mBAAmB;AAG1B,wBAAsB;AACxB;AAEA,SAAS,iBAA0B;AACjC,SAAO,oBAAoB;AAC7B;AAEA,SAAS,yBAAyB;AAChC,MAAI,OAAO,WAAW,eAAe,yBAAyB;AAC5D;AAAA,EACF;AAQA,QAAM,EAAE,MAAM,IAAI,YAAY;AAE9B,cAAY,UAAU,QAAQ,SAAS,gBAAgB,MAAM;AAC3D,0BAAsB;AACtB,UAAM,MAAM,MAAM,IAAI;AAAA,EACxB;AAEA,WAAS,iBAAiB,WAAW,qBAAqB,IAAI;AAC9D,WAAS,iBAAiB,SAAS,qBAAqB,IAAI;AAI5D,SAAO,iBAAiB,SAAS,kBAAkB,IAAI;AACvD,SAAO,iBAAiB,QAAQ,kBAAkB,KAAK;AAEvD,MAAI,OAAO,iBAAiB,aAAa;AACvC,aAAS,iBAAiB,eAAe,oBAAoB,IAAI;AACjE,aAAS,iBAAiB,eAAe,oBAAoB,IAAI;AACjE,aAAS,iBAAiB,aAAa,oBAAoB,IAAI;AAAA,EACjE,OAAO;AACL,aAAS,iBAAiB,aAAa,oBAAoB,IAAI;AAC/D,aAAS,iBAAiB,aAAa,oBAAoB,IAAI;AAC/D,aAAS,iBAAiB,WAAW,oBAAoB,IAAI;AAAA,EAC/D;AAEA,4BAA0B;AAC5B;AAEe,SAAR,kBAEL;AACA,yBAAuB;AACvB,QAAM,CAAC,qBAAqB,eAAe,IAAI,SAAS,eAAe,CAAC;AACxE,YAAU,MAAM;AACd,UAAM,UAAU,MAAM;AACpB,sBAAgB,eAAe,CAAC;AAAA,IAClC;AAEA,mBAAe,IAAI,OAAO;AAC1B,WAAO,MAAM;AACX,qBAAe,OAAO,OAAO;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO,EAAE,gBAAgB,oBAAoB;AAC/C;","names":[]}
|