@solidxai/core-ui 0.1.9-beta.18 → 0.1.9-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/adapters/auth/handleLogout.d.ts +1 -1
  2. package/dist/adapters/auth/handleLogout.d.ts.map +1 -1
  3. package/dist/adapters/auth/handleLogout.js +20 -32
  4. package/dist/adapters/auth/handleLogout.js.map +1 -1
  5. package/dist/adapters/auth/handleLogout.ts +7 -14
  6. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.d.ts.map +1 -1
  7. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js +1 -10
  8. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.js.map +1 -1
  9. package/dist/components/core/common/SolidAccountSettings/SolidChangePassword.tsx +1 -8
  10. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.d.ts.map +1 -1
  11. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js +6 -11
  12. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.js.map +1 -1
  13. package/dist/components/core/common/SolidAccountSettings/SolidNotifications.tsx +5 -31
  14. package/dist/components/core/common/SolidGlobalSearchElement.d.ts.map +1 -1
  15. package/dist/components/core/common/SolidGlobalSearchElement.js +47 -13
  16. package/dist/components/core/common/SolidGlobalSearchElement.js.map +1 -1
  17. package/dist/components/core/common/SolidGlobalSearchElement.tsx +38 -4
  18. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts +16 -0
  19. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.d.ts.map +1 -0
  20. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js +31 -0
  21. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.js.map +1 -0
  22. package/dist/components/core/extension/solid-core/metadata/MetadataExplorerFormWidget.tsx +43 -0
  23. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts +3 -0
  24. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.d.ts.map +1 -0
  25. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js +141 -0
  26. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.js.map +1 -0
  27. package/dist/components/core/extension/solid-core/moduleMetadata/list/ClearModulePackageRuntimeHeaderAction.tsx +205 -0
  28. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts +4 -0
  29. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.d.ts.map +1 -0
  30. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js +112 -0
  31. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.js.map +1 -0
  32. package/dist/components/core/extension/solid-core/moduleMetadata/list/ExportModulePackageRowAction.tsx +146 -0
  33. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts +11 -0
  34. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.d.ts.map +1 -0
  35. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js +22 -0
  36. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.js.map +1 -0
  37. package/dist/components/core/extension/solid-core/moduleMetadata/list/ModuleImportListHeaderAction.tsx +36 -0
  38. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts +3 -0
  39. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.d.ts.map +1 -0
  40. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js +133 -0
  41. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.js.map +1 -0
  42. package/dist/components/core/extension/solid-core/moduleMetadata/list/moduleMetadataListOnLoad.ts +76 -0
  43. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts +12 -0
  44. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.d.ts.map +1 -0
  45. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js +168 -0
  46. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.js.map +1 -0
  47. package/dist/components/core/form/fields/relations/RolesGroupedByModuleWidget.tsx +241 -0
  48. package/dist/components/core/list/SolidEmptyListViewPlaceholder.d.ts.map +1 -1
  49. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js +3 -0
  50. package/dist/components/core/list/SolidEmptyListViewPlaceholder.js.map +1 -1
  51. package/dist/components/core/list/SolidEmptyListViewPlaceholder.tsx +2 -0
  52. package/dist/components/core/list/SolidListView.d.ts.map +1 -1
  53. package/dist/components/core/list/SolidListView.js +74 -68
  54. package/dist/components/core/list/SolidListView.js.map +1 -1
  55. package/dist/components/core/list/SolidListView.tsx +13 -4
  56. package/dist/components/core/list/SolidListViewColumn.d.ts.map +1 -1
  57. package/dist/components/core/list/SolidListViewColumn.js +0 -2
  58. package/dist/components/core/list/SolidListViewColumn.js.map +1 -1
  59. package/dist/components/core/list/SolidListViewColumn.tsx +0 -1
  60. package/dist/components/core/list/SolidListViewConfigure.d.ts.map +1 -1
  61. package/dist/components/core/list/SolidListViewConfigure.js +10 -9
  62. package/dist/components/core/list/SolidListViewConfigure.js.map +1 -1
  63. package/dist/components/core/list/SolidListViewConfigure.tsx +3 -1
  64. package/dist/components/core/list/SolidListViewHeaderButton.d.ts.map +1 -1
  65. package/dist/components/core/list/SolidListViewHeaderButton.js +3 -0
  66. package/dist/components/core/list/SolidListViewHeaderButton.js.map +1 -1
  67. package/dist/components/core/list/SolidListViewHeaderButton.tsx +2 -0
  68. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.d.ts.map +1 -1
  69. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js +3 -0
  70. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.js.map +1 -1
  71. package/dist/components/core/list/SolidListViewHeaderContextMenuButton.tsx +2 -0
  72. package/dist/components/core/list/SolidListViewRowActionsMenu.d.ts.map +1 -1
  73. package/dist/components/core/list/SolidListViewRowActionsMenu.js +7 -1
  74. package/dist/components/core/list/SolidListViewRowActionsMenu.js.map +1 -1
  75. package/dist/components/core/list/SolidListViewRowActionsMenu.tsx +5 -1
  76. package/dist/components/core/list/columns/SolidBooleanColumn.d.ts.map +1 -1
  77. package/dist/components/core/list/columns/SolidBooleanColumn.js +4 -6
  78. package/dist/components/core/list/columns/SolidBooleanColumn.js.map +1 -1
  79. package/dist/components/core/list/columns/SolidBooleanColumn.tsx +1 -3
  80. package/dist/components/core/list/columns/SolidMediaMultipleColumn.d.ts.map +1 -1
  81. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js +3 -2
  82. package/dist/components/core/list/columns/SolidMediaMultipleColumn.js.map +1 -1
  83. package/dist/components/core/list/columns/SolidMediaMultipleColumn.tsx +3 -2
  84. package/dist/components/core/list/columns/SolidMediaSingleColumn.d.ts.map +1 -1
  85. package/dist/components/core/list/columns/SolidMediaSingleColumn.js +3 -2
  86. package/dist/components/core/list/columns/SolidMediaSingleColumn.js.map +1 -1
  87. package/dist/components/core/list/columns/SolidMediaSingleColumn.tsx +3 -2
  88. package/dist/components/core/model/CreateModel.css +48 -0
  89. package/dist/components/core/model/CreateModel.d.ts +1 -0
  90. package/dist/components/core/model/CreateModel.d.ts.map +1 -1
  91. package/dist/components/core/model/CreateModel.js +69 -104
  92. package/dist/components/core/model/CreateModel.js.map +1 -1
  93. package/dist/components/core/model/CreateModel.tsx +92 -204
  94. package/dist/components/core/model/FieldMetaData.d.ts +1 -1
  95. package/dist/components/core/model/FieldMetaData.d.ts.map +1 -1
  96. package/dist/components/core/model/FieldMetaData.js +6 -22
  97. package/dist/components/core/model/FieldMetaData.js.map +1 -1
  98. package/dist/components/core/model/FieldMetaData.tsx +6 -45
  99. package/dist/components/core/model/FieldMetaDataForm.d.ts.map +1 -1
  100. package/dist/components/core/model/FieldMetaDataForm.js +196 -222
  101. package/dist/components/core/model/FieldMetaDataForm.js.map +1 -1
  102. package/dist/components/core/model/FieldMetaDataForm.tsx +0 -72
  103. package/dist/components/core/model/ModelMetaData.d.ts.map +1 -1
  104. package/dist/components/core/model/ModelMetaData.js +7 -7
  105. package/dist/components/core/model/ModelMetaData.js.map +1 -1
  106. package/dist/components/core/model/ModelMetaData.tsx +7 -0
  107. package/dist/components/core/module/CreateModule.css +44 -0
  108. package/dist/components/core/module/CreateModule.d.ts +1 -0
  109. package/dist/components/core/module/CreateModule.d.ts.map +1 -1
  110. package/dist/components/core/module/CreateModule.js +40 -43
  111. package/dist/components/core/module/CreateModule.js.map +1 -1
  112. package/dist/components/core/module/CreateModule.tsx +243 -247
  113. package/dist/components/core/module/ModuleListViewData.d.ts.map +1 -1
  114. package/dist/components/core/module/ModuleListViewData.js +47 -7
  115. package/dist/components/core/module/ModuleListViewData.js.map +1 -1
  116. package/dist/components/core/module/ModuleListViewData.tsx +58 -0
  117. package/dist/components/core/module/ModuleMetadataExplorer.css +638 -0
  118. package/dist/components/core/module/ModuleMetadataExplorer.d.ts +15 -0
  119. package/dist/components/core/module/ModuleMetadataExplorer.d.ts.map +1 -0
  120. package/dist/components/core/module/ModuleMetadataExplorer.js +666 -0
  121. package/dist/components/core/module/ModuleMetadataExplorer.js.map +1 -0
  122. package/dist/components/core/module/ModuleMetadataExplorer.tsx +1000 -0
  123. package/dist/components/core/module/ModulePackageDialog.css +540 -0
  124. package/dist/components/core/module/ModulePackageDialog.d.ts +16 -0
  125. package/dist/components/core/module/ModulePackageDialog.d.ts.map +1 -0
  126. package/dist/components/core/module/ModulePackageDialog.js +625 -0
  127. package/dist/components/core/module/ModulePackageDialog.js.map +1 -0
  128. package/dist/components/core/module/ModulePackageDialog.tsx +906 -0
  129. package/dist/components/layout/user-profile-menu.d.ts.map +1 -1
  130. package/dist/components/layout/user-profile-menu.js +57 -33
  131. package/dist/components/layout/user-profile-menu.js.map +1 -1
  132. package/dist/components/layout/user-profile-menu.tsx +11 -59
  133. package/dist/helpers/buttonEnvironment.d.ts +5 -0
  134. package/dist/helpers/buttonEnvironment.d.ts.map +1 -0
  135. package/dist/helpers/buttonEnvironment.js +30 -0
  136. package/dist/helpers/buttonEnvironment.js.map +1 -0
  137. package/dist/helpers/buttonEnvironment.ts +35 -0
  138. package/dist/helpers/fileTypeIcon.d.ts +12 -0
  139. package/dist/helpers/fileTypeIcon.d.ts.map +1 -0
  140. package/dist/helpers/fileTypeIcon.js +37 -0
  141. package/dist/helpers/fileTypeIcon.js.map +1 -0
  142. package/dist/helpers/fileTypeIcon.tsx +65 -0
  143. package/dist/helpers/registry.d.ts.map +1 -1
  144. package/dist/helpers/registry.js +10 -0
  145. package/dist/helpers/registry.js.map +1 -1
  146. package/dist/helpers/registry.ts +10 -0
  147. package/dist/helpers/waitForBackendAvailability.d.ts +7 -0
  148. package/dist/helpers/waitForBackendAvailability.d.ts.map +1 -0
  149. package/dist/helpers/waitForBackendAvailability.js +86 -0
  150. package/dist/helpers/waitForBackendAvailability.js.map +1 -0
  151. package/dist/helpers/waitForBackendAvailability.ts +37 -0
  152. package/dist/index.d.ts +2 -1
  153. package/dist/index.d.ts.map +1 -1
  154. package/dist/index.js +2 -1
  155. package/dist/index.js.map +1 -1
  156. package/dist/index.ts +18 -0
  157. package/dist/redux/api/moduleApi.d.ts +26 -1
  158. package/dist/redux/api/moduleApi.d.ts.map +1 -1
  159. package/dist/redux/api/moduleApi.js +237 -1
  160. package/dist/redux/api/moduleApi.js.map +1 -1
  161. package/dist/redux/api/moduleApi.ts +181 -1
  162. package/dist/redux/store/defaultStoreConfig.d.ts +22 -0
  163. package/dist/redux/store/defaultStoreConfig.d.ts.map +1 -1
  164. package/dist/redux/store/solidEntityApiPool.d.ts +1 -0
  165. package/dist/redux/store/solidEntityApiPool.d.ts.map +1 -1
  166. package/dist/redux/store/solidEntityApiPool.js +4 -0
  167. package/dist/redux/store/solidEntityApiPool.js.map +1 -1
  168. package/dist/redux/store/solidEntityApiPool.ts +4 -0
  169. package/dist/resources/globals.css +56 -0
  170. package/dist/resources/shadcn-base.css +5 -0
  171. package/dist/routes/AppEventListener.d.ts.map +1 -1
  172. package/dist/routes/AppEventListener.js +58 -8
  173. package/dist/routes/AppEventListener.js.map +1 -1
  174. package/dist/routes/AppEventListener.tsx +69 -8
  175. package/dist/types/index.d.ts +1 -0
  176. package/dist/types/jsoneditor.d.ts +4 -0
  177. package/package.json +2 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModulePackageDialog.js","sourceRoot":"","sources":["../../../../src/components/core/module/ModulePackageDialog.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EACL,qCAAqC,EACrC,qCAAqC,EACrC,wCAAwC,EACxC,gCAAgC,EAChC,+BAA+B,EAC/B,sCAAsC,GACvC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EACL,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,YAAY,GACb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,2BAA2B,CAAC;AA2BnC,IAAM,UAAU,GAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAErE,SAAS,kBAAkB;IACzB,OAAO;QACL,OAAO,EAAE;YACP,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,iFAAiF;YAC9F,MAAM,EAAE,SAAS;SAClB;QACD,MAAM,EAAE;YACN,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,+HAA+H;YAC5I,MAAM,EAAE,SAAS;SAClB;QACD,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,iGAAiG;YAC9G,MAAM,EAAE,SAAS;SAClB;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,0DAA0D;YACvE,MAAM,EAAE,SAAS;SAClB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAU;IACjC,IAAM,YAAY,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;IACjC,IAAI,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAA,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IAC3E,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,IAAI,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,CAAA,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC;IACvE,IAAI,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAA,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACzD,IAAI,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAC7D,OAAO,2DAA2D,CAAC;AACrE,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1F,IAAM,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC/C,OAAO,UAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAI,KAAK,CAAC,QAAQ,CAAC,CAAE,CAAC;AACvE,CAAC;AAED,SAAS,8BAA8B,CAAC,MAAsB;IAC5D,OAAO;QACL,gBAAgB;QAChB,kBAAkB;QAClB,eAAe;QACf,cAAc;QACd,iBAAiB;QACjB,cAAc;QACd,aAAa;KACd,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iCAAiC,CAAC,WAAgB;;IACzD,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,eAAe;QAAE,OAAO,SAAS,CAAC;IAC9D,IAAI,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,KAAK,EAAE;QAC/B,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;KACvF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,2BAA2B,CAAC,WAAgB;;IACnD,IAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAM,MAAM,GAAG,MAAM,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,mCAAI,EAAE,CAAC,CAAC;IAEjD,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,CAAA,EAAE;QACnD,SAAS,CAAC,OAAO,yBACZ,SAAS,CAAC,OAAO,KACpB,MAAM,EAAE,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,KAAK,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC9D,WAAW,EAAE,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,KAAK;gBACzC,CAAC,CAAC,yCAAyC;gBAC3C,CAAC,CAAC,6EAA6E,GAClF,CAAC;KACH;IAED,IACE,CAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,MAAM;QAC5B,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EACrI;QACA,SAAS,CAAC,MAAM,yBACX,SAAS,CAAC,MAAM,KACnB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,sGAAsG,EACnH,MAAM,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,MAAM,mCAAI,SAAS,GAClD,CAAC;KACH;IAED,IAAM,WAAW,GAAG,iCAAiC,CAAC,WAAW,CAAC,CAAC;IACnE,IAAI,WAAW,KAAK,SAAS,EAAE;QAC7B,SAAS,CAAC,KAAK,yBACV,SAAS,CAAC,KAAK,KAClB,MAAM,EAAE,WAAW,EACnB,WAAW,EACT,MAAM,KAAK,eAAe;gBACxB,CAAC,CAAC,iFAAiF;gBACnF,CAAC,CAAC,WAAW,KAAK,SAAS;oBACzB,CAAC,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,KAAI,yCAAyC;oBACxE,CAAC,CAAC,4CAA4C,EACpD,MAAM,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,KAAK,mCAAI,SAAS,GACjD,CAAC;KACH;SAAM,IAAI,MAAM,KAAK,kBAAkB,EAAE;QACxC,SAAS,CAAC,KAAK,yBACV,SAAS,CAAC,KAAK,KAClB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,4GAA4G,GAC1H,CAAC;KACH;IAED,IAAI,MAAM,KAAK,cAAc,EAAE;QAC7B,SAAS,CAAC,IAAI,yBACT,SAAS,CAAC,IAAI,KACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,2EAA2E,EACxF,MAAM,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,IAAI,mCAAI,SAAS,GAChD,CAAC;KACH;SAAM,IAAI,MAAM,KAAK,aAAa,EAAE;QACnC,SAAS,CAAC,IAAI,yBACT,SAAS,CAAC,IAAI,KACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,KAAI,uCAAuC,EACjF,MAAM,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,IAAI,mCAAI,SAAS,GAChD,CAAC;KACH;SAAM,IAAI,MAAM,KAAK,WAAW,EAAE;QACjC,SAAS,CAAC,IAAI,yBACT,SAAS,CAAC,IAAI,KACjB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,iDAAiD,EAC9D,MAAM,EAAE,MAAA,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,0CAAE,IAAI,mCAAI,SAAS,GAChD,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc,EAAE,UAAmB,EAAE,cAAuB;IAC7F,IAAI,CAAC,UAAU,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACvD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IACzF,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACtF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,EAAkC;QAAhC,MAAM,YAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC;KACnC;IAED,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,OAAO,KAAC,SAAS,IAAC,IAAI,EAAC,iBAAiB,GAAG,CAAC;KAC7C;IAED,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,OAAO,EAAE;QAC9C,OAAO,KAAC,SAAS,IAAC,IAAI,EAAC,yBAAyB,GAAG,CAAC;KACrD;IAED,OAAO,eAAM,SAAS,EAAC,+BAA+B,iBAAa,MAAM,GAAG,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAA4D;QAA1D,IAAI,UAAA,EAAE,YAAY,kBAAA,EAAE,UAAU,gBAAA;IAClE,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,UAAC,IAAI;YACjB,IAAI,CAAC,IAAI,EAAE;gBACT,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;QACH,CAAC,EACD,SAAS,EAAC,6BAA6B,EACvC,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,KAAK,YAEhB,IAAI,CAAC,CAAC,CAAC,KAAC,0BAA0B,IAAC,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB,EAAE,UAAU,EAAE,UAAU,GAAI,CAAC,CAAC,CAAC,IAAI,GAC7F,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EAA0G;IAArJ,iBAiqBC;;QAjqB4C,OAAO,aAAA,EAAE,UAAU,gBAAA,EAAE,6BAA4B,EAA5B,qBAAqB,mBAAG,IAAI,KAAA,EAAE,kBAAkB,EAAlB,UAAU,mBAAG,KAAK,KAAA;IAChH,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IACzB,IAAA,KAAkC,QAAQ,CAAc,IAAI,CAAC,EAA5D,YAAY,QAAA,EAAE,eAAe,QAA+B,CAAC;IAC9D,IAAA,KAAwC,QAAQ,CAAa,IAAI,CAAC,EAAjE,eAAe,QAAA,EAAE,kBAAkB,QAA8B,CAAC;IACnE,IAAA,KAAsC,QAAQ,CAAgB,IAAI,CAAC,EAAlE,cAAc,QAAA,EAAE,iBAAiB,QAAiC,CAAC;IACpE,IAAA,KAA4C,QAAQ,CAAC,KAAK,CAAC,EAA1D,iBAAiB,QAAA,EAAE,oBAAoB,QAAmB,CAAC;IAC5D,IAAA,KAAoB,QAAQ,CAAU,cAAM,OAAA,kBAAkB,EAAE,EAApB,CAAoB,CAAC,EAAhE,KAAK,QAAA,EAAE,QAAQ,QAAiD,CAAC;IAClE,IAAA,KAAkC,QAAQ,CAAU,SAAS,CAAC,EAA7D,YAAY,QAAA,EAAE,eAAe,QAAgC,CAAC;IAC/D,IAAA,KAAkC,QAAQ,CAAgB,IAAI,CAAC,EAA9D,YAAY,QAAA,EAAE,eAAe,QAAiC,CAAC;IAChE,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAClD,IAAA,KAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,QAAA,EAAE,eAAe,QAAmB,CAAC;IAEjD,IAAA,2BAA2B,GAAI,sCAAsC,EAAE,GAA5C,CAA6C;IACxE,IAAA,0BAA0B,GAAI,qCAAqC,EAAE,GAA3C,CAA4C;IACtE,IAAA,0BAA0B,GAAI,qCAAqC,EAAE,GAA3C,CAA4C;IACtE,IAAA,8BAA8B,GAAI,wCAAwC,EAAE,GAA9C,CAA+C;IAC7E,IAAA,qBAAqB,GAAI,gCAAgC,EAAE,GAAtC,CAAuC;IAC5D,IAAA,oBAAoB,GAAI,+BAA+B,EAAE,GAArC,CAAsC;IAEjE,IAAM,wBAAwB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAM,sBAAsB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IAE3D,IAAM,UAAU,GAAG,WAAW,CAAC,UAAC,GAAY,EAAE,SAA6B;QACzE,QAAQ,CAAC,UAAC,OAAO;;YAAK,OAAA,uBACjB,OAAO,gBACT,GAAG,0BACC,OAAO,CAAC,GAAG,CAAC,GACZ,SAAS,QAEd;QANoB,CAMpB,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAED,IAAA,KAAsE,WAAW,CAAC;QACtF,MAAM,EAAE;YACN,0BAA0B,EAAE,CAAC,OAAO,CAAC;YACrC,8BAA8B,EAAE,CAAC,OAAO,CAAC;YACzC,iBAAiB,EAAE,CAAC,OAAO,CAAC;SAC7B;QACD,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,IAAI;QAChB,MAAM,EAAE,UAAC,aAAa;YACpB,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpB,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aACnC;QACH,CAAC;KACF,CAAC,EAdM,YAAY,kBAAA,EAAE,aAAa,mBAAA,EAAQ,cAAc,UAAA,EAAE,YAAY,kBAcrE,CAAC;IAEH,IAAM,cAAc,GAAG,OAAO,CAAC,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,0CAAE,KAAK,CAAC,CAAC;IACnE,IAAM,YAAY,GAAG,CAAC,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,SAAS,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,IAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC,CAAC;IAEjG,IAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC;IAC9I,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC;IACvE,IAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;IAC3G,IAAM,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,cAAc,IAAI,CAAC,YAAY,CAAC;IAE3F,IAAM,UAAU,GAAG,OAAO,CAAU;QAClC,IAAI,YAAY,KAAK,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;YACzI,OAAO,aAAa,CAAC;SACtB;QAED,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;YACxG,OAAO,aAAa,CAAC;SACtB;QAED,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;YACvF,OAAO,aAAa,CAAC;SACtB;QAED,OAAO,YAAY,CAAC;IACtB,CAAC,EAAE;QACD,eAAe;QACf,YAAY;QACZ,KAAK,CAAC,KAAK,CAAC,MAAM;QAClB,KAAK,CAAC,MAAM,CAAC,MAAM;QACnB,KAAK,CAAC,IAAI,CAAC,MAAM;QACjB,aAAa;KACd,CAAC,CAAC;IAEH,IAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,OAAO,IAAK,OAAA,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,EAAnC,CAAmC,CAAC,CAAC,MAAM,CAAC;IAClG,IAAM,oBAAoB,GAAG,OAAO,CAAC;QACnC,IAAI,CAAC,eAAe,IAAI,CAAC,cAAc;YAAE,OAAO,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAChD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACnF,OAAO,CAAC,CAAC;IACX,CAAC,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAE/E,IAAM,oBAAoB,GAAG,WAAW,CAAC;;;;;;oBACvC,IAAI,CAAC,YAAY,EAAE;wBACjB,sBAAO;qBACR;oBAEK,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;;;;oBAG7C,eAAe,CAAC,IAAI,CAAC,CAAC;oBACL,qBAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA/D,QAAQ,GAAG,SAAoD;oBACrE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAC7B,iBAAiB,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,mCAAI,IAAI,CAAC,CAAC;oBACpD,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC5B,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,QAAQ,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;oBAChD,eAAe,CAAC,SAAS,CAAC,CAAC;oBAC3B,QAAQ,CACN,SAAS,CAAC;wBACR,QAAQ,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,0CAAE,KAAK,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;wBAC1D,OAAO,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,0CAAE,KAAK,EAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB;wBACtF,MAAM,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,0CAAE,KAAK;4BACjC,CAAC,CAAC,qEAAqE;4BACvE,CAAC,CAAC,iFAAiF;qBACtF,CAAC,CACH,CAAC;;;;oBAEF,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC,OAAK,CAAC,EAAE,CAAC,CAAC,CAAC;;;oBAEtG,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;SAE1B,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAE1D,SAAS,CAAC;QACR,IAAI,CAAC,YAAY,EAAE;YACjB,sBAAsB,CAAC,OAAO,GAAG,IAAI,CAAC;YACtC,OAAO;SACR;QAED,IAAM,aAAa,GAAG,UAAG,YAAY,CAAC,IAAI,cAAI,YAAY,CAAC,IAAI,cAAI,YAAY,CAAC,YAAY,CAAE,CAAC;QAC/F,IAAI,sBAAsB,CAAC,OAAO,KAAK,aAAa,EAAE;YACpD,OAAO;SACR;QAED,sBAAsB,CAAC,OAAO,GAAG,aAAa,CAAC;QAC/C,KAAK,oBAAoB,EAAE,CAAC;IAC9B,CAAC,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC,CAAC;IAEzC,IAAM,gBAAgB,GAAG,WAAW,CAAC,UAAO,oBAA4B;;;;;;oBACtE,UAAU,CAAC,OAAO,EAAE;wBAClB,MAAM,EAAE,SAAS;wBACjB,WAAW,EAAE,kEAAkE;qBAChF,CAAC,CAAC;oBAEmB,qBAAM,qBAAqB,CAAC;4BAChD,cAAc,EAAE,oBAAoB;4BACpC,aAAa,EAAE,IAAI;4BACnB,YAAY,EAAE,IAAI;yBACnB,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAJL,aAAa,GAAG,SAIX;oBAEL,WAAW,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM,MAAK,cAAc,CAAC;oBAC7D,UAAU,CAAC,OAAO,EAAE;wBAClB,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;wBAC3C,WAAW,EAAE,WAAW;4BACtB,CAAC,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,YAAY,KAAI,gEAAgE;4BACjG,CAAC,CAAC,4CAA4C;wBAChD,MAAM,EAAE,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,0CAAE,KAAK;qBACtC,CAAC,CAAC;oBAEH,sBAAO,aAAa,EAAC;;;SACtB,EAAE,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,CAAC;IAExC,IAAM,eAAe,GAAG,WAAW,CAAC,UAAO,oBAA4B;;;;;;oBACrE,UAAU,CAAC,MAAM,EAAE;wBACjB,MAAM,EAAE,SAAS;wBACjB,WAAW,EAAE,oEAAoE;qBAClF,CAAC,CAAC;oBAEkB,qBAAM,oBAAoB,CAAC;4BAC9C,cAAc,EAAE,oBAAoB;4BACpC,kBAAkB,EAAE,KAAK;yBAC1B,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAHL,YAAY,GAAG,SAGV;oBAEL,UAAU,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,MAAK,aAAa,CAAC;oBAC1D,UAAU,CAAC,MAAM,EAAE;wBACjB,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;wBAC1C,WAAW,EAAE,UAAU;4BACrB,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,KAAI,uCAAuC;4BACvE,CAAC,CAAC,iDAAiD;wBACrD,MAAM,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,IAAI;qBACpC,CAAC,CAAC;oBAEH,sBAAO,YAAY,EAAC;;;SACrB,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvC,IAAM,cAAc,GAAG,WAAW,CAAC;;;;;oBACjC,IAAI,CAAC,cAAc,EAAE;wBACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,kDAAkD,EAAE,CAAC,CAAC,CAAC;wBACvI,sBAAO;qBACR;;;;oBAGC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACA,qBAAM,gBAAgB,CAAC,cAAc,CAAC,EAAA;;oBAAtD,aAAa,GAAG,SAAsC;oBAC5D,kBAAkB,CAAC,aAAa,CAAC,CAAC;oBAClC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,eAAe,CAAC,KAAK,CAAC,CAAC;;;;oBAEvB,UAAU,CAAC,OAAO,EAAE;wBAClB,MAAM,EAAE,OAAO;wBACf,WAAW,EAAE,eAAe,CAAC,OAAK,CAAC;qBACpC,CAAC,CAAC;oBACH,eAAe,CAAC,qDAAqD,CAAC,CAAC;oBACvE,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;SAE1B,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7D,IAAM,aAAa,GAAG,WAAW,CAAC;;;;;;oBAChC,IAAI,CAAC,cAAc,EAAE;wBACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC,CAAC,CAAC;wBACtI,sBAAO;qBACR;;;;oBAGC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACD,qBAAM,eAAe,CAAC,cAAc,CAAC,EAAA;;oBAApD,YAAY,GAAG,SAAqC;oBAC1D,kBAAkB,CAAC,YAAY,CAAC,CAAC;oBACjC,eAAe,CAAC,MAAM,CAAC,CAAC;oBACxB,eAAe,CAAC,KAAK,CAAC,CAAC;oBAEjB,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,KAAK,mCAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACrH,UAAU,GAAG,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,MAAK,aAAa,CAAC;oBAE1D,IAAI,CAAC,UAAU,EAAE;wBACf,UAAU,aAAV,UAAU,uBAAV,UAAU,EAAI,CAAC;qBAChB;oBAED,IAAI,WAAW,IAAI,CAAC,UAAU,EAAE;wBAC9B,eAAe,CAAC,8EAA8E,CAAC,CAAC;wBAChG,sBAAO;qBACR;oBAED,IAAI,UAAU,EAAE;wBACd,eAAe,CAAC,qDAAqD,CAAC,CAAC;wBACvE,sBAAO;qBACR;oBAED,eAAe,CAAC,uCAAuC,CAAC,CAAC;;;;oBAEzD,UAAU,CAAC,MAAM,EAAE;wBACjB,MAAM,EAAE,OAAO;wBACf,WAAW,EAAE,eAAe,CAAC,OAAK,CAAC;qBACpC,CAAC,CAAC;oBACH,eAAe,CAAC,kEAAkE,CAAC,CAAC;oBACpF,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;SAE1B,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;IAE7H,SAAS,CAAC;QACR,IAAI,CAAC,qBAAqB,IAAI,wBAAwB,CAAC,OAAO,EAAE;YAC9D,OAAO;SACR;QAED,wBAAwB,CAAC,OAAO,GAAG,IAAI,CAAC;QAExC,IAAM,eAAe,GAAG;;;;;;;wBAEA,qBAAM,8BAA8B,CAAC,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAtG,WAAW,GAAG,SAAwF;wBACtG,aAAa,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;wBAC/D,kBAAkB,CAAC,WAAW,CAAC,CAAC;wBAChC,iBAAiB,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,mCAAI,IAAI,CAAC,CAAC;wBACvD,QAAQ,CAAC,aAAa,CAAC,CAAC;wBACxB,eAAe,CAAC,yBAAyB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,MAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,CAAA,CAAC,EAAE,OAAO,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,KAAK,CAAC,CAAC,CAAC,CAAC;wBAE7J,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,WAAW,EAAE;4BACvC,eAAe,CAAC,uCAAuC,CAAC,CAAC;4BACzD,sBAAO;yBACR;wBAED,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,MAAK,aAAa,EAAE;4BACzC,eAAe,CAAC,qDAAqD,CAAC,CAAC;4BACvE,sBAAO;yBACR;wBAED,IAAI,CAAC,UAAU,IAAI,CAAC,8BAA8B,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,MAAM,CAAC,EAAE;4BACvE,sBAAO;yBACR;;;;wBAED,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,eAAe,CAAC,OAAK,CAAC,EAAE,CAAC,CAAC,CAAC;;;;;aAElH,CAAC;QAEF,KAAK,eAAe,EAAE,CAAC;IACzB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,8BAA8B,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAElF,IAAM,iBAAiB,GAAG;;;;;;oBACxB,IAAI,CAAC,cAAc,EAAE;wBACnB,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,yDAAyD,EAAE,CAAC,CAAC,CAAC;wBAC1I,sBAAO;qBACR;;;;oBAGC,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,UAAU,CAAC,QAAQ,EAAE;wBACnB,MAAM,EAAE,SAAS;wBACjB,WAAW,EAAE,2EAA2E;qBACzF,CAAC,CAAC;oBAEc,qBAAM,0BAA0B,CAAC;4BAChD,cAAc,gBAAA;4BACd,iBAAiB,mBAAA;yBAClB,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAHL,QAAQ,GAAG,SAGN;oBAEX,UAAU,CAAC,QAAQ,EAAE;wBACnB,MAAM,EAAE,SAAS;wBACjB,WAAW,EAAE,wGAAwG;wBACrH,MAAM,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,0CAAE,MAAM;qBAClC,CAAC,CAAC;oBACH,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBAC7B,eAAe,CAAC,KAAK,CAAC,CAAC;oBACvB,QAAQ,CACN,SAAS,CAAC;wBACR,QAAQ,EAAE,SAAS;wBACnB,OAAO,EAAE,iBAAiB;wBAC1B,MAAM,EAAE,+IAA+I;qBACxJ,CAAC,CACH,CAAC;oBACF,OAAO,EAAE,CAAC;;;;oBAEV,UAAU,CAAC,QAAQ,EAAE;wBACnB,MAAM,EAAE,OAAO;wBACf,WAAW,EAAE,eAAe,CAAC,OAAK,CAAC;qBACpC,CAAC,CAAC;oBACH,eAAe,CAAC,2CAA2C,CAAC,CAAC;oBAC7D,eAAe,CAAC,KAAK,CAAC,CAAC;;;;;SAE1B,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,IAAI,YAAY;YAAE,OAAO;QACzB,IAAI,YAAY,IAAI,cAAc,EAAE;YAClC,KAAK,0BAA0B,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;SACrD;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG;;QAC3B,OAAO,CACL,eAAK,SAAS,EAAC,8BAA8B,aAC1C,CAAC,YAAY,CAAC,CAAC,CAAC,CACf,0BACM,YAAY,CAAC;oBACf,SAAS,EAAE,uCAAgC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAE;iBAC9E,CAAC,eAEF,2BAAW,aAAa,EAAE,EAAI,EAC9B,cAAK,SAAS,EAAC,qCAAqC,YAClD,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACrB,EACN,eAAK,SAAS,EAAC,qCAAqC,aAClD,cAAK,SAAS,EAAC,sCAAsC,uCAA6B,EAClF,yIAAqH,IACjH,EACN,cAAK,SAAS,EAAC,wCAAwC,YACrD,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,UAAC,KAAK;oCACb,KAAK,CAAC,eAAe,EAAE,CAAC;oCACxB,cAAc,EAAE,CAAC;gCACnB,CAAC,+BAGW,GACV,KACF,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,gCAAgC,aAC7C,eAAK,SAAS,EAAC,sCAAsC,aACnD,cAAK,SAAS,EAAC,sCAAsC,YACnD,KAAC,WAAW,IAAC,IAAI,EAAE,EAAE,GAAI,GACrB,EACN,0BACE,cAAK,SAAS,EAAC,sCAAsC,YAAE,YAAY,CAAC,IAAI,GAAO,EAC/E,eAAK,SAAS,EAAC,sCAAsC,aAClD,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAC9B,YAAY,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,EAAE,IAC3C,IACF,IACF,EACN,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,OAAO,EACf,OAAO,EAAE;gCACP,eAAe,CAAC,IAAI,CAAC,CAAC;gCACtB,kBAAkB,CAAC,IAAI,CAAC,CAAC;gCACzB,iBAAiB,CAAC,IAAI,CAAC,CAAC;gCACxB,oBAAoB,CAAC,KAAK,CAAC,CAAC;gCAC5B,eAAe,CAAC,IAAI,CAAC,CAAC;gCACtB,eAAe,CAAC,SAAS,CAAC,CAAC;gCAC3B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;4BACjC,CAAC,EACD,QAAQ,EAAE,YAAY,uBAGV,IACV,CACP,EAEA,CAAC,eAAe,CAAC,CAAC,CAAC,CAClB,eAAK,SAAS,EAAC,4BAA4B,aACxC,YAAY,CAAC,CAAC,CAAC,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,EACrE,sBACG,YAAY;gCACX,CAAC,CAAC,wDAAwD;gCAC1D,CAAC,CAAC,uEAAuE,GACzE,IACA,CACP,CAAC,CAAC,CAAC,CACF,8BACE,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAM,SAAS,EAAC,oCAAoC,uBAAc,EAClE,eAAM,SAAS,EAAC,oCAAoC,YAAE,CAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,MAAM,0CAAE,IAAI,KAAI,SAAS,GAAQ,IAC7G,EACN,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAM,SAAS,EAAC,oCAAoC,gCAAuB,EAC3E,eAAM,SAAS,EAAC,oCAAoC,YAAE,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,eAAe,0CAAE,eAAe,mCAAI,CAAC,GAAQ,IACzH,EACN,eAAK,SAAS,EAAC,6BAA6B,aAC1C,eAAM,SAAS,EAAC,oCAAoC,+BAAsB,EAC1E,eAAM,SAAS,EAAC,oCAAoC,YAAE,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,eAAe,0CAAE,cAAc,mCAAI,CAAC,GAAQ,IACxH,IACF,EAEN,eAAK,SAAS,EAAC,gCAAgC,aAC7C,eAAK,SAAS,EAAC,yCAAyC,aACtD,cAAK,SAAS,EAAC,uCAAuC,iCAAuB,EAC7E,cAAI,SAAS,EAAC,kCAAkC,aAC9C,uBAAK,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,aAAa,0CAAE,YAAY,GAAM,EAChE,uBAAK,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,aAAa,0CAAE,aAAa,GAAM,EACjE,uBAAK,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,aAAa,0CAAE,YAAY,GAAM,IAC7D,IACD,EAEL,CAAC,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,0CAAE,QAAQ,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC1D,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,oCAAoC,yBAAe,EAClE,aAAI,SAAS,EAAC,kCAAkC,YAC7C,eAAe,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAe,IAAK,OAAA,CAC5D,uBAAmB,OAAO,IAAjB,OAAO,CAAgB,CACjC,EAF6D,CAE7D,CAAC,GACC,IACD,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,CAAC,MAAA,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,UAAU,0CAAE,MAAM,0CAAE,MAAM,mCAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACxD,eAAK,SAAS,EAAC,uCAAuC,aACpD,cAAK,SAAS,EAAC,oCAAoC,kCAAwB,EAC3E,aAAI,SAAS,EAAC,kCAAkC,YAC7C,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAAa,IAAK,OAAA,CACxD,uBAAiB,KAAK,IAAb,KAAK,CAAc,CAC7B,EAFyD,CAEzD,CAAC,GACC,IACD,CACP,CAAC,CAAC,CAAC,IAAI,EAEP,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,oCAAoC,wCAA8B,EACjF,aAAI,SAAS,EAAC,kCAAkC,YAC7C,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,UAAC,QAAgB,IAAK,OAAA,CACnD,uBAAoB,QAAQ,IAAnB,QAAQ,CAAiB,CACnC,EAFoD,CAEpD,CAAC,GACC,EACL,KAAC,aAAa,IACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,UAAC,KAAK,IAAK,OAAA,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAjD,CAAiD,EACtE,KAAK,EAAC,qDAAqD,GAC3D,IACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EAEN,cAAK,SAAS,EAAC,2BAA2B,YACvC,CAAC,MAAA,MAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,0CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,KAAa,IAAK,OAAA,CACjE,cAAiB,SAAS,EAAC,gCAAgC,YACxD,KAAK,IADE,KAAK,CAET,CACP,EAJkE,CAIlE,CAAC,GACE,IACL,CACJ,IACG,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,IAAM,mBAAmB,GAAG;QAC1B,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,QAAQ,CAAC,EAAzB,CAAyB,EACxC,QAAQ,EAAE,CAAC,sBAAsB,EACjC,SAAS,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,mCAGrB,CACf,CAAC;SACH;QAED,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAC1D,QAAQ,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,8BAGpB,CACf,CAAC;SACH;QAED,IAAI,UAAU,KAAK,OAAO,EAAE;YAC1B,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,WAAW,EACtB,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,YAExD,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,GACvF,CACf,CAAC;SACH;QAED,IAAI,UAAU,KAAK,MAAM,EAAE;YACzB,OAAO,CACL,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,CAAC,UAAU,EACrB,OAAO,EAAE,YAAY,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,YAEvD,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,GAC/E,CACf,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,IAAM,uBAAuB,GAAG;QAC9B,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,OAAO,oBAAoB,EAAE,CAAC;SAC/B;QAED,IAAI,UAAU,KAAK,QAAQ,EAAE;YAC3B,OAAO,CACL,eAAK,SAAS,EAAC,iCAAiC,aAC9C,eAAK,SAAS,EAAC,wCAAwC,aACrD,cAAK,SAAS,EAAC,oCAAoC,0CAAgC,EACnF,cAAI,SAAS,EAAC,kCAAkC,aAC9C,yHAAsG,EACtG,iFAA8D,EAC9D,oIAAiH,IAC9G,IACD,EACL,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,CAAC,MAAM,CAAC,MAAM,GAAO,CAAC,CAAC,CAAC,IAAI,IACxG,CACP,CAAC;SACH;QAED,IAAI,UAAU,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;YAChD,OAAO,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAO,CAAC;SACtF;QAED,IAAI,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;YAC9C,OAAO,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAO,CAAC;SACrF;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,MAAC,iBAAiB,IAAC,SAAS,EAAC,8DAA8D,aACzF,0BACE,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,sCAAyC,EACpG,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,0HAE3C,IACrB,EACL,CAAC,YAAY,CAAC,CAAC,CAAC,CACf,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oDAAoD,gBAAY,OAAO,EAAC,OAAO,EAAE,WAAW,YAC1H,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACR,CACV,CAAC,CAAC,CAAC,IAAI,IACU,EAEpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAE5D,KAAC,eAAe,IAAC,SAAS,EAAC,4DAA4D,YACrF,kBAAS,SAAS,EAAC,4BAA4B,YAC7C,eAAK,SAAS,EAAC,+DAA+D,aAC5E,cAAK,SAAS,EAAC,8BAA8B,YAC1C,UAAU,CAAC,GAAG,CAAC,UAAC,OAAO,EAAE,KAAK;oCAC7B,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;oCAC5B,IAAM,SAAS,GAAG,UAAU,KAAK,OAAO,CAAC;oCACzC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;oCACzC,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC;oCACvE,IAAM,UAAU,GAAG,KAAK,IAAI,oBAAoB,CAAC;oCAEjD,OAAO,CACL,eAEE,SAAS,EAAE,4CAAqC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAE,aAEhL,cAAK,SAAS,EAAC,qCAAqC,GAAG,EACvD,kBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sCAAsC,EAChD,OAAO,EAAE,cAAM,OAAA,eAAe,CAAC,OAAO,CAAC,EAAxB,CAAwB,EACvC,QAAQ,EAAE,CAAC,UAAU,aAErB,cAAK,SAAS,EAAC,oCAAoC,YAChD,MAAM,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAC,UAAU,GAAG,CAAC,CAAC,CAAC,yBAAO,KAAK,GAAG,CAAC,GAAQ,GAC9D,EACN,cAAK,SAAS,EAAC,qCAAqC,YAAE,IAAI,CAAC,KAAK,GAAO,EACvE,cAAK,SAAS,EAAC,uCAAuC,YAAE,IAAI,CAAC,WAAW,GAAO,IACxE,KAfJ,OAAO,CAgBR,CACP,CAAC;gCACJ,CAAC,CAAC,GACE,EAEN,eAAK,SAAS,EAAC,4BAA4B,aACzC,eAAK,SAAS,EAAC,kCAAkC,aAC/C,oCAAY,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,UAAM,UAAU,CAAC,MAAM,IAAQ,EAC7E,2BAAO,cAAc,kBAAkB,IACnC,EACN,eAAK,SAAS,EAAC,oCAAoC,aACjD,sBAAI,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,GAAK,EACtC,cAAK,SAAS,EAAE,gDAAyC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,CAAE,YACjF,KAAC,cAAc,IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,GAAI,GAChD,IACF,EAEL,uBAAuB,EAAE,EAE1B,cAAK,SAAS,EAAC,iCAAiC,YAAE,mBAAmB,EAAE,GAAO,IAC1E,EAEL,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,8BAA8B,aAC3C,eAAM,SAAS,EAAC,oCAAoC,YAAE,YAAY,GAAQ,EAC1E,KAAC,WAAW,IACV,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,QAAQ,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,OAAO,EAAE,cAAM,OAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAxB,CAAwB,uBAG3B,IACV,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,GACE,GACM,IACjB,CACJ,CAAC;AACJ,CAAC","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { FileArchive, FolderTree, RefreshCw, Sparkles, UploadCloud, X } from \"lucide-react\";\nimport {\n useConfirmModulePackageImportMutation,\n useDismissModulePackageImportMutation,\n useLazyGetModulePackageImportStatusQuery,\n useRunModulePackageBuildMutation,\n useRunModulePackageSeedMutation,\n useValidateModulePackageImportMutation,\n} from \"../../../redux/api/moduleApi\";\nimport { showToast } from \"../../../redux/features/toastSlice\";\nimport { useDispatch } from \"react-redux\";\nimport {\n SolidButton,\n SolidCheckbox,\n SolidDialog,\n SolidDialogBody,\n SolidDialogDescription,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n SolidIcon,\n SolidSpinner,\n} from \"../../shad-cn-ui\";\nimport \"./ModulePackageDialog.css\";\n\ntype ModulePackageDialogProps = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onImported?: () => void;\n};\n\ntype ModulePackageImportContentProps = {\n onClose: () => void;\n onImported?: () => void;\n initialTransactionKey?: string | null;\n autoResume?: boolean;\n};\n\ntype StepStatus = \"pending\" | \"running\" | \"success\" | \"warning\" | \"error\";\ntype StepKey = \"preview\" | \"import\" | \"build\" | \"seed\";\n\ntype StepState = {\n title: string;\n description: string;\n status: StepStatus;\n output?: string;\n};\n\ntype StepMap = Record<StepKey, StepState>;\n\nconst STEP_ORDER: StepKey[] = [\"preview\", \"import\", \"build\", \"seed\"];\n\nfunction createInitialSteps(): StepMap {\n return {\n preview: {\n title: \"Preview\",\n description: \"Upload a `.sldx` archive to validate it and preview its contents automatically.\",\n status: \"pending\",\n },\n import: {\n title: \"Import\",\n description: \"Import the files locally. This may restart the UI and API, dismiss the popup, and require a page refresh before you continue.\",\n status: \"pending\",\n },\n build: {\n title: \"Build\",\n description: \"After the services restart and you refresh this module list page, continue with the build step.\",\n status: \"pending\",\n },\n seed: {\n title: \"Seed\",\n description: \"Seed the imported module after the build step completes.\",\n status: \"pending\",\n },\n };\n}\n\nfunction getErrorMessage(error: any): string {\n const responseData = error?.data;\n if (typeof responseData?.message === \"string\") return responseData.message;\n if (Array.isArray(responseData?.message)) return responseData.message.join(\", \");\n if (typeof responseData?.error === \"string\") return responseData.error;\n if (typeof error?.error === \"string\") return error.error;\n if (typeof error?.message === \"string\") return error.message;\n return \"Something went wrong while processing the module package.\";\n}\n\nfunction formatBytes(bytes: number) {\n if (!bytes) return \"0 B\";\n const units = [\"B\", \"KB\", \"MB\", \"GB\"];\n const exponent = Math.min(Math.floor(Math.log(bytes) / Math.log(1024)), units.length - 1);\n const value = bytes / Math.pow(1024, exponent);\n return `${value.toFixed(exponent === 0 ? 0 : 2)} ${units[exponent]}`;\n}\n\nfunction isResumableModulePackageStatus(status?: string | null) {\n return [\n \"import_running\",\n \"awaiting_restart\",\n \"build_running\",\n \"build_failed\",\n \"build_succeeded\",\n \"seed_running\",\n \"seed_failed\",\n ].includes(String(status ?? \"\"));\n}\n\nfunction getBuildStepStatusFromTransaction(transaction: any): StepStatus {\n if (transaction?.status === \"build_running\") return \"warning\";\n if (transaction?.outputs?.build) {\n return String(transaction.outputs.build).includes(\"[failed]\") ? \"warning\" : \"success\";\n }\n return \"pending\";\n}\n\nfunction hydrateStepsFromTransaction(transaction: any): StepMap {\n const nextSteps = createInitialSteps();\n const status = String(transaction?.status ?? \"\");\n\n if (transaction?.preview || transaction?.validation) {\n nextSteps.preview = {\n ...nextSteps.preview,\n status: transaction?.validation?.valid ? \"success\" : \"warning\",\n description: transaction?.validation?.valid\n ? \"Archive validated and ready for import.\"\n : \"Archive preview loaded, but the package has validation issues to fix first.\",\n };\n }\n\n if (\n transaction?.outputs?.import ||\n [\"awaiting_restart\", \"build_running\", \"build_failed\", \"build_succeeded\", \"seed_running\", \"seed_failed\", \"completed\"].includes(status)\n ) {\n nextSteps.import = {\n ...nextSteps.import,\n status: \"success\",\n description: \"Archive extracted. Wait for the UI and API to finish restarting, then refresh this page to continue.\",\n output: transaction?.outputs?.import ?? undefined,\n };\n }\n\n const buildStatus = getBuildStepStatusFromTransaction(transaction);\n if (buildStatus !== \"pending\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: buildStatus,\n description:\n status === \"build_running\"\n ? \"Build was previously started. Use Build Now to run it again once you are ready.\"\n : buildStatus === \"warning\"\n ? transaction?.errorMessage || \"The build step completed with warnings.\"\n : \"Both build targets completed successfully.\",\n output: transaction?.outputs?.build ?? undefined,\n };\n } else if (status === \"awaiting_restart\") {\n nextSteps.build = {\n ...nextSteps.build,\n status: \"pending\",\n description: \"Import completed. Once the UI and API are back, refresh this module list page and continue with Build Now.\",\n };\n }\n\n if (status === \"seed_running\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: \"Seed was previously started. Use Seed to run it again once you are ready.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"seed_failed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"warning\",\n description: transaction?.errorMessage || \"The seed step finished with warnings.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n } else if (status === \"completed\") {\n nextSteps.seed = {\n ...nextSteps.seed,\n status: \"success\",\n description: \"Module metadata seeding completed successfully.\",\n output: transaction?.outputs?.seed ?? undefined,\n };\n }\n\n return nextSteps;\n}\n\nfunction getSuggestedStepFromSteps(steps: StepMap, hasPreview: boolean, isArchiveValid: boolean): StepKey {\n if (!hasPreview || !isArchiveValid) return \"preview\";\n if (steps.import.status !== \"success\") return \"import\";\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return \"build\";\n if (steps.seed.status !== \"success\" && steps.seed.status !== \"warning\") return \"seed\";\n return \"seed\";\n}\n\nfunction StepStatusIcon({ status }: { status: StepStatus }) {\n if (status === \"running\") {\n return <SolidSpinner size={16} />;\n }\n\n if (status === \"success\") {\n return <SolidIcon name=\"si-check-circle\" />;\n }\n\n if (status === \"warning\" || status === \"error\") {\n return <SolidIcon name=\"si-exclamation-triangle\" />;\n }\n\n return <span className=\"solid-module-package-step-dot\" aria-hidden=\"true\" />;\n}\n\nexport function ModulePackageDialog({ open, onOpenChange, onImported }: ModulePackageDialogProps) {\n return (\n <SolidDialog\n open={open}\n onOpenChange={(next) => {\n if (!next) {\n onOpenChange(false);\n }\n }}\n className=\"solid-module-package-dialog\"\n dismissible={false}\n showHeader={false}\n >\n {open ? <ModulePackageImportContent onClose={() => onOpenChange(false)} onImported={onImported} /> : null}\n </SolidDialog>\n );\n}\n\nexport function ModulePackageImportContent({ onClose, onImported, initialTransactionKey = null, autoResume = false }: ModulePackageImportContentProps) {\n const dispatch = useDispatch();\n const [selectedFile, setSelectedFile] = useState<File | null>(null);\n const [previewResponse, setPreviewResponse] = useState<any | null>(null);\n const [transactionKey, setTransactionKey] = useState<string | null>(null);\n const [overwriteExisting, setOverwriteExisting] = useState(false);\n const [steps, setSteps] = useState<StepMap>(() => createInitialSteps());\n const [selectedStep, setSelectedStep] = useState<StepKey>(\"preview\");\n const [finalSummary, setFinalSummary] = useState<string | null>(null);\n const [isPreviewing, setIsPreviewing] = useState(false);\n const [isProcessing, setIsProcessing] = useState(false);\n\n const [validateModulePackageImport] = useValidateModulePackageImportMutation();\n const [confirmModulePackageImport] = useConfirmModulePackageImportMutation();\n const [dismissModulePackageImport] = useDismissModulePackageImportMutation();\n const [fetchModulePackageImportStatus] = useLazyGetModulePackageImportStatusQuery();\n const [runModulePackageBuild] = useRunModulePackageBuildMutation();\n const [runModulePackageSeed] = useRunModulePackageSeedMutation();\n\n const hasResumedTransactionRef = useRef(false);\n const lastAutoPreviewFileRef = useRef<string | null>(null);\n\n const updateStep = useCallback((key: StepKey, nextState: Partial<StepState>) => {\n setSteps((current) => ({\n ...current,\n [key]: {\n ...current[key],\n ...nextState,\n },\n }));\n }, []);\n\n const { getRootProps, getInputProps, open: openFilePicker, isDragActive } = useDropzone({\n accept: {\n \"application/octet-stream\": [\".sldx\"],\n \"application/x-zip-compressed\": [\".sldx\"],\n \"application/zip\": [\".sldx\"],\n },\n multiple: false,\n noClick: true,\n noKeyboard: true,\n onDrop: (acceptedFiles) => {\n if (acceptedFiles[0]) {\n setSelectedFile(acceptedFiles[0]);\n }\n },\n });\n\n const isArchiveValid = Boolean(previewResponse?.validation?.valid);\n const hasConflicts = (previewResponse?.conflicts?.length ?? 0) > 0;\n const suggestedStep = getSuggestedStepFromSteps(steps, Boolean(previewResponse), isArchiveValid);\n\n const canImport = steps.preview.status !== \"pending\" && isArchiveValid && steps.import.status !== \"success\" && !isProcessing && !isPreviewing;\n const canRunBuild = steps.import.status === \"success\" && !isProcessing;\n const canRunSeed = (steps.build.status === \"success\" || steps.build.status === \"warning\") && !isProcessing;\n const canContinueFromPreview = Boolean(previewResponse) && isArchiveValid && !isPreviewing;\n\n const activeStep = useMemo<StepKey>(() => {\n if (selectedStep === \"seed\" && !(steps.build.status === \"success\" || steps.build.status === \"warning\" || steps.seed.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"build\" && !(steps.import.status === \"success\" || steps.build.status !== \"pending\")) {\n return suggestedStep;\n }\n\n if (selectedStep === \"import\" && !(isArchiveValid || steps.import.status !== \"pending\")) {\n return suggestedStep;\n }\n\n return selectedStep;\n }, [\n previewResponse,\n selectedStep,\n steps.build.status,\n steps.import.status,\n steps.seed.status,\n suggestedStep,\n ]);\n\n const completedSteps = STEP_ORDER.filter((stepKey) => steps[stepKey].status === \"success\").length;\n const maxUnlockedStepIndex = useMemo(() => {\n if (!previewResponse || !isArchiveValid) return 0;\n if (steps.import.status !== \"success\") return 1;\n if (steps.build.status !== \"success\" && steps.build.status !== \"warning\") return 2;\n return 3;\n }, [isArchiveValid, previewResponse, steps.build.status, steps.import.status]);\n\n const handlePreviewArchive = useCallback(async () => {\n if (!selectedFile) {\n return;\n }\n\n const formData = new FormData();\n formData.append(\"modulePackage\", selectedFile);\n\n try {\n setIsPreviewing(true);\n const response = await validateModulePackageImport(formData).unwrap();\n setPreviewResponse(response);\n setTransactionKey(response?.transactionKey ?? null);\n setOverwriteExisting(false);\n setFinalSummary(null);\n setSteps(hydrateStepsFromTransaction(response));\n setSelectedStep(\"preview\");\n dispatch(\n showToast({\n severity: response?.validation?.valid ? \"success\" : \"warn\",\n summary: response?.validation?.valid ? \"Archive validated\" : \"Archive needs attention\",\n detail: response?.validation?.valid\n ? \"Review the preview and continue with the import when you are ready.\"\n : \"The uploaded archive is missing one or more required SolidX validation markers.\",\n }),\n );\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Preview failed\", detail: getErrorMessage(error) }));\n } finally {\n setIsPreviewing(false);\n }\n }, [dispatch, selectedFile, validateModulePackageImport]);\n\n useEffect(() => {\n if (!selectedFile) {\n lastAutoPreviewFileRef.current = null;\n return;\n }\n\n const fileSignature = `${selectedFile.name}:${selectedFile.size}:${selectedFile.lastModified}`;\n if (lastAutoPreviewFileRef.current === fileSignature) {\n return;\n }\n\n lastAutoPreviewFileRef.current = fileSignature;\n void handlePreviewArchive();\n }, [handlePreviewArchive, selectedFile]);\n\n const executeBuildStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"build\", {\n status: \"running\",\n description: \"Running `solidctl build` followed by `solidctl build --ui-only`.\",\n });\n\n const buildResponse = await runModulePackageBuild({\n transactionKey: activeTransactionKey,\n buildSolidApi: true,\n buildSolidUi: true,\n }).unwrap();\n\n const buildFailed = buildResponse?.status === \"build_failed\";\n updateStep(\"build\", {\n status: buildFailed ? \"warning\" : \"success\",\n description: buildFailed\n ? buildResponse?.errorMessage || \"The module was imported, but one or more build targets failed.\"\n : \"Both build targets completed successfully.\",\n output: buildResponse?.outputs?.build,\n });\n\n return buildResponse;\n }, [runModulePackageBuild, updateStep]);\n\n const executeSeedStep = useCallback(async (activeTransactionKey: string) => {\n updateStep(\"seed\", {\n status: \"running\",\n description: \"Running `solidctl seed --modules-to-seed` for the imported module.\",\n });\n\n const seedResponse = await runModulePackageSeed({\n transactionKey: activeTransactionKey,\n seedGlobalMetadata: false,\n }).unwrap();\n\n const seedFailed = seedResponse?.status === \"seed_failed\";\n updateStep(\"seed\", {\n status: seedFailed ? \"warning\" : \"success\",\n description: seedFailed\n ? seedResponse?.errorMessage || \"The seed step finished with warnings.\"\n : \"Module metadata seeding completed successfully.\",\n output: seedResponse?.outputs?.seed,\n });\n\n return seedResponse;\n }, [runModulePackageSeed, updateStep]);\n\n const handleRunBuild = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the build step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const buildResponse = await executeBuildStep(transactionKey);\n setPreviewResponse(buildResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n } catch (error: any) {\n updateStep(\"build\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The build step needs attention before you continue.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeBuildStep, transactionKey, updateStep]);\n\n const handleRunSeed = useCallback(async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing transaction\", detail: \"Import the module before running the seed step.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n const seedResponse = await executeSeedStep(transactionKey);\n setPreviewResponse(seedResponse);\n setSelectedStep(\"seed\");\n setIsProcessing(false);\n\n const buildFailed = steps.build.status === \"warning\" || String(previewResponse?.outputs?.build ?? \"\").includes(\"[failed]\");\n const seedFailed = seedResponse?.status === \"seed_failed\";\n\n if (!seedFailed) {\n onImported?.();\n }\n\n if (buildFailed && !seedFailed) {\n setFinalSummary(\"Module imported and seeded successfully, but the build step reported errors.\");\n return;\n }\n\n if (seedFailed) {\n setFinalSummary(\"Module imported, but the seed step needs attention.\");\n return;\n }\n\n setFinalSummary(\"Module import completed successfully.\");\n } catch (error: any) {\n updateStep(\"seed\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The seed step needs attention before the workflow can be closed.\");\n setIsProcessing(false);\n }\n }, [dispatch, executeSeedStep, onImported, previewResponse?.outputs?.build, steps.build.status, transactionKey, updateStep]);\n\n useEffect(() => {\n if (!initialTransactionKey || hasResumedTransactionRef.current) {\n return;\n }\n\n hasResumedTransactionRef.current = true;\n\n const loadTransaction = async () => {\n try {\n const transaction = await fetchModulePackageImportStatus({ transactionKey: initialTransactionKey }).unwrap();\n const hydratedSteps = hydrateStepsFromTransaction(transaction);\n setPreviewResponse(transaction);\n setTransactionKey(transaction?.transactionKey ?? null);\n setSteps(hydratedSteps);\n setSelectedStep(getSuggestedStepFromSteps(hydratedSteps, Boolean(transaction?.preview || transaction?.validation), Boolean(transaction?.validation?.valid)));\n\n if (transaction?.status === \"completed\") {\n setFinalSummary(\"Module import completed successfully.\");\n return;\n }\n\n if (transaction?.status === \"seed_failed\") {\n setFinalSummary(\"Module imported, but the seed step needs attention.\");\n return;\n }\n\n if (!autoResume || !isResumableModulePackageStatus(transaction?.status)) {\n return;\n }\n } catch (error: any) {\n dispatch(showToast({ severity: \"error\", summary: \"Unable to resume import\", detail: getErrorMessage(error) }));\n }\n };\n\n void loadTransaction();\n }, [autoResume, dispatch, fetchModulePackageImportStatus, initialTransactionKey]);\n\n const handleStartImport = async () => {\n if (!transactionKey) {\n dispatch(showToast({ severity: \"error\", summary: \"Missing preview\", detail: \"Upload an archive and wait for preview to finish first.\" }));\n return;\n }\n\n try {\n setIsProcessing(true);\n setFinalSummary(null);\n updateStep(\"import\", {\n status: \"running\",\n description: \"Extracting the archive and placing files into `solid-api` and `solid-ui`.\",\n });\n\n const response = await confirmModulePackageImport({\n transactionKey,\n overwriteExisting,\n }).unwrap();\n\n updateStep(\"import\", {\n status: \"success\",\n description: \"Archive extracted. The local UI/API may restart now, so refresh this page once both services are back.\",\n output: response?.outputs?.import,\n });\n setPreviewResponse(response);\n setIsProcessing(false);\n dispatch(\n showToast({\n severity: \"success\",\n summary: \"Module imported\",\n detail: \"The module files were placed locally. Wait for the UI and API to restart, then refresh this module list page to continue with build and seed.\",\n }),\n );\n onClose();\n } catch (error: any) {\n updateStep(\"import\", {\n status: \"error\",\n description: getErrorMessage(error),\n });\n setFinalSummary(\"The module import could not be completed.\");\n setIsProcessing(false);\n }\n };\n\n const handleClose = () => {\n if (isProcessing) return;\n if (finalSummary && transactionKey) {\n void dismissModulePackageImport({ transactionKey });\n }\n onClose();\n };\n\n const renderPreviewContent = () => {\n return (\n <div className=\"solid-module-package-preview\">\n {!selectedFile ? (\n <div\n {...getRootProps({\n className: `solid-module-package-dropzone${isDragActive ? \" is-active\" : \"\"}`,\n })}\n >\n <input {...getInputProps()} />\n <div className=\"solid-module-package-dropzone__icon\">\n <UploadCloud size={22} />\n </div>\n <div className=\"solid-module-package-dropzone__copy\">\n <div className=\"solid-module-package-dropzone__title\">Upload `.sldx` archive</div>\n <p>Choose a packaged SolidX module archive from the local file system. Preview starts automatically after upload.</p>\n </div>\n <div className=\"solid-module-package-dropzone__actions\">\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={(event) => {\n event.stopPropagation();\n openFilePicker();\n }}\n >\n Browse archive\n </SolidButton>\n </div>\n </div>\n ) : (\n <div className=\"solid-module-package-file-card\">\n <div className=\"solid-module-package-file-card__main\">\n <div className=\"solid-module-package-file-card__icon\">\n <FileArchive size={18} />\n </div>\n <div>\n <div className=\"solid-module-package-file-card__name\">{selectedFile.name}</div>\n <div className=\"solid-module-package-file-card__meta\">\n {formatBytes(selectedFile.size)}\n {isPreviewing ? \" • Previewing archive...\" : \"\"}\n </div>\n </div>\n </div>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"ghost\"\n onClick={() => {\n setSelectedFile(null);\n setPreviewResponse(null);\n setTransactionKey(null);\n setOverwriteExisting(false);\n setFinalSummary(null);\n setSelectedStep(\"preview\");\n setSteps(createInitialSteps());\n }}\n disabled={isProcessing}\n >\n Remove\n </SolidButton>\n </div>\n )}\n\n {!previewResponse ? (\n <div className=\"solid-module-package-empty\">\n {isPreviewing ? <SolidSpinner size={18} /> : <FolderTree size={18} />}\n <p>\n {isPreviewing\n ? \"Reading the archive and validating the SolidX markers.\"\n : \"Upload an archive to start the automatic preview and validation flow.\"}\n </p>\n </div>\n ) : (\n <>\n <div className=\"solid-module-package-metrics\">\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">Module</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.module?.name || \"Unknown\"}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-api files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidApiEntries ?? 0}</span>\n </div>\n <div className=\"solid-module-package-metric\">\n <span className=\"solid-module-package-metric__label\">solid-ui files</span>\n <span className=\"solid-module-package-metric__value\">{previewResponse?.preview?.contentsSummary?.solidUiEntries ?? 0}</span>\n </div>\n </div>\n\n <div className=\"solid-module-package-checklist\">\n <div className=\"solid-module-package-checklist__section\">\n <div className=\"solid-module-package-checklist__title\">Required markers</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>{previewResponse?.preview?.requiredPaths?.metadataPath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.apiModulePath}</li>\n <li>{previewResponse?.preview?.requiredPaths?.uiModulePath}</li>\n </ul>\n </div>\n\n {(previewResponse?.validation?.warnings?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Warnings</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.warnings.map((warning: string) => (\n <li key={warning}>{warning}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {(previewResponse?.validation?.errors?.length ?? 0) > 0 ? (\n <div className=\"solid-module-package-notice is-danger\">\n <div className=\"solid-module-package-notice__title\">Validation issues</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.validation.errors.map((error: string) => (\n <li key={error}>{error}</li>\n ))}\n </ul>\n </div>\n ) : null}\n\n {hasConflicts ? (\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">Existing files detected</div>\n <ul className=\"solid-module-package-inline-list\">\n {previewResponse.conflicts.map((conflict: string) => (\n <li key={conflict}>{conflict}</li>\n ))}\n </ul>\n <SolidCheckbox\n checked={overwriteExisting}\n onChange={(event) => setOverwriteExisting(event.currentTarget.checked)}\n label=\"Overwrite the existing module folders during import\"\n />\n </div>\n ) : null}\n </div>\n\n <div className=\"solid-module-package-tree\">\n {(previewResponse?.preview?.fileTree ?? []).map((entry: string) => (\n <div key={entry} className=\"solid-module-package-tree__row\">\n {entry}\n </div>\n ))}\n </div>\n </>\n )}\n </div>\n );\n };\n\n const renderActiveStepCta = () => {\n if (activeStep === \"preview\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={() => setSelectedStep(\"import\")}\n disabled={!canContinueFromPreview}\n rightIcon={<Sparkles size={14} />}\n >\n Continue to import\n </SolidButton>\n );\n }\n\n if (activeStep === \"import\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n onClick={handleStartImport}\n disabled={!canImport}\n loading={isProcessing && steps.import.status === \"running\"}\n leftIcon={<Sparkles size={14} />}\n >\n Import Module\n </SolidButton>\n );\n }\n\n if (activeStep === \"build\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunBuild}\n disabled={!canRunBuild}\n loading={isProcessing && steps.build.status === \"running\"}\n >\n {steps.build.status === \"success\" || steps.build.status === \"warning\" ? \"Build Again\" : \"Build Now\"}\n </SolidButton>\n );\n }\n\n if (activeStep === \"seed\") {\n return (\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n onClick={handleRunSeed}\n disabled={!canRunSeed}\n loading={isProcessing && steps.seed.status === \"running\"}\n >\n {steps.seed.status === \"success\" || steps.seed.status === \"warning\" ? \"Seed Again\" : \"Seed\"}\n </SolidButton>\n );\n }\n\n return null;\n };\n\n const renderActiveStepContent = () => {\n if (activeStep === \"preview\") {\n return renderPreviewContent();\n }\n\n if (activeStep === \"import\") {\n return (\n <div className=\"solid-module-package-step-stack\">\n <div className=\"solid-module-package-notice is-warning\">\n <div className=\"solid-module-package-notice__title\">What happens after import</div>\n <ul className=\"solid-module-package-inline-list\">\n <li>Depending on the files in this archive, both the UI and API services may restart immediately.</li>\n <li>This popup may get dismissed as part of that restart.</li>\n <li>Wait for both services to come back, then refresh this module list page to continue with build and seed.</li>\n </ul>\n </div>\n {steps.import.output ? <pre className=\"solid-module-package-step__output\">{steps.import.output}</pre> : null}\n </div>\n );\n }\n\n if (activeStep === \"build\" && steps.build.output) {\n return <pre className=\"solid-module-package-step__output\">{steps.build.output}</pre>;\n }\n\n if (activeStep === \"seed\" && steps.seed.output) {\n return <pre className=\"solid-module-package-step__output\">{steps.seed.output}</pre>;\n }\n\n return null;\n };\n\n return (\n <>\n <SolidDialogHeader className=\"solid-filter-dialog-head solid-module-package-dialog__header\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Import Module Package</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">\n Upload a `.sldx` archive, let SolidX preview it automatically, then move through import, build, and seed.\n </SolidDialogDescription>\n </div>\n {!isProcessing ? (\n <button type=\"button\" className=\"solid-filter-dialog-close solid-radix-dialog-close\" aria-label=\"Close\" onClick={handleClose}>\n <X size={16} />\n </button>\n ) : null}\n </SolidDialogHeader>\n\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n\n <SolidDialogBody className=\"solid-filter-dialog-body solid-module-package-dialog__body\">\n <section className=\"solid-module-package-shell\">\n <div className=\"solid-module-package-panel solid-module-package-panel--wizard\">\n <div className=\"solid-module-package-stepper\">\n {STEP_ORDER.map((stepKey, index) => {\n const step = steps[stepKey];\n const isCurrent = activeStep === stepKey;\n const isDone = step.status === \"success\";\n const isWarning = step.status === \"warning\" || step.status === \"error\";\n const isUnlocked = index <= maxUnlockedStepIndex;\n\n return (\n <div\n key={stepKey}\n className={`solid-module-package-stepper__item${isCurrent ? \" is-current\" : \"\"}${isDone ? \" is-done\" : \"\"}${isWarning ? \" is-warning\" : \"\"}${isUnlocked ? \" is-clickable\" : \"\"}`}\n >\n <div className=\"solid-module-package-stepper__track\" />\n <button\n type=\"button\"\n className=\"solid-module-package-stepper__button\"\n onClick={() => setSelectedStep(stepKey)}\n disabled={!isUnlocked}\n >\n <div className=\"solid-module-package-stepper__node\">\n {isDone ? <SolidIcon name=\"si-check\" /> : <span>{index + 1}</span>}\n </div>\n <div className=\"solid-module-package-stepper__label\">{step.title}</div>\n <div className=\"solid-module-package-stepper__caption\">{step.description}</div>\n </button>\n </div>\n );\n })}\n </div>\n\n <div className=\"solid-module-package-stage\">\n <div className=\"solid-module-package-stage__meta\">\n <span>Step {STEP_ORDER.indexOf(activeStep) + 1} of {STEP_ORDER.length}</span>\n <span>{completedSteps} completed</span>\n </div>\n <div className=\"solid-module-package-stage__header\">\n <p>{steps[activeStep].description}</p>\n <div className={`solid-module-package-stage__status is-${steps[activeStep].status}`}>\n <StepStatusIcon status={steps[activeStep].status} />\n </div>\n </div>\n\n {renderActiveStepContent()}\n\n <div className=\"solid-module-package-stage__cta\">{renderActiveStepCta()}</div>\n </div>\n\n {finalSummary ? (\n <div className=\"solid-module-package-summary\">\n <span className=\"solid-module-package-summary__copy\">{finalSummary}</span>\n <SolidButton\n type=\"button\"\n size=\"small\"\n variant=\"outline\"\n leftIcon={<RefreshCw size={14} />}\n onClick={() => window.location.reload()}\n >\n Reload\n </SolidButton>\n </div>\n ) : null}\n </div>\n </section>\n </SolidDialogBody>\n </>\n );\n}\n"]}