@schukai/monster 3.51.4 → 3.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/CHANGELOG.md +706 -0
  2. package/README.md +16 -13
  3. package/example/components/form/button.mjs +10 -0
  4. package/example/components/form/select.mjs +25 -0
  5. package/example/components/form/tree-select.mjs +27 -0
  6. package/example/components/host/host.mjs +0 -0
  7. package/example/components/notify/message.mjs +4 -0
  8. package/example/components/notify/notify.mjs +4 -0
  9. package/example/components/state/log.mjs +0 -0
  10. package/example/components/state/state.mjs +0 -0
  11. package/package.json +6 -2
  12. package/source/components/constants.mjs +132 -0
  13. package/source/components/datatable/columnbar.mjs +310 -0
  14. package/source/components/datatable/constants.mjs +121 -0
  15. package/source/components/datatable/dataset.mjs +219 -0
  16. package/source/components/datatable/datasource/dom.mjs +186 -0
  17. package/source/components/datatable/datasource/namespace.mjs +13 -0
  18. package/source/components/datatable/datasource/rest.mjs +400 -0
  19. package/source/components/datatable/datasource.mjs +102 -0
  20. package/source/components/datatable/datatable/header.mjs +268 -0
  21. package/source/components/datatable/datatable/namespace.mjs +13 -0
  22. package/source/components/datatable/datatable.mjs +789 -0
  23. package/source/components/datatable/embedded-pagination.mjs +113 -0
  24. package/source/components/datatable/filter/abstract-base.mjs +31 -0
  25. package/source/components/datatable/filter/date-range.mjs +1041 -0
  26. package/source/components/datatable/filter/input.mjs +175 -0
  27. package/source/components/datatable/filter/namespace.mjs +13 -0
  28. package/source/components/datatable/filter/range.mjs +671 -0
  29. package/source/components/datatable/filter/select.mjs +65 -0
  30. package/source/components/datatable/filter/settings.mjs +116 -0
  31. package/source/components/datatable/filter-button.mjs +98 -0
  32. package/source/components/datatable/filter.mjs +929 -0
  33. package/source/components/datatable/namespace.mjs +11 -0
  34. package/source/components/datatable/pagination.mjs +456 -0
  35. package/source/components/datatable/style/column-bar.pcss +123 -0
  36. package/source/components/datatable/style/dataset.pcss +13 -0
  37. package/source/components/datatable/style/datasource.pcss +16 -0
  38. package/source/components/datatable/style/datatable.pcss +239 -0
  39. package/source/components/datatable/style/embedded-pagination.pcss +101 -0
  40. package/source/components/datatable/style/filter-button.pcss +22 -0
  41. package/source/components/datatable/style/filter-controls-defaults.pcss +46 -0
  42. package/source/components/datatable/style/filter-date-range.pcss +9 -0
  43. package/source/components/datatable/style/filter-range.pcss +5 -0
  44. package/source/components/datatable/style/filter.pcss +156 -0
  45. package/source/components/datatable/style/pagination.pcss +59 -0
  46. package/source/components/datatable/style/select-filter.pcss +27 -0
  47. package/source/components/datatable/stylesheet/column-bar.mjs +33 -0
  48. package/source/components/datatable/stylesheet/dataset.mjs +33 -0
  49. package/source/components/datatable/stylesheet/datasource.mjs +33 -0
  50. package/source/components/datatable/stylesheet/datatable.mjs +33 -0
  51. package/source/components/datatable/stylesheet/embedded-pagination.mjs +33 -0
  52. package/source/components/datatable/stylesheet/filter-button.mjs +33 -0
  53. package/source/components/datatable/stylesheet/filter-controls-defaults.mjs +33 -0
  54. package/source/components/datatable/stylesheet/filter-date-range.mjs +33 -0
  55. package/source/components/datatable/stylesheet/filter-range.mjs +33 -0
  56. package/source/components/datatable/stylesheet/filter.mjs +33 -0
  57. package/source/components/datatable/stylesheet/namespace.mjs +13 -0
  58. package/source/components/datatable/stylesheet/pagination.mjs +33 -0
  59. package/source/components/datatable/stylesheet/select-filter.mjs +33 -0
  60. package/source/components/datatable/util.mjs +60 -0
  61. package/source/components/form/action-button.mjs +262 -0
  62. package/source/components/form/api-button.mjs +515 -0
  63. package/source/components/form/button-bar.mjs +739 -0
  64. package/source/components/form/button.mjs +350 -0
  65. package/source/components/form/confirm-button.mjs +330 -0
  66. package/source/components/form/constants.mjs +111 -0
  67. package/source/components/form/context-help.mjs +123 -0
  68. package/source/components/form/events.mjs +84 -0
  69. package/source/components/form/form.mjs +601 -0
  70. package/source/components/form/message-state-button.mjs +396 -0
  71. package/source/components/form/namespace.mjs +13 -0
  72. package/source/components/form/popper-button.mjs +435 -0
  73. package/source/components/form/popper.mjs +487 -0
  74. package/source/components/form/reload.mjs +360 -0
  75. package/source/components/form/select.mjs +2314 -0
  76. package/source/components/form/shadow-reload.mjs +137 -0
  77. package/source/components/form/state-button.mjs +182 -0
  78. package/source/components/form/style/action-button.pcss +41 -0
  79. package/source/components/form/style/api-button.pcss +0 -0
  80. package/source/components/form/style/button-bar.pcss +51 -0
  81. package/source/components/form/style/button.pcss +8 -0
  82. package/source/components/form/style/confirm-button.pcss +17 -0
  83. package/source/components/form/style/context-help.pcss +16 -0
  84. package/source/components/form/style/form.pcss +10 -0
  85. package/source/components/form/style/message-state-button.pcss +10 -0
  86. package/source/components/form/style/popper-button.pcss +16 -0
  87. package/source/components/form/style/popper.pcss +8 -0
  88. package/source/components/form/style/select.pcss +265 -0
  89. package/source/components/form/style/state-button.pcss +116 -0
  90. package/source/components/form/style/tabs.pcss +170 -0
  91. package/source/components/form/style/tree-select.pcss +81 -0
  92. package/source/components/form/stylesheet/action-button.mjs +33 -0
  93. package/source/components/form/stylesheet/api-button.mjs +33 -0
  94. package/source/components/form/stylesheet/button-bar.mjs +33 -0
  95. package/source/components/form/stylesheet/button.mjs +33 -0
  96. package/source/components/form/stylesheet/confirm-button.mjs +33 -0
  97. package/source/components/form/stylesheet/context-help.mjs +33 -0
  98. package/source/components/form/stylesheet/form.mjs +33 -0
  99. package/source/components/form/stylesheet/message-state-button.mjs +33 -0
  100. package/source/components/form/stylesheet/namespace.mjs +13 -0
  101. package/source/components/form/stylesheet/popper-button.mjs +33 -0
  102. package/source/components/form/stylesheet/popper.mjs +33 -0
  103. package/source/components/form/stylesheet/select.mjs +33 -0
  104. package/source/components/form/stylesheet/state-button.mjs +33 -0
  105. package/source/components/form/stylesheet/tabs.mjs +33 -0
  106. package/source/components/form/stylesheet/tree-select.mjs +33 -0
  107. package/source/components/form/tabs.mjs +1011 -0
  108. package/source/components/form/template.mjs +373 -0
  109. package/source/components/form/tree-select.mjs +527 -0
  110. package/source/components/form/types/namespace.mjs +13 -0
  111. package/source/components/form/types/state.mjs +93 -0
  112. package/source/components/form/util/fetch.mjs +133 -0
  113. package/source/components/form/util/floating-ui.mjs +245 -0
  114. package/source/components/form/util/namespace.mjs +13 -0
  115. package/source/components/form/util/popper.mjs +49 -0
  116. package/source/components/host/call-button.mjs +236 -0
  117. package/source/components/host/collapse.mjs +526 -0
  118. package/source/components/host/config-manager.mjs +304 -0
  119. package/source/components/host/constants.mjs +18 -0
  120. package/source/components/host/details.mjs +268 -0
  121. package/source/components/host/events.mjs +131 -0
  122. package/source/components/host/host.mjs +420 -0
  123. package/source/components/host/namespace.mjs +13 -0
  124. package/source/components/host/overlay.mjs +339 -0
  125. package/source/components/host/style/call-button.pcss +36 -0
  126. package/source/components/host/style/collapse.pcss +67 -0
  127. package/source/components/host/style/config-manager.pcss +5 -0
  128. package/source/components/host/style/details.pcss +68 -0
  129. package/source/components/host/style/host.pcss +43 -0
  130. package/source/components/host/style/overlay.pcss +73 -0
  131. package/source/components/host/style/toggle-button.pcss +36 -0
  132. package/source/components/host/style/viewer.pcss +13 -0
  133. package/source/components/host/stylesheet/call-button.mjs +33 -0
  134. package/source/components/host/stylesheet/collapse.mjs +33 -0
  135. package/source/components/host/stylesheet/config-manager.mjs +33 -0
  136. package/source/components/host/stylesheet/details.mjs +33 -0
  137. package/source/components/host/stylesheet/host.mjs +33 -0
  138. package/source/components/host/stylesheet/namespace.mjs +13 -0
  139. package/source/components/host/stylesheet/overlay.mjs +33 -0
  140. package/source/components/host/stylesheet/toggle-button.mjs +33 -0
  141. package/source/components/host/stylesheet/viewer.mjs +33 -0
  142. package/source/components/host/toggle-button.mjs +88 -0
  143. package/source/components/host/util.mjs +23 -0
  144. package/source/components/host/viewer.mjs +309 -0
  145. package/source/components/namespace.mjs +14 -0
  146. package/source/components/notify/constants.mjs +15 -0
  147. package/source/components/notify/events.mjs +15 -0
  148. package/source/components/notify/message.mjs +374 -0
  149. package/source/components/notify/namespace.mjs +15 -0
  150. package/source/components/notify/notify.mjs +236 -0
  151. package/source/components/notify/style/message.pcss +57 -0
  152. package/source/components/notify/style/notify.pcss +118 -0
  153. package/source/components/notify/stylesheet/message.mjs +33 -0
  154. package/source/components/notify/stylesheet/namespace.mjs +15 -0
  155. package/source/components/notify/stylesheet/notify.mjs +33 -0
  156. package/source/components/state/log/entry.mjs +126 -0
  157. package/source/components/state/log/namespace.mjs +13 -0
  158. package/source/components/state/log.mjs +275 -0
  159. package/source/components/state/namespace.mjs +13 -0
  160. package/source/components/state/state.mjs +131 -0
  161. package/source/components/state/style/log.pcss +111 -0
  162. package/source/components/state/style/state.pcss +113 -0
  163. package/source/components/state/stylesheet/log.mjs +33 -0
  164. package/source/components/state/stylesheet/state.mjs +33 -0
  165. package/source/components/style/badge.pcss +92 -0
  166. package/source/components/style/border.pcss +77 -0
  167. package/source/components/style/button.pcss +105 -0
  168. package/source/components/style/card.pcss +108 -0
  169. package/source/components/style/color.pcss +257 -0
  170. package/source/components/style/common.pcss +103 -0
  171. package/source/components/style/control.pcss +11 -0
  172. package/source/components/style/data-grid.pcss +43 -0
  173. package/source/components/style/display.pcss +42 -0
  174. package/source/components/style/floating-ui.pcss +33 -0
  175. package/source/components/style/form.pcss +5 -0
  176. package/source/components/style/host.pcss +15 -0
  177. package/source/components/style/link.pcss +63 -0
  178. package/source/components/style/mixin/badge.pcss +18 -0
  179. package/source/components/style/mixin/button.pcss +54 -0
  180. package/source/components/style/mixin/form.pcss +247 -0
  181. package/source/components/style/mixin/hover.pcss +8 -0
  182. package/source/components/style/mixin/media.pcss +107 -0
  183. package/source/components/style/mixin/property.pcss +288 -0
  184. package/source/components/style/mixin/skeleton.pcss +26 -0
  185. package/source/components/style/mixin/spinner.pcss +24 -0
  186. package/source/components/style/mixin/typography.pcss +52 -0
  187. package/source/components/style/normalize.pcss +14 -0
  188. package/source/components/style/popper.pcss +78 -0
  189. package/source/components/style/property.pcss +17 -0
  190. package/source/components/style/ripple.pcss +14 -0
  191. package/source/components/style/skeleton.pcss +28 -0
  192. package/source/components/style/space.pcss +47 -0
  193. package/source/components/style/spinner.pcss +6 -0
  194. package/source/components/style/table.pcss +46 -0
  195. package/source/components/style/theme.pcss +119 -0
  196. package/source/components/style/typography.pcss +131 -0
  197. package/source/components/stylesheet/badge.mjs +33 -0
  198. package/source/components/stylesheet/border.mjs +33 -0
  199. package/source/components/stylesheet/button.mjs +33 -0
  200. package/source/components/stylesheet/card.mjs +33 -0
  201. package/source/components/stylesheet/color.mjs +33 -0
  202. package/source/components/stylesheet/common.mjs +33 -0
  203. package/source/components/stylesheet/control.mjs +33 -0
  204. package/source/components/stylesheet/data-grid.mjs +33 -0
  205. package/source/components/stylesheet/display.mjs +33 -0
  206. package/source/components/stylesheet/floating-ui.mjs +33 -0
  207. package/source/components/stylesheet/form.mjs +33 -0
  208. package/source/components/stylesheet/host.mjs +33 -0
  209. package/source/components/stylesheet/link.mjs +33 -0
  210. package/source/components/stylesheet/namespace.mjs +13 -0
  211. package/source/components/stylesheet/normalize.mjs +33 -0
  212. package/source/components/stylesheet/popper.mjs +33 -0
  213. package/source/components/stylesheet/property.mjs +33 -0
  214. package/source/components/stylesheet/ripple.mjs +33 -0
  215. package/source/components/stylesheet/skeleton.mjs +33 -0
  216. package/source/components/stylesheet/space.mjs +33 -0
  217. package/source/components/stylesheet/spinner.mjs +33 -0
  218. package/source/components/stylesheet/table.mjs +33 -0
  219. package/source/components/stylesheet/theme.mjs +33 -0
  220. package/source/components/stylesheet/tree-menu.mjs +33 -0
  221. package/source/components/stylesheet/typography.mjs +33 -0
  222. package/source/components/tree-menu/namespace.mjs +13 -0
  223. package/source/components/tree-menu/style/tree-menu.pcss +107 -0
  224. package/source/components/tree-menu/stylesheet/namespace.mjs +13 -0
  225. package/source/components/tree-menu/stylesheet/tree-menu.mjs +33 -0
  226. package/source/components/tree-menu/tree-menu.mjs +660 -0
  227. package/source/constraints/abstract.mjs +17 -24
  228. package/source/constraints/abstractoperator.mjs +27 -22
  229. package/source/constraints/andoperator.mjs +20 -17
  230. package/source/constraints/invalid.mjs +17 -17
  231. package/source/constraints/isarray.mjs +20 -20
  232. package/source/constraints/isobject.mjs +20 -20
  233. package/source/constraints/oroperator.mjs +45 -45
  234. package/source/constraints/valid.mjs +17 -17
  235. package/source/data/buildmap.mjs +108 -103
  236. package/source/data/buildtree.mjs +59 -57
  237. package/source/data/datasource/dom.mjs +80 -84
  238. package/source/data/datasource/namespace.mjs +1 -1
  239. package/source/data/datasource/server/restapi/data-fetch-error.mjs +27 -25
  240. package/source/data/datasource/server/restapi/writeerror.mjs +34 -32
  241. package/source/data/datasource/server/restapi.mjs +176 -177
  242. package/source/data/datasource/server/webconnect.mjs +150 -156
  243. package/source/data/datasource/server.mjs +58 -59
  244. package/source/data/datasource/storage/localstorage.mjs +25 -24
  245. package/source/data/datasource/storage/sessionstorage.mjs +28 -25
  246. package/source/data/datasource/storage.mjs +74 -73
  247. package/source/data/datasource.mjs +176 -167
  248. package/source/data/diff.mjs +98 -97
  249. package/source/data/extend.mjs +42 -42
  250. package/source/data/pathfinder.mjs +301 -288
  251. package/source/data/pipe.mjs +36 -36
  252. package/source/data/transformer.mjs +742 -726
  253. package/source/dom/assembler.mjs +44 -44
  254. package/source/dom/attributes.mjs +142 -122
  255. package/source/dom/constants.mjs +62 -58
  256. package/source/dom/customcontrol.mjs +299 -299
  257. package/source/dom/customelement.mjs +843 -806
  258. package/source/dom/dimension.mjs +56 -46
  259. package/source/dom/events.mjs +74 -69
  260. package/source/dom/focusmanager.mjs +175 -175
  261. package/source/dom/locale.mjs +28 -28
  262. package/source/dom/ready.mjs +13 -13
  263. package/source/dom/resource/data.mjs +117 -111
  264. package/source/dom/resource/link/stylesheet.mjs +16 -16
  265. package/source/dom/resource/link.mjs +94 -96
  266. package/source/dom/resource/script.mjs +72 -74
  267. package/source/dom/resource.mjs +174 -172
  268. package/source/dom/resourcemanager.mjs +152 -156
  269. package/source/dom/slotted.mjs +78 -80
  270. package/source/dom/template.mjs +126 -112
  271. package/source/dom/theme.mjs +35 -35
  272. package/source/dom/updater.mjs +673 -651
  273. package/source/dom/util/extract-keys.mjs +34 -22
  274. package/source/dom/util/init-options-from-attributes.mjs +46 -38
  275. package/source/dom/util/namespace.mjs +13 -0
  276. package/source/dom/util/set-option-from-attribute.mjs +35 -29
  277. package/source/dom/util.mjs +112 -81
  278. package/source/dom/worker/factory.mjs +83 -83
  279. package/source/i18n/formatter.mjs +75 -73
  280. package/source/i18n/locale.mjs +146 -144
  281. package/source/i18n/provider.mjs +70 -64
  282. package/source/i18n/providers/embed.mjs +136 -127
  283. package/source/i18n/providers/fetch.mjs +84 -76
  284. package/source/i18n/translations.mjs +205 -195
  285. package/source/logging/handler/console.mjs +36 -36
  286. package/source/logging/handler.mjs +140 -140
  287. package/source/logging/logentry.mjs +25 -25
  288. package/source/logging/logger.mjs +177 -175
  289. package/source/math/random.mjs +63 -59
  290. package/source/monster.mjs +226 -217
  291. package/source/net/webconnect/message.mjs +31 -31
  292. package/source/net/webconnect.mjs +278 -271
  293. package/source/text/bracketed-key-value-hash.mjs +182 -179
  294. package/source/text/formatter.mjs +235 -210
  295. package/source/text/generate-range-comparison-expression.mjs +56 -34
  296. package/source/text/namespace.mjs +1 -1
  297. package/source/types/base.mjs +69 -61
  298. package/source/types/basewithoptions.mjs +46 -46
  299. package/source/types/binary.mjs +20 -20
  300. package/source/types/dataurl.mjs +96 -90
  301. package/source/types/global.mjs +45 -39
  302. package/source/types/id.mjs +25 -25
  303. package/source/types/internal.mjs +115 -114
  304. package/source/types/is.mjs +56 -40
  305. package/source/types/mediatype.mjs +119 -119
  306. package/source/types/namespace.mjs +1 -1
  307. package/source/types/node.mjs +160 -150
  308. package/source/types/nodelist.mjs +94 -96
  309. package/source/types/noderecursiveiterator.mjs +50 -50
  310. package/source/types/observablequeue.mjs +73 -73
  311. package/source/types/observer.mjs +104 -104
  312. package/source/types/observerlist.mjs +66 -66
  313. package/source/types/proxyobserver.mjs +210 -210
  314. package/source/types/queue.mjs +63 -63
  315. package/source/types/randomid.mjs +13 -13
  316. package/source/types/regex.mjs +3 -1
  317. package/source/types/stack.mjs +64 -64
  318. package/source/types/tokenlist.mjs +206 -205
  319. package/source/types/typeof.mjs +12 -10
  320. package/source/types/uniquequeue.mjs +48 -48
  321. package/source/types/uuid.mjs +32 -32
  322. package/source/types/validate.mjs +67 -67
  323. package/source/types/version.mjs +115 -105
  324. package/source/util/clone.mjs +103 -91
  325. package/source/util/comparator.mjs +97 -97
  326. package/source/util/deadmansswitch.mjs +40 -44
  327. package/source/util/freeze.mjs +10 -9
  328. package/source/util/namespace.mjs +1 -1
  329. package/source/util/processing.mjs +104 -105
  330. package/source/util/runtime.mjs +56 -44
  331. package/source/util/trimspaces.mjs +24 -24
  332. package/test/cases/components/form/button.mjs +122 -0
  333. package/test/cases/components/form/confirm-button.mjs +127 -0
  334. package/test/cases/components/form/form.mjs +317 -0
  335. package/test/cases/components/form/reload.mjs +188 -0
  336. package/test/cases/components/form/select.mjs +229 -0
  337. package/test/cases/components/form/state-button.mjs +130 -0
  338. package/test/cases/components/form/tabs.mjs +98 -0
  339. package/test/cases/components/form/template.mjs +189 -0
  340. package/test/cases/components/form/tree-select.mjs +216 -0
  341. package/test/cases/components/host/details.mjs +68 -0
  342. package/test/cases/components/host/host.mjs +70 -0
  343. package/test/cases/components/host/overlay.mjs +60 -0
  344. package/test/cases/components/host/util.mjs +79 -0
  345. package/test/cases/components/notify/message.mjs +39 -0
  346. package/test/cases/components/notify/notify.mjs +89 -0
  347. package/test/cases/constraint/abstractoperator.mjs +2 -2
  348. package/test/cases/constraint/andoperator.mjs +3 -3
  349. package/test/cases/constraint/invalid.mjs +1 -1
  350. package/test/cases/constraint/isarray.mjs +1 -1
  351. package/test/cases/constraint/isobject.mjs +1 -1
  352. package/test/cases/constraint/oroperator.mjs +3 -3
  353. package/test/cases/constraint/valid.mjs +1 -1
  354. package/test/cases/data/buildmap.mjs +1 -1
  355. package/test/cases/data/buildtree.mjs +2 -2
  356. package/test/cases/data/datasource/dom.mjs +1 -1
  357. package/test/cases/data/datasource/server/restapi.mjs +2 -2
  358. package/test/cases/data/datasource/server/websocket.mjs +1 -1
  359. package/test/cases/data/datasource/server.mjs +1 -1
  360. package/test/cases/data/datasource/storage/localstorage.mjs +1 -1
  361. package/test/cases/data/datasource/storage/sessionstorage.mjs +1 -1
  362. package/test/cases/data/datasource.mjs +1 -1
  363. package/test/cases/data/diff.mjs +2 -2
  364. package/test/cases/data/extend.mjs +1 -1
  365. package/test/cases/data/pathfinder.mjs +1 -1
  366. package/test/cases/data/pipe.mjs +2 -2
  367. package/test/cases/data/transformer.mjs +3 -4
  368. package/test/cases/dom/assembler.mjs +1 -1
  369. package/test/cases/dom/attributes.mjs +1 -1
  370. package/test/cases/dom/customcontrol.mjs +8 -7
  371. package/test/cases/dom/customelement-initfromscripthost.mjs +6 -6
  372. package/test/cases/dom/customelement.mjs +7 -7
  373. package/test/cases/dom/dimension.mjs +4 -4
  374. package/test/cases/dom/events.mjs +1 -1
  375. package/test/cases/dom/find.mjs +1 -1
  376. package/test/cases/dom/focusmanager.mjs +1 -1
  377. package/test/cases/dom/locale.mjs +2 -2
  378. package/test/cases/dom/ready.mjs +1 -1
  379. package/test/cases/dom/resource/data.mjs +3 -3
  380. package/test/cases/dom/resource/link/stylesheet.mjs +3 -3
  381. package/test/cases/dom/resource/link.mjs +3 -3
  382. package/test/cases/dom/resource/script.mjs +3 -3
  383. package/test/cases/dom/resource.mjs +1 -1
  384. package/test/cases/dom/resourcemanager.mjs +1 -1
  385. package/test/cases/dom/slotted-nodes.mjs +1 -1
  386. package/test/cases/dom/template.mjs +2 -2
  387. package/test/cases/dom/theme.mjs +2 -2
  388. package/test/cases/dom/updater.mjs +4 -4
  389. package/test/cases/dom/util/extract-keys.mjs +1 -1
  390. package/test/cases/dom/util/init-options-from-attributes.mjs +1 -1
  391. package/test/cases/dom/util.mjs +2 -2
  392. package/test/cases/dom/worker/factory.mjs +2 -2
  393. package/test/cases/i18n/formatter.mjs +2 -2
  394. package/test/cases/i18n/locale.mjs +1 -1
  395. package/test/cases/i18n/provider.mjs +4 -4
  396. package/test/cases/i18n/providers/embed.mjs +3 -3
  397. package/test/cases/i18n/providers/fetch.mjs +3 -3
  398. package/test/cases/i18n/translations.mjs +3 -3
  399. package/test/cases/logging/handler/console.mjs +3 -3
  400. package/test/cases/logging/handler.mjs +3 -3
  401. package/test/cases/logging/logentry.mjs +1 -1
  402. package/test/cases/logging/logger.mjs +1 -1
  403. package/test/cases/math/random.mjs +1 -2
  404. package/test/cases/monster.mjs +2 -2
  405. package/test/cases/net/webconnect/message.mjs +1 -2
  406. package/test/cases/net/webconnect.mjs +3 -3
  407. package/test/cases/text/bracketed-key-value-hash.mjs +1 -1
  408. package/test/cases/text/formatter.mjs +1 -1
  409. package/test/cases/text/util.mjs +1 -1
  410. package/test/cases/types/base.mjs +2 -2
  411. package/test/cases/types/basewithoptions.mjs +1 -1
  412. package/test/cases/types/binary.mjs +1 -1
  413. package/test/cases/types/dataurl.mjs +1 -1
  414. package/test/cases/types/global.mjs +1 -1
  415. package/test/cases/types/id.mjs +1 -1
  416. package/test/cases/types/internal.mjs +2 -2
  417. package/test/cases/types/is.mjs +2 -2
  418. package/test/cases/types/mediatype.mjs +1 -1
  419. package/test/cases/types/node.mjs +4 -4
  420. package/test/cases/types/nodelist.mjs +2 -2
  421. package/test/cases/types/noderecursiveiterator.mjs +3 -3
  422. package/test/cases/types/observablequeue.mjs +2 -2
  423. package/test/cases/types/observer.mjs +1 -1
  424. package/test/cases/types/observerlist.mjs +2 -2
  425. package/test/cases/types/proxyobserver.mjs +4 -4
  426. package/test/cases/types/queue.mjs +1 -1
  427. package/test/cases/types/randomid.mjs +1 -1
  428. package/test/cases/types/regex.mjs +1 -1
  429. package/test/cases/types/stack.mjs +1 -1
  430. package/test/cases/types/tokenlist.mjs +1 -1
  431. package/test/cases/types/typeof.mjs +2 -2
  432. package/test/cases/types/uniquequeue.mjs +1 -1
  433. package/test/cases/types/uuid.mjs +1 -1
  434. package/test/cases/types/validate.mjs +3 -3
  435. package/test/cases/types/version.mjs +1 -1
  436. package/test/cases/util/clone.mjs +1 -1
  437. package/test/cases/util/comparator.mjs +1 -1
  438. package/test/cases/util/deadmansswitch.mjs +1 -1
  439. package/test/cases/util/freeze.mjs +1 -1
  440. package/test/cases/util/processing.mjs +1 -1
  441. package/test/cases/util/trimspaces.mjs +1 -1
  442. package/test/util/chai-dom.mjs +2 -2
  443. package/test/util/intersection-mock.mjs +69 -0
  444. package/test/util/jsdom.mjs +43 -27
  445. package/test/util/localstorage.mjs +1 -0
  446. package/test/util/resize-observer.mjs +29 -0
  447. package/test/util/websocket.mjs +5 -2
  448. package/test/web/import.js +92 -73
  449. package/test/web/test.html +28 -5
  450. package/test/web/tests.js +29430 -15209
  451. package/CHANGELOG +0 -438
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
+ */
7
+
8
+ import {
9
+ ATTRIBUTE_ERRORMESSAGE,
10
+ ATTRIBUTE_PREFIX,
11
+ ATTRIBUTE_ROLE,
12
+ } from "../../dom/constants.mjs";
13
+ import {
14
+ assembleMethodSymbol,
15
+ CustomElement,
16
+ initMethodSymbol,
17
+ registerCustomElement,
18
+ } from "../../dom/customelement.mjs";
19
+ import { findTargetElementFromEvent } from "../../dom/events.mjs";
20
+ import { isString } from "../../types/is.mjs";
21
+ import { MessageStyleSheet } from "./stylesheet/message.mjs";
22
+
23
+ export { Message };
24
+
25
+ /**
26
+ * @private
27
+ * @type {symbol}
28
+ */
29
+ const controlElementSymbol = Symbol("controlElement");
30
+
31
+ /**
32
+ * @private
33
+ * @type {symbol}
34
+ */
35
+ const removeElementSymbol = Symbol("removeElement");
36
+
37
+ /**
38
+ * @private
39
+ * @type {symbol}
40
+ */
41
+ const timerSymbol = Symbol("timer");
42
+
43
+ /**
44
+ * @private
45
+ * @type {symbol}
46
+ */
47
+ const mouseenterEventHandlerSymbol = Symbol("mouseenterEventHandler");
48
+
49
+ /**
50
+ * @private
51
+ * @type {symbol}
52
+ */
53
+ const mouseleaveEventHandlerSymbol = Symbol("mouseleaveEventHandler");
54
+
55
+ /**
56
+ * @private
57
+ * @type {symbol}
58
+ */
59
+ const removeEventHandlerSymbol = Symbol("removeEventHandler");
60
+
61
+ /**
62
+ * This CustomControl creates a notification element with a variety of options.
63
+ *
64
+ * <img src="./images/message.png">
65
+ *
66
+ * Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library.
67
+ *
68
+ * You can create this control either by specifying the HTML tag `<monster-notify-message />` directly in the HTML
69
+ *
70
+ * ```html
71
+ * <monster-notify-message></monster-notify-message>
72
+ * ```
73
+ *
74
+ * or using Javascript via the `document.createElement('monster-notify');` method.
75
+ *
76
+ * ```javascript
77
+ * import '@schukai/monster/source/components/notify/message.js';
78
+ * document.createElement('monster-notify-message');
79
+ * ```
80
+ *
81
+ * @externalExample ../../../example/components/notify/message.mjs
82
+ * @startuml message.png
83
+ * skinparam monochrome true
84
+ * skinparam shadowing false
85
+ * HTMLElement <|-- CustomElement
86
+ * CustomElement <|-- Message
87
+ * @enduml
88
+ * @since 1.0.0
89
+ * @copyright schukai GmbH
90
+ * @memberOf Monster.Components.Notify
91
+ * @summary A highly configurable select control
92
+ * @fires Monster.Components.Notify.event:monster-xxxx
93
+ */
94
+ class Message extends CustomElement {
95
+ /**
96
+ * The defaults can be set either directly in the object or via an attribute in the HTML tag.
97
+ * The value of the attribute `data-monster-options` in the HTML tag must be a JSON string.
98
+ *
99
+ * ```
100
+ * <monster-message data-monster-options="{}"></monster-message>
101
+ * ```
102
+ *
103
+ * Since 1.18.0 the JSON can be specified as a DataURI.
104
+ *
105
+ * ```
106
+ * new Monster.Types.DataUrl(btoa(JSON.stringify({
107
+ * timeout: 3000,
108
+ * features: {
109
+ * clear: true,
110
+ * disappear: true
111
+ * }
112
+ * })),'application/json',true).toString()
113
+ * ```
114
+ *
115
+ * @property {string} templates Template definitions
116
+ * @property {Object} templates Template definitions
117
+ * @property {integer} timeout time in milliseconds until the message should be removed. The timeout can be disabled via the feature `disappear`.
118
+ * @property {Object} features
119
+ * @property {boolean} features.clear show clear button
120
+ * @property {boolean} features.disappear automatically remove the message after the timeout
121
+ * @property {string} templates.main Main template
122
+ *
123
+ */
124
+ get defaults() {
125
+ return Object.assign(
126
+ {},
127
+ super.defaults,
128
+ {
129
+ timeout: 6000,
130
+ features: {
131
+ clear: true,
132
+ disappear: true,
133
+ },
134
+ content: "<slot></slot>",
135
+ templates: {
136
+ main: getTemplate(),
137
+ },
138
+ },
139
+ initOptionsFromArguments.call(this),
140
+ );
141
+ }
142
+
143
+ /**
144
+ *
145
+ * @return {Monster.Components.Notify.Message}
146
+ */
147
+ [assembleMethodSymbol]() {
148
+ super[assembleMethodSymbol]();;
149
+ initControlReferences.call(this);
150
+ initEventhandler.call(this);
151
+ return this;
152
+ }
153
+
154
+ /**
155
+ *
156
+ * @return {string}
157
+ */
158
+ static getTag() {
159
+ return "monster-notify-message";
160
+ }
161
+
162
+ /**
163
+ *
164
+ * @return {CSSStyleSheet[]}
165
+ */
166
+ static getCSSStyleSheet() {
167
+ return [MessageStyleSheet];
168
+ }
169
+
170
+ /**
171
+ *
172
+ */
173
+ [initMethodSymbol]() {;
174
+ super[initMethodSymbol]();
175
+ }
176
+
177
+ /**
178
+ * @return {void}
179
+ */
180
+ connectedCallback() {
181
+ super.connectedCallback();;
182
+
183
+ if (this.getOption("features.disappear") === true) {
184
+ startFadeout.call(this);
185
+ this.addEventListener("mouseenter", this[mouseenterEventHandlerSymbol]);
186
+ }
187
+ }
188
+
189
+ /**
190
+ * @return {void}
191
+ */
192
+ disconnectedCallback() {
193
+ super.disconnectedCallback();
194
+ stopFadeout.call(this);;
195
+
196
+ if (this.getOption("features.disappear") === true) {
197
+ this.removeEventListener(
198
+ "mouseenter",
199
+ this[mouseenterEventHandlerSymbol],
200
+ );
201
+ this.removeEventListener(
202
+ "mouseenter",
203
+ this[mouseleaveEventHandlerSymbol],
204
+ );
205
+ }
206
+ }
207
+ }
208
+
209
+ /**
210
+ * @private
211
+ */
212
+ function startFadeout() {;
213
+ if (!this?.[timerSymbol]) {
214
+ this[timerSymbol] = setTimeout(() => {
215
+ removeSelf.call(this);
216
+ }, this.getOption("timeout", 1000));
217
+ }
218
+ }
219
+
220
+ function removeSelf() {;
221
+
222
+ stopFadeout();
223
+ this.classList.add("fadeout");
224
+
225
+ setTimeout(() => {
226
+ this.remove();
227
+ }, 200);
228
+ }
229
+
230
+ /**
231
+ * @private
232
+ */
233
+ function stopFadeout() {;
234
+ if (this?.[timerSymbol]) {
235
+ clearTimeout(this[timerSymbol]);
236
+ this[timerSymbol] = undefined;
237
+ }
238
+ }
239
+
240
+ /**
241
+ * This attribute can be used to pass a URL to this select.
242
+ *
243
+ * @private
244
+ * @return {object}
245
+ */
246
+ function initOptionsFromArguments() {;
247
+ const options = {};
248
+
249
+ const timeout = this.getAttribute(ATTRIBUTE_PREFIX + "timeout");
250
+ if (isString(timeout)) {
251
+ try {
252
+ options["timeout"] = parseInt(timeout, 10);
253
+ } catch (e) {
254
+ this.setAttribute(
255
+ ATTRIBUTE_ERRORMESSAGE,
256
+ this.getAttribute(ATTRIBUTE_ERRORMESSAGE + ", " + e.toString()),
257
+ );
258
+ }
259
+ }
260
+
261
+ return options;
262
+ }
263
+
264
+ /**
265
+ * @private
266
+ * @return {Message}
267
+ * @throws {Error} no shadow-root is defined
268
+ */
269
+ function initControlReferences() {;
270
+
271
+ if (!this.shadowRoot) {
272
+ throw new Error("no shadow-root is defined");
273
+ }
274
+
275
+ this[controlElementSymbol] = this.shadowRoot.querySelector(
276
+ "[" + ATTRIBUTE_ROLE + "=control]",
277
+ );
278
+ this[removeElementSymbol] = this.shadowRoot.querySelector(
279
+ "[" + ATTRIBUTE_ROLE + "=remove]",
280
+ );
281
+ }
282
+
283
+ /**
284
+ * @private
285
+ */
286
+ function initEventhandler() {;
287
+
288
+ /**
289
+ * @param {Event} event
290
+ */
291
+ this[mouseenterEventHandlerSymbol] = (event) => {
292
+ const element = findTargetElementFromEvent(
293
+ event,
294
+ ATTRIBUTE_ROLE,
295
+ "control",
296
+ );
297
+
298
+ if (element instanceof HTMLElement) {
299
+ this.removeEventListener(
300
+ "mouseenter",
301
+ this[mouseenterEventHandlerSymbol],
302
+ );
303
+ this.addEventListener("mouseleave", this[mouseleaveEventHandlerSymbol]);
304
+ stopFadeout.call(this);
305
+ }
306
+ };
307
+
308
+ /**
309
+ * @param {Event} event
310
+ */
311
+ this[mouseleaveEventHandlerSymbol] = (event) => {
312
+ const element = findTargetElementFromEvent(
313
+ event,
314
+ ATTRIBUTE_ROLE,
315
+ "control",
316
+ );
317
+ if (element instanceof HTMLElement) {
318
+ this.removeEventListener(
319
+ "mouseleave",
320
+ this[mouseleaveEventHandlerSymbol],
321
+ );
322
+ this.addEventListener("mouseenter", this[mouseenterEventHandlerSymbol]);
323
+ startFadeout.call(this);
324
+ }
325
+ };
326
+
327
+ /**
328
+ * @param {Event} event
329
+ */
330
+ this[removeEventHandlerSymbol] = (event) => {
331
+ const element = findTargetElementFromEvent(event, ATTRIBUTE_ROLE, "remove");
332
+
333
+ if (element instanceof HTMLElement) {
334
+ removeSelf.call(this);
335
+ }
336
+ };
337
+
338
+ if (this.getOption("features.close") === true) {
339
+ this[removeElementSymbol].addEventListener(
340
+ "click",
341
+ this[removeEventHandlerSymbol],
342
+ );
343
+ this[removeElementSymbol].addEventListener(
344
+ "touch",
345
+ this[removeEventHandlerSymbol],
346
+ );
347
+ }
348
+
349
+ return this;
350
+ }
351
+
352
+ /**
353
+ * @private
354
+ * @return {string}
355
+ */
356
+ function getTemplate() {
357
+ // language=HTML
358
+ return `
359
+ <div data-monster-role="control" part="control" class="center">
360
+ <div data-monster-role="message" part="message"
361
+ data-monster-attributes="data-monster-orientation path:orientation">
362
+ <div data-monster-replace="path:content" part="content"
363
+ data-monster-role="content">
364
+
365
+ </div>
366
+ <div part="remove"
367
+ data-monster-attributes="class path:features.clear | ?::hidden "
368
+ data-monster-role="close" tabindex="-1"></div>
369
+ </div>
370
+ </div>
371
+ `;
372
+ }
373
+
374
+ registerCustomElement(Message);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/monster
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
+ */
7
+
8
+ /**
9
+ * Namespace for all notify related functions.
10
+ *
11
+ * @namespace Monster.Components.Notify
12
+ * @memberOf Monster
13
+ * @author schukai GmbH
14
+ */
15
+ const ns = {};
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Copyright schukai GmbH and contributors 2022. All Rights Reserved.
3
+ * Node module: @schukai/component-form
4
+ * This file is licensed under the AGPLv3 License.
5
+ * License text available at https://www.gnu.org/licenses/agpl-3.0.en.html
6
+ */
7
+
8
+ import { ATTRIBUTE_ROLE } from "../../dom/constants.mjs";
9
+ import {
10
+ assembleMethodSymbol,
11
+ CustomElement,
12
+ registerCustomElement,
13
+ } from "../../dom/customelement.mjs";
14
+ import { validateInstance, validateString } from "../../types/validate.mjs";
15
+ import { Message } from "./message.mjs";
16
+ import { NotifyStyleSheet } from "./stylesheet/notify.mjs";
17
+ import { Queue } from "../../types/queue.mjs";
18
+ import { fireCustomEvent } from "../../dom/events.mjs";
19
+
20
+ export { Notify };
21
+
22
+ /**
23
+ * @private
24
+ * @type {symbol}
25
+ */
26
+ const controlElementSymbol = Symbol("controlElement");
27
+
28
+ /**
29
+ * @private
30
+ * @type {symbol}
31
+ */
32
+ const containerElementSymbol = Symbol("containerElement");
33
+
34
+ /**
35
+ * @private
36
+ * @type {symbol}
37
+ */
38
+ const queueSymbol = Symbol("queue");
39
+
40
+ /**
41
+ * This CustomControl creates a notification element with a variety of options.
42
+ *
43
+ * <img src="./images/notify.png">
44
+ *
45
+ * Dependencies: the system uses functions of the [monsterjs](https://monsterjs.org/) library.
46
+ *
47
+ * You can create this control either by specifying the HTML tag `<monster-notify />` directly in the HTML
48
+ *
49
+ * ```html
50
+ * <monster-notify></monster-notify>
51
+ * ```
52
+ *
53
+ * or using Javascript via the `document.createElement('monster-notify');` method.
54
+ *
55
+ * ```js
56
+ * import '@schukai/monster/source/components/notify/notify.js';
57
+ * document.createElement('monster-notify');
58
+ * ```
59
+ *
60
+ * ## Events
61
+ *
62
+ * The CustomEvent has the property [`detail`](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/detail).
63
+ *
64
+ * ```
65
+ * node.addEventListener('monster-notify-message',(e)=>console.log(e.detail))
66
+ * ```
67
+ *
68
+ * @externalExample ../../../example/components/notify/notify.mjs
69
+ * @startuml notify.png
70
+ * skinparam monochrome true
71
+ * skinparam shadowing false
72
+ * HTMLElement <|-- CustomElement
73
+ * CustomElement <|-- Notify
74
+ * @enduml
75
+ *
76
+ * @since 1.0.0
77
+ * @copyright schukai GmbH
78
+ * @memberOf Monster.Components.Notify
79
+ * @summary A highly configurable select control
80
+ */
81
+ class Notify extends CustomElement {
82
+ constructor() {
83
+ super();
84
+ this[queueSymbol] = new Queue();
85
+ }
86
+
87
+ /**
88
+ * The defaults can be set either directly in the object or via an attribute in the HTML tag.
89
+ * The value of the attribute `data-monster-options` in the HTML tag must be a JSON string.
90
+ *
91
+ * ```html
92
+ * <monster-notify data-monster-options="{}"></monster-notify>
93
+ * ```
94
+ *
95
+ * Since 1.18.0 the JSON can be specified as a DataURI.
96
+ *
97
+ * ```
98
+ * new Monster.Types.DataUrl(btoa(JSON.stringify({
99
+ * orientation: 'right top'
100
+ * })),'application/json',true).toString()
101
+ * ```
102
+ *
103
+ * @property {string} templates Template definitions
104
+ * @property {Object} templates Template definitions
105
+ * @property {string} templates.main Main template
106
+ */
107
+ get defaults() {
108
+ return Object.assign(
109
+ {},
110
+ super.defaults,
111
+ {
112
+ orientation: "left top",
113
+ templates: {
114
+ main: getTemplate(),
115
+ },
116
+ },
117
+ initOptionsFromArguments.call(this),
118
+ );
119
+ }
120
+
121
+ /**
122
+ *
123
+ * @return {Notify}
124
+ */
125
+ [assembleMethodSymbol]() {
126
+ super[assembleMethodSymbol]();;
127
+ initControlReferences.call(this);
128
+
129
+ if (this[containerElementSymbol]) {
130
+ while (this[queueSymbol].isEmpty() === false) {
131
+ this.push(this[queueSymbol].poll());
132
+ }
133
+ }
134
+
135
+ return this;
136
+ }
137
+
138
+ /**
139
+ *
140
+ * @return {string}
141
+ */
142
+ static getTag() {
143
+ return "monster-notify";
144
+ }
145
+
146
+ /**
147
+ *
148
+ * @return {CSSStyleSheet[]}
149
+ */
150
+ static getCSSStyleSheet() {
151
+ return [NotifyStyleSheet];
152
+ }
153
+
154
+ /**
155
+ *
156
+ * @param {Monster.Components.Notify.Massage|String} message
157
+ * @return {Monster.Components.Notify.Notify}
158
+ */
159
+ push(message) {;
160
+
161
+ let messageElement = message;
162
+ if (!(message instanceof Message)) {
163
+ const text = validateString(message);
164
+ messageElement = document.createElement("monster-notify-message");
165
+ messageElement.setOption("content", text);
166
+ }
167
+
168
+ validateInstance(messageElement, Message);
169
+ messageElement.setAttribute(ATTRIBUTE_ROLE, "message");
170
+
171
+ // if not connected, add to queue
172
+ if (!this[containerElementSymbol]) {
173
+ this[queueSymbol].add(messageElement);
174
+ return this;
175
+ }
176
+
177
+ fireCustomEvent(this, "monster-notify-message", {
178
+ messageElement,
179
+ });
180
+
181
+ this[containerElementSymbol].appendChild(messageElement);
182
+ return this;
183
+ }
184
+ }
185
+
186
+ /**
187
+ * This attribute can be used to pass a URL to this select.
188
+ *
189
+ * ```
190
+ * <monster-select data-monster-url="https://example.com/"></monster-select>
191
+ * ```
192
+ *
193
+ * @private
194
+ * @return {object}
195
+ */
196
+ function initOptionsFromArguments() {;
197
+ const options = {};
198
+
199
+ return options;
200
+ }
201
+
202
+ /**
203
+ * @private
204
+ * @return {Select}
205
+ * @throws {Error} no shadow-root is defined
206
+ */
207
+ function initControlReferences() {;
208
+
209
+ if (!this.shadowRoot) {
210
+ throw new Error("no shadow-root is defined");
211
+ }
212
+
213
+ this[controlElementSymbol] = this.shadowRoot.querySelector(
214
+ "[" + ATTRIBUTE_ROLE + "=control]",
215
+ );
216
+ this[containerElementSymbol] = this.shadowRoot.querySelector(
217
+ "[" + ATTRIBUTE_ROLE + "=container]",
218
+ );
219
+ }
220
+
221
+ /**
222
+ * @private
223
+ * @return {string}
224
+ */
225
+ function getTemplate() {
226
+ // language=HTML
227
+ return `
228
+ <div data-monster-role="control" part="control" class="center"
229
+ data-monster-attributes="data-monster-orientation path:orientation">
230
+ <div data-monster-role="container">
231
+ </div>
232
+ </div>
233
+ `;
234
+ }
235
+
236
+ registerCustomElement(Notify);
@@ -0,0 +1,57 @@
1
+ @import "../../style/normalize.pcss";
2
+ @import "../../style/display.pcss";
3
+ @import "../../style/border.pcss";
4
+ @import "../../style/color.pcss";
5
+ @import "../../style/theme.pcss";
6
+ @import "../../style/control.pcss";
7
+ @import "../../style/mixin/media.pcss";
8
+ @import "../../style/mixin/typography.pcss";
9
+ @import "../../style/mixin/button.pcss";
10
+ @import "../../style/mixin/hover.pcss";
11
+
12
+ [data-monster-role=message] {
13
+ position: relative;
14
+
15
+ width: 100%;
16
+ display: flex;
17
+ align-items: center;
18
+ flex-direction: row;
19
+
20
+ }
21
+
22
+ [data-monster-role=control] {
23
+ display: flex;
24
+ justify-content: space-between;
25
+ width: 100%;
26
+ align-items: center;
27
+ padding:8px;
28
+ color: var(--monster-color-primary-1);
29
+ background-color: var(--monster-bg-color-primary-1);
30
+ }
31
+
32
+ [data-monster-role=content] {
33
+ flex-grow: 2;
34
+ @mixins paragraph;
35
+ }
36
+
37
+ [data-monster-role=control] [data-monster-role=close] {
38
+ position: absolute;
39
+ top: -5px;
40
+ right: -10px;
41
+ width: 16px;
42
+ height: 16px;
43
+ cursor: pointer;
44
+ z-index: var(--monster-z-index-modal-overlay);
45
+ }
46
+
47
+ [data-monster-role=control] [data-monster-role=close]::before {
48
+ content: "";
49
+ display: block;
50
+ width: 100%;
51
+ height: 100%;
52
+ mask-repeat: no-repeat;
53
+ mask-position: center;
54
+ mask-size: contain;
55
+ mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='' viewBox='0 0 16 16'><path d='M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
56
+ background-color: var(--monster-color-primary-1);
57
+ }