meno-core 1.0.48 → 1.0.50
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/build-astro.ts +6 -2
- package/dist/build-static.js +7 -7
- package/dist/chunks/{chunk-D5E3OKSL.js → chunk-56EUSC6D.js} +5 -5
- package/dist/chunks/{chunk-3FHJUHAS.js → chunk-7NIC4I3V.js} +300 -43
- package/dist/chunks/chunk-7NIC4I3V.js.map +7 -0
- package/dist/chunks/{chunk-B2RTLDXY.js → chunk-AZQYF6KE.js} +132 -1
- package/dist/chunks/chunk-AZQYF6KE.js.map +7 -0
- package/dist/chunks/{chunk-TPQ7APVQ.js → chunk-CVLFID6V.js} +473 -73
- package/dist/chunks/chunk-CVLFID6V.js.map +7 -0
- package/dist/chunks/{chunk-NP76N4HQ.js → chunk-EDQSMAMP.js} +13 -2
- package/dist/chunks/{chunk-NP76N4HQ.js.map → chunk-EDQSMAMP.js.map} +2 -2
- package/dist/chunks/{chunk-RQSTH2BS.js → chunk-H4JSCDNW.js} +2 -2
- package/dist/chunks/{chunk-EK4KESLU.js → chunk-J23ZX5AP.js} +8 -2
- package/dist/chunks/{chunk-EK4KESLU.js.map → chunk-J23ZX5AP.js.map} +2 -2
- package/dist/chunks/{chunk-UUA5LEWF.js → chunk-LPVETICS.js} +156 -8
- package/dist/chunks/chunk-LPVETICS.js.map +7 -0
- package/dist/chunks/{chunk-BJRKEPMP.js → chunk-PQ2HRXDR.js} +5 -2
- package/dist/chunks/chunk-PQ2HRXDR.js.map +7 -0
- package/dist/chunks/{chunk-NKUV77SR.js → chunk-YWJJD5D6.js} +133 -37
- package/dist/chunks/chunk-YWJJD5D6.js.map +7 -0
- package/dist/chunks/{configService-IGJEC3MC.js → configService-VOY2MY2K.js} +3 -3
- package/dist/entries/server-router.js +9 -9
- package/dist/entries/server-router.js.map +2 -2
- package/dist/lib/client/index.js +92 -32
- package/dist/lib/client/index.js.map +3 -3
- package/dist/lib/server/index.js +14 -12
- package/dist/lib/server/index.js.map +2 -2
- package/dist/lib/shared/index.js +46 -10
- package/dist/lib/shared/index.js.map +3 -3
- package/entries/server-router.tsx +6 -2
- package/lib/client/core/ComponentBuilder.test.ts +34 -0
- package/lib/client/core/ComponentBuilder.ts +33 -4
- package/lib/client/core/builders/embedBuilder.ts +28 -7
- package/lib/client/core/builders/linkNodeBuilder.ts +28 -7
- package/lib/client/core/builders/localeListBuilder.ts +30 -11
- package/lib/client/styles/StyleInjector.ts +3 -2
- package/lib/client/templateEngine.ts +24 -0
- package/lib/client/theme.ts +4 -4
- package/lib/server/cssGenerator.test.ts +64 -1
- package/lib/server/cssGenerator.ts +48 -9
- package/lib/server/fileWatcher.test.ts +134 -0
- package/lib/server/fileWatcher.ts +100 -32
- package/lib/server/jsonLoader.ts +1 -0
- package/lib/server/providers/fileSystemCMSProvider.test.ts +163 -0
- package/lib/server/providers/fileSystemCMSProvider.ts +240 -19
- package/lib/server/routes/index.ts +1 -1
- package/lib/server/routes/pages.ts +23 -1
- package/lib/server/services/cmsService.test.ts +246 -0
- package/lib/server/services/cmsService.ts +122 -5
- package/lib/server/services/configService.ts +6 -0
- package/lib/server/services/fileWatcherService.ts +17 -0
- package/lib/server/ssr/attributeBuilder.ts +41 -0
- package/lib/server/ssr/htmlGenerator.test.ts +113 -0
- package/lib/server/ssr/htmlGenerator.ts +62 -7
- package/lib/server/ssr/liveReloadIntegration.test.ts +209 -0
- package/lib/server/ssr/ssrRenderer.test.ts +564 -0
- package/lib/server/ssr/ssrRenderer.ts +228 -49
- package/lib/server/webflow/buildWebflow.ts +1 -1
- package/lib/server/websocketManager.test.ts +61 -6
- package/lib/server/websocketManager.ts +25 -1
- package/lib/shared/cssGeneration.test.ts +267 -1
- package/lib/shared/cssGeneration.ts +240 -18
- package/lib/shared/cssProperties.test.ts +275 -1
- package/lib/shared/cssProperties.ts +223 -7
- package/lib/shared/interfaces/contentProvider.ts +39 -6
- package/lib/shared/pathSecurity.ts +16 -0
- package/lib/shared/responsiveScaling.test.ts +143 -0
- package/lib/shared/responsiveScaling.ts +253 -2
- package/lib/shared/themeDefaults.test.ts +3 -3
- package/lib/shared/themeDefaults.ts +3 -3
- package/lib/shared/types/api.ts +10 -1
- package/lib/shared/types/cms.ts +46 -12
- package/lib/shared/types/index.ts +1 -0
- package/lib/shared/utilityClassConfig.ts +3 -0
- package/lib/shared/utilityClassMapper.test.ts +123 -0
- package/lib/shared/utilityClassMapper.ts +179 -8
- package/lib/shared/validation/schemas.test.ts +93 -0
- package/lib/shared/validation/schemas.ts +71 -16
- package/lib/shared/validation/validators.ts +26 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-3FHJUHAS.js.map +0 -7
- package/dist/chunks/chunk-B2RTLDXY.js.map +0 -7
- package/dist/chunks/chunk-BJRKEPMP.js.map +0 -7
- package/dist/chunks/chunk-NKUV77SR.js.map +0 -7
- package/dist/chunks/chunk-TPQ7APVQ.js.map +0 -7
- package/dist/chunks/chunk-UUA5LEWF.js.map +0 -7
- /package/dist/chunks/{chunk-D5E3OKSL.js.map → chunk-56EUSC6D.js.map} +0 -0
- /package/dist/chunks/{chunk-RQSTH2BS.js.map → chunk-H4JSCDNW.js.map} +0 -0
- /package/dist/chunks/{configService-IGJEC3MC.js.map → configService-VOY2MY2K.js.map} +0 -0
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_BREAKPOINTS,
|
|
3
|
+
DEFAULT_FLUID_RANGE,
|
|
3
4
|
DEFAULT_I18N_CONFIG,
|
|
5
|
+
SCALABLE_CSS_PROPERTIES,
|
|
4
6
|
applyRemConversion,
|
|
7
|
+
buildFluidClampWithExplicitMin,
|
|
8
|
+
buildFluidPropertyValue,
|
|
5
9
|
convertPxToRem,
|
|
6
10
|
getBreakpointName,
|
|
7
11
|
getBreakpointValues,
|
|
8
12
|
getScaleMultiplier,
|
|
13
|
+
getSmallestBreakpointName,
|
|
9
14
|
isI18nValue,
|
|
15
|
+
parseValue,
|
|
10
16
|
resolveI18nInProps,
|
|
11
17
|
resolveI18nValue,
|
|
12
18
|
scalePropertyValue,
|
|
13
19
|
shouldConvertProperty
|
|
14
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-AZQYF6KE.js";
|
|
15
21
|
import {
|
|
16
22
|
isTiptapDocument,
|
|
17
23
|
tiptapToHtml
|
|
@@ -28,16 +34,25 @@ import {
|
|
|
28
34
|
|
|
29
35
|
// lib/shared/validation/schemas.ts
|
|
30
36
|
import { z } from "zod";
|
|
31
|
-
var BasePropTypeSchema, PropTypeSchema, BasePropDefinitionSchema, EnumsConfigSchema, ListItemSchemaSchema, ListPropDefinitionSchema, PropDefinitionSchema, StyleMappingSchema, BooleanMappingSchema, IfConditionSchema, LinkMappingSchema, HtmlMappingSchema, StyleObjectSchema, ResponsiveStyleObjectSchema, StyleValueSchema, InteractiveStyleRuleSchema, InteractiveStylesSchema, SlotMarkerSchema, ComponentNodeSchema, HtmlNodeSchema, ComponentInstanceNodeSchema, EmbedNodeSchema, LinkNodeSchema, LocaleListNodeSchema, ListNodeSchemaBasic, ScriptLoadModeSchema, LibraryPositionSchema, ScriptTypeSchema, JSLibraryConfigSchema, CSSLibraryConfigSchema, LibrariesConfigSchema, StructuredComponentDefinitionSchema, ComponentDefinitionSchema, I18nOrStringSchema, LibraryMergeModeSchema, PageLibrariesConfigSchema, CustomCodeConfigSchema, PageMetaDataBaseSchema, PageMetaDataSchema, LineRangeSchema, JSONPageSchema, PageDataWithComponentSchema, PageDataSchema, CMSFieldTypeSchema, CMSFieldDefinitionSchema, CMSClientDataStrategySchema, CMSClientDataConfigSchema, CMSSchemaSchema, CMSItemSchema, CMSFilterConditionSchema, CMSSortConfigSchema, CMSListQuerySchema, CMSListNodeSchema, PageCmsConfigSchema, PageMetaDataWithCMSSchema;
|
|
37
|
+
var BasePropTypeSchema, PropTypeSchema, I18nValueObjectSchema, BasePropDefinitionSchema, EnumsConfigSchema, ListItemSchemaSchema, ListPropDefinitionSchema, PropDefinitionSchema, StyleMappingSchema, BooleanMappingSchema, IfConditionSchema, LinkMappingSchema, HtmlMappingSchema, StyleObjectSchema, ResponsiveStyleObjectSchema, StyleValueSchema, InteractiveStyleRuleSchema, InteractiveStylesSchema, SlotMarkerSchema, ComponentNodeSchema, HtmlNodeSchema, ComponentInstanceNodeSchema, EmbedNodeSchema, LinkNodeSchema, LocaleListNodeSchema, ListNodeSchemaBasic, ScriptLoadModeSchema, LibraryPositionSchema, ScriptTypeSchema, JSLibraryConfigSchema, CSSLibraryConfigSchema, LibrariesConfigSchema, StructuredComponentDefinitionSchema, ComponentDefinitionSchema, I18nOrStringSchema, LibraryMergeModeSchema, PageLibrariesConfigSchema, CustomCodeConfigSchema, PageMetaDataBaseSchema, PageMetaDataSchema, LineRangeSchema, JSONPageSchema, PageDataWithComponentSchema, PageDataSchema, CMSFieldTypeSchema, CMSFieldDefinitionSchema, CMSClientDataStrategySchema, CMSClientDataConfigSchema, CMSSchemaSchema, CMSItemSchema, CMSDraftItemSchema, CMSFilterConditionSchema, CMSSortConfigSchema, CMSListQuerySchema, CMSListNodeSchema, PageCmsConfigSchema, PageMetaDataWithCMSSchema;
|
|
32
38
|
var init_schemas = __esm({
|
|
33
39
|
"lib/shared/validation/schemas.ts"() {
|
|
34
40
|
"use strict";
|
|
35
41
|
init_constants();
|
|
36
42
|
BasePropTypeSchema = z.enum(["string", "select", "boolean", "number", "link", "file", "rich-text", "embed"]);
|
|
37
43
|
PropTypeSchema = z.enum(["string", "select", "boolean", "number", "link", "file", "rich-text", "embed", "list"]);
|
|
44
|
+
I18nValueObjectSchema = z.object({
|
|
45
|
+
_i18n: z.literal(true)
|
|
46
|
+
}).passthrough();
|
|
38
47
|
BasePropDefinitionSchema = z.object({
|
|
39
48
|
type: BasePropTypeSchema,
|
|
40
|
-
default: z.union([
|
|
49
|
+
default: z.union([
|
|
50
|
+
z.string(),
|
|
51
|
+
z.number(),
|
|
52
|
+
z.boolean(),
|
|
53
|
+
z.object({ href: z.string(), target: z.string().optional() }),
|
|
54
|
+
I18nValueObjectSchema
|
|
55
|
+
]).optional(),
|
|
41
56
|
options: z.array(z.string()).readonly().optional(),
|
|
42
57
|
enumName: z.string().optional(),
|
|
43
58
|
// For 'select' type: reference to project-level enum
|
|
@@ -51,7 +66,16 @@ var init_schemas = __esm({
|
|
|
51
66
|
ListPropDefinitionSchema = z.object({
|
|
52
67
|
type: z.literal("list"),
|
|
53
68
|
itemSchema: ListItemSchemaSchema,
|
|
54
|
-
|
|
69
|
+
// List-item field values can be any primitive, a link object, an `_i18n`
|
|
70
|
+
// object (resolved by the SSR pipeline), or null.
|
|
71
|
+
default: z.array(z.record(z.string(), z.union([
|
|
72
|
+
z.string(),
|
|
73
|
+
z.number(),
|
|
74
|
+
z.boolean(),
|
|
75
|
+
z.object({ href: z.string(), target: z.string().optional() }),
|
|
76
|
+
I18nValueObjectSchema,
|
|
77
|
+
z.null()
|
|
78
|
+
]))).optional()
|
|
55
79
|
}).passthrough();
|
|
56
80
|
PropDefinitionSchema = z.union([
|
|
57
81
|
ListPropDefinitionSchema,
|
|
@@ -113,8 +137,9 @@ var init_schemas = __esm({
|
|
|
113
137
|
SlotMarkerSchema = z.lazy(() => z.object({
|
|
114
138
|
type: z.literal(NODE_TYPE.SLOT),
|
|
115
139
|
default: z.union([
|
|
116
|
-
z.array(z.union([ComponentNodeSchema, z.string()])),
|
|
117
|
-
z.string()
|
|
140
|
+
z.array(z.union([ComponentNodeSchema, z.string(), I18nValueObjectSchema])),
|
|
141
|
+
z.string(),
|
|
142
|
+
I18nValueObjectSchema
|
|
118
143
|
]).optional()
|
|
119
144
|
}).passthrough());
|
|
120
145
|
HtmlNodeSchema = z.lazy(() => z.object({
|
|
@@ -125,12 +150,13 @@ var init_schemas = __esm({
|
|
|
125
150
|
style: StyleValueSchema.optional(),
|
|
126
151
|
interactiveStyles: InteractiveStylesSchema.optional(),
|
|
127
152
|
generateElementClass: z.boolean().optional(),
|
|
128
|
-
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
|
|
153
|
+
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), I18nValueObjectSchema])).optional(),
|
|
129
154
|
props: z.record(z.string(), z.any()).optional(),
|
|
130
155
|
// Allow props for backward compatibility
|
|
131
156
|
children: z.union([
|
|
132
|
-
z.array(z.union([ComponentNodeSchema, z.string()])),
|
|
133
|
-
z.string()
|
|
157
|
+
z.array(z.union([ComponentNodeSchema, z.string(), I18nValueObjectSchema])),
|
|
158
|
+
z.string(),
|
|
159
|
+
I18nValueObjectSchema
|
|
134
160
|
]).optional()
|
|
135
161
|
}).passthrough());
|
|
136
162
|
ComponentInstanceNodeSchema = z.lazy(() => z.object({
|
|
@@ -142,34 +168,36 @@ var init_schemas = __esm({
|
|
|
142
168
|
style: StyleValueSchema.optional(),
|
|
143
169
|
interactiveStyles: InteractiveStylesSchema.optional(),
|
|
144
170
|
generateElementClass: z.boolean().optional(),
|
|
145
|
-
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
|
|
171
|
+
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), I18nValueObjectSchema])).optional(),
|
|
146
172
|
children: z.union([
|
|
147
|
-
z.array(z.union([ComponentNodeSchema, z.string()])),
|
|
148
|
-
z.string()
|
|
173
|
+
z.array(z.union([ComponentNodeSchema, z.string(), I18nValueObjectSchema])),
|
|
174
|
+
z.string(),
|
|
175
|
+
I18nValueObjectSchema
|
|
149
176
|
]).optional()
|
|
150
177
|
}).passthrough());
|
|
151
178
|
EmbedNodeSchema = z.lazy(() => z.object({
|
|
152
179
|
type: z.literal(NODE_TYPE.EMBED),
|
|
153
|
-
html: z.union([z.string(), HtmlMappingSchema]),
|
|
180
|
+
html: z.union([z.string(), HtmlMappingSchema, I18nValueObjectSchema]),
|
|
154
181
|
label: z.string().optional(),
|
|
155
182
|
if: IfConditionSchema.optional(),
|
|
156
183
|
style: StyleValueSchema.optional(),
|
|
157
184
|
interactiveStyles: InteractiveStylesSchema.optional(),
|
|
158
185
|
generateElementClass: z.boolean().optional(),
|
|
159
|
-
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional()
|
|
186
|
+
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), I18nValueObjectSchema])).optional()
|
|
160
187
|
}).passthrough());
|
|
161
188
|
LinkNodeSchema = z.lazy(() => z.object({
|
|
162
189
|
type: z.literal(NODE_TYPE.LINK),
|
|
163
|
-
href: z.union([z.string(), LinkMappingSchema]),
|
|
190
|
+
href: z.union([z.string(), LinkMappingSchema, I18nValueObjectSchema]),
|
|
164
191
|
label: z.string().optional(),
|
|
165
192
|
if: IfConditionSchema.optional(),
|
|
166
193
|
style: StyleValueSchema.optional(),
|
|
167
194
|
interactiveStyles: InteractiveStylesSchema.optional(),
|
|
168
195
|
generateElementClass: z.boolean().optional(),
|
|
169
|
-
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional(),
|
|
196
|
+
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), I18nValueObjectSchema])).optional(),
|
|
170
197
|
children: z.union([
|
|
171
|
-
z.array(z.union([ComponentNodeSchema, z.string()])),
|
|
172
|
-
z.string()
|
|
198
|
+
z.array(z.union([ComponentNodeSchema, z.string(), I18nValueObjectSchema])),
|
|
199
|
+
z.string(),
|
|
200
|
+
I18nValueObjectSchema
|
|
173
201
|
]).optional()
|
|
174
202
|
}).passthrough());
|
|
175
203
|
LocaleListNodeSchema = z.lazy(() => z.object({
|
|
@@ -186,7 +214,7 @@ var init_schemas = __esm({
|
|
|
186
214
|
showSeparator: z.boolean().optional(),
|
|
187
215
|
showFlag: z.boolean().optional(),
|
|
188
216
|
flagStyle: StyleValueSchema.optional(),
|
|
189
|
-
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).optional()
|
|
217
|
+
attributes: z.record(z.string(), z.union([z.string(), z.number(), z.boolean(), I18nValueObjectSchema])).optional()
|
|
190
218
|
}).passthrough());
|
|
191
219
|
ListNodeSchemaBasic = z.lazy(() => z.object({
|
|
192
220
|
type: z.union([z.literal(NODE_TYPE.LIST), z.literal("cms-list")]),
|
|
@@ -208,7 +236,7 @@ var init_schemas = __esm({
|
|
|
208
236
|
offset: z.number().optional(),
|
|
209
237
|
excludeCurrentItem: z.boolean().optional(),
|
|
210
238
|
emitTemplate: z.boolean().optional(),
|
|
211
|
-
children: z.array(z.union([ComponentNodeSchema, z.string()])).optional()
|
|
239
|
+
children: z.array(z.union([ComponentNodeSchema, z.string(), I18nValueObjectSchema])).optional()
|
|
212
240
|
}).passthrough());
|
|
213
241
|
ComponentNodeSchema = z.union([
|
|
214
242
|
HtmlNodeSchema,
|
|
@@ -361,6 +389,12 @@ var init_schemas = __esm({
|
|
|
361
389
|
_filename: z.string().optional(),
|
|
362
390
|
_createdAt: z.string().optional()
|
|
363
391
|
}).passthrough();
|
|
392
|
+
CMSDraftItemSchema = z.object({
|
|
393
|
+
_id: z.string().optional(),
|
|
394
|
+
_slug: z.string().optional(),
|
|
395
|
+
_filename: z.string().optional(),
|
|
396
|
+
_createdAt: z.string().optional()
|
|
397
|
+
}).passthrough();
|
|
364
398
|
CMSFilterConditionSchema = z.object({
|
|
365
399
|
field: z.string(),
|
|
366
400
|
operator: z.enum(["eq", "neq", "gt", "gte", "lt", "lte", "contains", "in"]).optional(),
|
|
@@ -1867,6 +1901,24 @@ function validateCMSItem(data) {
|
|
|
1867
1901
|
};
|
|
1868
1902
|
}
|
|
1869
1903
|
}
|
|
1904
|
+
function validateCMSDraftItem(data) {
|
|
1905
|
+
try {
|
|
1906
|
+
const result = CMSDraftItemSchema.safeParse(data);
|
|
1907
|
+
if (result.success) {
|
|
1908
|
+
return { valid: true, data: result.data };
|
|
1909
|
+
}
|
|
1910
|
+
return { valid: false, errors: zodToValidationErrors(result.error) };
|
|
1911
|
+
} catch (error) {
|
|
1912
|
+
return {
|
|
1913
|
+
valid: false,
|
|
1914
|
+
errors: [{
|
|
1915
|
+
path: "root",
|
|
1916
|
+
message: error instanceof Error ? error.message : "Unknown validation error",
|
|
1917
|
+
code: "UNKNOWN"
|
|
1918
|
+
}]
|
|
1919
|
+
};
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1870
1922
|
|
|
1871
1923
|
// lib/shared/types/cms.ts
|
|
1872
1924
|
var IRREGULAR_PLURALS = {
|
|
@@ -3020,6 +3072,8 @@ var prefixToCSSProperty = {
|
|
|
3020
3072
|
lst: "list-style",
|
|
3021
3073
|
lstt: "list-style-type",
|
|
3022
3074
|
lstp: "list-style-position",
|
|
3075
|
+
// Display
|
|
3076
|
+
d: "display",
|
|
3023
3077
|
// Flexbox
|
|
3024
3078
|
fd: "flex-direction",
|
|
3025
3079
|
jc: "justify-content",
|
|
@@ -3254,6 +3308,17 @@ function isStyleMapping(value) {
|
|
|
3254
3308
|
function sanitizeClassValue(value) {
|
|
3255
3309
|
return value.replace(/\s+/g, "-").replace(/[()]/g, "").replace(/,/g, "_").replace(/%/g, "p").replace(/\./g, "d").replace(/[^\w-]/g, "");
|
|
3256
3310
|
}
|
|
3311
|
+
function shortHash(input) {
|
|
3312
|
+
let hash = 2166136261;
|
|
3313
|
+
for (let i = 0; i < input.length; i++) {
|
|
3314
|
+
hash ^= input.charCodeAt(i);
|
|
3315
|
+
hash = Math.imul(hash, 16777619);
|
|
3316
|
+
}
|
|
3317
|
+
return (hash >>> 0).toString(36);
|
|
3318
|
+
}
|
|
3319
|
+
function hasIllegalClassChars(className) {
|
|
3320
|
+
return /[^\w-]/.test(className);
|
|
3321
|
+
}
|
|
3257
3322
|
function propertyValueToClass(prop, value) {
|
|
3258
3323
|
const prefix = propertyMap[prop];
|
|
3259
3324
|
if (!prefix) {
|
|
@@ -3331,6 +3396,9 @@ function propertyValueToClass(prop, value) {
|
|
|
3331
3396
|
if (!className) {
|
|
3332
3397
|
className = `${prefix}-${stringValue}`;
|
|
3333
3398
|
}
|
|
3399
|
+
if (hasIllegalClassChars(className)) {
|
|
3400
|
+
className = `${prefix}-h${shortHash(stringValue)}`;
|
|
3401
|
+
}
|
|
3334
3402
|
registerStyleValue(className, value);
|
|
3335
3403
|
return className;
|
|
3336
3404
|
}
|
|
@@ -3355,24 +3423,85 @@ function stylesToClasses(styles) {
|
|
|
3355
3423
|
}
|
|
3356
3424
|
return classes;
|
|
3357
3425
|
}
|
|
3358
|
-
|
|
3426
|
+
var CONTAINER_RESERVED_VALUES = /* @__PURE__ */ new Set(["auto", "inherit", "initial", "unset", ""]);
|
|
3427
|
+
function transformContainerIntent(style) {
|
|
3428
|
+
const w = style.width;
|
|
3429
|
+
const mw = style.maxWidth;
|
|
3430
|
+
if (w == null || mw == null) return style;
|
|
3431
|
+
if (typeof w !== "string" || typeof mw !== "string") return style;
|
|
3432
|
+
if (w !== mw) return style;
|
|
3433
|
+
if (CONTAINER_RESERVED_VALUES.has(w.trim())) return style;
|
|
3434
|
+
return {
|
|
3435
|
+
...style,
|
|
3436
|
+
width: "calc(100% - var(--site-margin) * 2)",
|
|
3437
|
+
marginLeft: "auto",
|
|
3438
|
+
marginRight: "auto"
|
|
3439
|
+
};
|
|
3440
|
+
}
|
|
3441
|
+
function consumeMobileIntoBaseClamp(base, mobile, responsiveScales) {
|
|
3442
|
+
const fluidRange = responsiveScales.fluidRange ?? DEFAULT_FLUID_RANGE;
|
|
3443
|
+
const patchedBase = { ...base };
|
|
3444
|
+
const patchedMobile = { ...mobile };
|
|
3445
|
+
for (const prop of Object.keys(base)) {
|
|
3446
|
+
if (!SCALABLE_CSS_PROPERTIES.has(prop)) continue;
|
|
3447
|
+
const mobileRaw = mobile[prop];
|
|
3448
|
+
if (mobileRaw == null || mobileRaw === "") continue;
|
|
3449
|
+
const baseRaw = base[prop];
|
|
3450
|
+
if (baseRaw == null || baseRaw === "") continue;
|
|
3451
|
+
if (typeof baseRaw !== "string" && typeof baseRaw !== "number") continue;
|
|
3452
|
+
if (typeof mobileRaw !== "string" && typeof mobileRaw !== "number") continue;
|
|
3453
|
+
const baseParsed = parseValue(String(baseRaw));
|
|
3454
|
+
const mobileParsed = parseValue(String(mobileRaw));
|
|
3455
|
+
if (!baseParsed || !mobileParsed) continue;
|
|
3456
|
+
if (baseParsed.unit !== mobileParsed.unit) continue;
|
|
3457
|
+
if (baseParsed.unit === "%" || baseParsed.unit === "em") continue;
|
|
3458
|
+
const clampValue = buildFluidClampWithExplicitMin(
|
|
3459
|
+
mobileParsed.value,
|
|
3460
|
+
baseParsed.value,
|
|
3461
|
+
baseParsed.unit,
|
|
3462
|
+
fluidRange.min,
|
|
3463
|
+
fluidRange.max
|
|
3464
|
+
);
|
|
3465
|
+
patchedBase[prop] = clampValue;
|
|
3466
|
+
delete patchedMobile[prop];
|
|
3467
|
+
}
|
|
3468
|
+
return { patchedBase, patchedMobile };
|
|
3469
|
+
}
|
|
3470
|
+
function responsiveStylesToClasses(styles, options) {
|
|
3359
3471
|
if (!styles) return [];
|
|
3472
|
+
const fluidActive = options?.fluidActive === true;
|
|
3473
|
+
const responsiveScales = options?.responsiveScales;
|
|
3360
3474
|
const classes = [];
|
|
3361
3475
|
if ("base" in styles || "tablet" in styles || "mobile" in styles) {
|
|
3362
3476
|
const responsiveStyles = styles;
|
|
3363
|
-
|
|
3364
|
-
|
|
3477
|
+
let baseSource = responsiveStyles.base;
|
|
3478
|
+
let mobileSource = responsiveStyles.mobile;
|
|
3479
|
+
if (fluidActive && responsiveScales?.enabled === true && baseSource && mobileSource) {
|
|
3480
|
+
const { patchedBase, patchedMobile } = consumeMobileIntoBaseClamp(
|
|
3481
|
+
baseSource,
|
|
3482
|
+
mobileSource,
|
|
3483
|
+
responsiveScales
|
|
3484
|
+
);
|
|
3485
|
+
baseSource = patchedBase;
|
|
3486
|
+
mobileSource = patchedMobile;
|
|
3487
|
+
}
|
|
3488
|
+
if (baseSource) {
|
|
3489
|
+
const base = fluidActive ? transformContainerIntent(baseSource) : baseSource;
|
|
3490
|
+
classes.push(...stylesToClasses(base));
|
|
3365
3491
|
}
|
|
3366
3492
|
if (responsiveStyles.tablet) {
|
|
3367
|
-
const
|
|
3493
|
+
const tablet = fluidActive ? transformContainerIntent(responsiveStyles.tablet) : responsiveStyles.tablet;
|
|
3494
|
+
const tabletClasses = stylesToClasses(tablet);
|
|
3368
3495
|
classes.push(...tabletClasses.map((cls) => `t-${cls}`));
|
|
3369
3496
|
}
|
|
3370
|
-
if (
|
|
3371
|
-
const
|
|
3497
|
+
if (mobileSource && Object.keys(mobileSource).length > 0) {
|
|
3498
|
+
const mobile = fluidActive ? transformContainerIntent(mobileSource) : mobileSource;
|
|
3499
|
+
const mobileClasses = stylesToClasses(mobile);
|
|
3372
3500
|
classes.push(...mobileClasses.map((cls) => `mob-${cls}`));
|
|
3373
3501
|
}
|
|
3374
3502
|
} else {
|
|
3375
|
-
|
|
3503
|
+
const flat = fluidActive ? transformContainerIntent(styles) : styles;
|
|
3504
|
+
classes.push(...stylesToClasses(flat));
|
|
3376
3505
|
}
|
|
3377
3506
|
return classes;
|
|
3378
3507
|
}
|
|
@@ -3400,6 +3529,12 @@ function classToStyle(className) {
|
|
|
3400
3529
|
}
|
|
3401
3530
|
}
|
|
3402
3531
|
if (!prop) return null;
|
|
3532
|
+
if (/^h[0-9a-z]+$/.test(value)) {
|
|
3533
|
+
const registered = getStyleValue(cleanClass);
|
|
3534
|
+
if (registered != null) {
|
|
3535
|
+
return { prop, value: String(registered) };
|
|
3536
|
+
}
|
|
3537
|
+
}
|
|
3403
3538
|
if (value.includes("background") || value.includes("text") || value.includes("border")) {
|
|
3404
3539
|
return { prop, value: `var(--${value})` };
|
|
3405
3540
|
}
|
|
@@ -3643,7 +3778,7 @@ function convertComponentPathToPagePath(componentPath, componentInstancePath, co
|
|
|
3643
3778
|
}
|
|
3644
3779
|
|
|
3645
3780
|
// lib/shared/elementClassName.ts
|
|
3646
|
-
function
|
|
3781
|
+
function shortHash2(input) {
|
|
3647
3782
|
let hash = 5381;
|
|
3648
3783
|
for (let i = 0; i < input.length; i++) {
|
|
3649
3784
|
hash = (hash << 5) + hash ^ input.charCodeAt(i);
|
|
@@ -3660,7 +3795,7 @@ function generateElementClassName(ctx) {
|
|
|
3660
3795
|
return `${prefix}_${sanitizedFileName}_${sanitizeName(ctx.label)}`;
|
|
3661
3796
|
}
|
|
3662
3797
|
const pathString = pathToString(ctx.path);
|
|
3663
|
-
const hash =
|
|
3798
|
+
const hash = shortHash2(`${ctx.fileName}:${pathString}`);
|
|
3664
3799
|
return `${prefix}_${sanitizedFileName}_${hash}`;
|
|
3665
3800
|
}
|
|
3666
3801
|
function isElementClassName(className) {
|
|
@@ -4019,6 +4154,9 @@ function getClassPropertyOrder(className) {
|
|
|
4019
4154
|
function sortClassesByPropertyOrder(classes) {
|
|
4020
4155
|
return Array.from(classes).sort((a, b) => getClassPropertyOrder(a) - getClassPropertyOrder(b));
|
|
4021
4156
|
}
|
|
4157
|
+
function getResponsiveMode(scales) {
|
|
4158
|
+
return scales?.mode ?? "breakpoints";
|
|
4159
|
+
}
|
|
4022
4160
|
var AUTO_RESPONSIVE_TYPE_MAP = {
|
|
4023
4161
|
"padding": "padding",
|
|
4024
4162
|
"padding-left": "padding",
|
|
@@ -4115,12 +4253,30 @@ function extractPropertyAndValue(className) {
|
|
|
4115
4253
|
const classValue = className.substring(knownPrefix.length + 1);
|
|
4116
4254
|
const cssProp = prefixToCSSProperty[knownPrefix];
|
|
4117
4255
|
if (cssProp) {
|
|
4256
|
+
if (/^h[0-9a-z]+$/.test(classValue)) {
|
|
4257
|
+
return null;
|
|
4258
|
+
}
|
|
4118
4259
|
return { property: cssProp, value: classValue };
|
|
4119
4260
|
}
|
|
4120
4261
|
}
|
|
4121
4262
|
}
|
|
4122
4263
|
return null;
|
|
4123
4264
|
}
|
|
4265
|
+
function resolveScalablePropertyValue(className) {
|
|
4266
|
+
const direct = extractPropertyAndValue(className);
|
|
4267
|
+
if (direct) return direct;
|
|
4268
|
+
for (const knownPrefix of SORTED_PREFIXES) {
|
|
4269
|
+
if (!className.startsWith(knownPrefix + "-")) continue;
|
|
4270
|
+
const classValue = className.substring(knownPrefix.length + 1);
|
|
4271
|
+
if (!/^h[0-9a-z]+$/.test(classValue)) continue;
|
|
4272
|
+
const cssProp = prefixToCSSProperty[knownPrefix];
|
|
4273
|
+
if (!cssProp) continue;
|
|
4274
|
+
const registered = getStyleValue(className);
|
|
4275
|
+
if (registered == null || registered === "") continue;
|
|
4276
|
+
return { property: cssProp, value: String(registered) };
|
|
4277
|
+
}
|
|
4278
|
+
return null;
|
|
4279
|
+
}
|
|
4124
4280
|
function generateRuleForClass(className) {
|
|
4125
4281
|
if (utilityClassRules[className]) {
|
|
4126
4282
|
return utilityClassRules[className];
|
|
@@ -4253,6 +4409,80 @@ function generateRuleForClass(className) {
|
|
|
4253
4409
|
}
|
|
4254
4410
|
return `${cssProp}: ${value};`;
|
|
4255
4411
|
}
|
|
4412
|
+
function applyFluidToUtilityRule(rule, className, responsiveScales, breakpoints) {
|
|
4413
|
+
const propValue = resolveScalablePropertyValue(className);
|
|
4414
|
+
if (!propValue) return rule;
|
|
4415
|
+
const category = AUTO_RESPONSIVE_TYPE_MAP[propValue.property];
|
|
4416
|
+
if (!category) return rule;
|
|
4417
|
+
const scaleConfig = responsiveScales[category];
|
|
4418
|
+
if (!scaleConfig) return rule;
|
|
4419
|
+
const smallest = getSmallestBreakpointName(breakpoints);
|
|
4420
|
+
if (!smallest) return rule;
|
|
4421
|
+
const scale = scaleConfig[smallest];
|
|
4422
|
+
if (scale == null || scale === 1) return rule;
|
|
4423
|
+
const range = responsiveScales.fluidRange ?? DEFAULT_FLUID_RANGE;
|
|
4424
|
+
const baseRef = responsiveScales.baseReference ?? 16;
|
|
4425
|
+
const fluidValue = buildFluidPropertyValue(
|
|
4426
|
+
propValue.value,
|
|
4427
|
+
scale,
|
|
4428
|
+
range.min,
|
|
4429
|
+
range.max,
|
|
4430
|
+
baseRef
|
|
4431
|
+
);
|
|
4432
|
+
if (!fluidValue) return rule;
|
|
4433
|
+
return `${propValue.property}: ${fluidValue};`;
|
|
4434
|
+
}
|
|
4435
|
+
function applyFluidToStyle(style, responsiveScales, breakpoints) {
|
|
4436
|
+
const range = responsiveScales.fluidRange ?? DEFAULT_FLUID_RANGE;
|
|
4437
|
+
const baseRef = responsiveScales.baseReference ?? 16;
|
|
4438
|
+
const smallest = getSmallestBreakpointName(breakpoints);
|
|
4439
|
+
if (!smallest) return style;
|
|
4440
|
+
const out = {};
|
|
4441
|
+
for (const [prop, value] of Object.entries(style)) {
|
|
4442
|
+
if (typeof value === "object" && value !== null && "_mapping" in value) {
|
|
4443
|
+
out[prop] = value;
|
|
4444
|
+
continue;
|
|
4445
|
+
}
|
|
4446
|
+
if (value == null || value === "") {
|
|
4447
|
+
out[prop] = value;
|
|
4448
|
+
continue;
|
|
4449
|
+
}
|
|
4450
|
+
const scale = getScaleMultiplier(
|
|
4451
|
+
responsiveScales,
|
|
4452
|
+
prop,
|
|
4453
|
+
smallest
|
|
4454
|
+
);
|
|
4455
|
+
if (scale == null || scale === 1) {
|
|
4456
|
+
out[prop] = value;
|
|
4457
|
+
continue;
|
|
4458
|
+
}
|
|
4459
|
+
const fluidValue = buildFluidPropertyValue(
|
|
4460
|
+
String(value),
|
|
4461
|
+
scale,
|
|
4462
|
+
range.min,
|
|
4463
|
+
range.max,
|
|
4464
|
+
baseRef
|
|
4465
|
+
);
|
|
4466
|
+
out[prop] = fluidValue ?? value;
|
|
4467
|
+
}
|
|
4468
|
+
return out;
|
|
4469
|
+
}
|
|
4470
|
+
var CONTAINER_RESERVED_VALUES2 = /* @__PURE__ */ new Set(["auto", "inherit", "initial", "unset", ""]);
|
|
4471
|
+
function applyContainerPattern(style, fluidActive) {
|
|
4472
|
+
if (!fluidActive) return style;
|
|
4473
|
+
const w = style.width;
|
|
4474
|
+
const mw = style.maxWidth;
|
|
4475
|
+
if (w == null || mw == null) return style;
|
|
4476
|
+
if (typeof w !== "string" || typeof mw !== "string") return style;
|
|
4477
|
+
if (w !== mw) return style;
|
|
4478
|
+
if (CONTAINER_RESERVED_VALUES2.has(w.trim())) return style;
|
|
4479
|
+
return {
|
|
4480
|
+
...style,
|
|
4481
|
+
width: "calc(100% - var(--site-margin) * 2)",
|
|
4482
|
+
marginLeft: "auto",
|
|
4483
|
+
marginRight: "auto"
|
|
4484
|
+
};
|
|
4485
|
+
}
|
|
4256
4486
|
function generateUtilityCSS(usedClasses, breakpoints = DEFAULT_BREAKPOINTS, responsiveScales, remConfig) {
|
|
4257
4487
|
const css = [];
|
|
4258
4488
|
const baseClasses = /* @__PURE__ */ new Set();
|
|
@@ -4286,7 +4516,7 @@ function generateUtilityCSS(usedClasses, breakpoints = DEFAULT_BREAKPOINTS, resp
|
|
|
4286
4516
|
if (!matched) {
|
|
4287
4517
|
baseClasses.add(className);
|
|
4288
4518
|
if (responsiveScales?.enabled) {
|
|
4289
|
-
const propValue =
|
|
4519
|
+
const propValue = resolveScalablePropertyValue(className);
|
|
4290
4520
|
if (propValue) {
|
|
4291
4521
|
const category = AUTO_RESPONSIVE_TYPE_MAP[propValue.property];
|
|
4292
4522
|
if (category && responsiveScales[category]) {
|
|
@@ -4296,18 +4526,23 @@ function generateUtilityCSS(usedClasses, breakpoints = DEFAULT_BREAKPOINTS, resp
|
|
|
4296
4526
|
}
|
|
4297
4527
|
}
|
|
4298
4528
|
}
|
|
4529
|
+
const mode = getResponsiveMode(responsiveScales);
|
|
4530
|
+
const fluidActive = responsiveScales?.enabled === true && mode === "fluid";
|
|
4299
4531
|
for (const className of sortClassesByPropertyOrder(baseClasses)) {
|
|
4300
|
-
|
|
4532
|
+
let rule = generateRuleForClass(className);
|
|
4301
4533
|
if (rule) {
|
|
4534
|
+
if (fluidActive && autoResponsiveClasses.has(className)) {
|
|
4535
|
+
rule = applyFluidToUtilityRule(rule, className, responsiveScales, breakpoints);
|
|
4536
|
+
}
|
|
4302
4537
|
const escapedClassName = escapeCSSClassName(className);
|
|
4303
4538
|
const finalRule = applyRemConversion(rule, remConfig);
|
|
4304
4539
|
css.push(`.${escapedClassName} { ${finalRule} }`);
|
|
4305
4540
|
}
|
|
4306
4541
|
}
|
|
4307
4542
|
const autoResponsiveMediaQueries = {};
|
|
4308
|
-
if (responsiveScales?.enabled) {
|
|
4543
|
+
if (responsiveScales?.enabled && !fluidActive) {
|
|
4309
4544
|
for (const className of autoResponsiveClasses) {
|
|
4310
|
-
const propValue =
|
|
4545
|
+
const propValue = resolveScalablePropertyValue(className);
|
|
4311
4546
|
if (!propValue) continue;
|
|
4312
4547
|
const category = AUTO_RESPONSIVE_TYPE_MAP[propValue.property];
|
|
4313
4548
|
if (!category) continue;
|
|
@@ -4392,13 +4627,21 @@ function generateSingleClassCSS(className, breakpoints = DEFAULT_BREAKPOINTS, re
|
|
|
4392
4627
|
}
|
|
4393
4628
|
}
|
|
4394
4629
|
if (!matched) {
|
|
4395
|
-
|
|
4630
|
+
let rule = generateRuleForClass(className);
|
|
4396
4631
|
if (!rule) return "";
|
|
4632
|
+
const mode = getResponsiveMode(responsiveScales);
|
|
4633
|
+
const fluidActive = responsiveScales?.enabled === true && mode === "fluid";
|
|
4634
|
+
if (fluidActive) {
|
|
4635
|
+
const propValue = resolveScalablePropertyValue(className);
|
|
4636
|
+
if (propValue && AUTO_RESPONSIVE_TYPE_MAP[propValue.property]) {
|
|
4637
|
+
rule = applyFluidToUtilityRule(rule, className, responsiveScales, breakpoints);
|
|
4638
|
+
}
|
|
4639
|
+
}
|
|
4397
4640
|
const escapedClassName = escapeCSSClassName(className);
|
|
4398
4641
|
const finalRule = applyRemConversion(rule, remConfig);
|
|
4399
4642
|
css.push(`.${escapedClassName} { ${finalRule} }`);
|
|
4400
|
-
if (responsiveScales?.enabled) {
|
|
4401
|
-
const propValue =
|
|
4643
|
+
if (responsiveScales?.enabled && !fluidActive) {
|
|
4644
|
+
const propValue = resolveScalablePropertyValue(className);
|
|
4402
4645
|
if (propValue) {
|
|
4403
4646
|
const category = AUTO_RESPONSIVE_TYPE_MAP[propValue.property];
|
|
4404
4647
|
if (category) {
|
|
@@ -4536,6 +4779,8 @@ function generateInteractiveCSS(elementClass, interactiveStyles, breakpoints = D
|
|
|
4536
4779
|
const css = [];
|
|
4537
4780
|
const breakpointValues = getBreakpointValues(breakpoints);
|
|
4538
4781
|
const scalingEnabled = responsiveScales?.enabled === true;
|
|
4782
|
+
const mode = getResponsiveMode(responsiveScales);
|
|
4783
|
+
const fluidActive = scalingEnabled && mode === "fluid";
|
|
4539
4784
|
for (const rule of interactiveStyles) {
|
|
4540
4785
|
const { prefix, postfix, style } = rule;
|
|
4541
4786
|
const fullSelector = `${prefix || ""}.${elementClass}${postfix || ""}`;
|
|
@@ -4545,7 +4790,12 @@ function generateInteractiveCSS(elementClass, interactiveStyles, breakpoints = D
|
|
|
4545
4790
|
if (isResponsiveStyle2(style)) {
|
|
4546
4791
|
const responsive = style;
|
|
4547
4792
|
if (responsive.base && Object.keys(responsive.base).length > 0) {
|
|
4548
|
-
|
|
4793
|
+
let baseStyle = responsive.base;
|
|
4794
|
+
if (fluidActive) {
|
|
4795
|
+
baseStyle = applyContainerPattern(baseStyle, true);
|
|
4796
|
+
baseStyle = applyFluidToStyle(baseStyle, responsiveScales, breakpoints);
|
|
4797
|
+
}
|
|
4798
|
+
const properties = applyRemConversion(styleObjectToCSS(baseStyle), remConfig);
|
|
4549
4799
|
if (properties) {
|
|
4550
4800
|
css.push(`${fullSelector} { ${properties}; }`);
|
|
4551
4801
|
}
|
|
@@ -4554,9 +4804,9 @@ function generateInteractiveCSS(elementClass, interactiveStyles, breakpoints = D
|
|
|
4554
4804
|
const explicit = responsive[breakpointName];
|
|
4555
4805
|
let merged = null;
|
|
4556
4806
|
if (explicit && Object.keys(explicit).length > 0) {
|
|
4557
|
-
merged = { ...explicit };
|
|
4807
|
+
merged = fluidActive ? applyContainerPattern({ ...explicit }, true) : { ...explicit };
|
|
4558
4808
|
}
|
|
4559
|
-
if (scalingEnabled && responsive.base) {
|
|
4809
|
+
if (scalingEnabled && !fluidActive && responsive.base) {
|
|
4560
4810
|
const scaled = scaleStyleForBreakpoint(
|
|
4561
4811
|
responsive.base,
|
|
4562
4812
|
responsiveScales,
|
|
@@ -4579,11 +4829,16 @@ function generateInteractiveCSS(elementClass, interactiveStyles, breakpoints = D
|
|
|
4579
4829
|
} else {
|
|
4580
4830
|
const flatStyle = style;
|
|
4581
4831
|
if (Object.keys(flatStyle).length > 0) {
|
|
4582
|
-
|
|
4832
|
+
let baseFlat = flatStyle;
|
|
4833
|
+
if (fluidActive) {
|
|
4834
|
+
baseFlat = applyContainerPattern(baseFlat, true);
|
|
4835
|
+
baseFlat = applyFluidToStyle(baseFlat, responsiveScales, breakpoints);
|
|
4836
|
+
}
|
|
4837
|
+
const properties = applyRemConversion(styleObjectToCSS(baseFlat), remConfig);
|
|
4583
4838
|
if (properties) {
|
|
4584
4839
|
css.push(`${fullSelector} { ${properties}; }`);
|
|
4585
4840
|
}
|
|
4586
|
-
if (scalingEnabled) {
|
|
4841
|
+
if (scalingEnabled && !fluidActive) {
|
|
4587
4842
|
for (const [breakpointName, breakpointValue] of sortedBreakpoints) {
|
|
4588
4843
|
const scaled = scaleStyleForBreakpoint(
|
|
4589
4844
|
flatStyle,
|
|
@@ -4665,6 +4920,7 @@ export {
|
|
|
4665
4920
|
validatePageMetaData,
|
|
4666
4921
|
validateCMSSchema,
|
|
4667
4922
|
validateCMSItem,
|
|
4923
|
+
validateCMSDraftItem,
|
|
4668
4924
|
singularize,
|
|
4669
4925
|
isItemDraftForLocale,
|
|
4670
4926
|
isItemFullyPublished,
|
|
@@ -4789,7 +5045,7 @@ export {
|
|
|
4789
5045
|
pathsEqual,
|
|
4790
5046
|
convertPagePathToComponentPath,
|
|
4791
5047
|
convertComponentPathToPagePath,
|
|
4792
|
-
shortHash,
|
|
5048
|
+
shortHash2 as shortHash,
|
|
4793
5049
|
generateElementClassName,
|
|
4794
5050
|
isElementClassName,
|
|
4795
5051
|
parseElementClassName,
|
|
@@ -4805,10 +5061,11 @@ export {
|
|
|
4805
5061
|
isCssNamedColor,
|
|
4806
5062
|
sortClassesByPropertyOrder,
|
|
4807
5063
|
generateRuleForClass,
|
|
5064
|
+
applyContainerPattern,
|
|
4808
5065
|
generateUtilityCSS,
|
|
4809
5066
|
generateSingleClassCSS,
|
|
4810
5067
|
extractUtilityClassesFromHTML,
|
|
4811
5068
|
generateInteractiveCSS,
|
|
4812
5069
|
generateAllInteractiveCSS
|
|
4813
5070
|
};
|
|
4814
|
-
//# sourceMappingURL=chunk-
|
|
5071
|
+
//# sourceMappingURL=chunk-7NIC4I3V.js.map
|