@fluid-app/portal-sdk 0.1.62 → 0.1.63
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-CLWxnFsd.mjs → AppDownloadScreen-DUGGDlr4.mjs} +9 -9
- package/dist/{AppDownloadScreen-CH96k5cA.cjs → AppDownloadScreen-DW3cBnbI.cjs} +9 -9
- package/dist/{AppDownloadScreen-BH7GQ-qi.cjs → AppDownloadScreen-oMzxBETr.cjs} +2 -2
- package/dist/{AppDownloadScreen-BH7GQ-qi.cjs.map → AppDownloadScreen-oMzxBETr.cjs.map} +1 -1
- package/dist/{AppDownloadScreen-DcVl4492.mjs → AppDownloadScreen-pm8fLxZX.mjs} +2 -2
- package/dist/{AppDownloadScreen-DcVl4492.mjs.map → AppDownloadScreen-pm8fLxZX.mjs.map} +1 -1
- package/dist/{CarouselWidget-lx6QKa-q.mjs → CarouselWidget-BGdjG-xz.mjs} +2 -2
- package/dist/{CarouselWidget-lx6QKa-q.mjs.map → CarouselWidget-BGdjG-xz.mjs.map} +1 -1
- package/dist/{CarouselWidget-B74eKTnT.cjs → CarouselWidget-CC6ZQZ8e.cjs} +2 -2
- package/dist/{CarouselWidget-C_Bpw7nB.cjs → CarouselWidget-DgskhtDP.cjs} +2 -2
- package/dist/{CarouselWidget-C_Bpw7nB.cjs.map → CarouselWidget-DgskhtDP.cjs.map} +1 -1
- package/dist/{ContactsScreen-IAGjo08W.cjs → ContactsScreen-B3k1fVQx.cjs} +2 -2
- package/dist/{ContactsScreen-IAGjo08W.cjs.map → ContactsScreen-B3k1fVQx.cjs.map} +1 -1
- package/dist/{ContactsScreen-Dk9bp3Jj.mjs → ContactsScreen-CH6u8cRi.mjs} +2 -2
- package/dist/{ContactsScreen-Dk9bp3Jj.mjs.map → ContactsScreen-CH6u8cRi.mjs.map} +1 -1
- package/dist/{ContactsScreen-B8iWQTbP.cjs → ContactsScreen-C_c2yy5J.cjs} +9 -9
- package/dist/{ContactsScreen-C8Bp62F4.mjs → ContactsScreen-ruymx9Pi.mjs} +9 -9
- package/dist/{FluidProvider-9JuTycML.cjs → FluidProvider-SnHdl4ww.cjs} +13 -13
- package/dist/{FluidProvider-9JuTycML.cjs.map → FluidProvider-SnHdl4ww.cjs.map} +1 -1
- package/dist/{FluidProvider-9ZC28GXK.mjs → FluidProvider-uuu90TSG.mjs} +13 -13
- package/dist/{FluidProvider-9ZC28GXK.mjs.map → FluidProvider-uuu90TSG.mjs.map} +1 -1
- package/dist/{ImageWidget-BLnPO0Ba.mjs → ImageWidget-BHwucvLx.mjs} +2 -2
- package/dist/{ImageWidget-BLnPO0Ba.mjs.map → ImageWidget-BHwucvLx.mjs.map} +1 -1
- package/dist/{ImageWidget-DbDhysGw.cjs → ImageWidget-BRfKvv08.cjs} +2 -2
- package/dist/{ImageWidget-DbDhysGw.cjs.map → ImageWidget-BRfKvv08.cjs.map} +1 -1
- package/dist/{ListWidget-D6XZ53U9.cjs → ListWidget-BwyavG5d.cjs} +2 -2
- package/dist/{ListWidget-CiV9j7vm.cjs → ListWidget-DAtEwFCR.cjs} +2 -2
- package/dist/{ListWidget-CiV9j7vm.cjs.map → ListWidget-DAtEwFCR.cjs.map} +1 -1
- package/dist/{ListWidget-DuPrSL9o.mjs → ListWidget-ZqCYH78q.mjs} +2 -2
- package/dist/{ListWidget-DuPrSL9o.mjs.map → ListWidget-ZqCYH78q.mjs.map} +1 -1
- package/dist/{MediaRenderer-CY2gR7hk.mjs → MediaRenderer-B3R-Q6Qt.mjs} +8 -5
- package/dist/MediaRenderer-B3R-Q6Qt.mjs.map +1 -0
- package/dist/{MediaRenderer-CkMwv5q1.cjs → MediaRenderer-CRKJcPD9.cjs} +8 -5
- package/dist/MediaRenderer-CRKJcPD9.cjs.map +1 -0
- package/dist/{MessagingScreen-DpVYlTyB.cjs → MessagingScreen-27HyrQ1V.cjs} +3 -3
- package/dist/{MessagingScreen-DpVYlTyB.cjs.map → MessagingScreen-27HyrQ1V.cjs.map} +1 -1
- package/dist/{MessagingScreen-BuZTTy-l.cjs → MessagingScreen-C7xDqpLm.cjs} +9 -9
- package/dist/{MessagingScreen-RhCqymLN.mjs → MessagingScreen-CGS474IP.mjs} +9 -9
- package/dist/{MessagingScreen-DdQPLrmd.mjs → MessagingScreen-tFbOXFq4.mjs} +3 -3
- package/dist/{MessagingScreen-DdQPLrmd.mjs.map → MessagingScreen-tFbOXFq4.mjs.map} +1 -1
- package/dist/{MySiteScreen-DadI19bJ.cjs → MySiteScreen-B_UnnWDX.cjs} +9 -9
- package/dist/{MySiteScreen-DNn3aWn0.cjs → MySiteScreen-C-cS0_qZ.cjs} +2 -2
- package/dist/{MySiteScreen-DNn3aWn0.cjs.map → MySiteScreen-C-cS0_qZ.cjs.map} +1 -1
- package/dist/{MySiteScreen-Ddxdk1Pe.mjs → MySiteScreen-DR_xY95c.mjs} +2 -2
- package/dist/{MySiteScreen-Ddxdk1Pe.mjs.map → MySiteScreen-DR_xY95c.mjs.map} +1 -1
- package/dist/{MySiteScreen-Dbvaw1nu.mjs → MySiteScreen-bUfo9RDR.mjs} +9 -9
- package/dist/{NestedWidget-7Fn8H4aI.cjs → NestedWidget-BzFrzPFd.cjs} +2 -2
- package/dist/{NestedWidget-DS8F_8SN.mjs → NestedWidget-JS_3-isb.mjs} +2 -2
- package/dist/{NestedWidget-DS8F_8SN.mjs.map → NestedWidget-JS_3-isb.mjs.map} +1 -1
- package/dist/{NestedWidget-C1neMqH7.cjs → NestedWidget-cl38JElu.cjs} +2 -2
- package/dist/{NestedWidget-C1neMqH7.cjs.map → NestedWidget-cl38JElu.cjs.map} +1 -1
- package/dist/{OrdersScreen-QFndb0Oi.mjs → OrdersScreen-CO9vm0Wj.mjs} +9 -9
- package/dist/{OrdersScreen-CwTIkQNI.mjs → OrdersScreen-CQzgIEa4.mjs} +3 -3
- package/dist/{OrdersScreen-CwTIkQNI.mjs.map → OrdersScreen-CQzgIEa4.mjs.map} +1 -1
- package/dist/{OrdersScreen-CZdh8mbE.cjs → OrdersScreen-JCVS__ag.cjs} +9 -9
- package/dist/{OrdersScreen-DpyL3mIg.cjs → OrdersScreen-OexJlI4Y.cjs} +3 -3
- package/dist/{OrdersScreen-DpyL3mIg.cjs.map → OrdersScreen-OexJlI4Y.cjs.map} +1 -1
- package/dist/{ProductsScreen-CmZw1rWf.mjs → ProductsScreen-B0BsPJth.mjs} +3 -3
- package/dist/{ProductsScreen-CmZw1rWf.mjs.map → ProductsScreen-B0BsPJth.mjs.map} +1 -1
- package/dist/{ProductsScreen-dN4s469R.cjs → ProductsScreen-BcM3LqsG.cjs} +9 -9
- package/dist/{ProductsScreen-CGjMUHds.cjs → ProductsScreen-BgVl8GAm.cjs} +3 -3
- package/dist/{ProductsScreen-CGjMUHds.cjs.map → ProductsScreen-BgVl8GAm.cjs.map} +1 -1
- package/dist/{ProductsScreen-HaYLhqt1.mjs → ProductsScreen-GOW8lxiN.mjs} +9 -9
- package/dist/{ProfileScreen-1hqd2fN7.cjs → ProfileScreen-DFM_r4T5.cjs} +3 -3
- package/dist/{ProfileScreen-1hqd2fN7.cjs.map → ProfileScreen-DFM_r4T5.cjs.map} +1 -1
- package/dist/{ProfileScreen-DSr0OwIA.mjs → ProfileScreen-Tcqc5WfU.mjs} +9 -9
- package/dist/{ProfileScreen-_4yPoIgh.cjs → ProfileScreen-e-uj2ulO.cjs} +9 -9
- package/dist/{ProfileScreen-pCW_VAPN.mjs → ProfileScreen-pvpnY0cG.mjs} +3 -3
- package/dist/{ProfileScreen-pCW_VAPN.mjs.map → ProfileScreen-pvpnY0cG.mjs.map} +1 -1
- package/dist/{ShareablesScreen-DNzrgsmZ.cjs → ShareablesScreen-8rSANBth.cjs} +9 -9
- package/dist/{ShareablesScreen-CdXtyZma.cjs → ShareablesScreen-C7M_kGX9.cjs} +3 -3
- package/dist/{ShareablesScreen-CdXtyZma.cjs.map → ShareablesScreen-C7M_kGX9.cjs.map} +1 -1
- package/dist/{ShareablesScreen-xqMDNJ6m.mjs → ShareablesScreen-KFwyduqD.mjs} +9 -9
- package/dist/{ShareablesScreen-Cm8zbATC.mjs → ShareablesScreen-SS9rcLym.mjs} +3 -3
- package/dist/{ShareablesScreen-Cm8zbATC.mjs.map → ShareablesScreen-SS9rcLym.mjs.map} +1 -1
- package/dist/{ShopScreen-D2cMeKSk.mjs → ShopScreen-Bg696rqv.mjs} +9 -9
- package/dist/{ShopScreen-BnVS75fU.cjs → ShopScreen-DCKr0cbB.cjs} +9 -9
- package/dist/{ShopScreen-Dc3lQLGI.mjs → ShopScreen-DFWQY8hT.mjs} +4 -4
- package/dist/{ShopScreen-Dc3lQLGI.mjs.map → ShopScreen-DFWQY8hT.mjs.map} +1 -1
- package/dist/{ShopScreen-qZa0cEwy.cjs → ShopScreen-qgOXPdUf.cjs} +4 -4
- package/dist/{ShopScreen-qZa0cEwy.cjs.map → ShopScreen-qgOXPdUf.cjs.map} +1 -1
- package/dist/{SubscriptionsScreen-749p5heX.mjs → SubscriptionsScreen-50w7SgWX.mjs} +3 -3
- package/dist/{SubscriptionsScreen-749p5heX.mjs.map → SubscriptionsScreen-50w7SgWX.mjs.map} +1 -1
- package/dist/{SubscriptionsScreen-DxVV0sZx.mjs → SubscriptionsScreen-BVLHc7-p.mjs} +9 -9
- package/dist/{SubscriptionsScreen-DRgSTuJv.cjs → SubscriptionsScreen-DKI17q_K.cjs} +9 -9
- package/dist/{SubscriptionsScreen-7VBEggJ_.cjs → SubscriptionsScreen-Vn6EN634.cjs} +3 -3
- package/dist/{SubscriptionsScreen-7VBEggJ_.cjs.map → SubscriptionsScreen-Vn6EN634.cjs.map} +1 -1
- package/dist/{TableWidget-BnhJPYUm.cjs → TableWidget-CcPSLT0B.cjs} +2 -2
- package/dist/{TableWidget-Vcxw-se8.cjs → TableWidget-Cri6r5Yr.cjs} +2 -2
- package/dist/{TableWidget-Vcxw-se8.cjs.map → TableWidget-Cri6r5Yr.cjs.map} +1 -1
- package/dist/{TableWidget-CK5jQxjz.mjs → TableWidget-DjYabx1e.mjs} +2 -2
- package/dist/{TableWidget-CK5jQxjz.mjs.map → TableWidget-DjYabx1e.mjs.map} +1 -1
- package/dist/{VideoWidget-ho9fGQ3V.mjs → VideoWidget-51MxnPRZ.mjs} +4 -4
- package/dist/VideoWidget-51MxnPRZ.mjs.map +1 -0
- package/dist/{VideoWidget-7Q2eqHFn.cjs → VideoWidget-DnnuIvW1.cjs} +4 -4
- package/dist/VideoWidget-DnnuIvW1.cjs.map +1 -0
- package/dist/index.cjs +41 -41
- package/dist/index.mjs +41 -41
- package/dist/{use-account-clients-cHyQEhPp.cjs → use-account-clients-Bem920_7.cjs} +2 -2
- package/dist/{use-account-clients-cHyQEhPp.cjs.map → use-account-clients-Bem920_7.cjs.map} +1 -1
- package/dist/{use-account-clients-CqC0etbc.mjs → use-account-clients-FUcF1B-z.mjs} +2 -2
- package/dist/{use-account-clients-CqC0etbc.mjs.map → use-account-clients-FUcF1B-z.mjs.map} +1 -1
- package/dist/{use-current-user-Ccn1lGeB.cjs → use-current-user-Bld9wMVT.cjs} +3 -3
- package/dist/{use-current-user-Ccn1lGeB.cjs.map → use-current-user-Bld9wMVT.cjs.map} +1 -1
- package/dist/{use-current-user-CyodELl8.mjs → use-current-user-DnBpWIw6.mjs} +3 -3
- package/dist/{use-current-user-CyodELl8.mjs.map → use-current-user-DnBpWIw6.mjs.map} +1 -1
- package/dist/{use-customer-account-DODRyBye.mjs → use-customer-account-Dix8Ja5O.mjs} +3 -3
- package/dist/{use-customer-account-DODRyBye.mjs.map → use-customer-account-Dix8Ja5O.mjs.map} +1 -1
- package/dist/{use-customer-account-DOmzp1sM.cjs → use-customer-account-Rm2QXJiZ.cjs} +3 -3
- package/dist/{use-customer-account-DOmzp1sM.cjs.map → use-customer-account-Rm2QXJiZ.cjs.map} +1 -1
- package/dist/{use-fluid-api-BvakcAkY.mjs → use-fluid-api-CedscoxF.mjs} +2 -2
- package/dist/{use-fluid-api-BvakcAkY.mjs.map → use-fluid-api-CedscoxF.mjs.map} +1 -1
- package/dist/{use-fluid-api-CBm9h3s3.cjs → use-fluid-api-DyI6LDsV.cjs} +2 -2
- package/dist/{use-fluid-api-CBm9h3s3.cjs.map → use-fluid-api-DyI6LDsV.cjs.map} +1 -1
- package/package.json +12 -12
- package/dist/MediaRenderer-CY2gR7hk.mjs.map +0 -1
- package/dist/MediaRenderer-CkMwv5q1.cjs.map +0 -1
- package/dist/VideoWidget-7Q2eqHFn.cjs.map +0 -1
- package/dist/VideoWidget-ho9fGQ3V.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-DAgNkxik.cjs");
|
|
2
|
-
require("./FluidProvider-
|
|
2
|
+
require("./FluidProvider-SnHdl4ww.cjs");
|
|
3
3
|
require("./error-state-CGCSDJIJ.cjs");
|
|
4
4
|
require("./PointsWidget-Bs74dyFl.cjs");
|
|
5
5
|
require("./ScreenRenderer-D-vpSa-G.cjs");
|
|
@@ -14,30 +14,30 @@ require("./CardWidget-BkLF5NI4.cjs");
|
|
|
14
14
|
require("./purify.es-BNrhJaiC.cjs");
|
|
15
15
|
require("./src-DqIS-4ns.cjs");
|
|
16
16
|
require("./scroll-arrows-BNDly6uT.cjs");
|
|
17
|
-
require("./MediaRenderer-
|
|
18
|
-
require("./CarouselWidget-
|
|
17
|
+
require("./MediaRenderer-CRKJcPD9.cjs");
|
|
18
|
+
require("./CarouselWidget-DgskhtDP.cjs");
|
|
19
19
|
require("./CatchUpWidget-DXjW4lrg.cjs");
|
|
20
20
|
require("./ChartWidget-CS600CjN.cjs");
|
|
21
21
|
require("./LayoutWidget-q4xxJVPn.cjs");
|
|
22
22
|
require("./ContainerWidget-CdUs8OBL.cjs");
|
|
23
|
-
require("./ImageWidget-
|
|
23
|
+
require("./ImageWidget-BRfKvv08.cjs");
|
|
24
24
|
require("./LinkWidget-Bvw5OZwU.cjs");
|
|
25
|
-
require("./ListWidget-
|
|
25
|
+
require("./ListWidget-DAtEwFCR.cjs");
|
|
26
26
|
require("./MySiteWidget-BPp8ZoqT.cjs");
|
|
27
|
-
require("./NestedWidget-
|
|
27
|
+
require("./NestedWidget-cl38JElu.cjs");
|
|
28
28
|
require("./QuickShareWidget-C5u0Rngd.cjs");
|
|
29
29
|
require("./RecentActivityWidget-WmA5W55V.cjs");
|
|
30
30
|
require("./SeparatorWidget-UJrep6Kl.cjs");
|
|
31
31
|
require("./SpacerWidget-Br2IZFFv.cjs");
|
|
32
|
-
require("./TableWidget-
|
|
32
|
+
require("./TableWidget-Cri6r5Yr.cjs");
|
|
33
33
|
require("./ToDoWidget-Bv6POc5R.cjs");
|
|
34
|
-
require("./VideoWidget-
|
|
34
|
+
require("./VideoWidget-DnnuIvW1.cjs");
|
|
35
35
|
require("./ScreenHeaderContext-eyKPyDoQ.cjs");
|
|
36
36
|
require("./dist-NpiIdjkL.cjs");
|
|
37
37
|
require("./es-qN_AsxTa.cjs");
|
|
38
38
|
require("./dist-Cs6PV1Tf.cjs");
|
|
39
39
|
require("./src-D1poJLOQ.cjs");
|
|
40
|
-
const require_ShareablesScreen = require("./ShareablesScreen-
|
|
40
|
+
const require_ShareablesScreen = require("./ShareablesScreen-C7M_kGX9.cjs");
|
|
41
41
|
require("./dist-oTn1xy1Z.cjs");
|
|
42
42
|
exports.ShareablesScreen = require_ShareablesScreen.ShareablesScreen;
|
|
43
43
|
exports.shareablesScreenPropertySchema = require_ShareablesScreen.shareablesScreenPropertySchema;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require("./chunk-DAgNkxik.cjs");
|
|
2
|
-
const require_use_account_clients = require("./use-account-clients-
|
|
3
|
-
const require_use_current_user = require("./use-current-user-
|
|
2
|
+
const require_use_account_clients = require("./use-account-clients-Bem920_7.cjs");
|
|
3
|
+
const require_use_current_user = require("./use-current-user-Bld9wMVT.cjs");
|
|
4
4
|
const require_AppNavigationContext = require("./AppNavigationContext-B88_pXjo.cjs");
|
|
5
5
|
const require_src = require("./src-D1poJLOQ.cjs");
|
|
6
6
|
let react = require("react");
|
|
@@ -142,4 +142,4 @@ Object.defineProperty(exports, "shareablesScreenPropertySchema", {
|
|
|
142
142
|
}
|
|
143
143
|
});
|
|
144
144
|
|
|
145
|
-
//# sourceMappingURL=ShareablesScreen-
|
|
145
|
+
//# sourceMappingURL=ShareablesScreen-C7M_kGX9.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareablesScreen-CdXtyZma.cjs","names":["useSdkClient","useCurrentUser","useAppNavigation","ShareablesCoreProvider","ShareablesUIProvider","ShareablesApp"],"sources":["../../../file-picker/api-client/src/client.ts","../src/screens/ShareablesScreen.tsx"],"sourcesContent":["import type { FetchClientInstance } from \"@fluid-app/api-client-core\";\nimport type { DamAssetCreateResponse } from \"@fluid-app/file-picker-core\";\n\nexport interface DamUploadStrategy {\n uploadFile(params: {\n file: File;\n name: string;\n description?: string;\n tags?: string[];\n onProgress?: (progress: number) => void;\n companyId?: number;\n }): Promise<DamAssetCreateResponse>;\n}\n\nexport interface FilePickerClientConfig {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint?: string; // defaults to \"/api/proxy-url\"\n}\n\nexport interface FilePickerClient {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint: string;\n}\n\nexport function createFilePickerClient(\n config: FilePickerClientConfig,\n): FilePickerClient {\n return {\n fetchClient: config.fetchClient,\n uploadStrategy: config.uploadStrategy,\n unsplashAccessKey: config.unsplashAccessKey,\n proxyEndpoint: config.proxyEndpoint ?? \"/api/proxy-url\",\n };\n}\n","import { useCallback, useMemo, type ComponentProps } from \"react\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { ShareablesCoreProvider } from \"@fluid-app/shareables-core\";\nimport { ShareablesUIProvider, ShareablesApp } from \"@fluid-app/shareables-ui\";\nimport { createFilePickerClient } from \"@fluid-app/file-picker-api-client\";\nimport { useCurrentUser } from \"../hooks/use-current-user\";\nimport { useAppNavigation } from \"../shell/AppNavigationContext\";\nimport { useSdkClient } from \"../account/use-account-clients\";\n\ntype ShareablesScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\n/**\n * Parse the current shareables sub-route from the full slug.\n *\n * System nav slugs are \"share/products\", \"share/media\", \"share/playlists\".\n * Detail pages append an ID: \"share/products/123\", \"share/media/456\".\n *\n * \"share/products\" → screen=\"products\", detailId=null\n * \"share/products/123\" → screen=\"products\", detailId=\"123\"\n * \"share/media/456\" → screen=\"media\", detailId=\"456\"\n * \"share/playlists\" → screen=\"playlists\", detailId=null\n * \"share/playlists/789\" → screen=\"playlists\", detailId=\"789\"\n * \"share/files\" → screen=\"files\", detailId=null\n * \"share\" → screen=null (default to products)\n */\nfunction parseShareablesRoute(currentSlug: string): {\n screen: string | null;\n detailId: string | null;\n action: string | null;\n} {\n // Strip the \"share\" prefix\n const slugWithoutPrefix = currentSlug.replace(/^share\\/?/, \"\");\n if (!slugWithoutPrefix) {\n return { screen: null, detailId: null, action: null };\n }\n\n const parts = slugWithoutPrefix.split(\"/\");\n const screen = parts[0] || null;\n const detailId = parts[1] || null;\n const action = parts[2] || null;\n return { screen, detailId, action };\n}\n\nexport function ShareablesScreen({\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ShareablesScreenProps): React.JSX.Element {\n const domainClient = useSdkClient();\n const { data: userData } = useCurrentUser();\n const { currentSlug, navigate } = useAppNavigation();\n\n const { screen, detailId, action } = parseShareablesRoute(currentSlug);\n\n const handleNavigate = useCallback(\n (subScreen: string, id?: string) => {\n const path = id ? `share/${subScreen}/${id}` : `share/${subScreen}`;\n navigate(path);\n },\n [navigate],\n );\n\n const handleBack = useCallback(() => {\n if (detailId && screen) {\n // Navigate back to the listing for the current screen\n navigate(`share/${screen}`);\n } else {\n // Navigate to the default shareables screen\n navigate(\"share/products\");\n }\n }, [navigate, detailId, screen]);\n\n const coreConfig = useMemo(\n () => ({\n client: domainClient,\n user: userData ? { id: userData.id } : null,\n repContext: true,\n }),\n [domainClient, userData],\n );\n\n const filePickerClient = useMemo(\n () => createFilePickerClient({ fetchClient: domainClient }),\n [domainClient],\n );\n\n const uiConfig = useMemo(\n () => ({\n user: userData\n ? {\n id: userData.id,\n company: userData.company\n ? { logo_url: userData.company.logo_url }\n : null,\n }\n : undefined,\n affiliateId:\n (userData as { affiliate_id?: number } | undefined)?.affiliate_id ??\n null,\n basePath: \"\",\n navigate: (path: string) => {\n // Strip leading slash — cards generate paths like \"/share/product/123\"\n const cleanPath = path.replace(/^\\//, \"\");\n // Ensure share/ prefix — screen components pass relative paths like \"media/new\"\n const prefixed = cleanPath.startsWith(\"share/\")\n ? cleanPath\n : `share/${cleanPath}`;\n navigate(prefixed);\n },\n showToast: (opts: {\n title: string;\n type: \"success\" | \"error\" | \"warning\";\n }) => {\n console.warn(`[Shareables] ${opts.type}: ${opts.title}`);\n },\n filePickerClient,\n onToggleFavorite: async (params: {\n favoriteableId: number;\n favoriteableType: string;\n }) => {\n const affiliateId = (userData as { affiliate_id?: number } | undefined)\n ?.affiliate_id;\n if (!affiliateId) throw new Error(\"No affiliate ID\");\n return domainClient.post<{ is_favorited: boolean }>(\n `/user_companies/${affiliateId}/favorites/toggle.json`,\n {\n favoriteable_id: params.favoriteableId,\n favoriteable_type: params.favoriteableType,\n },\n );\n },\n onDeletePlaylist: async (playlistId: number) => {\n const { playlists: playlistsApi } =\n await import(\"@fluid-app/shareables-api-client\");\n await playlistsApi.deletePlaylist(domainClient, playlistId);\n },\n }),\n [userData, navigate, filePickerClient, domainClient],\n );\n\n return (\n <div {...divProps} className={`h-full ${divProps.className ?? \"\"}`}>\n <ShareablesCoreProvider config={coreConfig}>\n <ShareablesUIProvider config={uiConfig}>\n <ShareablesApp\n screen={screen}\n detailId={detailId}\n action={action}\n companyLogoUrl={userData?.company?.logo_url}\n countryCode={userData?.country?.iso}\n onNavigate={handleNavigate}\n onBack={handleBack}\n />\n </ShareablesUIProvider>\n </ShareablesCoreProvider>\n </div>\n );\n}\n\nexport const shareablesScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ShareablesScreen\",\n displayName: \"Shareables Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ShareablesScreen-C7M_kGX9.cjs","names":["useSdkClient","useCurrentUser","useAppNavigation","ShareablesCoreProvider","ShareablesUIProvider","ShareablesApp"],"sources":["../../../file-picker/api-client/src/client.ts","../src/screens/ShareablesScreen.tsx"],"sourcesContent":["import type { FetchClientInstance } from \"@fluid-app/api-client-core\";\nimport type { DamAssetCreateResponse } from \"@fluid-app/file-picker-core\";\n\nexport interface DamUploadStrategy {\n uploadFile(params: {\n file: File;\n name: string;\n description?: string;\n tags?: string[];\n onProgress?: (progress: number) => void;\n companyId?: number;\n }): Promise<DamAssetCreateResponse>;\n}\n\nexport interface FilePickerClientConfig {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint?: string; // defaults to \"/api/proxy-url\"\n}\n\nexport interface FilePickerClient {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint: string;\n}\n\nexport function createFilePickerClient(\n config: FilePickerClientConfig,\n): FilePickerClient {\n return {\n fetchClient: config.fetchClient,\n uploadStrategy: config.uploadStrategy,\n unsplashAccessKey: config.unsplashAccessKey,\n proxyEndpoint: config.proxyEndpoint ?? \"/api/proxy-url\",\n };\n}\n","import { useCallback, useMemo, type ComponentProps } from \"react\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { ShareablesCoreProvider } from \"@fluid-app/shareables-core\";\nimport { ShareablesUIProvider, ShareablesApp } from \"@fluid-app/shareables-ui\";\nimport { createFilePickerClient } from \"@fluid-app/file-picker-api-client\";\nimport { useCurrentUser } from \"../hooks/use-current-user\";\nimport { useAppNavigation } from \"../shell/AppNavigationContext\";\nimport { useSdkClient } from \"../account/use-account-clients\";\n\ntype ShareablesScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\n/**\n * Parse the current shareables sub-route from the full slug.\n *\n * System nav slugs are \"share/products\", \"share/media\", \"share/playlists\".\n * Detail pages append an ID: \"share/products/123\", \"share/media/456\".\n *\n * \"share/products\" → screen=\"products\", detailId=null\n * \"share/products/123\" → screen=\"products\", detailId=\"123\"\n * \"share/media/456\" → screen=\"media\", detailId=\"456\"\n * \"share/playlists\" → screen=\"playlists\", detailId=null\n * \"share/playlists/789\" → screen=\"playlists\", detailId=\"789\"\n * \"share/files\" → screen=\"files\", detailId=null\n * \"share\" → screen=null (default to products)\n */\nfunction parseShareablesRoute(currentSlug: string): {\n screen: string | null;\n detailId: string | null;\n action: string | null;\n} {\n // Strip the \"share\" prefix\n const slugWithoutPrefix = currentSlug.replace(/^share\\/?/, \"\");\n if (!slugWithoutPrefix) {\n return { screen: null, detailId: null, action: null };\n }\n\n const parts = slugWithoutPrefix.split(\"/\");\n const screen = parts[0] || null;\n const detailId = parts[1] || null;\n const action = parts[2] || null;\n return { screen, detailId, action };\n}\n\nexport function ShareablesScreen({\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ShareablesScreenProps): React.JSX.Element {\n const domainClient = useSdkClient();\n const { data: userData } = useCurrentUser();\n const { currentSlug, navigate } = useAppNavigation();\n\n const { screen, detailId, action } = parseShareablesRoute(currentSlug);\n\n const handleNavigate = useCallback(\n (subScreen: string, id?: string) => {\n const path = id ? `share/${subScreen}/${id}` : `share/${subScreen}`;\n navigate(path);\n },\n [navigate],\n );\n\n const handleBack = useCallback(() => {\n if (detailId && screen) {\n // Navigate back to the listing for the current screen\n navigate(`share/${screen}`);\n } else {\n // Navigate to the default shareables screen\n navigate(\"share/products\");\n }\n }, [navigate, detailId, screen]);\n\n const coreConfig = useMemo(\n () => ({\n client: domainClient,\n user: userData ? { id: userData.id } : null,\n repContext: true,\n }),\n [domainClient, userData],\n );\n\n const filePickerClient = useMemo(\n () => createFilePickerClient({ fetchClient: domainClient }),\n [domainClient],\n );\n\n const uiConfig = useMemo(\n () => ({\n user: userData\n ? {\n id: userData.id,\n company: userData.company\n ? { logo_url: userData.company.logo_url }\n : null,\n }\n : undefined,\n affiliateId:\n (userData as { affiliate_id?: number } | undefined)?.affiliate_id ??\n null,\n basePath: \"\",\n navigate: (path: string) => {\n // Strip leading slash — cards generate paths like \"/share/product/123\"\n const cleanPath = path.replace(/^\\//, \"\");\n // Ensure share/ prefix — screen components pass relative paths like \"media/new\"\n const prefixed = cleanPath.startsWith(\"share/\")\n ? cleanPath\n : `share/${cleanPath}`;\n navigate(prefixed);\n },\n showToast: (opts: {\n title: string;\n type: \"success\" | \"error\" | \"warning\";\n }) => {\n console.warn(`[Shareables] ${opts.type}: ${opts.title}`);\n },\n filePickerClient,\n onToggleFavorite: async (params: {\n favoriteableId: number;\n favoriteableType: string;\n }) => {\n const affiliateId = (userData as { affiliate_id?: number } | undefined)\n ?.affiliate_id;\n if (!affiliateId) throw new Error(\"No affiliate ID\");\n return domainClient.post<{ is_favorited: boolean }>(\n `/user_companies/${affiliateId}/favorites/toggle.json`,\n {\n favoriteable_id: params.favoriteableId,\n favoriteable_type: params.favoriteableType,\n },\n );\n },\n onDeletePlaylist: async (playlistId: number) => {\n const { playlists: playlistsApi } =\n await import(\"@fluid-app/shareables-api-client\");\n await playlistsApi.deletePlaylist(domainClient, playlistId);\n },\n }),\n [userData, navigate, filePickerClient, domainClient],\n );\n\n return (\n <div {...divProps} className={`h-full ${divProps.className ?? \"\"}`}>\n <ShareablesCoreProvider config={coreConfig}>\n <ShareablesUIProvider config={uiConfig}>\n <ShareablesApp\n screen={screen}\n detailId={detailId}\n action={action}\n companyLogoUrl={userData?.company?.logo_url}\n countryCode={userData?.country?.iso}\n onNavigate={handleNavigate}\n onBack={handleBack}\n />\n </ShareablesUIProvider>\n </ShareablesCoreProvider>\n </div>\n );\n}\n\nexport const shareablesScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ShareablesScreen\",\n displayName: \"Shareables Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./FluidProvider-
|
|
1
|
+
import "./FluidProvider-uuu90TSG.mjs";
|
|
2
2
|
import "./error-state-BGEvTYIh.mjs";
|
|
3
3
|
import "./PointsWidget-DjSC-B2i.mjs";
|
|
4
4
|
import "./ScreenRenderer-CnxT7sYF.mjs";
|
|
@@ -13,29 +13,29 @@ import "./CardWidget-BKk7OtDP.mjs";
|
|
|
13
13
|
import "./purify.es-BiyaWMrt.mjs";
|
|
14
14
|
import "./src-Bh-9OV8i.mjs";
|
|
15
15
|
import "./scroll-arrows-D9DfrbI-.mjs";
|
|
16
|
-
import "./MediaRenderer-
|
|
17
|
-
import "./CarouselWidget-
|
|
16
|
+
import "./MediaRenderer-B3R-Q6Qt.mjs";
|
|
17
|
+
import "./CarouselWidget-BGdjG-xz.mjs";
|
|
18
18
|
import "./CatchUpWidget-BGOAfvS0.mjs";
|
|
19
19
|
import "./ChartWidget-DSaru9Bb.mjs";
|
|
20
20
|
import "./LayoutWidget-DVqlQga6.mjs";
|
|
21
21
|
import "./ContainerWidget-Dlno2qQ7.mjs";
|
|
22
|
-
import "./ImageWidget-
|
|
22
|
+
import "./ImageWidget-BHwucvLx.mjs";
|
|
23
23
|
import "./LinkWidget-dwIVKZD0.mjs";
|
|
24
|
-
import "./ListWidget-
|
|
24
|
+
import "./ListWidget-ZqCYH78q.mjs";
|
|
25
25
|
import "./MySiteWidget-KK2_WF16.mjs";
|
|
26
|
-
import "./NestedWidget-
|
|
26
|
+
import "./NestedWidget-JS_3-isb.mjs";
|
|
27
27
|
import "./QuickShareWidget-DsBI1JQ_.mjs";
|
|
28
28
|
import "./RecentActivityWidget-CuU8Rd77.mjs";
|
|
29
29
|
import "./SeparatorWidget-DQqeYY3c.mjs";
|
|
30
30
|
import "./SpacerWidget-DgVU58BC.mjs";
|
|
31
|
-
import "./TableWidget-
|
|
31
|
+
import "./TableWidget-DjYabx1e.mjs";
|
|
32
32
|
import "./ToDoWidget-Cmvf7I6c.mjs";
|
|
33
|
-
import "./VideoWidget-
|
|
33
|
+
import "./VideoWidget-51MxnPRZ.mjs";
|
|
34
34
|
import "./ScreenHeaderContext-CrdfLGKk.mjs";
|
|
35
35
|
import "./dist-CMGXkSgZ.mjs";
|
|
36
36
|
import "./es-CrIkZTQ3.mjs";
|
|
37
37
|
import "./dist-Cl4FsM3V.mjs";
|
|
38
38
|
import "./src-CzK-t4_m.mjs";
|
|
39
|
-
import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-
|
|
39
|
+
import { n as shareablesScreenPropertySchema, t as ShareablesScreen } from "./ShareablesScreen-SS9rcLym.mjs";
|
|
40
40
|
import "./sortable.esm-DreCqRxJ.mjs";
|
|
41
41
|
export { ShareablesScreen, shareablesScreenPropertySchema };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as useSdkClient } from "./use-account-clients-
|
|
2
|
-
import { n as useCurrentUser } from "./use-current-user-
|
|
1
|
+
import { i as useSdkClient } from "./use-account-clients-FUcF1B-z.mjs";
|
|
2
|
+
import { n as useCurrentUser } from "./use-current-user-DnBpWIw6.mjs";
|
|
3
3
|
import { n as useAppNavigation } from "./AppNavigationContext-DJeNcP4Y.mjs";
|
|
4
4
|
import { i as ShareablesCoreProvider, n as ShareablesApp, r as ShareablesUIProvider } from "./src-CzK-t4_m.mjs";
|
|
5
5
|
import { useCallback, useMemo } from "react";
|
|
@@ -130,4 +130,4 @@ const shareablesScreenPropertySchema = {
|
|
|
130
130
|
//#endregion
|
|
131
131
|
export { shareablesScreenPropertySchema as n, ShareablesScreen as t };
|
|
132
132
|
|
|
133
|
-
//# sourceMappingURL=ShareablesScreen-
|
|
133
|
+
//# sourceMappingURL=ShareablesScreen-SS9rcLym.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShareablesScreen-
|
|
1
|
+
{"version":3,"file":"ShareablesScreen-SS9rcLym.mjs","names":[],"sources":["../../../file-picker/api-client/src/client.ts","../src/screens/ShareablesScreen.tsx"],"sourcesContent":["import type { FetchClientInstance } from \"@fluid-app/api-client-core\";\nimport type { DamAssetCreateResponse } from \"@fluid-app/file-picker-core\";\n\nexport interface DamUploadStrategy {\n uploadFile(params: {\n file: File;\n name: string;\n description?: string;\n tags?: string[];\n onProgress?: (progress: number) => void;\n companyId?: number;\n }): Promise<DamAssetCreateResponse>;\n}\n\nexport interface FilePickerClientConfig {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint?: string; // defaults to \"/api/proxy-url\"\n}\n\nexport interface FilePickerClient {\n fetchClient: FetchClientInstance;\n uploadStrategy?: DamUploadStrategy;\n unsplashAccessKey?: string;\n proxyEndpoint: string;\n}\n\nexport function createFilePickerClient(\n config: FilePickerClientConfig,\n): FilePickerClient {\n return {\n fetchClient: config.fetchClient,\n uploadStrategy: config.uploadStrategy,\n unsplashAccessKey: config.unsplashAccessKey,\n proxyEndpoint: config.proxyEndpoint ?? \"/api/proxy-url\",\n };\n}\n","import { useCallback, useMemo, type ComponentProps } from \"react\";\nimport type {\n BackgroundValue,\n BorderRadiusOptions,\n ColorOptions,\n PaddingOptions,\n} from \"../types\";\nimport type { WidgetPropertySchema } from \"../registries/property-schema-types\";\nimport { ShareablesCoreProvider } from \"@fluid-app/shareables-core\";\nimport { ShareablesUIProvider, ShareablesApp } from \"@fluid-app/shareables-ui\";\nimport { createFilePickerClient } from \"@fluid-app/file-picker-api-client\";\nimport { useCurrentUser } from \"../hooks/use-current-user\";\nimport { useAppNavigation } from \"../shell/AppNavigationContext\";\nimport { useSdkClient } from \"../account/use-account-clients\";\n\ntype ShareablesScreenProps = ComponentProps<\"div\"> & {\n background?: BackgroundValue;\n textColor?: ColorOptions;\n accentColor?: ColorOptions;\n padding?: PaddingOptions;\n borderRadius?: BorderRadiusOptions;\n};\n\n/**\n * Parse the current shareables sub-route from the full slug.\n *\n * System nav slugs are \"share/products\", \"share/media\", \"share/playlists\".\n * Detail pages append an ID: \"share/products/123\", \"share/media/456\".\n *\n * \"share/products\" → screen=\"products\", detailId=null\n * \"share/products/123\" → screen=\"products\", detailId=\"123\"\n * \"share/media/456\" → screen=\"media\", detailId=\"456\"\n * \"share/playlists\" → screen=\"playlists\", detailId=null\n * \"share/playlists/789\" → screen=\"playlists\", detailId=\"789\"\n * \"share/files\" → screen=\"files\", detailId=null\n * \"share\" → screen=null (default to products)\n */\nfunction parseShareablesRoute(currentSlug: string): {\n screen: string | null;\n detailId: string | null;\n action: string | null;\n} {\n // Strip the \"share\" prefix\n const slugWithoutPrefix = currentSlug.replace(/^share\\/?/, \"\");\n if (!slugWithoutPrefix) {\n return { screen: null, detailId: null, action: null };\n }\n\n const parts = slugWithoutPrefix.split(\"/\");\n const screen = parts[0] || null;\n const detailId = parts[1] || null;\n const action = parts[2] || null;\n return { screen, detailId, action };\n}\n\nexport function ShareablesScreen({\n /* eslint-disable @typescript-eslint/no-unused-vars -- destructured to exclude from divProps spread */\n background,\n textColor,\n accentColor,\n padding,\n borderRadius,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...divProps\n}: ShareablesScreenProps): React.JSX.Element {\n const domainClient = useSdkClient();\n const { data: userData } = useCurrentUser();\n const { currentSlug, navigate } = useAppNavigation();\n\n const { screen, detailId, action } = parseShareablesRoute(currentSlug);\n\n const handleNavigate = useCallback(\n (subScreen: string, id?: string) => {\n const path = id ? `share/${subScreen}/${id}` : `share/${subScreen}`;\n navigate(path);\n },\n [navigate],\n );\n\n const handleBack = useCallback(() => {\n if (detailId && screen) {\n // Navigate back to the listing for the current screen\n navigate(`share/${screen}`);\n } else {\n // Navigate to the default shareables screen\n navigate(\"share/products\");\n }\n }, [navigate, detailId, screen]);\n\n const coreConfig = useMemo(\n () => ({\n client: domainClient,\n user: userData ? { id: userData.id } : null,\n repContext: true,\n }),\n [domainClient, userData],\n );\n\n const filePickerClient = useMemo(\n () => createFilePickerClient({ fetchClient: domainClient }),\n [domainClient],\n );\n\n const uiConfig = useMemo(\n () => ({\n user: userData\n ? {\n id: userData.id,\n company: userData.company\n ? { logo_url: userData.company.logo_url }\n : null,\n }\n : undefined,\n affiliateId:\n (userData as { affiliate_id?: number } | undefined)?.affiliate_id ??\n null,\n basePath: \"\",\n navigate: (path: string) => {\n // Strip leading slash — cards generate paths like \"/share/product/123\"\n const cleanPath = path.replace(/^\\//, \"\");\n // Ensure share/ prefix — screen components pass relative paths like \"media/new\"\n const prefixed = cleanPath.startsWith(\"share/\")\n ? cleanPath\n : `share/${cleanPath}`;\n navigate(prefixed);\n },\n showToast: (opts: {\n title: string;\n type: \"success\" | \"error\" | \"warning\";\n }) => {\n console.warn(`[Shareables] ${opts.type}: ${opts.title}`);\n },\n filePickerClient,\n onToggleFavorite: async (params: {\n favoriteableId: number;\n favoriteableType: string;\n }) => {\n const affiliateId = (userData as { affiliate_id?: number } | undefined)\n ?.affiliate_id;\n if (!affiliateId) throw new Error(\"No affiliate ID\");\n return domainClient.post<{ is_favorited: boolean }>(\n `/user_companies/${affiliateId}/favorites/toggle.json`,\n {\n favoriteable_id: params.favoriteableId,\n favoriteable_type: params.favoriteableType,\n },\n );\n },\n onDeletePlaylist: async (playlistId: number) => {\n const { playlists: playlistsApi } =\n await import(\"@fluid-app/shareables-api-client\");\n await playlistsApi.deletePlaylist(domainClient, playlistId);\n },\n }),\n [userData, navigate, filePickerClient, domainClient],\n );\n\n return (\n <div {...divProps} className={`h-full ${divProps.className ?? \"\"}`}>\n <ShareablesCoreProvider config={coreConfig}>\n <ShareablesUIProvider config={uiConfig}>\n <ShareablesApp\n screen={screen}\n detailId={detailId}\n action={action}\n companyLogoUrl={userData?.company?.logo_url}\n countryCode={userData?.country?.iso}\n onNavigate={handleNavigate}\n onBack={handleBack}\n />\n </ShareablesUIProvider>\n </ShareablesCoreProvider>\n </div>\n );\n}\n\nexport const shareablesScreenPropertySchema: WidgetPropertySchema = {\n widgetType: \"ShareablesScreen\",\n displayName: \"Shareables Screen\",\n tabsConfig: [{ id: \"styling\", label: \"Styling\" }],\n fields: [],\n} as const satisfies WidgetPropertySchema;\n"],"mappings":";;;;;;;AA4BA,SAAgB,uBACd,QACkB;AAClB,QAAO;EACL,aAAa,OAAO;EACpB,gBAAgB,OAAO;EACvB,mBAAmB,OAAO;EAC1B,eAAe,OAAO,iBAAiB;EACxC;;;;;;;;;;;;;;;;;;ACCH,SAAS,qBAAqB,aAI5B;CAEA,MAAM,oBAAoB,YAAY,QAAQ,aAAa,GAAG;AAC9D,KAAI,CAAC,kBACH,QAAO;EAAE,QAAQ;EAAM,UAAU;EAAM,QAAQ;EAAM;CAGvD,MAAM,QAAQ,kBAAkB,MAAM,IAAI;AAI1C,QAAO;EAAE,QAHM,MAAM,MAAM;EAGV,UAFA,MAAM,MAAM;EAEF,QADZ,MAAM,MAAM;EACQ;;AAGrC,SAAgB,iBAAiB,EAE/B,YACA,WACA,aACA,SACA,cAEA,GAAG,YACwC;CAC3C,MAAM,eAAe,cAAc;CACnC,MAAM,EAAE,MAAM,aAAa,gBAAgB;CAC3C,MAAM,EAAE,aAAa,aAAa,kBAAkB;CAEpD,MAAM,EAAE,QAAQ,UAAU,WAAW,qBAAqB,YAAY;CAEtE,MAAM,iBAAiB,aACpB,WAAmB,OAAgB;AAElC,WADa,KAAK,SAAS,UAAU,GAAG,OAAO,SAAS,YAC1C;IAEhB,CAAC,SAAS,CACX;CAED,MAAM,aAAa,kBAAkB;AACnC,MAAI,YAAY,OAEd,UAAS,SAAS,SAAS;MAG3B,UAAS,iBAAiB;IAE3B;EAAC;EAAU;EAAU;EAAO,CAAC;CAEhC,MAAM,aAAa,eACV;EACL,QAAQ;EACR,MAAM,WAAW,EAAE,IAAI,SAAS,IAAI,GAAG;EACvC,YAAY;EACb,GACD,CAAC,cAAc,SAAS,CACzB;CAED,MAAM,mBAAmB,cACjB,uBAAuB,EAAE,aAAa,cAAc,CAAC,EAC3D,CAAC,aAAa,CACf;CAED,MAAM,WAAW,eACR;EACL,MAAM,WACF;GACE,IAAI,SAAS;GACb,SAAS,SAAS,UACd,EAAE,UAAU,SAAS,QAAQ,UAAU,GACvC;GACL,GACD,KAAA;EACJ,aACG,UAAoD,gBACrD;EACF,UAAU;EACV,WAAW,SAAiB;GAE1B,MAAM,YAAY,KAAK,QAAQ,OAAO,GAAG;AAKzC,YAHiB,UAAU,WAAW,SAAS,GAC3C,YACA,SAAS,YACK;;EAEpB,YAAY,SAGN;AACJ,WAAQ,KAAK,gBAAgB,KAAK,KAAK,IAAI,KAAK,QAAQ;;EAE1D;EACA,kBAAkB,OAAO,WAGnB;GACJ,MAAM,cAAe,UACjB;AACJ,OAAI,CAAC,YAAa,OAAM,IAAI,MAAM,kBAAkB;AACpD,UAAO,aAAa,KAClB,mBAAmB,YAAY,yBAC/B;IACE,iBAAiB,OAAO;IACxB,mBAAmB,OAAO;IAC3B,CACF;;EAEH,kBAAkB,OAAO,eAAuB;GAC9C,MAAM,EAAE,WAAW,iBACjB,MAAM,OAAO,sBAAA,MAAA,MAAA,EAAA,EAAA;AACf,SAAM,aAAa,eAAe,cAAc,WAAW;;EAE9D,GACD;EAAC;EAAU;EAAU;EAAkB;EAAa,CACrD;AAED,QACE,oBAAC,OAAD;EAAK,GAAI;EAAU,WAAW,UAAU,SAAS,aAAa;YAC5D,oBAAC,wBAAD;GAAwB,QAAQ;aAC9B,oBAAC,sBAAD;IAAsB,QAAQ;cAC5B,oBAAC,eAAD;KACU;KACE;KACF;KACR,gBAAgB,UAAU,SAAS;KACnC,aAAa,UAAU,SAAS;KAChC,YAAY;KACZ,QAAQ;KACR,CAAA;IACmB,CAAA;GACA,CAAA;EACrB,CAAA;;AAIV,MAAa,iCAAuD;CAClE,YAAY;CACZ,aAAa;CACb,YAAY,CAAC;EAAE,IAAI;EAAW,OAAO;EAAW,CAAC;CACjD,QAAQ,EAAE;CACX"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./FluidProvider-
|
|
1
|
+
import "./FluidProvider-uuu90TSG.mjs";
|
|
2
2
|
import "./error-state-BGEvTYIh.mjs";
|
|
3
3
|
import "./PointsWidget-DjSC-B2i.mjs";
|
|
4
4
|
import "./ScreenRenderer-CnxT7sYF.mjs";
|
|
@@ -13,24 +13,24 @@ import "./CardWidget-BKk7OtDP.mjs";
|
|
|
13
13
|
import "./purify.es-BiyaWMrt.mjs";
|
|
14
14
|
import "./src-Bh-9OV8i.mjs";
|
|
15
15
|
import "./scroll-arrows-D9DfrbI-.mjs";
|
|
16
|
-
import "./MediaRenderer-
|
|
17
|
-
import "./CarouselWidget-
|
|
16
|
+
import "./MediaRenderer-B3R-Q6Qt.mjs";
|
|
17
|
+
import "./CarouselWidget-BGdjG-xz.mjs";
|
|
18
18
|
import "./CatchUpWidget-BGOAfvS0.mjs";
|
|
19
19
|
import "./ChartWidget-DSaru9Bb.mjs";
|
|
20
20
|
import "./LayoutWidget-DVqlQga6.mjs";
|
|
21
21
|
import "./ContainerWidget-Dlno2qQ7.mjs";
|
|
22
|
-
import "./ImageWidget-
|
|
22
|
+
import "./ImageWidget-BHwucvLx.mjs";
|
|
23
23
|
import "./LinkWidget-dwIVKZD0.mjs";
|
|
24
|
-
import "./ListWidget-
|
|
24
|
+
import "./ListWidget-ZqCYH78q.mjs";
|
|
25
25
|
import "./MySiteWidget-KK2_WF16.mjs";
|
|
26
|
-
import "./NestedWidget-
|
|
26
|
+
import "./NestedWidget-JS_3-isb.mjs";
|
|
27
27
|
import "./QuickShareWidget-DsBI1JQ_.mjs";
|
|
28
28
|
import "./RecentActivityWidget-CuU8Rd77.mjs";
|
|
29
29
|
import "./SeparatorWidget-DQqeYY3c.mjs";
|
|
30
30
|
import "./SpacerWidget-DgVU58BC.mjs";
|
|
31
|
-
import "./TableWidget-
|
|
31
|
+
import "./TableWidget-DjYabx1e.mjs";
|
|
32
32
|
import "./ToDoWidget-Cmvf7I6c.mjs";
|
|
33
|
-
import "./VideoWidget-
|
|
33
|
+
import "./VideoWidget-51MxnPRZ.mjs";
|
|
34
34
|
import "./ScreenHeaderContext-CrdfLGKk.mjs";
|
|
35
|
-
import { n as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-
|
|
35
|
+
import { n as shopScreenPropertySchema, t as ShopScreen } from "./ShopScreen-DFWQY8hT.mjs";
|
|
36
36
|
export { ShopScreen, shopScreenPropertySchema };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-DAgNkxik.cjs");
|
|
2
|
-
require("./FluidProvider-
|
|
2
|
+
require("./FluidProvider-SnHdl4ww.cjs");
|
|
3
3
|
require("./error-state-CGCSDJIJ.cjs");
|
|
4
4
|
require("./PointsWidget-Bs74dyFl.cjs");
|
|
5
5
|
require("./ScreenRenderer-D-vpSa-G.cjs");
|
|
@@ -14,25 +14,25 @@ require("./CardWidget-BkLF5NI4.cjs");
|
|
|
14
14
|
require("./purify.es-BNrhJaiC.cjs");
|
|
15
15
|
require("./src-DqIS-4ns.cjs");
|
|
16
16
|
require("./scroll-arrows-BNDly6uT.cjs");
|
|
17
|
-
require("./MediaRenderer-
|
|
18
|
-
require("./CarouselWidget-
|
|
17
|
+
require("./MediaRenderer-CRKJcPD9.cjs");
|
|
18
|
+
require("./CarouselWidget-DgskhtDP.cjs");
|
|
19
19
|
require("./CatchUpWidget-DXjW4lrg.cjs");
|
|
20
20
|
require("./ChartWidget-CS600CjN.cjs");
|
|
21
21
|
require("./LayoutWidget-q4xxJVPn.cjs");
|
|
22
22
|
require("./ContainerWidget-CdUs8OBL.cjs");
|
|
23
|
-
require("./ImageWidget-
|
|
23
|
+
require("./ImageWidget-BRfKvv08.cjs");
|
|
24
24
|
require("./LinkWidget-Bvw5OZwU.cjs");
|
|
25
|
-
require("./ListWidget-
|
|
25
|
+
require("./ListWidget-DAtEwFCR.cjs");
|
|
26
26
|
require("./MySiteWidget-BPp8ZoqT.cjs");
|
|
27
|
-
require("./NestedWidget-
|
|
27
|
+
require("./NestedWidget-cl38JElu.cjs");
|
|
28
28
|
require("./QuickShareWidget-C5u0Rngd.cjs");
|
|
29
29
|
require("./RecentActivityWidget-WmA5W55V.cjs");
|
|
30
30
|
require("./SeparatorWidget-UJrep6Kl.cjs");
|
|
31
31
|
require("./SpacerWidget-Br2IZFFv.cjs");
|
|
32
|
-
require("./TableWidget-
|
|
32
|
+
require("./TableWidget-Cri6r5Yr.cjs");
|
|
33
33
|
require("./ToDoWidget-Bv6POc5R.cjs");
|
|
34
|
-
require("./VideoWidget-
|
|
34
|
+
require("./VideoWidget-DnnuIvW1.cjs");
|
|
35
35
|
require("./ScreenHeaderContext-eyKPyDoQ.cjs");
|
|
36
|
-
const require_ShopScreen = require("./ShopScreen-
|
|
36
|
+
const require_ShopScreen = require("./ShopScreen-qgOXPdUf.cjs");
|
|
37
37
|
exports.ShopScreen = require_ShopScreen.ShopScreen;
|
|
38
38
|
exports.shopScreenPropertySchema = require_ShopScreen.shopScreenPropertySchema;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as useFluidContext } from "./FluidProvider-
|
|
1
|
+
import { n as useFluidContext } from "./FluidProvider-uuu90TSG.mjs";
|
|
2
2
|
import { A as SelectContent, F as RadioGroupItem, I as Input, Kt as Breadcrumb, M as SelectTrigger, N as SelectValue, P as RadioGroup, Xt as BreadcrumbPage, Yt as BreadcrumbList, dn as Button, j as SelectItem, k as Select, qt as BreadcrumbItem, x as Skeleton, xt as Card } from "./src-Bh-9OV8i.mjs";
|
|
3
|
-
import { i as useSdkClient } from "./use-account-clients-
|
|
3
|
+
import { i as useSdkClient } from "./use-account-clients-FUcF1B-z.mjs";
|
|
4
4
|
import { r as useScreenHeaderBreadcrumbs } from "./ScreenHeaderContext-CrdfLGKk.mjs";
|
|
5
|
-
import { n as useCurrentUser } from "./use-current-user-
|
|
5
|
+
import { n as useCurrentUser } from "./use-current-user-DnBpWIw6.mjs";
|
|
6
6
|
import { n as useAppNavigation } from "./AppNavigationContext-DJeNcP4Y.mjs";
|
|
7
7
|
import { n as listProducts, t as getProduct } from "./products-DCO1hF_Q.mjs";
|
|
8
8
|
import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
@@ -1591,4 +1591,4 @@ const shopScreenPropertySchema = {
|
|
|
1591
1591
|
//#endregion
|
|
1592
1592
|
export { shopScreenPropertySchema as n, ShopScreen as t };
|
|
1593
1593
|
|
|
1594
|
-
//# sourceMappingURL=ShopScreen-
|
|
1594
|
+
//# sourceMappingURL=ShopScreen-DFWQY8hT.mjs.map
|