@threekit-tools/treble 0.0.19 → 0.0.23

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.
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.Content = exports.Header = exports.Wrapper = exports.Background = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
12
  exports.Background = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100vh;\n width: 100vw;\n background: #33333377;\n\n opacity: ", ";\n transition: all ", ";\n\n position: fixed;\n top: 0;\n left: 0;\n"], ["\n height: 100vh;\n width: 100vw;\n background: #33333377;\n\n opacity: ", ";\n transition: all ", ";\n\n position: fixed;\n top: 0;\n left: 0;\n"])), function (props) { return (props.show ? 1 : 0); }, function (props) { return props.transitionDuration; });
13
- exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 400px;\n height: 100vh;\n background: #fff;\n border-radius: ", ";\n opacity: 1;\n\n transform: translateX(", ");\n transition: all ", ";\n\n position: absolute;\n top: 0;\n right: 0;\n"], ["\n min-width: 400px;\n height: 100vh;\n background: #fff;\n border-radius: ", ";\n opacity: 1;\n\n transform: translateX(", ");\n transition: all ", ";\n\n position: absolute;\n top: 0;\n right: 0;\n"])), function (props) { return props.theme.borderRadius; }, function (props) { return (props.show ? '0%' : '100%'); }, function (props) { return props.transitionDuration; });
13
+ exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 400px;\n height: 100vh;\n background: #fff;\n border-radius: ", ";\n opacity: 1;\n z-index: 10;\n\n transform: translateX(", ");\n transition: all ", ";\n\n position: absolute;\n top: 0;\n right: 0;\n"], ["\n min-width: 400px;\n height: 100vh;\n background: #fff;\n border-radius: ", ";\n opacity: 1;\n z-index: 10;\n\n transform: translateX(", ");\n transition: all ", ";\n\n position: absolute;\n top: 0;\n right: 0;\n"])), function (props) { return props.theme.borderRadius; }, function (props) { return (props.show ? '0%' : '100%'); }, function (props) { return props.transitionDuration; });
14
14
  exports.Header = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-family: ", ";\n padding: 20px;\n\n & > div {\n /* height: max-content;\n position: relative;\n top: 50%;\n transform: translateY(-50%); */\n }\n\n & > div:nth-child(2) {\n cursor: pointer;\n height: 20px;\n }\n"], ["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-family: ", ";\n padding: 20px;\n\n & > div {\n /* height: max-content;\n position: relative;\n top: 50%;\n transform: translateY(-50%); */\n }\n\n & > div:nth-child(2) {\n cursor: pointer;\n height: 20px;\n }\n"])), function (props) { return props.theme.fontFamily; });
15
15
  exports.Content = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n font-family: ", ";\n"], ["\n font-family: ", ";\n"])), function (props) { return props.theme.fontFamily; });
16
16
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.Content = exports.Header = exports.Wrapper = exports.Background = void 0;
11
11
  var styled_components_1 = __importDefault(require("styled-components"));
12
12
  exports.Background = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100vh;\n width: 100vw;\n background: #33333377;\n\n position: fixed;\n top: 0;\n left: 0;\n"], ["\n height: 100vh;\n width: 100vw;\n background: #33333377;\n\n position: fixed;\n top: 0;\n left: 0;\n"])));
13
- exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 400px;\n max-width: 100%;\n min-height: 200px;\n opacity: 1;\n overflow: scroll;\n background: #fff;\n border-radius: ", ";\n\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"], ["\n min-width: 400px;\n max-width: 100%;\n min-height: 200px;\n opacity: 1;\n overflow: scroll;\n background: #fff;\n border-radius: ", ";\n\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])), function (props) { return props.theme.borderRadius; });
13
+ exports.Wrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 400px;\n max-width: 100%;\n min-height: 200px;\n opacity: 1;\n overflow: scroll;\n z-index: 10;\n background: #fff;\n border-radius: ", ";\n\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"], ["\n min-width: 400px;\n max-width: 100%;\n min-height: 200px;\n opacity: 1;\n overflow: scroll;\n z-index: 10;\n background: #fff;\n border-radius: ", ";\n\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])), function (props) { return props.theme.borderRadius; });
14
14
  exports.Header = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-family: ", ";\n\n & > div:nth-child(2) {\n cursor: pointer;\n }\n"], ["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n font-family: ", ";\n\n & > div:nth-child(2) {\n cursor: pointer;\n }\n"])), function (props) { return props.theme.fontFamily; });
15
15
  exports.Content = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n font-family: ", ";\n"], ["\n font-family: ", ";\n"])), function (props) { return props.theme.fontFamily; });
16
16
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface ProductLayoutProps {
3
+ products: string | Array<string> | Record<string, string>;
4
+ }
5
+ declare const ProductLayout: React.FC<ProductLayoutProps>;
6
+ export default ProductLayout;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var ProductLayout = function (props) {
8
+ return react_1.default.createElement(react_1.default.Fragment, null, props.children);
9
+ };
10
+ exports.default = ProductLayout;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="webpack-env" />
3
+ import { ThreekitProviderProps } from '../ThreekitProvider';
4
+ interface IProducts {
5
+ ctx: __WebpackModuleApi.RequireContext;
6
+ }
7
+ interface ProductLoaderProps extends Omit<ThreekitProviderProps, 'children'> {
8
+ productId?: string;
9
+ products: IProducts;
10
+ }
11
+ export default function ProductLoader(props: ProductLoaderProps): JSX.Element | null;
12
+ export {};
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ var react_1 = __importStar(require("react"));
26
+ var ThreekitProvider_1 = __importDefault(require("../ThreekitProvider"));
27
+ var utils_1 = require("../../utils");
28
+ var productAssetId = {};
29
+ var productComponents = [];
30
+ var productToComponentMap = {};
31
+ function ProductLoader(props) {
32
+ var productId = props.productId, products = props.products, credentials = props.credentials, playerConfig = props.playerConfig, theme = props.theme, threekitEnv = props.threekitEnv;
33
+ if (!products)
34
+ return null;
35
+ if (!productComponents.length) {
36
+ products.ctx.keys().forEach(function (fileName) {
37
+ if (!fileName.includes('product.js'))
38
+ return;
39
+ if (fileName.includes('].product.js'))
40
+ return;
41
+ productComponents.push(products.ctx(fileName).default);
42
+ });
43
+ react_1.Children.forEach(Object.values(productComponents).map(function (el) { return el({}); }), function (jsx, i) {
44
+ var _a;
45
+ if (!jsx)
46
+ return;
47
+ if (jsx.type.name !== 'ProductLayout')
48
+ return;
49
+ if (!jsx.props.products)
50
+ return;
51
+ var products;
52
+ if (Array.isArray(jsx.props.products))
53
+ products = jsx.props.products.reduce(function (output, id) {
54
+ var _a;
55
+ return Object.assign(output, (_a = {}, _a[id] = id, _a));
56
+ }, {});
57
+ else if (typeof jsx.props.products === 'string') {
58
+ var prdStr = jsx.props.products;
59
+ products = (_a = {}, _a[prdStr] = prdStr, _a);
60
+ }
61
+ else {
62
+ products = jsx.props.products;
63
+ }
64
+ Object.entries(products).forEach(function (_a) {
65
+ var key = _a[0], assetId = _a[1];
66
+ productAssetId[key] = assetId;
67
+ productToComponentMap[key] = i;
68
+ });
69
+ });
70
+ }
71
+ var params = (0, utils_1.getParams)();
72
+ var id = productId;
73
+ if (!id && params['tkProduct']) {
74
+ id = Object.keys(productToComponentMap).find(function (el) { return params['tkProduct'] === el; });
75
+ }
76
+ if (!id)
77
+ return null;
78
+ var Product = productComponents[productToComponentMap[id]];
79
+ if (!Product)
80
+ return null;
81
+ var assetId = productAssetId[id];
82
+ var env = threekitEnv || 'preview';
83
+ var preppedCredentials = Object.assign({}, credentials);
84
+ preppedCredentials[env] = Object.assign(preppedCredentials[env], {
85
+ assetId: assetId,
86
+ });
87
+ return (react_1.default.createElement(ThreekitProvider_1.default, { credentials: preppedCredentials, playerConfig: Object.assign({}, playerConfig), theme: theme },
88
+ react_1.default.createElement(Product, null)));
89
+ }
90
+ exports.default = ProductLoader;
package/dist/index.d.ts CHANGED
@@ -35,4 +35,8 @@ import Zoom from './components/Zoom';
35
35
  import Snapshots from './components/Snapshots';
36
36
  import Wishlist from './components/Wishlist';
37
37
  import Share from './components/Share';
38
- export { useAttribute, useConfigurator, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, Tiles, TilesGroup, ProductName, ProductDescription, AttributeTitle, AttributeValue, TotalPrice, message, Modal, Drawer, Accordion, Tabs, PortalToElement, AwaitThreekitLoad, FlatForm, Zoom, Snapshots, Wishlist, Share, };
38
+ import icons from './icons';
39
+ export * from './icons';
40
+ import ProductLoader from './components/ProductLoader';
41
+ import ProductLayout from './components/ProductLayout';
42
+ export { useAttribute, useConfigurator, useMetadata, useName, usePlayerLoadingStatus, usePrice, useThreekitInitStatus, useZoom, useSnapshot, useWishlist, useShare, ThreekitProvider, Player, Button, Cards, Dropdown, Strips, Swatch, Tiles, TilesGroup, ProductName, ProductDescription, AttributeTitle, AttributeValue, TotalPrice, message, Modal, Drawer, Accordion, Tabs, PortalToElement, AwaitThreekitLoad, FlatForm, Zoom, Snapshots, Wishlist, Share, icons, ProductLoader, ProductLayout, };
package/dist/index.js CHANGED
@@ -1,9 +1,19 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
2
12
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
13
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
14
  };
5
15
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Share = exports.Wishlist = exports.Snapshots = exports.Zoom = exports.FlatForm = exports.AwaitThreekitLoad = exports.PortalToElement = exports.Tabs = exports.Accordion = exports.Drawer = exports.Modal = exports.message = exports.TotalPrice = exports.AttributeValue = exports.AttributeTitle = exports.ProductDescription = exports.ProductName = exports.TilesGroup = exports.Tiles = exports.Swatch = exports.Strips = exports.Dropdown = exports.Cards = exports.Button = exports.Player = exports.ThreekitProvider = exports.useShare = exports.useWishlist = exports.useSnapshot = exports.useZoom = exports.useThreekitInitStatus = exports.usePrice = exports.usePlayerLoadingStatus = exports.useName = exports.useMetadata = exports.useConfigurator = exports.useAttribute = void 0;
16
+ exports.ProductLayout = exports.ProductLoader = exports.icons = exports.Share = exports.Wishlist = exports.Snapshots = exports.Zoom = exports.FlatForm = exports.AwaitThreekitLoad = exports.PortalToElement = exports.Tabs = exports.Accordion = exports.Drawer = exports.Modal = exports.message = exports.TotalPrice = exports.AttributeValue = exports.AttributeTitle = exports.ProductDescription = exports.ProductName = exports.TilesGroup = exports.Tiles = exports.Swatch = exports.Strips = exports.Dropdown = exports.Cards = exports.Button = exports.Player = exports.ThreekitProvider = exports.useShare = exports.useWishlist = exports.useSnapshot = exports.useZoom = exports.useThreekitInitStatus = exports.usePrice = exports.usePlayerLoadingStatus = exports.useName = exports.useMetadata = exports.useConfigurator = exports.useAttribute = void 0;
7
17
  // Hooks
8
18
  var useAttribute_1 = __importDefault(require("./hooks/useAttribute"));
9
19
  exports.useAttribute = useAttribute_1.default;
@@ -87,3 +97,12 @@ var Wishlist_1 = __importDefault(require("./components/Wishlist"));
87
97
  exports.Wishlist = Wishlist_1.default;
88
98
  var Share_1 = __importDefault(require("./components/Share"));
89
99
  exports.Share = Share_1.default;
100
+ // Icons
101
+ var icons_1 = __importDefault(require("./icons"));
102
+ exports.icons = icons_1.default;
103
+ __exportStar(require("./icons"), exports);
104
+ // Products - Multi-configurtors
105
+ var ProductLoader_1 = __importDefault(require("./components/ProductLoader"));
106
+ exports.ProductLoader = ProductLoader_1.default;
107
+ var ProductLayout_1 = __importDefault(require("./components/ProductLayout"));
108
+ exports.ProductLayout = ProductLayout_1.default;
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@threekit-tools/treble",
3
- "version": "0.0.19",
3
+ "version": "0.0.23",
4
4
  "author": "Amaan Saeed",
5
5
  "license": "MIT",
6
6
  "files": [
7
- "dist"
7
+ "dist",
8
+ "tailwind-presets.js"
8
9
  ],
9
10
  "main": "dist/index.js",
10
11
  "module": "dist/index.js",
@@ -43,6 +44,7 @@
43
44
  "@types/react-dom": ">=17.0.9",
44
45
  "@types/redux-logger": "^3.0.9",
45
46
  "@types/styled-components": "^5.1.15",
47
+ "@types/webpack-env": "^1.16.3",
46
48
  "babel-loader": "^8.2.2",
47
49
  "react": ">=17.0.2",
48
50
  "react-dom": ">=17.0.2",
@@ -0,0 +1,82 @@
1
+ // eslint-disable-next-line
2
+ const plugin = require('tailwindcss/plugin');
3
+
4
+ // eslint-disable-next-line
5
+ module.exports = {
6
+ purge: ['./public/index.html', './src/**/*.{js,jsx,ts,tsx}'],
7
+ mode: 'jit',
8
+ variants: {},
9
+ theme: {
10
+ extend: {
11
+ colors: {
12
+ primary: '#1890ff',
13
+ },
14
+ height: { 50: '12rem' },
15
+ width: { 50: '12rem' },
16
+ minWidth: {
17
+ 11: '2.75rem',
18
+ },
19
+ boxShadow: {
20
+ trbl: '0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05)',
21
+ wishlist: '0px 4px 16px rgba(0, 0, 0, 0.16)',
22
+ },
23
+ },
24
+ },
25
+ corePlugins: {
26
+ // preflight: false,
27
+ },
28
+ plugins: [
29
+ plugin(function ({ addComponents, theme }) {
30
+ const tooltip = {
31
+ '.trbl-tooltip': {
32
+ paddingBottom: `${theme('spacing.2')}`,
33
+ width: 'max-content',
34
+ borderRadius: theme('borderRadius.sm'),
35
+ position: 'relative',
36
+ top: '-100%',
37
+ left: '50%',
38
+ transform: 'translate(-50%, -100%)',
39
+ color: 'white',
40
+ },
41
+ '.trbl-tooltip-triangle': {
42
+ display: 'flex',
43
+ flexDirection: 'row',
44
+ justifyContent: 'space-around',
45
+
46
+ '& > div': {
47
+ width: `${theme('spacing.0')}`,
48
+ height: `${theme('spacing.0')}`,
49
+ borderLeft: '8px solid transparent',
50
+ borderRight: '8px solid transparent',
51
+ borderTop: '8px solid rgba(0, 0, 0, 0.6)',
52
+ overflow: 'hidden',
53
+ pointerEvents: 'none',
54
+ },
55
+ },
56
+ };
57
+
58
+ addComponents(tooltip);
59
+ }),
60
+ plugin(function ({ addComponents, theme }) {
61
+ const widgetBtn = {
62
+ '.trbl-wgt-btn': {
63
+ borderRadius: `${theme('borderRadius.full')}`,
64
+ height: '40px',
65
+ width: '40px',
66
+ border: 'none',
67
+ color: '#000',
68
+ background: 'rgba(251,251,251,0.5)',
69
+ overflow: 'hidden',
70
+ cursor: 'pointer',
71
+ transition: 'all 0.16s ease-in-out',
72
+ '&:hover': {
73
+ background: 'rgba(240,240,240,0.75)',
74
+ boxShadow: '0px 0px 4px rgb(0 0 0 / 25%)',
75
+ },
76
+ },
77
+ };
78
+
79
+ addComponents(widgetBtn);
80
+ }),
81
+ ],
82
+ };