pds-dev-kit-web 2.2.15 → 2.2.16

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.
Files changed (61) hide show
  1. package/dist/src/sub/DynamicLayout/mock_samplePage.js +1 -1
  2. package/dist/src/sub/DynamicLayout/pagesPreviewMock.d.ts +1 -1
  3. package/dist/src/sub/DynamicLayout/pagesPreviewMock.js +4 -4
  4. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +3 -0
  5. package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +4 -0
  6. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/getGoogleFonts.d.ts +4 -0
  7. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/getGoogleFonts.js +25 -0
  8. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/index.d.ts +2 -0
  9. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/index.js +11 -0
  10. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/useGoogleFonts.d.ts +4 -0
  11. package/dist/src/sub/DynamicLayout/sections/CustomSection/hooks/useGoogleFonts/useGoogleFonts.js +17 -0
  12. package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.d.ts +3 -2
  13. package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/textUtil.js +5 -2
  14. package/dist/src/sub/GoogleFontkit/GoogleFontApplyExample.d.ts +3 -0
  15. package/dist/src/sub/GoogleFontkit/GoogleFontApplyExample.js +92 -0
  16. package/dist/src/sub/GoogleFontkit/GoogleFontsListExample.d.ts +3 -0
  17. package/dist/src/sub/GoogleFontkit/GoogleFontsListExample.js +57 -0
  18. package/dist/src/sub/GoogleFontkit/api/getGoogleFontCss.d.ts +10 -0
  19. package/dist/src/sub/GoogleFontkit/api/getGoogleFontCss.js +53 -0
  20. package/dist/src/sub/GoogleFontkit/api/getGoogleFontDefaultText.d.ts +2 -0
  21. package/dist/src/sub/GoogleFontkit/api/getGoogleFontDefaultText.js +55 -0
  22. package/dist/src/sub/GoogleFontkit/api/getGoogleWebFonts.d.ts +10 -0
  23. package/dist/src/sub/GoogleFontkit/api/getGoogleWebFonts.js +53 -0
  24. package/dist/src/sub/GoogleFontkit/constants.d.ts +7 -0
  25. package/dist/src/sub/GoogleFontkit/constants.js +44 -0
  26. package/dist/src/sub/GoogleFontkit/headless/GoogleFontItem.d.ts +15 -0
  27. package/dist/src/sub/GoogleFontkit/headless/GoogleFontItem.js +126 -0
  28. package/dist/src/sub/GoogleFontkit/headless/GoogleFontsList.d.ts +17 -0
  29. package/dist/src/sub/GoogleFontkit/headless/GoogleFontsList.js +144 -0
  30. package/dist/src/sub/GoogleFontkit/hooks/useDebounce.d.ts +1 -0
  31. package/dist/src/sub/GoogleFontkit/hooks/useDebounce.js +14 -0
  32. package/dist/src/sub/GoogleFontkit/hooks/useIntersectionObserver.d.ts +6 -0
  33. package/dist/src/sub/GoogleFontkit/hooks/useIntersectionObserver.js +29 -0
  34. package/dist/src/sub/GoogleFontkit/index.d.ts +7 -0
  35. package/dist/src/sub/GoogleFontkit/index.js +32 -0
  36. package/dist/src/sub/GoogleFontkit/types.d.ts +44 -0
  37. package/dist/src/sub/GoogleFontkit/types.js +14 -0
  38. package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.d.ts +2 -0
  39. package/dist/src/sub/GoogleFontkit/utils/applyActiveFont.js +12 -0
  40. package/dist/src/sub/GoogleFontkit/utils/callGoogleFontCSSAndApply.d.ts +2 -0
  41. package/dist/src/sub/GoogleFontkit/utils/callGoogleFontCSSAndApply.js +72 -0
  42. package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.d.ts +1 -0
  43. package/dist/src/sub/GoogleFontkit/utils/createStyleSheet.js +10 -0
  44. package/dist/src/sub/GoogleFontkit/utils/extractFontStyles.d.ts +1 -0
  45. package/dist/src/sub/GoogleFontkit/utils/extractFontStyles.js +22 -0
  46. package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.d.ts +1 -0
  47. package/dist/src/sub/GoogleFontkit/utils/fillStyleSheet.js +13 -0
  48. package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.d.ts +1 -0
  49. package/dist/src/sub/GoogleFontkit/utils/getActiveFontStylesheet.js +13 -0
  50. package/dist/src/sub/GoogleFontkit/utils/getFontId.d.ts +1 -0
  51. package/dist/src/sub/GoogleFontkit/utils/getFontId.js +6 -0
  52. package/dist/src/sub/GoogleFontkit/utils/getMatches.d.ts +1 -0
  53. package/dist/src/sub/GoogleFontkit/utils/getMatches.js +14 -0
  54. package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.d.ts +1 -0
  55. package/dist/src/sub/GoogleFontkit/utils/isStyleSheetExists.js +12 -0
  56. package/dist/src/sub/GoogleFontkit/utils/parseFontVariants.d.ts +4 -0
  57. package/dist/src/sub/GoogleFontkit/utils/parseFontVariants.js +18 -0
  58. package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.d.ts +1 -0
  59. package/dist/src/sub/GoogleFontkit/utils/setStyleSheetType.js +15 -0
  60. package/package.json +1 -1
  61. package/release-note.md +4 -15
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var react_1 = require("react");
43
+ var getGoogleFontCss_1 = __importDefault(require("../api/getGoogleFontCss"));
44
+ var getGoogleFontDefaultText_1 = __importDefault(require("../api/getGoogleFontDefaultText"));
45
+ var useIntersectionObserver_1 = __importDefault(require("../hooks/useIntersectionObserver"));
46
+ var applyActiveFont_1 = __importDefault(require("../utils/applyActiveFont"));
47
+ var createStyleSheet_1 = __importDefault(require("../utils/createStyleSheet"));
48
+ var extractFontStyles_1 = __importDefault(require("../utils/extractFontStyles"));
49
+ var fillStyleSheet_1 = __importDefault(require("../utils/fillStyleSheet"));
50
+ var isStyleSheetExists_1 = __importDefault(require("../utils/isStyleSheetExists"));
51
+ var parseFontVariants_1 = __importDefault(require("../utils/parseFontVariants"));
52
+ var setStyleSheetType_1 = __importDefault(require("../utils/setStyleSheetType"));
53
+ function GoogleFontItem(_a) {
54
+ var font = _a.font, fetchDefaultText = _a.fetchDefaultText, children = _a.children;
55
+ var _b = (0, react_1.useState)(false), isLoading = _b[0], setIsLoading = _b[1];
56
+ var _c = (0, react_1.useState)(''), defaultText = _c[0], setDefaultText = _c[1];
57
+ var ref = (0, react_1.useRef)(null);
58
+ var entry = (0, useIntersectionObserver_1.default)(ref, {});
59
+ var isVisible = !!(entry === null || entry === void 0 ? void 0 : entry.isIntersecting);
60
+ (0, react_1.useEffect)(function () {
61
+ if (!isVisible) {
62
+ return;
63
+ }
64
+ function getCss() {
65
+ return __awaiter(this, void 0, void 0, function () {
66
+ var css, fontStyles;
67
+ return __generator(this, function (_a) {
68
+ switch (_a.label) {
69
+ case 0:
70
+ setIsLoading(true);
71
+ return [4 /*yield*/, (0, getGoogleFontCss_1.default)({
72
+ family: "".concat(font.family).concat((0, parseFontVariants_1.default)(font.variants, {
73
+ prefix: ':wght@',
74
+ separator: ';'
75
+ })),
76
+ 'font-display': 'swap'
77
+ })];
78
+ case 1:
79
+ css = _a.sent();
80
+ fontStyles = (0, extractFontStyles_1.default)(css);
81
+ (0, fillStyleSheet_1.default)(font.id, fontStyles[font.id]);
82
+ setIsLoading(false);
83
+ return [2 /*return*/];
84
+ }
85
+ });
86
+ });
87
+ }
88
+ if ((0, isStyleSheetExists_1.default)(font.id, false)) {
89
+ (0, applyActiveFont_1.default)(font, '', '');
90
+ setIsLoading(false);
91
+ }
92
+ else if ((0, isStyleSheetExists_1.default)(font.id, true)) {
93
+ (0, setStyleSheetType_1.default)(font.id, false);
94
+ setIsLoading(false);
95
+ }
96
+ else {
97
+ (0, createStyleSheet_1.default)(font.id, false);
98
+ getCss();
99
+ }
100
+ }, [font, isVisible]);
101
+ (0, react_1.useEffect)(function () {
102
+ if (!fetchDefaultText) {
103
+ return;
104
+ }
105
+ if (!font.family || !isVisible || defaultText) {
106
+ return;
107
+ }
108
+ function getDefaultText() {
109
+ return __awaiter(this, void 0, void 0, function () {
110
+ var text;
111
+ return __generator(this, function (_a) {
112
+ switch (_a.label) {
113
+ case 0: return [4 /*yield*/, (0, getGoogleFontDefaultText_1.default)(font.family)];
114
+ case 1:
115
+ text = _a.sent();
116
+ setDefaultText(text.sampleText.tester);
117
+ return [2 /*return*/];
118
+ }
119
+ });
120
+ });
121
+ }
122
+ getDefaultText();
123
+ }, [font, isVisible, defaultText, fetchDefaultText]);
124
+ return children({ isLoading: isLoading, isVisible: isVisible, ref: ref, defaultText: defaultText });
125
+ }
126
+ exports.default = GoogleFontItem;
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import type { Font, SortOption, FilterOptionType, ChangeFilterOptionHandler } from '../types';
3
+ type HeadlessProps = {
4
+ isLoading: boolean;
5
+ fonts: Font[];
6
+ filteredFonts: Font[];
7
+ filterOptions: FilterOptionType;
8
+ changeSort: (sortOption: SortOption) => void;
9
+ changeFilterOption: ChangeFilterOptionHandler;
10
+ };
11
+ type Props = {
12
+ apiKey: string;
13
+ sort: SortOption;
14
+ children: (args: HeadlessProps) => JSX.Element;
15
+ };
16
+ declare function GoogleFontsList({ apiKey, sort, children }: Props): JSX.Element;
17
+ export default GoogleFontsList;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
52
+ Object.defineProperty(exports, "__esModule", { value: true });
53
+ var react_1 = require("react");
54
+ var getGoogleWebFonts_1 = __importDefault(require("../api/getGoogleWebFonts"));
55
+ var getFontId_1 = __importDefault(require("../utils/getFontId"));
56
+ var DEFAULT_CATEGORIES = [
57
+ 'serif',
58
+ 'sans-serif',
59
+ 'display',
60
+ 'handwriting',
61
+ 'monospace'
62
+ ];
63
+ function GoogleFontsList(_a) {
64
+ var apiKey = _a.apiKey, sort = _a.sort, children = _a.children;
65
+ var _b = (0, react_1.useState)(false), isLoading = _b[0], setIsLoading = _b[1];
66
+ var _c = (0, react_1.useState)([]), fonts = _c[0], setFonts = _c[1];
67
+ var _d = (0, react_1.useState)({
68
+ searchQuery: '',
69
+ categories: DEFAULT_CATEGORIES,
70
+ subsets: []
71
+ }), filterOptions = _d[0], setFilterOptions = _d[1];
72
+ (0, react_1.useEffect)(function () {
73
+ function call() {
74
+ return __awaiter(this, void 0, void 0, function () {
75
+ var items;
76
+ return __generator(this, function (_a) {
77
+ switch (_a.label) {
78
+ case 0:
79
+ setIsLoading(true);
80
+ return [4 /*yield*/, (0, getGoogleWebFonts_1.default)({
81
+ key: apiKey,
82
+ sort: sort
83
+ })];
84
+ case 1:
85
+ items = (_a.sent()).items;
86
+ setFonts(items.map(function (item) { return (__assign(__assign({}, item), { id: (0, getFontId_1.default)(item.family) })); }));
87
+ setIsLoading(false);
88
+ return [2 /*return*/];
89
+ }
90
+ });
91
+ });
92
+ }
93
+ call();
94
+ }, [apiKey, sort]);
95
+ function changeSort(sortOption) {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ var items;
98
+ return __generator(this, function (_a) {
99
+ switch (_a.label) {
100
+ case 0:
101
+ setIsLoading(true);
102
+ return [4 /*yield*/, (0, getGoogleWebFonts_1.default)({
103
+ key: apiKey,
104
+ sort: sortOption
105
+ })];
106
+ case 1:
107
+ items = (_a.sent()).items;
108
+ setFonts(items.map(function (item) { return (__assign(__assign({}, item), { id: (0, getFontId_1.default)(item.family) })); }));
109
+ return [2 /*return*/];
110
+ }
111
+ });
112
+ });
113
+ }
114
+ function changeFilterOption(arg) {
115
+ var name = arg.name, value = arg.value;
116
+ setFilterOptions(function (prev) {
117
+ var _a;
118
+ return (__assign(__assign({}, prev), (_a = {}, _a[name] = value, _a)));
119
+ });
120
+ }
121
+ var filteredFonts = fonts.filter(function (font) {
122
+ var categories = filterOptions.categories, searchQuery = filterOptions.searchQuery, subsets = filterOptions.subsets;
123
+ var isSelectedCategory = categories.includes(font.category);
124
+ var query = searchQuery.toLocaleLowerCase().trim();
125
+ var matchSearchQuery = font.family.toLocaleLowerCase().includes(query);
126
+ if (!matchSearchQuery) {
127
+ return false;
128
+ }
129
+ var hasSomeScript = subsets.length > 0 ? font.subsets.some(function (subset) { return subsets.includes(subset); }) : true;
130
+ if (isSelectedCategory && hasSomeScript) {
131
+ return true;
132
+ }
133
+ return false;
134
+ });
135
+ return children({
136
+ isLoading: isLoading,
137
+ fonts: fonts,
138
+ filteredFonts: filteredFonts,
139
+ filterOptions: filterOptions,
140
+ changeSort: changeSort,
141
+ changeFilterOption: changeFilterOption
142
+ });
143
+ }
144
+ exports.default = GoogleFontsList;
@@ -0,0 +1 @@
1
+ export default function useDebounce<T>(value: T, delay?: number): T;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ function useDebounce(value, delay) {
5
+ var _a = (0, react_1.useState)(value), debouncedValue = _a[0], setDebouncedValue = _a[1];
6
+ (0, react_1.useEffect)(function () {
7
+ var timer = setTimeout(function () { return setDebouncedValue(value); }, delay || 500);
8
+ return function () {
9
+ clearTimeout(timer);
10
+ };
11
+ }, [value, delay]);
12
+ return debouncedValue;
13
+ }
14
+ exports.default = useDebounce;
@@ -0,0 +1,6 @@
1
+ import { RefObject } from 'react';
2
+ interface Args extends IntersectionObserverInit {
3
+ freezeOnceVisible?: boolean;
4
+ }
5
+ declare function useIntersectionObserver(elementRef: RefObject<Element>, { threshold, root, rootMargin, freezeOnceVisible }: Args): IntersectionObserverEntry | undefined;
6
+ export default useIntersectionObserver;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ function useIntersectionObserver(elementRef, _a) {
5
+ var _b = _a.threshold, threshold = _b === void 0 ? 0 : _b, _c = _a.root, root = _c === void 0 ? null : _c, _d = _a.rootMargin, rootMargin = _d === void 0 ? '0%' : _d, _e = _a.freezeOnceVisible, freezeOnceVisible = _e === void 0 ? false : _e;
6
+ var _f = (0, react_1.useState)(), entry = _f[0], setEntry = _f[1];
7
+ var frozen = (entry === null || entry === void 0 ? void 0 : entry.isIntersecting) && freezeOnceVisible;
8
+ // eslint-disable-next-line @typescript-eslint/no-shadow
9
+ var updateEntry = function (_a) {
10
+ var entry = _a[0];
11
+ setEntry(entry);
12
+ };
13
+ (0, react_1.useEffect)(function () {
14
+ var node = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current; // DOM Ref
15
+ var hasIOSupport = !!window.IntersectionObserver;
16
+ if (!hasIOSupport || frozen || !node)
17
+ return;
18
+ var observerParams = { threshold: threshold, root: root, rootMargin: rootMargin };
19
+ var observer = new IntersectionObserver(updateEntry, observerParams);
20
+ observer.observe(node);
21
+ // eslint-disable-next-line consistent-return
22
+ return function () {
23
+ observer.disconnect();
24
+ };
25
+ // eslint-disable-next-line react-hooks/exhaustive-deps
26
+ }, [elementRef === null || elementRef === void 0 ? void 0 : elementRef.current, threshold, root, rootMargin, frozen]);
27
+ return entry;
28
+ }
29
+ exports.default = useIntersectionObserver;
@@ -0,0 +1,7 @@
1
+ export { default as GoogleFontsList } from './headless/GoogleFontsList';
2
+ export { default as GoogleFontItem } from './headless/GoogleFontItem';
3
+ export { default as Example } from './GoogleFontsListExample';
4
+ export { default as useDebounce } from './hooks/useDebounce';
5
+ export { default as useIntersectionObserver } from './hooks/useIntersectionObserver';
6
+ export * from './types';
7
+ export * from './constants';
@@ -0,0 +1,32 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.useIntersectionObserver = exports.useDebounce = exports.Example = exports.GoogleFontItem = exports.GoogleFontsList = void 0;
21
+ var GoogleFontsList_1 = require("./headless/GoogleFontsList");
22
+ Object.defineProperty(exports, "GoogleFontsList", { enumerable: true, get: function () { return __importDefault(GoogleFontsList_1).default; } });
23
+ var GoogleFontItem_1 = require("./headless/GoogleFontItem");
24
+ Object.defineProperty(exports, "GoogleFontItem", { enumerable: true, get: function () { return __importDefault(GoogleFontItem_1).default; } });
25
+ var GoogleFontsListExample_1 = require("./GoogleFontsListExample");
26
+ Object.defineProperty(exports, "Example", { enumerable: true, get: function () { return __importDefault(GoogleFontsListExample_1).default; } });
27
+ var useDebounce_1 = require("./hooks/useDebounce");
28
+ Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return __importDefault(useDebounce_1).default; } });
29
+ var useIntersectionObserver_1 = require("./hooks/useIntersectionObserver");
30
+ Object.defineProperty(exports, "useIntersectionObserver", { enumerable: true, get: function () { return __importDefault(useIntersectionObserver_1).default; } });
31
+ __exportStar(require("./types"), exports);
32
+ __exportStar(require("./constants"), exports);
@@ -0,0 +1,44 @@
1
+ export type Category = 'serif' | 'sans-serif' | 'display' | 'handwriting' | 'monospace';
2
+ export type Subset = 'korean' | 'latin' | 'latin-ext' | 'arabic' | 'bengali' | 'chinese-hongkong' | 'chinese-simplified' | 'chinese-traditional' | 'cyrillic' | 'cyrillic-ext' | 'devanagari' | 'greek' | 'greek-ext' | 'gujarati' | 'gurmukhi' | 'hebrew' | 'japanese' | 'kannada' | 'khmer' | 'malayalam' | 'myanmar' | 'oriya' | 'sinhala' | 'tamil' | '​telugu' | 'thai' | 'tibetan' | 'vietnamese';
3
+ export type SortOption = 'trending' | 'popularity' | 'date' | 'alpha';
4
+ export type Variant = '100' | '100italic' | '200' | '200italic' | '300' | '300italic' | 'regular' | 'italic' | '500' | '500italic' | '600' | '600italic' | '700' | '700italic' | '800' | '800italic' | '900' | '900italic';
5
+ export interface Font {
6
+ family: string;
7
+ id: string;
8
+ category: Category;
9
+ subsets: Subset[];
10
+ variants: Variant[];
11
+ kind?: string;
12
+ version?: string;
13
+ lastModified?: string;
14
+ files?: Record<Variant, string>;
15
+ }
16
+ export declare const FONT_FAMILY_DEFAULT = "Open Sans";
17
+ export type FontList = Map<string, Font>;
18
+ export interface Options {
19
+ pickerId: string;
20
+ families: string[];
21
+ categories: Category[];
22
+ scripts: Subset[];
23
+ variants: Variant[];
24
+ filter: (font: Font) => boolean;
25
+ limit: number;
26
+ sort: SortOption;
27
+ }
28
+ export declare const OPTIONS_DEFAULTS: Options;
29
+ export type FilterOptionHandlerArgType = {
30
+ name: 'searchQuery';
31
+ value: string;
32
+ } | {
33
+ name: 'categories';
34
+ value: Category[];
35
+ } | {
36
+ name: 'subsets';
37
+ value: Subset[];
38
+ };
39
+ export type ChangeFilterOptionHandler = (arg: FilterOptionHandlerArgType) => void;
40
+ export type FilterOptionType = {
41
+ searchQuery: string;
42
+ categories: Category[];
43
+ subsets: Subset[];
44
+ };
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPTIONS_DEFAULTS = exports.FONT_FAMILY_DEFAULT = void 0;
4
+ exports.FONT_FAMILY_DEFAULT = 'Open Sans';
5
+ exports.OPTIONS_DEFAULTS = {
6
+ pickerId: '',
7
+ families: [],
8
+ categories: [],
9
+ scripts: ['latin'],
10
+ variants: ['regular'],
11
+ filter: function () { return true; },
12
+ limit: 50,
13
+ sort: 'alpha'
14
+ };
@@ -0,0 +1,2 @@
1
+ import type { Font } from '../types';
2
+ export default function applyActiveFont(activeFont: Font, previousFontFamily: string, selectorSuffix: string): void;
@@ -0,0 +1,12 @@
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 getActiveFontStylesheet_1 = __importDefault(require("./getActiveFontStylesheet"));
7
+ function applyActiveFont(activeFont, previousFontFamily, selectorSuffix) {
8
+ var style = "\n\t\t.apply-font".concat(selectorSuffix, " {\n\t\t\tfont-family: \"").concat(activeFont.family, "\"").concat(previousFontFamily ? ", \"".concat(previousFontFamily, "\"") : '', ";\n\t\t}\n\t");
9
+ var activeFontStylesheet = (0, getActiveFontStylesheet_1.default)(selectorSuffix);
10
+ activeFontStylesheet.innerHTML = style;
11
+ }
12
+ exports.default = applyActiveFont;
@@ -0,0 +1,2 @@
1
+ declare function callGoogleFontCSSAndApply(fontFamily: string): Promise<void>;
2
+ export default callGoogleFontCSSAndApply;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var getGoogleFontCss_1 = __importDefault(require("../api/getGoogleFontCss"));
43
+ var createStyleSheet_1 = __importDefault(require("./createStyleSheet"));
44
+ var extractFontStyles_1 = __importDefault(require("./extractFontStyles"));
45
+ var fillStyleSheet_1 = __importDefault(require("./fillStyleSheet"));
46
+ var getFontId_1 = __importDefault(require("./getFontId"));
47
+ var isStyleSheetExists_1 = __importDefault(require("./isStyleSheetExists"));
48
+ function callGoogleFontCSSAndApply(fontFamily) {
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var fontId, css, fontStyles;
51
+ return __generator(this, function (_a) {
52
+ switch (_a.label) {
53
+ case 0:
54
+ fontId = (0, getFontId_1.default)(fontFamily);
55
+ if ((0, isStyleSheetExists_1.default)(fontId)) {
56
+ return [2 /*return*/];
57
+ }
58
+ (0, createStyleSheet_1.default)(fontId, false);
59
+ return [4 /*yield*/, (0, getGoogleFontCss_1.default)({
60
+ family: "".concat(fontFamily, ":wght@100;200;300;400;500;700;800;900"),
61
+ 'font-display': 'swap'
62
+ })];
63
+ case 1:
64
+ css = _a.sent();
65
+ fontStyles = (0, extractFontStyles_1.default)(css);
66
+ (0, fillStyleSheet_1.default)(fontId, fontStyles[fontId]);
67
+ return [2 /*return*/];
68
+ }
69
+ });
70
+ });
71
+ }
72
+ exports.default = callGoogleFontCSSAndApply;
@@ -0,0 +1 @@
1
+ export default function createStylesheet(fontId: string, isPreview: boolean): void;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var constants_1 = require("../constants");
4
+ function createStylesheet(fontId, isPreview) {
5
+ var stylesheetNode = document.createElement('style');
6
+ stylesheetNode.id = fontId;
7
+ stylesheetNode.setAttribute(constants_1.PREVIEW_ATTRIBUTE_NAME, isPreview.toString());
8
+ document.head.appendChild(stylesheetNode);
9
+ }
10
+ exports.default = createStylesheet;
@@ -0,0 +1 @@
1
+ export default function extractFontStyles(allFontStyles: string): Record<string, string>;
@@ -0,0 +1,22 @@
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 constants_1 = require("../constants");
7
+ var getFontId_1 = __importDefault(require("./getFontId"));
8
+ var getMatches_1 = __importDefault(require("./getMatches"));
9
+ function extractFontStyles(allFontStyles) {
10
+ var rules = (0, getMatches_1.default)(constants_1.FONT_FACE_REGEX, allFontStyles);
11
+ var fontStyles = {};
12
+ rules.forEach(function (rule) {
13
+ var fontFamily = (0, getMatches_1.default)(constants_1.FONT_FAMILY_REGEX, rule)[0];
14
+ var fontId = (0, getFontId_1.default)(fontFamily);
15
+ if (!(fontId in fontStyles)) {
16
+ fontStyles[fontId] = '';
17
+ }
18
+ fontStyles[fontId] += "@font-face {\n".concat(rule, "\n}\n\n");
19
+ });
20
+ return fontStyles;
21
+ }
22
+ exports.default = extractFontStyles;
@@ -0,0 +1 @@
1
+ export default function fillStylesheet(fontId: string, styles: string): void;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function fillStylesheet(fontId, styles) {
4
+ var stylesheetNode = document.getElementById(fontId);
5
+ if (stylesheetNode) {
6
+ stylesheetNode.textContent = styles;
7
+ }
8
+ else {
9
+ // eslint-disable-next-line no-console
10
+ console.error("Could not fill stylesheet: Stylesheet with ID \"".concat(fontId, "\" not found"));
11
+ }
12
+ }
13
+ exports.default = fillStylesheet;
@@ -0,0 +1 @@
1
+ export default function getActiveFontStylesheet(selectorSuffix: string): HTMLStyleElement;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getActiveFontStylesheet(selectorSuffix) {
4
+ var stylesheetId = "active-font-".concat(selectorSuffix);
5
+ var activeFontStylesheet = document.getElementById(stylesheetId);
6
+ if (!activeFontStylesheet) {
7
+ activeFontStylesheet = document.createElement('style');
8
+ activeFontStylesheet.id = stylesheetId;
9
+ document.head.appendChild(activeFontStylesheet);
10
+ }
11
+ return activeFontStylesheet;
12
+ }
13
+ exports.default = getActiveFontStylesheet;
@@ -0,0 +1 @@
1
+ export default function getFontId(fontFamily: string): string;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getFontId(fontFamily) {
4
+ return fontFamily.replace(/\s+/g, '-').toLowerCase();
5
+ }
6
+ exports.default = getFontId;
@@ -0,0 +1 @@
1
+ export default function getMatches(regex: RegExp, str: string): string[];