@fluid-app/portal-sdk 0.1.431 → 0.1.433
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/{CalendarWidget-p7aJuEww.mjs → CalendarWidget-BLB9E5HJ.mjs} +35 -9
- package/dist/CalendarWidget-BLB9E5HJ.mjs.map +1 -0
- package/dist/{CalendarWidget-BwaTR9fW.cjs → CalendarWidget-Dg-GyjvY.cjs} +35 -9
- package/dist/CalendarWidget-Dg-GyjvY.cjs.map +1 -0
- package/dist/{FluidProvider-Az0jKZ6E.mjs → FluidProvider-CswQtBCl.mjs} +37 -37
- package/dist/{FluidProvider-Az0jKZ6E.mjs.map → FluidProvider-CswQtBCl.mjs.map} +1 -1
- package/dist/{FluidProvider-I2595J7-.cjs → FluidProvider-D5hwNdS_.cjs} +37 -37
- package/dist/{FluidProvider-I2595J7-.cjs.map → FluidProvider-D5hwNdS_.cjs.map} +1 -1
- package/dist/{MessagingScreen-CYWf86xZ.cjs → MessagingScreen-BcZCQrvY.cjs} +3 -3
- package/dist/{MessagingScreen-StGR7Zqq.mjs → MessagingScreen-XnkjjPHe.mjs} +2 -2
- package/dist/{MessagingScreen-StGR7Zqq.mjs.map → MessagingScreen-XnkjjPHe.mjs.map} +1 -1
- package/dist/{MessagingScreen-DW-tlVo5.cjs → MessagingScreen-aITqvggu.cjs} +2 -2
- package/dist/{MessagingScreen-DW-tlVo5.cjs.map → MessagingScreen-aITqvggu.cjs.map} +1 -1
- package/dist/{MessagingScreen-TU7Ksryn.mjs → MessagingScreen-ejDib6ar.mjs} +3 -3
- package/dist/{OrdersScreen-DFjMoAjM.mjs → OrdersScreen-3noAB3V0.mjs} +3 -3
- package/dist/{OrdersScreen-HrLHPACs.mjs → OrdersScreen-9Z-E37j-.mjs} +2 -2
- package/dist/{OrdersScreen-HrLHPACs.mjs.map → OrdersScreen-9Z-E37j-.mjs.map} +1 -1
- package/dist/{OrdersScreen-DBw4KPeH.cjs → OrdersScreen-B54rTEGH.cjs} +3 -3
- package/dist/{OrdersScreen-BAahqIYc.cjs → OrdersScreen-CouE0MT7.cjs} +2 -2
- package/dist/{OrdersScreen-BAahqIYc.cjs.map → OrdersScreen-CouE0MT7.cjs.map} +1 -1
- package/dist/{ProfileScreen-8UvsI1H7.cjs → ProfileScreen-CA9d10n5.cjs} +4 -4
- package/dist/{ProfileScreen-DRmDn0NI.cjs → ProfileScreen-CH1kda7_.cjs} +3 -3
- package/dist/{ProfileScreen-DRmDn0NI.cjs.map → ProfileScreen-CH1kda7_.cjs.map} +1 -1
- package/dist/{ProfileScreen-D2LB9Qbu.mjs → ProfileScreen-Fs4ec6-G.mjs} +4 -4
- package/dist/{ProfileScreen-D0fJLZw_.mjs → ProfileScreen-bKhVADhS.mjs} +3 -3
- package/dist/{ProfileScreen-D0fJLZw_.mjs.map → ProfileScreen-bKhVADhS.mjs.map} +1 -1
- package/dist/{ShopScreen-p4-DEKCr.cjs → ShopScreen-5sc3-yXc.cjs} +3 -3
- package/dist/{ShopScreen-ViVrWd3I.mjs → ShopScreen-BNGbkOuj.mjs} +2 -2
- package/dist/{ShopScreen-ViVrWd3I.mjs.map → ShopScreen-BNGbkOuj.mjs.map} +1 -1
- package/dist/{ShopScreen-lt0FS5D4.cjs → ShopScreen-Cx-wt9w2.cjs} +2 -2
- package/dist/{ShopScreen-lt0FS5D4.cjs.map → ShopScreen-Cx-wt9w2.cjs.map} +1 -1
- package/dist/{ShopScreen-DnOfCHon.mjs → ShopScreen-bLpx5NtE.mjs} +3 -3
- package/dist/{SubscriptionsScreen-CSF1N8RN.mjs → SubscriptionsScreen-CJJe0giN.mjs} +4 -4
- package/dist/{SubscriptionsScreen-Cv8hs3Iy.cjs → SubscriptionsScreen-CWXKytKn.cjs} +4 -4
- package/dist/{SubscriptionsScreen-Btlp-AvN.cjs → SubscriptionsScreen-DiLP88lX.cjs} +3 -3
- package/dist/{SubscriptionsScreen-Btlp-AvN.cjs.map → SubscriptionsScreen-DiLP88lX.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-Cqg4EFmq.mjs → SubscriptionsScreen-DpOk1RbV.mjs} +3 -3
- package/dist/{SubscriptionsScreen-Cqg4EFmq.mjs.map → SubscriptionsScreen-DpOk1RbV.mjs.map} +1 -1
- package/dist/{ar-FrmG501Y.cjs → ar-CAmEmFAu.cjs} +21 -4
- package/dist/ar-CAmEmFAu.cjs.map +1 -0
- package/dist/{ar-3uSZ8G_e.mjs → ar-DlsqYplx.mjs} +21 -4
- package/dist/ar-DlsqYplx.mjs.map +1 -0
- package/dist/{bg-CB5phNj0.mjs → bg-BFlDtnNn.mjs} +21 -4
- package/dist/bg-BFlDtnNn.mjs.map +1 -0
- package/dist/{bg-C18bYKcU.cjs → bg-uT4UFKOI.cjs} +21 -4
- package/dist/bg-uT4UFKOI.cjs.map +1 -0
- package/dist/{bn-C-JE-DwK.cjs → bn-Bg6Hl0-y.cjs} +21 -4
- package/dist/bn-Bg6Hl0-y.cjs.map +1 -0
- package/dist/{bn-DNjdrA7P.mjs → bn-D_rfyPAa.mjs} +21 -4
- package/dist/bn-D_rfyPAa.mjs.map +1 -0
- package/dist/{cs-CaIIbpEG.cjs → cs-DzmEhcPu.cjs} +21 -4
- package/dist/cs-DzmEhcPu.cjs.map +1 -0
- package/dist/{cs-CpiCTYad.mjs → cs-oQpK7FCi.mjs} +21 -4
- package/dist/cs-oQpK7FCi.mjs.map +1 -0
- package/dist/{da-CI5APb2J.cjs → da-DQ9hhHhu.cjs} +21 -4
- package/dist/da-DQ9hhHhu.cjs.map +1 -0
- package/dist/{da-CmQ917Hg.mjs → da-DkRZG8Tp.mjs} +21 -4
- package/dist/da-DkRZG8Tp.mjs.map +1 -0
- package/dist/{de-D33h4rtj.cjs → de-DmIk2oj6.cjs} +21 -4
- package/dist/de-DmIk2oj6.cjs.map +1 -0
- package/dist/{de-Di18YqWg.mjs → de-DsFUnrRR.mjs} +21 -4
- package/dist/de-DsFUnrRR.mjs.map +1 -0
- package/dist/{el-Buhn6jgg.cjs → el-BReJ5sHz.cjs} +21 -4
- package/dist/el-BReJ5sHz.cjs.map +1 -0
- package/dist/{el-D1_JBwgO.mjs → el-C3dnLBkz.mjs} +21 -4
- package/dist/el-C3dnLBkz.mjs.map +1 -0
- package/dist/{es-DpZ45Mk2.cjs → es-DmNJyINR.cjs} +21 -4
- package/dist/es-DmNJyINR.cjs.map +1 -0
- package/dist/{es-DACGH813.mjs → es-YCZUrpcj.mjs} +21 -4
- package/dist/es-YCZUrpcj.mjs.map +1 -0
- package/dist/{fi-CUO0SZY_.mjs → fi-D_VZLXUP.mjs} +21 -4
- package/dist/fi-D_VZLXUP.mjs.map +1 -0
- package/dist/{fi-BCru31Xl.cjs → fi-dMreNEno.cjs} +21 -4
- package/dist/fi-dMreNEno.cjs.map +1 -0
- package/dist/{fr-D1-Whp2m.mjs → fr-D0SoN9vu.mjs} +21 -4
- package/dist/fr-D0SoN9vu.mjs.map +1 -0
- package/dist/{fr-LvEyMEJl.cjs → fr-zGhdL6St.cjs} +21 -4
- package/dist/fr-zGhdL6St.cjs.map +1 -0
- package/dist/{he-BZ6bjo2V.cjs → he-BEfgopIF.cjs} +21 -4
- package/dist/he-BEfgopIF.cjs.map +1 -0
- package/dist/{he-BK_Eu176.mjs → he-DSQLntA5.mjs} +21 -4
- package/dist/he-DSQLntA5.mjs.map +1 -0
- package/dist/{hi-DHVNGHbH.cjs → hi-CGUVuso2.cjs} +21 -4
- package/dist/hi-CGUVuso2.cjs.map +1 -0
- package/dist/{hi-Bo9fYRtk.mjs → hi-DdBniA9e.mjs} +21 -4
- package/dist/hi-DdBniA9e.mjs.map +1 -0
- package/dist/{hr-D4YiTMsy.cjs → hr-B95ysQAA.cjs} +21 -4
- package/dist/hr-B95ysQAA.cjs.map +1 -0
- package/dist/{hr-Dw-qcTCg.mjs → hr-K2wQtmh_.mjs} +21 -4
- package/dist/hr-K2wQtmh_.mjs.map +1 -0
- package/dist/{hu-C1oJdjsP.cjs → hu-2ReM8v16.cjs} +21 -4
- package/dist/hu-2ReM8v16.cjs.map +1 -0
- package/dist/{hu-BDnjwXID.mjs → hu-9XXRTN2q.mjs} +21 -4
- package/dist/hu-9XXRTN2q.mjs.map +1 -0
- package/dist/{id-1k9OQNZZ.mjs → id-CLZhoZCd.mjs} +21 -4
- package/dist/id-CLZhoZCd.mjs.map +1 -0
- package/dist/{id-BLZVRQ49.cjs → id-DDFh4EVq.cjs} +21 -4
- package/dist/id-DDFh4EVq.cjs.map +1 -0
- package/dist/index.cjs +19 -19
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +19 -19
- package/dist/{it-BE9WXqIV.mjs → it-BHBYlxPe.mjs} +21 -4
- package/dist/it-BHBYlxPe.mjs.map +1 -0
- package/dist/{it-CstYOuIW.cjs → it-SOIAkKYr.cjs} +21 -4
- package/dist/it-SOIAkKYr.cjs.map +1 -0
- package/dist/{ja-C0FIALOp.mjs → ja-Byj698Qb.mjs} +21 -4
- package/dist/ja-Byj698Qb.mjs.map +1 -0
- package/dist/{ja-CR1whyhj.cjs → ja-hUXz_cTS.cjs} +21 -4
- package/dist/ja-hUXz_cTS.cjs.map +1 -0
- package/dist/{ko-CaNyl8hW.mjs → ko-DwXPyFvy.mjs} +21 -4
- package/dist/ko-DwXPyFvy.mjs.map +1 -0
- package/dist/{ko-BWk_aIba.cjs → ko-Ku_ab0qC.cjs} +21 -4
- package/dist/ko-Ku_ab0qC.cjs.map +1 -0
- package/dist/{ms-B5BimWmZ.cjs → ms-D0grxBO7.cjs} +21 -4
- package/dist/ms-D0grxBO7.cjs.map +1 -0
- package/dist/{ms-C9RpPVuX.mjs → ms-DmX8XKCi.mjs} +21 -4
- package/dist/ms-DmX8XKCi.mjs.map +1 -0
- package/dist/{nl-BP_ufoXl.mjs → nl-M8ZEk6dD.mjs} +21 -4
- package/dist/nl-M8ZEk6dD.mjs.map +1 -0
- package/dist/{nl-_sLCTeNe.cjs → nl-yr1z6YnW.cjs} +21 -4
- package/dist/nl-yr1z6YnW.cjs.map +1 -0
- package/dist/{no-ZsZmcqZu.mjs → no-D56y_Sfx.mjs} +21 -4
- package/dist/no-D56y_Sfx.mjs.map +1 -0
- package/dist/{no-CYIBuy-n.cjs → no-k0HiApHI.cjs} +21 -4
- package/dist/no-k0HiApHI.cjs.map +1 -0
- package/dist/{pl-BwmI0ZYN.cjs → pl-CDzLHbPb.cjs} +21 -4
- package/dist/pl-CDzLHbPb.cjs.map +1 -0
- package/dist/{pl-AxbzgTHq.mjs → pl-_eJMsSuQ.mjs} +21 -4
- package/dist/pl-_eJMsSuQ.mjs.map +1 -0
- package/dist/preview/preview-entry.cjs +3 -3
- package/dist/preview/preview-entry.mjs +3 -3
- package/dist/{pt-DqQ-WqYG.mjs → pt-BxcbK0Hr.mjs} +21 -4
- package/dist/pt-BxcbK0Hr.mjs.map +1 -0
- package/dist/{pt-B8s6YSKh.cjs → pt-CRTGFbZR.cjs} +21 -4
- package/dist/pt-CRTGFbZR.cjs.map +1 -0
- package/dist/{ro-jwnXK7r6.mjs → ro-CtwyqQxx.mjs} +21 -4
- package/dist/ro-CtwyqQxx.mjs.map +1 -0
- package/dist/{ro-DM7VWfi5.cjs → ro-Gx5x2I2C.cjs} +21 -4
- package/dist/ro-Gx5x2I2C.cjs.map +1 -0
- package/dist/{ru-CbCHAGw1.mjs → ru-C76Nq3LX.mjs} +21 -4
- package/dist/ru-C76Nq3LX.mjs.map +1 -0
- package/dist/{ru-BKbvniFk.cjs → ru-DiYHGl-7.cjs} +21 -4
- package/dist/ru-DiYHGl-7.cjs.map +1 -0
- package/dist/{sk-DK5gT92l.mjs → sk-BNlRgiZ3.mjs} +21 -4
- package/dist/sk-BNlRgiZ3.mjs.map +1 -0
- package/dist/{sk-AsHz2fGN.cjs → sk-ChlvqQ_w.cjs} +21 -4
- package/dist/sk-ChlvqQ_w.cjs.map +1 -0
- package/dist/{sv-ct9pntYI.cjs → sv-5fpanfxd.cjs} +21 -4
- package/dist/sv-5fpanfxd.cjs.map +1 -0
- package/dist/{sv-DGftGcTr.mjs → sv-DcbGsZjc.mjs} +21 -4
- package/dist/sv-DcbGsZjc.mjs.map +1 -0
- package/dist/{th-DfWVtECC.mjs → th-CiIWgALY.mjs} +21 -4
- package/dist/th-CiIWgALY.mjs.map +1 -0
- package/dist/{th-C5WK4o0E.cjs → th-Dw36b676.cjs} +21 -4
- package/dist/th-Dw36b676.cjs.map +1 -0
- package/dist/{tl-BxeQBPQL.mjs → tl-B46EKnqj.mjs} +21 -4
- package/dist/tl-B46EKnqj.mjs.map +1 -0
- package/dist/{tl-Cs1J0sih.cjs → tl-D3da0qBA.cjs} +21 -4
- package/dist/tl-D3da0qBA.cjs.map +1 -0
- package/dist/{tr-CaxZDK8t.cjs → tr-BZJeXiNe.cjs} +21 -4
- package/dist/tr-BZJeXiNe.cjs.map +1 -0
- package/dist/{tr-B0p5SzwS.mjs → tr-sswgYpjh.mjs} +21 -4
- package/dist/tr-sswgYpjh.mjs.map +1 -0
- package/dist/{uk-XRR635Pj.mjs → uk-D3eLX2Tg.mjs} +21 -4
- package/dist/uk-D3eLX2Tg.mjs.map +1 -0
- package/dist/{uk-D05U8Q8x.cjs → uk-DF3X84Jd.cjs} +21 -4
- package/dist/uk-DF3X84Jd.cjs.map +1 -0
- package/dist/{use-portal-card-add-3ds-flow-BFOo474H.mjs → use-portal-card-add-3ds-flow-DyHiy0Wr.mjs} +2 -2
- package/dist/{use-portal-card-add-3ds-flow-BFOo474H.mjs.map → use-portal-card-add-3ds-flow-DyHiy0Wr.mjs.map} +1 -1
- package/dist/{use-portal-card-add-3ds-flow-nh9OLABz.cjs → use-portal-card-add-3ds-flow-KJYm0WRh.cjs} +2 -2
- package/dist/{use-portal-card-add-3ds-flow-nh9OLABz.cjs.map → use-portal-card-add-3ds-flow-KJYm0WRh.cjs.map} +1 -1
- package/dist/{vi-DPiwJL5Q.mjs → vi-BqEDliKZ.mjs} +21 -4
- package/dist/vi-BqEDliKZ.mjs.map +1 -0
- package/dist/{vi-D9B6oQ-P.cjs → vi-CU2CA2a0.cjs} +21 -4
- package/dist/vi-CU2CA2a0.cjs.map +1 -0
- package/dist/{widget-package-utils-DDYetkJe.mjs → widget-package-utils-CTOExvAX.mjs} +2 -2
- package/dist/{widget-package-utils-DDYetkJe.mjs.map → widget-package-utils-CTOExvAX.mjs.map} +1 -1
- package/dist/{widget-package-utils-Bu8o31lx.cjs → widget-package-utils-WB2Uy8C1.cjs} +2 -2
- package/dist/{widget-package-utils-Bu8o31lx.cjs.map → widget-package-utils-WB2Uy8C1.cjs.map} +1 -1
- package/dist/{zh_CN-C8sCT37D.mjs → zh_CN-DIErb6zW.mjs} +21 -4
- package/dist/zh_CN-DIErb6zW.mjs.map +1 -0
- package/dist/{zh_CN-Blrl6HJM.cjs → zh_CN-x4HX0J4K.cjs} +21 -4
- package/dist/zh_CN-x4HX0J4K.cjs.map +1 -0
- package/dist/{zh_TW-C9ACpH1I.mjs → zh_TW-BN9QwXR2.mjs} +21 -4
- package/dist/zh_TW-BN9QwXR2.mjs.map +1 -0
- package/dist/{zh_TW-r64T5KHZ.cjs → zh_TW-BV-O9qSP.cjs} +21 -4
- package/dist/zh_TW-BV-O9qSP.cjs.map +1 -0
- package/package.json +18 -18
- package/dist/CalendarWidget-BwaTR9fW.cjs.map +0 -1
- package/dist/CalendarWidget-p7aJuEww.mjs.map +0 -1
- package/dist/ar-3uSZ8G_e.mjs.map +0 -1
- package/dist/ar-FrmG501Y.cjs.map +0 -1
- package/dist/bg-C18bYKcU.cjs.map +0 -1
- package/dist/bg-CB5phNj0.mjs.map +0 -1
- package/dist/bn-C-JE-DwK.cjs.map +0 -1
- package/dist/bn-DNjdrA7P.mjs.map +0 -1
- package/dist/cs-CaIIbpEG.cjs.map +0 -1
- package/dist/cs-CpiCTYad.mjs.map +0 -1
- package/dist/da-CI5APb2J.cjs.map +0 -1
- package/dist/da-CmQ917Hg.mjs.map +0 -1
- package/dist/de-D33h4rtj.cjs.map +0 -1
- package/dist/de-Di18YqWg.mjs.map +0 -1
- package/dist/el-Buhn6jgg.cjs.map +0 -1
- package/dist/el-D1_JBwgO.mjs.map +0 -1
- package/dist/es-DACGH813.mjs.map +0 -1
- package/dist/es-DpZ45Mk2.cjs.map +0 -1
- package/dist/fi-BCru31Xl.cjs.map +0 -1
- package/dist/fi-CUO0SZY_.mjs.map +0 -1
- package/dist/fr-D1-Whp2m.mjs.map +0 -1
- package/dist/fr-LvEyMEJl.cjs.map +0 -1
- package/dist/he-BK_Eu176.mjs.map +0 -1
- package/dist/he-BZ6bjo2V.cjs.map +0 -1
- package/dist/hi-Bo9fYRtk.mjs.map +0 -1
- package/dist/hi-DHVNGHbH.cjs.map +0 -1
- package/dist/hr-D4YiTMsy.cjs.map +0 -1
- package/dist/hr-Dw-qcTCg.mjs.map +0 -1
- package/dist/hu-BDnjwXID.mjs.map +0 -1
- package/dist/hu-C1oJdjsP.cjs.map +0 -1
- package/dist/id-1k9OQNZZ.mjs.map +0 -1
- package/dist/id-BLZVRQ49.cjs.map +0 -1
- package/dist/it-BE9WXqIV.mjs.map +0 -1
- package/dist/it-CstYOuIW.cjs.map +0 -1
- package/dist/ja-C0FIALOp.mjs.map +0 -1
- package/dist/ja-CR1whyhj.cjs.map +0 -1
- package/dist/ko-BWk_aIba.cjs.map +0 -1
- package/dist/ko-CaNyl8hW.mjs.map +0 -1
- package/dist/ms-B5BimWmZ.cjs.map +0 -1
- package/dist/ms-C9RpPVuX.mjs.map +0 -1
- package/dist/nl-BP_ufoXl.mjs.map +0 -1
- package/dist/nl-_sLCTeNe.cjs.map +0 -1
- package/dist/no-CYIBuy-n.cjs.map +0 -1
- package/dist/no-ZsZmcqZu.mjs.map +0 -1
- package/dist/pl-AxbzgTHq.mjs.map +0 -1
- package/dist/pl-BwmI0ZYN.cjs.map +0 -1
- package/dist/pt-B8s6YSKh.cjs.map +0 -1
- package/dist/pt-DqQ-WqYG.mjs.map +0 -1
- package/dist/ro-DM7VWfi5.cjs.map +0 -1
- package/dist/ro-jwnXK7r6.mjs.map +0 -1
- package/dist/ru-BKbvniFk.cjs.map +0 -1
- package/dist/ru-CbCHAGw1.mjs.map +0 -1
- package/dist/sk-AsHz2fGN.cjs.map +0 -1
- package/dist/sk-DK5gT92l.mjs.map +0 -1
- package/dist/sv-DGftGcTr.mjs.map +0 -1
- package/dist/sv-ct9pntYI.cjs.map +0 -1
- package/dist/th-C5WK4o0E.cjs.map +0 -1
- package/dist/th-DfWVtECC.mjs.map +0 -1
- package/dist/tl-BxeQBPQL.mjs.map +0 -1
- package/dist/tl-Cs1J0sih.cjs.map +0 -1
- package/dist/tr-B0p5SzwS.mjs.map +0 -1
- package/dist/tr-CaxZDK8t.cjs.map +0 -1
- package/dist/uk-D05U8Q8x.cjs.map +0 -1
- package/dist/uk-XRR635Pj.mjs.map +0 -1
- package/dist/vi-D9B6oQ-P.cjs.map +0 -1
- package/dist/vi-DPiwJL5Q.mjs.map +0 -1
- package/dist/zh_CN-Blrl6HJM.cjs.map +0 -1
- package/dist/zh_CN-C8sCT37D.mjs.map +0 -1
- package/dist/zh_TW-C9ACpH1I.mjs.map +0 -1
- package/dist/zh_TW-r64T5KHZ.cjs.map +0 -1
|
@@ -58,6 +58,8 @@ var zh_CN_default = {
|
|
|
58
58
|
cancel_subscription: "取消订阅",
|
|
59
59
|
cancelled_subscription: "已取消的订阅",
|
|
60
60
|
card_fallback: "卡",
|
|
61
|
+
change_payment_method: "使用其他付款方式",
|
|
62
|
+
checking_failed_cycle_waiver: "检查跳过选项中...",
|
|
61
63
|
choose_orders_to_skip: "选择要跳过的订单数",
|
|
62
64
|
date: "日期",
|
|
63
65
|
date_cancelled: "已取消",
|
|
@@ -74,6 +76,15 @@ var zh_CN_default = {
|
|
|
74
76
|
edit_bill_date_title: "编辑账单日期",
|
|
75
77
|
ending_in: "末位数字 {{last4}}",
|
|
76
78
|
error_occurred: "发生错误",
|
|
79
|
+
failed_cycle_waiver_confirm: "跳过并重新激活",
|
|
80
|
+
failed_cycle_waiver_dialog_description: "您将不被收费,也不会收到漏掉的订单。您的订阅将保持原始计划。",
|
|
81
|
+
failed_cycle_waiver_dialog_title: "跳过漏掉的订单?",
|
|
82
|
+
failed_cycle_waiver_go_back: "返回",
|
|
83
|
+
failed_cycle_waiver_next_bill: "下次账单:{{date}}",
|
|
84
|
+
failed_cycle_waiver_next_bill_and_ship: "下次账单及发货:{{date}}",
|
|
85
|
+
failed_cycle_waiver_next_ship: "下次发货:{{date}}",
|
|
86
|
+
failed_cycle_waiver_state_changed: "您的订阅已更改。请查看最新的恢复选项并重试。",
|
|
87
|
+
failed_cycle_waiver_succeeded: "漏掉的订单已跳过。您的订阅已重新激活。",
|
|
77
88
|
failed_to_cancel: "取消订阅失败",
|
|
78
89
|
failed_to_load_subscription: "加载订阅失败:{{message}}",
|
|
79
90
|
failed_to_pause: "暂停订阅失败",
|
|
@@ -145,6 +156,7 @@ var zh_CN_default = {
|
|
|
145
156
|
loading_ellipsis: "...",
|
|
146
157
|
month_plural: "{{count}} 个月",
|
|
147
158
|
month_singular: "{{count}} 个月",
|
|
159
|
+
more_subscription_actions: "更多订阅操作",
|
|
148
160
|
next: "下一个",
|
|
149
161
|
next_bill_amount: "下一个账单金额",
|
|
150
162
|
next_bill_date: "下一个账单日期",
|
|
@@ -164,8 +176,8 @@ var zh_CN_default = {
|
|
|
164
176
|
other_subs_color_aria: "颜色",
|
|
165
177
|
other_subs_product: "产品",
|
|
166
178
|
pagination: "分页",
|
|
167
|
-
past_due_banner_body: "
|
|
168
|
-
past_due_banner_body_retry_failed: "上次重试未成功。我们将在 {{when}}
|
|
179
|
+
past_due_banner_body: "您的付款方式可能已过期或被拒绝。请重试付款或使用其他方式来继续您的订阅。",
|
|
180
|
+
past_due_banner_body_retry_failed: "上次重试未成功。我们将在 {{when}} 自动重试。您也可以使用其他付款方式。",
|
|
169
181
|
past_due_banner_body_retry_scheduled: "我们正在重新尝试您的付款。处理完成后我们会更新状态。",
|
|
170
182
|
past_due_banner_heading: "我们无法处理您的付款",
|
|
171
183
|
past_due_banner_heading_for_product: "我们无法处理您对 {{product}} 的付款",
|
|
@@ -192,7 +204,7 @@ var zh_CN_default = {
|
|
|
192
204
|
payment_failed_on: "付款失败于",
|
|
193
205
|
payment_method: "付款方式",
|
|
194
206
|
payment_retry_failed: "该付款被拒绝。请尝试使用其他卡片来重新激活您的订阅。",
|
|
195
|
-
payment_retry_processing: "
|
|
207
|
+
payment_retry_processing: "我们正在处理您的付款。状态将在短时间内更新。",
|
|
196
208
|
payment_retry_succeeded: "付款已确认 — 您的订阅已重新激活。",
|
|
197
209
|
previous: "上一页",
|
|
198
210
|
price: "价格",
|
|
@@ -215,6 +227,9 @@ var zh_CN_default = {
|
|
|
215
227
|
resume_dialog_description: "选择订阅应恢复的日期。",
|
|
216
228
|
resume_dialog_title: "恢复订阅",
|
|
217
229
|
resume_subscription: "恢复订阅",
|
|
230
|
+
retry_payment: "重试付款",
|
|
231
|
+
retry_saved_payment: "重试 {{method}}",
|
|
232
|
+
retrying_payment: "付款中...",
|
|
218
233
|
search_placeholder: "搜索订阅...",
|
|
219
234
|
select: "选择",
|
|
220
235
|
select_duration: "选择时长",
|
|
@@ -233,6 +248,7 @@ var zh_CN_default = {
|
|
|
233
248
|
tax_shipping_note: "不包括运费、税费、关税或任何适用的折扣。",
|
|
234
249
|
total: "总计",
|
|
235
250
|
total_label: "总计",
|
|
251
|
+
unable_to_retry_payment: "我们无法重试您的付款。请使用其他付款方式。",
|
|
236
252
|
unit_day: "天",
|
|
237
253
|
unit_days: "天",
|
|
238
254
|
unit_month: "个月",
|
|
@@ -244,10 +260,11 @@ var zh_CN_default = {
|
|
|
244
260
|
unknown_status: "未知",
|
|
245
261
|
update_payment_method_action: "更新付款方式",
|
|
246
262
|
update_your_card: "更新您的卡片",
|
|
263
|
+
waive_failed_cycle: "跳过此付款并重新激活",
|
|
247
264
|
your_other_subscriptions: "您的其他订阅",
|
|
248
265
|
your_upcoming_order: "您的即将到来的订单"
|
|
249
266
|
};
|
|
250
267
|
//#endregion
|
|
251
268
|
export { zh_CN_default as default };
|
|
252
269
|
|
|
253
|
-
//# sourceMappingURL=zh_CN-
|
|
270
|
+
//# sourceMappingURL=zh_CN-DIErb6zW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh_CN-DIErb6zW.mjs","names":[],"sources":["../../../subscriptions/core/src/locale/zh_CN.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -59,6 +59,8 @@ var zh_CN_default = {
|
|
|
59
59
|
cancel_subscription: "取消订阅",
|
|
60
60
|
cancelled_subscription: "已取消的订阅",
|
|
61
61
|
card_fallback: "卡",
|
|
62
|
+
change_payment_method: "使用其他付款方式",
|
|
63
|
+
checking_failed_cycle_waiver: "检查跳过选项中...",
|
|
62
64
|
choose_orders_to_skip: "选择要跳过的订单数",
|
|
63
65
|
date: "日期",
|
|
64
66
|
date_cancelled: "已取消",
|
|
@@ -75,6 +77,15 @@ var zh_CN_default = {
|
|
|
75
77
|
edit_bill_date_title: "编辑账单日期",
|
|
76
78
|
ending_in: "末位数字 {{last4}}",
|
|
77
79
|
error_occurred: "发生错误",
|
|
80
|
+
failed_cycle_waiver_confirm: "跳过并重新激活",
|
|
81
|
+
failed_cycle_waiver_dialog_description: "您将不被收费,也不会收到漏掉的订单。您的订阅将保持原始计划。",
|
|
82
|
+
failed_cycle_waiver_dialog_title: "跳过漏掉的订单?",
|
|
83
|
+
failed_cycle_waiver_go_back: "返回",
|
|
84
|
+
failed_cycle_waiver_next_bill: "下次账单:{{date}}",
|
|
85
|
+
failed_cycle_waiver_next_bill_and_ship: "下次账单及发货:{{date}}",
|
|
86
|
+
failed_cycle_waiver_next_ship: "下次发货:{{date}}",
|
|
87
|
+
failed_cycle_waiver_state_changed: "您的订阅已更改。请查看最新的恢复选项并重试。",
|
|
88
|
+
failed_cycle_waiver_succeeded: "漏掉的订单已跳过。您的订阅已重新激活。",
|
|
78
89
|
failed_to_cancel: "取消订阅失败",
|
|
79
90
|
failed_to_load_subscription: "加载订阅失败:{{message}}",
|
|
80
91
|
failed_to_pause: "暂停订阅失败",
|
|
@@ -146,6 +157,7 @@ var zh_CN_default = {
|
|
|
146
157
|
loading_ellipsis: "...",
|
|
147
158
|
month_plural: "{{count}} 个月",
|
|
148
159
|
month_singular: "{{count}} 个月",
|
|
160
|
+
more_subscription_actions: "更多订阅操作",
|
|
149
161
|
next: "下一个",
|
|
150
162
|
next_bill_amount: "下一个账单金额",
|
|
151
163
|
next_bill_date: "下一个账单日期",
|
|
@@ -165,8 +177,8 @@ var zh_CN_default = {
|
|
|
165
177
|
other_subs_color_aria: "颜色",
|
|
166
178
|
other_subs_product: "产品",
|
|
167
179
|
pagination: "分页",
|
|
168
|
-
past_due_banner_body: "
|
|
169
|
-
past_due_banner_body_retry_failed: "上次重试未成功。我们将在 {{when}}
|
|
180
|
+
past_due_banner_body: "您的付款方式可能已过期或被拒绝。请重试付款或使用其他方式来继续您的订阅。",
|
|
181
|
+
past_due_banner_body_retry_failed: "上次重试未成功。我们将在 {{when}} 自动重试。您也可以使用其他付款方式。",
|
|
170
182
|
past_due_banner_body_retry_scheduled: "我们正在重新尝试您的付款。处理完成后我们会更新状态。",
|
|
171
183
|
past_due_banner_heading: "我们无法处理您的付款",
|
|
172
184
|
past_due_banner_heading_for_product: "我们无法处理您对 {{product}} 的付款",
|
|
@@ -193,7 +205,7 @@ var zh_CN_default = {
|
|
|
193
205
|
payment_failed_on: "付款失败于",
|
|
194
206
|
payment_method: "付款方式",
|
|
195
207
|
payment_retry_failed: "该付款被拒绝。请尝试使用其他卡片来重新激活您的订阅。",
|
|
196
|
-
payment_retry_processing: "
|
|
208
|
+
payment_retry_processing: "我们正在处理您的付款。状态将在短时间内更新。",
|
|
197
209
|
payment_retry_succeeded: "付款已确认 — 您的订阅已重新激活。",
|
|
198
210
|
previous: "上一页",
|
|
199
211
|
price: "价格",
|
|
@@ -216,6 +228,9 @@ var zh_CN_default = {
|
|
|
216
228
|
resume_dialog_description: "选择订阅应恢复的日期。",
|
|
217
229
|
resume_dialog_title: "恢复订阅",
|
|
218
230
|
resume_subscription: "恢复订阅",
|
|
231
|
+
retry_payment: "重试付款",
|
|
232
|
+
retry_saved_payment: "重试 {{method}}",
|
|
233
|
+
retrying_payment: "付款中...",
|
|
219
234
|
search_placeholder: "搜索订阅...",
|
|
220
235
|
select: "选择",
|
|
221
236
|
select_duration: "选择时长",
|
|
@@ -234,6 +249,7 @@ var zh_CN_default = {
|
|
|
234
249
|
tax_shipping_note: "不包括运费、税费、关税或任何适用的折扣。",
|
|
235
250
|
total: "总计",
|
|
236
251
|
total_label: "总计",
|
|
252
|
+
unable_to_retry_payment: "我们无法重试您的付款。请使用其他付款方式。",
|
|
237
253
|
unit_day: "天",
|
|
238
254
|
unit_days: "天",
|
|
239
255
|
unit_month: "个月",
|
|
@@ -245,6 +261,7 @@ var zh_CN_default = {
|
|
|
245
261
|
unknown_status: "未知",
|
|
246
262
|
update_payment_method_action: "更新付款方式",
|
|
247
263
|
update_your_card: "更新您的卡片",
|
|
264
|
+
waive_failed_cycle: "跳过此付款并重新激活",
|
|
248
265
|
your_other_subscriptions: "您的其他订阅",
|
|
249
266
|
your_upcoming_order: "您的即将到来的订单"
|
|
250
267
|
};
|
|
@@ -256,4 +273,4 @@ Object.defineProperty(exports, "default", {
|
|
|
256
273
|
}
|
|
257
274
|
});
|
|
258
275
|
|
|
259
|
-
//# sourceMappingURL=zh_CN-
|
|
276
|
+
//# sourceMappingURL=zh_CN-x4HX0J4K.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh_CN-x4HX0J4K.cjs","names":[],"sources":["../../../subscriptions/core/src/locale/zh_CN.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -58,6 +58,8 @@ var zh_TW_default = {
|
|
|
58
58
|
cancel_subscription: "取消訂閱",
|
|
59
59
|
cancelled_subscription: "已取消訂閱",
|
|
60
60
|
card_fallback: "卡片",
|
|
61
|
+
change_payment_method: "使用其他付款方式",
|
|
62
|
+
checking_failed_cycle_waiver: "檢查跳過選項中...",
|
|
61
63
|
choose_orders_to_skip: "選擇要略過的訂單數量",
|
|
62
64
|
date: "日期",
|
|
63
65
|
date_cancelled: "已取消",
|
|
@@ -74,6 +76,15 @@ var zh_TW_default = {
|
|
|
74
76
|
edit_bill_date_title: "編輯帳單日期",
|
|
75
77
|
ending_in: "末位 {{last4}}",
|
|
76
78
|
error_occurred: "發生錯誤",
|
|
79
|
+
failed_cycle_waiver_confirm: "跳過並重新啟用",
|
|
80
|
+
failed_cycle_waiver_dialog_description: "您將不會被扣費或收到遺漏的訂單。您的訂閱將保持原始時間表。",
|
|
81
|
+
failed_cycle_waiver_dialog_title: "跳過遺漏的訂單?",
|
|
82
|
+
failed_cycle_waiver_go_back: "返回",
|
|
83
|
+
failed_cycle_waiver_next_bill: "下次計費:{{date}}",
|
|
84
|
+
failed_cycle_waiver_next_bill_and_ship: "下次計費和寄送:{{date}}",
|
|
85
|
+
failed_cycle_waiver_next_ship: "下次寄送:{{date}}",
|
|
86
|
+
failed_cycle_waiver_state_changed: "您的訂閱已變更。請檢查最新的恢復選項並重試。",
|
|
87
|
+
failed_cycle_waiver_succeeded: "遺漏的訂單已跳過。您的訂閱已重新啟用。",
|
|
77
88
|
failed_to_cancel: "取消訂閱失敗",
|
|
78
89
|
failed_to_load_subscription: "載入訂閱失敗:{{message}}",
|
|
79
90
|
failed_to_pause: "暫停訂閱失敗",
|
|
@@ -145,6 +156,7 @@ var zh_TW_default = {
|
|
|
145
156
|
loading_ellipsis: "...",
|
|
146
157
|
month_plural: "{{count}} 個月",
|
|
147
158
|
month_singular: "{{count}} 個月",
|
|
159
|
+
more_subscription_actions: "更多訂閱操作",
|
|
148
160
|
next: "下一步",
|
|
149
161
|
next_bill_amount: "下次帳單金額",
|
|
150
162
|
next_bill_date: "下次帳單日期",
|
|
@@ -164,8 +176,8 @@ var zh_TW_default = {
|
|
|
164
176
|
other_subs_color_aria: "顏色",
|
|
165
177
|
other_subs_product: "產品",
|
|
166
178
|
pagination: "分頁",
|
|
167
|
-
past_due_banner_body: "
|
|
168
|
-
past_due_banner_body_retry_failed: "
|
|
179
|
+
past_due_banner_body: "您的付款方式可能已過期或被拒。請重試付款或使用其他方式以繼續您的訂閱。",
|
|
180
|
+
past_due_banner_body_retry_failed: "上次重試未成功。我們將於 {{when}} 自動重試。您也可以使用其他付款方式。",
|
|
169
181
|
past_due_banner_body_retry_scheduled: "我們正在重新嘗試您的付款。處理完成後將更新。",
|
|
170
182
|
past_due_banner_heading: "無法處理您的付款",
|
|
171
183
|
past_due_banner_heading_for_product: "無法處理您對 {{product}} 的付款",
|
|
@@ -192,7 +204,7 @@ var zh_TW_default = {
|
|
|
192
204
|
payment_failed_on: "付款失敗於",
|
|
193
205
|
payment_method: "付款方式",
|
|
194
206
|
payment_retry_failed: "該筆付款遭拒。請嘗試使用不同卡片以重新啟用您的訂閱。",
|
|
195
|
-
payment_retry_processing: "
|
|
207
|
+
payment_retry_processing: "我們正在處理您的付款。狀態將於稍後更新。",
|
|
196
208
|
payment_retry_succeeded: "付款已確認 — 您的訂閱已重新啟用。",
|
|
197
209
|
previous: "上一頁",
|
|
198
210
|
price: "價格",
|
|
@@ -215,6 +227,9 @@ var zh_TW_default = {
|
|
|
215
227
|
resume_dialog_description: "選擇您的訂閱應恢復的日期。",
|
|
216
228
|
resume_dialog_title: "恢復訂閱",
|
|
217
229
|
resume_subscription: "恢復訂閱",
|
|
230
|
+
retry_payment: "重試付款",
|
|
231
|
+
retry_saved_payment: "重試 {{method}}",
|
|
232
|
+
retrying_payment: "付款處理中...",
|
|
218
233
|
search_placeholder: "搜尋訂閱...",
|
|
219
234
|
select: "選擇",
|
|
220
235
|
select_duration: "選擇期間",
|
|
@@ -233,6 +248,7 @@ var zh_TW_default = {
|
|
|
233
248
|
tax_shipping_note: "不包含運費、稅金、關稅或任何適用折扣。",
|
|
234
249
|
total: "總計",
|
|
235
250
|
total_label: "總計",
|
|
251
|
+
unable_to_retry_payment: "無法重試您的付款。請使用其他付款方式。",
|
|
236
252
|
unit_day: "天",
|
|
237
253
|
unit_days: "天",
|
|
238
254
|
unit_month: "個月",
|
|
@@ -244,10 +260,11 @@ var zh_TW_default = {
|
|
|
244
260
|
unknown_status: "未知",
|
|
245
261
|
update_payment_method_action: "更新付款方式",
|
|
246
262
|
update_your_card: "更新您的卡片",
|
|
263
|
+
waive_failed_cycle: "跳過此次付款並重新啟用",
|
|
247
264
|
your_other_subscriptions: "您的其他訂閱",
|
|
248
265
|
your_upcoming_order: "您即將推出的訂單"
|
|
249
266
|
};
|
|
250
267
|
//#endregion
|
|
251
268
|
export { zh_TW_default as default };
|
|
252
269
|
|
|
253
|
-
//# sourceMappingURL=zh_TW-
|
|
270
|
+
//# sourceMappingURL=zh_TW-BN9QwXR2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh_TW-BN9QwXR2.mjs","names":[],"sources":["../../../subscriptions/core/src/locale/zh_TW.json"],"sourcesContent":[""],"mappings":""}
|
|
@@ -59,6 +59,8 @@ var zh_TW_default = {
|
|
|
59
59
|
cancel_subscription: "取消訂閱",
|
|
60
60
|
cancelled_subscription: "已取消訂閱",
|
|
61
61
|
card_fallback: "卡片",
|
|
62
|
+
change_payment_method: "使用其他付款方式",
|
|
63
|
+
checking_failed_cycle_waiver: "檢查跳過選項中...",
|
|
62
64
|
choose_orders_to_skip: "選擇要略過的訂單數量",
|
|
63
65
|
date: "日期",
|
|
64
66
|
date_cancelled: "已取消",
|
|
@@ -75,6 +77,15 @@ var zh_TW_default = {
|
|
|
75
77
|
edit_bill_date_title: "編輯帳單日期",
|
|
76
78
|
ending_in: "末位 {{last4}}",
|
|
77
79
|
error_occurred: "發生錯誤",
|
|
80
|
+
failed_cycle_waiver_confirm: "跳過並重新啟用",
|
|
81
|
+
failed_cycle_waiver_dialog_description: "您將不會被扣費或收到遺漏的訂單。您的訂閱將保持原始時間表。",
|
|
82
|
+
failed_cycle_waiver_dialog_title: "跳過遺漏的訂單?",
|
|
83
|
+
failed_cycle_waiver_go_back: "返回",
|
|
84
|
+
failed_cycle_waiver_next_bill: "下次計費:{{date}}",
|
|
85
|
+
failed_cycle_waiver_next_bill_and_ship: "下次計費和寄送:{{date}}",
|
|
86
|
+
failed_cycle_waiver_next_ship: "下次寄送:{{date}}",
|
|
87
|
+
failed_cycle_waiver_state_changed: "您的訂閱已變更。請檢查最新的恢復選項並重試。",
|
|
88
|
+
failed_cycle_waiver_succeeded: "遺漏的訂單已跳過。您的訂閱已重新啟用。",
|
|
78
89
|
failed_to_cancel: "取消訂閱失敗",
|
|
79
90
|
failed_to_load_subscription: "載入訂閱失敗:{{message}}",
|
|
80
91
|
failed_to_pause: "暫停訂閱失敗",
|
|
@@ -146,6 +157,7 @@ var zh_TW_default = {
|
|
|
146
157
|
loading_ellipsis: "...",
|
|
147
158
|
month_plural: "{{count}} 個月",
|
|
148
159
|
month_singular: "{{count}} 個月",
|
|
160
|
+
more_subscription_actions: "更多訂閱操作",
|
|
149
161
|
next: "下一步",
|
|
150
162
|
next_bill_amount: "下次帳單金額",
|
|
151
163
|
next_bill_date: "下次帳單日期",
|
|
@@ -165,8 +177,8 @@ var zh_TW_default = {
|
|
|
165
177
|
other_subs_color_aria: "顏色",
|
|
166
178
|
other_subs_product: "產品",
|
|
167
179
|
pagination: "分頁",
|
|
168
|
-
past_due_banner_body: "
|
|
169
|
-
past_due_banner_body_retry_failed: "
|
|
180
|
+
past_due_banner_body: "您的付款方式可能已過期或被拒。請重試付款或使用其他方式以繼續您的訂閱。",
|
|
181
|
+
past_due_banner_body_retry_failed: "上次重試未成功。我們將於 {{when}} 自動重試。您也可以使用其他付款方式。",
|
|
170
182
|
past_due_banner_body_retry_scheduled: "我們正在重新嘗試您的付款。處理完成後將更新。",
|
|
171
183
|
past_due_banner_heading: "無法處理您的付款",
|
|
172
184
|
past_due_banner_heading_for_product: "無法處理您對 {{product}} 的付款",
|
|
@@ -193,7 +205,7 @@ var zh_TW_default = {
|
|
|
193
205
|
payment_failed_on: "付款失敗於",
|
|
194
206
|
payment_method: "付款方式",
|
|
195
207
|
payment_retry_failed: "該筆付款遭拒。請嘗試使用不同卡片以重新啟用您的訂閱。",
|
|
196
|
-
payment_retry_processing: "
|
|
208
|
+
payment_retry_processing: "我們正在處理您的付款。狀態將於稍後更新。",
|
|
197
209
|
payment_retry_succeeded: "付款已確認 — 您的訂閱已重新啟用。",
|
|
198
210
|
previous: "上一頁",
|
|
199
211
|
price: "價格",
|
|
@@ -216,6 +228,9 @@ var zh_TW_default = {
|
|
|
216
228
|
resume_dialog_description: "選擇您的訂閱應恢復的日期。",
|
|
217
229
|
resume_dialog_title: "恢復訂閱",
|
|
218
230
|
resume_subscription: "恢復訂閱",
|
|
231
|
+
retry_payment: "重試付款",
|
|
232
|
+
retry_saved_payment: "重試 {{method}}",
|
|
233
|
+
retrying_payment: "付款處理中...",
|
|
219
234
|
search_placeholder: "搜尋訂閱...",
|
|
220
235
|
select: "選擇",
|
|
221
236
|
select_duration: "選擇期間",
|
|
@@ -234,6 +249,7 @@ var zh_TW_default = {
|
|
|
234
249
|
tax_shipping_note: "不包含運費、稅金、關稅或任何適用折扣。",
|
|
235
250
|
total: "總計",
|
|
236
251
|
total_label: "總計",
|
|
252
|
+
unable_to_retry_payment: "無法重試您的付款。請使用其他付款方式。",
|
|
237
253
|
unit_day: "天",
|
|
238
254
|
unit_days: "天",
|
|
239
255
|
unit_month: "個月",
|
|
@@ -245,6 +261,7 @@ var zh_TW_default = {
|
|
|
245
261
|
unknown_status: "未知",
|
|
246
262
|
update_payment_method_action: "更新付款方式",
|
|
247
263
|
update_your_card: "更新您的卡片",
|
|
264
|
+
waive_failed_cycle: "跳過此次付款並重新啟用",
|
|
248
265
|
your_other_subscriptions: "您的其他訂閱",
|
|
249
266
|
your_upcoming_order: "您即將推出的訂單"
|
|
250
267
|
};
|
|
@@ -256,4 +273,4 @@ Object.defineProperty(exports, "default", {
|
|
|
256
273
|
}
|
|
257
274
|
});
|
|
258
275
|
|
|
259
|
-
//# sourceMappingURL=zh_TW-
|
|
276
|
+
//# sourceMappingURL=zh_TW-BV-O9qSP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zh_TW-BV-O9qSP.cjs","names":[],"sources":["../../../subscriptions/core/src/locale/zh_TW.json"],"sourcesContent":[""],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-app/portal-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.433",
|
|
4
4
|
"description": "SDK for building custom Fluid portals",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -87,48 +87,48 @@
|
|
|
87
87
|
"@fluid-app/address-autocomplete": "0.1.0",
|
|
88
88
|
"@fluid-app/address-fields": "0.1.0",
|
|
89
89
|
"@fluid-app/api-client-core": "0.1.0",
|
|
90
|
-
"@fluid-app/auth": "0.1.0",
|
|
91
90
|
"@fluid-app/cart-ui": "0.1.25",
|
|
92
|
-
"@fluid-app/contacts-ui": "0.1.0",
|
|
93
91
|
"@fluid-app/contacts-core": "0.1.0",
|
|
92
|
+
"@fluid-app/auth": "0.1.0",
|
|
93
|
+
"@fluid-app/company-switcher-ui": "0.1.0",
|
|
94
|
+
"@fluid-app/contacts-ui": "0.1.0",
|
|
94
95
|
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
95
96
|
"@fluid-app/file-picker-core": "0.1.0",
|
|
96
|
-
"@fluid-app/company-switcher-ui": "0.1.0",
|
|
97
|
-
"@fluid-app/messaging-api-client": "0.1.0",
|
|
98
97
|
"@fluid-app/fluid-pay-ui": "0.1.0",
|
|
99
|
-
"@fluid-app/i18n": "0.1.0",
|
|
100
98
|
"@fluid-app/fluid-pay-core": "0.1.0",
|
|
101
|
-
"@fluid-app/
|
|
99
|
+
"@fluid-app/i18n": "0.1.0",
|
|
100
|
+
"@fluid-app/messaging-api-client": "0.1.0",
|
|
102
101
|
"@fluid-app/messaging-ui": "0.1.0",
|
|
103
|
-
"@fluid-app/mysite-ui": "0.1.0",
|
|
104
102
|
"@fluid-app/messaging-core": "0.1.0",
|
|
103
|
+
"@fluid-app/mysite-core": "0.1.0",
|
|
105
104
|
"@fluid-app/orders-core": "0.1.0",
|
|
106
105
|
"@fluid-app/orders-ui": "0.1.0",
|
|
107
|
-
"@fluid-app/
|
|
106
|
+
"@fluid-app/mysite-ui": "0.1.0",
|
|
108
107
|
"@fluid-app/payments-display": "0.1.0",
|
|
109
|
-
"@fluid-app/portal-
|
|
108
|
+
"@fluid-app/portal-app-download-ui": "0.1.0",
|
|
110
109
|
"@fluid-app/portal-preview": "0.1.0",
|
|
111
|
-
"@fluid-app/portal-
|
|
110
|
+
"@fluid-app/portal-core": "0.1.23",
|
|
112
111
|
"@fluid-app/portal-react": "0.1.0",
|
|
112
|
+
"@fluid-app/portal-tenant-api-client": "0.1.0",
|
|
113
|
+
"@fluid-app/portal-tenant-contacts-api-client": "0.1.0",
|
|
113
114
|
"@fluid-app/portal-tenant-content-api-client": "0.1.0",
|
|
114
115
|
"@fluid-app/portal-tenant-mysite-api-client": "0.1.0",
|
|
115
|
-
"@fluid-app/portal-tenant-contacts-api-client": "0.1.0",
|
|
116
|
-
"@fluid-app/portal-tenant-store-api-client": "0.1.0",
|
|
117
116
|
"@fluid-app/portal-tenant-pay-api-client": "0.1.0",
|
|
117
|
+
"@fluid-app/portal-tenant-store-api-client": "0.1.0",
|
|
118
118
|
"@fluid-app/portal-widgets": "0.1.22",
|
|
119
|
-
"@fluid-app/products-api-client": "0.1.0",
|
|
120
119
|
"@fluid-app/products-core": "0.1.0",
|
|
120
|
+
"@fluid-app/products-api-client": "0.1.0",
|
|
121
|
+
"@fluid-app/profile-core": "0.1.0",
|
|
121
122
|
"@fluid-app/profile-ui": "0.1.0",
|
|
122
|
-
"@fluid-app/query-persister": "0.1.0",
|
|
123
123
|
"@fluid-app/shareables-core": "0.1.0",
|
|
124
|
-
"@fluid-app/
|
|
124
|
+
"@fluid-app/query-persister": "0.1.0",
|
|
125
125
|
"@fluid-app/shareables-ui": "0.1.0",
|
|
126
|
-
"@fluid-app/shop-core": "0.1.0",
|
|
127
126
|
"@fluid-app/shop-ui": "0.1.0",
|
|
127
|
+
"@fluid-app/shop-core": "0.1.0",
|
|
128
128
|
"@fluid-app/subscriptions-core": "0.1.0",
|
|
129
129
|
"@fluid-app/store-core": "0.1.0",
|
|
130
|
-
"@fluid-app/subscriptions-ui": "0.1.0",
|
|
131
130
|
"@fluid-app/typescript-config": "0.0.0",
|
|
131
|
+
"@fluid-app/subscriptions-ui": "0.1.0",
|
|
132
132
|
"@fluid-app/ui-primitives": "0.1.13",
|
|
133
133
|
"@fluid-app/widget-runtime": "0.1.0"
|
|
134
134
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarWidget-BwaTR9fW.cjs","names":["useWidgetsApi","useWidgetPreviewContext","useDataSourceRegistryConfig","Calendar","Link2","MapPin","borderWidthClasses","borderColorClasses","ErrorState","CalendarCheck","ChevronLeft","ChevronRight","ChevronsDown","ChevronsUp","getFontSizeField","getColorField","getPaddingField","getBorderRadiusField","getBorderWidthField","getBorderColorField"],"sources":["../../widgets/src/hooks/use-calendar-events.preview.ts","../../widgets/src/hooks/use-calendar-events.ts","../../widgets/src/widgets/CalendarWidget.tsx"],"sourcesContent":["import type { CalendarEvent } from \"@fluid-app/portal-core/widgets-api-types\";\n\nconst today = new Date();\nconst inTwoDays = new Date(today);\ninTwoDays.setDate(inTwoDays.getDate() + 2);\n\nfunction toISO(date: Date, hours: number, minutes = 0): string {\n const d = new Date(date);\n d.setHours(hours, minutes, 0, 0);\n return d.toISOString();\n}\n\nfunction toDateString(date: Date): string {\n return date.toISOString().split(\"T\")[0]!;\n}\n\nexport const PREVIEW_DATA: CalendarEvent[] = [\n {\n id: 1,\n title: \"Team Strategy Call\",\n start: toISO(today, 9, 0),\n end: toISO(today, 10, 0),\n status: \"active\",\n color: \"#4f46e5\",\n },\n {\n id: 2,\n title: \"Product Launch Webinar\",\n start: toISO(today, 14, 0),\n end: toISO(today, 15, 30),\n status: \"active\",\n color: \"#0891b2\",\n venue: \"Zoom\",\n },\n {\n id: 3,\n title: \"Annual Leadership Summit\",\n start: `${toDateString(inTwoDays)}T00:00:00.000Z`,\n end: `${toDateString(inTwoDays)}T23:59:59.000Z`,\n status: \"active\",\n color: \"#059669\",\n isAllDay: true,\n venue: \"Convention Center\",\n },\n];\n","import { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useWidgetsApi } from \"@fluid-app/portal-core/widgets-api-context\";\nimport { useWidgetPreviewContext } from \"@fluid-app/portal-react/data-sources/preview-context\";\nimport { useDataSourceRegistryConfig } from \"@fluid-app/portal-react/data-sources/registry-context\";\nimport { PREVIEW_DATA } from \"./use-calendar-events.preview\";\nimport type { CalendarEvent } from \"@fluid-app/portal-core/widgets-api-types\";\n\nexport type { CalendarEvent } from \"@fluid-app/portal-core/widgets-api-types\";\n\nexport function useCalendarEvents(): UseQueryResult<CalendarEvent[], Error> {\n const widgetsApi = useWidgetsApi();\n const { isPreview } = useWidgetPreviewContext();\n const { baseUrl } = useDataSourceRegistryConfig();\n\n return useQuery({\n queryKey: [\n \"portal-widget-use\",\n \"calendar-events\",\n isPreview ? \"preview\" : baseUrl,\n ] as const,\n queryFn: ({ signal }) => widgetsApi.fetchCalendarEvents(signal),\n enabled: !isPreview,\n ...(isPreview && { placeholderData: PREVIEW_DATA }),\n });\n}\n","import {\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n type ComponentProps,\n} from \"react\";\nimport type React from \"react\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n BorderWidthOptions,\n ColorOptions,\n FontSizeOptions,\n PaddingOptions,\n} from \"@fluid-app/portal-core/types\";\nimport type { WidgetPropertySchema } from \"@fluid-app/portal-core/registries\";\nimport {\n borderColorClasses,\n borderWidthClasses,\n getBorderColorField,\n getBorderRadiusField,\n getBorderWidthField,\n getColorField,\n getFontSizeField,\n getPaddingField,\n} from \"../core/fields\";\nimport {\n useCalendarEvents,\n type CalendarEvent,\n} from \"../hooks/use-calendar-events\";\nimport { ErrorState } from \"../components/error-state\";\nimport {\n Calendar,\n CalendarCheck,\n ChevronLeft,\n ChevronRight,\n ChevronsDown,\n ChevronsUp,\n Link2,\n MapPin,\n type LucideIcon,\n} from \"lucide-react\";\n\nconst DAY_NAMES = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"] as const;\n\nconst getDaysInMonth = (year: number, month: number): number =>\n new Date(year, month + 1, 0).getDate();\n\nconst getFirstDayOfMonth = (year: number, month: number): number =>\n new Date(year, month, 1).getDay();\n\nconst isSameDay = (a: Date, b: Date): boolean =>\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate();\n\nconst startOfDay = (d: Date): Date => {\n const x = new Date(d);\n x.setHours(0, 0, 0, 0);\n return x;\n};\n\nconst addDays = (d: Date, n: number): Date => {\n const x = new Date(d);\n x.setDate(x.getDate() + n);\n return x;\n};\n\nconst diffDays = (a: Date, b: Date): number => {\n const ms = startOfDay(a).getTime() - startOfDay(b).getTime();\n return Math.round(ms / 86400000);\n};\n\ntype DayCell = {\n date: Date | null;\n isToday: boolean;\n isCurrentMonth: boolean;\n};\n\nconst generateMonthGrid = (year: number, month: number): DayCell[] => {\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const today = new Date();\n const cells: DayCell[] = [];\n\n for (let i = 0; i < firstDay; i++) {\n cells.push({ date: null, isToday: false, isCurrentMonth: false });\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n const date = new Date(year, month, day);\n cells.push({\n date,\n isToday: isSameDay(date, today),\n isCurrentMonth: true,\n });\n }\n\n return cells;\n};\n\nconst generateWeekGrid = (): Array<{ date: Date; isToday: boolean }> => {\n const today = new Date();\n const weekday = today.getDay();\n return Array.from({ length: 7 }, (_, i) => {\n const date = addDays(today, -weekday + i);\n return { date, isToday: isSameDay(date, today) };\n });\n};\n\nconst formatContextualDate = (\n date: Date,\n): { lead: string | null; detail: string } => {\n const today = new Date();\n const d = diffDays(date, today);\n const weekday = date.toLocaleDateString(\"en-US\", { weekday: \"short\" });\n const monthDay = date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n });\n if (d === 0) return { lead: \"Today\", detail: `${weekday}, ${monthDay}` };\n if (d === 1) return { lead: \"Tomorrow\", detail: `${weekday}, ${monthDay}` };\n if (d === -1) return { lead: \"Yesterday\", detail: `${weekday}, ${monthDay}` };\n return { lead: null, detail: `${weekday}, ${monthDay}` };\n};\n\ntype DayCellButtonProps = {\n date: Date;\n isToday: boolean;\n isSelected: boolean;\n eventCount: number;\n accentColor: ColorOptions;\n textColor: ColorOptions;\n showEventDensity: boolean;\n onClick: () => void;\n};\n\nfunction DayCellButton({\n date,\n isToday,\n isSelected,\n eventCount,\n accentColor,\n textColor,\n showEventDensity,\n onClick,\n}: DayCellButtonProps) {\n const dotCount = showEventDensity\n ? Math.min(eventCount, 3)\n : eventCount > 0\n ? 1\n : 0;\n\n const baseClasses =\n \"group relative flex aspect-square w-full flex-col items-center justify-center rounded-lg text-sm tabular-nums transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-0\";\n\n const stateClasses = isSelected\n ? `bg-${accentColor} text-${accentColor}-foreground focus-visible:ring-${accentColor}/40`\n : isToday\n ? `bg-${accentColor}/10 text-${accentColor} font-semibold hover:bg-${accentColor}/20 focus-visible:ring-${accentColor}/40`\n : `text-${textColor} hover:bg-${accentColor}/10 focus-visible:ring-${accentColor}/40`;\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-label={date.toLocaleDateString(\"en-US\", {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n })}\n aria-current={isToday ? \"date\" : undefined}\n aria-pressed={isSelected}\n className={`${baseClasses} ${stateClasses}`}\n >\n <span className=\"leading-none\">{date.getDate()}</span>\n {dotCount > 0 && (\n <span\n aria-hidden=\"true\"\n className=\"absolute bottom-0.5 flex items-center gap-[2px]\"\n >\n {Array.from({ length: dotCount }).map((_, i) => (\n <span\n key={i}\n className={`size-1 rounded-full ${\n isSelected\n ? `bg-${accentColor}-foreground/70`\n : `bg-${accentColor}`\n }`}\n />\n ))}\n </span>\n )}\n </button>\n );\n}\n\ntype EventCardProps = {\n event: CalendarEvent;\n accentColor: ColorOptions;\n textColor: ColorOptions;\n};\n\n// Events render in the viewer's own timezone (browser local) so the same time\n// reads consistently on Portal and mobile. timeZoneName \"short\" appends the\n// viewer's zone abbreviation (e.g. MST).\nconst formatLongDateTime = (iso: string): string => {\n const d = new Date(iso);\n const datePart = d.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n });\n const timePart = d.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n timeZoneName: \"short\",\n });\n return `${datePart} at ${timePart}`;\n};\n\nconst formatLongDate = (iso: string): string => {\n return new Date(iso).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n });\n};\n\nconst isSafeHttpUrl = (url: string): boolean => {\n try {\n const parsed = new URL(url);\n return parsed.protocol === \"http:\" || parsed.protocol === \"https:\";\n } catch {\n return false;\n }\n};\n\nconst deriveEventStatus = (\n event: CalendarEvent,\n): { label: string; tone: \"upcoming\" | \"live\" | \"past\" } => {\n const rawStatus = event.status?.trim();\n const normalized = rawStatus?.toLowerCase();\n if (rawStatus && normalized !== \"active\" && normalized !== \"confirmed\") {\n const label =\n rawStatus.charAt(0).toUpperCase() + rawStatus.slice(1).toLowerCase();\n return { label, tone: \"past\" };\n }\n const startMs = new Date(event.start).getTime();\n const endMs = new Date(event.end).getTime();\n const now = Date.now();\n if (now < startMs) return { label: \"Upcoming\", tone: \"upcoming\" };\n if (now <= endMs) return { label: \"Live\", tone: \"live\" };\n return { label: \"Past\", tone: \"past\" };\n};\n\nfunction EventCard({ event, accentColor, textColor }: EventCardProps) {\n const accentVar = `var(--color-${accentColor})`;\n const barColor = event.color || accentVar;\n const startDate = new Date(event.start);\n const weekday = startDate.toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n });\n const monthDay = startDate.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n });\n const status = deriveEventStatus(event);\n const description = event.description?.body;\n\n const startDisplay = event.isAllDay\n ? formatLongDate(event.start)\n : formatLongDateTime(event.start);\n const endDisplay = event.isAllDay\n ? formatLongDate(event.end)\n : formatLongDateTime(event.end);\n\n const statusToneClasses =\n status.tone === \"live\"\n ? `bg-${accentColor}/15 text-${accentColor}`\n : status.tone === \"upcoming\"\n ? `bg-${accentColor}/10 text-${accentColor}`\n : `bg-${textColor}/10 text-${textColor}/60`;\n\n return (\n <article\n className={`relative overflow-hidden rounded-lg border border-${textColor}/10`}\n >\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-y-0 left-0 w-[3px]\"\n style={{ backgroundColor: barColor }}\n />\n\n {event.imageUrl && (\n <img\n src={event.imageUrl}\n alt=\"\"\n className=\"aspect-[16/7] w-full object-cover\"\n />\n )}\n\n <div className=\"flex flex-col gap-4 p-4 pl-5\">\n <div className=\"flex items-start gap-4\">\n <div\n className={`shrink-0 text-${textColor} leading-tight tabular-nums`}\n >\n <div className={`text-xs font-semibold text-${textColor}/55`}>\n {weekday}\n </div>\n <div className=\"text-2xl font-bold tracking-[-0.015em]\">\n {monthDay}\n </div>\n </div>\n\n <div className=\"min-w-0 flex-1\">\n <h4\n className={`text-base font-bold text-${textColor} leading-tight tracking-[-0.01em]`}\n >\n {event.title}\n </h4>\n {description && (\n <p\n className={`mt-1 text-sm leading-snug whitespace-pre-wrap text-${textColor}/65`}\n >\n {description}\n </p>\n )}\n </div>\n </div>\n\n <div className=\"flex flex-col gap-2.5\">\n <div className=\"flex items-start gap-2\">\n <Calendar\n className={`mt-0.5 size-4 shrink-0 text-${textColor}/55`}\n />\n <div\n className={`text-sm leading-snug text-${textColor}/80 tabular-nums`}\n >\n <div>\n <span className=\"font-semibold\">Start</span> {startDisplay}\n </div>\n <div>\n <span className=\"font-semibold\">End</span> {endDisplay}\n </div>\n </div>\n </div>\n\n <div>\n <span\n className={`inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold ${statusToneClasses}`}\n >\n {status.label}\n </span>\n </div>\n\n {event.url && isSafeHttpUrl(event.url) && (\n <a\n href={event.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`flex items-center gap-2 text-sm text-${accentColor} break-all hover:underline`}\n >\n <Link2 className={`size-4 shrink-0 text-${textColor}/55`} />\n <span>{event.url}</span>\n </a>\n )}\n\n {event.venue && (\n <a\n href={`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(event.venue)}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`flex items-start gap-2 text-sm text-${accentColor} hover:underline`}\n >\n <MapPin\n className={`mt-0.5 size-4 shrink-0 text-${textColor}/55`}\n />\n <span>{event.venue}</span>\n </a>\n )}\n </div>\n </div>\n </article>\n );\n}\n\ntype NavButtonProps = {\n icon: LucideIcon;\n label: string;\n variant: \"ghost\" | \"accent\";\n accentColor: ColorOptions;\n textColor: ColorOptions;\n onClick: () => void;\n};\n\nfunction NavButton({\n icon: Icon,\n label,\n variant,\n accentColor,\n textColor,\n onClick,\n}: NavButtonProps) {\n const classes =\n variant === \"accent\"\n ? `bg-${accentColor} text-${accentColor}-foreground hover:bg-${accentColor}/90 focus-visible:ring-${accentColor}/40`\n : `bg-${textColor}/5 text-${textColor} hover:bg-${textColor}/10 focus-visible:ring-${textColor}/20`;\n\n return (\n <button\n type=\"button\"\n onClick={onClick}\n aria-label={label}\n className={`flex size-8 items-center justify-center rounded-full text-[12px] transition-colors focus:outline-none focus-visible:ring-2 ${classes}`}\n >\n <Icon className=\"size-4\" />\n </button>\n );\n}\n\ntype CalendarView = {\n month: number;\n year: number;\n};\n\nconst getInitialCalendarView = (): CalendarView => {\n const now = new Date();\n return { month: now.getMonth(), year: now.getFullYear() };\n};\n\nfunction useCalendarNavigation(\n setSelectedDate: React.Dispatch<React.SetStateAction<Date | null>>,\n) {\n const [view, setView] = useState(getInitialCalendarView);\n const [gridTransitioning, setGridTransitioning] = useState(false);\n const transitionTimeoutRef = useRef<number | null>(null);\n\n useEffect(\n () => () => {\n if (transitionTimeoutRef.current !== null) {\n window.clearTimeout(transitionTimeoutRef.current);\n }\n },\n [],\n );\n\n const clearPendingTransition = useCallback(() => {\n if (transitionTimeoutRef.current !== null) {\n window.clearTimeout(transitionTimeoutRef.current);\n transitionTimeoutRef.current = null;\n }\n }, []);\n\n const navigate = useCallback(\n (direction: -1 | 1) => {\n clearPendingTransition();\n setGridTransitioning(true);\n transitionTimeoutRef.current = window.setTimeout(() => {\n setView((prev) => {\n const next = prev.month + direction;\n if (next < 0) return { month: 11, year: prev.year - 1 };\n if (next > 11) return { month: 0, year: prev.year + 1 };\n return { month: next, year: prev.year };\n });\n setGridTransitioning(false);\n transitionTimeoutRef.current = null;\n }, 120);\n },\n [clearPendingTransition],\n );\n\n const goToToday = useCallback(() => {\n clearPendingTransition();\n const now = new Date();\n setGridTransitioning(true);\n transitionTimeoutRef.current = window.setTimeout(() => {\n setView({ month: now.getMonth(), year: now.getFullYear() });\n setSelectedDate(now);\n setGridTransitioning(false);\n transitionTimeoutRef.current = null;\n }, 80);\n }, [clearPendingTransition, setSelectedDate]);\n\n return { view, gridTransitioning, navigate, goToToday };\n}\n\nfunction useCalendarEventIndex(\n events: CalendarEvent[],\n selectedDate: Date | null,\n) {\n const eventsByDate = useMemo(() => {\n const map = new Map<string, CalendarEvent[]>();\n for (const event of events) {\n const start = startOfDay(new Date(event.start));\n const end = startOfDay(new Date(event.end));\n for (let cur = start; cur <= end; cur = addDays(cur, 1)) {\n const key = `${cur.getFullYear()}-${cur.getMonth()}-${cur.getDate()}`;\n const list = map.get(key);\n if (list) {\n list.push(event);\n } else {\n map.set(key, [event]);\n }\n }\n }\n return map;\n }, [events]);\n\n const lookupEventsForDate = useCallback(\n (date: Date): CalendarEvent[] => {\n const key = `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;\n return eventsByDate.get(key) ?? [];\n },\n [eventsByDate],\n );\n\n const selectedDateEvents = useMemo(() => {\n if (!selectedDate) return [];\n return lookupEventsForDate(selectedDate);\n }, [selectedDate, lookupEventsForDate]);\n\n return { lookupEventsForDate, selectedDateEvents };\n}\n\ntype CalendarWidgetProps = ComponentProps<\"div\"> & {\n // Title\n titleEnabled?: boolean;\n titleText?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Styling\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n borderWidth?: BorderWidthOptions;\n borderColor?: ColorOptions;\n\n // Premium polish (new, additive)\n showEventDensity?: boolean;\n showTodayButton?: boolean;\n weekendDim?: boolean;\n showYearEyebrow?: boolean;\n};\n\nexport function CalendarWidget({\n titleEnabled = true,\n titleText = \"Calendar\",\n titleFontSize = \"xl\",\n titleColor = \"foreground\",\n\n background = { type: \"solid\", color: \"background\" },\n textColor = \"foreground\",\n accentColor = \"primary\",\n padding = 4,\n borderRadius = \"md\",\n borderWidth = \"none\",\n borderColor = \"muted\",\n\n showEventDensity = true,\n showTodayButton = true,\n weekendDim = true,\n showYearEyebrow = true,\n\n className,\n ...props\n}: CalendarWidgetProps): React.JSX.Element {\n const backgroundColor = background.color || \"background\";\n const backgroundImage =\n (background.resource?.image_url || background.resource?.imageUrl) &&\n background.type === \"image\"\n ? `url(${background.resource.image_url || background.resource.imageUrl})`\n : \"none\";\n\n const [isCollapsed, setIsCollapsed] = useState(false);\n const [selectedDate, setSelectedDate] = useState<Date | null>(\n () => new Date(),\n );\n const { view, gridTransitioning, navigate, goToToday } =\n useCalendarNavigation(setSelectedDate);\n const currentMonth = view.month;\n const currentYear = view.year;\n\n const { data: events = [], isLoading, isError } = useCalendarEvents();\n\n const monthGrid = useMemo(\n () => generateMonthGrid(currentYear, currentMonth),\n [currentYear, currentMonth],\n );\n const weekGrid = generateWeekGrid();\n const { lookupEventsForDate, selectedDateEvents } = useCalendarEventIndex(\n events,\n selectedDate,\n );\n\n const now = new Date();\n const viewingCurrentMonth =\n currentMonth === now.getMonth() && currentYear === now.getFullYear();\n\n const monthLabel = new Date(currentYear, currentMonth).toLocaleString(\n \"en-US\",\n { month: \"long\" },\n );\n const yearLabel = String(currentYear);\n\n const contextualDate = selectedDate\n ? formatContextualDate(selectedDate)\n : null;\n\n return (\n <div\n className={`@container overflow-hidden rounded-${borderRadius} ${borderWidthClasses[borderWidth]} ${borderWidth !== \"none\" ? borderColorClasses[borderColor] : \"\"} bg-${backgroundColor} text-${textColor} ${className ?? \"\"}`}\n style={{ backgroundImage }}\n {...props}\n >\n {titleEnabled && titleText && (\n <div className={`p-${padding} pb-0`}>\n <h2\n className={`text-${titleFontSize} text-${titleColor} font-bold tracking-[-0.012em]`}\n >\n {titleText}\n </h2>\n </div>\n )}\n\n {isLoading ? (\n <div\n className={`flex min-h-[300px] items-center justify-center p-${padding}`}\n >\n <div className={`text-${accentColor}`}>\n <div className=\"size-8 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n </div>\n ) : isError ? (\n <ErrorState />\n ) : (\n <div className={`p-${padding}`}>\n <div className=\"@md:flex @md:gap-6\">\n <div className=\"@md:flex-none\">\n {/* Header row: year eyebrow + month + asymmetric nav + Today pill */}\n <div className=\"mb-4 flex items-start justify-between gap-3\">\n <div className=\"flex min-w-0 flex-col\">\n {showYearEyebrow && (\n <span\n className={`text-[10px] font-bold tracking-[0.16em] uppercase text-${textColor}/55`}\n >\n {yearLabel}\n </span>\n )}\n <span\n className={`text-xl leading-tight font-bold tracking-[-0.015em] text-${textColor}`}\n >\n {monthLabel}\n </span>\n </div>\n\n <div className=\"flex shrink-0 items-center gap-1.5\">\n {showTodayButton && !viewingCurrentMonth && (\n <button\n type=\"button\"\n onClick={goToToday}\n className={`flex items-center gap-1 rounded-full bg-${accentColor}/10 px-2.5 py-1 text-[11px] font-semibold text-${accentColor} transition-colors hover:bg-${accentColor}/20 focus:outline-none focus-visible:ring-2 focus-visible:ring-${accentColor}/40`}\n >\n <CalendarCheck className=\"size-3\" />\n Today\n </button>\n )}\n <NavButton\n icon={ChevronLeft}\n label=\"Previous month\"\n variant=\"ghost\"\n accentColor={accentColor}\n textColor={textColor}\n onClick={() => navigate(-1)}\n />\n <NavButton\n icon={ChevronRight}\n label=\"Next month\"\n variant=\"accent\"\n accentColor={accentColor}\n textColor={textColor}\n onClick={() => navigate(1)}\n />\n </div>\n </div>\n\n {/* Day-of-week headers */}\n <div className=\"mb-2 grid grid-cols-7 gap-1 text-center\">\n {DAY_NAMES.map((day, idx) => {\n const isWeekend = idx === 0 || idx === 6;\n const dimmed = weekendDim && isWeekend;\n return (\n <div\n key={day}\n className={`text-[10px] font-semibold tracking-[0.12em] uppercase text-${textColor}/${dimmed ? \"40\" : \"55\"}`}\n >\n {day}\n </div>\n );\n })}\n </div>\n\n {/* Grid wrapper (opacity transitions on month navigate) */}\n <div\n className=\"transition-opacity duration-150 ease-out\"\n style={{ opacity: gridTransitioning ? 0.3 : 1 }}\n >\n {/* Collapsed week view on mobile */}\n {isCollapsed && (\n <div className=\"grid grid-cols-7 gap-1 @md:hidden\">\n {weekGrid.map(({ date, isToday }) => (\n <DayCellButton\n key={date.toISOString()}\n date={date}\n isToday={isToday}\n isSelected={\n !!selectedDate && isSameDay(selectedDate, date)\n }\n eventCount={lookupEventsForDate(date).length}\n accentColor={accentColor}\n textColor={textColor}\n showEventDensity={showEventDensity}\n onClick={() => setSelectedDate(date)}\n />\n ))}\n </div>\n )}\n\n {/* Month grid */}\n <div\n className={`grid grid-cols-7 gap-1 ${isCollapsed ? \"hidden @md:grid\" : \"grid\"}`}\n >\n {monthGrid.map((cell, idx) => {\n if (!cell.date) {\n return (\n <div key={`empty-${idx}`} className=\"aspect-square\" />\n );\n }\n const eventCount = lookupEventsForDate(cell.date).length;\n return (\n <DayCellButton\n key={cell.date.toISOString()}\n date={cell.date}\n isToday={cell.isToday}\n isSelected={\n !!selectedDate && isSameDay(selectedDate, cell.date)\n }\n eventCount={eventCount}\n accentColor={accentColor}\n textColor={textColor}\n showEventDensity={showEventDensity}\n onClick={() => setSelectedDate(cell.date)}\n />\n );\n })}\n </div>\n </div>\n\n {/* Mobile collapse toggle */}\n <button\n type=\"button\"\n onClick={() => setIsCollapsed(!isCollapsed)}\n className={`mt-2 flex w-full items-center justify-center gap-3 rounded-full p-1 text-${textColor}/40 transition-colors hover:text-${textColor}/60 @md:hidden`}\n aria-label={\n isCollapsed ? \"Expand calendar\" : \"Collapse calendar\"\n }\n >\n <div className={`h-px w-1/2 bg-${textColor}/20`} />\n {isCollapsed ? (\n <ChevronsDown className=\"size-3\" />\n ) : (\n <ChevronsUp className=\"size-3\" />\n )}\n <div className={`h-px w-1/2 bg-${textColor}/20`} />\n </button>\n </div>\n\n {/* Events rail */}\n <div\n className={`mt-4 min-w-0 border-${textColor}/10 @md:relative @md:mt-0 @md:flex-1 @md:border-l`}\n >\n <div className=\"@md:absolute @md:inset-0 @md:overflow-y-auto @md:pr-1 @md:pl-6\">\n {/* Context header */}\n {contextualDate && (\n <div className=\"mb-3\">\n {contextualDate.lead && (\n <div\n className={`text-[10px] font-bold tracking-[0.16em] uppercase text-${accentColor}`}\n >\n {contextualDate.lead}\n </div>\n )}\n <div\n className={`text-sm font-semibold text-${textColor} tabular-nums`}\n >\n {contextualDate.detail}\n </div>\n </div>\n )}\n\n {/* Events list with soft fade-in keyed by selected date */}\n <div\n key={selectedDate?.toISOString() ?? \"none\"}\n className=\"animate-in fade-in slide-in-from-bottom-2 flex flex-col gap-3 duration-200 ease-out\"\n >\n {selectedDateEvents.length > 0 ? (\n selectedDateEvents.map((event, idx) => (\n <EventCard\n key={`${event.id}-${idx}`}\n event={event}\n accentColor={accentColor}\n textColor={textColor}\n />\n ))\n ) : (\n <div\n className={`flex flex-col items-start gap-1 rounded-md border border-dashed border-${textColor}/15 px-3 py-3`}\n >\n <div className=\"flex items-center gap-1.5\">\n <CalendarCheck\n className={`size-3 text-${textColor}/40`}\n />\n <span\n className={`text-[11px] font-semibold text-${textColor}/60`}\n >\n Nothing scheduled\n </span>\n </div>\n <span className={`text-[11px] text-${textColor}/45`}>\n Enjoy the breather.\n </span>\n </div>\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nexport const calendarWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"CalendarWidget\",\n displayName: \"Calendar Widget\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [\n // Title group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the calendar\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Title\",\n },\n {\n key: \"titleText\",\n label: \"Title\",\n type: \"text\",\n description: \"Title text displayed above the calendar\",\n defaultValue: \"Calendar\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n },\n getFontSizeField({\n key: \"titleFontSize\",\n label: \"Title Font Size\",\n description: \"Font size for the widget title\",\n defaultValue: \"xl\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n getColorField({\n key: \"titleColor\",\n label: \"Title Color\",\n description: \"Color for the widget title\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Title\",\n requiresKeyToBeTrue: \"titleEnabled\",\n }),\n\n // Design group\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the calendar container\",\n defaultValue: \"background\",\n tab: \"styling\",\n group: \"Design\",\n },\n getColorField({\n key: \"textColor\",\n label: \"Text Color\",\n description: \"Default text color for calendar content\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getColorField({\n key: \"accentColor\",\n label: \"Accent Color\",\n description:\n \"Drives today highlight, event dots, Today pill, and selected day\",\n defaultValue: \"primary\",\n tab: \"styling\",\n group: \"Design\",\n }),\n {\n key: \"separator\",\n type: \"separator\",\n label: \"Separator\",\n tab: \"styling\",\n group: \"Design\",\n },\n getPaddingField({\n key: \"padding\",\n label: \"Padding\",\n description: \"Padding around the calendar container\",\n defaultValue: 4,\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderRadiusField({\n key: \"borderRadius\",\n label: \"Border Radius\",\n description: \"Border radius for the calendar container\",\n defaultValue: \"md\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderWidthField({\n key: \"borderWidth\",\n label: \"Border Width\",\n description: \"Border width for the calendar container\",\n defaultValue: \"none\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getBorderColorField({\n key: \"borderColor\",\n label: \"Border Color\",\n description: \"Border color for the calendar container\",\n defaultValue: \"muted\",\n tab: \"styling\",\n group: \"Design\",\n }),\n\n // Polish group (new)\n {\n key: \"showYearEyebrow\",\n label: \"Year Eyebrow\",\n type: \"boolean\",\n description:\n \"Small uppercase year label above the month (e.g. '2026 / November').\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Polish\",\n },\n {\n key: \"showTodayButton\",\n label: \"Today Button\",\n type: \"boolean\",\n description: \"Show a 'Today' pill when viewing a different month.\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Polish\",\n },\n {\n key: \"showEventDensity\",\n label: \"Event Density Dots\",\n type: \"boolean\",\n description:\n \"Show 1–3 dots per day based on event count (off = single dot).\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Polish\",\n },\n {\n key: \"weekendDim\",\n label: \"Dim Weekends\",\n type: \"boolean\",\n description:\n \"Subtly dim the Sun/Sat day-of-week headers for visual rhythm.\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Polish\",\n },\n ],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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R,CAAC;EACF;GACE,KAAK;GACL,MAAM;GACN,OAAO;GACP,KAAK;GACL,OAAO;GACR;EACDC,mBAAAA,gBAAgB;GACd,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,qBAAqB;GACnB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACFC,mBAAAA,oBAAoB;GAClB,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EAGF;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aACE;GACF,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACF;CACF"}
|