@makeswift/prop-controllers 0.4.1 → 0.4.2-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/backgrounds/backgrounds.js +43 -25
- package/dist/cjs/backgrounds/backgrounds.js.map +1 -1
- package/dist/cjs/border/border.js +8 -1
- package/dist/cjs/border/border.js.map +1 -1
- package/dist/cjs/grid/grid.js +8 -1
- package/dist/cjs/grid/grid.js.map +1 -1
- package/dist/cjs/image/image.js +11 -3
- package/dist/cjs/image/image.js.map +1 -1
- package/dist/cjs/images/images.js +20 -8
- package/dist/cjs/images/images.js.map +1 -1
- package/dist/cjs/link/link.js +9 -6
- package/dist/cjs/link/link.js.map +1 -1
- package/dist/cjs/responsive-color/index.js +23 -0
- package/dist/cjs/responsive-color/index.js.map +1 -0
- package/dist/cjs/{responsive-color.js → responsive-color/responsive-color.js} +15 -4
- package/dist/cjs/responsive-color/responsive-color.js.map +1 -0
- package/dist/cjs/shadows/index.js +23 -0
- package/dist/cjs/shadows/index.js.map +1 -0
- package/dist/cjs/{shadows.js → shadows/shadows.js} +11 -3
- package/dist/cjs/shadows/shadows.js.map +1 -0
- package/dist/cjs/table/table.js +9 -4
- package/dist/cjs/table/table.js.map +1 -1
- package/dist/cjs/table-form-fields/table-form-fields.js +13 -2
- package/dist/cjs/table-form-fields/table-form-fields.js.map +1 -1
- package/dist/esm/backgrounds/backgrounds.js +52 -26
- package/dist/esm/backgrounds/backgrounds.js.map +1 -1
- package/dist/esm/border/border.js +14 -2
- package/dist/esm/border/border.js.map +1 -1
- package/dist/esm/grid/grid.js +12 -1
- package/dist/esm/grid/grid.js.map +1 -1
- package/dist/esm/image/image.js +15 -3
- package/dist/esm/image/image.js.map +1 -1
- package/dist/esm/images/images.js +24 -8
- package/dist/esm/images/images.js.map +1 -1
- package/dist/esm/link/link.js +15 -7
- package/dist/esm/link/link.js.map +1 -1
- package/dist/esm/responsive-color/index.js +2 -0
- package/dist/esm/responsive-color/index.js.map +1 -0
- package/dist/esm/{responsive-color.js → responsive-color/responsive-color.js} +19 -4
- package/dist/esm/responsive-color/responsive-color.js.map +1 -0
- package/dist/esm/shadows/index.js +2 -0
- package/dist/esm/shadows/index.js.map +1 -0
- package/dist/esm/{shadows.js → shadows/shadows.js} +15 -3
- package/dist/esm/shadows/shadows.js.map +1 -0
- package/dist/esm/table/table.js +13 -4
- package/dist/esm/table/table.js.map +1 -1
- package/dist/esm/table-form-fields/table-form-fields.js +17 -2
- package/dist/esm/table-form-fields/table-form-fields.js.map +1 -1
- package/dist/types/backgrounds/backgrounds.d.ts.map +1 -1
- package/dist/types/border/border.d.ts.map +1 -1
- package/dist/types/grid/grid.d.ts.map +1 -1
- package/dist/types/image/image.d.ts.map +1 -1
- package/dist/types/images/images.d.ts.map +1 -1
- package/dist/types/link/link.d.ts +1 -1
- package/dist/types/link/link.d.ts.map +1 -1
- package/dist/types/responsive-color/index.d.ts +2 -0
- package/dist/types/responsive-color/index.d.ts.map +1 -0
- package/dist/types/{responsive-color.d.ts → responsive-color/responsive-color.d.ts} +1 -1
- package/dist/types/responsive-color/responsive-color.d.ts.map +1 -0
- package/dist/types/responsive-color/responsive-color.test.d.ts +2 -0
- package/dist/types/responsive-color/responsive-color.test.d.ts.map +1 -0
- package/dist/types/shadows/index.d.ts +2 -0
- package/dist/types/shadows/index.d.ts.map +1 -0
- package/dist/types/{shadows.d.ts → shadows/shadows.d.ts} +1 -1
- package/dist/types/shadows/shadows.d.ts.map +1 -0
- package/dist/types/shadows/shadows.test.d.ts.map +1 -0
- package/dist/types/table/table.d.ts +1 -1
- package/dist/types/table/table.d.ts.map +1 -1
- package/dist/types/table-form-fields/table-form-fields.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/cjs/responsive-color.js.map +0 -1
- package/dist/cjs/shadows.js.map +0 -1
- package/dist/cjs/utils/utils.js +0 -42
- package/dist/cjs/utils/utils.js.map +0 -1
- package/dist/esm/responsive-color.js.map +0 -1
- package/dist/esm/shadows.js.map +0 -1
- package/dist/esm/utils/utils.js +0 -18
- package/dist/esm/utils/utils.js.map +0 -1
- package/dist/types/responsive-color.d.ts.map +0 -1
- package/dist/types/shadows.d.ts.map +0 -1
- package/dist/types/shadows.test.d.ts.map +0 -1
- package/dist/types/utils/utils.d.ts +0 -14
- package/dist/types/utils/utils.d.ts.map +0 -1
- /package/dist/types/{shadows.test.d.ts → shadows/shadows.test.d.ts} +0 -0
@@ -29,9 +29,10 @@ __export(responsive_color_exports, {
|
|
29
29
|
});
|
30
30
|
module.exports = __toCommonJS(responsive_color_exports);
|
31
31
|
var import_zod = require("zod");
|
32
|
-
var import_data = require("
|
33
|
-
var import_prop_controllers = require("
|
32
|
+
var import_data = require("../data");
|
33
|
+
var import_prop_controllers = require("../prop-controllers");
|
34
34
|
var import_ts_pattern = require("ts-pattern");
|
35
|
+
var import_controls = require("@makeswift/controls");
|
35
36
|
const responsiveColorDataSchema = import_prop_controllers.Schema.responsiveValue(import_data.colorDataSchema);
|
36
37
|
const responsiveColorPropControllerDataV0Schema = responsiveColorDataSchema;
|
37
38
|
const ResponsiveColorPropControllerDataV1Type = "prop-controllers::responsive-color::v1";
|
@@ -72,14 +73,24 @@ function getResponsiveColorPropControllerDataSwatchIds(data) {
|
|
72
73
|
);
|
73
74
|
}
|
74
75
|
function copyResponsiveColorData(data, context) {
|
75
|
-
return data.
|
76
|
+
return data.filter(
|
77
|
+
(override) => !(0, import_controls.shouldRemoveResource)(
|
78
|
+
import_controls.ContextResource.Swatch,
|
79
|
+
override.value.swatchId,
|
80
|
+
context
|
81
|
+
)
|
82
|
+
).map((override) => ({
|
76
83
|
...override,
|
77
84
|
value: copyColorValue(override.value)
|
78
85
|
}));
|
79
86
|
function copyColorValue(colorValue) {
|
80
87
|
return {
|
81
88
|
...colorValue,
|
82
|
-
swatchId:
|
89
|
+
swatchId: (0, import_controls.replaceResourceIfNeeded)(
|
90
|
+
import_controls.ContextResource.Swatch,
|
91
|
+
colorValue.swatchId,
|
92
|
+
context
|
93
|
+
)
|
83
94
|
};
|
84
95
|
}
|
85
96
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/responsive-color/responsive-color.ts"],"sourcesContent":["import { z } from 'zod'\nimport { colorDataSchema } from '../data'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { match } from 'ts-pattern'\nimport {\n ColorData,\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nconst responsiveColorDataSchema = Schema.responsiveValue(colorDataSchema)\n\nexport type ResponsiveColorData = z.infer<typeof responsiveColorDataSchema>\n\nconst responsiveColorPropControllerDataV0Schema = responsiveColorDataSchema\n\ntype ResponsiveColorPropControllerDataV0 = z.infer<\n typeof responsiveColorPropControllerDataV0Schema\n>\n\nconst ResponsiveColorPropControllerDataV1Type =\n 'prop-controllers::responsive-color::v1'\n\nconst responsiveColorPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(ResponsiveColorPropControllerDataV1Type),\n value: responsiveColorDataSchema,\n})\n\ntype ResponsiveColorPropControllerDataV1 = z.infer<\n typeof responsiveColorPropControllerDataV1Schema\n>\n\nexport const responsiveColorPropControllerDataSchema = z.union([\n responsiveColorPropControllerDataV0Schema,\n responsiveColorPropControllerDataV1Schema,\n])\n\nexport type ResponsiveColorPropControllerData = z.infer<\n typeof responsiveColorPropControllerDataSchema\n>\n\nexport type ResponsiveColorOptions = Options<{\n label?: string\n placeholder?: string\n hidden?: boolean\n}>\n\ntype ResponsiveColorDescriptorV0<_T = ResponsiveColorPropControllerDataV0> = {\n type: typeof Types.ResponsiveColor\n options: ResponsiveColorOptions\n}\n\ntype ResponsiveColorDescriptorV1<_T = ResponsiveColorPropControllerDataV1> = {\n type: typeof Types.ResponsiveColor\n version: 1\n options: ResponsiveColorOptions\n}\n\nexport type ResponsiveColorDescriptor<_T = ResponsiveColorPropControllerData> =\n | ResponsiveColorDescriptorV0\n | ResponsiveColorDescriptorV1\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveColor(\n options: ResponsiveColorOptions = {},\n): ResponsiveColorDescriptorV1 {\n return { type: Types.ResponsiveColor, version: 1, options }\n}\n\nexport function getResponsiveColorPropControllerDataResponsiveColorData(\n data: ResponsiveColorPropControllerData,\n): ResponsiveColorData {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createResponsiveColorPropControllerDataFromResponsiveColorData(\n definition: ResponsiveColorDescriptor,\n responsiveColorData: ResponsiveColorData,\n): ResponsiveColorPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,\n value: responsiveColorData,\n }) as const,\n )\n .otherwise(() => responsiveColorData)\n}\n\nexport function getResponsiveColorDataSwatchIds(\n data: ResponsiveColorData,\n): string[] {\n return data.map((override) => override.value.swatchId)\n}\n\nexport function getResponsiveColorPropControllerDataSwatchIds(\n data: ResponsiveColorPropControllerData | undefined | null,\n): string[] {\n if (data == null) return []\n\n return getResponsiveColorDataSwatchIds(\n getResponsiveColorPropControllerDataResponsiveColorData(data),\n )\n}\n\nexport function copyResponsiveColorData(\n data: ResponsiveColorData,\n context: CopyContext,\n): ResponsiveColorData {\n return data\n .filter(\n (override) =>\n !shouldRemoveResource(\n ContextResource.Swatch,\n override.value.swatchId,\n context,\n ),\n )\n .map((override) => ({\n ...override,\n value: copyColorValue(override.value),\n }))\n\n function copyColorValue(colorValue: ColorData): ColorData {\n return {\n ...colorValue,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n colorValue.swatchId,\n context,\n ),\n }\n }\n}\n\nexport function copyResponsiveColorPropControllerData(\n data: ResponsiveColorPropControllerData | undefined,\n context: CopyContext,\n): ResponsiveColorPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: ResponsiveColorPropControllerDataV1Type,\n value: copyResponsiveColorData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveColorData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,kBAAgC;AAChC,8BAMO;AACP,wBAAsB;AACtB,sBAKO;AAEP,MAAM,4BAA4B,+BAAO,gBAAgB,2BAAe;AAIxE,MAAM,4CAA4C;AAMlD,MAAM,0CACJ;AAEF,MAAM,4CAA4C,aAAE,OAAO;AAAA,EACzD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,uCAAuC;AAAA,EACvE,OAAO;AACT,CAAC;AAMM,MAAM,0CAA0C,aAAE,MAAM;AAAA,EAC7D;AAAA,EACA;AACF,CAAC;AA+BM,SAAS,gBACd,UAAkC,CAAC,GACN;AAC7B,SAAO,EAAE,MAAM,8BAAM,iBAAiB,SAAS,GAAG,QAAQ;AAC5D;AAEO,SAAS,wDACd,MACqB;AACrB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,wCAAwC;AAAA,IAChE,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,+DACd,YACA,qBACmC;AACnC,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,mBAAmB;AACxC;AAEO,SAAS,gCACd,MACU;AACV,SAAO,KAAK,IAAI,CAAC,aAAa,SAAS,MAAM,QAAQ;AACvD;AAEO,SAAS,8CACd,MACU;AACV,MAAI,QAAQ;AAAM,WAAO,CAAC;AAE1B,SAAO;AAAA,IACL,wDAAwD,IAAI;AAAA,EAC9D;AACF;AAEO,SAAS,wBACd,MACA,SACqB;AACrB,SAAO,KACJ;AAAA,IACC,CAAC,aACC,KAAC;AAAA,MACC,gCAAgB;AAAA,MAChB,SAAS,MAAM;AAAA,MACf;AAAA,IACF;AAAA,EACJ,EACC,IAAI,CAAC,cAAc;AAAA,IAClB,GAAG;AAAA,IACH,OAAO,eAAe,SAAS,KAAK;AAAA,EACtC,EAAE;AAEJ,WAAS,eAAe,YAAkC;AACxD,WAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAU;AAAA,QACR,gCAAgB;AAAA,QAChB,WAAW;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,sCACd,MACA,SAC+C;AAC/C,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,wCAAwC;AAAA,IAChE,CAAC,QACE;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO,wBAAwB,GAAG,OAAO,OAAO;AAAA,IAClD;AAAA,EACJ,EACC,UAAU,CAAC,OAAO,wBAAwB,IAAI,OAAO,CAAC;AAC3D;","names":[]}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __defProp = Object.defineProperty;
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
8
|
+
for (let key of __getOwnPropNames(from))
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
11
|
+
}
|
12
|
+
return to;
|
13
|
+
};
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
16
|
+
var shadows_exports = {};
|
17
|
+
module.exports = __toCommonJS(shadows_exports);
|
18
|
+
__reExport(shadows_exports, require("./shadows"), module.exports);
|
19
|
+
// Annotate the CommonJS export names for ESM import in node:
|
20
|
+
0 && (module.exports = {
|
21
|
+
...require("./shadows")
|
22
|
+
});
|
23
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/shadows/index.ts"],"sourcesContent":["export * from './shadows'\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,4BAAc,sBAAd;","names":[]}
|
@@ -28,9 +28,10 @@ __export(shadows_exports, {
|
|
28
28
|
});
|
29
29
|
module.exports = __toCommonJS(shadows_exports);
|
30
30
|
var import_ts_pattern = require("ts-pattern");
|
31
|
-
var import_data = require("
|
32
|
-
var import_prop_controllers = require("
|
31
|
+
var import_data = require("../data");
|
32
|
+
var import_prop_controllers = require("../prop-controllers");
|
33
33
|
var import_zod = require("zod");
|
34
|
+
var import_controls = require("@makeswift/controls");
|
34
35
|
const shadowDataSchema = import_zod.z.object({
|
35
36
|
color: import_data.colorDataSchema.nullable().optional(),
|
36
37
|
blurRadius: import_zod.z.number().optional(),
|
@@ -91,13 +92,20 @@ function copyResponsiveShadowsData(data, context) {
|
|
91
92
|
const { color } = item.payload;
|
92
93
|
if (color == null)
|
93
94
|
return item;
|
95
|
+
if ((0, import_controls.shouldRemoveResource)(import_controls.ContextResource.Swatch, color.swatchId, context)) {
|
96
|
+
return { ...item, payload: { ...item.payload, color: void 0 } };
|
97
|
+
}
|
94
98
|
return {
|
95
99
|
...item,
|
96
100
|
payload: {
|
97
101
|
...item.payload,
|
98
102
|
color: {
|
99
103
|
...color,
|
100
|
-
swatchId:
|
104
|
+
swatchId: (0, import_controls.replaceResourceIfNeeded)(
|
105
|
+
import_controls.ContextResource.Swatch,
|
106
|
+
color.swatchId,
|
107
|
+
context
|
108
|
+
)
|
101
109
|
}
|
102
110
|
}
|
103
111
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/shadows/shadows.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport { colorDataSchema } from '../data'\nimport {\n ControlDataTypeKey,\n CopyContext,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nconst shadowDataSchema = z.object({\n color: colorDataSchema.nullable().optional(),\n blurRadius: z.number().optional(),\n spreadRadius: z.number().optional(),\n offsetX: z.number().optional(),\n offsetY: z.number().optional(),\n inset: z.boolean().optional(),\n})\n\nexport type ShadowData = z.infer<typeof shadowDataSchema>\n\nconst shadowsDataSchema = z.array(\n z.object({\n id: z.string(),\n payload: shadowDataSchema,\n }),\n)\n\nexport type ShadowsData = z.infer<typeof shadowsDataSchema>\n\nconst responsiveShadowsDataSchema = Schema.responsiveValue(shadowsDataSchema)\n\ntype ResponsiveShadowsData = z.infer<typeof responsiveShadowsDataSchema>\n\nconst shadowsPropControllerDataV0Schema = responsiveShadowsDataSchema\n\ntype ShadowsPropControllerDataV0 = z.infer<\n typeof shadowsPropControllerDataV0Schema\n>\n\nconst ShadowsPropControllerDataV1Type = 'prop-controllers::shadows::v1'\n\nconst shadowsPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(ShadowsPropControllerDataV1Type),\n value: responsiveShadowsDataSchema,\n})\n\nexport const shadowsPropControllerDataSchema = z.union([\n shadowsPropControllerDataV0Schema,\n shadowsPropControllerDataV1Schema,\n])\n\nexport type ShadowsPropControllerData = z.infer<\n typeof shadowsPropControllerDataSchema\n>\n\nexport const ShadowsPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::shadows::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::shadows::format::responsive-value',\n} as const\n\nexport type ShadowsPropControllerFormat =\n (typeof ShadowsPropControllerFormat)[keyof typeof ShadowsPropControllerFormat]\n\ntype ShadowsOptions = { format?: ShadowsPropControllerFormat }\n\ntype ShadowsDescriptorV0<\n _T = ShadowsPropControllerDataV0,\n U extends ShadowsOptions = ShadowsOptions,\n> = {\n type: typeof Types.Shadows\n options: U\n}\n\ntype ShadowsDescriptorV1<\n _T = ShadowsPropControllerData,\n U extends ShadowsOptions = ShadowsOptions,\n> = {\n type: typeof Types.Shadows\n version: 1\n options: U\n}\n\nexport type ShadowsDescriptor<\n _T = ShadowsPropControllerData,\n U extends ShadowsOptions = ShadowsOptions,\n> = ShadowsDescriptorV0<_T, U> | ShadowsDescriptorV1<_T, U>\n\nexport type ResolveShadowsPropControllerValue<T extends ShadowsDescriptor> =\n T extends ShadowsDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsiveShadowsData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof ShadowsPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof ShadowsPropControllerFormat.ResponsiveValue\n ? ResponsiveShadowsData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Shadows<T extends ShadowsOptions>(\n options: T & ShadowsOptions = {} as T,\n): ShadowsDescriptor<ShadowsPropControllerData, T> {\n return { type: Types.Shadows, version: 1, options }\n}\n\nShadows.Format = ShadowsPropControllerFormat\n\nexport function getShadowsPropControllerDataResponsiveShadowsData(\n data: ShadowsPropControllerData | null | undefined,\n): ResponsiveShadowsData | null | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: ShadowsPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createShadowsPropControllerDataFromResponsiveShadowsData(\n definition: ShadowsDescriptor,\n responsiveShadowsData: ResponsiveShadowsData,\n): ShadowsPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: ShadowsPropControllerDataV1Type,\n value: responsiveShadowsData,\n }) as const,\n )\n .otherwise(() => responsiveShadowsData)\n}\n\nexport function getShadowsPropControllerDataSwatchIds(\n data: ShadowsPropControllerData | null | undefined,\n): string[] {\n return (\n getShadowsPropControllerDataResponsiveShadowsData(data)\n ?.flatMap((override) => override.value)\n .map((item) => item.payload.color?.swatchId)\n .filter(\n (swatchId): swatchId is NonNullable<typeof swatchId> =>\n swatchId != null,\n ) ?? []\n )\n}\n\nfunction copyResponsiveShadowsData(\n data: ResponsiveShadowsData,\n context: CopyContext,\n): ResponsiveShadowsData {\n return data.map((override) => ({\n ...override,\n value: override.value.map((item) => {\n const { color } = item.payload\n\n if (color == null) return item\n\n if (\n shouldRemoveResource(ContextResource.Swatch, color.swatchId, context)\n ) {\n return { ...item, payload: { ...item.payload, color: undefined } }\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n color: {\n ...color,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n color.swatchId,\n context,\n ),\n },\n },\n }\n }),\n }))\n}\n\nexport function copyShadowsPropControllerData(\n data: ShadowsPropControllerData | undefined,\n context: CopyContext,\n): ShadowsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: ShadowsPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: ShadowsPropControllerDataV1Type,\n value: copyResponsiveShadowsData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveShadowsData(v0, context))\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAAsB;AACtB,kBAAgC;AAChC,8BAMO;AACP,iBAAkB;AAClB,sBAIO;AAEP,MAAM,mBAAmB,aAAE,OAAO;AAAA,EAChC,OAAO,4BAAgB,SAAS,EAAE,SAAS;AAAA,EAC3C,YAAY,aAAE,OAAO,EAAE,SAAS;AAAA,EAChC,cAAc,aAAE,OAAO,EAAE,SAAS;AAAA,EAClC,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,SAAS,aAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,OAAO,aAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC;AAID,MAAM,oBAAoB,aAAE;AAAA,EAC1B,aAAE,OAAO;AAAA,IACP,IAAI,aAAE,OAAO;AAAA,IACb,SAAS;AAAA,EACX,CAAC;AACH;AAIA,MAAM,8BAA8B,+BAAO,gBAAgB,iBAAiB;AAI5E,MAAM,oCAAoC;AAM1C,MAAM,kCAAkC;AAExC,MAAM,oCAAoC,aAAE,OAAO;AAAA,EACjD,CAAC,0CAAkB,GAAG,aAAE,QAAQ,+BAA+B;AAAA,EAC/D,OAAO;AACT,CAAC;AAEM,MAAM,kCAAkC,aAAE,MAAM;AAAA,EACrD;AAAA,EACA;AACF,CAAC;AAMM,MAAM,8BAA8B;AAAA,EACzC,WAAW;AAAA,EACX,iBACE;AACJ;AAgDO,SAAS,QACd,UAA8B,CAAC,GACkB;AACjD,SAAO,EAAE,MAAM,8BAAM,SAAS,SAAS,GAAG,QAAQ;AACpD;AAEA,QAAQ,SAAS;AAEV,SAAS,kDACd,MAC0C;AAC1C,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,gCAAgC;AAAA,IACxD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yDACd,YACA,uBAC2B;AAC3B,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO;AAAA,IACT;AAAA,EACJ,EACC,UAAU,MAAM,qBAAqB;AAC1C;AAEO,SAAS,sCACd,MACU;AACV,SACE,kDAAkD,IAAI,GAClD,QAAQ,CAAC,aAAa,SAAS,KAAK,EACrC,IAAI,CAAC,SAAS,KAAK,QAAQ,OAAO,QAAQ,EAC1C;AAAA,IACC,CAAC,aACC,YAAY;AAAA,EAChB,KAAK,CAAC;AAEZ;AAEA,SAAS,0BACP,MACA,SACuB;AACvB,SAAO,KAAK,IAAI,CAAC,cAAc;AAAA,IAC7B,GAAG;AAAA,IACH,OAAO,SAAS,MAAM,IAAI,CAAC,SAAS;AAClC,YAAM,EAAE,MAAM,IAAI,KAAK;AAEvB,UAAI,SAAS;AAAM,eAAO;AAE1B,cACE,sCAAqB,gCAAgB,QAAQ,MAAM,UAAU,OAAO,GACpE;AACA,eAAO,EAAE,GAAG,MAAM,SAAS,EAAE,GAAG,KAAK,SAAS,OAAO,OAAU,EAAE;AAAA,MACnE;AAEA,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS;AAAA,UACP,GAAG,KAAK;AAAA,UACR,OAAO;AAAA,YACL,GAAG;AAAA,YACH,cAAU;AAAA,cACR,gCAAgB;AAAA,cAChB,MAAM;AAAA,cACN;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH,EAAE;AACJ;AAEO,SAAS,8BACd,MACA,SACuC;AACvC,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,gCAAgC;AAAA,IACxD,CAAC,QACE;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO,0BAA0B,GAAG,OAAO,OAAO;AAAA,IACpD;AAAA,EACJ,EACC,UAAU,CAAC,OAAO,0BAA0B,IAAI,OAAO,CAAC;AAC7D;","names":[]}
|
package/dist/cjs/table/table.js
CHANGED
@@ -29,6 +29,7 @@ __export(table_exports, {
|
|
29
29
|
module.exports = __toCommonJS(table_exports);
|
30
30
|
var import_zod = require("zod");
|
31
31
|
var import_prop_controllers = require("../prop-controllers");
|
32
|
+
var import_controls = require("@makeswift/controls");
|
32
33
|
var import_ts_pattern = require("ts-pattern");
|
33
34
|
const tableIdSchema = import_zod.z.string();
|
34
35
|
const tablePropControllerDataV0Schema = tableIdSchema;
|
@@ -63,16 +64,20 @@ function createTablePropControllerDataFromTableId(value, definition) {
|
|
63
64
|
function copyTableId(data, context) {
|
64
65
|
if (data == null)
|
65
66
|
return data;
|
66
|
-
return
|
67
|
+
return (0, import_controls.replaceResourceIfNeeded)(import_controls.ContextResource.Table, data, context);
|
67
68
|
}
|
68
|
-
function copyTablePropControllerData(data,
|
69
|
+
function copyTablePropControllerData(data, ctx) {
|
70
|
+
const currentTableId = getTablePropControllerDataTableId(data);
|
71
|
+
if (currentTableId != null && (0, import_controls.shouldRemoveResource)(import_controls.ContextResource.Table, currentTableId, ctx)) {
|
72
|
+
return void 0;
|
73
|
+
}
|
69
74
|
return (0, import_ts_pattern.match)(data).with(void 0, () => void 0).with(
|
70
75
|
{ [import_prop_controllers.ControlDataTypeKey]: TablePropControllerDataV1Type },
|
71
76
|
(v1) => ({
|
72
77
|
[import_prop_controllers.ControlDataTypeKey]: TablePropControllerDataV1Type,
|
73
|
-
value: copyTableId(v1.value,
|
78
|
+
value: copyTableId(v1.value, ctx)
|
74
79
|
})
|
75
|
-
).otherwise((v0) => copyTableId(v0,
|
80
|
+
).otherwise((v0) => copyTableId(v0, ctx));
|
76
81
|
}
|
77
82
|
function getTablePropControllerDataTableIds(data) {
|
78
83
|
const value = getTablePropControllerDataTableId(data);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/table/table.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\n\nconst tableIdSchema = z.string()\n\ntype TableId = z.infer<typeof tableIdSchema>\n\nconst tablePropControllerDataV0Schema = tableIdSchema\n\nexport type TablePropControllerDataV0 = z.infer<\n typeof tablePropControllerDataV0Schema\n>\n\nexport const TablePropControllerDataV1Type = 'prop-controllers::table::v1'\n\nconst tablePropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(TablePropControllerDataV1Type),\n value: tableIdSchema,\n})\n\nexport type TablePropControllerDataV1 = z.infer<\n typeof tablePropControllerDataV1Schema\n>\n\nexport const tablePropControllerDataSchema = z.union([\n tablePropControllerDataV0Schema,\n tablePropControllerDataV1Schema,\n])\n\nexport type TablePropControllerData = z.infer<\n typeof tablePropControllerDataSchema\n>\n\nexport type TableOptions = Options<{\n preset?: TablePropControllerData\n}>\n\ntype TableDescriptorV0<_T = TablePropControllerDataV0> = {\n type: typeof Types.Table\n options: TableOptions\n}\n\ntype TableDescriptorV1<\n _T = TablePropControllerData,\n U extends TableOptions = TableOptions,\n> = {\n type: typeof Types.Table\n version: 1\n options: U\n}\n\nexport type TableDescriptor<_T = TablePropControllerData> =\n | TableDescriptorV0\n | TableDescriptorV1\n\nexport type ResolveTablePropControllerValue<T extends TableDescriptor> =\n T extends TableDescriptor ? TableId | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Table(options: TableOptions = {}): TableDescriptorV1 {\n return { type: Types.Table, version: 1, options }\n}\n\nexport function getTablePropControllerDataTableId(\n data: TablePropControllerData | undefined,\n): TableId | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: TablePropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createTablePropControllerDataFromTableId(\n value: TableId,\n definition?: TableDescriptor,\n): TablePropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: TablePropControllerDataV1Type,\n value,\n } as const
|
1
|
+
{"version":3,"sources":["../../../src/table/table.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n} from '../prop-controllers'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\nimport { P, match } from 'ts-pattern'\n\nconst tableIdSchema = z.string()\n\ntype TableId = z.infer<typeof tableIdSchema>\n\nconst tablePropControllerDataV0Schema = tableIdSchema\n\nexport type TablePropControllerDataV0 = z.infer<\n typeof tablePropControllerDataV0Schema\n>\n\nexport const TablePropControllerDataV1Type = 'prop-controllers::table::v1'\n\nconst tablePropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(TablePropControllerDataV1Type),\n value: tableIdSchema,\n})\n\nexport type TablePropControllerDataV1 = z.infer<\n typeof tablePropControllerDataV1Schema\n>\n\nexport const tablePropControllerDataSchema = z.union([\n tablePropControllerDataV0Schema,\n tablePropControllerDataV1Schema,\n])\n\nexport type TablePropControllerData = z.infer<\n typeof tablePropControllerDataSchema\n>\n\nexport type TableOptions = Options<{\n preset?: TablePropControllerData\n}>\n\ntype TableDescriptorV0<_T = TablePropControllerDataV0> = {\n type: typeof Types.Table\n options: TableOptions\n}\n\ntype TableDescriptorV1<\n _T = TablePropControllerData,\n U extends TableOptions = TableOptions,\n> = {\n type: typeof Types.Table\n version: 1\n options: U\n}\n\nexport type TableDescriptor<_T = TablePropControllerData> =\n | TableDescriptorV0\n | TableDescriptorV1\n\nexport type ResolveTablePropControllerValue<T extends TableDescriptor> =\n T extends TableDescriptor ? TableId | undefined : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Table(options: TableOptions = {}): TableDescriptorV1 {\n return { type: Types.Table, version: 1, options }\n}\n\nexport function getTablePropControllerDataTableId(\n data: TablePropControllerData | undefined,\n): TableId | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: TablePropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createTablePropControllerDataFromTableId(\n value: TableId,\n definition?: TableDescriptor,\n): TablePropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: TablePropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nfunction copyTableId(data: TableId, context: CopyContext): TableId {\n if (data == null) return data\n\n return replaceResourceIfNeeded(ContextResource.Table, data, context)\n}\n\nexport function copyTablePropControllerData(\n data: TablePropControllerData | undefined,\n ctx: CopyContext,\n): TablePropControllerData | undefined {\n const currentTableId = getTablePropControllerDataTableId(data)\n if (\n currentTableId != null &&\n shouldRemoveResource(ContextResource.Table, currentTableId, ctx)\n ) {\n return undefined\n }\n\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: TablePropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: TablePropControllerDataV1Type,\n value: copyTableId(v1.value, ctx),\n }) as const,\n )\n .otherwise((v0) => copyTableId(v0, ctx))\n}\n\nexport function getTablePropControllerDataTableIds(\n data: TablePropControllerData | undefined,\n): string[] {\n const value = getTablePropControllerDataTableId(data)\n\n return value ? [value] : []\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAkB;AAClB,8BAKO;AACP,sBAIO;AACP,wBAAyB;AAEzB,MAAM,gBAAgB,aAAE,OAAO;AAI/B,MAAM,kCAAkC;AAMjC,MAAM,gCAAgC;AAE7C,MAAM,kCAAkC,aAAE,OAAO;AAAA,EAC/C,CAAC,0CAAkB,GAAG,aAAE,QAAQ,6BAA6B;AAAA,EAC7D,OAAO;AACT,CAAC;AAMM,MAAM,gCAAgC,aAAE,MAAM;AAAA,EACnD;AAAA,EACA;AACF,CAAC;AAmCM,SAAS,MAAM,UAAwB,CAAC,GAAsB;AACnE,SAAO,EAAE,MAAM,8BAAM,OAAO,SAAS,GAAG,QAAQ;AAClD;AAEO,SAAS,kCACd,MACqB;AACrB,aAAO,yBAAM,IAAI,EACd;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,8BAA8B;AAAA,IACtD,CAAC,OAAO,GAAG;AAAA,EACb,EACC,UAAU,CAAC,OAAO,EAAE;AACzB;AAEO,SAAS,yCACd,OACA,YACyB;AACzB,aAAO,yBAAM,UAAU,EACpB;AAAA,IACC,EAAE,SAAS,EAAE;AAAA,IACb,oBAAE;AAAA,IACF,OACG;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB;AAAA,IACF;AAAA,EACJ,EACC,UAAU,MAAM,KAAK;AAC1B;AAEA,SAAS,YAAY,MAAe,SAA+B;AACjE,MAAI,QAAQ;AAAM,WAAO;AAEzB,aAAO,yCAAwB,gCAAgB,OAAO,MAAM,OAAO;AACrE;AAEO,SAAS,4BACd,MACA,KACqC;AACrC,QAAM,iBAAiB,kCAAkC,IAAI;AAC7D,MACE,kBAAkB,YAClB,sCAAqB,gCAAgB,OAAO,gBAAgB,GAAG,GAC/D;AACA,WAAO;AAAA,EACT;AAEA,aAAO,yBAAM,IAAI,EACd,KAAK,QAAW,MAAM,MAAS,EAC/B;AAAA,IACC,EAAE,CAAC,0CAAkB,GAAG,8BAA8B;AAAA,IACtD,CAAC,QACE;AAAA,MACC,CAAC,0CAAkB,GAAG;AAAA,MACtB,OAAO,YAAY,GAAG,OAAO,GAAG;AAAA,IAClC;AAAA,EACJ,EACC,UAAU,CAAC,OAAO,YAAY,IAAI,GAAG,CAAC;AAC3C;AAEO,SAAS,mCACd,MACU;AACV,QAAM,QAAQ,kCAAkC,IAAI;AAEpD,SAAO,QAAQ,CAAC,KAAK,IAAI,CAAC;AAC5B;","names":[]}
|
@@ -30,6 +30,7 @@ module.exports = __toCommonJS(table_form_fields_exports);
|
|
30
30
|
var import_zod = require("zod");
|
31
31
|
var import_prop_controllers = require("../prop-controllers");
|
32
32
|
var import_ts_pattern = require("ts-pattern");
|
33
|
+
var import_controls = require("@makeswift/controls");
|
33
34
|
const tableFormFieldSchema = import_zod.z.object({
|
34
35
|
id: import_zod.z.string(),
|
35
36
|
tableColumnId: import_zod.z.string(),
|
@@ -85,9 +86,19 @@ function copyTableFormFieldsData(data, context) {
|
|
85
86
|
return data;
|
86
87
|
return {
|
87
88
|
...data,
|
88
|
-
fields: data.fields.
|
89
|
+
fields: data.fields.filter(
|
90
|
+
(field) => !(0, import_controls.shouldRemoveResource)(
|
91
|
+
import_controls.ContextResource.TableColumn,
|
92
|
+
field.tableColumnId,
|
93
|
+
context
|
94
|
+
)
|
95
|
+
).map((field) => ({
|
89
96
|
...field,
|
90
|
-
tableColumnId:
|
97
|
+
tableColumnId: (0, import_controls.replaceResourceIfNeeded)(
|
98
|
+
import_controls.ContextResource.TableColumn,
|
99
|
+
field.tableColumnId,
|
100
|
+
context
|
101
|
+
)
|
91
102
|
}))
|
92
103
|
};
|
93
104
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/table-form-fields/table-form-fields.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\n\nconst tableFormFieldSchema = z.object({\n id: z.string(),\n tableColumnId: z.string(),\n label: z.string().optional(),\n placeholder: z.string().optional(),\n defaultValue: z\n .union([z.string(), z.boolean(), z.array(z.string())])\n .optional(),\n required: z.boolean().optional(),\n hidden: z.boolean().optional(),\n type: z.union([z.literal('select'), z.literal('radio')]).optional(),\n hideLabel: z.boolean().optional(),\n autofill: z.boolean().optional(),\n})\n\nexport const tableFormFieldsDataSchema = z.object({\n fields: z.array(tableFormFieldSchema),\n grid: Schema.responsiveValue(\n z.object({\n count: z.number(),\n spans: z.array(z.array(z.number())),\n }),\n ),\n})\n\nexport type TableFormFieldsData = z.infer<typeof tableFormFieldsDataSchema>\n\nconst tableFormFieldsPropControllerDataV0Schema = tableFormFieldsDataSchema\n\nexport type TableFormFieldsPropControllerDataV0 = z.infer<\n typeof tableFormFieldsPropControllerDataV0Schema\n>\n\nexport const TableFormFieldsPropControllerDataV1Type =\n 'prop-controllers::table-form-fields::v1'\n\nconst tableFormFieldsPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(TableFormFieldsPropControllerDataV1Type),\n value: tableFormFieldsDataSchema,\n})\n\nexport type TableFormFieldsPropControllerDataV1 = z.infer<\n typeof tableFormFieldsPropControllerDataV1Schema\n>\n\nexport const tableFormFieldsPropControllerDataSchema = z.union([\n tableFormFieldsPropControllerDataV0Schema,\n tableFormFieldsPropControllerDataV1Schema,\n])\n\nexport type TableFormFieldsPropControllerData = z.infer<\n typeof tableFormFieldsPropControllerDataSchema\n>\n\nexport type TableFormFieldsOptions = Options<{\n preset?: TableFormFieldsPropControllerData\n}>\n\ntype TableFormFieldsDescriptorV0<_T = TableFormFieldsPropControllerDataV0> = {\n type: typeof Types.TableFormFields\n options: TableFormFieldsOptions\n}\n\ntype TableFormFieldsDescriptorV1<\n _T = TableFormFieldsPropControllerData,\n U extends TableFormFieldsOptions = TableFormFieldsOptions,\n> = {\n type: typeof Types.TableFormFields\n version: 1\n options: U\n}\n\nexport type TableFormFieldsDescriptor<_T = TableFormFieldsPropControllerData> =\n | TableFormFieldsDescriptorV0\n | TableFormFieldsDescriptorV1\n\nexport type ResolveTableFormFieldsPropControllerValue<\n T extends TableFormFieldsDescriptor,\n> = T extends TableFormFieldsDescriptor\n ? TableFormFieldsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function TableFormFields(\n options: TableFormFieldsOptions = {},\n): TableFormFieldsDescriptorV1 {\n return { type: Types.TableFormFields, version: 1, options }\n}\n\nexport function getTableFormFieldsPropControllerDataTableFormFieldsData(\n data: TableFormFieldsPropControllerData | undefined,\n): TableFormFieldsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createTableFormFieldsPropControllerDataFromTableFormFieldsData(\n value: TableFormFieldsData,\n definition: TableFormFieldsDescriptor,\n): TableFormFieldsPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nfunction copyTableFormFieldsData(\n data: TableFormFieldsData,\n context: CopyContext,\n): TableFormFieldsData {\n if (data == null) return data\n\n return {\n ...data,\n fields: data.fields.map((field) => ({\n
|
1
|
+
{"version":3,"sources":["../../../src/table-form-fields/table-form-fields.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nconst tableFormFieldSchema = z.object({\n id: z.string(),\n tableColumnId: z.string(),\n label: z.string().optional(),\n placeholder: z.string().optional(),\n defaultValue: z\n .union([z.string(), z.boolean(), z.array(z.string())])\n .optional(),\n required: z.boolean().optional(),\n hidden: z.boolean().optional(),\n type: z.union([z.literal('select'), z.literal('radio')]).optional(),\n hideLabel: z.boolean().optional(),\n autofill: z.boolean().optional(),\n})\n\nexport const tableFormFieldsDataSchema = z.object({\n fields: z.array(tableFormFieldSchema),\n grid: Schema.responsiveValue(\n z.object({\n count: z.number(),\n spans: z.array(z.array(z.number())),\n }),\n ),\n})\n\nexport type TableFormFieldsData = z.infer<typeof tableFormFieldsDataSchema>\n\nconst tableFormFieldsPropControllerDataV0Schema = tableFormFieldsDataSchema\n\nexport type TableFormFieldsPropControllerDataV0 = z.infer<\n typeof tableFormFieldsPropControllerDataV0Schema\n>\n\nexport const TableFormFieldsPropControllerDataV1Type =\n 'prop-controllers::table-form-fields::v1'\n\nconst tableFormFieldsPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(TableFormFieldsPropControllerDataV1Type),\n value: tableFormFieldsDataSchema,\n})\n\nexport type TableFormFieldsPropControllerDataV1 = z.infer<\n typeof tableFormFieldsPropControllerDataV1Schema\n>\n\nexport const tableFormFieldsPropControllerDataSchema = z.union([\n tableFormFieldsPropControllerDataV0Schema,\n tableFormFieldsPropControllerDataV1Schema,\n])\n\nexport type TableFormFieldsPropControllerData = z.infer<\n typeof tableFormFieldsPropControllerDataSchema\n>\n\nexport type TableFormFieldsOptions = Options<{\n preset?: TableFormFieldsPropControllerData\n}>\n\ntype TableFormFieldsDescriptorV0<_T = TableFormFieldsPropControllerDataV0> = {\n type: typeof Types.TableFormFields\n options: TableFormFieldsOptions\n}\n\ntype TableFormFieldsDescriptorV1<\n _T = TableFormFieldsPropControllerData,\n U extends TableFormFieldsOptions = TableFormFieldsOptions,\n> = {\n type: typeof Types.TableFormFields\n version: 1\n options: U\n}\n\nexport type TableFormFieldsDescriptor<_T = TableFormFieldsPropControllerData> =\n | TableFormFieldsDescriptorV0\n | TableFormFieldsDescriptorV1\n\nexport type ResolveTableFormFieldsPropControllerValue<\n T extends TableFormFieldsDescriptor,\n> = T extends TableFormFieldsDescriptor\n ? TableFormFieldsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function TableFormFields(\n options: TableFormFieldsOptions = {},\n): TableFormFieldsDescriptorV1 {\n return { type: Types.TableFormFields, version: 1, options }\n}\n\nexport function getTableFormFieldsPropControllerDataTableFormFieldsData(\n data: TableFormFieldsPropControllerData | undefined,\n): TableFormFieldsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createTableFormFieldsPropControllerDataFromTableFormFieldsData(\n value: TableFormFieldsData,\n definition: TableFormFieldsDescriptor,\n): TableFormFieldsPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n P.nullish,\n () =>\n ({\n [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type,\n value,\n }) as const,\n )\n .otherwise(() => value)\n}\n\nfunction copyTableFormFieldsData(\n data: TableFormFieldsData,\n context: CopyContext,\n): TableFormFieldsData {\n if (data == null) return data\n\n return {\n ...data,\n fields: data.fields\n .filter(\n (field) =>\n !shouldRemoveResource(\n ContextResource.TableColumn,\n field.tableColumnId,\n context,\n ),\n )\n .map((field) => ({\n ...field,\n tableColumnId: replaceResourceIfNeeded(\n ContextResource.TableColumn,\n field.tableColumnId,\n context,\n ),\n })),\n }\n}\n\nexport function copyTableFormFieldsPropControllerData(\n data: TableFormFieldsPropControllerData | undefined,\n context: CopyContext,\n): TableFormFieldsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: TableFormFieldsPropControllerDataV1Type,\n value: copyTableFormFieldsData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyTableFormFieldsData(v0, context))\n}\n"],"mappings":"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","names":[]}
|
@@ -1,11 +1,35 @@
|
|
1
1
|
import { z } from "zod";
|
2
|
+
import {
|
3
|
+
ContextResource,
|
4
|
+
replaceResourceIfNeeded,
|
5
|
+
shouldRemoveResource
|
6
|
+
} from "@makeswift/controls";
|
2
7
|
import {
|
3
8
|
ControlDataTypeKey,
|
4
9
|
Types,
|
5
10
|
Schema
|
6
11
|
} from "../prop-controllers";
|
7
12
|
import { P, match } from "ts-pattern";
|
8
|
-
import {
|
13
|
+
import {
|
14
|
+
colorDataSchema,
|
15
|
+
imageDataV0Schema,
|
16
|
+
imageDataV1Schema
|
17
|
+
} from "../data";
|
18
|
+
function copyColorData(data, context) {
|
19
|
+
if (data == null)
|
20
|
+
return data;
|
21
|
+
if (shouldRemoveResource(ContextResource.Swatch, data.swatchId, context)) {
|
22
|
+
return null;
|
23
|
+
}
|
24
|
+
return {
|
25
|
+
...data,
|
26
|
+
swatchId: replaceResourceIfNeeded(
|
27
|
+
ContextResource.Swatch,
|
28
|
+
data.swatchId,
|
29
|
+
context
|
30
|
+
)
|
31
|
+
};
|
32
|
+
}
|
9
33
|
const colorBackgroundDataSchema = z.object({
|
10
34
|
type: z.literal("color"),
|
11
35
|
id: z.string(),
|
@@ -161,22 +185,14 @@ function getBackgroundsPropControllerSwatchIds(data) {
|
|
161
185
|
}
|
162
186
|
}) ?? [];
|
163
187
|
}
|
164
|
-
function copyResponsiveBackgroundsData(descriptor, data,
|
188
|
+
function copyResponsiveBackgroundsData(descriptor, data, ctx) {
|
165
189
|
if (data == null)
|
166
190
|
return data;
|
167
191
|
return data.map((override) => ({
|
168
192
|
...override,
|
169
|
-
value: override.value.
|
193
|
+
value: override.value.flatMap((backgroundItem) => {
|
170
194
|
return match([descriptor, backgroundItem]).with([P.any, { type: "color" }], ([, item]) => {
|
171
|
-
return {
|
172
|
-
...item,
|
173
|
-
payload: item.payload === null ? null : {
|
174
|
-
...item.payload,
|
175
|
-
swatchId: context.replacementContext.swatchIds.get(
|
176
|
-
item.payload.swatchId
|
177
|
-
) ?? item.payload.swatchId
|
178
|
-
}
|
179
|
-
};
|
195
|
+
return { ...item, payload: copyColorData(item.payload, ctx) };
|
180
196
|
}).with([P.any, { type: "gradient" }], ([, item]) => {
|
181
197
|
return {
|
182
198
|
...item,
|
@@ -184,12 +200,7 @@ function copyResponsiveBackgroundsData(descriptor, data, context) {
|
|
184
200
|
...item.payload,
|
185
201
|
stops: item.payload.stops.map((stop) => ({
|
186
202
|
...stop,
|
187
|
-
color: stop.color
|
188
|
-
...stop.color,
|
189
|
-
swatchId: context.replacementContext.swatchIds.get(
|
190
|
-
stop.color.swatchId
|
191
|
-
) ?? stop.color.swatchId
|
192
|
-
}
|
203
|
+
color: copyColorData(stop.color, ctx)
|
193
204
|
}))
|
194
205
|
}
|
195
206
|
};
|
@@ -198,21 +209,27 @@ function copyResponsiveBackgroundsData(descriptor, data, context) {
|
|
198
209
|
{ version: P.when((v) => v && v >= 1) },
|
199
210
|
{
|
200
211
|
type: "image-v1",
|
201
|
-
payload: {
|
202
|
-
version: 1,
|
203
|
-
image: { type: "makeswift-file" }
|
204
|
-
}
|
212
|
+
payload: { version: 1, image: { type: "makeswift-file" } }
|
205
213
|
}
|
206
214
|
],
|
207
215
|
([, item]) => {
|
216
|
+
if (shouldRemoveResource(
|
217
|
+
ContextResource.File,
|
218
|
+
item.payload.image.id,
|
219
|
+
ctx
|
220
|
+
)) {
|
221
|
+
return [];
|
222
|
+
}
|
208
223
|
return {
|
209
224
|
...item,
|
210
225
|
payload: {
|
211
226
|
...item.payload,
|
212
227
|
image: {
|
213
228
|
...item.payload.image,
|
214
|
-
id:
|
215
|
-
|
229
|
+
id: replaceResourceIfNeeded(
|
230
|
+
ContextResource.File,
|
231
|
+
item.payload.image.id,
|
232
|
+
ctx
|
216
233
|
) ?? item.payload.image.id
|
217
234
|
}
|
218
235
|
}
|
@@ -221,12 +238,21 @@ function copyResponsiveBackgroundsData(descriptor, data, context) {
|
|
221
238
|
).with(
|
222
239
|
[P.any, { type: "image", payload: { imageId: P.string } }],
|
223
240
|
([, item]) => {
|
241
|
+
if (shouldRemoveResource(
|
242
|
+
ContextResource.File,
|
243
|
+
item.payload.imageId,
|
244
|
+
ctx
|
245
|
+
)) {
|
246
|
+
return [];
|
247
|
+
}
|
224
248
|
return {
|
225
249
|
...item,
|
226
250
|
payload: {
|
227
251
|
...item.payload,
|
228
|
-
imageId:
|
229
|
-
|
252
|
+
imageId: replaceResourceIfNeeded(
|
253
|
+
ContextResource.File,
|
254
|
+
item.payload.imageId,
|
255
|
+
ctx
|
230
256
|
) ?? item.payload.imageId
|
231
257
|
}
|
232
258
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/backgrounds/backgrounds.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport { colorDataSchema, imageDataV0Schema, imageDataV1Schema } from '../data'\n\nconst colorBackgroundDataSchema = z.object({\n type: z.literal('color'),\n id: z.string(),\n payload: colorDataSchema.nullable(),\n})\n\nconst gradientStopDataSchema = z.object({\n id: z.string(),\n location: z.number(),\n color: colorDataSchema.nullable(),\n})\n\nconst gradientDataSchema = z.object({\n angle: z.number().optional(),\n isRadial: z.boolean().optional(),\n stops: z.array(gradientStopDataSchema),\n})\n\nconst gradientBackgroundDataSchema = z.object({\n type: z.literal('gradient'),\n id: z.string(),\n payload: gradientDataSchema,\n})\n\nconst backgroundImagePositionDataSchema = z.object({\n x: z.number(),\n y: z.number(),\n})\n\nconst backgroundSizeDataSchema = z.union([\n z.literal('cover'),\n z.literal('contain'),\n z.literal('auto'),\n])\n\nconst backgroundImageRepeatDataSchema = z.union([\n z.literal('no-repeat'),\n z.literal('repeat-x'),\n z.literal('repeat-y'),\n z.literal('repeat'),\n])\n\nconst backgroundImageV0DataSchema = z.object({\n imageId: imageDataV0Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nconst backgroundImageV1DataSchema = z.object({\n version: z.literal(1),\n image: imageDataV1Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nexport const backgroundImageDataSchema = z.union([\n backgroundImageV0DataSchema,\n backgroundImageV1DataSchema,\n])\n\nexport type BackgroundImageData = z.infer<typeof backgroundImageDataSchema>\n\nconst imageBackgroundV0DataSchema = z.object({\n type: z.literal('image'),\n id: z.string(),\n payload: backgroundImageV0DataSchema,\n})\n\nconst imageBackgroundV1DataSchema = z.object({\n type: z.literal('image-v1'),\n id: z.string(),\n payload: backgroundImageV1DataSchema,\n})\n\nexport const imageBackgroundDataSchema = z.union([\n imageBackgroundV0DataSchema,\n imageBackgroundV1DataSchema,\n])\n\nexport type ImageBackgroundData = z.infer<typeof imageBackgroundDataSchema>\n\nconst backgroundVideoAspectRatioDataSchema = z.union([\n z.literal('wide'),\n z.literal('standard'),\n])\n\nconst backgroundVideoDataSchema = z.object({\n url: z.string().optional(),\n maskColor: colorDataSchema.nullable().optional(),\n opacity: z.number().optional(),\n zoom: z.number().optional(),\n aspectRatio: backgroundVideoAspectRatioDataSchema.optional(),\n parallax: z.number().optional(),\n})\n\nconst videoBackgroundDataSchema = z.object({\n type: z.literal('video'),\n id: z.string(),\n payload: backgroundVideoDataSchema,\n})\n\nconst backgroundDataSchema = z.union([\n colorBackgroundDataSchema,\n gradientBackgroundDataSchema,\n imageBackgroundDataSchema,\n videoBackgroundDataSchema,\n])\n\nexport type BackgroundData = z.infer<typeof backgroundDataSchema>\n\nconst responsiveBackgroundsDataSchema = Schema.responsiveValue(\n z.array(backgroundDataSchema),\n)\n\nexport type ResponsiveBackgroundsData = z.infer<\n typeof responsiveBackgroundsDataSchema\n>\n\nconst backgroundsPropControllerDataV1Schema = responsiveBackgroundsDataSchema\n\nexport type BackgroundsPropControllerDataV1 = z.infer<\n typeof backgroundsPropControllerDataV1Schema\n>\n\nexport const BackgroundsPropControllerDataV2Type =\n 'prop-controllers::backgrounds::v2'\n\nconst backgroundsPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(BackgroundsPropControllerDataV2Type),\n value: responsiveBackgroundsDataSchema,\n})\n\nexport type BackgroundsPropControllerDataV2 = z.infer<\n typeof backgroundsPropControllerDataV2Schema\n>\n\nexport const backgroundsPropControllerDataSchema = z.union([\n backgroundsPropControllerDataV1Schema,\n backgroundsPropControllerDataV2Schema,\n])\n\nexport type BackgroundsPropControllerData = z.infer<\n typeof backgroundsPropControllerDataSchema\n>\n\nexport type BackgroundsOptions = Options<Record<string, never>>\n\ntype BackgroundsDescriptorV1<_T = BackgroundsPropControllerDataV1> = {\n type: typeof Types.Backgrounds\n version?: 1\n options: BackgroundsOptions\n}\n\ntype BackgroundsDescriptorV2<_T = BackgroundsPropControllerData> = {\n type: typeof Types.Backgrounds\n version: 2\n options: BackgroundsOptions\n}\n\nexport type BackgroundsDescriptor<_T = BackgroundsPropControllerData> =\n | BackgroundsDescriptorV1\n | BackgroundsDescriptorV2\n\nexport type ResolveBackgroundsPropControllerValue<\n T extends BackgroundsDescriptor,\n> = T extends BackgroundsDescriptor\n ? ResponsiveBackgroundsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Backgrounds(\n options: BackgroundsOptions = {},\n): BackgroundsDescriptorV2 {\n return { type: Types.Backgrounds, version: 2, options }\n}\n\nexport function getBackgroundsPropControllerDataResponsiveBackgroundsData(\n data: BackgroundsPropControllerData | undefined,\n): ResponsiveBackgroundsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBackgroundsPropControllerDataFromResponsiveBackgroundsData(\n data: ResponsiveBackgroundsData,\n definition: BackgroundsDescriptor,\n): BackgroundsPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getBackgroundsPropControllerFileIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n return match(backgroundItem)\n .with(\n {\n type: 'image-v1',\n payload: { image: { type: 'makeswift-file' } },\n },\n (item) => [item.payload.image.id],\n )\n .with({ type: 'image', payload: { imageId: P.string } }, (item) => [\n item.payload.imageId,\n ])\n .otherwise(() => [])\n }) ?? []\n )\n}\n\nexport function getBackgroundsPropControllerSwatchIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap((stop) =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nfunction copyResponsiveBackgroundsData(\n descriptor: BackgroundsDescriptor,\n data: ResponsiveBackgroundsData | undefined,\n context: CopyContext,\n): ResponsiveBackgroundsData | undefined {\n if (data == null) return data\n\n return data.map((override) => ({\n ...override,\n value: override.value.map((backgroundItem) => {\n return match([descriptor, backgroundItem])\n .with([P.any, { type: 'color' }], ([, item]) => {\n return {\n ...item,\n payload:\n item.payload === null\n ? null\n : {\n ...item.payload,\n swatchId:\n context.replacementContext.swatchIds.get(\n item.payload.swatchId,\n ) ?? item.payload.swatchId,\n },\n }\n })\n .with([P.any, { type: 'gradient' }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n stops: item.payload.stops.map((stop) => ({\n ...stop,\n color:\n stop.color == null\n ? null\n : {\n ...stop.color,\n swatchId:\n context.replacementContext.swatchIds.get(\n stop.color.swatchId,\n ) ?? stop.color.swatchId,\n },\n })),\n },\n }\n })\n .with(\n [\n { version: P.when((v) => v && v >= 1) },\n {\n type: 'image-v1',\n payload: {\n version: 1,\n image: { type: 'makeswift-file' },\n },\n },\n ],\n ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n image: {\n ...item.payload.image,\n id:\n context.replacementContext.fileIds.get(\n item.payload.image.id,\n ) ?? item.payload.image.id,\n },\n },\n }\n },\n )\n .with(\n [P.any, { type: 'image', payload: { imageId: P.string } }],\n ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n imageId:\n context.replacementContext.fileIds.get(\n item.payload.imageId,\n ) ?? item.payload.imageId,\n },\n }\n },\n )\n .otherwise(() => backgroundItem)\n }),\n }))\n}\n\nexport function copyBackgroundsPropControllerData(\n descriptor: BackgroundsDescriptor,\n data: BackgroundsPropControllerData | undefined,\n context: CopyContext,\n): BackgroundsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v1) => {\n const value = copyResponsiveBackgroundsData(\n descriptor,\n v1.value,\n context,\n )\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value,\n } as const\n },\n )\n .otherwise((v0) => copyResponsiveBackgroundsData(descriptor, v0, context))\n}\n"],"mappings":"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","names":[]}
|
1
|
+
{"version":3,"sources":["../../../src/backgrounds/backgrounds.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n ContextResource,\n replaceResourceIfNeeded,\n shouldRemoveResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n Options,\n Types,\n Schema,\n} from '../prop-controllers'\nimport { P, match } from 'ts-pattern'\nimport {\n ColorData,\n colorDataSchema,\n imageDataV0Schema,\n imageDataV1Schema,\n} from '../data'\n\nfunction copyColorData(\n data: ColorData | null,\n context: CopyContext,\n): ColorData | null {\n if (data == null) return data\n if (shouldRemoveResource(ContextResource.Swatch, data.swatchId, context)) {\n return null\n }\n return {\n ...data,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n data.swatchId,\n context,\n ),\n }\n}\n\nconst colorBackgroundDataSchema = z.object({\n type: z.literal('color'),\n id: z.string(),\n payload: colorDataSchema.nullable(),\n})\n\nconst gradientStopDataSchema = z.object({\n id: z.string(),\n location: z.number(),\n color: colorDataSchema.nullable(),\n})\n\nconst gradientDataSchema = z.object({\n angle: z.number().optional(),\n isRadial: z.boolean().optional(),\n stops: z.array(gradientStopDataSchema),\n})\n\nconst gradientBackgroundDataSchema = z.object({\n type: z.literal('gradient'),\n id: z.string(),\n payload: gradientDataSchema,\n})\n\nconst backgroundImagePositionDataSchema = z.object({\n x: z.number(),\n y: z.number(),\n})\n\nconst backgroundSizeDataSchema = z.union([\n z.literal('cover'),\n z.literal('contain'),\n z.literal('auto'),\n])\n\nconst backgroundImageRepeatDataSchema = z.union([\n z.literal('no-repeat'),\n z.literal('repeat-x'),\n z.literal('repeat-y'),\n z.literal('repeat'),\n])\n\nconst backgroundImageV0DataSchema = z.object({\n imageId: imageDataV0Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nconst backgroundImageV1DataSchema = z.object({\n version: z.literal(1),\n image: imageDataV1Schema,\n position: backgroundImagePositionDataSchema,\n size: backgroundSizeDataSchema.optional(),\n repeat: backgroundImageRepeatDataSchema.optional(),\n opacity: z.number().optional(),\n parallax: z.number().optional(),\n priority: z.boolean().optional(),\n})\n\nexport const backgroundImageDataSchema = z.union([\n backgroundImageV0DataSchema,\n backgroundImageV1DataSchema,\n])\n\nexport type BackgroundImageData = z.infer<typeof backgroundImageDataSchema>\n\nconst imageBackgroundV0DataSchema = z.object({\n type: z.literal('image'),\n id: z.string(),\n payload: backgroundImageV0DataSchema,\n})\n\nconst imageBackgroundV1DataSchema = z.object({\n type: z.literal('image-v1'),\n id: z.string(),\n payload: backgroundImageV1DataSchema,\n})\n\nexport const imageBackgroundDataSchema = z.union([\n imageBackgroundV0DataSchema,\n imageBackgroundV1DataSchema,\n])\n\nexport type ImageBackgroundData = z.infer<typeof imageBackgroundDataSchema>\n\nconst backgroundVideoAspectRatioDataSchema = z.union([\n z.literal('wide'),\n z.literal('standard'),\n])\n\nconst backgroundVideoDataSchema = z.object({\n url: z.string().optional(),\n maskColor: colorDataSchema.nullable().optional(),\n opacity: z.number().optional(),\n zoom: z.number().optional(),\n aspectRatio: backgroundVideoAspectRatioDataSchema.optional(),\n parallax: z.number().optional(),\n})\n\nconst videoBackgroundDataSchema = z.object({\n type: z.literal('video'),\n id: z.string(),\n payload: backgroundVideoDataSchema,\n})\n\nconst backgroundDataSchema = z.union([\n colorBackgroundDataSchema,\n gradientBackgroundDataSchema,\n imageBackgroundDataSchema,\n videoBackgroundDataSchema,\n])\n\nexport type BackgroundData = z.infer<typeof backgroundDataSchema>\n\nconst responsiveBackgroundsDataSchema = Schema.responsiveValue(\n z.array(backgroundDataSchema),\n)\n\nexport type ResponsiveBackgroundsData = z.infer<\n typeof responsiveBackgroundsDataSchema\n>\n\nconst backgroundsPropControllerDataV1Schema = responsiveBackgroundsDataSchema\n\nexport type BackgroundsPropControllerDataV1 = z.infer<\n typeof backgroundsPropControllerDataV1Schema\n>\n\nexport const BackgroundsPropControllerDataV2Type =\n 'prop-controllers::backgrounds::v2'\n\nconst backgroundsPropControllerDataV2Schema = z.object({\n [ControlDataTypeKey]: z.literal(BackgroundsPropControllerDataV2Type),\n value: responsiveBackgroundsDataSchema,\n})\n\nexport type BackgroundsPropControllerDataV2 = z.infer<\n typeof backgroundsPropControllerDataV2Schema\n>\n\nexport const backgroundsPropControllerDataSchema = z.union([\n backgroundsPropControllerDataV1Schema,\n backgroundsPropControllerDataV2Schema,\n])\n\nexport type BackgroundsPropControllerData = z.infer<\n typeof backgroundsPropControllerDataSchema\n>\n\nexport type BackgroundsOptions = Options<Record<string, never>>\n\ntype BackgroundsDescriptorV1<_T = BackgroundsPropControllerDataV1> = {\n type: typeof Types.Backgrounds\n version?: 1\n options: BackgroundsOptions\n}\n\ntype BackgroundsDescriptorV2<_T = BackgroundsPropControllerData> = {\n type: typeof Types.Backgrounds\n version: 2\n options: BackgroundsOptions\n}\n\nexport type BackgroundsDescriptor<_T = BackgroundsPropControllerData> =\n | BackgroundsDescriptorV1\n | BackgroundsDescriptorV2\n\nexport type ResolveBackgroundsPropControllerValue<\n T extends BackgroundsDescriptor,\n> = T extends BackgroundsDescriptor\n ? ResponsiveBackgroundsData | undefined\n : never\n\n/**\n * @deprecated Imports from @makeswift/prop-controllers are deprecated. Use\n * @makeswift/runtime/controls instead.\n */\nexport function Backgrounds(\n options: BackgroundsOptions = {},\n): BackgroundsDescriptorV2 {\n return { type: Types.Backgrounds, version: 2, options }\n}\n\nexport function getBackgroundsPropControllerDataResponsiveBackgroundsData(\n data: BackgroundsPropControllerData | undefined,\n): ResponsiveBackgroundsData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v2) => v2.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBackgroundsPropControllerDataFromResponsiveBackgroundsData(\n data: ResponsiveBackgroundsData,\n definition: BackgroundsDescriptor,\n): BackgroundsPropControllerData {\n return match(definition)\n .with(\n { version: 2 },\n () =>\n ({\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value: data,\n }) as const,\n )\n .otherwise(() => data)\n}\n\nexport function getBackgroundsPropControllerFileIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n return match(backgroundItem)\n .with(\n {\n type: 'image-v1',\n payload: { image: { type: 'makeswift-file' } },\n },\n (item) => [item.payload.image.id],\n )\n .with({ type: 'image', payload: { imageId: P.string } }, (item) => [\n item.payload.imageId,\n ])\n .otherwise(() => [])\n }) ?? []\n )\n}\n\nexport function getBackgroundsPropControllerSwatchIds(\n data: BackgroundsPropControllerData | undefined,\n): string[] {\n const value = getBackgroundsPropControllerDataResponsiveBackgroundsData(data)\n\n return (\n value\n ?.flatMap((override) => override.value)\n .flatMap((backgroundItem) => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null\n ? []\n : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap((stop) =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nfunction copyResponsiveBackgroundsData(\n descriptor: BackgroundsDescriptor,\n data: ResponsiveBackgroundsData | undefined,\n ctx: CopyContext,\n): ResponsiveBackgroundsData | undefined {\n if (data == null) return data\n\n return data.map((override) => ({\n ...override,\n value: override.value.flatMap((backgroundItem) => {\n return match([descriptor, backgroundItem])\n .with([P.any, { type: 'color' }], ([, item]) => {\n return { ...item, payload: copyColorData(item.payload, ctx) }\n })\n .with([P.any, { type: 'gradient' }], ([, item]) => {\n return {\n ...item,\n payload: {\n ...item.payload,\n stops: item.payload.stops.map((stop) => ({\n ...stop,\n color: copyColorData(stop.color, ctx),\n })),\n },\n }\n })\n .with(\n [\n { version: P.when((v) => v && v >= 1) },\n {\n type: 'image-v1',\n payload: { version: 1, image: { type: 'makeswift-file' } },\n },\n ],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n image: {\n ...item.payload.image,\n id:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.image.id,\n ctx,\n ) ?? item.payload.image.id,\n },\n },\n }\n },\n )\n .with(\n [P.any, { type: 'image', payload: { imageId: P.string } }],\n ([, item]) => {\n if (\n shouldRemoveResource(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n )\n ) {\n return []\n }\n\n return {\n ...item,\n payload: {\n ...item.payload,\n imageId:\n replaceResourceIfNeeded(\n ContextResource.File,\n item.payload.imageId,\n ctx,\n ) ?? item.payload.imageId,\n },\n }\n },\n )\n .otherwise(() => backgroundItem)\n }),\n }))\n}\n\nexport function copyBackgroundsPropControllerData(\n descriptor: BackgroundsDescriptor,\n data: BackgroundsPropControllerData | undefined,\n context: CopyContext,\n): BackgroundsPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type },\n (v1) => {\n const value = copyResponsiveBackgroundsData(\n descriptor,\n v1.value,\n context,\n )\n\n if (value == null) return undefined\n\n return {\n [ControlDataTypeKey]: BackgroundsPropControllerDataV2Type,\n value,\n } as const\n },\n )\n .otherwise((v0) => copyResponsiveBackgroundsData(descriptor, v0, context))\n}\n"],"mappings":"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","names":[]}
|
@@ -1,5 +1,10 @@
|
|
1
1
|
import { match } from "ts-pattern";
|
2
|
-
import {
|
2
|
+
import {
|
3
|
+
StyleSchema,
|
4
|
+
shouldRemoveResource,
|
5
|
+
replaceResourceIfNeeded,
|
6
|
+
ContextResource
|
7
|
+
} from "@makeswift/controls";
|
3
8
|
import {
|
4
9
|
ControlDataTypeKey,
|
5
10
|
Types,
|
@@ -74,11 +79,18 @@ function copyResponsiveBorderData(data, context) {
|
|
74
79
|
const { color } = borderSide;
|
75
80
|
if (color == null)
|
76
81
|
return borderSide;
|
82
|
+
if (shouldRemoveResource(ContextResource.Swatch, color.swatchId, context)) {
|
83
|
+
return void 0;
|
84
|
+
}
|
77
85
|
return {
|
78
86
|
...borderSide,
|
79
87
|
color: {
|
80
88
|
...color,
|
81
|
-
swatchId:
|
89
|
+
swatchId: replaceResourceIfNeeded(
|
90
|
+
ContextResource.Swatch,
|
91
|
+
color.swatchId,
|
92
|
+
context
|
93
|
+
)
|
82
94
|
}
|
83
95
|
};
|
84
96
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/border/border.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {
|
1
|
+
{"version":3,"sources":["../../../src/border/border.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n BorderData,\n BorderSideData,\n StyleSchema,\n shouldRemoveResource,\n replaceResourceIfNeeded,\n ContextResource,\n} from '@makeswift/controls'\n\nimport {\n ControlDataTypeKey,\n CopyContext,\n ResolveOptions,\n Types,\n Schema,\n} from '../prop-controllers'\n\nimport { z } from 'zod'\n\nconst responsiveBorderDataSchema = Schema.responsiveValue(StyleSchema.border)\n\nexport type ResponsiveBorderData = z.infer<typeof responsiveBorderDataSchema>\n\nconst borderPropControllerDataV0Schema = responsiveBorderDataSchema\n\nexport type BorderPropControllerDataV0 = z.infer<\n typeof borderPropControllerDataV0Schema\n>\n\nexport const BorderPropControllerDataV1Type = 'prop-controllers::border::v1'\n\nconst borderPropControllerDataV1Schema = z.object({\n [ControlDataTypeKey]: z.literal(BorderPropControllerDataV1Type),\n value: responsiveBorderDataSchema,\n})\n\nexport type BorderPropControllerDataV1 = z.infer<\n typeof borderPropControllerDataV1Schema\n>\n\nexport const borderPropControllerDataSchema = z.union([\n borderPropControllerDataV0Schema,\n borderPropControllerDataV1Schema,\n])\n\nexport type BorderPropControllerData = z.infer<\n typeof borderPropControllerDataSchema\n>\n\nexport const BorderPropControllerFormat = {\n ClassName: 'makeswift::prop-controllers::border::format::class-name',\n ResponsiveValue:\n 'makeswift::prop-controllers::border::format::responsive-value',\n} as const\n\nexport type BorderPropControllerFormat =\n (typeof BorderPropControllerFormat)[keyof typeof BorderPropControllerFormat]\n\ntype BorderOptions = { format?: BorderPropControllerFormat }\n\ntype BorderDescriptorV0<\n _T = BorderPropControllerDataV0,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n options: U\n}\n\ntype BorderDescriptorV1<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = {\n type: typeof Types.Border\n version: 1\n options: U\n}\n\nexport type BorderDescriptor<\n _T = BorderPropControllerData,\n U extends BorderOptions = BorderOptions,\n> = BorderDescriptorV0<_T, U> | BorderDescriptorV1<_T, U>\n\nexport type ResolveBorderPropControllerValue<T extends BorderDescriptor> =\n T extends BorderDescriptor\n ? undefined extends ResolveOptions<T['options']>['format']\n ? ResponsiveBorderData | undefined\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ClassName\n ? string\n : ResolveOptions<\n T['options']\n >['format'] extends typeof BorderPropControllerFormat.ResponsiveValue\n ? ResponsiveBorderData | undefined\n : never\n : never\n\n/**\n * @deprecated Imports from `@makeswift/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function Border<T extends BorderOptions>(\n options: T & BorderOptions = {} as T,\n): BorderDescriptor<BorderPropControllerData, T> {\n return { type: Types.Border, version: 1, options }\n}\n\nBorder.Format = BorderPropControllerFormat\n\nexport function getBorderPropControllerDataResponsiveBorderData(\n data: BorderPropControllerData | undefined,\n): ResponsiveBorderData | undefined {\n return match(data)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) => v1.value,\n )\n .otherwise((v0) => v0)\n}\n\nexport function createBorderPropControllerDataFromResponsiveBorderData(\n definition: BorderDescriptor,\n responsiveBorderData: ResponsiveBorderData,\n): BorderPropControllerData {\n return match(definition)\n .with(\n { version: 1 },\n () =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: responsiveBorderData,\n }) as const,\n )\n .otherwise(() => responsiveBorderData)\n}\n\nexport function getBorderPropControllerDataSwatchIds(\n data: BorderPropControllerData | undefined,\n): string[] {\n return (\n getBorderPropControllerDataResponsiveBorderData(data)\n ?.flatMap((override) => override.value)\n .flatMap((borderValue) => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter(\n (swatchId): swatchId is NonNullable<typeof swatchId> =>\n swatchId != null,\n )\n }) ?? []\n )\n}\n\nfunction copyResponsiveBorderData(\n data: ResponsiveBorderData,\n context: CopyContext,\n): ResponsiveBorderData {\n return data.map((override) => ({\n ...override,\n value: copyBorderValue(override.value),\n }))\n\n function copyBorderValue({\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n }: BorderData): BorderData {\n return {\n borderTop: borderTop && copyBorderSide(borderTop),\n borderRight: borderRight && copyBorderSide(borderRight),\n borderBottom: borderBottom && copyBorderSide(borderBottom),\n borderLeft: borderLeft && copyBorderSide(borderLeft),\n }\n }\n\n function copyBorderSide(\n borderSide: BorderSideData,\n ): BorderSideData | undefined {\n const { color } = borderSide\n\n if (color == null) return borderSide\n if (shouldRemoveResource(ContextResource.Swatch, color.swatchId, context)) {\n return undefined\n }\n\n return {\n ...borderSide,\n color: {\n ...color,\n swatchId: replaceResourceIfNeeded(\n ContextResource.Swatch,\n color.swatchId,\n context,\n ),\n },\n }\n }\n}\n\nexport function copyBorderPropControllerData(\n data: BorderPropControllerData | undefined,\n context: CopyContext,\n): BorderPropControllerData | undefined {\n return match(data)\n .with(undefined, () => undefined)\n .with(\n { [ControlDataTypeKey]: BorderPropControllerDataV1Type },\n (v1) =>\n ({\n [ControlDataTypeKey]: BorderPropControllerDataV1Type,\n value: copyResponsiveBorderData(v1.value, context),\n }) as const,\n )\n .otherwise((v0) => copyResponsiveBorderData(v0, context))\n}\n"],"mappings":"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","names":[]}
|
package/dist/esm/grid/grid.js
CHANGED
@@ -5,6 +5,11 @@ import {
|
|
5
5
|
Schema
|
6
6
|
} from "../prop-controllers";
|
7
7
|
import { P, match } from "ts-pattern";
|
8
|
+
import {
|
9
|
+
isElementReference,
|
10
|
+
ContextResource,
|
11
|
+
shouldRemoveResource
|
12
|
+
} from "@makeswift/controls";
|
8
13
|
const gridColumnSchema = z.object({
|
9
14
|
count: z.number(),
|
10
15
|
spans: z.array(z.array(z.number()))
|
@@ -65,7 +70,13 @@ function getGridPropControllerElementChildren(data) {
|
|
65
70
|
function copyGridData(data, context) {
|
66
71
|
return {
|
67
72
|
...data,
|
68
|
-
elements: data.elements.
|
73
|
+
elements: data.elements.filter(
|
74
|
+
(el) => !(isElementReference(el) && shouldRemoveResource(
|
75
|
+
ContextResource.GlobalElement,
|
76
|
+
el.value,
|
77
|
+
context
|
78
|
+
))
|
79
|
+
).map((el) => context.copyElement(el))
|
69
80
|
};
|
70
81
|
}
|
71
82
|
function copyGridPropControllerData(data, context) {
|