@ostack.tech/ui-kform-scaffolder 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,19 +16,52 @@
16
16
 
17
17
  .builder-header {
18
18
  display: flex;
19
- justify-content: space-between;
20
- column-gap: 1rem;
19
+ gap: 0.5rem 1rem;
21
20
  flex-wrap: wrap;
21
+ align-items: baseline;
22
+ position: sticky;
23
+ top: 1rem;
24
+ z-index: 1;
25
+ margin-bottom: 1rem;
26
+
27
+ > * {
28
+ position: relative;
29
+ display: inline-block;
30
+ isolation: isolate;
31
+
32
+ &::after {
33
+ content: "";
34
+ position: absolute;
35
+ inset: -0.35rem -0.35rem;
36
+ border-radius: 0.5rem;
37
+ pointer-events: none;
38
+
39
+ background: color-mix(in srgb, Canvas 70%, transparent);
40
+ backdrop-filter: blur(12px);
41
+ -webkit-backdrop-filter: blur(12px);
42
+
43
+ z-index: -1;
44
+ }
45
+ }
22
46
  }
23
47
 
24
48
  .builder-title {
25
- margin: 0 0 0.5rem;
49
+ margin: 0;
50
+ }
51
+
52
+ .builder-version {
53
+ opacity: 0.65;
54
+
55
+ &::before {
56
+ content: "v";
57
+ }
26
58
  }
27
59
 
28
60
  .builder-actions {
29
61
  display: inline-flex;
62
+ align-self: center;
30
63
  gap: 0.5rem;
31
- margin-bottom: 1.5rem;
64
+ margin-left: auto;
32
65
  }
33
66
 
34
67
  .builder {
@@ -232,6 +232,24 @@ function scaffoldField(schematic, data) {
232
232
  </ControlField>
233
233
  `;
234
234
  }
235
+ const jsonSerializerKt = "package <%= filePackage %>\n\nimport kotlin.js.JsExport\nimport kotlin.jvm.JvmOverloads\nimport kotlinx.serialization.json.Json\n\n/** Base JSON configuration. */\nprivate val JSON_CONFIG = Json.Default\n/** Pretty JSON configuration. */\nprivate val JSON_CONFIG_PRETTY = Json(JSON_CONFIG) { prettyPrint = true }\n\n/** JSON configuration. */\n@JvmOverloads\nfun jsonConfig(prettyPrint: Boolean = false): Json =\n if (prettyPrint) JSON_CONFIG_PRETTY else JSON_CONFIG\n\n<%_ if (includeSerializationFormatVersion) { -%>\n/** Version of the serialization format. */\n@JsExport\nconst val <%= formConstant %>_SERIALIZATION_VERSION = 1\n\n<%_ } -%>\n@JsExport\n@JvmOverloads\nfun encode<%= formClass %>ToString(<%= formVar %>: <%= formClass %>, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(<%= formVar %>)\n\n@JsExport\nfun decode<%= formClass %>FromString(json: String): <%= formClass %> =\n jsonConfig().decodeFromString(json)\n\n@JvmOverloads\nfun encode<%= formClass %>ExternalContextsToString(externalContexts: <%= formClass %>ExternalContexts, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(externalContexts)\n\n@JsExport\nfun decode<%= formClass %>ExternalContextsFromString(json: String): <%= formClass %>ExternalContexts =\n jsonConfig().decodeFromString(json)\n\n@JvmOverloads\nfun encode<%= formClass %>SubmitResponseToString(response: <%= formClass %>SubmitResponse, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(response)\n\n@JsExport\nfun decode<%= formClass %>SubmitResponseFromString(json: String): <%= formClass %>SubmitResponse =\n jsonConfig().decodeFromString(json)\n";
236
+ const xmlSerializerKt = "package <%= filePackage %>\n\nimport kotlin.js.JsExport\nimport kotlin.jvm.JvmOverloads\nimport kotlinx.serialization.decodeFromString\nimport kotlinx.serialization.encodeToString\nimport nl.adaptivity.xmlutil.ExperimentalXmlUtilApi\nimport nl.adaptivity.xmlutil.QName\nimport nl.adaptivity.xmlutil.XMLConstants\nimport nl.adaptivity.xmlutil.core.XmlVersion\nimport nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy\nimport nl.adaptivity.xmlutil.serialization.OutputKind\nimport nl.adaptivity.xmlutil.serialization.XML\nimport nl.adaptivity.xmlutil.serialization.XmlSerializationPolicy\nimport nl.adaptivity.xmlutil.serialization.structure.SafeParentInfo\n\n/** Base XML configuration. */\nprivate val XML_CONFIG = XML {\n recommended_0_91_0 {\n xmlVersion = XmlVersion.XML10\n autoPolymorphic = false\n encodeDefault = XmlSerializationPolicy.XmlEncodeDefault.NEVER\n }\n\n // Set policy on top of the current policy config\n @OptIn(ExperimentalXmlUtilApi::class)\n policy =\n object : DefaultXmlSerializationPolicy(policy) {\n // Serialize properties as elements instead of attributes by default\n override val defaultPrimitiveOutputKind: OutputKind = OutputKind.Element\n\n // Use property names as serial names by default\n override fun effectiveName(\n serializerParent: SafeParentInfo,\n tagParent: SafeParentInfo,\n outputKind: OutputKind,\n useName: XmlSerializationPolicy.DeclaredNameInfo,\n ): QName =\n useName.annotatedName\n ?: serializerParent.elementTypeDescriptor.typeQname\n ?: QName(\n if (outputKind == OutputKind.Element) tagParent.namespace.namespaceURI\n else XMLConstants.NULL_NS_URI,\n useName.serialName,\n )\n }\n}\n/** Pretty XML configuration. */\nprivate val XML_CONFIG_PRETTY = XML_CONFIG.copy { indent = 4 }\n\n/** XML configuration. */\n@JvmOverloads\nfun xmlConfig(prettyPrint: Boolean = false): XML =\n if (prettyPrint) XML_CONFIG_PRETTY else XML_CONFIG\n\n<%_ if (includeSerializationFormatVersion) { -%>\n/** Version of the serialization format. */\n@JsExport\nconst val <%= formConstant %>_SERIALIZATION_VERSION = 1\n\n<%_ } -%>\n@JsExport\n@JvmOverloads\nfun encode<%= formClass %>ToString(<%= formVar %>: <%= formClass %>, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(<%= formVar %>)\n\n@JsExport\nfun decode<%= formClass %>FromString(xml: String): <%= formClass %> =\n xmlConfig().decodeFromString(xml)\n\n@JvmOverloads\nfun encode<%= formClass %>ExternalContextsToString(externalContexts: <%= formClass %>ExternalContexts, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(externalContexts)\n\n@JsExport\nfun decode<%= formClass %>ExternalContextsFromString(xml: String): <%= formClass %>ExternalContexts =\n xmlConfig().decodeFromString(xml)\n\n@JvmOverloads\nfun encode<%= formClass %>SubmitResponseToString(response: <%= formClass %>SubmitResponse, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(response)\n\n@JsExport\nfun decode<%= formClass %>SubmitResponseFromString(xml: String): <%= formClass %>SubmitResponse =\n xmlConfig().decodeFromString(xml)\n";
237
+ const DEFAULT_INCLUDE_SERIALIZATION_FORMAT_VERSION = true;
238
+ function scaffoldSerializer(schematic, data) {
239
+ const ejsData = {
240
+ filePackage: data.currentPackage,
241
+ formVar: camelCase(schematic.name),
242
+ formClass: schematic.name,
243
+ formConstant: constantCase(schematic.name),
244
+ includeSerializationFormatVersion: data.includeSerializationFormatVersion ?? DEFAULT_INCLUDE_SERIALIZATION_FORMAT_VERSION
245
+ };
246
+ addEjsTemplateFile(
247
+ data,
248
+ `${schematic.name}Serializer.kt`,
249
+ data.serializationFormat === "xml" ? xmlSerializerKt : jsonSerializerKt,
250
+ ejsData
251
+ );
252
+ }
235
253
  function arrayify(value) {
236
254
  return value == null ? [] : Array.isArray(value) ? value : [value];
237
255
  }
@@ -273,38 +291,42 @@ const classSchematicKind = {
273
291
  if (data.currentPath !== "/") {
274
292
  return baseModel;
275
293
  }
276
- data.currentFile.imports.add("kotlin.js.ExperimentalJsStatic").add("kotlin.js.JsStatic").add("kotlinx.serialization.EncodeDefault").add("kotlinx.serialization.ExperimentalSerializationApi");
277
294
  const classAnnotations = [];
278
- const versionAnnotations = [
279
- "@EncodeDefault",
280
- "@OptIn(ExperimentalSerializationApi::class)"
281
- ];
295
+ let versionProperty = null;
282
296
  if (data.serializationFormat === "xml") {
283
- data.currentFile.imports.add("nl.adaptivity.xmlutil.serialization.XmlChildrenName").add("nl.adaptivity.xmlutil.serialization.XmlElement").add("nl.adaptivity.xmlutil.serialization.XmlSerialName");
284
- const defaultNamespace = `http://${data.currentPackage.split(".").reverse().join(".")}/schema/${(/* @__PURE__ */ new Date()).getFullYear()}`;
297
+ data.currentFile.imports.add(
298
+ "nl.adaptivity.xmlutil.serialization.XmlSerialName"
299
+ );
300
+ const namespace = data.xmlNamespace ?? `http://${data.currentPackage.split(".").reverse().join(".")}/schema/${(/* @__PURE__ */ new Date()).getFullYear()}`;
285
301
  classAnnotations.push(
286
- `@XmlSerialName("${schematic.name}", "${defaultNamespace}")`
302
+ `@XmlSerialName("${schematic.name}", "${namespace}")`
287
303
  );
288
- versionAnnotations.push("@XmlElement(false)");
289
- } else {
290
- data.currentFile.imports.add("kotlinx.serialization.SerialName");
291
- versionAnnotations.push('@SerialName($$"$version")');
292
304
  }
293
- return annotate(
294
- classAnnotations,
295
- `${baseModel} ${code`
296
- {
297
- ${annotate(versionAnnotations, `internal var version = ${constantCase(schematic.name)}_SERIALIZATION_VERSION`)}
298
-
299
- companion object {
300
- @OptIn(ExperimentalJsStatic::class)
301
- @JsStatic
302
- fun createInitialValue(externalContexts: ${schematic.name}ExternalContexts) =
303
- externalContexts.initialValue ?: ${schematic.name}()
305
+ if (data.includeSerializationFormatVersion ?? DEFAULT_INCLUDE_SERIALIZATION_FORMAT_VERSION) {
306
+ data.currentFile.imports.add("kotlinx.serialization.EncodeDefault").add("kotlinx.serialization.ExperimentalSerializationApi");
307
+ const versionAnnotations = [
308
+ "@EncodeDefault",
309
+ "@OptIn(ExperimentalSerializationApi::class)"
310
+ ];
311
+ if (data.serializationFormat === "xml") {
312
+ data.currentFile.imports.add(
313
+ "nl.adaptivity.xmlutil.serialization.XmlElement"
314
+ );
315
+ versionAnnotations.push("@XmlElement(false)");
316
+ } else {
317
+ data.currentFile.imports.add("kotlinx.serialization.SerialName");
318
+ versionAnnotations.push('@SerialName($$"$version")');
319
+ }
320
+ versionProperty = annotate(
321
+ versionAnnotations,
322
+ `internal var version = ${constantCase(schematic.name)}_SERIALIZATION_VERSION`
323
+ );
324
+ }
325
+ return annotate(classAnnotations, baseModel) + (versionProperty ? ` ${code`
326
+ {
327
+ ${versionProperty}
304
328
  }
305
- }
306
- `}`
307
- );
329
+ `}` : "");
308
330
  },
309
331
  scaffoldField: (schematic, data) => {
310
332
  data.currentFile.imports.push(
@@ -753,7 +775,6 @@ function scaffoldAppComponentFile(schematic, data) {
753
775
  { moduleName: "@ostack.tech/ui-kform", name: localeVar },
754
776
  { moduleName: "@ostack.tech/ui-kform", name: "IssuesPanel" },
755
777
  { moduleName: "react", name: "useMemo" },
756
- { moduleName: data.kmpModuleName, name: schematic.name },
757
778
  { moduleName: data.kmpModuleName, name: `${schematic.name}FormMode` },
758
779
  { moduleName: data.kmpModuleName, name: `${schematic.name}Schema` },
759
780
  { moduleName: `./api/reportError.ts`, name: "reportError" },
@@ -774,10 +795,11 @@ function scaffoldAppComponentFile(schematic, data) {
774
795
  return (
775
796
  <FormApp
776
797
  schema={${schematic.name}Schema.get()}
777
- initialValue={useMemo(
778
- () => ${schematic.name}.createInitialValue(externalContexts),
779
- [externalContexts],
780
- )}
798
+ initialValue={
799
+ externalContexts.mode !== ${schematic.name}FormMode.NEW
800
+ ? externalContexts.initialValue
801
+ : undefined
802
+ }
781
803
  externalContexts={useMemo(
782
804
  () => ktMapToObject(externalContexts.toMap()),
783
805
  [externalContexts],
@@ -955,7 +977,7 @@ function scaffoldGradleProject(schematic, data) {
955
977
  filePackage: data.currentPackage,
956
978
  formId: kebabCase(schematic.name),
957
979
  formTitle: capitalCase(schematic.name),
958
- kFormVersion: "0.31.6",
980
+ kFormVersion: "0.32.1",
959
981
  serializationFormat: data.serializationFormat ?? "json",
960
982
  includeKotlinxDatetime: data.includeKotlinxDatetime ?? usesKotlinxDatetime(schematic, data),
961
983
  includeKtMath: data.includeKtMath ?? usesKtMath(schematic),
@@ -1436,22 +1458,6 @@ function scaffoldResponses(schematic, data) {
1436
1458
  ejsData
1437
1459
  );
1438
1460
  }
1439
- const jsonSerializerKt = "package <%= filePackage %>\n\nimport kotlin.js.JsExport\nimport kotlin.jvm.JvmOverloads\nimport kotlinx.serialization.json.Json\n\n/** Base JSON configuration. */\nprivate val JSON_CONFIG = Json.Default\n/** Pretty JSON configuration. */\nprivate val JSON_CONFIG_PRETTY = Json(JSON_CONFIG) { prettyPrint = true }\n\n/** JSON configuration. */\n@JvmOverloads\nfun jsonConfig(prettyPrint: Boolean = false): Json =\n if (prettyPrint) JSON_CONFIG_PRETTY else JSON_CONFIG\n\n/** Version of the serialization format. */\n@JsExport\nconst val <%= formConstant %>_SERIALIZATION_VERSION = 1\n\n@JsExport\n@JvmOverloads\nfun encode<%= formClass %>ToString(<%= formVar %>: <%= formClass %>, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(<%= formVar %>)\n\n@JsExport\nfun decode<%= formClass %>FromString(json: String): <%= formClass %> =\n jsonConfig().decodeFromString(json)\n\n@JvmOverloads\nfun encode<%= formClass %>ExternalContextsToString(externalContexts: <%= formClass %>ExternalContexts, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(externalContexts)\n\n@JsExport\nfun decode<%= formClass %>ExternalContextsFromString(json: String): <%= formClass %>ExternalContexts =\n jsonConfig().decodeFromString(json)\n\n@JvmOverloads\nfun encode<%= formClass %>SubmitResponseToString(response: <%= formClass %>SubmitResponse, prettyPrint: Boolean = false): String =\n jsonConfig(prettyPrint).encodeToString(response)\n\n@JsExport\nfun decode<%= formClass %>SubmitResponseFromString(json: String): <%= formClass %>SubmitResponse =\n jsonConfig().decodeFromString(json)\n";
1440
- const xmlSerializerKt = "package <%= filePackage %>\n\nimport kotlin.js.JsExport\nimport kotlin.jvm.JvmOverloads\nimport kotlinx.serialization.decodeFromString\nimport kotlinx.serialization.encodeToString\nimport nl.adaptivity.xmlutil.ExperimentalXmlUtilApi\nimport nl.adaptivity.xmlutil.QName\nimport nl.adaptivity.xmlutil.XMLConstants\nimport nl.adaptivity.xmlutil.core.XmlVersion\nimport nl.adaptivity.xmlutil.serialization.DefaultXmlSerializationPolicy\nimport nl.adaptivity.xmlutil.serialization.OutputKind\nimport nl.adaptivity.xmlutil.serialization.XML\nimport nl.adaptivity.xmlutil.serialization.XmlSerializationPolicy\nimport nl.adaptivity.xmlutil.serialization.structure.SafeParentInfo\n\n/** Base XML configuration. */\nprivate val XML_CONFIG = XML {\n recommended_0_91_0 {\n xmlVersion = XmlVersion.XML10\n autoPolymorphic = false\n encodeDefault = XmlSerializationPolicy.XmlEncodeDefault.NEVER\n }\n\n // Set policy on top of the current policy config\n @OptIn(ExperimentalXmlUtilApi::class)\n policy =\n object : DefaultXmlSerializationPolicy(policy) {\n // Serialize properties as elements instead of attributes by default\n override val defaultPrimitiveOutputKind: OutputKind = OutputKind.Element\n\n // Use property names as serial names by default\n override fun effectiveName(\n serializerParent: SafeParentInfo,\n tagParent: SafeParentInfo,\n outputKind: OutputKind,\n useName: XmlSerializationPolicy.DeclaredNameInfo,\n ): QName =\n useName.annotatedName\n ?: serializerParent.elementTypeDescriptor.typeQname\n ?: QName(\n if (outputKind == OutputKind.Element) tagParent.namespace.namespaceURI\n else XMLConstants.NULL_NS_URI,\n useName.serialName,\n )\n }\n}\n/** Pretty XML configuration. */\nprivate val XML_CONFIG_PRETTY = XML_CONFIG.copy { indent = 4 }\n\n/** XML configuration. */\n@JvmOverloads\nfun xmlConfig(prettyPrint: Boolean = false): XML =\n if (prettyPrint) XML_CONFIG_PRETTY else XML_CONFIG\n\n/** Version of the serialization format. */\n@JsExport\nconst val <%= formConstant %>_SERIALIZATION_VERSION = 1\n\n@JsExport\n@JvmOverloads\nfun encode<%= formClass %>ToString(<%= formVar %>: <%= formClass %>, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(<%= formVar %>)\n\n@JsExport\nfun decode<%= formClass %>FromString(xml: String): <%= formClass %> =\n xmlConfig().decodeFromString(xml)\n\n@JvmOverloads\nfun encode<%= formClass %>ExternalContextsToString(externalContexts: <%= formClass %>ExternalContexts, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(externalContexts)\n\n@JsExport\nfun decode<%= formClass %>ExternalContextsFromString(xml: String): <%= formClass %>ExternalContexts =\n xmlConfig().decodeFromString(xml)\n\n@JvmOverloads\nfun encode<%= formClass %>SubmitResponseToString(response: <%= formClass %>SubmitResponse, prettyPrint: Boolean = false): String =\n xmlConfig(prettyPrint).encodeToString(response)\n\n@JsExport\nfun decode<%= formClass %>SubmitResponseFromString(xml: String): <%= formClass %>SubmitResponse =\n xmlConfig().decodeFromString(xml)\n";
1441
- function scaffoldSerializer(schematic, data) {
1442
- const ejsData = {
1443
- filePackage: data.currentPackage,
1444
- formVar: camelCase(schematic.name),
1445
- formClass: schematic.name,
1446
- formConstant: constantCase(schematic.name)
1447
- };
1448
- addEjsTemplateFile(
1449
- data,
1450
- `${schematic.name}Serializer.kt`,
1451
- data.serializationFormat === "xml" ? xmlSerializerKt : jsonSerializerKt,
1452
- ejsData
1453
- );
1454
- }
1455
1461
  const indexScss = '@use "@ostack.tech/ui/scss" as ostack-ui;\n@use "@ostack.tech/ui-kform/scss" as ostack-ui-kform;\n';
1456
1462
  function scaffoldStyles(_schematic, data) {
1457
1463
  addTemplateFile(data, "index.scss", indexScss);
@@ -1471,9 +1477,9 @@ function scaffoldViteProject(schematic, data) {
1471
1477
  formId: kebabCase(schematic.name),
1472
1478
  formClass: schematic.name,
1473
1479
  formTitle: capitalCase(schematic.name),
1474
- ostackUiVersion: "0.6.4",
1475
- kFormVersion: "0.31.6",
1476
- dependencyVersions: JSON.parse('{"@eslint/js":"^9.39.1","@fortawesome/fontawesome-svg-core":"^7.1.0","@fortawesome/free-brands-svg-icons":"^7.1.0","@fortawesome/free-regular-svg-icons":"^7.1.0","@fortawesome/free-solid-svg-icons":"^7.1.0","@ostack.tech/kform":"~0.31.6","@ostack.tech/kform-react":"~0.31.6","@ostack.tech/kform-scaffolder":"~0.31.6","@storybook/addon-docs":"^10.1.5","@storybook/addon-links":"^10.1.5","@storybook/react-vite":"^10.1.5","@types/node":"^22.19.2","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.2","change-case":"^5.4.4","cpy-cli":"^6.0.0","date-fns":"^4.1.0","eslint":"^9.39.1","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-storybook":"^10.1.5","globals":"^16.5.0","happy-dom":"^20.0.11","lint-staged":"^16.2.7","prettier":"^3.7.4","prettier-plugin-jsdoc":"^1.8.0","react":"^19.2.1","react-dom":"^19.2.1","rimraf":"^6.1.2","sass-embedded":"^1.93.3","simple-git-hooks":"^2.13.1","storybook":"^10.1.5","terser":"^5.44.1","tslib":"^2.8.1","typescript":"~5.9.3","typescript-eslint":"^8.49.0","vite":"^7.2.7","vite-plugin-dts":"^4.5.4","vitest":"^4.0.15","zustand":"^5.0.9"}'),
1480
+ ostackUiVersion: "0.7.0",
1481
+ kFormVersion: "0.32.1",
1482
+ dependencyVersions: JSON.parse('{"@eslint/js":"^9.39.2","@fortawesome/fontawesome-svg-core":"^7.1.0","@fortawesome/free-brands-svg-icons":"^7.1.0","@fortawesome/free-regular-svg-icons":"^7.1.0","@fortawesome/free-solid-svg-icons":"^7.1.0","@ostack.tech/kform":"~0.32.1","@ostack.tech/kform-react":"~0.32.1","@ostack.tech/kform-scaffolder":"~0.32.1","@storybook/addon-docs":"^10.1.10","@storybook/addon-links":"^10.1.10","@storybook/react-vite":"^10.1.10","@types/node":"^22.19.3","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.2","change-case":"^5.4.4","cpy-cli":"^6.0.0","date-fns":"^4.1.0","eslint":"^9.39.2","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.26","eslint-plugin-simple-import-sort":"^12.1.1","eslint-plugin-storybook":"^10.1.10","globals":"^16.5.0","happy-dom":"^20.0.11","lint-staged":"^16.2.7","prettier":"^3.7.4","prettier-plugin-jsdoc":"^1.8.0","react":"^19.2.3","react-dom":"^19.2.3","rimraf":"^6.1.2","sass-embedded":"^1.93.3","simple-git-hooks":"^2.13.1","storybook":"^10.1.10","terser":"^5.44.1","tslib":"^2.8.1","typescript":"~5.9.3","typescript-eslint":"^8.50.0","vite":"^7.3.0","vite-plugin-dts":"^4.5.4","vitest":"^4.0.16","zustand":"^5.0.9"}'),
1477
1483
  externalContextsData: data.serializationFormat === "json" ? "{}" : `<${schematic.name}ExternalContexts />`,
1478
1484
  apiBasePath: data.apiBasePath ?? DEFAULT_API_BASE_PATH,
1479
1485
  viteConfigOutDir: data.viteConfigOutDir ?? DEFAULT_VITE_CONFIG_OUT_DIR,
@@ -1533,6 +1539,7 @@ function SchematicBuilder({
1533
1539
  /* @__PURE__ */ jsx(SerializationFormatConfig, {}),
1534
1540
  /* @__PURE__ */ jsx(UseTableValuesSerializerConfig, {})
1535
1541
  ] }),
1542
+ version = "0.7.0",
1536
1543
  ...otherProps
1537
1544
  }) {
1538
1545
  return /* @__PURE__ */ jsx(
@@ -1543,6 +1550,7 @@ function SchematicBuilder({
1543
1550
  scaffolders,
1544
1551
  scaffoldingData,
1545
1552
  configs,
1553
+ version,
1546
1554
  ...otherProps
1547
1555
  }
1548
1556
  );
@@ -1550,6 +1558,7 @@ function SchematicBuilder({
1550
1558
  export {
1551
1559
  DEFAULT_ACTIVE_PATH_SEARCH_PARAM,
1552
1560
  DEFAULT_API_BASE_PATH,
1561
+ DEFAULT_INCLUDE_SERIALIZATION_FORMAT_VERSION,
1553
1562
  DEFAULT_JVM_TOOLCHAIN_VERSION,
1554
1563
  DEFAULT_LOCALE,
1555
1564
  DEFAULT_NODEJS_VERSION,