@uxf/ui 1.0.0-beta.55 → 1.0.0-beta.56
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/_private-utils/get-provider-config.d.ts +2 -0
- package/_private-utils/get-provider-config.js +7 -0
- package/context/context.d.ts +12 -0
- package/context/context.js +5 -0
- package/context/index.d.ts +3 -0
- package/context/index.js +19 -0
- package/context/provider.d.ts +8 -0
- package/context/provider.js +10 -0
- package/context/use-component-context.d.ts +3 -0
- package/context/use-component-context.js +13 -0
- package/icon/icon.d.ts +1 -2
- package/icon/icon.js +4 -2
- package/icon/icon.stories.js +58 -55
- package/icon/types.d.ts +2 -0
- package/icon/types.js +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getProviderConfig = void 0;
|
|
4
|
+
const getProviderConfig = () => ({
|
|
5
|
+
icon: { spriteFilePath: "/icons-generated/_icon-sprite.svg", iconsConfig: { test: { w: 29.65, h: 40 } } },
|
|
6
|
+
});
|
|
7
|
+
exports.getProviderConfig = getProviderConfig;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IconName } from "../icon/types";
|
|
3
|
+
export declare type UiContextType = {
|
|
4
|
+
icon: {
|
|
5
|
+
spriteFilePath: string;
|
|
6
|
+
iconsConfig: Record<IconName, {
|
|
7
|
+
w: number;
|
|
8
|
+
h: number;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export declare const UiContext: import("react").Context<UiContextType | undefined>;
|
package/context/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("@uxf/ui/context/context"), exports);
|
|
18
|
+
__exportStar(require("@uxf/ui/context/provider"), exports);
|
|
19
|
+
__exportStar(require("@uxf/ui/context/use-component-context"), exports);
|
|
@@ -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
|
+
exports.UiContextProvider = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const context_1 = require("./context");
|
|
9
|
+
const UiContextProvider = (props) => (react_1.default.createElement(context_1.UiContext.Provider, { value: props.value }, props.children));
|
|
10
|
+
exports.UiContextProvider = UiContextProvider;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useComponentContext = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const context_1 = require("./context");
|
|
6
|
+
const useComponentContext = (componentName) => {
|
|
7
|
+
const context = (0, react_1.useContext)(context_1.UiContext);
|
|
8
|
+
if (typeof context === "undefined") {
|
|
9
|
+
throw new Error(`If you want to use the "${componentName}" UI component, you have to wrap your code in the "UiContextProvider"`);
|
|
10
|
+
}
|
|
11
|
+
return context[componentName];
|
|
12
|
+
};
|
|
13
|
+
exports.useComponentContext = useComponentContext;
|
package/icon/icon.d.ts
CHANGED
package/icon/icon.js
CHANGED
|
@@ -4,11 +4,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const context_1 = require("../context");
|
|
7
8
|
const cx_1 = require("../utils/cx");
|
|
8
9
|
const forward_ref_1 = require("../utils/forward-ref");
|
|
9
10
|
const rem_1 = require("../utils/rem");
|
|
10
11
|
function Icon(props, ref) {
|
|
11
12
|
var _a, _b;
|
|
13
|
+
const componentContext = (0, context_1.useComponentContext)("icon");
|
|
12
14
|
const CustomComponent = props.Component;
|
|
13
15
|
const className = (0, cx_1.cx)("uxf-icon", props.className);
|
|
14
16
|
const preserveAspectRatio = `xMidYMid ${(_a = props.mode) !== null && _a !== void 0 ? _a : "meet"}`;
|
|
@@ -19,7 +21,7 @@ function Icon(props, ref) {
|
|
|
19
21
|
...((_b = props.style) !== null && _b !== void 0 ? _b : {}),
|
|
20
22
|
}
|
|
21
23
|
: props.style;
|
|
22
|
-
return CustomComponent ? (react_1.default.createElement(CustomComponent, { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style })) : (react_1.default.createElement("svg", { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style },
|
|
23
|
-
react_1.default.createElement("use", { xlinkHref:
|
|
24
|
+
return CustomComponent ? (react_1.default.createElement(CustomComponent, { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style })) : (react_1.default.createElement("svg", { className: className, preserveAspectRatio: preserveAspectRatio, ref: ref, role: "img", style: style, viewBox: `0 0 ${componentContext.iconsConfig[props.name].w} ${componentContext.iconsConfig[props.name].h}` },
|
|
25
|
+
react_1.default.createElement("use", { xlinkHref: `${componentContext.spriteFilePath}#icon-sprite--${props.name}` })));
|
|
24
26
|
}
|
|
25
27
|
exports.default = (0, forward_ref_1.forwardRef)("Icon", Icon);
|
package/icon/icon.stories.js
CHANGED
|
@@ -6,65 +6,68 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.Default = void 0;
|
|
7
7
|
const index_1 = require("./index");
|
|
8
8
|
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const get_provider_config_1 = require("../_private-utils/get-provider-config");
|
|
10
|
+
const context_1 = require("../context");
|
|
9
11
|
exports.default = {
|
|
10
12
|
title: "UI/Icon",
|
|
11
13
|
component: index_1.Icon,
|
|
12
14
|
};
|
|
13
15
|
function Default() {
|
|
14
|
-
return (react_1.default.createElement(
|
|
15
|
-
react_1.default.createElement("div", { className: "
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
16
|
+
return (react_1.default.createElement(context_1.UiContextProvider, { value: (0, get_provider_config_1.getProviderConfig)() },
|
|
17
|
+
react_1.default.createElement("div", { className: "space-y-2" },
|
|
18
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
19
|
+
"Type: ",
|
|
20
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Custom component"),
|
|
21
|
+
", Color:",
|
|
22
|
+
" ",
|
|
23
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Red"),
|
|
24
|
+
", Size: ",
|
|
25
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "16")),
|
|
26
|
+
react_1.default.createElement(index_1.Icon, { Component: index_1.PinIcon, size: 16, className: "text-red-600" }),
|
|
27
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
28
|
+
"Type: ",
|
|
29
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Custom component"),
|
|
30
|
+
", Color:",
|
|
31
|
+
" ",
|
|
32
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Blue"),
|
|
33
|
+
", Size: ",
|
|
34
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "24")),
|
|
35
|
+
react_1.default.createElement(index_1.Icon, { Component: index_1.PinIcon, size: 24, className: "text-blue-600" }),
|
|
36
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
37
|
+
"Type: ",
|
|
38
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Custom component"),
|
|
39
|
+
", Color:",
|
|
40
|
+
" ",
|
|
41
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Green"),
|
|
42
|
+
", Size: ",
|
|
43
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "48")),
|
|
44
|
+
react_1.default.createElement(index_1.Icon, { Component: index_1.PinIcon, size: 48, className: "text-green-600" }),
|
|
45
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
46
|
+
"Type: ",
|
|
47
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "SVG sprite"),
|
|
48
|
+
", Color:",
|
|
49
|
+
" ",
|
|
50
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Red"),
|
|
51
|
+
", Size: ",
|
|
52
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "16")),
|
|
53
|
+
react_1.default.createElement(index_1.Icon, { name: "test", size: 16, className: "text-red-600" }),
|
|
54
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
55
|
+
"Type: ",
|
|
56
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "SVG sprite"),
|
|
57
|
+
", Color:",
|
|
58
|
+
" ",
|
|
59
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Blue"),
|
|
60
|
+
", Size: ",
|
|
61
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "24")),
|
|
62
|
+
react_1.default.createElement(index_1.Icon, { name: "test", size: 24, className: "text-blue-600" }),
|
|
63
|
+
react_1.default.createElement("div", { className: "mb-2 text-sm" },
|
|
64
|
+
"Type: ",
|
|
65
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "SVG sprite"),
|
|
66
|
+
", Color:",
|
|
67
|
+
" ",
|
|
68
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "Green"),
|
|
69
|
+
", Size: ",
|
|
70
|
+
react_1.default.createElement("span", { className: "font-semibold" }, "48")),
|
|
71
|
+
react_1.default.createElement(index_1.Icon, { name: "test", size: 48, className: "text-green-600" }))));
|
|
69
72
|
}
|
|
70
73
|
exports.Default = Default;
|
package/icon/types.d.ts
ADDED
package/icon/types.js
ADDED