@plasmicpkgs/plasmic-rich-components 1.0.168 → 1.0.170

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 (64) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.js +7 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/plasmic-rich-components.esm.js +7 -7
  5. package/dist/plasmic-rich-components.esm.js.map +1 -1
  6. package/dist/rich-calendar/index.d.ts +1 -1
  7. package/package.json +20 -6
  8. package/skinny/common-8cca2977.esm.js +22 -0
  9. package/skinny/common-8cca2977.esm.js.map +1 -0
  10. package/skinny/common-e1d76791.cjs.js +30 -0
  11. package/skinny/common-e1d76791.cjs.js.map +1 -0
  12. package/skinny/common-prop-types-5f1fd4b0.cjs.js +139 -0
  13. package/skinny/common-prop-types-5f1fd4b0.cjs.js.map +1 -0
  14. package/skinny/common-prop-types-686c49fe.esm.js +133 -0
  15. package/skinny/common-prop-types-686c49fe.esm.js.map +1 -0
  16. package/skinny/common-prop-types.d.ts +12 -0
  17. package/skinny/common.d.ts +5 -0
  18. package/skinny/field-mappings.d.ts +100 -0
  19. package/skinny/field-react-utils-26fba31e.esm.js +142 -0
  20. package/skinny/field-react-utils-26fba31e.esm.js.map +1 -0
  21. package/skinny/field-react-utils-c717ec94.cjs.js +153 -0
  22. package/skinny/field-react-utils-c717ec94.cjs.js.map +1 -0
  23. package/skinny/field-react-utils.d.ts +34 -0
  24. package/skinny/formatting-327e0658.cjs.js +645 -0
  25. package/skinny/formatting-327e0658.cjs.js.map +1 -0
  26. package/skinny/formatting-aff39488.esm.js +633 -0
  27. package/skinny/formatting-aff39488.esm.js.map +1 -0
  28. package/skinny/formatting.d.ts +7 -0
  29. package/skinny/rich-calendar/RichCalendar.d.ts +31 -0
  30. package/skinny/rich-calendar/index.cjs.js +501 -0
  31. package/skinny/rich-calendar/index.cjs.js.map +1 -0
  32. package/skinny/rich-calendar/index.d.ts +15 -0
  33. package/skinny/rich-calendar/index.esm.js +488 -0
  34. package/skinny/rich-calendar/index.esm.js.map +1 -0
  35. package/skinny/rich-details/RichDetails.d.ts +12 -0
  36. package/skinny/rich-details/index.cjs.js +169 -0
  37. package/skinny/rich-details/index.cjs.js.map +1 -0
  38. package/skinny/rich-details/index.d.ts +3 -0
  39. package/skinny/rich-details/index.esm.js +162 -0
  40. package/skinny/rich-details/index.esm.js.map +1 -0
  41. package/skinny/rich-layout/RichLayout.d.ts +22 -0
  42. package/skinny/rich-layout/index.cjs.js +486 -0
  43. package/skinny/rich-layout/index.cjs.js.map +1 -0
  44. package/skinny/rich-layout/index.d.ts +5 -0
  45. package/skinny/rich-layout/index.esm.js +476 -0
  46. package/skinny/rich-layout/index.esm.js.map +1 -0
  47. package/skinny/rich-list/RichList.d.ts +59 -0
  48. package/skinny/rich-list/index.cjs.js +583 -0
  49. package/skinny/rich-list/index.cjs.js.map +1 -0
  50. package/skinny/rich-list/index.d.ts +5 -0
  51. package/skinny/rich-list/index.esm.js +571 -0
  52. package/skinny/rich-list/index.esm.js.map +1 -0
  53. package/skinny/rich-table/RichTable.d.ts +46 -0
  54. package/skinny/rich-table/index.cjs.js +598 -0
  55. package/skinny/rich-table/index.cjs.js.map +1 -0
  56. package/skinny/rich-table/index.d.ts +21 -0
  57. package/skinny/rich-table/index.esm.js +586 -0
  58. package/skinny/rich-table/index.esm.js.map +1 -0
  59. package/skinny/utils-65c486f0.cjs.js +139 -0
  60. package/skinny/utils-65c486f0.cjs.js.map +1 -0
  61. package/skinny/utils-c32bd7ed.esm.js +118 -0
  62. package/skinny/utils-c32bd7ed.esm.js.map +1 -0
  63. package/skinny/utils.d.ts +72 -0
  64. package/skinny/widgets.d.ts +2 -0
@@ -0,0 +1,139 @@
1
+ 'use strict';
2
+
3
+ var registerComponent = require('@plasmicapp/host/registerComponent');
4
+ require('@plasmicapp/host/registerGlobalContext');
5
+ var luxonParser = require('@plasmicpkgs/luxon-parser');
6
+ var dayjs = require('dayjs');
7
+ var customParseFormat = require('dayjs/plugin/customParseFormat');
8
+ var React = require('react');
9
+ var antd = require('antd');
10
+
11
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
+
13
+ var registerComponent__default = /*#__PURE__*/_interopDefault(registerComponent);
14
+ var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
15
+ var customParseFormat__default = /*#__PURE__*/_interopDefault(customParseFormat);
16
+ var React__default = /*#__PURE__*/_interopDefault(React);
17
+
18
+ function registerComponentHelper(loader, component, meta) {
19
+ if (loader) {
20
+ loader.registerComponent(component, meta);
21
+ } else {
22
+ registerComponent__default.default(component, meta);
23
+ }
24
+ }
25
+ function ensure(x) {
26
+ if (x === null || x === void 0) {
27
+ throw new Error("Expected non-null or non-undefined value");
28
+ }
29
+ return x;
30
+ }
31
+ function isOneOf(elem, arr) {
32
+ return arr.includes(elem);
33
+ }
34
+ function maybe(x, f) {
35
+ if (x === void 0 || x === null)
36
+ return void 0;
37
+ return f(x);
38
+ }
39
+ function isValidIsoDate(str, extendedOnly = false) {
40
+ if (!str)
41
+ return false;
42
+ if (typeof str !== "string")
43
+ return false;
44
+ if (str.includes(" "))
45
+ return false;
46
+ if (str.length === 10) {
47
+ if (extendedOnly)
48
+ return false;
49
+ dayjs__default.default.extend(customParseFormat__default.default);
50
+ return dayjs__default.default(str, "YYYY-MM-DD", true).isValid();
51
+ }
52
+ if (!dayjs__default.default(str).isValid())
53
+ return false;
54
+ if (isNaN(new Date(str).getTime()))
55
+ return false;
56
+ return true;
57
+ }
58
+ function isLikeDate(value) {
59
+ const parsed = luxonParser.parseDate(value);
60
+ return parsed ? true : false;
61
+ }
62
+ function isLikeImage(value) {
63
+ return typeof value === "string" ? value.match(/\.(png|jpg|jpeg|gif|svg|webp|avif|ico|bmp|tiff)$/i) : false;
64
+ }
65
+ function isLikeColor(value) {
66
+ if (typeof value !== "string")
67
+ return false;
68
+ const hex = /^#?([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[0-9a-fA-F]{4}([0-9a-fA-F]{4})?)$/;
69
+ const rgba = /^rgba?\((\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*(1|0?(\.\d+)?))?\s*)\)$/;
70
+ const cssNamed = /^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/;
71
+ const hsla = /^hsla?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
72
+ const cmyk = /^cmyka?\((\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
73
+ const hsv = /^hsva?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
74
+ if (value.match(hex) || value.match(rgba) || value.match(cssNamed) || value.match(hsla) || value.match(cmyk) || value.match(hsv)) {
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ function isInteractable(target) {
80
+ if (["A", "BUTTON", "INPUT", "TEXTAREA", "SELECT"].includes(target.tagName)) {
81
+ return true;
82
+ }
83
+ if (target.contentEditable === "true") {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ function ensureArray(xs) {
89
+ return Array.isArray(xs) ? xs : [xs];
90
+ }
91
+ const mkShortId = () => `${Math.random()}`;
92
+ function withoutFalsey(xs) {
93
+ return xs.filter((x) => !!x);
94
+ }
95
+ class ErrorBoundary extends React__default.default.Component {
96
+ constructor() {
97
+ super(...arguments);
98
+ this.state = { hasError: false, errorInfo: "" };
99
+ }
100
+ static getDerivedStateFromError(error) {
101
+ return { hasError: true, errorInfo: error.message };
102
+ }
103
+ componentDidCatch(error, errorInfo) {
104
+ console.log(error, errorInfo);
105
+ }
106
+ componentDidUpdate(prevProps, prevState) {
107
+ if (prevProps.canvasEnvId !== this.props.canvasEnvId && prevState.hasError) {
108
+ this.setState({ hasError: false });
109
+ }
110
+ }
111
+ render() {
112
+ if (this.state.hasError) {
113
+ return /* @__PURE__ */ React__default.default.createElement(
114
+ antd.Result,
115
+ {
116
+ status: "error",
117
+ title: "Something went wrong.",
118
+ extra: this.state.errorInfo
119
+ }
120
+ );
121
+ }
122
+ return this.props.children;
123
+ }
124
+ }
125
+
126
+ exports.ErrorBoundary = ErrorBoundary;
127
+ exports.ensure = ensure;
128
+ exports.ensureArray = ensureArray;
129
+ exports.isInteractable = isInteractable;
130
+ exports.isLikeColor = isLikeColor;
131
+ exports.isLikeDate = isLikeDate;
132
+ exports.isLikeImage = isLikeImage;
133
+ exports.isOneOf = isOneOf;
134
+ exports.isValidIsoDate = isValidIsoDate;
135
+ exports.maybe = maybe;
136
+ exports.mkShortId = mkShortId;
137
+ exports.registerComponentHelper = registerComponentHelper;
138
+ exports.withoutFalsey = withoutFalsey;
139
+ //# sourceMappingURL=utils-65c486f0.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-65c486f0.cjs.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport { parseDate } from \"@plasmicpkgs/luxon-parser\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function ensureNumber(x: number | string): number {\n return x as number;\n}\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(\"Expected non-null or non-undefined value\");\n }\n return x;\n}\n\nexport function isOneOf<T, U extends T>(elem: T, arr: readonly U[]): elem is U {\n return arr.includes(elem as any);\n}\n\nexport function maybe<T, U>(\n x: T | undefined | null,\n f: (y: T) => U\n): U | undefined {\n if (x === undefined || x === null) return undefined;\n return f(x);\n}\n\n/**\n *\n * @param str iso string\n * @param extendedOnly boolean for extended mode (i.e. time)\n * @returns Returns true for strings in ISO 8601 format\n */\nexport function isValidIsoDate(str: string | undefined, extendedOnly = false) {\n if (!str) return false;\n if (typeof str !== \"string\") return false;\n if (str.includes(\" \")) return false; // spaces not supported\n if (str.length === 10) {\n if (extendedOnly) return false;\n dayjs.extend(customParseFormat);\n return dayjs(str, \"YYYY-MM-DD\", true).isValid();\n }\n if (!dayjs(str).isValid()) return false; // should be a valid dayjs date\n if (isNaN(new Date(str).getTime())) return false; // should be a valid js date\n return true;\n}\n\nexport function isLikeDate(value: unknown) {\n const parsed = parseDate(value);\n return parsed ? true : false;\n}\n\nexport function isLikeImage(value: unknown) {\n return typeof value === \"string\"\n ? value.match(/\\.(png|jpg|jpeg|gif|svg|webp|avif|ico|bmp|tiff)$/i)\n : false;\n}\n\nexport function isLikeColor(value: unknown) {\n if (typeof value !== \"string\") return false;\n\n const hex =\n /^#?([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[0-9a-fA-F]{4}([0-9a-fA-F]{4})?)$/;\n const rgba =\n /^rgba?\\((\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*(,\\s*(1|0?(\\.\\d+)?))?\\s*)\\)$/;\n const cssNamed =\n /^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/;\n const hsla =\n /^hsla?\\((\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n const cmyk =\n /^cmyka?\\((\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n const hsv =\n /^hsva?\\((\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n\n if (\n value.match(hex) ||\n value.match(rgba) ||\n value.match(cssNamed) ||\n value.match(hsla) ||\n value.match(cmyk) ||\n value.match(hsv)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Some heuristics to avoid selecting a row when\n// the object clicked is interactable -- like button, anchor,\n// input, etc. This won't be bulletproof, so just some\n// heuristics!\nexport function isInteractable(target: HTMLElement) {\n if ([\"A\", \"BUTTON\", \"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(target.tagName)) {\n return true;\n }\n if (target.contentEditable === \"true\") {\n return true;\n }\n\n return false;\n}\n\nexport function ensureArray<T>(xs: T | T[]): T[] {\n return Array.isArray(xs) ? xs : [xs];\n}\n\nexport const tuple = <T extends any[]>(...args: T): T => args;\n\nexport interface HasId {\n id: string;\n}\n\nexport function mkIdMap<T extends HasId>(xs: ReadonlyArray<T>): Map<string, T> {\n return new Map(xs.map((x) => tuple(x.id, x) as [string, T]));\n}\n\nexport const mkShortId = () => `${Math.random()}`;\n\nexport function withoutNils<T>(xs: Array<T | undefined | null>): T[] {\n return xs.filter((x): x is T => x != null);\n}\n\nexport type Falsey = null | undefined | false | \"\" | 0 | 0n;\nexport type Truthy<T> = T extends Falsey ? never : T;\n\nexport function withoutFalsey<T>(xs: Array<T | Falsey>): T[] {\n return xs.filter((x): x is T => !!x);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title=\"Something went wrong.\"\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n"],"names":["registerComponent","dayjs","customParseFormat","parseDate","React","Result"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import registerComponent from '@plasmicapp/host/registerComponent';
2
+ import '@plasmicapp/host/registerGlobalContext';
3
+ import { parseDate } from '@plasmicpkgs/luxon-parser';
4
+ import dayjs from 'dayjs';
5
+ import customParseFormat from 'dayjs/plugin/customParseFormat';
6
+ import React from 'react';
7
+ import { Result } from 'antd';
8
+
9
+ function registerComponentHelper(loader, component, meta) {
10
+ if (loader) {
11
+ loader.registerComponent(component, meta);
12
+ } else {
13
+ registerComponent(component, meta);
14
+ }
15
+ }
16
+ function ensure(x) {
17
+ if (x === null || x === void 0) {
18
+ throw new Error("Expected non-null or non-undefined value");
19
+ }
20
+ return x;
21
+ }
22
+ function isOneOf(elem, arr) {
23
+ return arr.includes(elem);
24
+ }
25
+ function maybe(x, f) {
26
+ if (x === void 0 || x === null)
27
+ return void 0;
28
+ return f(x);
29
+ }
30
+ function isValidIsoDate(str, extendedOnly = false) {
31
+ if (!str)
32
+ return false;
33
+ if (typeof str !== "string")
34
+ return false;
35
+ if (str.includes(" "))
36
+ return false;
37
+ if (str.length === 10) {
38
+ if (extendedOnly)
39
+ return false;
40
+ dayjs.extend(customParseFormat);
41
+ return dayjs(str, "YYYY-MM-DD", true).isValid();
42
+ }
43
+ if (!dayjs(str).isValid())
44
+ return false;
45
+ if (isNaN(new Date(str).getTime()))
46
+ return false;
47
+ return true;
48
+ }
49
+ function isLikeDate(value) {
50
+ const parsed = parseDate(value);
51
+ return parsed ? true : false;
52
+ }
53
+ function isLikeImage(value) {
54
+ return typeof value === "string" ? value.match(/\.(png|jpg|jpeg|gif|svg|webp|avif|ico|bmp|tiff)$/i) : false;
55
+ }
56
+ function isLikeColor(value) {
57
+ if (typeof value !== "string")
58
+ return false;
59
+ const hex = /^#?([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[0-9a-fA-F]{4}([0-9a-fA-F]{4})?)$/;
60
+ const rgba = /^rgba?\((\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*(1|0?(\.\d+)?))?\s*)\)$/;
61
+ const cssNamed = /^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/;
62
+ const hsla = /^hsla?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
63
+ const cmyk = /^cmyka?\((\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
64
+ const hsv = /^hsva?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
65
+ if (value.match(hex) || value.match(rgba) || value.match(cssNamed) || value.match(hsla) || value.match(cmyk) || value.match(hsv)) {
66
+ return true;
67
+ }
68
+ return false;
69
+ }
70
+ function isInteractable(target) {
71
+ if (["A", "BUTTON", "INPUT", "TEXTAREA", "SELECT"].includes(target.tagName)) {
72
+ return true;
73
+ }
74
+ if (target.contentEditable === "true") {
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ function ensureArray(xs) {
80
+ return Array.isArray(xs) ? xs : [xs];
81
+ }
82
+ const mkShortId = () => `${Math.random()}`;
83
+ function withoutFalsey(xs) {
84
+ return xs.filter((x) => !!x);
85
+ }
86
+ class ErrorBoundary extends React.Component {
87
+ constructor() {
88
+ super(...arguments);
89
+ this.state = { hasError: false, errorInfo: "" };
90
+ }
91
+ static getDerivedStateFromError(error) {
92
+ return { hasError: true, errorInfo: error.message };
93
+ }
94
+ componentDidCatch(error, errorInfo) {
95
+ console.log(error, errorInfo);
96
+ }
97
+ componentDidUpdate(prevProps, prevState) {
98
+ if (prevProps.canvasEnvId !== this.props.canvasEnvId && prevState.hasError) {
99
+ this.setState({ hasError: false });
100
+ }
101
+ }
102
+ render() {
103
+ if (this.state.hasError) {
104
+ return /* @__PURE__ */ React.createElement(
105
+ Result,
106
+ {
107
+ status: "error",
108
+ title: "Something went wrong.",
109
+ extra: this.state.errorInfo
110
+ }
111
+ );
112
+ }
113
+ return this.props.children;
114
+ }
115
+ }
116
+
117
+ export { ErrorBoundary as E, isLikeDate as a, isLikeColor as b, ensureArray as c, mkShortId as d, ensure as e, isLikeImage as f, isInteractable as g, isOneOf as h, isValidIsoDate as i, maybe as m, registerComponentHelper as r, withoutFalsey as w };
118
+ //# sourceMappingURL=utils-c32bd7ed.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-c32bd7ed.esm.js","sources":["../src/utils.tsx"],"sourcesContent":["import {\n ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport { parseDate } from \"@plasmicpkgs/luxon-parser\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: ComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n\nexport function ensureNumber(x: number | string): number {\n return x as number;\n}\n\nexport function ensure<T>(x: T | null | undefined): T {\n if (x === null || x === undefined) {\n throw new Error(\"Expected non-null or non-undefined value\");\n }\n return x;\n}\n\nexport function isOneOf<T, U extends T>(elem: T, arr: readonly U[]): elem is U {\n return arr.includes(elem as any);\n}\n\nexport function maybe<T, U>(\n x: T | undefined | null,\n f: (y: T) => U\n): U | undefined {\n if (x === undefined || x === null) return undefined;\n return f(x);\n}\n\n/**\n *\n * @param str iso string\n * @param extendedOnly boolean for extended mode (i.e. time)\n * @returns Returns true for strings in ISO 8601 format\n */\nexport function isValidIsoDate(str: string | undefined, extendedOnly = false) {\n if (!str) return false;\n if (typeof str !== \"string\") return false;\n if (str.includes(\" \")) return false; // spaces not supported\n if (str.length === 10) {\n if (extendedOnly) return false;\n dayjs.extend(customParseFormat);\n return dayjs(str, \"YYYY-MM-DD\", true).isValid();\n }\n if (!dayjs(str).isValid()) return false; // should be a valid dayjs date\n if (isNaN(new Date(str).getTime())) return false; // should be a valid js date\n return true;\n}\n\nexport function isLikeDate(value: unknown) {\n const parsed = parseDate(value);\n return parsed ? true : false;\n}\n\nexport function isLikeImage(value: unknown) {\n return typeof value === \"string\"\n ? value.match(/\\.(png|jpg|jpeg|gif|svg|webp|avif|ico|bmp|tiff)$/i)\n : false;\n}\n\nexport function isLikeColor(value: unknown) {\n if (typeof value !== \"string\") return false;\n\n const hex =\n /^#?([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[0-9a-fA-F]{4}([0-9a-fA-F]{4})?)$/;\n const rgba =\n /^rgba?\\((\\s*\\d+\\s*,\\s*\\d+\\s*,\\s*\\d+\\s*(,\\s*(1|0?(\\.\\d+)?))?\\s*)\\)$/;\n const cssNamed =\n /^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/;\n const hsla =\n /^hsla?\\((\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n const cmyk =\n /^cmyka?\\((\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n const hsv =\n /^hsva?\\((\\s*\\d+(\\.\\d+)?\\s*,\\s*\\d+(\\.\\d+)?%\\s*,\\s*\\d+(\\.\\d+)?%\\s*(,\\s*(1|0?\\.\\d+))?\\s*)\\)$/;\n\n if (\n value.match(hex) ||\n value.match(rgba) ||\n value.match(cssNamed) ||\n value.match(hsla) ||\n value.match(cmyk) ||\n value.match(hsv)\n ) {\n return true;\n }\n\n return false;\n}\n\n// Some heuristics to avoid selecting a row when\n// the object clicked is interactable -- like button, anchor,\n// input, etc. This won't be bulletproof, so just some\n// heuristics!\nexport function isInteractable(target: HTMLElement) {\n if ([\"A\", \"BUTTON\", \"INPUT\", \"TEXTAREA\", \"SELECT\"].includes(target.tagName)) {\n return true;\n }\n if (target.contentEditable === \"true\") {\n return true;\n }\n\n return false;\n}\n\nexport function ensureArray<T>(xs: T | T[]): T[] {\n return Array.isArray(xs) ? xs : [xs];\n}\n\nexport const tuple = <T extends any[]>(...args: T): T => args;\n\nexport interface HasId {\n id: string;\n}\n\nexport function mkIdMap<T extends HasId>(xs: ReadonlyArray<T>): Map<string, T> {\n return new Map(xs.map((x) => tuple(x.id, x) as [string, T]));\n}\n\nexport const mkShortId = () => `${Math.random()}`;\n\nexport function withoutNils<T>(xs: Array<T | undefined | null>): T[] {\n return xs.filter((x): x is T => x != null);\n}\n\nexport type Falsey = null | undefined | false | \"\" | 0 | 0n;\nexport type Truthy<T> = T extends Falsey ? never : T;\n\nexport function withoutFalsey<T>(xs: Array<T | Falsey>): T[] {\n return xs.filter((x): x is T => !!x);\n}\n\n/**\n *\n * Forked from: https://github.com/ant-design/pro-components/blob/master/packages/utils/src/components/ErrorBoundary/index.tsx\n *\n */\nimport { Result } from \"antd\";\nimport type { ErrorInfo } from \"react\";\n\ninterface ErrorBoundaryProps {\n children?: React.ReactNode;\n canvasEnvId?: number;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n errorInfo: string;\n}\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n state = { hasError: false, errorInfo: \"\" };\n\n static getDerivedStateFromError(error: Error) {\n return { hasError: true, errorInfo: error.message };\n }\n\n componentDidCatch(error: any, errorInfo: ErrorInfo) {\n // You can also log the error to an error reporting service\n // eslint-disable-next-line no-console\n console.log(error, errorInfo);\n }\n\n componentDidUpdate(\n prevProps: Readonly<ErrorBoundaryProps>,\n prevState: Readonly<ErrorBoundaryState>\n ) {\n if (\n prevProps.canvasEnvId !== this.props.canvasEnvId &&\n prevState.hasError\n ) {\n this.setState({ hasError: false });\n }\n }\n\n render() {\n if (this.state.hasError) {\n // You can render any custom fallback UI\n return (\n <Result\n status=\"error\"\n title=\"Something went wrong.\"\n extra={this.state.errorInfo}\n />\n );\n }\n return this.props.children;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { ComponentMeta, default as registerComponent } from "@plasmicapp/host/registerComponent";
2
+ import { default as registerGlobalContext, GlobalContextMeta } from "@plasmicapp/host/registerGlobalContext";
3
+ import { default as registerToken } from "@plasmicapp/host/registerToken";
4
+ import React from "react";
5
+ export type Registerable = {
6
+ registerComponent: typeof registerComponent;
7
+ registerGlobalContext: typeof registerGlobalContext;
8
+ registerToken: typeof registerToken;
9
+ };
10
+ export declare function makeRegisterComponent<T extends React.ComponentType<any>>(component: T, meta: ComponentMeta<React.ComponentProps<T>>): (loader?: Registerable) => void;
11
+ export declare function makeRegisterGlobalContext<T extends React.ComponentType<any>>(component: T, meta: GlobalContextMeta<React.ComponentProps<T>>): (loader?: Registerable) => void;
12
+ export declare function registerComponentHelper<T extends React.ComponentType<any>>(loader: Registerable | undefined, component: T, meta: ComponentMeta<React.ComponentProps<T>>): void;
13
+ type ReactElt = {
14
+ children: ReactElt | ReactElt[];
15
+ props: {
16
+ children: ReactElt | ReactElt[];
17
+ [prop: string]: any;
18
+ } | null;
19
+ type: React.ComponentType<any> | null;
20
+ key: string | null;
21
+ } | null;
22
+ export declare function traverseReactEltTree(children: React.ReactNode, callback: (elt: ReactElt) => void): void;
23
+ export declare function asArray<T>(x: T[] | T | undefined | null): T[];
24
+ export declare function ensureNumber(x: number | string): number;
25
+ export declare function ensure<T>(x: T | null | undefined): T;
26
+ export declare function isOneOf<T, U extends T>(elem: T, arr: readonly U[]): elem is U;
27
+ export declare function maybe<T, U>(x: T | undefined | null, f: (y: T) => U): U | undefined;
28
+ /**
29
+ *
30
+ * @param str iso string
31
+ * @param extendedOnly boolean for extended mode (i.e. time)
32
+ * @returns Returns true for strings in ISO 8601 format
33
+ */
34
+ export declare function isValidIsoDate(str: string | undefined, extendedOnly?: boolean): boolean;
35
+ export declare function isLikeDate(value: unknown): boolean;
36
+ export declare function isLikeImage(value: unknown): false | RegExpMatchArray | null;
37
+ export declare function isLikeColor(value: unknown): boolean;
38
+ export declare function isInteractable(target: HTMLElement): boolean;
39
+ export declare function ensureArray<T>(xs: T | T[]): T[];
40
+ export declare const tuple: <T extends any[]>(...args: T) => T;
41
+ export interface HasId {
42
+ id: string;
43
+ }
44
+ export declare function mkIdMap<T extends HasId>(xs: ReadonlyArray<T>): Map<string, T>;
45
+ export declare const mkShortId: () => string;
46
+ export declare function withoutNils<T>(xs: Array<T | undefined | null>): T[];
47
+ export type Falsey = null | undefined | false | "" | 0 | 0n;
48
+ export type Truthy<T> = T extends Falsey ? never : T;
49
+ export declare function withoutFalsey<T>(xs: Array<T | Falsey>): T[];
50
+ import type { ErrorInfo } from "react";
51
+ interface ErrorBoundaryProps {
52
+ children?: React.ReactNode;
53
+ canvasEnvId?: number;
54
+ }
55
+ interface ErrorBoundaryState {
56
+ hasError: boolean;
57
+ errorInfo: string;
58
+ }
59
+ export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
60
+ state: {
61
+ hasError: boolean;
62
+ errorInfo: string;
63
+ };
64
+ static getDerivedStateFromError(error: Error): {
65
+ hasError: boolean;
66
+ errorInfo: string;
67
+ };
68
+ componentDidCatch(error: any, errorInfo: ErrorInfo): void;
69
+ componentDidUpdate(prevProps: Readonly<ErrorBoundaryProps>, prevState: Readonly<ErrorBoundaryState>): void;
70
+ render(): string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | null | undefined;
71
+ }
72
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const AnchorLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;