@fluid-app/portal-sdk 0.1.214 → 0.1.216
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/{AppDownloadScreen-rZkhl4Q9.cjs → AppDownloadScreen-CBoC31wL.cjs} +2 -2
- package/dist/{AppDownloadScreen-rZkhl4Q9.cjs.map → AppDownloadScreen-CBoC31wL.cjs.map} +1 -1
- package/dist/{AppDownloadScreen-CTqsyx3n.mjs → AppDownloadScreen-CZ0EOIZ5.mjs} +2 -2
- package/dist/{AppDownloadScreen-CTqsyx3n.mjs.map → AppDownloadScreen-CZ0EOIZ5.mjs.map} +1 -1
- package/dist/{AppNavigationContext-N5oUbgNL.cjs → AppNavigationContext-CbK8uCjS.cjs} +1 -1
- package/dist/{AppNavigationContext-N5oUbgNL.cjs.map → AppNavigationContext-CbK8uCjS.cjs.map} +1 -1
- package/dist/{AppNavigationContext-BW3lSpfT.mjs → AppNavigationContext-Cq3BDKSf.mjs} +1 -1
- package/dist/{AppNavigationContext-BW3lSpfT.mjs.map → AppNavigationContext-Cq3BDKSf.mjs.map} +1 -1
- package/dist/{CardWidget-Scr2BDrZ.mjs → CardWidget-B1-STzEY.mjs} +2 -2
- package/dist/{CardWidget-Scr2BDrZ.mjs.map → CardWidget-B1-STzEY.mjs.map} +1 -1
- package/dist/{CardWidget-BAl-3dJF.cjs → CardWidget-CdrGXdUr.cjs} +2 -2
- package/dist/{CardWidget-BAl-3dJF.cjs.map → CardWidget-CdrGXdUr.cjs.map} +1 -1
- package/dist/{CardWidget-CFtUC9RB.cjs → CardWidget-Cze0MIZ4.cjs} +2 -2
- package/dist/{ContactsScreen-UnYKZlkb.cjs → ContactsScreen-CSY7Of6x.cjs} +6 -6
- package/dist/{ContactsScreen-UnYKZlkb.cjs.map → ContactsScreen-CSY7Of6x.cjs.map} +1 -1
- package/dist/{ContactsScreen-DscaUwNM.mjs → ContactsScreen-CbV-r1fn.mjs} +6 -6
- package/dist/{ContactsScreen-DscaUwNM.mjs.map → ContactsScreen-CbV-r1fn.mjs.map} +1 -1
- package/dist/{ContactsScreen-Cs9bKvMr.cjs → ContactsScreen-D-g7XEB-.cjs} +6 -6
- package/dist/{ContainerWidget-DXgM6Mxa.cjs → ContainerWidget-D89LdXUJ.cjs} +2 -2
- package/dist/{ContainerWidget-DXgM6Mxa.cjs.map → ContainerWidget-D89LdXUJ.cjs.map} +1 -1
- package/dist/{ContainerWidget-CxAu29Rz.mjs → ContainerWidget-DQwZ-weo.mjs} +2 -2
- package/dist/{ContainerWidget-CxAu29Rz.mjs.map → ContainerWidget-DQwZ-weo.mjs.map} +1 -1
- package/dist/{ContainerWidget-DV-Ng6tH.cjs → ContainerWidget-oF_cuYkn.cjs} +3 -3
- package/dist/{CustomersScreen-BgbvmBoF.mjs → CustomersScreen-DSNokGQu.mjs} +1 -1
- package/dist/{CustomersScreen-BgbvmBoF.mjs.map → CustomersScreen-DSNokGQu.mjs.map} +1 -1
- package/dist/{CustomersScreen-CKMopTNU.cjs → CustomersScreen-Rf5uucRx.cjs} +1 -1
- package/dist/{CustomersScreen-CKMopTNU.cjs.map → CustomersScreen-Rf5uucRx.cjs.map} +1 -1
- package/dist/{FluidProvider-DQOzjCBn.mjs → FluidProvider-D0ZapBR-.mjs} +27 -24
- package/dist/{FluidProvider-DQOzjCBn.mjs.map → FluidProvider-D0ZapBR-.mjs.map} +1 -1
- package/dist/{FluidProvider-ClbTYuUc.cjs → FluidProvider-ZbTGc_uY.cjs} +27 -24
- package/dist/{FluidProvider-ClbTYuUc.cjs.map → FluidProvider-ZbTGc_uY.cjs.map} +1 -1
- package/dist/{InfiniteScrollSentinel-CUU5C88p.mjs → InfiniteScrollSentinel-DCxWTHrA.mjs} +1 -1
- package/dist/{InfiniteScrollSentinel-CUU5C88p.mjs.map → InfiniteScrollSentinel-DCxWTHrA.mjs.map} +1 -1
- package/dist/{InfiniteScrollSentinel-BGXp134B.cjs → InfiniteScrollSentinel-DPyNdLiU.cjs} +1 -1
- package/dist/{InfiniteScrollSentinel-BGXp134B.cjs.map → InfiniteScrollSentinel-DPyNdLiU.cjs.map} +1 -1
- package/dist/{LayoutWidget-MTchacII.mjs → LayoutWidget-BqzP7L10.mjs} +2 -2
- package/dist/{LayoutWidget-MTchacII.mjs.map → LayoutWidget-BqzP7L10.mjs.map} +1 -1
- package/dist/{LayoutWidget-CSouwqRJ.cjs → LayoutWidget-CTxbrzsY.cjs} +2 -2
- package/dist/{LayoutWidget-BbABNLAR.cjs → LayoutWidget-Dh8JWX2-.cjs} +2 -2
- package/dist/{LayoutWidget-BbABNLAR.cjs.map → LayoutWidget-Dh8JWX2-.cjs.map} +1 -1
- package/dist/{MessagingScreen-BXoAwP06.mjs → MessagingScreen-B8azvEc0.mjs} +3 -3
- package/dist/{MessagingScreen-BXoAwP06.mjs.map → MessagingScreen-B8azvEc0.mjs.map} +1 -1
- package/dist/{MessagingScreen-CmazDZiT.cjs → MessagingScreen-C5QOgB1w.cjs} +17 -16
- package/dist/{MessagingScreen-DTNnUT4J.cjs → MessagingScreen-CkwCSMou.cjs} +5 -5
- package/dist/{MessagingScreen-DTNnUT4J.cjs.map → MessagingScreen-CkwCSMou.cjs.map} +1 -1
- package/dist/{MySiteScreen-CiQcyMSg.cjs → MySiteScreen-B0aOIzU4.cjs} +4 -4
- package/dist/{MySiteScreen-Cjkw8dKY.cjs → MySiteScreen-B1L8coGs.cjs} +4 -4
- package/dist/{MySiteScreen-Cjkw8dKY.cjs.map → MySiteScreen-B1L8coGs.cjs.map} +1 -1
- package/dist/{MySiteScreen-Bg0gFxf0.mjs → MySiteScreen-DUN5TTvU.mjs} +4 -4
- package/dist/{MySiteScreen-Bg0gFxf0.mjs.map → MySiteScreen-DUN5TTvU.mjs.map} +1 -1
- package/dist/MySiteWidget-BlUbduit.mjs +567 -0
- package/dist/MySiteWidget-BlUbduit.mjs.map +1 -0
- package/dist/MySiteWidget-CDQjyrRA.cjs +584 -0
- package/dist/MySiteWidget-CDQjyrRA.cjs.map +1 -0
- package/dist/OrdersScreen-BmwiVbLV.cjs +9 -0
- package/dist/{OrdersScreen-BklAH7FW.mjs → OrdersScreen-D-SgUl2a.mjs} +4 -4
- package/dist/{OrdersScreen-BklAH7FW.mjs.map → OrdersScreen-D-SgUl2a.mjs.map} +1 -1
- package/dist/{OrdersScreen-DPSqqmhe.cjs → OrdersScreen-Dp7SzXVv.cjs} +4 -4
- package/dist/{OrdersScreen-DPSqqmhe.cjs.map → OrdersScreen-Dp7SzXVv.cjs.map} +1 -1
- package/dist/{PortalContentApiProvider-CB32GRS5.mjs → PortalContentApiProvider-C9FeVwRb.mjs} +7 -7
- package/dist/{PortalContentApiProvider-CB32GRS5.mjs.map → PortalContentApiProvider-C9FeVwRb.mjs.map} +1 -1
- package/dist/{PortalContentApiProvider-BU3UTVjk.cjs → PortalContentApiProvider-RXBp8FNj.cjs} +8 -8
- package/dist/{PortalContentApiProvider-BU3UTVjk.cjs.map → PortalContentApiProvider-RXBp8FNj.cjs.map} +1 -1
- package/dist/{PortalProductsApiProvider-DHni3Y1V.mjs → PortalProductsApiProvider-CE71zDj9.mjs} +1 -1
- package/dist/{PortalProductsApiProvider-DHni3Y1V.mjs.map → PortalProductsApiProvider-CE71zDj9.mjs.map} +1 -1
- package/dist/{PortalProductsApiProvider-DnhHoraV.cjs → PortalProductsApiProvider-Ca1oeTtJ.cjs} +1 -1
- package/dist/{PortalProductsApiProvider-DnhHoraV.cjs.map → PortalProductsApiProvider-Ca1oeTtJ.cjs.map} +1 -1
- package/dist/{ProductsScreen-DNMT2I69.cjs → ProductsScreen-BD53vh6Y.cjs} +6 -6
- package/dist/{ProductsScreen-DNMT2I69.cjs.map → ProductsScreen-BD53vh6Y.cjs.map} +1 -1
- package/dist/{ProductsScreen-C8GO63G2.mjs → ProductsScreen-BtUZxJCt.mjs} +6 -6
- package/dist/{ProductsScreen-C8GO63G2.mjs.map → ProductsScreen-BtUZxJCt.mjs.map} +1 -1
- package/dist/ProductsScreen-DNpzJ6lh.cjs +15 -0
- package/dist/ProductsScreen-pkOeOW8M.mjs +13 -0
- package/dist/{ProfileScreen-BDtNhjWQ.mjs → ProfileScreen-BhmbCKGd.mjs} +4 -4
- package/dist/{ProfileScreen-BDtNhjWQ.mjs.map → ProfileScreen-BhmbCKGd.mjs.map} +1 -1
- package/dist/{ProfileScreen-CdU2jVBe.cjs → ProfileScreen-DMmfRQp8.cjs} +16 -15
- package/dist/{ProfileScreen-CTLnU4hc.cjs → ProfileScreen-DsEH0aZU.cjs} +4 -4
- package/dist/{ProfileScreen-CTLnU4hc.cjs.map → ProfileScreen-DsEH0aZU.cjs.map} +1 -1
- package/dist/QuickLinksWidget-BwEGtrV0.cjs +563 -0
- package/dist/QuickLinksWidget-BwEGtrV0.cjs.map +1 -0
- package/dist/QuickLinksWidget-D8RlDvkB.mjs +546 -0
- package/dist/QuickLinksWidget-D8RlDvkB.mjs.map +1 -0
- package/dist/{QuickShareWidget-CkPsax9Z.mjs → QuickShareWidget-BURtESV2.mjs} +1 -1
- package/dist/{QuickShareWidget-CkPsax9Z.mjs.map → QuickShareWidget-BURtESV2.mjs.map} +1 -1
- package/dist/{QuickShareWidget-BwOhBs6H.cjs → QuickShareWidget-D171Z9mX.cjs} +1 -1
- package/dist/{QuickShareWidget-BwOhBs6H.cjs.map → QuickShareWidget-D171Z9mX.cjs.map} +1 -1
- package/dist/{RecentActivityWidget-Bg7N2Lpp.cjs → RecentActivityWidget-BmE7_-iJ.cjs} +1 -1
- package/dist/{RecentActivityWidget-Bg7N2Lpp.cjs.map → RecentActivityWidget-BmE7_-iJ.cjs.map} +1 -1
- package/dist/{RecentActivityWidget-8LkuMmbc.mjs → RecentActivityWidget-Dy5SAx61.mjs} +1 -1
- package/dist/{RecentActivityWidget-8LkuMmbc.mjs.map → RecentActivityWidget-Dy5SAx61.mjs.map} +1 -1
- package/dist/{ScreenHeaderContext-FYyYk97y.mjs → ScreenHeaderContext-BDjNSUfr.mjs} +1 -1
- package/dist/{ScreenHeaderContext-FYyYk97y.mjs.map → ScreenHeaderContext-BDjNSUfr.mjs.map} +1 -1
- package/dist/{ScreenHeaderContext-DA8cEfP-.cjs → ScreenHeaderContext-BXgWydjB.cjs} +1 -1
- package/dist/{ScreenHeaderContext-DA8cEfP-.cjs.map → ScreenHeaderContext-BXgWydjB.cjs.map} +1 -1
- package/dist/{ScreenRenderer-Cv2rxvtF.mjs → ScreenRenderer-BqDTKZEZ.mjs} +2 -1
- package/dist/ScreenRenderer-BqDTKZEZ.mjs.map +1 -0
- package/dist/{ScreenRenderer-DfeRRgBO.cjs → ScreenRenderer-Cg85jtXq.cjs} +2 -1
- package/dist/ScreenRenderer-Cg85jtXq.cjs.map +1 -0
- package/dist/{SearchSort-CPkF1EaA.cjs → SearchSort-DHDDqero.cjs} +1 -1
- package/dist/{SearchSort-CPkF1EaA.cjs.map → SearchSort-DHDDqero.cjs.map} +1 -1
- package/dist/{SearchSort-YYd9-Hdf.mjs → SearchSort-DXBt-uj0.mjs} +1 -1
- package/dist/{SearchSort-YYd9-Hdf.mjs.map → SearchSort-DXBt-uj0.mjs.map} +1 -1
- package/dist/{SeparatorWidget-DeCY23G9.mjs → SeparatorWidget-CheNBJwz.mjs} +1 -1
- package/dist/{SeparatorWidget-DeCY23G9.mjs.map → SeparatorWidget-CheNBJwz.mjs.map} +1 -1
- package/dist/{SeparatorWidget-R9PjLUJh.cjs → SeparatorWidget-CjVHbHzQ.cjs} +1 -1
- package/dist/{SeparatorWidget-R9PjLUJh.cjs.map → SeparatorWidget-CjVHbHzQ.cjs.map} +1 -1
- package/dist/{ShareablesScreen-DRpf5u05.mjs → ShareablesScreen-CW1e9x4K.mjs} +7 -7
- package/dist/{ShareablesScreen-DRpf5u05.mjs.map → ShareablesScreen-CW1e9x4K.mjs.map} +1 -1
- package/dist/ShareablesScreen-D1J2Kljk.mjs +15 -0
- package/dist/{ShareablesScreen-D9Q0dQhz.cjs → ShareablesScreen-DC8xXUo4.cjs} +7 -7
- package/dist/{ShareablesScreen-D9Q0dQhz.cjs.map → ShareablesScreen-DC8xXUo4.cjs.map} +1 -1
- package/dist/ShareablesScreen-smU5pGyH.cjs +17 -0
- package/dist/{ShopScreen-B6U1MKM8.cjs → ShopScreen-BBPH0l23.cjs} +18 -17
- package/dist/{ShopScreen-r0nkMVtJ.cjs → ShopScreen-C6UUeGA9.cjs} +7 -7
- package/dist/{ShopScreen-r0nkMVtJ.cjs.map → ShopScreen-C6UUeGA9.cjs.map} +1 -1
- package/dist/{ShopScreen-BC1eEfH1.mjs → ShopScreen-CWCPGEbn.mjs} +7 -7
- package/dist/{ShopScreen-BC1eEfH1.mjs.map → ShopScreen-CWCPGEbn.mjs.map} +1 -1
- package/dist/{SpacerWidget-CvuJeeAj.mjs → SpacerWidget-D-WjN1xb.mjs} +1 -1
- package/dist/{SpacerWidget-CvuJeeAj.mjs.map → SpacerWidget-D-WjN1xb.mjs.map} +1 -1
- package/dist/{SpacerWidget-CYHjTF38.cjs → SpacerWidget-D9lOLPr5.cjs} +1 -1
- package/dist/{SpacerWidget-CYHjTF38.cjs.map → SpacerWidget-D9lOLPr5.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-oMAid0AM.cjs → SubscriptionsScreen-8zup9pEX.cjs} +5 -5
- package/dist/{SubscriptionsScreen-rYK8dckl.mjs → SubscriptionsScreen-CwUdB9rW.mjs} +7 -7
- package/dist/{SubscriptionsScreen-rYK8dckl.mjs.map → SubscriptionsScreen-CwUdB9rW.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-C1GXipTn.cjs → SubscriptionsScreen-DKyatNoJ.cjs} +8 -8
- package/dist/{SubscriptionsScreen-C1GXipTn.cjs.map → SubscriptionsScreen-DKyatNoJ.cjs.map} +1 -1
- package/dist/{TableWidget-CT7Ydlw8.cjs → TableWidget-C2BG7wMg.cjs} +1 -1
- package/dist/{TableWidget-BAwpJ-Vb.mjs → TableWidget-CDVOq4aN.mjs} +1 -1
- package/dist/{TableWidget-BAwpJ-Vb.mjs.map → TableWidget-CDVOq4aN.mjs.map} +1 -1
- package/dist/{TableWidget-QlLGELmp.cjs → TableWidget-D5gAsgv6.cjs} +1 -1
- package/dist/{TableWidget-QlLGELmp.cjs.map → TableWidget-D5gAsgv6.cjs.map} +1 -1
- package/dist/{ToDoWidget-DT30Nnjt.mjs → ToDoWidget-BRNDE3MH.mjs} +1 -1
- package/dist/{ToDoWidget-DT30Nnjt.mjs.map → ToDoWidget-BRNDE3MH.mjs.map} +1 -1
- package/dist/{ToDoWidget-Tcy4VK1v.cjs → ToDoWidget-x86UGKLQ.cjs} +1 -1
- package/dist/{ToDoWidget-Tcy4VK1v.cjs.map → ToDoWidget-x86UGKLQ.cjs.map} +1 -1
- package/dist/{UpgradeScreen-BZ92a6w9.cjs → UpgradeScreen-BdY0rCoF.cjs} +1 -1
- package/dist/{UpgradeScreen-CNieK9ud.mjs → UpgradeScreen-Dau5Elx4.mjs} +1 -1
- package/dist/{UpgradeScreen-CNieK9ud.mjs.map → UpgradeScreen-Dau5Elx4.mjs.map} +1 -1
- package/dist/{UpgradeScreen-BEHFQRlO.cjs → UpgradeScreen-DrBa2uzD.cjs} +1 -1
- package/dist/{UpgradeScreen-BEHFQRlO.cjs.map → UpgradeScreen-DrBa2uzD.cjs.map} +1 -1
- package/dist/{VideoWidget-CK4I8Xmv.cjs → VideoWidget-BIokMYTX.cjs} +1 -1
- package/dist/{VideoWidget-CK4I8Xmv.cjs.map → VideoWidget-BIokMYTX.cjs.map} +1 -1
- package/dist/{VideoWidget-BE_cv0Fm.mjs → VideoWidget-BMIt-eiQ.mjs} +1 -1
- package/dist/{VideoWidget-BE_cv0Fm.mjs.map → VideoWidget-BMIt-eiQ.mjs.map} +1 -1
- package/dist/{dist-BRT-FAUb.cjs → dist-CGuUUVNt.cjs} +1 -1
- package/dist/{dist-BRT-FAUb.cjs.map → dist-CGuUUVNt.cjs.map} +1 -1
- package/dist/{dist-DBPpJ567.mjs → dist-Cis8L6HV.mjs} +2 -2
- package/dist/{dist-DBPpJ567.mjs.map → dist-Cis8L6HV.mjs.map} +1 -1
- package/dist/{dist-BETEuYfn.mjs → dist-D39Yezrv.mjs} +1 -1
- package/dist/{dist-BETEuYfn.mjs.map → dist-D39Yezrv.mjs.map} +1 -1
- package/dist/{dist-Y1iryX8H.cjs → dist-DDZMFlal.cjs} +2 -2
- package/dist/{dist-Y1iryX8H.cjs.map → dist-DDZMFlal.cjs.map} +1 -1
- package/dist/{dist-Ck1Xpuzh.cjs → dist-DWs3-WOI.cjs} +1 -1
- package/dist/{dist-Ck1Xpuzh.cjs.map → dist-DWs3-WOI.cjs.map} +1 -1
- package/dist/{es-Dr47illR.cjs → es-DHLLltoR.cjs} +1 -1
- package/dist/{es-Dr47illR.cjs.map → es-DHLLltoR.cjs.map} +1 -1
- package/dist/{format-C3sl4r8U.cjs → format-B8vxOIbt.cjs} +1 -1
- package/dist/{format-C3sl4r8U.cjs.map → format-B8vxOIbt.cjs.map} +1 -1
- package/dist/index.cjs +66 -63
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +124 -15
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +124 -15
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +64 -63
- package/dist/index.mjs.map +1 -1
- package/dist/{order-status-badge-CPPesrcx.cjs → order-status-badge-CAu3UIzD.cjs} +3 -3
- package/dist/{order-status-badge-CPPesrcx.cjs.map → order-status-badge-CAu3UIzD.cjs.map} +1 -1
- package/dist/{order-status-badge-B2_tZYhG.mjs → order-status-badge-b0F_B7mu.mjs} +3 -3
- package/dist/{order-status-badge-B2_tZYhG.mjs.map → order-status-badge-b0F_B7mu.mjs.map} +1 -1
- package/dist/{sortable.esm-DFTEWOHN.mjs → sortable.esm-CJLSD-Ce.mjs} +1 -1
- package/dist/{sortable.esm-DFTEWOHN.mjs.map → sortable.esm-CJLSD-Ce.mjs.map} +1 -1
- package/dist/{use-account-8Bv6INGF.cjs → use-account-C5QI6NSe.cjs} +1 -1
- package/dist/{use-account-8Bv6INGF.cjs.map → use-account-C5QI6NSe.cjs.map} +1 -1
- package/dist/{use-account-B16Tor2Q.mjs → use-account-Cvig0exB.mjs} +1 -1
- package/dist/{use-account-B16Tor2Q.mjs.map → use-account-Cvig0exB.mjs.map} +1 -1
- package/dist/{use-mysite-portal-axe_PFzR.mjs → use-mysite-portal-BV-BP3CE.mjs} +1 -1
- package/dist/{use-mysite-portal-axe_PFzR.mjs.map → use-mysite-portal-BV-BP3CE.mjs.map} +1 -1
- package/dist/{use-mysite-portal-CJBowMpK.cjs → use-mysite-portal-DzDYRU0u.cjs} +1 -1
- package/dist/{use-mysite-portal-CJBowMpK.cjs.map → use-mysite-portal-DzDYRU0u.cjs.map} +1 -1
- package/dist/{use-store-CdYGxnIk.cjs → use-store-BLcehk1A.cjs} +1 -1
- package/dist/{use-store-CdYGxnIk.cjs.map → use-store-BLcehk1A.cjs.map} +1 -1
- package/dist/{use-store-BnHhQDYo.mjs → use-store-efmQhKpB.mjs} +1 -1
- package/dist/{use-store-BnHhQDYo.mjs.map → use-store-efmQhKpB.mjs.map} +1 -1
- package/package.json +12 -12
- package/dist/MySiteWidget-CEkSJtYk.cjs +0 -299
- package/dist/MySiteWidget-CEkSJtYk.cjs.map +0 -1
- package/dist/MySiteWidget-DePO8vUK.mjs +0 -282
- package/dist/MySiteWidget-DePO8vUK.mjs.map +0 -1
- package/dist/OrdersScreen-CH4wrbZJ.cjs +0 -9
- package/dist/ProductsScreen-A9LG5Pk7.mjs +0 -13
- package/dist/ProductsScreen-DFFOXSgX.cjs +0 -15
- package/dist/ScreenRenderer-Cv2rxvtF.mjs.map +0 -1
- package/dist/ScreenRenderer-DfeRRgBO.cjs.map +0 -1
- package/dist/ShareablesScreen-CoOLXqJ6.cjs +0 -17
- package/dist/ShareablesScreen-ysqC_x6z.mjs +0 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-account-
|
|
1
|
+
{"version":3,"file":"use-account-C5QI6NSe.cjs","names":["useAccountApi"],"sources":["../src/account/query-keys.ts","../src/hooks/use-account.ts"],"sourcesContent":["export const accountKeys = {\n all: [\"portalTenant\", \"account\"] as const,\n detail: (userId?: number) => [...accountKeys.all, userId] as const,\n} as const;\n\nexport const payKeys = {\n addresses: {\n all: [\"portalTenant\", \"addresses\"] as const,\n list: (userId?: number) => [...payKeys.addresses.all, userId] as const,\n },\n paymentMethods: {\n all: [\"portalTenant\", \"paymentMethods\"] as const,\n list: (userId?: number) => [...payKeys.paymentMethods.all, userId] as const,\n },\n pointsLedgers: {\n all: [\"portalTenant\", \"pointsLedgers\"] as const,\n list: (userId?: number) => [...payKeys.pointsLedgers.all, userId] as const,\n },\n} as const;\n","import { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { accountKeys } from \"../account/query-keys\";\n\n/**\n * Fetches the current user's account from GET /api/account.\n * Replaces the old useCurrentUser (which called non-existent /api/me).\n */\nexport function useAccount(): UseQueryResult<AccountRep> {\n const api = useAccountApi();\n\n return useQuery({\n queryKey: accountKeys.detail(),\n queryFn: async () => {\n const response = await api.fetchAccount();\n return response.account;\n },\n staleTime: 5 * 60 * 1000,\n });\n}\n"],"mappings":";;;;AAAA,MAAa,cAAc;CACzB,KAAK,CAAC,gBAAgB,UAAU;CAChC,SAAS,WAAoB,CAAC,GAAG,YAAY,KAAK,OAAO;CAC1D;AAED,MAAa,UAAU;CACrB,WAAW;EACT,KAAK,CAAC,gBAAgB,YAAY;EAClC,OAAO,WAAoB,CAAC,GAAG,QAAQ,UAAU,KAAK,OAAO;EAC9D;CACD,gBAAgB;EACd,KAAK,CAAC,gBAAgB,iBAAiB;EACvC,OAAO,WAAoB,CAAC,GAAG,QAAQ,eAAe,KAAK,OAAO;EACnE;CACD,eAAe;EACb,KAAK,CAAC,gBAAgB,gBAAgB;EACtC,OAAO,WAAoB,CAAC,GAAG,QAAQ,cAAc,KAAK,OAAO;EAClE;CACF;;;;;;;ACTD,SAAgB,aAAyC;CACvD,MAAM,MAAMA,4BAAAA,eAAe;AAE3B,SAAA,GAAA,sBAAA,UAAgB;EACd,UAAU,YAAY,QAAQ;EAC9B,SAAS,YAAY;AAEnB,WADiB,MAAM,IAAI,cAAc,EACzB;;EAElB,WAAW,MAAS;EACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-account-
|
|
1
|
+
{"version":3,"file":"use-account-Cvig0exB.mjs","names":[],"sources":["../src/account/query-keys.ts","../src/hooks/use-account.ts"],"sourcesContent":["export const accountKeys = {\n all: [\"portalTenant\", \"account\"] as const,\n detail: (userId?: number) => [...accountKeys.all, userId] as const,\n} as const;\n\nexport const payKeys = {\n addresses: {\n all: [\"portalTenant\", \"addresses\"] as const,\n list: (userId?: number) => [...payKeys.addresses.all, userId] as const,\n },\n paymentMethods: {\n all: [\"portalTenant\", \"paymentMethods\"] as const,\n list: (userId?: number) => [...payKeys.paymentMethods.all, userId] as const,\n },\n pointsLedgers: {\n all: [\"portalTenant\", \"pointsLedgers\"] as const,\n list: (userId?: number) => [...payKeys.pointsLedgers.all, userId] as const,\n },\n} as const;\n","import { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useAccountApi } from \"@fluid-app/portal-core/account-api-context\";\nimport type { AccountRep } from \"@fluid-app/portal-core/account-types\";\nimport { accountKeys } from \"../account/query-keys\";\n\n/**\n * Fetches the current user's account from GET /api/account.\n * Replaces the old useCurrentUser (which called non-existent /api/me).\n */\nexport function useAccount(): UseQueryResult<AccountRep> {\n const api = useAccountApi();\n\n return useQuery({\n queryKey: accountKeys.detail(),\n queryFn: async () => {\n const response = await api.fetchAccount();\n return response.account;\n },\n staleTime: 5 * 60 * 1000,\n });\n}\n"],"mappings":";;;AAAA,MAAa,cAAc;CACzB,KAAK,CAAC,gBAAgB,UAAU;CAChC,SAAS,WAAoB,CAAC,GAAG,YAAY,KAAK,OAAO;CAC1D;AAED,MAAa,UAAU;CACrB,WAAW;EACT,KAAK,CAAC,gBAAgB,YAAY;EAClC,OAAO,WAAoB,CAAC,GAAG,QAAQ,UAAU,KAAK,OAAO;EAC9D;CACD,gBAAgB;EACd,KAAK,CAAC,gBAAgB,iBAAiB;EACvC,OAAO,WAAoB,CAAC,GAAG,QAAQ,eAAe,KAAK,OAAO;EACnE;CACD,eAAe;EACb,KAAK,CAAC,gBAAgB,gBAAgB;EACtC,OAAO,WAAoB,CAAC,GAAG,QAAQ,cAAc,KAAK,OAAO;EAClE;CACF;;;;;;;ACTD,SAAgB,aAAyC;CACvD,MAAM,MAAM,eAAe;AAE3B,QAAO,SAAS;EACd,UAAU,YAAY,QAAQ;EAC9B,SAAS,YAAY;AAEnB,WADiB,MAAM,IAAI,cAAc,EACzB;;EAElB,WAAW,MAAS;EACrB,CAAC"}
|
|
@@ -138,4 +138,4 @@ function usePortalMySiteThemes() {
|
|
|
138
138
|
//#endregion
|
|
139
139
|
export { usePortalFavorites as a, usePortalMySiteThemes as c, usePortalUpdateLink as d, usePortalUpdateProfile as f, usePortalDeleteLink as i, usePortalReorderFavorites as l, usePortalCreateLink as n, usePortalLinks as o, usePortalUpdateSettings as p, usePortalDeleteFavorite as r, usePortalMySiteProfile as s, PORTAL_MYSITE_KEYS as t, usePortalReorderLinks as u };
|
|
140
140
|
|
|
141
|
-
//# sourceMappingURL=use-mysite-portal-
|
|
141
|
+
//# sourceMappingURL=use-mysite-portal-BV-BP3CE.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mysite-portal-axe_PFzR.mjs","names":[],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-mysite-portal-BV-BP3CE.mjs","names":[],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mysite-portal-CJBowMpK.cjs","names":["useMySiteApi"],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-mysite-portal-DzDYRU0u.cjs","names":["useMySiteApi"],"sources":["../../../mysite/ui/src/portal/hooks/use-mysite-portal.ts"],"sourcesContent":["\"use client\";\n\nimport { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\nimport { useMySiteApi } from \"@fluid-app/mysite-core/mysite-api-context\";\nimport type {\n MySiteProfile,\n MySiteLink,\n MySiteFavorite,\n MySiteTheme,\n CreateLinkBody,\n UpdateLinkBody,\n UpdateProfileBody,\n UpdateSettingsBody,\n AddFavoriteBody,\n} from \"@fluid-app/mysite-core/mysite-api-types\";\n\n// ---------------------------------------------------------------------------\n// Query keys — session-scoped, no userId/affiliateId needed\n// ---------------------------------------------------------------------------\n\nexport const PORTAL_MYSITE_KEYS = {\n profile: () => [\"portal-mysite\", \"profile\"] as const,\n links: () => [\"portal-mysite\", \"links\"] as const,\n favorites: () => [\"portal-mysite\", \"favorites\"] as const,\n themes: () => [\"portal-mysite\", \"themes\"] as const,\n};\n\n// ---------------------------------------------------------------------------\n// Profile hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteProfile() {\n const api = useMySiteApi();\n return useQuery<MySiteProfile>({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n queryFn: () => api.fetchProfile(),\n });\n}\n\nexport function usePortalUpdateProfile(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateProfileBody) => api.updateProfile(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\nexport function usePortalUpdateSettings(options?: { onSuccess?: () => void }) {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: UpdateSettingsBody) => api.updateSettings(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.profile(),\n });\n options?.onSuccess?.();\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Links hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalLinks() {\n const api = useMySiteApi();\n return useQuery<MySiteLink[]>({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n queryFn: () => api.listLinks(),\n });\n}\n\nexport function usePortalCreateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: CreateLinkBody) => api.createLink(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalUpdateLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({ linkId, body }: { linkId: number; body: UpdateLinkBody }) =>\n api.updateLink(linkId, body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalDeleteLink() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (linkId: number) => api.deleteLink(linkId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\nexport function usePortalReorderLinks() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteLink[];\n }) => api.reorderLinks(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n const previousData = queryClient.getQueryData<MySiteLink[]>(\n PORTAL_MYSITE_KEYS.links(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.links(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.links(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.links(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Favorites hooks\n// ---------------------------------------------------------------------------\n\nexport function usePortalFavorites() {\n const api = useMySiteApi();\n return useQuery<MySiteFavorite[]>({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n queryFn: () => api.listFavorites(),\n });\n}\n\nexport function usePortalAddFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (body: AddFavoriteBody) => api.addFavorite(body),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalDeleteFavorite() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: (favoriteId: number) => api.deleteFavorite(favoriteId),\n onSuccess: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\nexport function usePortalReorderFavorites() {\n const api = useMySiteApi();\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: ({\n orderedIds,\n }: {\n orderedIds: number[];\n optimisticItems: MySiteFavorite[];\n }) => api.reorderFavorites(orderedIds),\n onMutate: async ({ optimisticItems }) => {\n await queryClient.cancelQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n const previousData = queryClient.getQueryData<MySiteFavorite[]>(\n PORTAL_MYSITE_KEYS.favorites(),\n );\n queryClient.setQueryData(PORTAL_MYSITE_KEYS.favorites(), optimisticItems);\n return { previousData };\n },\n onError: (_err, _vars, context) => {\n if (context?.previousData) {\n queryClient.setQueryData(\n PORTAL_MYSITE_KEYS.favorites(),\n context.previousData,\n );\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: PORTAL_MYSITE_KEYS.favorites(),\n });\n },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Themes hook\n// ---------------------------------------------------------------------------\n\nexport function usePortalMySiteThemes() {\n const api = useMySiteApi();\n return useQuery<MySiteTheme[]>({\n queryKey: PORTAL_MYSITE_KEYS.themes(),\n queryFn: () => api.listThemes(),\n });\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-store-
|
|
1
|
+
{"version":3,"file":"use-store-BLcehk1A.cjs","names":["useStoreApi"],"sources":["../src/hooks/use-store.ts"],"sourcesContent":["import { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useStoreApi } from \"@fluid-app/portal-core/store-api-context\";\nimport type { Store } from \"@fluid-app/portal-core/store-types\";\n\n/**\n * Fetches the tenant store branding from GET /api/store.\n */\nexport function useStore(): UseQueryResult<Store> {\n const api = useStoreApi();\n\n return useQuery({\n queryKey: [\"portalTenant\", \"store\"],\n queryFn: async () => {\n const response = await api.fetchStore();\n return response.store;\n },\n staleTime: 5 * 60 * 1000,\n });\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,WAAkC;CAChD,MAAM,MAAMA,0BAAAA,aAAa;AAEzB,SAAA,GAAA,sBAAA,UAAgB;EACd,UAAU,CAAC,gBAAgB,QAAQ;EACnC,SAAS,YAAY;AAEnB,WADiB,MAAM,IAAI,YAAY,EACvB;;EAElB,WAAW,MAAS;EACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-store-
|
|
1
|
+
{"version":3,"file":"use-store-efmQhKpB.mjs","names":[],"sources":["../src/hooks/use-store.ts"],"sourcesContent":["import { useQuery, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useStoreApi } from \"@fluid-app/portal-core/store-api-context\";\nimport type { Store } from \"@fluid-app/portal-core/store-types\";\n\n/**\n * Fetches the tenant store branding from GET /api/store.\n */\nexport function useStore(): UseQueryResult<Store> {\n const api = useStoreApi();\n\n return useQuery({\n queryKey: [\"portalTenant\", \"store\"],\n queryFn: async () => {\n const response = await api.fetchStore();\n return response.store;\n },\n staleTime: 5 * 60 * 1000,\n });\n}\n"],"mappings":";;;;;;AAOA,SAAgB,WAAkC;CAChD,MAAM,MAAM,aAAa;AAEzB,QAAO,SAAS;EACd,UAAU,CAAC,gBAAgB,QAAQ;EACnC,SAAS,YAAY;AAEnB,WADiB,MAAM,IAAI,YAAY,EACvB;;EAElB,WAAW,MAAS;EACrB,CAAC"}
|
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.216",
|
|
4
4
|
"description": "SDK for building custom Fluid portals",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -76,46 +76,46 @@
|
|
|
76
76
|
"@fluid-app/cart-ui": "0.1.17",
|
|
77
77
|
"@fluid-app/company-switcher-core": "0.1.0",
|
|
78
78
|
"@fluid-app/company-switcher-ui": "0.1.0",
|
|
79
|
-
"@fluid-app/contacts-core": "0.1.0",
|
|
80
|
-
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
81
79
|
"@fluid-app/contacts-ui": "0.1.0",
|
|
80
|
+
"@fluid-app/file-picker-api-client": "0.1.0",
|
|
81
|
+
"@fluid-app/contacts-core": "0.1.0",
|
|
82
82
|
"@fluid-app/file-picker-core": "0.1.0",
|
|
83
83
|
"@fluid-app/fluid-pay-core": "0.1.0",
|
|
84
|
+
"@fluid-app/fluidos-api-client": "0.1.0",
|
|
84
85
|
"@fluid-app/messaging-api-client": "0.1.0",
|
|
85
86
|
"@fluid-app/messaging-core": "0.1.0",
|
|
86
87
|
"@fluid-app/messaging-ui": "0.1.0",
|
|
87
|
-
"@fluid-app/fluidos-api-client": "0.1.0",
|
|
88
88
|
"@fluid-app/mysite-core": "0.1.0",
|
|
89
89
|
"@fluid-app/mysite-ui": "0.1.0",
|
|
90
90
|
"@fluid-app/orders-core": "0.1.0",
|
|
91
|
-
"@fluid-app/permissions": "0.1.0",
|
|
92
91
|
"@fluid-app/orders-ui": "0.1.0",
|
|
93
92
|
"@fluid-app/portal-app-download-ui": "0.1.0",
|
|
93
|
+
"@fluid-app/permissions": "0.1.0",
|
|
94
|
+
"@fluid-app/portal-core": "0.1.23",
|
|
94
95
|
"@fluid-app/portal-preview": "0.1.0",
|
|
95
|
-
"@fluid-app/portal-react": "0.1.0",
|
|
96
96
|
"@fluid-app/portal-pro-upgrade-ui": "0.1.0",
|
|
97
|
+
"@fluid-app/portal-react": "0.1.0",
|
|
97
98
|
"@fluid-app/portal-tenant-api-client": "0.1.0",
|
|
98
|
-
"@fluid-app/portal-core": "0.1.23",
|
|
99
99
|
"@fluid-app/portal-tenant-contacts-api-client": "0.1.0",
|
|
100
|
+
"@fluid-app/portal-tenant-content-api-client": "0.1.0",
|
|
100
101
|
"@fluid-app/portal-tenant-pay-api-client": "0.1.0",
|
|
101
102
|
"@fluid-app/portal-tenant-mysite-api-client": "0.1.0",
|
|
102
103
|
"@fluid-app/portal-tenant-store-api-client": "0.1.0",
|
|
103
|
-
"@fluid-app/portal-tenant-content-api-client": "0.1.0",
|
|
104
104
|
"@fluid-app/portal-widgets": "0.1.22",
|
|
105
|
-
"@fluid-app/products-core": "0.1.0",
|
|
106
105
|
"@fluid-app/products-api-client": "0.1.0",
|
|
106
|
+
"@fluid-app/products-core": "0.1.0",
|
|
107
107
|
"@fluid-app/profile-core": "0.1.0",
|
|
108
108
|
"@fluid-app/profile-ui": "0.1.0",
|
|
109
109
|
"@fluid-app/query-persister": "0.1.0",
|
|
110
110
|
"@fluid-app/shareables-core": "0.1.0",
|
|
111
111
|
"@fluid-app/shareables-ui": "0.1.0",
|
|
112
112
|
"@fluid-app/shop-ui": "0.1.0",
|
|
113
|
-
"@fluid-app/store-api-client": "0.1.0",
|
|
114
113
|
"@fluid-app/store-core": "0.1.0",
|
|
114
|
+
"@fluid-app/store-api-client": "0.1.0",
|
|
115
115
|
"@fluid-app/subscriptions-core": "0.1.0",
|
|
116
|
+
"@fluid-app/typescript-config": "0.0.0",
|
|
116
117
|
"@fluid-app/subscriptions-ui": "0.1.0",
|
|
117
|
-
"@fluid-app/ui-primitives": "0.1.13"
|
|
118
|
-
"@fluid-app/typescript-config": "0.0.0"
|
|
118
|
+
"@fluid-app/ui-primitives": "0.1.13"
|
|
119
119
|
},
|
|
120
120
|
"peerDependencies": {
|
|
121
121
|
"@hookform/resolvers": "^5.2.2",
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
const require_chunk = require("./chunk-9hOWP6kD.cjs");
|
|
2
|
-
const require_registry_context = require("./registry-context-RWj2xJlC.cjs");
|
|
3
|
-
const require_error_state = require("./error-state-C-AalLnz.cjs");
|
|
4
|
-
const require_registries = require("./registries-CpUM406S.cjs");
|
|
5
|
-
let react = require("react");
|
|
6
|
-
let _tanstack_react_query = require("@tanstack/react-query");
|
|
7
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
-
let lucide_react = require("lucide-react");
|
|
9
|
-
//#region ../widgets/src/hooks/use-mysite.preview.ts
|
|
10
|
-
const PREVIEW_DATA = {
|
|
11
|
-
url: "https://mysite.example.com",
|
|
12
|
-
views: 1248,
|
|
13
|
-
leads: 43,
|
|
14
|
-
userName: "Jane"
|
|
15
|
-
};
|
|
16
|
-
//#endregion
|
|
17
|
-
//#region ../widgets/src/hooks/use-mysite.ts
|
|
18
|
-
function useMySite() {
|
|
19
|
-
const widgetsApi = require_error_state.useWidgetsApi();
|
|
20
|
-
const { isPreview } = require_error_state.useWidgetPreviewContext();
|
|
21
|
-
const { baseUrl } = require_registry_context.useDataSourceRegistryConfig();
|
|
22
|
-
return (0, _tanstack_react_query.useQuery)({
|
|
23
|
-
queryKey: [
|
|
24
|
-
"portal-widget-use",
|
|
25
|
-
"mysite",
|
|
26
|
-
isPreview ? "preview" : baseUrl
|
|
27
|
-
],
|
|
28
|
-
queryFn: ({ signal }) => widgetsApi.fetchMySite(signal),
|
|
29
|
-
enabled: !isPreview,
|
|
30
|
-
...isPreview && { placeholderData: PREVIEW_DATA }
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
//#endregion
|
|
34
|
-
//#region ../widgets/src/widgets/MySiteWidget.tsx
|
|
35
|
-
var MySiteWidget_exports = /* @__PURE__ */ require_chunk.__exportAll({
|
|
36
|
-
MySiteWidget: () => MySiteWidget,
|
|
37
|
-
mySiteWidgetPropertySchema: () => mySiteWidgetPropertySchema
|
|
38
|
-
});
|
|
39
|
-
function MySiteWidget({ titleEnabled = true, titleText = "My Site", titleFontSize = "lg", titleColor = "foreground", background = {
|
|
40
|
-
type: "solid",
|
|
41
|
-
color: "background"
|
|
42
|
-
}, textColor = "foreground", accentColor = "primary", padding = 4, borderRadius = "md", borderWidth = "none", borderColor = "muted", showPreview = true, showAnalytics = true, className, ...props }) {
|
|
43
|
-
const backgroundColor = background.color || "background";
|
|
44
|
-
const backgroundImage = (background.resource?.image_url || background.resource?.imageUrl) && background.type === "image" ? `url(${background.resource.image_url || background.resource.imageUrl})` : "none";
|
|
45
|
-
const { data: mySite, isLoading, isError } = useMySite();
|
|
46
|
-
const { isPreview } = require_error_state.useWidgetPreviewContext();
|
|
47
|
-
const previewUrl = (0, react.useMemo)(() => {
|
|
48
|
-
if (!mySite?.url) return "";
|
|
49
|
-
try {
|
|
50
|
-
const urlObj = new URL(mySite.url);
|
|
51
|
-
urlObj.searchParams.set("preview", "true");
|
|
52
|
-
return urlObj.toString();
|
|
53
|
-
} catch {
|
|
54
|
-
return mySite.url;
|
|
55
|
-
}
|
|
56
|
-
}, [mySite?.url]);
|
|
57
|
-
const displayUrl = (0, react.useMemo)(() => mySite?.url ? mySite.url.replace(/^https?:\/\//, "") : "", [mySite?.url]);
|
|
58
|
-
if (!isLoading && !isError && !mySite?.url) return null;
|
|
59
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
60
|
-
className: `@container overflow-hidden rounded-${borderRadius} ${require_registries.borderWidthClasses[borderWidth]} ${borderWidth !== "none" ? require_registries.borderColorClasses[borderColor] : ""} bg-${backgroundColor} text-${textColor} ${className}`,
|
|
61
|
-
style: { backgroundImage },
|
|
62
|
-
...props,
|
|
63
|
-
children: [titleEnabled && titleText && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
64
|
-
className: `p-${padding} pb-0`,
|
|
65
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h2", {
|
|
66
|
-
className: `text-${titleFontSize} font-header font-bold text-${titleColor}`,
|
|
67
|
-
children: mySite?.userName ? `${mySite.userName}'s ${titleText}` : titleText
|
|
68
|
-
})
|
|
69
|
-
}), isLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
70
|
-
className: `flex min-h-[200px] items-center justify-center p-${padding}`,
|
|
71
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-current border-t-transparent" })
|
|
72
|
-
}) : isError ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_error_state.ErrorState, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
73
|
-
className: `p-${padding}`,
|
|
74
|
-
children: [showPreview && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
75
|
-
className: "border-muted mb-4 overflow-hidden rounded-lg border",
|
|
76
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
77
|
-
className: "bg-[#f3f4f6] px-3 py-2 text-[#6b7280]",
|
|
78
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
79
|
-
className: "flex items-center gap-2",
|
|
80
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
81
|
-
className: "flex gap-1",
|
|
82
|
-
children: [
|
|
83
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-3 w-3 rounded-full bg-[#ff5f57]" }),
|
|
84
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-3 w-3 rounded-full bg-[#febc2e]" }),
|
|
85
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-3 w-3 rounded-full bg-[#28c840]" })
|
|
86
|
-
]
|
|
87
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
88
|
-
className: "flex-1 text-center",
|
|
89
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
|
|
90
|
-
href: mySite?.url ?? "",
|
|
91
|
-
target: "_blank",
|
|
92
|
-
rel: "noopener noreferrer",
|
|
93
|
-
className: "text-sm opacity-60",
|
|
94
|
-
children: displayUrl
|
|
95
|
-
})
|
|
96
|
-
})]
|
|
97
|
-
})
|
|
98
|
-
}), isPreview ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MySiteStaticPreview, { displayUrl }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
99
|
-
className: "relative h-[200px] overflow-hidden bg-[#ffffff] @md:h-[280px]",
|
|
100
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("iframe", {
|
|
101
|
-
className: "pointer-events-none absolute inset-0 h-[250%] w-[250%] origin-top-left scale-[0.4] bg-[#ffffff]",
|
|
102
|
-
src: previewUrl,
|
|
103
|
-
title: "MySite Preview"
|
|
104
|
-
})
|
|
105
|
-
})]
|
|
106
|
-
}), showAnalytics && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
107
|
-
className: "grid grid-cols-2 gap-3",
|
|
108
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
109
|
-
className: "border-muted bg-background rounded-lg border p-3",
|
|
110
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
111
|
-
className: "text-xs opacity-60",
|
|
112
|
-
children: "Visitors This Month"
|
|
113
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
114
|
-
className: `text-xl font-bold text-${accentColor}`,
|
|
115
|
-
children: mySite?.views ?? 0
|
|
116
|
-
})]
|
|
117
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
118
|
-
className: "border-muted bg-background rounded-lg border p-3",
|
|
119
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
120
|
-
className: "text-xs opacity-60",
|
|
121
|
-
children: "Total Leads"
|
|
122
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
123
|
-
className: `text-xl font-bold text-${accentColor}`,
|
|
124
|
-
children: mySite?.leads ?? 0
|
|
125
|
-
})]
|
|
126
|
-
})]
|
|
127
|
-
})]
|
|
128
|
-
})]
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Static placeholder preview for the MySite widget shown in the builder palette,
|
|
133
|
-
* drag previews, and other preview contexts where an iframe cannot load.
|
|
134
|
-
*/
|
|
135
|
-
function MySiteStaticPreview({ displayUrl }) {
|
|
136
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
137
|
-
className: "bg-muted/30 flex h-[200px] flex-col items-center justify-center gap-3 p-4 text-center",
|
|
138
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
139
|
-
className: "bg-muted flex h-10 w-10 items-center justify-center rounded-full",
|
|
140
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Globe, { className: "text-muted-foreground h-5 w-5" })
|
|
141
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
142
|
-
className: "text-foreground text-sm font-medium",
|
|
143
|
-
children: "My Site"
|
|
144
|
-
}), displayUrl && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
145
|
-
className: "text-muted-foreground mt-0.5 text-xs",
|
|
146
|
-
children: displayUrl
|
|
147
|
-
})] })]
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
const mySiteWidgetPropertySchema = {
|
|
151
|
-
widgetType: "MySiteWidget",
|
|
152
|
-
displayName: "MySite Widget",
|
|
153
|
-
tabsConfig: [{
|
|
154
|
-
id: "styling",
|
|
155
|
-
label: "Styling"
|
|
156
|
-
}],
|
|
157
|
-
fields: [
|
|
158
|
-
{
|
|
159
|
-
key: "titleEnabled",
|
|
160
|
-
label: "Widget Title",
|
|
161
|
-
type: "boolean",
|
|
162
|
-
description: "Enable the title displayed above the widget",
|
|
163
|
-
defaultValue: true,
|
|
164
|
-
tab: "styling",
|
|
165
|
-
group: "Title"
|
|
166
|
-
},
|
|
167
|
-
{
|
|
168
|
-
key: "titleText",
|
|
169
|
-
label: "Title",
|
|
170
|
-
type: "text",
|
|
171
|
-
description: "Title text displayed above the widget",
|
|
172
|
-
defaultValue: "My Site",
|
|
173
|
-
tab: "styling",
|
|
174
|
-
group: "Title",
|
|
175
|
-
requiresKeyToBeTrue: "titleEnabled"
|
|
176
|
-
},
|
|
177
|
-
require_registries.getFontSizeField({
|
|
178
|
-
key: "titleFontSize",
|
|
179
|
-
label: "Title Font Size",
|
|
180
|
-
description: "Font size for the widget title",
|
|
181
|
-
defaultValue: "xl",
|
|
182
|
-
tab: "styling",
|
|
183
|
-
group: "Title",
|
|
184
|
-
requiresKeyToBeTrue: "titleEnabled"
|
|
185
|
-
}),
|
|
186
|
-
require_registries.getColorField({
|
|
187
|
-
key: "titleColor",
|
|
188
|
-
label: "Title Color",
|
|
189
|
-
description: "Color for the widget title",
|
|
190
|
-
defaultValue: "foreground",
|
|
191
|
-
tab: "styling",
|
|
192
|
-
group: "Title",
|
|
193
|
-
requiresKeyToBeTrue: "titleEnabled"
|
|
194
|
-
}),
|
|
195
|
-
{
|
|
196
|
-
type: "background",
|
|
197
|
-
key: "background",
|
|
198
|
-
label: "Background",
|
|
199
|
-
description: "Background for the widget container",
|
|
200
|
-
defaultValue: "background",
|
|
201
|
-
tab: "styling",
|
|
202
|
-
group: "Design"
|
|
203
|
-
},
|
|
204
|
-
require_registries.getColorField({
|
|
205
|
-
key: "textColor",
|
|
206
|
-
label: "Text Color",
|
|
207
|
-
description: "Default text color for widget content",
|
|
208
|
-
defaultValue: "foreground",
|
|
209
|
-
tab: "styling",
|
|
210
|
-
group: "Design"
|
|
211
|
-
}),
|
|
212
|
-
require_registries.getColorField({
|
|
213
|
-
key: "accentColor",
|
|
214
|
-
label: "Accent Color",
|
|
215
|
-
description: "Color used for analytics numbers",
|
|
216
|
-
defaultValue: "primary",
|
|
217
|
-
tab: "styling",
|
|
218
|
-
group: "Design"
|
|
219
|
-
}),
|
|
220
|
-
{
|
|
221
|
-
key: "separator",
|
|
222
|
-
type: "separator",
|
|
223
|
-
label: "Separator",
|
|
224
|
-
tab: "styling",
|
|
225
|
-
group: "Design"
|
|
226
|
-
},
|
|
227
|
-
require_registries.getPaddingField({
|
|
228
|
-
key: "padding",
|
|
229
|
-
label: "Padding",
|
|
230
|
-
description: "Padding around the widget container",
|
|
231
|
-
defaultValue: 4,
|
|
232
|
-
tab: "styling",
|
|
233
|
-
group: "Design"
|
|
234
|
-
}),
|
|
235
|
-
require_registries.getBorderRadiusField({
|
|
236
|
-
key: "borderRadius",
|
|
237
|
-
label: "Border Radius",
|
|
238
|
-
description: "Border radius for the widget container",
|
|
239
|
-
defaultValue: "md",
|
|
240
|
-
tab: "styling",
|
|
241
|
-
group: "Design"
|
|
242
|
-
}),
|
|
243
|
-
require_registries.getBorderWidthField({
|
|
244
|
-
key: "borderWidth",
|
|
245
|
-
label: "Border Width",
|
|
246
|
-
description: "Border width for the widget",
|
|
247
|
-
defaultValue: "none",
|
|
248
|
-
tab: "styling",
|
|
249
|
-
group: "Design"
|
|
250
|
-
}),
|
|
251
|
-
require_registries.getBorderColorField({
|
|
252
|
-
key: "borderColor",
|
|
253
|
-
label: "Border Color",
|
|
254
|
-
description: "Border color for the widget",
|
|
255
|
-
defaultValue: "muted",
|
|
256
|
-
tab: "styling",
|
|
257
|
-
group: "Design"
|
|
258
|
-
}),
|
|
259
|
-
{
|
|
260
|
-
key: "showPreview",
|
|
261
|
-
label: "Show Preview",
|
|
262
|
-
type: "boolean",
|
|
263
|
-
description: "Show the MySite iframe preview",
|
|
264
|
-
defaultValue: true,
|
|
265
|
-
tab: "styling",
|
|
266
|
-
group: "Display"
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
key: "showAnalytics",
|
|
270
|
-
label: "Show Analytics",
|
|
271
|
-
type: "boolean",
|
|
272
|
-
description: "Show the analytics section",
|
|
273
|
-
defaultValue: true,
|
|
274
|
-
tab: "styling",
|
|
275
|
-
group: "Display"
|
|
276
|
-
}
|
|
277
|
-
]
|
|
278
|
-
};
|
|
279
|
-
//#endregion
|
|
280
|
-
Object.defineProperty(exports, "MySiteWidget", {
|
|
281
|
-
enumerable: true,
|
|
282
|
-
get: function() {
|
|
283
|
-
return MySiteWidget;
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
Object.defineProperty(exports, "MySiteWidget_exports", {
|
|
287
|
-
enumerable: true,
|
|
288
|
-
get: function() {
|
|
289
|
-
return MySiteWidget_exports;
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
Object.defineProperty(exports, "mySiteWidgetPropertySchema", {
|
|
293
|
-
enumerable: true,
|
|
294
|
-
get: function() {
|
|
295
|
-
return mySiteWidgetPropertySchema;
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
|
|
299
|
-
//# sourceMappingURL=MySiteWidget-CEkSJtYk.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MySiteWidget-CEkSJtYk.cjs","names":["useWidgetsApi","useWidgetPreviewContext","useDataSourceRegistryConfig","useWidgetPreviewContext","borderWidthClasses","borderColorClasses","ErrorState","Globe","getFontSizeField","getColorField","getPaddingField","getBorderRadiusField","getBorderWidthField","getBorderColorField"],"sources":["../../widgets/src/hooks/use-mysite.preview.ts","../../widgets/src/hooks/use-mysite.ts","../../widgets/src/widgets/MySiteWidget.tsx"],"sourcesContent":["import type { MySiteData } from \"@fluid-app/portal-core/widgets-api-types\";\n\nexport const PREVIEW_DATA: MySiteData = {\n url: \"https://mysite.example.com\",\n views: 1248,\n leads: 43,\n userName: \"Jane\",\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-mysite.preview\";\nimport type { MySiteData } from \"@fluid-app/portal-core/widgets-api-types\";\n\nexport type { MySiteData } from \"@fluid-app/portal-core/widgets-api-types\";\n\nexport function useMySite(): UseQueryResult<MySiteData, Error> {\n const widgetsApi = useWidgetsApi();\n const { isPreview } = useWidgetPreviewContext();\n const { baseUrl } = useDataSourceRegistryConfig();\n\n return useQuery({\n queryKey: [\n \"portal-widget-use\",\n \"mysite\",\n isPreview ? \"preview\" : baseUrl,\n ] as const,\n queryFn: ({ signal }) => widgetsApi.fetchMySite(signal),\n enabled: !isPreview,\n ...(isPreview && { placeholderData: PREVIEW_DATA }),\n });\n}\n","import { useMemo, type ComponentProps } 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 getBorderRadiusField,\n getBorderWidthField,\n getBorderColorField,\n borderWidthClasses,\n borderColorClasses,\n getColorField,\n getFontSizeField,\n getPaddingField,\n} from \"../core/fields\";\nimport { Globe } from \"lucide-react\";\nimport { useMySite } from \"../hooks/use-mysite\";\nimport { useWidgetPreviewContext } from \"@fluid-app/portal-react/data-sources/preview-context\";\nimport { ErrorState } from \"../components/error-state\";\n\ntype MySiteWidgetProps = ComponentProps<\"div\"> & {\n // Title settings\n titleEnabled?: boolean;\n titleText?: string;\n titleFontSize?: FontSizeOptions;\n titleColor?: ColorOptions;\n\n // Design settings\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n borderWidth?: BorderWidthOptions;\n borderColor?: ColorOptions;\n\n // Display settings\n showPreview?: boolean;\n showAnalytics?: boolean;\n};\n\nexport function MySiteWidget({\n // Title defaults\n titleEnabled = true,\n titleText = \"My Site\",\n titleFontSize = \"lg\",\n titleColor = \"foreground\",\n\n // Design defaults\n background = {\n type: \"solid\",\n color: \"background\",\n },\n textColor = \"foreground\",\n accentColor = \"primary\",\n padding = 4,\n borderRadius = \"md\",\n borderWidth = \"none\",\n borderColor = \"muted\",\n\n // Display defaults\n showPreview = true,\n showAnalytics = true,\n\n className,\n ...props\n}: MySiteWidgetProps): React.JSX.Element | null {\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 const { data: mySite, isLoading, isError } = useMySite();\n const { isPreview } = useWidgetPreviewContext();\n\n // Generate preview URL with preview=true parameter\n const previewUrl = useMemo(() => {\n if (!mySite?.url) return \"\";\n try {\n const urlObj = new URL(mySite.url);\n urlObj.searchParams.set(\"preview\", \"true\");\n return urlObj.toString();\n } catch {\n return mySite.url;\n }\n }, [mySite?.url]);\n\n // Display URL without protocol\n const displayUrl = useMemo(\n () => (mySite?.url ? mySite.url.replace(/^https?:\\/\\//, \"\") : \"\"),\n [mySite?.url],\n );\n\n // Don't render if no MySite URL exists (but still render if errored or loading)\n if (!isLoading && !isError && !mySite?.url) {\n return null;\n }\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 {/* Title */}\n {titleEnabled && titleText && (\n <div className={`p-${padding} pb-0`}>\n <h2\n className={`text-${titleFontSize} font-header font-bold text-${titleColor}`}\n >\n {mySite?.userName ? `${mySite.userName}'s ${titleText}` : titleText}\n </h2>\n </div>\n )}\n\n {/* Loading state */}\n {isLoading ? (\n <div\n className={`flex min-h-[200px] items-center justify-center p-${padding}`}\n >\n <div className=\"h-8 w-8 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n </div>\n ) : isError ? (\n <ErrorState />\n ) : (\n <div className={`p-${padding}`}>\n {/* MySite preview */}\n {showPreview && (\n <div className=\"border-muted mb-4 overflow-hidden rounded-lg border\">\n {/* Browser chrome */}\n <div className=\"bg-[#f3f4f6] px-3 py-2 text-[#6b7280]\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex gap-1\">\n <div className=\"h-3 w-3 rounded-full bg-[#ff5f57]\" />\n <div className=\"h-3 w-3 rounded-full bg-[#febc2e]\" />\n <div className=\"h-3 w-3 rounded-full bg-[#28c840]\" />\n </div>\n <div className=\"flex-1 text-center\">\n <a\n href={mySite?.url ?? \"\"}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm opacity-60\"\n >\n {displayUrl}\n </a>\n </div>\n </div>\n </div>\n {/* Preview content: static placeholder in preview mode, iframe otherwise */}\n {isPreview ? (\n <MySiteStaticPreview displayUrl={displayUrl} />\n ) : (\n <div className=\"relative h-[200px] overflow-hidden bg-[#ffffff] @md:h-[280px]\">\n <iframe\n className=\"pointer-events-none absolute inset-0 h-[250%] w-[250%] origin-top-left scale-[0.4] bg-[#ffffff]\"\n src={previewUrl}\n title=\"MySite Preview\"\n />\n </div>\n )}\n </div>\n )}\n\n {/* Analytics data */}\n {showAnalytics && (\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"border-muted bg-background rounded-lg border p-3\">\n <div className=\"text-xs opacity-60\">Visitors This Month</div>\n <div className={`text-xl font-bold text-${accentColor}`}>\n {mySite?.views ?? 0}\n </div>\n </div>\n <div className=\"border-muted bg-background rounded-lg border p-3\">\n <div className=\"text-xs opacity-60\">Total Leads</div>\n <div className={`text-xl font-bold text-${accentColor}`}>\n {mySite?.leads ?? 0}\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n );\n}\n\n/**\n * Static placeholder preview for the MySite widget shown in the builder palette,\n * drag previews, and other preview contexts where an iframe cannot load.\n */\nfunction MySiteStaticPreview({\n displayUrl,\n}: {\n displayUrl: string;\n}): React.JSX.Element {\n return (\n <div className=\"bg-muted/30 flex h-[200px] flex-col items-center justify-center gap-3 p-4 text-center\">\n <div className=\"bg-muted flex h-10 w-10 items-center justify-center rounded-full\">\n <Globe className=\"text-muted-foreground h-5 w-5\" />\n </div>\n <div>\n <p className=\"text-foreground text-sm font-medium\">My Site</p>\n {displayUrl && (\n <p className=\"text-muted-foreground mt-0.5 text-xs\">{displayUrl}</p>\n )}\n </div>\n </div>\n );\n}\n\nexport const mySiteWidgetPropertySchema: WidgetPropertySchema = {\n widgetType: \"MySiteWidget\",\n displayName: \"MySite Widget\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [\n // Styling Tab - Title Group\n {\n key: \"titleEnabled\",\n label: \"Widget Title\",\n type: \"boolean\",\n description: \"Enable the title displayed above the widget\",\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 widget\",\n defaultValue: \"My Site\",\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 // Styling Tab - Design Group\n {\n type: \"background\",\n key: \"background\",\n label: \"Background\",\n description: \"Background for the widget 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 widget content\",\n defaultValue: \"foreground\",\n tab: \"styling\",\n group: \"Design\",\n }),\n getColorField({\n key: \"accentColor\",\n label: \"Accent Color\",\n description: \"Color used for analytics numbers\",\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 widget 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 widget 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 widget\",\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 widget\",\n defaultValue: \"muted\",\n tab: \"styling\",\n group: \"Design\",\n }),\n\n // Styling Tab - Display Group\n {\n key: \"showPreview\",\n label: \"Show Preview\",\n type: \"boolean\",\n description: \"Show the MySite iframe preview\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Display\",\n },\n {\n key: \"showAnalytics\",\n label: \"Show Analytics\",\n type: \"boolean\",\n description: \"Show the analytics section\",\n defaultValue: true,\n tab: \"styling\",\n group: \"Display\",\n },\n ],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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Cb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EACFC,mBAAAA,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACP,qBAAqB;GACtB,CAAC;EAGF;GACE,MAAM;GACN,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACDA,mBAAAA,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,CAAC;EACFA,mBAAAA,cAAc;GACZ,KAAK;GACL,OAAO;GACP,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR,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,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACD;GACE,KAAK;GACL,OAAO;GACP,MAAM;GACN,aAAa;GACb,cAAc;GACd,KAAK;GACL,OAAO;GACR;EACF;CACF"}
|