@makeswift/runtime 0.19.2-canary.0 → 0.19.2
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/controls/style.js +8 -2
- package/dist/cjs/controls/style.js.map +1 -1
- package/dist/cjs/jest-setup.js +4 -0
- package/dist/cjs/jest-setup.js.map +1 -1
- package/dist/cjs/mocks/server.js +30 -0
- package/dist/cjs/mocks/server.js.map +1 -0
- package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js +91 -0
- package/dist/cjs/next/components/tests/controls/page-control-prop-rendering.js.map +1 -0
- package/dist/cjs/prop-controllers/introspection.js +3 -0
- package/dist/cjs/prop-controllers/introspection.js.map +1 -1
- package/dist/cjs/utils/tests/element-data-test-test.js +2 -2
- package/dist/cjs/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/esm/controls/style.js +6 -1
- package/dist/esm/controls/style.js.map +1 -1
- package/dist/esm/jest-setup.js +4 -0
- package/dist/esm/jest-setup.js.map +1 -1
- package/dist/esm/mocks/server.js +6 -0
- package/dist/esm/mocks/server.js.map +1 -0
- package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js +70 -0
- package/dist/esm/next/components/tests/controls/page-control-prop-rendering.js.map +1 -0
- package/dist/esm/prop-controllers/introspection.js +5 -0
- package/dist/esm/prop-controllers/introspection.js.map +1 -1
- package/dist/esm/utils/tests/element-data-test-test.js +2 -2
- package/dist/esm/utils/tests/element-data-test-test.js.map +1 -1
- package/dist/types/controls/style.d.ts +1 -0
- package/dist/types/controls/style.d.ts.map +1 -1
- package/dist/types/mocks/server.d.ts +2 -0
- package/dist/types/mocks/server.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/checkbox-control.test.d.ts +1 -2
- package/dist/types/next/components/tests/controls/checkbox-control.test.d.ts.map +1 -1
- package/dist/types/next/components/tests/controls/color-control.test.d.ts +3 -0
- package/dist/types/next/components/tests/controls/color-control.test.d.ts.map +1 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts +12 -0
- package/dist/types/next/components/tests/controls/page-control-prop-rendering.d.ts.map +1 -0
- package/dist/types/prop-controllers/introspection.d.ts.map +1 -1
- package/dist/types/utils/tests/element-data-test-test.d.ts +1 -1
- package/dist/types/utils/tests/element-data-test-test.d.ts.map +1 -1
- package/package.json +5 -4
|
@@ -23,10 +23,12 @@ __export(style_exports, {
|
|
|
23
23
|
StyleControlMessageType: () => StyleControlMessageType,
|
|
24
24
|
StyleControlProperty: () => StyleControlProperty,
|
|
25
25
|
StyleControlType: () => StyleControlType,
|
|
26
|
-
copyStyleData: () => copyStyleData
|
|
26
|
+
copyStyleData: () => copyStyleData,
|
|
27
|
+
getStyleSwatchIds: () => getStyleSwatchIds
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(style_exports);
|
|
29
30
|
var import_controls = require("@makeswift/controls");
|
|
31
|
+
var import_prop_controllers = require("@makeswift/prop-controllers");
|
|
30
32
|
var import_base = require("../prop-controllers/base");
|
|
31
33
|
const StyleControlType = "makeswift::controls::style";
|
|
32
34
|
const StyleControlProperty = {
|
|
@@ -76,6 +78,9 @@ class StyleControl extends import_base.PropController {
|
|
|
76
78
|
recv() {
|
|
77
79
|
}
|
|
78
80
|
}
|
|
81
|
+
function getStyleSwatchIds(data) {
|
|
82
|
+
return (0, import_prop_controllers.getBorderPropControllerDataSwatchIds)(data.border);
|
|
83
|
+
}
|
|
79
84
|
function copyStyleData(value, context) {
|
|
80
85
|
if (value == null)
|
|
81
86
|
return value;
|
|
@@ -114,6 +119,7 @@ function copyStyleData(value, context) {
|
|
|
114
119
|
StyleControlMessageType,
|
|
115
120
|
StyleControlProperty,
|
|
116
121
|
StyleControlType,
|
|
117
|
-
copyStyleData
|
|
122
|
+
copyStyleData,
|
|
123
|
+
getStyleSwatchIds
|
|
118
124
|
});
|
|
119
125
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0D;AAO1D,kBAA+B;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,2BAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAO,+BAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { getBorderPropControllerDataSwatchIds } from '@makeswift/prop-controllers'\n\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function getStyleSwatchIds(data: StyleControlData): string[] {\n return getBorderPropControllerDataSwatchIds(data.border)\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA0D;AAC1D,8BAAqD;AAQrD,kBAA+B;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,2BAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,kBAAkB,MAAkC;AAClE,aAAO,8DAAqC,KAAK,MAAM;AACzD;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAO,+BAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
|
package/dist/cjs/jest-setup.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var import_jest_dom = require("@testing-library/jest-dom");
|
|
3
3
|
var import_jest = require("@emotion/jest");
|
|
4
|
+
var import_server = require("./mocks/server");
|
|
5
|
+
beforeAll(() => import_server.server.listen());
|
|
6
|
+
afterEach(() => import_server.server.resetHandlers());
|
|
7
|
+
afterAll(() => import_server.server.close());
|
|
4
8
|
expect.extend(import_jest.matchers);
|
|
5
9
|
if (typeof window !== "undefined") {
|
|
6
10
|
Object.defineProperty(window, "matchMedia", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\n\nexpect.extend(matchers)\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":";AAAA,sBAAO;AACP,kBAAyB;
|
|
1
|
+
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\nimport { server } from './mocks/server'\n\nbeforeAll(() => server.listen())\nafterEach(() => server.resetHandlers())\nafterAll(() => server.close())\n\nexpect.extend(matchers)\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":";AAAA,sBAAO;AACP,kBAAyB;AACzB,oBAAuB;AAEvB,UAAU,MAAM,qBAAO,OAAO,CAAC;AAC/B,UAAU,MAAM,qBAAO,cAAc,CAAC;AACtC,SAAS,MAAM,qBAAO,MAAM,CAAC;AAE7B,OAAO,OAAO,oBAAQ;AAEtB,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,eAAe,QAAQ,cAAc;AAAA,IAC1C,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,YAAU;AAAA,MAC5C,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa,KAAK,GAAG;AAAA;AAAA,MACrB,gBAAgB,KAAK,GAAG;AAAA;AAAA,MACxB,kBAAkB,KAAK,GAAG;AAAA,MAC1B,qBAAqB,KAAK,GAAG;AAAA,MAC7B,eAAe,KAAK,GAAG;AAAA,IACzB,EAAE;AAAA,EACJ,CAAC;AAED,SAAO,eAAe,QAAQ,wBAAwB;AAAA,IACpD,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,OAAO;AAAA,MACzC,SAAS,KAAK,GAAG;AAAA,MACjB,WAAW,KAAK,GAAG;AAAA,MACnB,YAAY,KAAK,GAAG;AAAA,IACtB,EAAE;AAAA,EACJ,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
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 __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var server_exports = {};
|
|
20
|
+
__export(server_exports, {
|
|
21
|
+
server: () => server
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(server_exports);
|
|
24
|
+
var import_node = require("msw/node");
|
|
25
|
+
const server = (0, import_node.setupServer)();
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
server
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/mocks/server.ts"],"sourcesContent":["import { setupServer } from 'msw/node'\n\nexport const server = setupServer()\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA4B;AAErB,MAAM,aAAS,yBAAY;","names":[]}
|
|
@@ -36,7 +36,7 @@ async function handler(...args) {
|
|
|
36
36
|
const supportsPreviewMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => false).with(apiRoutePattern, () => true).exhaustive();
|
|
37
37
|
const supportsDraftMode = (0, import_ts_pattern.match)(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
38
38
|
const body = {
|
|
39
|
-
version: "0.19.2
|
|
39
|
+
version: "0.19.2",
|
|
40
40
|
previewMode: supportsPreviewMode,
|
|
41
41
|
draftMode: supportsDraftMode,
|
|
42
42
|
interactionMode: true,
|
|
@@ -0,0 +1,91 @@
|
|
|
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 __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var page_control_prop_rendering_exports = {};
|
|
20
|
+
__export(page_control_prop_rendering_exports, {
|
|
21
|
+
testPageControlPropRendering: () => testPageControlPropRendering
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(page_control_prop_rendering_exports);
|
|
24
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
+
var import_react = require("react");
|
|
26
|
+
var import_test_utils = require("react-dom/test-utils");
|
|
27
|
+
var import_react2 = require("@testing-library/react");
|
|
28
|
+
var import_jest_dom = require("@testing-library/jest-dom");
|
|
29
|
+
var import_page = require("../../page");
|
|
30
|
+
var import_react_runtime = require("../../../context/react-runtime");
|
|
31
|
+
var import_react3 = require("../../../../react");
|
|
32
|
+
var import_element_data_test_test = require("../../../../utils/tests/element-data-test-test");
|
|
33
|
+
const ROOT_ID = "00000000-0000-0000-0000-000000000000";
|
|
34
|
+
const ELEMENT_ID = "11111111-1111-1111-1111-111111111111";
|
|
35
|
+
async function testPageControlPropRendering(controlDefinition, {
|
|
36
|
+
toData,
|
|
37
|
+
value,
|
|
38
|
+
cacheData,
|
|
39
|
+
expectedRenders
|
|
40
|
+
}) {
|
|
41
|
+
const controlData = toData(value);
|
|
42
|
+
const TestComponentType = "TestComponent";
|
|
43
|
+
const testId = "test-id";
|
|
44
|
+
const renderCountTestId = "render-count-test-id";
|
|
45
|
+
const elementData = (0, import_element_data_test_test.createRootComponent)(
|
|
46
|
+
[
|
|
47
|
+
{
|
|
48
|
+
key: ELEMENT_ID,
|
|
49
|
+
type: TestComponentType,
|
|
50
|
+
props: {
|
|
51
|
+
propKey: controlData
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
ROOT_ID
|
|
56
|
+
);
|
|
57
|
+
const snapshot = (0, import_element_data_test_test.createMakeswiftPageSnapshot)(elementData, {}, cacheData);
|
|
58
|
+
const runtime = new import_react3.ReactRuntime();
|
|
59
|
+
runtime.registerComponent(
|
|
60
|
+
(0, import_react.forwardRef)(({ propKey }, ref) => {
|
|
61
|
+
const renderCount = (0, import_react.useRef)(0);
|
|
62
|
+
++renderCount.current;
|
|
63
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref, children: [
|
|
64
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-testid": renderCountTestId, children: renderCount.current }),
|
|
65
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { "data-testid": testId, children: JSON.stringify(propKey) })
|
|
66
|
+
] });
|
|
67
|
+
}),
|
|
68
|
+
{
|
|
69
|
+
type: TestComponentType,
|
|
70
|
+
label: "TestComponent",
|
|
71
|
+
props: {
|
|
72
|
+
propKey: controlDefinition
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
await (0, import_test_utils.act)(
|
|
77
|
+
async () => (0, import_react2.render)(
|
|
78
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_runtime.ReactRuntimeProvider, { runtime, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_page.Page, { snapshot }) })
|
|
79
|
+
)
|
|
80
|
+
);
|
|
81
|
+
expect(snapshot).toMatchSnapshot("snapshot");
|
|
82
|
+
expect(JSON.parse(import_react2.screen.getByTestId(testId).textContent ?? "")).toMatchSnapshot("resolvedValue");
|
|
83
|
+
if (expectedRenders != null) {
|
|
84
|
+
expect(Number(import_react2.screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
88
|
+
0 && (module.exports = {
|
|
89
|
+
testPageControlPropRendering
|
|
90
|
+
});
|
|
91
|
+
//# sourceMappingURL=page-control-prop-rendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/components/tests/controls/page-control-prop-rendering.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { forwardRef, useRef } from 'react'\nimport { act } from 'react-dom/test-utils'\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport { Data } from '@makeswift/controls'\n\nimport { ElementData } from '../../../../state/react-page'\nimport { Page } from '../../page'\nimport { ReactRuntimeProvider } from '../../../context/react-runtime'\nimport { ReactRuntime } from '../../../../react'\n\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nimport { type MakeswiftPageSnapshot } from '../../../../next'\nimport { ControlDefinition, ControlDefinitionData } from '../../../../controls'\n\nconst ROOT_ID = '00000000-0000-0000-0000-000000000000'\nconst ELEMENT_ID = '11111111-1111-1111-1111-111111111111'\n\nexport async function testPageControlPropRendering<T extends ControlDefinition>(\n controlDefinition: T,\n {\n toData,\n value,\n cacheData,\n expectedRenders,\n }: {\n toData: (value: Data) => ControlDefinitionData<T>\n value: Data\n cacheData?: MakeswiftPageSnapshot['cacheData']\n expectedRenders?: number\n },\n) {\n // Arrange\n const controlData = toData(value)\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const renderCountTestId = 'render-count-test-id'\n const elementData: ElementData = createRootComponent(\n [\n {\n key: ELEMENT_ID,\n type: TestComponentType,\n props: {\n propKey: controlData,\n },\n },\n ],\n ROOT_ID,\n )\n const snapshot = createMakeswiftPageSnapshot(elementData, {}, cacheData)\n const runtime = new ReactRuntime()\n\n // Act\n runtime.registerComponent(\n forwardRef<HTMLDivElement, { propKey?: any }>(({ propKey }, ref) => {\n const renderCount = useRef(0)\n ++renderCount.current\n return (\n <div ref={ref}>\n <div data-testid={renderCountTestId}>{renderCount.current}</div>\n <div data-testid={testId}>{JSON.stringify(propKey)}</div>\n </div>\n )\n }),\n {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: controlDefinition,\n },\n },\n )\n\n // Assert\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n expect(snapshot).toMatchSnapshot('snapshot')\n expect(JSON.parse(screen.getByTestId(testId).textContent ?? '')).toMatchSnapshot('resolvedValue')\n\n if (expectedRenders != null) {\n expect(Number(screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiEQ;AA/DR,mBAAmC;AACnC,wBAAoB;AACpB,IAAAA,gBAA+B;AAC/B,sBAAO;AAKP,kBAAqB;AACrB,2BAAqC;AACrC,IAAAA,gBAA6B;AAE7B,oCAGO;AAKP,MAAM,UAAU;AAChB,MAAM,aAAa;AAEnB,eAAsB,6BACpB,mBACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AAEA,QAAM,cAAc,OAAO,KAAK;AAChC,QAAM,oBAAoB;AAC1B,QAAM,SAAS;AACf,QAAM,oBAAoB;AAC1B,QAAM,kBAA2B;AAAA,IAC/B;AAAA,MACE;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,eAAW,2DAA4B,aAAa,CAAC,GAAG,SAAS;AACvE,QAAM,UAAU,IAAI,2BAAa;AAGjC,UAAQ;AAAA,QACN,yBAA8C,CAAC,EAAE,QAAQ,GAAG,QAAQ;AAClE,YAAM,kBAAc,qBAAO,CAAC;AAC5B,QAAE,YAAY;AACd,aACE,6CAAC,SAAI,KACH;AAAA,oDAAC,SAAI,eAAa,mBAAoB,sBAAY,SAAQ;AAAA,QAC1D,4CAAC,SAAI,eAAa,QAAS,eAAK,UAAU,OAAO,GAAE;AAAA,SACrD;AAAA,IAEJ,CAAC;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,YAAM;AAAA,IAAI,gBACR;AAAA,MACE,4CAAC,6CAAqB,SACpB,sDAAC,oBAAK,UAAoB,GAC5B;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,EAAE,gBAAgB,UAAU;AAC3C,SAAO,KAAK,MAAM,qBAAO,YAAY,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,eAAe;AAEhG,MAAI,mBAAmB,MAAM;AAC3B,WAAO,OAAO,qBAAO,YAAY,iBAAiB,EAAE,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,EACxF;AACF;","names":["import_react"]}
|
|
@@ -92,6 +92,9 @@ function getSwatchIds(descriptor, prop) {
|
|
|
92
92
|
case import_controls.TypographyControlType: {
|
|
93
93
|
return (0, import_controls.getTypographySwatchIds)(prop);
|
|
94
94
|
}
|
|
95
|
+
case import_controls.StyleControlType: {
|
|
96
|
+
return (0, import_controls.getStyleSwatchIds)(prop);
|
|
97
|
+
}
|
|
95
98
|
case import_controls.StyleV2ControlType: {
|
|
96
99
|
const value = prop;
|
|
97
100
|
return value?.flatMap((value2) => getSwatchIds(descriptor.config.type, value2.value)) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { Descriptor } from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n getListElementChildren,\n getListFileIds,\n getListPageIds,\n getListSwatchIds,\n getListTypographyIds,\n getShapeElementChildren,\n getShapeFileIds,\n getShapePageIds,\n getShapeSwatchIds,\n getShapeTypographyIds,\n getTypographySwatchIds,\n getTypographyTypographyIds,\n ImageControlData,\n ImageControlType,\n LinkControlData,\n LinkControlType,\n ListControlData,\n ListControlType,\n RichTextControlData,\n RichTextControlType,\n RichTextValue,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n StyleV2ControlData,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlType,\n} from '../controls'\nimport {\n getRichTextPageIds,\n getRichTextSwatchIds,\n getRichTextTypographyIds,\n} from '../controls/rich-text/introspection'\nimport {\n getRichTextV2PageIds,\n getRichTextV2SwatchIds,\n getRichTextV2TypographyIds,\n} from '../controls/rich-text-v2/introspection'\nimport {\n RichTextV2ControlType,\n RichTextV2ControlData,\n isRichTextV1Data,\n} from '../controls/rich-text-v2/rich-text-v2'\nimport { match, P } from 'ts-pattern'\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSawtchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n return getShapeElementChildren(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListElementChildren(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSawtchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextSwatchIds(prop as RichTextValue)\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n case TypographyControlType: {\n return getTypographySwatchIds(prop as TypographyControlData[number])\n }\n\n case StyleV2ControlType: {\n const value = prop as StyleV2ControlData\n\n return value?.flatMap(value => getSwatchIds(descriptor.config.type, value.value)) ?? []\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextSwatchIds(data)\n\n return getRichTextV2SwatchIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeSwatchIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListSwatchIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return match(value)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file' }, f => [f.id])\n .with({ type: 'external-file' }, () => [])\n .otherwise(() => [])\n }\n\n case ShapeControlType: {\n return getShapeFileIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListFileIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case TypographyControlType: {\n return getTypographyTypographyIds(prop as TypographyControlData[number])\n }\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextTypographyIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextTypographyIds(data)\n\n return getRichTextV2TypographyIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeTypographyIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListTypographyIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case LinkControlType: {\n const value = prop as LinkControlData\n\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextPageIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextPageIds(data)\n\n return getRichTextV2PageIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapePageIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListPageIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":["import_introspection","PropControllerTypes","value"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { Descriptor } from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n getListElementChildren,\n getListFileIds,\n getListPageIds,\n getListSwatchIds,\n getListTypographyIds,\n getShapeElementChildren,\n getShapeFileIds,\n getShapePageIds,\n getShapeSwatchIds,\n getShapeTypographyIds,\n getStyleSwatchIds,\n getTypographySwatchIds,\n getTypographyTypographyIds,\n ImageControlData,\n ImageControlType,\n LinkControlData,\n LinkControlType,\n ListControlData,\n ListControlType,\n RichTextControlData,\n RichTextControlType,\n RichTextValue,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n StyleControlData,\n StyleControlType,\n StyleV2ControlData,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlType,\n} from '../controls'\nimport {\n getRichTextPageIds,\n getRichTextSwatchIds,\n getRichTextTypographyIds,\n} from '../controls/rich-text/introspection'\nimport {\n getRichTextV2PageIds,\n getRichTextV2SwatchIds,\n getRichTextV2TypographyIds,\n} from '../controls/rich-text-v2/introspection'\nimport {\n RichTextV2ControlType,\n RichTextV2ControlData,\n isRichTextV1Data,\n} from '../controls/rich-text-v2/rich-text-v2'\nimport { match, P } from 'ts-pattern'\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSawtchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n return getShapeElementChildren(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListElementChildren(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSawtchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextSwatchIds(prop as RichTextValue)\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n case TypographyControlType: {\n return getTypographySwatchIds(prop as TypographyControlData[number])\n }\n\n case StyleControlType: {\n return getStyleSwatchIds(prop as StyleControlData)\n }\n\n case StyleV2ControlType: {\n const value = prop as StyleV2ControlData\n\n return value?.flatMap(value => getSwatchIds(descriptor.config.type, value.value)) ?? []\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextSwatchIds(data)\n\n return getRichTextV2SwatchIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeSwatchIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListSwatchIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return match(value)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file' }, f => [f.id])\n .with({ type: 'external-file' }, () => [])\n .otherwise(() => [])\n }\n\n case ShapeControlType: {\n return getShapeFileIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListFileIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case TypographyControlType: {\n return getTypographyTypographyIds(prop as TypographyControlData[number])\n }\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextTypographyIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextTypographyIds(data)\n\n return getRichTextV2TypographyIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeTypographyIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListTypographyIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case LinkControlType: {\n const value = prop as LinkControlData\n\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextPageIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextPageIds(data)\n\n return getRichTextV2PageIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapePageIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListPageIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":["import_introspection","PropControllerTypes","value"]}
|
|
@@ -44,7 +44,7 @@ function createRootComponent(elements, rootId) {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}) {
|
|
47
|
+
function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}, cacheData = {}) {
|
|
48
48
|
return {
|
|
49
49
|
document: {
|
|
50
50
|
id: "test-page-id",
|
|
@@ -59,7 +59,7 @@ function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}) {
|
|
|
59
59
|
...partialSnapshot.document
|
|
60
60
|
},
|
|
61
61
|
apiOrigin: "https://test-api-origin.com",
|
|
62
|
-
cacheData
|
|
62
|
+
cacheData,
|
|
63
63
|
preview: false,
|
|
64
64
|
localizedResourcesMap: {},
|
|
65
65
|
locale: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/tests/element-data-test-test.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport { MakeswiftPageSnapshot } from '../../next'\nimport { ElementData } from '../../state/react-page'\nimport { MakeswiftComponentType } from '../../components'\n\nexport function createRootComponent(elements: ElementData[], rootId?: string) {\n return {\n key: rootId ?? randomUUID(),\n type: MakeswiftComponentType.Root,\n props: {\n children: {\n columns: [\n {\n deviceId: 'desktop',\n value: {\n count: 12,\n spans: elements?.map(() => [12]),\n },\n },\n ],\n elements,\n },\n },\n }\n}\n\nexport function createMakeswiftPageSnapshot(\n elementData: ElementData,\n partialSnapshot: Partial<MakeswiftPageSnapshot> = {},\n): MakeswiftPageSnapshot {\n return {\n document: {\n id: 'test-page-id',\n site: { id: 'test-site-id' },\n data: elementData,\n snippets: [],\n fonts: [],\n meta: {},\n seo: {},\n localizedPages: [],\n locale: null,\n ...partialSnapshot.document,\n },\n apiOrigin: 'https://test-api-origin.com',\n cacheData
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/tests/element-data-test-test.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport { MakeswiftPageSnapshot } from '../../next'\nimport { ElementData } from '../../state/react-page'\nimport { MakeswiftComponentType } from '../../components'\n\nexport function createRootComponent(elements: ElementData[], rootId?: string) {\n return {\n key: rootId ?? randomUUID(),\n type: MakeswiftComponentType.Root,\n props: {\n children: {\n columns: [\n {\n deviceId: 'desktop',\n value: {\n count: 12,\n spans: elements?.map(() => [12]),\n },\n },\n ],\n elements,\n },\n },\n }\n}\n\nexport function createMakeswiftPageSnapshot(\n elementData: ElementData,\n partialSnapshot: Partial<MakeswiftPageSnapshot> = {},\n cacheData: MakeswiftPageSnapshot['cacheData'] = {},\n): MakeswiftPageSnapshot {\n return {\n document: {\n id: 'test-page-id',\n site: { id: 'test-site-id' },\n data: elementData,\n snippets: [],\n fonts: [],\n meta: {},\n seo: {},\n localizedPages: [],\n locale: null,\n ...partialSnapshot.document,\n },\n apiOrigin: 'https://test-api-origin.com',\n cacheData,\n preview: false,\n localizedResourcesMap: {},\n locale: null,\n ...partialSnapshot,\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAA2B;AAG3B,wBAAuC;AAEhC,SAAS,oBAAoB,UAAyB,QAAiB;AAC5E,SAAO;AAAA,IACL,KAAK,cAAU,0BAAW;AAAA,IAC1B,MAAM,yCAAuB;AAAA,IAC7B,OAAO;AAAA,MACL,UAAU;AAAA,QACR,SAAS;AAAA,UACP;AAAA,YACE,UAAU;AAAA,YACV,OAAO;AAAA,cACL,OAAO;AAAA,cACP,OAAO,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;AAAA,YACjC;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,4BACd,aACA,kBAAkD,CAAC,GACnD,YAAgD,CAAC,GAC1B;AACvB,SAAO;AAAA,IACL,UAAU;AAAA,MACR,IAAI;AAAA,MACJ,MAAM,EAAE,IAAI,eAAe;AAAA,MAC3B,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,MACX,OAAO,CAAC;AAAA,MACR,MAAM,CAAC;AAAA,MACP,KAAK,CAAC;AAAA,MACN,gBAAgB,CAAC;AAAA,MACjB,QAAQ;AAAA,MACR,GAAG,gBAAgB;AAAA,IACrB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,SAAS;AAAA,IACT,uBAAuB,CAAC;AAAA,IACxB,QAAQ;AAAA,IACR,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { copyColorData } from "@makeswift/controls";
|
|
2
|
+
import { getBorderPropControllerDataSwatchIds } from "@makeswift/prop-controllers";
|
|
2
3
|
import { PropController } from "../prop-controllers/base";
|
|
3
4
|
const StyleControlType = "makeswift::controls::style";
|
|
4
5
|
const StyleControlProperty = {
|
|
@@ -48,6 +49,9 @@ class StyleControl extends PropController {
|
|
|
48
49
|
recv() {
|
|
49
50
|
}
|
|
50
51
|
}
|
|
52
|
+
function getStyleSwatchIds(data) {
|
|
53
|
+
return getBorderPropControllerDataSwatchIds(data.border);
|
|
54
|
+
}
|
|
51
55
|
function copyStyleData(value, context) {
|
|
52
56
|
if (value == null)
|
|
53
57
|
return value;
|
|
@@ -85,6 +89,7 @@ export {
|
|
|
85
89
|
StyleControlMessageType,
|
|
86
90
|
StyleControlProperty,
|
|
87
91
|
StyleControlType,
|
|
88
|
-
copyStyleData
|
|
92
|
+
copyStyleData,
|
|
93
|
+
getStyleSwatchIds
|
|
89
94
|
};
|
|
90
95
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":"AAAA,SAAoB,qBAAsC;AAO1D,SAAS,sBAAsB;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,eAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,cAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { getBorderPropControllerDataSwatchIds } from '@makeswift/prop-controllers'\n\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function getStyleSwatchIds(data: StyleControlData): string[] {\n return getBorderPropControllerDataSwatchIds(data.border)\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":"AAAA,SAAoB,qBAAsC;AAC1D,SAAS,4CAA4C;AAQrD,SAAS,sBAAsB;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,eAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,kBAAkB,MAAkC;AAClE,SAAO,qCAAqC,KAAK,MAAM;AACzD;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,cAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
|
package/dist/esm/jest-setup.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import "@testing-library/jest-dom";
|
|
2
2
|
import { matchers } from "@emotion/jest";
|
|
3
|
+
import { server } from "./mocks/server";
|
|
4
|
+
beforeAll(() => server.listen());
|
|
5
|
+
afterEach(() => server.resetHandlers());
|
|
6
|
+
afterAll(() => server.close());
|
|
3
7
|
expect.extend(matchers);
|
|
4
8
|
if (typeof window !== "undefined") {
|
|
5
9
|
Object.defineProperty(window, "matchMedia", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\n\nexpect.extend(matchers)\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":"AAAA,OAAO;AACP,SAAS,gBAAgB;
|
|
1
|
+
{"version":3,"sources":["../../src/jest-setup.ts"],"sourcesContent":["import '@testing-library/jest-dom'\nimport { matchers } from '@emotion/jest'\nimport { server } from './mocks/server'\n\nbeforeAll(() => server.listen())\nafterEach(() => server.resetHandlers())\nafterAll(() => server.close())\n\nexpect.extend(matchers)\n\nif (typeof window !== 'undefined') {\n Object.defineProperty(window, 'matchMedia', {\n writable: true,\n value: jest.fn().mockImplementation(query => ({\n matches: false,\n media: query,\n onchange: null,\n addListener: jest.fn(), // deprecated\n removeListener: jest.fn(), // deprecated\n addEventListener: jest.fn(),\n removeEventListener: jest.fn(),\n dispatchEvent: jest.fn(),\n })),\n })\n\n Object.defineProperty(window, 'IntersectionObserver', {\n writable: true,\n value: jest.fn().mockImplementation(() => ({\n observe: jest.fn(),\n unobserve: jest.fn(),\n disconnect: jest.fn(),\n })),\n })\n}\n"],"mappings":"AAAA,OAAO;AACP,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAEvB,UAAU,MAAM,OAAO,OAAO,CAAC;AAC/B,UAAU,MAAM,OAAO,cAAc,CAAC;AACtC,SAAS,MAAM,OAAO,MAAM,CAAC;AAE7B,OAAO,OAAO,QAAQ;AAEtB,IAAI,OAAO,WAAW,aAAa;AACjC,SAAO,eAAe,QAAQ,cAAc;AAAA,IAC1C,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,YAAU;AAAA,MAC5C,SAAS;AAAA,MACT,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa,KAAK,GAAG;AAAA;AAAA,MACrB,gBAAgB,KAAK,GAAG;AAAA;AAAA,MACxB,kBAAkB,KAAK,GAAG;AAAA,MAC1B,qBAAqB,KAAK,GAAG;AAAA,MAC7B,eAAe,KAAK,GAAG;AAAA,IACzB,EAAE;AAAA,EACJ,CAAC;AAED,SAAO,eAAe,QAAQ,wBAAwB;AAAA,IACpD,UAAU;AAAA,IACV,OAAO,KAAK,GAAG,EAAE,mBAAmB,OAAO;AAAA,MACzC,SAAS,KAAK,GAAG;AAAA,MACjB,WAAW,KAAK,GAAG;AAAA,MACnB,YAAY,KAAK,GAAG;AAAA,IACtB,EAAE;AAAA,EACJ,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/mocks/server.ts"],"sourcesContent":["import { setupServer } from 'msw/node'\n\nexport const server = setupServer()\n"],"mappings":"AAAA,SAAS,mBAAmB;AAErB,MAAM,SAAS,YAAY;","names":[]}
|
|
@@ -13,7 +13,7 @@ async function handler(...args) {
|
|
|
13
13
|
const supportsPreviewMode = match(args).with(routeHandlerPattern, () => false).with(apiRoutePattern, () => true).exhaustive();
|
|
14
14
|
const supportsDraftMode = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
|
|
15
15
|
const body = {
|
|
16
|
-
version: "0.19.2
|
|
16
|
+
version: "0.19.2",
|
|
17
17
|
previewMode: supportsPreviewMode,
|
|
18
18
|
draftMode: supportsDraftMode,
|
|
19
19
|
interactionMode: true,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useRef } from "react";
|
|
3
|
+
import { act } from "react-dom/test-utils";
|
|
4
|
+
import { render, screen } from "@testing-library/react";
|
|
5
|
+
import "@testing-library/jest-dom";
|
|
6
|
+
import { Page } from "../../page";
|
|
7
|
+
import { ReactRuntimeProvider } from "../../../context/react-runtime";
|
|
8
|
+
import { ReactRuntime } from "../../../../react";
|
|
9
|
+
import {
|
|
10
|
+
createMakeswiftPageSnapshot,
|
|
11
|
+
createRootComponent
|
|
12
|
+
} from "../../../../utils/tests/element-data-test-test";
|
|
13
|
+
const ROOT_ID = "00000000-0000-0000-0000-000000000000";
|
|
14
|
+
const ELEMENT_ID = "11111111-1111-1111-1111-111111111111";
|
|
15
|
+
async function testPageControlPropRendering(controlDefinition, {
|
|
16
|
+
toData,
|
|
17
|
+
value,
|
|
18
|
+
cacheData,
|
|
19
|
+
expectedRenders
|
|
20
|
+
}) {
|
|
21
|
+
const controlData = toData(value);
|
|
22
|
+
const TestComponentType = "TestComponent";
|
|
23
|
+
const testId = "test-id";
|
|
24
|
+
const renderCountTestId = "render-count-test-id";
|
|
25
|
+
const elementData = createRootComponent(
|
|
26
|
+
[
|
|
27
|
+
{
|
|
28
|
+
key: ELEMENT_ID,
|
|
29
|
+
type: TestComponentType,
|
|
30
|
+
props: {
|
|
31
|
+
propKey: controlData
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
ROOT_ID
|
|
36
|
+
);
|
|
37
|
+
const snapshot = createMakeswiftPageSnapshot(elementData, {}, cacheData);
|
|
38
|
+
const runtime = new ReactRuntime();
|
|
39
|
+
runtime.registerComponent(
|
|
40
|
+
forwardRef(({ propKey }, ref) => {
|
|
41
|
+
const renderCount = useRef(0);
|
|
42
|
+
++renderCount.current;
|
|
43
|
+
return /* @__PURE__ */ jsxs("div", { ref, children: [
|
|
44
|
+
/* @__PURE__ */ jsx("div", { "data-testid": renderCountTestId, children: renderCount.current }),
|
|
45
|
+
/* @__PURE__ */ jsx("div", { "data-testid": testId, children: JSON.stringify(propKey) })
|
|
46
|
+
] });
|
|
47
|
+
}),
|
|
48
|
+
{
|
|
49
|
+
type: TestComponentType,
|
|
50
|
+
label: "TestComponent",
|
|
51
|
+
props: {
|
|
52
|
+
propKey: controlDefinition
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
await act(
|
|
57
|
+
async () => render(
|
|
58
|
+
/* @__PURE__ */ jsx(ReactRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(Page, { snapshot }) })
|
|
59
|
+
)
|
|
60
|
+
);
|
|
61
|
+
expect(snapshot).toMatchSnapshot("snapshot");
|
|
62
|
+
expect(JSON.parse(screen.getByTestId(testId).textContent ?? "")).toMatchSnapshot("resolvedValue");
|
|
63
|
+
if (expectedRenders != null) {
|
|
64
|
+
expect(Number(screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export {
|
|
68
|
+
testPageControlPropRendering
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=page-control-prop-rendering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/next/components/tests/controls/page-control-prop-rendering.tsx"],"sourcesContent":["/** @jest-environment jsdom */\n\nimport { forwardRef, useRef } from 'react'\nimport { act } from 'react-dom/test-utils'\nimport { render, screen } from '@testing-library/react'\nimport '@testing-library/jest-dom'\n\nimport { Data } from '@makeswift/controls'\n\nimport { ElementData } from '../../../../state/react-page'\nimport { Page } from '../../page'\nimport { ReactRuntimeProvider } from '../../../context/react-runtime'\nimport { ReactRuntime } from '../../../../react'\n\nimport {\n createMakeswiftPageSnapshot,\n createRootComponent,\n} from '../../../../utils/tests/element-data-test-test'\n\nimport { type MakeswiftPageSnapshot } from '../../../../next'\nimport { ControlDefinition, ControlDefinitionData } from '../../../../controls'\n\nconst ROOT_ID = '00000000-0000-0000-0000-000000000000'\nconst ELEMENT_ID = '11111111-1111-1111-1111-111111111111'\n\nexport async function testPageControlPropRendering<T extends ControlDefinition>(\n controlDefinition: T,\n {\n toData,\n value,\n cacheData,\n expectedRenders,\n }: {\n toData: (value: Data) => ControlDefinitionData<T>\n value: Data\n cacheData?: MakeswiftPageSnapshot['cacheData']\n expectedRenders?: number\n },\n) {\n // Arrange\n const controlData = toData(value)\n const TestComponentType = 'TestComponent'\n const testId = 'test-id'\n const renderCountTestId = 'render-count-test-id'\n const elementData: ElementData = createRootComponent(\n [\n {\n key: ELEMENT_ID,\n type: TestComponentType,\n props: {\n propKey: controlData,\n },\n },\n ],\n ROOT_ID,\n )\n const snapshot = createMakeswiftPageSnapshot(elementData, {}, cacheData)\n const runtime = new ReactRuntime()\n\n // Act\n runtime.registerComponent(\n forwardRef<HTMLDivElement, { propKey?: any }>(({ propKey }, ref) => {\n const renderCount = useRef(0)\n ++renderCount.current\n return (\n <div ref={ref}>\n <div data-testid={renderCountTestId}>{renderCount.current}</div>\n <div data-testid={testId}>{JSON.stringify(propKey)}</div>\n </div>\n )\n }),\n {\n type: TestComponentType,\n label: 'TestComponent',\n props: {\n propKey: controlDefinition,\n },\n },\n )\n\n // Assert\n await act(async () =>\n render(\n <ReactRuntimeProvider runtime={runtime}>\n <Page snapshot={snapshot} />\n </ReactRuntimeProvider>,\n ),\n )\n\n expect(snapshot).toMatchSnapshot('snapshot')\n expect(JSON.parse(screen.getByTestId(testId).textContent ?? '')).toMatchSnapshot('resolvedValue')\n\n if (expectedRenders != null) {\n expect(Number(screen.getByTestId(renderCountTestId).textContent)).toBe(expectedRenders)\n }\n}\n"],"mappings":"AAiEQ,SACE,KADF;AA/DR,SAAS,YAAY,cAAc;AACnC,SAAS,WAAW;AACpB,SAAS,QAAQ,cAAc;AAC/B,OAAO;AAKP,SAAS,YAAY;AACrB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAE7B;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAKP,MAAM,UAAU;AAChB,MAAM,aAAa;AAEnB,eAAsB,6BACpB,mBACA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAMA;AAEA,QAAM,cAAc,OAAO,KAAK;AAChC,QAAM,oBAAoB;AAC1B,QAAM,SAAS;AACf,QAAM,oBAAoB;AAC1B,QAAM,cAA2B;AAAA,IAC/B;AAAA,MACE;AAAA,QACE,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,UACL,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,4BAA4B,aAAa,CAAC,GAAG,SAAS;AACvE,QAAM,UAAU,IAAI,aAAa;AAGjC,UAAQ;AAAA,IACN,WAA8C,CAAC,EAAE,QAAQ,GAAG,QAAQ;AAClE,YAAM,cAAc,OAAO,CAAC;AAC5B,QAAE,YAAY;AACd,aACE,qBAAC,SAAI,KACH;AAAA,4BAAC,SAAI,eAAa,mBAAoB,sBAAY,SAAQ;AAAA,QAC1D,oBAAC,SAAI,eAAa,QAAS,eAAK,UAAU,OAAO,GAAE;AAAA,SACrD;AAAA,IAEJ,CAAC;AAAA,IACD;AAAA,MACE,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,QACL,SAAS;AAAA,MACX;AAAA,IACF;AAAA,EACF;AAGA,QAAM;AAAA,IAAI,YACR;AAAA,MACE,oBAAC,wBAAqB,SACpB,8BAAC,QAAK,UAAoB,GAC5B;AAAA,IACF;AAAA,EACF;AAEA,SAAO,QAAQ,EAAE,gBAAgB,UAAU;AAC3C,SAAO,KAAK,MAAM,OAAO,YAAY,MAAM,EAAE,eAAe,EAAE,CAAC,EAAE,gBAAgB,eAAe;AAEhG,MAAI,mBAAmB,MAAM;AAC3B,WAAO,OAAO,OAAO,YAAY,iBAAiB,EAAE,WAAW,CAAC,EAAE,KAAK,eAAe;AAAA,EACxF;AACF;","names":[]}
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
getShapePageIds,
|
|
11
11
|
getShapeSwatchIds,
|
|
12
12
|
getShapeTypographyIds,
|
|
13
|
+
getStyleSwatchIds,
|
|
13
14
|
getTypographySwatchIds,
|
|
14
15
|
getTypographyTypographyIds,
|
|
15
16
|
ImageControlType,
|
|
@@ -18,6 +19,7 @@ import {
|
|
|
18
19
|
RichTextControlType,
|
|
19
20
|
ShapeControlType,
|
|
20
21
|
SlotControlType,
|
|
22
|
+
StyleControlType,
|
|
21
23
|
StyleV2ControlType,
|
|
22
24
|
TypographyControlType
|
|
23
25
|
} from "../controls";
|
|
@@ -111,6 +113,9 @@ function getSwatchIds(descriptor, prop) {
|
|
|
111
113
|
case TypographyControlType: {
|
|
112
114
|
return getTypographySwatchIds(prop);
|
|
113
115
|
}
|
|
116
|
+
case StyleControlType: {
|
|
117
|
+
return getStyleSwatchIds(prop);
|
|
118
|
+
}
|
|
114
119
|
case StyleV2ControlType: {
|
|
115
120
|
const value = prop;
|
|
116
121
|
return value?.flatMap((value2) => getSwatchIds(descriptor.config.type, value2.value)) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { Descriptor } from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n getListElementChildren,\n getListFileIds,\n getListPageIds,\n getListSwatchIds,\n getListTypographyIds,\n getShapeElementChildren,\n getShapeFileIds,\n getShapePageIds,\n getShapeSwatchIds,\n getShapeTypographyIds,\n getTypographySwatchIds,\n getTypographyTypographyIds,\n ImageControlData,\n ImageControlType,\n LinkControlData,\n LinkControlType,\n ListControlData,\n ListControlType,\n RichTextControlData,\n RichTextControlType,\n RichTextValue,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n StyleV2ControlData,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlType,\n} from '../controls'\nimport {\n getRichTextPageIds,\n getRichTextSwatchIds,\n getRichTextTypographyIds,\n} from '../controls/rich-text/introspection'\nimport {\n getRichTextV2PageIds,\n getRichTextV2SwatchIds,\n getRichTextV2TypographyIds,\n} from '../controls/rich-text-v2/introspection'\nimport {\n RichTextV2ControlType,\n RichTextV2ControlData,\n isRichTextV1Data,\n} from '../controls/rich-text-v2/rich-text-v2'\nimport { match, P } from 'ts-pattern'\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSawtchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n return getShapeElementChildren(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListElementChildren(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSawtchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextSwatchIds(prop as RichTextValue)\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n case TypographyControlType: {\n return getTypographySwatchIds(prop as TypographyControlData[number])\n }\n\n case StyleV2ControlType: {\n const value = prop as StyleV2ControlData\n\n return value?.flatMap(value => getSwatchIds(descriptor.config.type, value.value)) ?? []\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextSwatchIds(data)\n\n return getRichTextV2SwatchIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeSwatchIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListSwatchIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return match(value)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file' }, f => [f.id])\n .with({ type: 'external-file' }, () => [])\n .otherwise(() => [])\n }\n\n case ShapeControlType: {\n return getShapeFileIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListFileIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case TypographyControlType: {\n return getTypographyTypographyIds(prop as TypographyControlData[number])\n }\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextTypographyIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextTypographyIds(data)\n\n return getRichTextV2TypographyIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeTypographyIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListTypographyIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case LinkControlType: {\n const value = prop as LinkControlData\n\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextPageIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextPageIds(data)\n\n return getRichTextV2PageIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapePageIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListPageIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":["value"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/prop-controllers/introspection.ts"],"sourcesContent":["import { Descriptor } from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n getListElementChildren,\n getListFileIds,\n getListPageIds,\n getListSwatchIds,\n getListTypographyIds,\n getShapeElementChildren,\n getShapeFileIds,\n getShapePageIds,\n getShapeSwatchIds,\n getShapeTypographyIds,\n getStyleSwatchIds,\n getTypographySwatchIds,\n getTypographyTypographyIds,\n ImageControlData,\n ImageControlType,\n LinkControlData,\n LinkControlType,\n ListControlData,\n ListControlType,\n RichTextControlData,\n RichTextControlType,\n RichTextValue,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n StyleControlData,\n StyleControlType,\n StyleV2ControlData,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlType,\n} from '../controls'\nimport {\n getRichTextPageIds,\n getRichTextSwatchIds,\n getRichTextTypographyIds,\n} from '../controls/rich-text/introspection'\nimport {\n getRichTextV2PageIds,\n getRichTextV2SwatchIds,\n getRichTextV2TypographyIds,\n} from '../controls/rich-text-v2/introspection'\nimport {\n RichTextV2ControlType,\n RichTextV2ControlData,\n isRichTextV1Data,\n} from '../controls/rich-text-v2/rich-text-v2'\nimport { match, P } from 'ts-pattern'\nimport {\n getLinkPropControllerPageIds,\n getResponsiveColorPropControllerDataSawtchIds,\n getShadowsPropControllerDataSwatchIds,\n LinkPropControllerData,\n Types as PropControllerTypes,\n ResponsiveColorData,\n ShadowsPropControllerData,\n getBorderPropControllerDataSwatchIds,\n TablePropControllerData,\n getTablePropControllerDataTableIds,\n getNavigationLinksPropControllerPageIds,\n NavigationLinksPropControllerData,\n getNavigationLinksPropControllerSwatchIds,\n BorderPropControllerData,\n getElementIDPropControllerDataElementID,\n ElementIDPropControllerData,\n getGridPropControllerElementChildren,\n GridPropControllerData,\n getImagePropControllerFileIds,\n ImagePropControllerData,\n getImagesPropControllerFileIds,\n ImagesPropControllerData,\n getBackgroundsPropControllerFileIds,\n getBackgroundsPropControllerSwatchIds,\n BackgroundsPropControllerData,\n} from '@makeswift/prop-controllers'\nimport { DELETED_PROP_CONTROLLER_TYPES } from './deleted'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Grid:\n return getGridPropControllerElementChildren(prop as GridPropControllerData | undefined)\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n return getShapeElementChildren(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListElementChildren(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case PropControllerTypes.ElementID:\n return getElementIDPropControllerDataElementID(prop as ElementIDPropControllerData) ?? null\n\n default:\n return null\n }\n}\n\nexport function getSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerSwatchIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Border:\n return getBorderPropControllerDataSwatchIds(prop as BorderPropControllerData)\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerSwatchIds(prop as NavigationLinksPropControllerData)\n }\n\n case PropControllerTypes.ResponsiveColor:\n return getResponsiveColorPropControllerDataSawtchIds(prop as ResponsiveColorData)\n\n case PropControllerTypes.Shadows:\n return getShadowsPropControllerDataSwatchIds(prop as ShadowsPropControllerData)\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextSwatchIds(prop as RichTextValue)\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n case TypographyControlType: {\n return getTypographySwatchIds(prop as TypographyControlData[number])\n }\n\n case StyleControlType: {\n return getStyleSwatchIds(prop as StyleControlData)\n }\n\n case StyleV2ControlType: {\n const value = prop as StyleV2ControlData\n\n return value?.flatMap(value => getSwatchIds(descriptor.config.type, value.value)) ?? []\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextSwatchIds(data)\n\n return getRichTextV2SwatchIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeSwatchIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListSwatchIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Backgrounds:\n return getBackgroundsPropControllerFileIds(prop as BackgroundsPropControllerData)\n\n case PropControllerTypes.Image: {\n return getImagePropControllerFileIds(prop as ImagePropControllerData)\n }\n\n case PropControllerTypes.Images: {\n return getImagesPropControllerFileIds(prop as ImagesPropControllerData)\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return match(value)\n .with(P.string, f => [f])\n .with({ type: 'makeswift-file' }, f => [f.id])\n .with({ type: 'external-file' }, () => [])\n .otherwise(() => [])\n }\n\n case ShapeControlType: {\n return getShapeFileIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListFileIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case TypographyControlType: {\n return getTypographyTypographyIds(prop as TypographyControlData[number])\n }\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextTypographyIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextTypographyIds(data)\n\n return getRichTextV2TypographyIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapeTypographyIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListTypographyIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Table: {\n return getTablePropControllerDataTableIds(prop as TablePropControllerData)\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case PropControllerTypes.Link: {\n return getLinkPropControllerPageIds(prop as LinkPropControllerData)\n }\n\n case LinkControlType: {\n const value = prop as LinkControlData\n\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case PropControllerTypes.NavigationLinks: {\n return getNavigationLinksPropControllerPageIds(prop as NavigationLinksPropControllerData)\n }\n\n case RichTextControlType:\n case DELETED_PROP_CONTROLLER_TYPES.RichText: {\n return getRichTextPageIds(prop as RichTextControlData)\n }\n\n case RichTextV2ControlType: {\n const data = prop as RichTextV2ControlData | RichTextControlData\n\n if (isRichTextV1Data(data)) return getRichTextPageIds(data)\n\n return getRichTextV2PageIds(descriptor, data)\n }\n\n case ShapeControlType: {\n return getShapePageIds(descriptor, prop as ShapeControlData)\n }\n\n case ListControlType: {\n return getListPageIds(descriptor, prop as ListControlData)\n }\n\n default:\n return []\n }\n}\n"],"mappings":"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","names":["value"]}
|
|
@@ -20,7 +20,7 @@ function createRootComponent(elements, rootId) {
|
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
}
|
|
23
|
-
function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}) {
|
|
23
|
+
function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}, cacheData = {}) {
|
|
24
24
|
return {
|
|
25
25
|
document: {
|
|
26
26
|
id: "test-page-id",
|
|
@@ -35,7 +35,7 @@ function createMakeswiftPageSnapshot(elementData, partialSnapshot = {}) {
|
|
|
35
35
|
...partialSnapshot.document
|
|
36
36
|
},
|
|
37
37
|
apiOrigin: "https://test-api-origin.com",
|
|
38
|
-
cacheData
|
|
38
|
+
cacheData,
|
|
39
39
|
preview: false,
|
|
40
40
|
localizedResourcesMap: {},
|
|
41
41
|
locale: null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/utils/tests/element-data-test-test.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport { MakeswiftPageSnapshot } from '../../next'\nimport { ElementData } from '../../state/react-page'\nimport { MakeswiftComponentType } from '../../components'\n\nexport function createRootComponent(elements: ElementData[], rootId?: string) {\n return {\n key: rootId ?? randomUUID(),\n type: MakeswiftComponentType.Root,\n props: {\n children: {\n columns: [\n {\n deviceId: 'desktop',\n value: {\n count: 12,\n spans: elements?.map(() => [12]),\n },\n },\n ],\n elements,\n },\n },\n }\n}\n\nexport function createMakeswiftPageSnapshot(\n elementData: ElementData,\n partialSnapshot: Partial<MakeswiftPageSnapshot> = {},\n): MakeswiftPageSnapshot {\n return {\n document: {\n id: 'test-page-id',\n site: { id: 'test-site-id' },\n data: elementData,\n snippets: [],\n fonts: [],\n meta: {},\n seo: {},\n localizedPages: [],\n locale: null,\n ...partialSnapshot.document,\n },\n apiOrigin: 'https://test-api-origin.com',\n cacheData
|
|
1
|
+
{"version":3,"sources":["../../../../src/utils/tests/element-data-test-test.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport { MakeswiftPageSnapshot } from '../../next'\nimport { ElementData } from '../../state/react-page'\nimport { MakeswiftComponentType } from '../../components'\n\nexport function createRootComponent(elements: ElementData[], rootId?: string) {\n return {\n key: rootId ?? randomUUID(),\n type: MakeswiftComponentType.Root,\n props: {\n children: {\n columns: [\n {\n deviceId: 'desktop',\n value: {\n count: 12,\n spans: elements?.map(() => [12]),\n },\n },\n ],\n elements,\n },\n },\n }\n}\n\nexport function createMakeswiftPageSnapshot(\n elementData: ElementData,\n partialSnapshot: Partial<MakeswiftPageSnapshot> = {},\n cacheData: MakeswiftPageSnapshot['cacheData'] = {},\n): MakeswiftPageSnapshot {\n return {\n document: {\n id: 'test-page-id',\n site: { id: 'test-site-id' },\n data: elementData,\n snippets: [],\n fonts: [],\n meta: {},\n seo: {},\n localizedPages: [],\n locale: null,\n ...partialSnapshot.document,\n },\n apiOrigin: 'https://test-api-origin.com',\n cacheData,\n preview: false,\n localizedResourcesMap: {},\n locale: null,\n ...partialSnapshot,\n }\n}\n"],"mappings":"AAAA,SAAS,kBAAkB;AAG3B,SAAS,8BAA8B;AAEhC,SAAS,oBAAoB,UAAyB,QAAiB;AAC5E,SAAO;AAAA,IACL,KAAK,UAAU,WAAW;AAAA,IAC1B,MAAM,uBAAuB;AAAA,IAC7B,OAAO;AAAA,MACL,UAAU;AAAA,QACR,SAAS;AAAA,UACP;AAAA,YACE,UAAU;AAAA,YACV,OAAO;AAAA,cACL,OAAO;AAAA,cACP,OAAO,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC;AAAA,YACjC;AAAA,UACF;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,4BACd,aACA,kBAAkD,CAAC,GACnD,YAAgD,CAAC,GAC1B;AACvB,SAAO;AAAA,IACL,UAAU;AAAA,MACR,IAAI;AAAA,MACJ,MAAM,EAAE,IAAI,eAAe;AAAA,MAC3B,MAAM;AAAA,MACN,UAAU,CAAC;AAAA,MACX,OAAO,CAAC;AAAA,MACR,MAAM,CAAC;AAAA,MACP,KAAK,CAAC;AAAA,MACN,gBAAgB,CAAC;AAAA,MACjB,QAAQ;AAAA,MACR,GAAG,gBAAgB;AAAA,IACrB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,SAAS;AAAA,IACT,uBAAuB,CAAC;AAAA,IACxB,QAAQ;AAAA,IACR,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -173,6 +173,7 @@ export declare class StyleControl extends PropController<StyleControlMessage> {
|
|
|
173
173
|
changeBoxModel(boxModel: BoxModel | null): void;
|
|
174
174
|
recv(): void;
|
|
175
175
|
}
|
|
176
|
+
export declare function getStyleSwatchIds(data: StyleControlData): string[];
|
|
176
177
|
export declare function copyStyleData(value: StyleControlData | undefined, context: CopyContext): StyleControlData | undefined;
|
|
177
178
|
export {};
|
|
178
179
|
//# sourceMappingURL=style.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/controls/style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,eAAe,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../../src/controls/style.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mocks/server.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,uCAAgB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-control.test.d.ts","sourceRoot":"","sources":["../../../../../../src/next/components/tests/controls/checkbox-control.test.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkbox-control.test.d.ts","sourceRoot":"","sources":["../../../../../../src/next/components/tests/controls/checkbox-control.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-control.test.d.ts","sourceRoot":"","sources":["../../../../../../src/next/components/tests/controls/color-control.test.tsx"],"names":[],"mappings":"AAAA,8BAA8B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @jest-environment jsdom */
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { Data } from '@makeswift/controls';
|
|
4
|
+
import { type MakeswiftPageSnapshot } from '../../../../next';
|
|
5
|
+
import { ControlDefinition, ControlDefinitionData } from '../../../../controls';
|
|
6
|
+
export declare function testPageControlPropRendering<T extends ControlDefinition>(controlDefinition: T, { toData, value, cacheData, expectedRenders, }: {
|
|
7
|
+
toData: (value: Data) => ControlDefinitionData<T>;
|
|
8
|
+
value: Data;
|
|
9
|
+
cacheData?: MakeswiftPageSnapshot['cacheData'];
|
|
10
|
+
expectedRenders?: number;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=page-control-prop-rendering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"page-control-prop-rendering.d.ts","sourceRoot":"","sources":["../../../../../../src/next/components/tests/controls/page-control-prop-rendering.tsx"],"names":[],"mappings":"AAAA,8BAA8B;AAK9B,OAAO,2BAA2B,CAAA;AAElC,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAY1C,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAK/E,wBAAsB,4BAA4B,CAAC,CAAC,SAAS,iBAAiB,EAC5E,iBAAiB,EAAE,CAAC,EACpB,EACE,MAAM,EACN,KAAK,EACL,SAAS,EACT,eAAe,GAChB,EAAE;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,qBAAqB,CAAC,CAAC,CAAC,CAAA;IACjD,KAAK,EAAE,IAAI,CAAA;IACX,SAAS,CAAC,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,iBA0DF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../../src/prop-controllers/introspection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../../src/prop-controllers/introspection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAkFnD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,IAAI,EAC/C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,OAAO,EAAE,CA0BX;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EACzC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,YAAY,CAAC,CAAC,SAAS,IAAI,EACzC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,EAAE,CA8DV;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,IAAI,EACvC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,EAAE,CAmCV;AAED,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,IAAI,EAC7C,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,EAAE,CA+BV;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,IAAI,EACxC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,EAAE,CAWV;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,IAAI,EACvC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,EACzB,IAAI,EAAE,CAAC,GAAG,SAAS,GAClB,MAAM,EAAE,CAkDV"}
|
|
@@ -16,5 +16,5 @@ export declare function createRootComponent(elements: ElementData[], rootId?: st
|
|
|
16
16
|
};
|
|
17
17
|
};
|
|
18
18
|
};
|
|
19
|
-
export declare function createMakeswiftPageSnapshot(elementData: ElementData, partialSnapshot?: Partial<MakeswiftPageSnapshot
|
|
19
|
+
export declare function createMakeswiftPageSnapshot(elementData: ElementData, partialSnapshot?: Partial<MakeswiftPageSnapshot>, cacheData?: MakeswiftPageSnapshot['cacheData']): MakeswiftPageSnapshot;
|
|
20
20
|
//# sourceMappingURL=element-data-test-test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element-data-test-test.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/element-data-test-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;EAmB3E;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,eAAe,GAAE,OAAO,CAAC,qBAAqB,CAAM,
|
|
1
|
+
{"version":3,"file":"element-data-test-test.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/element-data-test-test.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGpD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;EAmB3E;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,eAAe,GAAE,OAAO,CAAC,qBAAqB,CAAM,EACpD,SAAS,GAAE,qBAAqB,CAAC,WAAW,CAAM,GACjD,qBAAqB,CAqBvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@makeswift/runtime",
|
|
3
|
-
"version": "0.19.2
|
|
3
|
+
"version": "0.19.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -139,8 +139,8 @@
|
|
|
139
139
|
"uuid": "^9.0.0",
|
|
140
140
|
"zod": "^3.21.4",
|
|
141
141
|
"@makeswift/controls": "0.0.1",
|
|
142
|
-
"@makeswift/
|
|
143
|
-
"@makeswift/
|
|
142
|
+
"@makeswift/next-plugin": "0.3.0",
|
|
143
|
+
"@makeswift/prop-controllers": "0.3.0"
|
|
144
144
|
},
|
|
145
145
|
"devDependencies": {
|
|
146
146
|
"@emotion/jest": "^11.11.0",
|
|
@@ -172,7 +172,8 @@
|
|
|
172
172
|
"slate-hyperscript": "^0.77.0",
|
|
173
173
|
"slate-react": "^0.91.7",
|
|
174
174
|
"tsup": "^8.0.1",
|
|
175
|
-
"typescript": "^5.1.6"
|
|
175
|
+
"typescript": "^5.1.6",
|
|
176
|
+
"undici": "^6.19.2"
|
|
176
177
|
},
|
|
177
178
|
"scripts": {
|
|
178
179
|
"dev": "concurrently -k 'tsc --watch --preserveWatchOutput' 'tsup --watch'",
|