@wavemaker-ai/react-codegen 1.0.0-rc.309

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 (386) hide show
  1. package/build-react-web.js +149 -0
  2. package/build-react-web.js.map +1 -0
  3. package/command.js +106 -0
  4. package/command.js.map +1 -0
  5. package/dist/transpiler/index.d.mts +62 -0
  6. package/dist/transpiler/index.mjs +47857 -0
  7. package/dist/transpiler/index.mjs.map +1 -0
  8. package/dist/transpiler/wm-styles.css +1502 -0
  9. package/index.js +122 -0
  10. package/index.js.map +1 -0
  11. package/package-lock.json +5243 -0
  12. package/package.json +104 -0
  13. package/src/app.generator.js +1274 -0
  14. package/src/app.generator.js.map +1 -0
  15. package/src/download-packages.js +193 -0
  16. package/src/download-packages.js.map +1 -0
  17. package/src/fomatter.js +20 -0
  18. package/src/fomatter.js.map +1 -0
  19. package/src/gen-app-override-css.js +379 -0
  20. package/src/gen-app-override-css.js.map +1 -0
  21. package/src/genappoverridecssold-file.js +311 -0
  22. package/src/genappoverridecssold-file.js.map +1 -0
  23. package/src/handlebar-helpers.js +51 -0
  24. package/src/handlebar-helpers.js.map +1 -0
  25. package/src/increment-builder.js +85 -0
  26. package/src/increment-builder.js.map +1 -0
  27. package/src/profiles/profile.js +24 -0
  28. package/src/profiles/profile.js.map +1 -0
  29. package/src/profiles/web-preview.profile.js +15 -0
  30. package/src/profiles/web-preview.profile.js.map +1 -0
  31. package/src/project.service.js +314 -0
  32. package/src/project.service.js.map +1 -0
  33. package/src/transpile/bind.ex.transformer.js +232 -0
  34. package/src/transpile/bind.ex.transformer.js.map +1 -0
  35. package/src/transpile/components/advanced/carousel-template.transformer.js +16 -0
  36. package/src/transpile/components/advanced/carousel-template.transformer.js.map +1 -0
  37. package/src/transpile/components/advanced/carousel.transformer.js +54 -0
  38. package/src/transpile/components/advanced/carousel.transformer.js.map +1 -0
  39. package/src/transpile/components/advanced/login.transformer.js +25 -0
  40. package/src/transpile/components/advanced/login.transformer.js.map +1 -0
  41. package/src/transpile/components/advanced/marquee.transformer.js +16 -0
  42. package/src/transpile/components/advanced/marquee.transformer.js.map +1 -0
  43. package/src/transpile/components/basic/anchor.transformer.js +13 -0
  44. package/src/transpile/components/basic/anchor.transformer.js.map +1 -0
  45. package/src/transpile/components/basic/audio.transformer.js +16 -0
  46. package/src/transpile/components/basic/audio.transformer.js.map +1 -0
  47. package/src/transpile/components/basic/html.transformer.js +15 -0
  48. package/src/transpile/components/basic/html.transformer.js.map +1 -0
  49. package/src/transpile/components/basic/icon.transformer.js +16 -0
  50. package/src/transpile/components/basic/icon.transformer.js.map +1 -0
  51. package/src/transpile/components/basic/iframe.transformer.js +16 -0
  52. package/src/transpile/components/basic/iframe.transformer.js.map +1 -0
  53. package/src/transpile/components/basic/label.transformer.js +16 -0
  54. package/src/transpile/components/basic/label.transformer.js.map +1 -0
  55. package/src/transpile/components/basic/message.transformer.js +16 -0
  56. package/src/transpile/components/basic/message.transformer.js.map +1 -0
  57. package/src/transpile/components/basic/picture.transformer.js +22 -0
  58. package/src/transpile/components/basic/picture.transformer.js.map +1 -0
  59. package/src/transpile/components/basic/progress-bar.transformer.js +18 -0
  60. package/src/transpile/components/basic/progress-bar.transformer.js.map +1 -0
  61. package/src/transpile/components/basic/progress-circle.transformer.js +16 -0
  62. package/src/transpile/components/basic/progress-circle.transformer.js.map +1 -0
  63. package/src/transpile/components/basic/richtexteditor.transformer.js +21 -0
  64. package/src/transpile/components/basic/richtexteditor.transformer.js.map +1 -0
  65. package/src/transpile/components/basic/search.transformer.js +68 -0
  66. package/src/transpile/components/basic/search.transformer.js.map +1 -0
  67. package/src/transpile/components/basic/spinner.transformer.js +16 -0
  68. package/src/transpile/components/basic/spinner.transformer.js.map +1 -0
  69. package/src/transpile/components/basic/tree.transformer.js +16 -0
  70. package/src/transpile/components/basic/tree.transformer.js.map +1 -0
  71. package/src/transpile/components/basic/video.transformer.js +16 -0
  72. package/src/transpile/components/basic/video.transformer.js.map +1 -0
  73. package/src/transpile/components/chart/chart.transformer.js +13 -0
  74. package/src/transpile/components/chart/chart.transformer.js.map +1 -0
  75. package/src/transpile/components/container/accordion-pane.transformer.js +44 -0
  76. package/src/transpile/components/container/accordion-pane.transformer.js.map +1 -0
  77. package/src/transpile/components/container/accordion.transformer.js +48 -0
  78. package/src/transpile/components/container/accordion.transformer.js.map +1 -0
  79. package/src/transpile/components/container/container.transformer.js +39 -0
  80. package/src/transpile/components/container/container.transformer.js.map +1 -0
  81. package/src/transpile/components/container/layout-grid/grid-column.transformer.js +16 -0
  82. package/src/transpile/components/container/layout-grid/grid-column.transformer.js.map +1 -0
  83. package/src/transpile/components/container/layout-grid/grid-row.transformer.js +16 -0
  84. package/src/transpile/components/container/layout-grid/grid-row.transformer.js.map +1 -0
  85. package/src/transpile/components/container/layout-grid/grid.transformer.js +16 -0
  86. package/src/transpile/components/container/layout-grid/grid.transformer.js.map +1 -0
  87. package/src/transpile/components/container/linear-layout/linear-layout-item.js +16 -0
  88. package/src/transpile/components/container/linear-layout/linear-layout-item.js.map +1 -0
  89. package/src/transpile/components/container/linear-layout/linear-layout.js +16 -0
  90. package/src/transpile/components/container/linear-layout/linear-layout.js.map +1 -0
  91. package/src/transpile/components/container/panel-content.transformer.js +16 -0
  92. package/src/transpile/components/container/panel-content.transformer.js.map +1 -0
  93. package/src/transpile/components/container/panel-footer.transformer.js +11 -0
  94. package/src/transpile/components/container/panel-footer.transformer.js.map +1 -0
  95. package/src/transpile/components/container/panel.transformer.js +36 -0
  96. package/src/transpile/components/container/panel.transformer.js.map +1 -0
  97. package/src/transpile/components/container/repeat-template.transformer.js +16 -0
  98. package/src/transpile/components/container/repeat-template.transformer.js.map +1 -0
  99. package/src/transpile/components/container/tabheader.transformer.js +13 -0
  100. package/src/transpile/components/container/tabheader.transformer.js.map +1 -0
  101. package/src/transpile/components/container/tabpane.transformer.js +48 -0
  102. package/src/transpile/components/container/tabpane.transformer.js.map +1 -0
  103. package/src/transpile/components/container/tabs.transformer.js +71 -0
  104. package/src/transpile/components/container/tabs.transformer.js.map +1 -0
  105. package/src/transpile/components/container/tile.transformer.js +16 -0
  106. package/src/transpile/components/container/tile.transformer.js.map +1 -0
  107. package/src/transpile/components/container/wizard.transformer.js +80 -0
  108. package/src/transpile/components/container/wizard.transformer.js.map +1 -0
  109. package/src/transpile/components/container/wizardaction.transformer.js +120 -0
  110. package/src/transpile/components/container/wizardaction.transformer.js.map +1 -0
  111. package/src/transpile/components/container/wizardstep.transformer.js +99 -0
  112. package/src/transpile/components/container/wizardstep.transformer.js.map +1 -0
  113. package/src/transpile/components/data/card/card-actions.transformer.js +13 -0
  114. package/src/transpile/components/data/card/card-actions.transformer.js.map +1 -0
  115. package/src/transpile/components/data/card/card-content.transformer.js +33 -0
  116. package/src/transpile/components/data/card/card-content.transformer.js.map +1 -0
  117. package/src/transpile/components/data/card/card-footer.transformer.js +13 -0
  118. package/src/transpile/components/data/card/card-footer.transformer.js.map +1 -0
  119. package/src/transpile/components/data/card/card.transformer.js +13 -0
  120. package/src/transpile/components/data/card/card.transformer.js.map +1 -0
  121. package/src/transpile/components/data/form/dynamic-fields.transformer.js +24 -0
  122. package/src/transpile/components/data/form/dynamic-fields.transformer.js.map +1 -0
  123. package/src/transpile/components/data/form/form-action.transformer.js +145 -0
  124. package/src/transpile/components/data/form/form-action.transformer.js.map +1 -0
  125. package/src/transpile/components/data/form/form-body.transformer.js +16 -0
  126. package/src/transpile/components/data/form/form-body.transformer.js.map +1 -0
  127. package/src/transpile/components/data/form/form-field.transformer.js +442 -0
  128. package/src/transpile/components/data/form/form-field.transformer.js.map +1 -0
  129. package/src/transpile/components/data/form/form-footer.transformer.js +16 -0
  130. package/src/transpile/components/data/form/form-footer.transformer.js.map +1 -0
  131. package/src/transpile/components/data/form/form.transformer.js +166 -0
  132. package/src/transpile/components/data/form/form.transformer.js.map +1 -0
  133. package/src/transpile/components/data/form/util.js +70 -0
  134. package/src/transpile/components/data/form/util.js.map +1 -0
  135. package/src/transpile/components/data/list/list-content.transformer.js +35 -0
  136. package/src/transpile/components/data/list/list-content.transformer.js.map +1 -0
  137. package/src/transpile/components/data/list/list-template-transformer.js +22 -0
  138. package/src/transpile/components/data/list/list-template-transformer.js.map +1 -0
  139. package/src/transpile/components/data/list/list-transformer.js +287 -0
  140. package/src/transpile/components/data/list/list-transformer.js.map +1 -0
  141. package/src/transpile/components/data/live-filter-field.transformer.js +436 -0
  142. package/src/transpile/components/data/live-filter-field.transformer.js.map +1 -0
  143. package/src/transpile/components/data/livefilter.transformer.js +140 -0
  144. package/src/transpile/components/data/livefilter.transformer.js.map +1 -0
  145. package/src/transpile/components/data/liveform.transformer.js +159 -0
  146. package/src/transpile/components/data/liveform.transformer.js.map +1 -0
  147. package/src/transpile/components/data/table/live-table.transformer.js +15 -0
  148. package/src/transpile/components/data/table/live-table.transformer.js.map +1 -0
  149. package/src/transpile/components/data/table/table-action.transformer.js +29 -0
  150. package/src/transpile/components/data/table/table-action.transformer.js.map +1 -0
  151. package/src/transpile/components/data/table/table-column.transformer.js +121 -0
  152. package/src/transpile/components/data/table/table-column.transformer.js.map +1 -0
  153. package/src/transpile/components/data/table/table-group.transformer.js +16 -0
  154. package/src/transpile/components/data/table/table-group.transformer.js.map +1 -0
  155. package/src/transpile/components/data/table/table-row-action.transformer.js +34 -0
  156. package/src/transpile/components/data/table/table-row-action.transformer.js.map +1 -0
  157. package/src/transpile/components/data/table/table-row.transformer.js +46 -0
  158. package/src/transpile/components/data/table/table-row.transformer.js.map +1 -0
  159. package/src/transpile/components/data/table/table.transformer.js +64 -0
  160. package/src/transpile/components/data/table/table.transformer.js.map +1 -0
  161. package/src/transpile/components/data/table/utils.js +89 -0
  162. package/src/transpile/components/data/table/utils.js.map +1 -0
  163. package/src/transpile/components/dialogs/alert-dialog.transformer.js +16 -0
  164. package/src/transpile/components/dialogs/alert-dialog.transformer.js.map +1 -0
  165. package/src/transpile/components/dialogs/confirm-dialog.transformer.js +16 -0
  166. package/src/transpile/components/dialogs/confirm-dialog.transformer.js.map +1 -0
  167. package/src/transpile/components/dialogs/dialog-actions.transformer.js +56 -0
  168. package/src/transpile/components/dialogs/dialog-actions.transformer.js.map +1 -0
  169. package/src/transpile/components/dialogs/dialog-body.transformer.js +13 -0
  170. package/src/transpile/components/dialogs/dialog-body.transformer.js.map +1 -0
  171. package/src/transpile/components/dialogs/dialog.transformer.js +26 -0
  172. package/src/transpile/components/dialogs/dialog.transformer.js.map +1 -0
  173. package/src/transpile/components/dialogs/iframe-dialog.transformer.js +16 -0
  174. package/src/transpile/components/dialogs/iframe-dialog.transformer.js.map +1 -0
  175. package/src/transpile/components/dialogs/login-dialog.transformer.js +44 -0
  176. package/src/transpile/components/dialogs/login-dialog.transformer.js.map +1 -0
  177. package/src/transpile/components/dialogs/page-dialog.transformer.js +16 -0
  178. package/src/transpile/components/dialogs/page-dialog.transformer.js.map +1 -0
  179. package/src/transpile/components/element/html-transformer.js +9 -0
  180. package/src/transpile/components/element/html-transformer.js.map +1 -0
  181. package/src/transpile/components/form/button-group.transformer.js +16 -0
  182. package/src/transpile/components/form/button-group.transformer.js.map +1 -0
  183. package/src/transpile/components/form/button.transformer.js +27 -0
  184. package/src/transpile/components/form/button.transformer.js.map +1 -0
  185. package/src/transpile/components/form/rating.transformer.js +19 -0
  186. package/src/transpile/components/form/rating.transformer.js.map +1 -0
  187. package/src/transpile/components/input/calendar.transformer.js +13 -0
  188. package/src/transpile/components/input/calendar.transformer.js.map +1 -0
  189. package/src/transpile/components/input/checkbox-set.transformer.js +29 -0
  190. package/src/transpile/components/input/checkbox-set.transformer.js.map +1 -0
  191. package/src/transpile/components/input/checkbox.transformer.js +47 -0
  192. package/src/transpile/components/input/checkbox.transformer.js.map +1 -0
  193. package/src/transpile/components/input/chips.transformer.js +22 -0
  194. package/src/transpile/components/input/chips.transformer.js.map +1 -0
  195. package/src/transpile/components/input/color-picker.transformer.js +19 -0
  196. package/src/transpile/components/input/color-picker.transformer.js.map +1 -0
  197. package/src/transpile/components/input/composite.transformer.js +16 -0
  198. package/src/transpile/components/input/composite.transformer.js.map +1 -0
  199. package/src/transpile/components/input/currency.transformer.js +21 -0
  200. package/src/transpile/components/input/currency.transformer.js.map +1 -0
  201. package/src/transpile/components/input/epoch/date.transformer.js +16 -0
  202. package/src/transpile/components/input/epoch/date.transformer.js.map +1 -0
  203. package/src/transpile/components/input/epoch/datetime.transformer.js +16 -0
  204. package/src/transpile/components/input/epoch/datetime.transformer.js.map +1 -0
  205. package/src/transpile/components/input/epoch/time.transformer.js +16 -0
  206. package/src/transpile/components/input/epoch/time.transformer.js.map +1 -0
  207. package/src/transpile/components/input/file-upload.transformer.js +32 -0
  208. package/src/transpile/components/input/file-upload.transformer.js.map +1 -0
  209. package/src/transpile/components/input/number.transformer.js +20 -0
  210. package/src/transpile/components/input/number.transformer.js.map +1 -0
  211. package/src/transpile/components/input/radio-set.transformer.js +25 -0
  212. package/src/transpile/components/input/radio-set.transformer.js.map +1 -0
  213. package/src/transpile/components/input/rating.transformer.js +20 -0
  214. package/src/transpile/components/input/rating.transformer.js.map +1 -0
  215. package/src/transpile/components/input/select.transformer.js +57 -0
  216. package/src/transpile/components/input/select.transformer.js.map +1 -0
  217. package/src/transpile/components/input/slider.transformer.js +28 -0
  218. package/src/transpile/components/input/slider.transformer.js.map +1 -0
  219. package/src/transpile/components/input/switch.transformer.js +21 -0
  220. package/src/transpile/components/input/switch.transformer.js.map +1 -0
  221. package/src/transpile/components/input/text.transformer.js +21 -0
  222. package/src/transpile/components/input/text.transformer.js.map +1 -0
  223. package/src/transpile/components/input/textarea.transformer.js +19 -0
  224. package/src/transpile/components/input/textarea.transformer.js.map +1 -0
  225. package/src/transpile/components/input/upload.transformer.js +19 -0
  226. package/src/transpile/components/input/upload.transformer.js.map +1 -0
  227. package/src/transpile/components/layout/footer.transformer.js +48 -0
  228. package/src/transpile/components/layout/footer.transformer.js.map +1 -0
  229. package/src/transpile/components/layout/header.transformer.js +48 -0
  230. package/src/transpile/components/layout/header.transformer.js.map +1 -0
  231. package/src/transpile/components/layout/leftnav.transformer.js +48 -0
  232. package/src/transpile/components/layout/leftnav.transformer.js.map +1 -0
  233. package/src/transpile/components/layout/rightnav.transformer.js +48 -0
  234. package/src/transpile/components/layout/rightnav.transformer.js.map +1 -0
  235. package/src/transpile/components/layout/topnav.transformer.js +48 -0
  236. package/src/transpile/components/layout/topnav.transformer.js.map +1 -0
  237. package/src/transpile/components/nav/nav-item.transformer.js +24 -0
  238. package/src/transpile/components/nav/nav-item.transformer.js.map +1 -0
  239. package/src/transpile/components/nav/nav.transformer.js +68 -0
  240. package/src/transpile/components/nav/nav.transformer.js.map +1 -0
  241. package/src/transpile/components/nav/navbar.transformer.js +120 -0
  242. package/src/transpile/components/nav/navbar.transformer.js.map +1 -0
  243. package/src/transpile/components/navigation/breadcrumb.transformer.js +16 -0
  244. package/src/transpile/components/navigation/breadcrumb.transformer.js.map +1 -0
  245. package/src/transpile/components/navigation/menu.transformer.js +36 -0
  246. package/src/transpile/components/navigation/menu.transformer.js.map +1 -0
  247. package/src/transpile/components/navigation/popover.transformer.js +39 -0
  248. package/src/transpile/components/navigation/popover.transformer.js.map +1 -0
  249. package/src/transpile/components/page/content.transformer.js +17 -0
  250. package/src/transpile/components/page/content.transformer.js.map +1 -0
  251. package/src/transpile/components/page/page-content.transformer.js +17 -0
  252. package/src/transpile/components/page/page-content.transformer.js.map +1 -0
  253. package/src/transpile/components/page/page.transformer.js +50 -0
  254. package/src/transpile/components/page/page.transformer.js.map +1 -0
  255. package/src/transpile/components/page/partial-container.transformer.js +61 -0
  256. package/src/transpile/components/page/partial-container.transformer.js.map +1 -0
  257. package/src/transpile/components/page/partial.transformer.js +19 -0
  258. package/src/transpile/components/page/partial.transformer.js.map +1 -0
  259. package/src/transpile/components/partial/partial-content.transformer.js +56 -0
  260. package/src/transpile/components/partial/partial-content.transformer.js.map +1 -0
  261. package/src/transpile/components/prefab/prefab-container.transformer.js +32 -0
  262. package/src/transpile/components/prefab/prefab-container.transformer.js.map +1 -0
  263. package/src/transpile/components/prefab/prefab.transformer.js +91 -0
  264. package/src/transpile/components/prefab/prefab.transformer.js.map +1 -0
  265. package/src/transpile/components/transform-register.js +247 -0
  266. package/src/transpile/components/transform-register.js.map +1 -0
  267. package/src/transpile/components/utils.js +371 -0
  268. package/src/transpile/components/utils.js.map +1 -0
  269. package/src/transpile/components/wmx-component/wmx-component.transformer.js +35 -0
  270. package/src/transpile/components/wmx-component/wmx-component.transformer.js.map +1 -0
  271. package/src/transpile/id-generator.js +87 -0
  272. package/src/transpile/id-generator.js.map +1 -0
  273. package/src/transpile/index.js +65 -0
  274. package/src/transpile/index.js.map +1 -0
  275. package/src/transpile/property/base-parser.js +13 -0
  276. package/src/transpile/property/base-parser.js.map +1 -0
  277. package/src/transpile/property/property-parser.js +277 -0
  278. package/src/transpile/property/property-parser.js.map +1 -0
  279. package/src/transpile/property/show-in-device.parser.js +17 -0
  280. package/src/transpile/property/show-in-device.parser.js.map +1 -0
  281. package/src/transpile/serialize-variables.js +322 -0
  282. package/src/transpile/serialize-variables.js.map +1 -0
  283. package/src/transpile/style/background-image.parser.js +20 -0
  284. package/src/transpile/style/background-image.parser.js.map +1 -0
  285. package/src/transpile/style/border-width.parser.js +20 -0
  286. package/src/transpile/style/border-width.parser.js.map +1 -0
  287. package/src/transpile/style/dimension-style.parser.js +70 -0
  288. package/src/transpile/style/dimension-style.parser.js.map +1 -0
  289. package/src/transpile/style/horizontal-align.parser.js +24 -0
  290. package/src/transpile/style/horizontal-align.parser.js.map +1 -0
  291. package/src/transpile/style/margin.parser.js +20 -0
  292. package/src/transpile/style/margin.parser.js.map +1 -0
  293. package/src/transpile/style/multi-dimension-style.parser.js +29 -0
  294. package/src/transpile/style/multi-dimension-style.parser.js.map +1 -0
  295. package/src/transpile/style/numeric-style.parser.js +18 -0
  296. package/src/transpile/style/numeric-style.parser.js.map +1 -0
  297. package/src/transpile/style/padding.parser.js +20 -0
  298. package/src/transpile/style/padding.parser.js.map +1 -0
  299. package/src/transpile/style/split-css-shorthand.js +60 -0
  300. package/src/transpile/style/split-css-shorthand.js.map +1 -0
  301. package/src/transpile/style/style.parser.js +15 -0
  302. package/src/transpile/style/style.parser.js.map +1 -0
  303. package/src/transpile/style.transformer.js +124 -0
  304. package/src/transpile/style.transformer.js.map +1 -0
  305. package/src/transpile/transform-markup.js +283 -0
  306. package/src/transpile/transform-markup.js.map +1 -0
  307. package/src/transpile/transpile-variables.js +35 -0
  308. package/src/transpile/transpile-variables.js.map +1 -0
  309. package/src/transpile/transpile.js +1098 -0
  310. package/src/transpile/transpile.js.map +1 -0
  311. package/src/transpile/transpiler.js +26 -0
  312. package/src/transpile/transpiler.js.map +1 -0
  313. package/src/transpile/variables-template-source.js +6 -0
  314. package/src/transpile/variables-template-source.js.map +1 -0
  315. package/src/transpile/variables-template.js +15 -0
  316. package/src/transpile/variables-template.js.map +1 -0
  317. package/src/transpile/widget-inline-style-constants.js +200 -0
  318. package/src/transpile/widget-inline-style-constants.js.map +1 -0
  319. package/src/transpile/widget-inline-style-processor.js +684 -0
  320. package/src/transpile/widget-inline-style-processor.js.map +1 -0
  321. package/src/types/index.js +6 -0
  322. package/src/types/index.js.map +1 -0
  323. package/src/utils/grouping-util.js +500 -0
  324. package/src/utils/grouping-util.js.map +1 -0
  325. package/src/utils.browser.js +853 -0
  326. package/src/utils.browser.js.map +1 -0
  327. package/src/utils.js +988 -0
  328. package/src/utils.js.map +1 -0
  329. package/src/variables/variable.transformer.js +690 -0
  330. package/src/variables/variable.transformer.js.map +1 -0
  331. package/src/wmx.generator.js +216 -0
  332. package/src/wmx.generator.js.map +1 -0
  333. package/templates/.DS_Store +0 -0
  334. package/templates/app.style.template +3 -0
  335. package/templates/app.variables.template +1 -0
  336. package/templates/component/app.libs.hbs +38 -0
  337. package/templates/component/app.script.hbs +8 -0
  338. package/templates/component/app.template.hbs +47 -0
  339. package/templates/component/component.hbs +79 -0
  340. package/templates/component/component.props.template +1 -0
  341. package/templates/component/formatter.hbs +8 -0
  342. package/templates/component/layout.hbs +32 -0
  343. package/templates/component/page.hbs +16 -0
  344. package/templates/component/partial.hbs +69 -0
  345. package/templates/component/script.template +6 -0
  346. package/templates/component/style-def.template +18 -0
  347. package/templates/component/style.template +1 -0
  348. package/templates/entity-provider.template +21 -0
  349. package/templates/foundation/layout.tsx +30 -0
  350. package/templates/pages-config.template +12 -0
  351. package/templates/partial-config.template +58 -0
  352. package/templates/project/.DS_Store +0 -0
  353. package/templates/project/.env +1 -0
  354. package/templates/project/.gitignore +2 -0
  355. package/templates/project/.prettierrc +8 -0
  356. package/templates/project/README.md +60 -0
  357. package/templates/project/app/autoLayout.css +133 -0
  358. package/templates/project/app/client.layout.tsx +193 -0
  359. package/templates/project/app/components.css +182 -0
  360. package/templates/project/app/error.tsx +27 -0
  361. package/templates/project/app/globals.css +5 -0
  362. package/templates/project/app/layout.tsx +40 -0
  363. package/templates/project/app/loading.tsx +6 -0
  364. package/templates/project/app/page.tsx +3 -0
  365. package/templates/project/app/widgetInlineStylesOverride.css +1027 -0
  366. package/templates/project/app/wm-globals.css +152 -0
  367. package/templates/project/app/wm-styles.css +4 -0
  368. package/templates/project/hooks/usePageEvents.tsx +45 -0
  369. package/templates/project/libs/appConfig.ts +14 -0
  370. package/templates/project/next-env.d.ts +5 -0
  371. package/templates/project/next.config.ts +17 -0
  372. package/templates/project/package-lock.json +5397 -0
  373. package/templates/project/package.json +41 -0
  374. package/templates/project/public/error-fallback.svg +89 -0
  375. package/templates/project/public/file.svg +1 -0
  376. package/templates/project/public/globe.svg +1 -0
  377. package/templates/project/public/next.svg +1 -0
  378. package/templates/project/public/vercel.svg +1 -0
  379. package/templates/project/public/window.svg +1 -0
  380. package/templates/project/scripts/app-custom-server.js +44 -0
  381. package/templates/project/scripts/getlibs.js +53 -0
  382. package/templates/project/tsconfig.json +36 -0
  383. package/templates/project/types/runtime-config.d.ts +9 -0
  384. package/templates/resource.resolver.template +20 -0
  385. package/templates/service.defs.template +3 -0
  386. package/templates/variables.template +252 -0
@@ -0,0 +1,1502 @@
1
+ /* === ./wm-globals.css === */
2
+ .app-page .app-header-shrink {
3
+ flex-shrink: 0;
4
+ }
5
+
6
+ .wm-app
7
+ .app-composite-widget:has([disabled]):not(:has([aria-readonly='true'])) {
8
+ opacity: var(--wm-btn-disabled-opacity);
9
+ cursor: not-allowed;
10
+ pointer-events: unset;
11
+ }
12
+
13
+ /* Error Boundary Component styles Start */
14
+
15
+ .error-container {
16
+ display: flex;
17
+ flex-direction: column;
18
+ align-items: center;
19
+ justify-content: center;
20
+ min-height: 100vh;
21
+ padding: 20px;
22
+ background-color: #f5f5f5;
23
+ }
24
+
25
+ .error-info-container {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: center;
29
+ max-width: 600px;
30
+ width: 100%;
31
+ margin-bottom: 30px;
32
+ }
33
+
34
+ .error-card {
35
+ background-color: oklch(88.5% 0.062 18.334);
36
+ border-radius: 8px;
37
+ padding: 16px;
38
+ margin: 16px 0;
39
+ width: 100%;
40
+ }
41
+
42
+ .error-card-row {
43
+ display: flex;
44
+ align-items: center;
45
+ margin-bottom: 8px;
46
+ }
47
+
48
+ .error-card-row .error-fallback-erroricon {
49
+ margin-right: 8px;
50
+ color: #f44336;
51
+ }
52
+
53
+ .error-button-container {
54
+ display: flex;
55
+ gap: 16px;
56
+ justify-content: center;
57
+ flex-wrap: wrap;
58
+ }
59
+
60
+ .error-button-container .error-fallback-gotohome-btn,
61
+ .error-button-container .error-fallback-goback-btn {
62
+ min-width: 120px;
63
+ }
64
+
65
+ /* Image container styles */
66
+ .error-image-container {
67
+ margin-bottom: 20px;
68
+ width: 120px;
69
+ height: 120px;
70
+ display: flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ }
74
+
75
+ /* Title styles */
76
+ .error-fallback-title {
77
+ font-size: 24px;
78
+ font-weight: bold;
79
+ margin-bottom: 8px !important;
80
+ text-align: center;
81
+ }
82
+
83
+ /* Subtitle styles */
84
+ .error-fallback-subtitle {
85
+ font-size: 16px;
86
+ text-align: center;
87
+ }
88
+
89
+ /* Error label styles */
90
+ .error-fallback-error-label {
91
+ font-size: 16px;
92
+ font-weight: bold;
93
+ color: red;
94
+ }
95
+
96
+ /* Error message styles */
97
+ .error-fallback-error-message {
98
+ font-size: 14px;
99
+ color: #666;
100
+ word-break: break-word;
101
+ }
102
+
103
+ /* Error Boundary Component styles End */
104
+
105
+ /* for composite disabled styles */
106
+ .wm-app
107
+ .app-composite-widget:has([disabled]).app-composite-widget:has(
108
+ [disabled]
109
+ ):not(:has([aria-readonly='true'])) {
110
+ opacity: 0.38;
111
+ cursor: not-allowed;
112
+ }
113
+
114
+ .wm-app
115
+ .app-composite-widget:has([disabled]):not(:has([aria-readonly='true']))
116
+ * {
117
+ pointer-events: none;
118
+ }
119
+
120
+ .wm-app
121
+ .app-composite-widget:has(.app-richtexteditor .jodit-container [disabled]) {
122
+ pointer-events: auto !important;
123
+ opacity: 1 !important;
124
+ cursor: auto !important;
125
+ }
126
+
127
+ /* Ensure all Jodit children are interactive */
128
+ .wm-app
129
+ .app-composite-widget:has(.app-richtexteditor .jodit-container [disabled])
130
+ .app-richtexteditor
131
+ .jodit-container,
132
+ .wm-app
133
+ .app-composite-widget:has(.app-richtexteditor .jodit-container [disabled])
134
+ .app-richtexteditor
135
+ .jodit-container
136
+ * {
137
+ pointer-events: auto !important;
138
+ }
139
+
140
+ .app-richtexteditor[aria-readonly='true'] .jodit-workplace {
141
+ cursor: not-allowed !important ;
142
+ }
143
+
144
+ .app-loader {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ height: 100vh;
149
+ width: 100vw;
150
+ background-color: transparent;
151
+ position: fixed;
152
+ z-index: 1000;
153
+ }
154
+
155
+ /* === ./autoLayout.css === */
156
+ /*
157
+ * Auto Layout — Predefined Static CSS Utility Classes
158
+ /* ── Flex Container ── */
159
+
160
+ .d-flex {
161
+ display: flex !important;
162
+ }
163
+
164
+ .fd-row {
165
+ flex-direction: row !important;
166
+ }
167
+
168
+ .fd-column {
169
+ flex-direction: column !important;
170
+ }
171
+
172
+ .fw-nowrap {
173
+ flex-wrap: nowrap !important;
174
+ }
175
+
176
+ .fw-wrap {
177
+ flex-wrap: wrap !important;
178
+ }
179
+
180
+ /* ── Flex Alignment ── */
181
+
182
+ .jc-flex-start {
183
+ justify-content: flex-start !important;
184
+ }
185
+
186
+ .jc-center {
187
+ justify-content: center !important;
188
+ }
189
+
190
+ .jc-flex-end {
191
+ justify-content: flex-end !important;
192
+ }
193
+
194
+ .jc-space-between {
195
+ justify-content: space-between !important;
196
+ }
197
+
198
+ .ai-flex-start {
199
+ align-items: flex-start !important;
200
+ }
201
+
202
+ .ai-center {
203
+ align-items: center !important;
204
+ }
205
+
206
+ .ai-flex-end {
207
+ align-items: flex-end !important;
208
+ }
209
+
210
+ .ai-stretch {
211
+ align-items: stretch !important;
212
+ }
213
+
214
+ .ac-flex-start {
215
+ align-content: flex-start !important;
216
+ }
217
+
218
+ .ac-center {
219
+ align-content: center !important;
220
+ }
221
+
222
+ .ac-flex-end {
223
+ align-content: flex-end !important;
224
+ }
225
+
226
+ .ac-space-between {
227
+ align-content: space-between !important;
228
+ }
229
+
230
+ /* ── Flex Item Sizing ── */
231
+
232
+ .fs-0 {
233
+ flex-shrink: 0 !important;
234
+ }
235
+
236
+ .fg-1 {
237
+ flex-grow: 1 !important;
238
+ }
239
+
240
+ .as-stretch {
241
+ align-self: stretch !important;
242
+ }
243
+
244
+ /* ── Overflow (applied only when clipcontent is true) ── */
245
+
246
+ .ov-hidden {
247
+ overflow: hidden !important;
248
+ }
249
+
250
+ .ov-scroll {
251
+ overflow: scroll !important;
252
+ }
253
+
254
+ .ovx-scroll {
255
+ overflow-x: scroll !important;
256
+ }
257
+
258
+ .ovx-hidden {
259
+ overflow-x: hidden !important;
260
+ }
261
+
262
+ .ovy-scroll {
263
+ overflow-y: scroll !important;
264
+ }
265
+
266
+ .ovy-hidden {
267
+ overflow-y: hidden !important;
268
+ }
269
+
270
+ /* ── Position ── */
271
+
272
+ .pos-relative {
273
+ position: relative !important;
274
+ }
275
+
276
+ .pos-absolute {
277
+ position: absolute !important;
278
+ }
279
+
280
+ .pos-sticky {
281
+ position: sticky !important;
282
+ }
283
+
284
+ .pos-fixed {
285
+ position: fixed !important;
286
+ }
287
+
288
+ /* ── Dynamic CSS rules generated by codegen are appended below at build time ── */
289
+
290
+ /* === ./components.css === */
291
+ /* chips widget css */
292
+ .app-chip:hover {
293
+ background-color: var(--wm-chips-background) !important;
294
+ }
295
+
296
+ .app-chip .MuiChip-deleteIcon {
297
+ padding: 0 !important;
298
+ font-size: var(--wm-btn-icon-size) !important;
299
+ min-width: var(--wm-btn-icon-size) !important;
300
+ width: var(--wm-btn-icon-size) !important;
301
+ height: var(--wm-btn-icon-size) !important;
302
+ margin: 0 !important;
303
+ color: inherit !important;
304
+ }
305
+
306
+ /* wizard widget css */
307
+
308
+ .app-wizard .wizard-step-icon {
309
+ display: inline-flex !important;
310
+ justify-content: center !important;
311
+ align-items: center !important;
312
+ min-width: var(--wm-wizard-step-indicator-size) !important;
313
+ width: var(--wm-wizard-step-indicator-size) !important;
314
+ height: var(--wm-wizard-step-indicator-size) !important;
315
+ background: var(--wm-wizard-step-indicator-background);
316
+ border: var(--wm-wizard-step-indicator-border-width)
317
+ var(--wm-wizard-step-indicator-border-style)
318
+ var(--wm-wizard-step-indicator-border-color) !important;
319
+ border-radius: var(--wm-wizard-step-indicator-radius) !important;
320
+ }
321
+ .app-wizard .wizard-step-icon .count {
322
+ color: var(--wm-wizard-step-count-color) !important;
323
+ font-size: var(--wm-wizard-step-count-font-size) !important;
324
+ font-weight: var(--wm-wizard-step-count-font-weight) !important;
325
+ font-family: var(--wm-wizard-step-count-font-family) !important;
326
+ line-height: var(--wm-wizard-step-count-line-height) !important;
327
+ letter-spacing: var(--wm-wizard-step-count-letter-spacing) !important;
328
+ }
329
+ .app-wizard .title-wrapper .step-title {
330
+ color: var(--wm-wizard-step-title-color) !important;
331
+ font-family: var(--wm-wizard-step-title-font-family) !important;
332
+ font-weight: var(--wm-wizard-step-title-font-weight) !important;
333
+ font-size: var(--wm-wizard-step-title-font-size) !important;
334
+ line-height: var(--wm-wizard-step-title-line-height) !important;
335
+ letter-spacing: var(--wm-wizard-step-title-letter-spacing) !important;
336
+ }
337
+
338
+ .app-wizard .MuiStepConnector-root {
339
+ display: none;
340
+ }
341
+
342
+ .app-wizard .app-wizard-step .MuiStepLabel-label {
343
+ display: inline-flex;
344
+ flex-direction: row;
345
+ justify-content: flex-start;
346
+ gap: var(--wm-wizard-step-gap);
347
+ min-width: fit-content;
348
+ color: var(--wm-wizard-step-title-color);
349
+ }
350
+ .app-wizard .MuiStepLabel-label {
351
+ display: table-cell !important;
352
+ width: 50% !important;
353
+ }
354
+
355
+ .app-wizard .MuiStepLabel-root.MuiStepLabel-horizontal {
356
+ display: table-cell !important;
357
+ width: 50% !important;
358
+ }
359
+
360
+ .wm-app
361
+ .app-wizard
362
+ .app-wizard-heading
363
+ .app-wizard-steps
364
+ > .app-wizard-step
365
+ .MuiStepLabel-horizontal {
366
+ display: inline-flex !important;
367
+ flex-direction: row !important;
368
+ justify-content: flex-start !important;
369
+ min-width: fit-content !important;
370
+ color: var(--wm-wizard-step-title-color) !important;
371
+ }
372
+
373
+ .wm-app .app-wizard .app-wizard-step {
374
+ padding-left: 0px;
375
+ padding-right: 0px;
376
+ }
377
+
378
+ .wm-app .MuiStepLabel-horizontal .MuiStepLabel-horizontal {
379
+ display: inline-flex !important;
380
+ align-items: center !important;
381
+ justify-content: center !important;
382
+ color: var(--wm-anchor-color) !important;
383
+ font-size: var(--wm-anchor-font-size) !important;
384
+ font-family: var(--wm-anchor-font-family) !important;
385
+ font-weight: var(--wm-anchor-font-weight) !important;
386
+ line-height: var(--wm-anchor-line-height) !important;
387
+ letter-spacing: var(--wm-anchor-letter-spacing) !important;
388
+ text-transform: var(--wm-anchor-text-transform) !important;
389
+ text-decoration: var(--wm-anchor-text-decoration) !important;
390
+ gap: var(--wm-anchor-gap) !important;
391
+ cursor: pointer !important;
392
+ }
393
+ /* baseprefab spinner postion */
394
+ .wm-app .app-spinner.baseprefab-spinner {
395
+ background: transparent !important;
396
+ position: relative !important;
397
+ }
398
+
399
+ .wm-app
400
+ .app-date
401
+ .input-group-btn
402
+ .btn-defaul
403
+ .custom-disabled-btn
404
+ .Mui-disabled {
405
+ pointer-events: auto !important; /* allow cursor to show */
406
+ cursor: not-allowed !important;
407
+ }
408
+
409
+ /* text area readonly issue fix when readonly and disabled are false adding .wm-textarea-editable class*/
410
+ .wm-app .app-input-wrapper textarea.app-textarea.wm-textarea-editable {
411
+ pointer-events: auto !important;
412
+ }
413
+
414
+ /* date widget css Overriding */
415
+ .wm-app .app-date button {
416
+ border-width: 0;
417
+ color: initial;
418
+ }
419
+
420
+ .wm-app .app-date:not(.Mui-selected) button.MuiPickersDay-root:hover::before,
421
+ .wm-app .app-date button.MuiYearCalendar-button:hover::before,
422
+ .wm-app .app-date button.MuiMonthCalendar-button:hover::before {
423
+ --wm-btn-state-layer-opacity: 0.5;
424
+ }
425
+
426
+ .wm-app .app-date button.Mui-selected:hover::before,
427
+ .wm-app .app-date button.Mui-selected:focus::before {
428
+ background: none;
429
+ }
430
+ .wm-app .app-date button.Mui-selected {
431
+ --wm-datepicker-date-color: var(--wm-color-surface) !important;
432
+ --wm-datepicker-date-background: var(--wm-color-primary) !important;
433
+ --wm-datepicker-date-border-color: var(--wm-color-primary) !important;
434
+ background: var(--wm-datepicker-date-background) !important ;
435
+ color: var(--wm-datepicker-date-color) !important;
436
+ }
437
+ .wm-app .app-date button.Mui-disabled {
438
+ opacity: 0.38;
439
+ cursor: var(--wm-btn-cursor-disabled);
440
+ }
441
+ .wm-app .app-date .MuiPickersArrowSwitcher-root {
442
+ display: flex;
443
+ gap: 12px;
444
+ }
445
+ .wm-app .app-date .MuiDayCalendar-weekContainer button {
446
+ width: 48px;
447
+ height: 40px;
448
+ }
449
+ .MuiPickersDay-dayOutsideMonth {
450
+ color: var(--wm-datepicker-date-other-month-color);
451
+ }
452
+
453
+ .wm-app .app-date button.today-btn:hover::before,
454
+ .wm-app .app-date button.clear-btn:hover::before {
455
+ --wm-btn-state-layer-opacity: 0.5;
456
+ background-color: unset;
457
+ }
458
+
459
+ /* input component override css for start and end icons in input field */
460
+ .wm-app .app-input-wrapper .MuiInputAdornment-root {
461
+ position: unset;
462
+ margin-right: unset;
463
+ margin-left: unset;
464
+ }
465
+
466
+ /* select widget inside the table ui issue. */
467
+ .wm-app .table td.app-datagrid-cell {
468
+ line-height: unset;
469
+ }
470
+ .wm-app .app-select-wrapper .wm-native-select-root {
471
+ display: unset !important;
472
+ }
473
+
474
+ /* === ./widgetInlineStylesOverride.css === */
475
+ /* ==========================================================================
476
+ WaveMaker React Runtime — Aggregate Stylesheet
477
+ ==========================================================================
478
+
479
+
480
+ /* --------------------------------------------------------------------------
481
+ Utility classes
482
+ -------------------------------------------------------------------------- */
483
+
484
+ .wm-app .wm-hidden {
485
+ display: none;
486
+ }
487
+
488
+ .wm-app .wm-position-relative {
489
+ position: relative;
490
+ }
491
+
492
+ .wm-app .wm-overflow-inherit {
493
+ overflow: inherit;
494
+ }
495
+
496
+ .wm-app .wm-overflow-x-hidden {
497
+ overflow-x: hidden;
498
+ }
499
+
500
+ .wm-app .wm-touch-action-none {
501
+ touch-action: none;
502
+ }
503
+
504
+ .wm-app .wm-user-select-none {
505
+ user-select: none;
506
+ }
507
+
508
+ .wm-app .wm-will-change-transform {
509
+ will-change: transform;
510
+ }
511
+
512
+ .wm-app .wm-w-full {
513
+ width: 100%;
514
+ }
515
+
516
+ .wm-app .wm-text-center {
517
+ text-align: center;
518
+ }
519
+
520
+ .wm-app .wm-all-unset {
521
+ all: unset;
522
+ }
523
+
524
+ /* Image helpers */
525
+ .wm-app .wm-img-circle {
526
+ border-radius: 50%;
527
+ }
528
+
529
+ .wm-app .wm-w-32 {
530
+ width: 32px;
531
+ }
532
+
533
+ .wm-app .wm-h-32 {
534
+ height: 32px;
535
+ }
536
+
537
+ /* --------------------------------------------------------------------------
538
+ List component — inner container structure
539
+ -------------------------------------------------------------------------- */
540
+
541
+ .wm-app .app-livelist.app-panel .list-group .app-horizontal-list {
542
+ display: flex;
543
+ flex-direction: row;
544
+ flex-wrap: nowrap;
545
+ }
546
+
547
+ .wm-app
548
+ .app-livelist.app-panel
549
+ .list-group
550
+ .app-horizontal-list
551
+ > .app-list-item {
552
+ min-width: fit-content;
553
+ flex-shrink: 0;
554
+ }
555
+
556
+ /* --------------------------------------------------------------------------
557
+ List component — Load More footer
558
+ -------------------------------------------------------------------------- */
559
+
560
+ .wm-app .app-livelist.app-panel .app-livelist-container .wm-load-more-footer {
561
+ padding: 16px;
562
+ }
563
+
564
+ /* --------------------------------------------------------------------------
565
+ DnD sortable item
566
+ --wm-dnd-transform and --wm-dnd-transition are per-frame values from
567
+ @dnd-kit, set as inline style variables. All other DnD states use classes.
568
+ -------------------------------------------------------------------------- */
569
+
570
+ .wm-app .app-livelist.app-panel .app-livelist-container .wm-sortable-item {
571
+ transform: var(--wm-dnd-transform);
572
+ transition: var(--wm-dnd-transition);
573
+ }
574
+
575
+ .wm-app
576
+ .app-livelist.app-panel
577
+ .app-livelist-container
578
+ .wm-sortable-item.wm-dragging {
579
+ opacity: 0.5;
580
+ }
581
+
582
+ .wm-app
583
+ .app-livelist.app-panel
584
+ .app-livelist-container
585
+ .wm-sortable-item.wm-cursor-grab {
586
+ cursor: grab;
587
+ }
588
+ .wm-app .app-livelist .app-livelist-container.clearfix {
589
+ width: 100%;
590
+ height: 100%;
591
+ box-sizing: border-box;
592
+ }
593
+
594
+ /* --------------------------------------------------------------------------
595
+ Wm-anchor component — inline styles for legacy support
596
+ -------------------------------------------------------------------------- */
597
+
598
+ /* Former sx={{ padding: 0 }} only — do not add other properties here. */
599
+ .wm-app .app-anchor.wm-anchor-link {
600
+ padding: 0;
601
+ }
602
+
603
+ /* Former inline icon layout (iconposition). */
604
+ .wm-app .app-anchor.wm-anchor-link.wm-anchor-icon-top {
605
+ flex-direction: column;
606
+ align-items: center;
607
+ }
608
+
609
+ .wm-app .app-anchor.wm-anchor-link.wm-anchor-icon-right {
610
+ direction: rtl;
611
+ }
612
+
613
+ .wm-app .app-anchor.wm-anchor-link.wm-anchor-icon-left {
614
+ direction: ltr;
615
+ }
616
+
617
+ .wm-app .app-anchor.wm-anchor-link .wm-anchor-icon-media {
618
+ margin: var(--wm-anchor-icon-margin, 0 4px);
619
+ width: var(--wm-anchor-icon-width, var(--wm-anchor-icon-size));
620
+ height: var(--wm-anchor-icon-height, var(--wm-anchor-icon-size));
621
+ }
622
+
623
+ /* Former Badge sx (font-size + badge transform). */
624
+ .wm-app .app-anchor.wm-anchor-link .wm-anchor-badge {
625
+ font-size: inherit;
626
+ }
627
+
628
+ .wm-app .app-anchor.wm-anchor-link .wm-anchor-badge .wm-anchor-badge-mark {
629
+ transform: none;
630
+ }
631
+
632
+ /* --------------------------------------------------------------------------
633
+ WmHtml component — inline styles for legacy support
634
+ -------------------------------------------------------------------------- */
635
+
636
+ .wm-app .app-html-container.wm-html-root.wm-html-align-left {
637
+ text-align: left !important;
638
+ }
639
+
640
+ .wm-app .app-html-container.wm-html-root.wm-html-align-center {
641
+ text-align: center !important;
642
+ }
643
+
644
+ .wm-app .app-html-container.wm-html-root.wm-html-align-right {
645
+ text-align: right !important;
646
+ }
647
+
648
+ .wm-app .app-html-container.wm-html-root {
649
+ width: var(--wm-html-width);
650
+ height: var(--wm-html-height);
651
+ overflow: var(--wm-html-overflow);
652
+ }
653
+
654
+ /* --------------------------------------------------------------------------
655
+ WmIcon — layout + size via CSS vars on .wm-icon-root for legacy support
656
+ Runtime sets --icon-size, --icon-width, --icon-height (no --wm- prefix; see rules/rulz.txt).
657
+ -------------------------------------------------------------------------- */
658
+
659
+ .wm-app .app-icon-wrapper.wm-icon-root {
660
+ flex-direction: row;
661
+ font-size: var(--icon-size);
662
+ }
663
+
664
+ .wm-app .app-icon-wrapper.wm-icon-root.wm-icon-pos-right {
665
+ flex-direction: row-reverse;
666
+ }
667
+
668
+ .wm-app .app-icon-wrapper.wm-icon-root .wm-icon-media {
669
+ width: var(--icon-width, auto);
670
+ height: var(--icon-height, auto);
671
+ }
672
+
673
+ /* --------------------------------------------------------------------------
674
+ WmIframe — former inner sx: border/margin; dimensions via vars from runtime.
675
+ -------------------------------------------------------------------------- */
676
+
677
+ .wm-app .embed-responsive.app-iframe.wm-iframe-root {
678
+ width: var(--wm-iframe-width);
679
+ height: var(--wm-iframe-height);
680
+ }
681
+
682
+ .wm-app .embed-responsive.app-iframe.wm-iframe-root .wm-iframe-frame {
683
+ border: 0;
684
+ margin: 0;
685
+ width: var(--wm-iframe-inner-width);
686
+ height: var(--wm-iframe-inner-height);
687
+ }
688
+
689
+ /* --------------------------------------------------------------------------
690
+ WmLabel — former styled(Box) display; former inline styles on caption links.
691
+ -------------------------------------------------------------------------- */
692
+
693
+ .wm-label-root {
694
+ display: inline-block;
695
+ }
696
+
697
+ .wm-app .app-label.wm-label-root a {
698
+ color: blue;
699
+ text-decoration: underline;
700
+ }
701
+
702
+ /* WmPicture: former sx {{ objectFit: resizemode || "cover" }} — .app-picture + wm-picture-object-fit-* (Rule 5) */
703
+ .wm-app .app-picture.wm-picture-object-fit-fill {
704
+ object-fit: fill;
705
+ }
706
+
707
+ .wm-app .app-picture.wm-picture-object-fit-cover {
708
+ object-fit: cover;
709
+ }
710
+
711
+ .wm-app .app-picture.wm-picture-object-fit-contain {
712
+ object-fit: contain;
713
+ }
714
+
715
+ /* WmProgressBar: dynamic segment width via inline CSS var only */
716
+ .wm-app .app-progress .wm-progress-segment {
717
+ width: var(--wm-progress-segment-width);
718
+ }
719
+
720
+ /* WmVideo: former styled(video) { width: 100%; height: auto; } — .app-video .wm-video-media */
721
+ .wm-app .wm-video-media {
722
+ width: 100%;
723
+ height: auto;
724
+ }
725
+
726
+ /* WmProgressCircle — former default Box 150×150, SVG overflow, arc transform/transition, caption font sizes */
727
+ .wm-app .app-progress.circle.wm-progress-circle-root {
728
+ width: 150px;
729
+ height: 150px;
730
+ }
731
+
732
+ .wm-app .app-progress.circle.wm-progress-circle-root .wm-progress-circle-svg {
733
+ overflow: visible;
734
+ }
735
+
736
+ .wm-app .app-progress.circle.wm-progress-circle-root .wm-progress-circle-arc {
737
+ transform: rotate(-90deg);
738
+ transform-origin: 50% 50%;
739
+ transition: stroke-dashoffset 0.5s ease;
740
+ }
741
+
742
+ /* Shared 0.7em caption text (value, title, subtitle) */
743
+ .wm-app
744
+ .app-progress.circle.wm-progress-circle-root
745
+ .wm-progress-circle-caption-primary {
746
+ font-size: 0.7em;
747
+ }
748
+
749
+ .wm-app
750
+ .app-progress.circle.wm-progress-circle-root
751
+ .wm-progress-circle-caption-suffix {
752
+ font-size: 0.45em;
753
+ }
754
+
755
+ /* --------------------------------------------------------------------------
756
+ WmSearch — former inline static styles (dropdown may portal outside .app-search)
757
+ -------------------------------------------------------------------------- */
758
+
759
+ .wm-app .wm-search-popper,
760
+ .wm-search-popper {
761
+ z-index: 1300;
762
+ }
763
+
764
+ .wm-app .wm-search-group-title,
765
+ .wm-search-group-title {
766
+ padding: 10px 16px;
767
+ }
768
+
769
+ .wm-app .wm-search-match-highlight,
770
+ .wm-search-match-highlight {
771
+ color: var(--wm-search-dropdown-menu-item-color-matched);
772
+ }
773
+
774
+ .wm-app .wm-search-dropdown-item,
775
+ .wm-search-dropdown-item {
776
+ padding: 10px 16px;
777
+ }
778
+
779
+ .wm-app .wm-search-item-link,
780
+ .wm-search-item-link {
781
+ text-decoration: none;
782
+ color: inherit;
783
+ }
784
+
785
+ .wm-app .wm-search-item-image,
786
+ .wm-search-item-image {
787
+ margin-right: 8px;
788
+ border-radius: 100%;
789
+ }
790
+
791
+ .wm-app .wm-search-loading-spinner,
792
+ .wm-search-loading-spinner {
793
+ display: inline-flex;
794
+ vertical-align: middle;
795
+ margin-right: 8px;
796
+ }
797
+
798
+ .wm-app .wm-search-dropdown-message,
799
+ .wm-search-dropdown-message {
800
+ padding: 8px 16px;
801
+ }
802
+
803
+ .wm-app .wm-search-dropdown-completion,
804
+ .wm-search-dropdown-completion {
805
+ padding: 8px 16px;
806
+ text-align: center;
807
+ }
808
+
809
+ .wm-app .wm-search-dropdown-scroll,
810
+ .wm-search-dropdown-scroll {
811
+ max-height: 300px;
812
+ overflow: auto;
813
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
814
+ }
815
+
816
+ /* WmTree: former empty-state inline styles */
817
+ .wm-app .app-tree .wm-tree-empty-message {
818
+ padding: 16px;
819
+ color: inherit;
820
+ }
821
+
822
+ .wm-app .app-tree .wm-tree-children-list {
823
+ margin-left: 20px;
824
+ list-style: none;
825
+ padding: 0;
826
+ }
827
+
828
+ .wm-app .app-tree .wm-tree-children-open {
829
+ display: block;
830
+ }
831
+
832
+ .wm-app .app-tree .wm-tree-children-closed {
833
+ display: none;
834
+ }
835
+
836
+ /* WmSpinner: former styled(Box) image static styles */
837
+ .wm-app .app-spinner .wm-spinner-image {
838
+ width: var(--wm-spinner-image-width, 20px);
839
+ height: var(--wm-spinner-image-height, auto);
840
+ background-image: var(--wm-spinner-image-bg-image);
841
+ background-size: var(--wm-spinner-image-bg-size, 20px);
842
+ background-repeat: no-repeat;
843
+ display: inline-block;
844
+ }
845
+
846
+ .wm-app .app-spinner .wm-spinner-icon {
847
+ font-size: var(--wm-spinner-icon-size);
848
+ }
849
+
850
+ /* WmRichTextEditor: static placeholder textarea styles */
851
+ .wm-app .wm-richtexteditor-placeholder {
852
+ border: 1px solid;
853
+ border-radius: 4px;
854
+ padding: 8px;
855
+ font: inherit;
856
+ resize: vertical;
857
+ box-sizing: border-box;
858
+ }
859
+
860
+ /* EditorContainer */
861
+ .wm-app .wm-richtexteditor-root .jodit-workplace {
862
+ height: var(--richtexteditor-height, auto) !important;
863
+ }
864
+
865
+ .wm-richtexteditor-root .jodit-container {
866
+ border: 1px solid var(--wm-richtexteditor-divider);
867
+ }
868
+
869
+ .wm-app .wm-richtexteditor-root .jodit-react-container {
870
+ min-height: unset !important;
871
+ min-width: unset !important;
872
+ max-width: unset !important;
873
+ }
874
+
875
+ .wm-app .wm-richtexteditor-root .jodit-status-bar {
876
+ border: 1px solid var(--richtexteditor-divider);
877
+ border-top: none;
878
+ }
879
+
880
+ .wm-app .wm-richtexteditor-root .jodit-toolbar {
881
+ background: var(--richtexteditor-paper-bg);
882
+ border: 1px solid var(--richtexteditor-divider);
883
+ border-bottom: none;
884
+ }
885
+
886
+ .wm-app .wm-richtexteditor-root .jodit-toolbar__box {
887
+ background: var(--richtexteditor-paper-bg);
888
+ }
889
+
890
+ .wm-app .wm-richtexteditor-root .jodit-toolbar-button {
891
+ margin: 2px;
892
+ }
893
+
894
+ .wm-app .wm-richtexteditor-root div[contenteditable='true'] {
895
+ background: var(--wm-note-editable-background);
896
+ color: var(--wm-note-editable-color);
897
+ }
898
+
899
+ .wm-app .wm-richtexteditor-root .jodit-wysiwyg {
900
+ padding: unset !important;
901
+ margin: unset !important;
902
+ min-height: 100px !important;
903
+ }
904
+
905
+ .wm-app .wm-richtexteditor-root .jodit-wysiwyg ul,
906
+ .wm-app .wm-richtexteditor-root .jodit-wysiwyg li {
907
+ padding-left: 2em !important;
908
+ margin: 1em 0 !important;
909
+ list-style-type: unset;
910
+ }
911
+
912
+ .wm-app .wm-richtexteditor-root .jodit-container * {
913
+ box-sizing: border-box;
914
+ }
915
+
916
+ .wm-app .wm-richtexteditor-root .jodit-wysiwyg ol {
917
+ list-style-type: decimal;
918
+ padding-left: 2em !important;
919
+ margin: 1em 0 !important;
920
+ }
921
+
922
+ /* Hidden Input */
923
+ .wm-app .wm-richtexteditor-hidden-input {
924
+ display: none;
925
+ }
926
+
927
+ /* PreviewContainer */
928
+ .wm-app .wm-richtexteditor-preview {
929
+ margin-top: var(--richtexteditor-preview-margin-top);
930
+ padding: var(--richtexteditor-preview-padding);
931
+ border-radius: var(--richtexteditor-preview-radius);
932
+ background-color: var(--richtexteditor-paper-bg);
933
+ color: var(--richtexteditor-text-primary);
934
+ min-height: 100px !important;
935
+ overflow-y: auto;
936
+ }
937
+
938
+ .wm-app .wm-richtexteditor-preview img {
939
+ max-width: 100%;
940
+ }
941
+
942
+ .wm-app .wm-richtexteditor-preview table {
943
+ border-collapse: collapse;
944
+ width: 100%;
945
+ margin: var(--richtexteditor-preview-table-margin);
946
+ }
947
+
948
+ .wm-app .wm-richtexteditor-preview th,
949
+ .wm-app .wm-richtexteditor-preview td {
950
+ border: 1px solid var(--richtexteditor-divider);
951
+ padding: var(--richtexteditor-preview-cell-padding);
952
+ }
953
+
954
+ /* WmCalendar: former root inline width */
955
+ .wm-app .app-calendar.wm-calendar-root {
956
+ width: 100%;
957
+ }
958
+
959
+ /* WmChips: former MUI Box flex layout on chip list (display/flexWrap/gap) */
960
+ .wm-chips-list {
961
+ display: flex;
962
+ flex-wrap: wrap;
963
+ gap: 8px;
964
+ }
965
+
966
+ /* WmChips SortableChip: former static margin + cursor/opacity from inline style */
967
+ .wm-app .wm-chips-chip-item,
968
+ .wm-chips-chip-item {
969
+ margin: 2px;
970
+ }
971
+
972
+ .wm-app .wm-chips-chip-item.wm-chips-chip-grab,
973
+ .wm-chips-chip-item.wm-chips-chip-grab {
974
+ cursor: grab;
975
+ }
976
+
977
+ .wm-app .wm-chips-chip-item:not(.wm-chips-chip-grab),
978
+ .wm-chips-chip-item:not(.wm-chips-chip-grab) {
979
+ cursor: default;
980
+ }
981
+
982
+ .wm-app .wm-chips-chip-item.wm-chips-chip-dragging,
983
+ .wm-chips-chip-item.wm-chips-chip-dragging {
984
+ opacity: 0.5;
985
+ }
986
+
987
+ /* WmColorPicker: former root sx position:relative */
988
+ .wm-app .input-group.app-colorpicker.wm-colorpicker-root,
989
+ .input-group.app-colorpicker.wm-colorpicker-root {
990
+ position: relative;
991
+ }
992
+
993
+ /* Addon cursor: one of enabled | disabled (matches former pointer / not-allowed) */
994
+ .wm-app .wm-colorpicker-addon-enabled,
995
+ .wm-colorpicker-addon-enabled {
996
+ cursor: pointer;
997
+ }
998
+
999
+ .wm-app .wm-colorpicker-addon-disabled,
1000
+ .wm-colorpicker-addon-disabled {
1001
+ cursor: not-allowed;
1002
+ }
1003
+
1004
+ /* Portal popup: former styled(Box) ChromePicker wrapper (fixed + arrow + .chrome-picker chrome) */
1005
+ .wm-app .wm-colorpicker-popup,
1006
+ .wm-colorpicker-popup {
1007
+ position: fixed;
1008
+ z-index: 1300;
1009
+ top: var(--colorpicker-popup-top, 0);
1010
+ left: var(--colorpicker-popup-left, 0);
1011
+ margin-top: var(--colorpicker-popup-margin-top, 8px);
1012
+ }
1013
+
1014
+ .wm-app .wm-colorpicker-popup.wm-colorpicker-popup-direction-down::before,
1015
+ .wm-colorpicker-popup.wm-colorpicker-popup-direction-down::before {
1016
+ content: '';
1017
+ position: absolute;
1018
+ left: 8px;
1019
+ width: 0;
1020
+ height: 0;
1021
+ border-style: solid;
1022
+ z-index: 999999;
1023
+ top: -10px;
1024
+ border-width: 0 5px 10px 5px;
1025
+ border-color: transparent transparent #777 transparent;
1026
+ }
1027
+
1028
+ .wm-app .wm-colorpicker-popup.wm-colorpicker-popup-direction-up::before,
1029
+ .wm-colorpicker-popup.wm-colorpicker-popup-direction-up::before {
1030
+ content: '';
1031
+ position: absolute;
1032
+ left: 8px;
1033
+ width: 0;
1034
+ height: 0;
1035
+ border-style: solid;
1036
+ z-index: 999999;
1037
+ bottom: -10px;
1038
+ border-width: 10px 5px 0 5px;
1039
+ border-color: #777 transparent transparent transparent;
1040
+ }
1041
+
1042
+ .wm-app .wm-colorpicker-popup .chrome-picker,
1043
+ .wm-colorpicker-popup .chrome-picker {
1044
+ box-shadow:
1045
+ 0 2px 15px rgba(0, 0, 0, 0.12),
1046
+ 0 2px 10px rgba(0, 0, 0, 0.16) !important;
1047
+ height: auto;
1048
+ border: #777 solid 1px;
1049
+ cursor: default;
1050
+ user-select: none;
1051
+ background-color: #fff !important;
1052
+ border-radius: 4px;
1053
+ padding: 8px;
1054
+ width: 226px !important;
1055
+ box-sizing: border-box !important;
1056
+ }
1057
+
1058
+ .wm-app .wm-colorpicker-swatch,
1059
+ .wm-colorpicker-swatch {
1060
+ background-color: var(--colorpicker-swatch-bg, transparent);
1061
+ }
1062
+
1063
+ /* WmCheckboxset: former inline/sx styles */
1064
+ .wm-checkboxset-item-reset {
1065
+ all: unset;
1066
+ }
1067
+
1068
+ .wm-app .wm-checkboxset-input-readonly,
1069
+ .wm-checkboxset-input-readonly {
1070
+ background: transparent !important;
1071
+ }
1072
+
1073
+ .wm-app .wm-checkboxset-label-row {
1074
+ margin-bottom: 1px;
1075
+ }
1076
+
1077
+ .wm-app .wm-checkboxset-required-mark,
1078
+ .wm-checkboxset-required-mark {
1079
+ color: red;
1080
+ }
1081
+
1082
+ .wm-app .wm-checkboxset-group-list {
1083
+ padding-left: 2px;
1084
+ }
1085
+
1086
+ /* WmRadioset: former styled(List) static + collapsible/disabled + list width */
1087
+ .wm-radioset-styled-list {
1088
+ list-style-type: none;
1089
+ padding: 0;
1090
+ margin: 0;
1091
+ width: var(--radioset-list-width, 100%);
1092
+ }
1093
+
1094
+ .wm-radioset-styled-list.wm-radioset-list-collapsible
1095
+ li.app-list-item-group
1096
+ ul.item-group {
1097
+ padding: 0;
1098
+ display: none;
1099
+ }
1100
+
1101
+ .wm-radioset-styled-list.wm-radioset-list-collapsible
1102
+ li.app-list-item-group
1103
+ ul.collapse-open {
1104
+ display: block;
1105
+ }
1106
+
1107
+ .wm-radioset-styled-list.wm-radioset-list-disabled {
1108
+ opacity: 0.5;
1109
+ user-select: none;
1110
+ }
1111
+
1112
+ /* WmSwitch: former root / btn-group inline layout */
1113
+ .wm-app .app-switch.wm-switch-root {
1114
+ overflow: auto;
1115
+ }
1116
+
1117
+ .wm-app .app-switch .wm-switch-inner {
1118
+ overflow: visible;
1119
+ position: relative;
1120
+ }
1121
+
1122
+ /* WmFileUpload */
1123
+ .wm-app .app-fileupload.wm-fileupload-root {
1124
+ width: 100%;
1125
+ }
1126
+
1127
+ .wm-app input.file-input.wm-fileupload-file-input {
1128
+ display: none;
1129
+ }
1130
+
1131
+ .wm-app .file-list-container.wm-fileupload-file-list-container {
1132
+ overflow: auto;
1133
+ max-height: var(--fileupload-list-max-height) px;
1134
+ }
1135
+
1136
+ .wm-fileupload-media-full-width {
1137
+ width: 100%;
1138
+ }
1139
+
1140
+ /* WmNumber: former TextField static sx; dynamic props.styles on sx + htmlInput (type=text) */
1141
+ .wm-number-textfield {
1142
+ width: 100%;
1143
+ }
1144
+
1145
+ .wm-number-textfield.wm-number-textfield-disabled .wm-number-slot-input {
1146
+ -webkit-text-fill-color: inherit;
1147
+ }
1148
+
1149
+ .wm-number-helper-text {
1150
+ margin-left: 0;
1151
+ }
1152
+
1153
+ .wm-number-helper-text.wm-number-helper-text-error {
1154
+ color: #ee5f5b;
1155
+ }
1156
+
1157
+ /* WmRating only: single-class hooks (not the default pattern for other widgets — see wm-csp-widget-styles Rule 6) */
1158
+ .wm-rating-star {
1159
+ transition: all 0.2s ease-in-out;
1160
+ font-size: var(--wm-rating-star-font-size, inherit);
1161
+ color: var(--wm-rating-star-color, #ccc);
1162
+ border: 1px solid var(--wm-rating-star-border-color, transparent);
1163
+ }
1164
+
1165
+ .wm-rating-star-icon {
1166
+ color: inherit;
1167
+ }
1168
+
1169
+ .wm-rating-star.wm-rating-star-readonly {
1170
+ opacity: 0.5;
1171
+ pointer-events: none;
1172
+ }
1173
+
1174
+ /* WmSelect inline styles */
1175
+ .wm-app .app-select optgroup {
1176
+ background-color: rgba(0, 0, 0, 0.1);
1177
+ }
1178
+
1179
+ /* WmSlider inline styles */
1180
+ .wm-app .app-slider.slider .slider-container .slider-control.wm-slider-control {
1181
+ --end: var(--wm-slider-end);
1182
+ }
1183
+
1184
+ .wm-app
1185
+ .app-slider.slider
1186
+ .marker-container
1187
+ .marker-wrapper.wm-slider-marker-wrapper {
1188
+ left: var(--wm-slider-marker-left);
1189
+ }
1190
+
1191
+ /* WmText: former TextField static sx (kept low-specificity like sx output) */
1192
+ .wm-text-input:disabled {
1193
+ -webkit-text-fill-color: inherit;
1194
+ }
1195
+
1196
+ .wm-text-helper-text {
1197
+ margin-left: 0;
1198
+ }
1199
+
1200
+ .wm-text-helper-text.wm-text-helper-text-error {
1201
+ color: #ee5f5b;
1202
+ }
1203
+
1204
+ /* WmTextarea: former TextField static sx */
1205
+ .wm-textarea-root {
1206
+ width: 100%;
1207
+ }
1208
+
1209
+ .wm-textarea-input {
1210
+ height: var(--wm-textarea-height, auto) !important;
1211
+ }
1212
+
1213
+ /* WmUpload inline styles */
1214
+ .wm-upload-existing-image {
1215
+ height: 2em;
1216
+ }
1217
+
1218
+ /* WmTime: former TimePicker popper sx */
1219
+ .wm-timepicker-popper .MuiPaper-root {
1220
+ background: var(--wm-timepicker-background);
1221
+ padding: var(--wm-timepicker-padding);
1222
+ border-radius: var(--wm-timepicker-border-radius);
1223
+ width: auto;
1224
+ box-shadow: none;
1225
+ }
1226
+
1227
+ .wm-timepicker-popper .Mui-selected,
1228
+ .wm-timepicker-popper .Mui-selected:hover {
1229
+ background-color: var(--wm-btn-secondary-background) !important;
1230
+ color: var(--wm-btn-secondary-color) !important;
1231
+ }
1232
+
1233
+ /* WmDate DatePickerPopover — chained hooks for popover/calendar (dynamic width via --wm-datepicker-calendar-width on root) */
1234
+ .wm-datepicker-popover .MuiPopover-paper {
1235
+ box-shadow:
1236
+ 0px 3px 3px -2px rgba(0, 0, 0, 0.2),
1237
+ 0px 3px 4px 0px rgba(0, 0, 0, 0.14),
1238
+ 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
1239
+ border-radius: 4px;
1240
+ }
1241
+
1242
+ .wm-app .app-date.wm-datepicker-popover .MuiDateCalendar-root {
1243
+ width: var(--wm-datepicker-calendar-width);
1244
+ }
1245
+
1246
+ .wm-app .app-date.wm-datepicker-popover .wm-datepicker-popover-paper {
1247
+ width: auto;
1248
+ padding-bottom: 2px;
1249
+ background: var(--wm-datepicker-background);
1250
+ }
1251
+
1252
+ .wm-app .app-date.wm-datepicker-popover .wm-datepicker-button-bar {
1253
+ display: flex;
1254
+ justify-content: space-between;
1255
+ padding-left: 2px;
1256
+ padding-right: 2px;
1257
+ margin-top: 1px;
1258
+ }
1259
+
1260
+ .wm-app .app-date.wm-datepicker-popover .wm-datepicker-bar-btn {
1261
+ --wm-btn-color: var(--wm-color-primary);
1262
+ --wm-btn-state-layer-color: var(--wm-color-primary);
1263
+ background: none;
1264
+ border: none;
1265
+ }
1266
+
1267
+ /* WmDateTime — former styled.ts (single-class roots; calendar width stays sx on popper) */
1268
+ .wm-datetime-html-input {
1269
+ box-sizing: inherit !important;
1270
+ }
1271
+
1272
+ .wm-datetime-picker-textfield-hidden {
1273
+ display: none !important;
1274
+ }
1275
+
1276
+ .wm-datetime-input-label {
1277
+ background-color: white;
1278
+ }
1279
+
1280
+ .wm-datetime-input-label.MuiInputLabel-shrink {
1281
+ transform: translate(14px, -9px) scale(0.75);
1282
+ transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
1283
+ }
1284
+
1285
+ .wm-datetime-input-label:not(.MuiInputLabel-shrink) {
1286
+ transform: translate(14px, 16px) scale(1);
1287
+ transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
1288
+ }
1289
+
1290
+ .wm-datetime-date-picker-popper .MuiPaper-root {
1291
+ background: var(--wm-datepicker-background);
1292
+ padding: var(--wm-datepicker-padding);
1293
+ border-radius: var(--wm-datepicker-border-radius);
1294
+ }
1295
+
1296
+ .wm-datetime-date-picker-popper .MuiDateCalendar-root {
1297
+ width: var(--wm-datetime-calendar-width, 370px);
1298
+ }
1299
+
1300
+ .wm-datetime-date-picker-popper .MuiDayCalendar-header {
1301
+ justify-content: space-evenly;
1302
+ }
1303
+
1304
+ .wm-datetime-date-picker-popper .MuiDayCalendar-weekNumber {
1305
+ margin-top: 10px;
1306
+ text-align: center;
1307
+ }
1308
+
1309
+ .wm-datetime-date-picker-popper .MuiDayCalendar-slideTransition {
1310
+ min-height: 260px;
1311
+ }
1312
+
1313
+ .wm-datetime-date-picker-popper .MuiDayCalendar-weekNumberLabel {
1314
+ width: 32px !important;
1315
+ padding: 0 !important;
1316
+ }
1317
+
1318
+ .wm-datetime-date-picker-popper .MuiTypography-caption {
1319
+ padding: 0 24px;
1320
+ }
1321
+
1322
+ .wm-datetime-date-picker-popper .MuiYearCalendar-root {
1323
+ width: auto;
1324
+ }
1325
+
1326
+ .wm-datetime-date-picker-popper .MuiPickersDay-root.Mui-selected {
1327
+ background-color: var(--wm-btn-secondary-background) !important;
1328
+ color: var(--wm-btn-secondary-color);
1329
+ font-weight: bold;
1330
+ }
1331
+
1332
+ .wm-datetime-date-picker-popper .MuiMonthCalendar-button.Mui-selected {
1333
+ background-color: var(--wm-btn-secondary-background) !important;
1334
+ color: var(--wm-btn-secondary-color);
1335
+ font-weight: bold;
1336
+ }
1337
+
1338
+ .wm-datetime-date-picker-popper .MuiPickersDay-root.Mui-selected:hover {
1339
+ background-color: var(--wm-btn-secondary-background);
1340
+ color: var(--wm-btn-secondary-color);
1341
+ }
1342
+
1343
+ .wm-datetime-date-picker-popper .MuiYearCalendar-button.Mui-selected {
1344
+ background-color: var(--wm-btn-secondary-background) !important;
1345
+ color: var(--wm-btn-secondary-color);
1346
+ font-weight: bold;
1347
+ }
1348
+
1349
+ .wm-datetime-date-picker-popper .MuiPickersDay-today {
1350
+ background-color: transparent !important;
1351
+ }
1352
+
1353
+ .wm-datetime-time-picker-popper .MuiPickersLayout-root {
1354
+ display: inline-block;
1355
+ }
1356
+
1357
+ .wm-datetime-time-picker-popper .MuiPaper-root {
1358
+ background: var(--wm-timepicker-background);
1359
+ padding: var(--wm-timepicker-padding);
1360
+ border-radius: var(--wm-timepicker-border-radius);
1361
+ }
1362
+
1363
+ .wm-datetime-time-picker-popper .Mui-selected,
1364
+ .wm-datetime-time-picker-popper .Mui-selected:hover {
1365
+ background-color: var(--wm-btn-secondary-background) !important;
1366
+ color: var(--wm-btn-secondary-color) !important;
1367
+ }
1368
+
1369
+ .wm-datetime-datepicker-action-bar .MuiButton-root {
1370
+ --wm-btn-color: var(--wm-color-primary);
1371
+ --wm-btn-state-layer-color: var(--wm-color-primary);
1372
+ background: none;
1373
+ border: none;
1374
+ }
1375
+
1376
+ /* WmAccordionPane — former inline flex on title row (styles/static extraction → scoped chain; not sx) */
1377
+ .wm-app .app-accordion-panel.panel .wm-accordion-pane-title-main {
1378
+ flex: 1;
1379
+ }
1380
+
1381
+ /* --------------------------------------------------------------------------
1382
+ Layout grid — root min-width (static; designer styles still merge via inline)
1383
+ -------------------------------------------------------------------------- */
1384
+
1385
+ .wm-app .app-grid-layout.clearfix.wm-layout-grid-root {
1386
+ min-width: 100%;
1387
+ }
1388
+
1389
+ /* --------------------------------------------------------------------------
1390
+ Panel — header image icon (defaults; optional --wm-panel-icon-* from runtime)
1391
+ -------------------------------------------------------------------------- */
1392
+
1393
+ .wm-app .app-panel.panel .wm-panel-header-icon-img {
1394
+ width: var(--wm-panel-icon-width);
1395
+ height: var(--wm-panel-icon-height);
1396
+ margin: var(--wm-panel-icon-margin);
1397
+ }
1398
+
1399
+ /* --------------------------------------------------------------------------
1400
+ Tabs + TabPane — extracted from inline styles (static + state classes)
1401
+ -------------------------------------------------------------------------- */
1402
+
1403
+ .wm-app .app-tabs.clearfix .wm-tabs-heading {
1404
+ cursor: pointer;
1405
+ gap: var(--wm-anchor-gap);
1406
+ }
1407
+
1408
+ .wm-app .app-tabs.clearfix .wm-tabs-heading.wm-tabs-heading-disabled {
1409
+ cursor: not-allowed;
1410
+ }
1411
+
1412
+ .wm-app
1413
+ .app-tabs.clearfix
1414
+ .tab-content.wm-tabs-content.wm-tabs-content-vertical {
1415
+ flex: 1;
1416
+ min-width: 0;
1417
+ }
1418
+
1419
+ .wm-app .app-tabs.clearfix .tab-pane.wm-tab-pane-root {
1420
+ width: 100%;
1421
+ }
1422
+
1423
+ .wm-app .app-tabs.clearfix .tab-pane.wm-tab-pane-root.wm-tab-pane-active {
1424
+ display: block;
1425
+ }
1426
+
1427
+ .wm-app .app-tabs.clearfix .tab-pane.wm-tab-pane-root.wm-tab-pane-inactive {
1428
+ display: none;
1429
+ }
1430
+
1431
+ /* --------------------------------------------------------------------------
1432
+ App-Spinner — root for list (defaults; optional --wm-spinner-* from runtime)
1433
+ -------------------------------------------------------------------------- */
1434
+
1435
+ .wm-app .app-spinner.wm-spinner-root {
1436
+ z-index: 100;
1437
+ }
1438
+
1439
+ /* --------------------------------------------------------------------------
1440
+ WmCard — static presentation (dynamic: Card width/height; CardMedia maxHeight)
1441
+ -------------------------------------------------------------------------- */
1442
+
1443
+ .wm-app .app-card.card .app-card-avatar .wm-card-avatar-img {
1444
+ border-radius: 50%;
1445
+ }
1446
+
1447
+ .wm-app .app-card.card .app-card-image.wm-card-media-root {
1448
+ padding: 0;
1449
+ margin: 0;
1450
+ background-color: transparent;
1451
+ }
1452
+
1453
+ .wm-app
1454
+ .app-card.card
1455
+ .app-card-image.wm-card-media-root
1456
+ .card-image.wm-card-media-img {
1457
+ width: 100%;
1458
+ height: 100%;
1459
+ }
1460
+
1461
+ .wm-app .app-card-content.wm-card-content-root {
1462
+ padding: 0;
1463
+ margin: 0;
1464
+ background-color: transparent;
1465
+ }
1466
+
1467
+ .wm-app .app-card-content.wm-card-content-root:last-child {
1468
+ padding-bottom: 0;
1469
+ }
1470
+
1471
+ /* * --------------------------------------------------------------------------
1472
+ WmCard — static presentation (dynamic: Card width/height; CardMedia maxHeight)
1473
+ -------------------------------------------------------------------------- */
1474
+
1475
+ .wm-app .app-card.card .app-card-avatar .wm-card-avatar-img {
1476
+ border-radius: 50%;
1477
+ }
1478
+
1479
+ .wm-app .app-card.card .app-card-image.wm-card-media-root {
1480
+ padding: 0;
1481
+ margin: 0;
1482
+ background-color: transparent;
1483
+ }
1484
+
1485
+ .wm-app
1486
+ .app-card.card
1487
+ .app-card-image.wm-card-media-root
1488
+ .card-image.wm-card-media-img {
1489
+ width: 100%;
1490
+ height: 100%;
1491
+ }
1492
+
1493
+ .wm-app .app-card-content.wm-card-content-root {
1494
+ padding: 0;
1495
+ margin: 0;
1496
+ background-color: transparent;
1497
+ }
1498
+
1499
+ .wm-app .app-card-content.wm-card-content-root:last-child {
1500
+ padding-bottom: 0;
1501
+ }
1502
+