@mgdis/mg-components 3.1.0 → 4.0.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 (241) hide show
  1. package/dist/cjs/{index-85a4a0b6.js → index-88560a66.js} +123 -48
  2. package/dist/cjs/index-a39c5567.js +233 -0
  3. package/dist/cjs/loader.cjs.js +3 -17
  4. package/dist/cjs/mg-badge_21.cjs.entry.js +3538 -0
  5. package/dist/cjs/mg-components.cjs.js +3 -7
  6. package/dist/cjs/mg-modal.cjs.entry.js +117 -0
  7. package/dist/cjs/mg-popover.cjs.entry.js +170 -0
  8. package/dist/cjs/popper-71bf3058.js +1790 -0
  9. package/dist/collection/collection-manifest.json +4 -1
  10. package/dist/collection/components/atoms/mg-badge/{mg-badge.stories.js → doc/mg-badge.stories.js} +4 -1
  11. package/dist/collection/components/atoms/mg-badge/mg-badge.conf.js +1 -1
  12. package/dist/collection/components/atoms/mg-badge/mg-badge.css +0 -2
  13. package/dist/collection/components/atoms/mg-badge/mg-badge.js +26 -10
  14. package/dist/collection/components/atoms/mg-button/{mg-button.stories.js → doc/mg-button.stories.js} +7 -2
  15. package/dist/collection/components/atoms/mg-button/mg-button.conf.js +1 -1
  16. package/dist/collection/components/atoms/mg-button/mg-button.css +46 -49
  17. package/dist/collection/components/atoms/mg-button/mg-button.js +78 -4
  18. package/dist/collection/components/atoms/mg-character-left/{mg-character-left.stories.js → doc/mg-character-left.stories.js} +8 -0
  19. package/dist/collection/components/atoms/mg-character-left/mg-character-left.js +20 -46
  20. package/dist/collection/components/atoms/mg-icon/{mg-icon.stories.js → doc/mg-icon.stories.js} +1 -1
  21. package/dist/collection/components/atoms/mg-icon/mg-icon.conf.js +104 -9
  22. package/dist/collection/components/atoms/mg-icon/mg-icon.css +9 -7
  23. package/dist/collection/components/atoms/mg-icon/mg-icon.js +33 -7
  24. package/dist/collection/components/atoms/mg-input-title/{mg-input-title.stories.js → doc/mg-input-title.stories.js} +0 -0
  25. package/dist/collection/components/atoms/mg-input-title/mg-input-title.css +4 -4
  26. package/dist/collection/components/atoms/mg-input-title/mg-input-title.js +14 -3
  27. package/dist/collection/components/atoms/mg-tag/{mg-tag.stories.js → doc/mg-tag.stories.js} +4 -1
  28. package/dist/collection/components/atoms/mg-tag/mg-tag.js +28 -6
  29. package/dist/collection/components/atoms/mg-tooltip/{mg-tooltip.stories.js → doc/mg-tooltip.stories.js} +14 -1
  30. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.conf.js +20 -0
  31. package/dist/collection/components/atoms/mg-tooltip/mg-tooltip.js +16 -2
  32. package/dist/collection/components/molecules/inputs/MgInput.conf.js +1 -7
  33. package/dist/collection/components/molecules/inputs/MgInput.js +25 -29
  34. package/dist/collection/components/molecules/inputs/mg-input-checkbox/{mg-input-checkbox.stories.js → doc/mg-input-checkbox.stories.js} +6 -1
  35. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.css +25 -11
  36. package/dist/collection/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.js +102 -52
  37. package/dist/collection/components/molecules/inputs/mg-input-date/{mg-input-date.stories.js → doc/mg-input-date.stories.js} +6 -1
  38. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.css +37 -9
  39. package/dist/collection/components/molecules/inputs/mg-input-date/mg-input-date.js +136 -66
  40. package/dist/collection/components/molecules/inputs/mg-input-numeric/{mg-input-numeric.stories.js → doc/mg-input-numeric.stories.js} +15 -3
  41. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.css +38 -10
  42. package/dist/collection/components/molecules/inputs/mg-input-numeric/mg-input-numeric.js +180 -80
  43. package/dist/collection/components/molecules/inputs/mg-input-password/{mg-input-password.stories.js → doc/mg-input-password.stories.js} +16 -2
  44. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.css +37 -9
  45. package/dist/collection/components/molecules/inputs/mg-input-password/mg-input-password.js +108 -47
  46. package/dist/collection/components/molecules/inputs/mg-input-radio/{mg-input-radio.stories.js → doc/mg-input-radio.stories.js} +6 -1
  47. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.css +25 -11
  48. package/dist/collection/components/molecules/inputs/mg-input-radio/mg-input-radio.js +113 -42
  49. package/dist/collection/components/molecules/inputs/mg-input-select/{mg-input-select.stories.js → doc/mg-input-select.stories.js} +22 -2
  50. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.css +39 -10
  51. package/dist/collection/components/molecules/inputs/mg-input-select/mg-input-select.js +145 -71
  52. package/dist/collection/components/molecules/inputs/mg-input-text/{mg-input-text.stories.js → doc/mg-input-text.stories.js} +17 -8
  53. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.css +69 -19
  54. package/dist/collection/components/molecules/inputs/mg-input-text/mg-input-text.js +184 -83
  55. package/dist/collection/components/molecules/inputs/mg-input-textarea/{mg-input-textarea.stories.js → doc/mg-input-textarea.stories.js} +16 -5
  56. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.css +69 -13
  57. package/dist/collection/components/molecules/inputs/mg-input-textarea/mg-input-textarea.js +163 -70
  58. package/dist/collection/components/molecules/inputs/mg-input-toggle/{mg-input-toggle.stories.js → doc/mg-input-toggle.stories.js} +6 -1
  59. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.css +22 -10
  60. package/dist/collection/components/molecules/inputs/mg-input-toggle/mg-input-toggle.js +68 -33
  61. package/dist/collection/components/molecules/mg-form/doc/mg-form.stories.js +58 -0
  62. package/dist/collection/components/molecules/mg-form/mg-form.css +19 -0
  63. package/dist/collection/components/molecules/mg-form/mg-form.js +271 -0
  64. package/dist/collection/components/molecules/mg-message/{mg-message.stories.js → doc/mg-message.stories.js} +6 -2
  65. package/dist/collection/components/molecules/mg-message/mg-message.css +1 -1
  66. package/dist/collection/components/molecules/mg-message/mg-message.js +26 -11
  67. package/dist/collection/components/molecules/mg-modal/doc/mg-modal.stories.js +51 -0
  68. package/dist/collection/components/molecules/mg-modal/mg-modal.css +52 -0
  69. package/dist/collection/components/molecules/mg-modal/mg-modal.js +240 -0
  70. package/dist/collection/components/molecules/mg-pagination/{mg-pagination.stories.js → doc/mg-pagination.stories.js} +1 -0
  71. package/dist/collection/components/molecules/mg-pagination/mg-pagination.js +47 -28
  72. package/dist/collection/components/molecules/mg-panel/doc/mg-panel.stories.js +39 -0
  73. package/dist/collection/components/molecules/mg-panel/mg-panel.css +53 -0
  74. package/dist/collection/components/molecules/mg-panel/mg-panel.js +356 -0
  75. package/dist/collection/components/molecules/mg-popover/{mg-popover.stories.js → doc/mg-popover.stories.js} +10 -0
  76. package/dist/collection/components/molecules/mg-popover/mg-popover.conf.js +20 -0
  77. package/dist/collection/components/molecules/mg-popover/mg-popover.css +2 -2
  78. package/dist/collection/components/molecules/mg-popover/mg-popover.js +37 -12
  79. package/dist/collection/components/molecules/mg-tabs/{mg-tabs.stories.js → doc/mg-tabs.stories.js} +20 -4
  80. package/dist/collection/components/molecules/mg-tabs/mg-tabs.conf.js +11 -1
  81. package/dist/collection/components/molecules/mg-tabs/mg-tabs.css +17 -3
  82. package/dist/collection/components/molecules/mg-tabs/mg-tabs.js +139 -26
  83. package/dist/collection/locales/index.js +33 -4
  84. package/dist/collection/stories/helpers.stories.js +33 -0
  85. package/dist/collection/utils/components.utils.js +16 -9
  86. package/dist/collection/utils/locale.utils.js +13 -7
  87. package/dist/collection/utils/test.utils.js +27 -15
  88. package/dist/collection/variables.css +39 -5
  89. package/dist/collection/variables.scss +39 -5
  90. package/dist/components/MgInput.js +26 -37
  91. package/dist/components/components.utils.js +16 -9
  92. package/dist/components/index.d.ts +24 -6
  93. package/dist/components/index.js +23 -0
  94. package/dist/components/index2.js +116 -17
  95. package/dist/components/locale.utils.js +13 -8
  96. package/dist/components/mg-badge2.js +25 -9
  97. package/dist/components/mg-button2.js +29 -5
  98. package/dist/components/mg-character-left2.js +14 -26
  99. package/dist/components/mg-form.d.ts +11 -0
  100. package/dist/components/mg-form.js +148 -0
  101. package/dist/components/mg-icon2.js +138 -17
  102. package/dist/components/mg-input-checkbox.js +66 -53
  103. package/dist/components/mg-input-date.js +100 -69
  104. package/dist/components/mg-input-numeric.js +125 -81
  105. package/dist/components/mg-input-password.js +69 -48
  106. package/dist/components/mg-input-radio.js +74 -46
  107. package/dist/components/mg-input-select2.js +103 -71
  108. package/dist/components/mg-input-text.js +1 -237
  109. package/dist/components/mg-input-text2.js +300 -0
  110. package/dist/components/mg-input-textarea.js +100 -46
  111. package/dist/components/mg-input-title2.js +13 -4
  112. package/dist/components/mg-input-toggle.js +39 -31
  113. package/dist/components/mg-message.js +25 -10
  114. package/dist/components/mg-modal.d.ts +11 -0
  115. package/dist/components/mg-modal.js +153 -0
  116. package/dist/components/mg-pagination.js +45 -31
  117. package/dist/components/mg-panel.d.ts +11 -0
  118. package/dist/components/mg-panel.js +244 -0
  119. package/dist/components/mg-popover.js +31 -11
  120. package/dist/components/mg-tabs.js +113 -23
  121. package/dist/components/mg-tag.js +27 -5
  122. package/dist/components/mg-tooltip2.js +10 -1
  123. package/dist/components/popper.js +6 -2
  124. package/dist/esm/{index-e3e84606.js → index-bca81100.js} +124 -46
  125. package/dist/esm/index-e51ae032.js +228 -0
  126. package/dist/esm/loader.js +3 -17
  127. package/dist/esm/mg-badge_21.entry.js +3514 -0
  128. package/dist/esm/mg-components.js +3 -7
  129. package/dist/esm/mg-modal.entry.js +113 -0
  130. package/dist/esm/mg-popover.entry.js +166 -0
  131. package/dist/esm/polyfills/css-shim.js +1 -1
  132. package/dist/esm/popper-93ecb064.js +1788 -0
  133. package/dist/index.js +1 -1
  134. package/dist/mg-components/mg-components.css +1 -1
  135. package/dist/mg-components/mg-components.esm.js +1 -1
  136. package/dist/mg-components/p-003a1344.entry.js +1 -0
  137. package/dist/mg-components/p-462d648a.entry.js +1 -0
  138. package/dist/mg-components/p-4c66f794.js +1 -0
  139. package/dist/mg-components/p-5126ab10.entry.js +1 -0
  140. package/dist/mg-components/p-780bd52d.js +1 -0
  141. package/dist/mg-components/p-b14a3443.js +2 -0
  142. package/dist/mg-components/variables.css +39 -5
  143. package/dist/mg-components/variables.scss +39 -5
  144. package/dist/types/components/atoms/mg-badge/{mg-badge.stories.d.ts → doc/mg-badge.stories.d.ts} +5 -0
  145. package/dist/types/components/atoms/mg-badge/mg-badge.d.ts +16 -5
  146. package/dist/types/components/atoms/mg-button/{mg-button.stories.d.ts → doc/mg-button.stories.d.ts} +5 -0
  147. package/dist/types/components/atoms/mg-button/mg-button.d.ts +23 -3
  148. package/dist/types/components/atoms/mg-character-left/{mg-character-left.stories.d.ts → doc/mg-character-left.stories.d.ts} +9 -0
  149. package/dist/types/components/atoms/mg-character-left/mg-character-left.d.ts +16 -13
  150. package/dist/types/components/atoms/mg-icon/{mg-icon.stories.d.ts → doc/mg-icon.stories.d.ts} +0 -0
  151. package/dist/types/components/atoms/mg-icon/mg-icon.conf.d.ts +1 -1
  152. package/dist/types/components/atoms/mg-icon/mg-icon.d.ts +14 -4
  153. package/dist/types/components/atoms/mg-input-title/{mg-input-title.stories.d.ts → doc/mg-input-title.stories.d.ts} +0 -0
  154. package/dist/types/components/atoms/mg-input-title/mg-input-title.d.ts +11 -1
  155. package/dist/types/components/atoms/mg-tag/{mg-tag.stories.d.ts → doc/mg-tag.stories.d.ts} +5 -0
  156. package/dist/types/components/atoms/mg-tag/mg-tag.d.ts +18 -4
  157. package/dist/types/components/atoms/mg-tooltip/doc/mg-tooltip.stories.d.ts +29 -0
  158. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.conf.d.ts +8 -0
  159. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.d.ts +13 -3
  160. package/dist/types/components/molecules/inputs/MgInput.conf.d.ts +6 -4
  161. package/dist/types/components/molecules/inputs/MgInput.d.ts +7 -8
  162. package/dist/types/components/molecules/inputs/mg-input-checkbox/{mg-input-checkbox.stories.d.ts → doc/mg-input-checkbox.stories.d.ts} +5 -0
  163. package/dist/types/components/molecules/inputs/mg-input-checkbox/mg-input-checkbox.d.ts +36 -13
  164. package/dist/types/components/molecules/inputs/mg-input-date/{mg-input-date.stories.d.ts → doc/mg-input-date.stories.d.ts} +5 -0
  165. package/dist/types/components/molecules/inputs/mg-input-date/mg-input-date.d.ts +46 -15
  166. package/dist/types/components/molecules/inputs/mg-input-numeric/{mg-input-numeric.stories.d.ts → doc/mg-input-numeric.stories.d.ts} +11 -0
  167. package/dist/types/components/molecules/inputs/mg-input-numeric/mg-input-numeric.d.ts +61 -16
  168. package/dist/types/components/molecules/inputs/mg-input-password/doc/mg-input-password.stories.d.ts +22 -0
  169. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.d.ts +35 -11
  170. package/dist/types/components/molecules/inputs/mg-input-radio/{mg-input-radio.stories.d.ts → doc/mg-input-radio.stories.d.ts} +5 -0
  171. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.conf.d.ts +1 -1
  172. package/dist/types/components/molecules/inputs/mg-input-radio/mg-input-radio.d.ts +42 -9
  173. package/dist/types/components/molecules/inputs/mg-input-select/doc/mg-input-select.stories.d.ts +34 -0
  174. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.conf.d.ts +1 -1
  175. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.d.ts +37 -9
  176. package/dist/types/components/molecules/inputs/mg-input-text/{mg-input-text.stories.d.ts → doc/mg-input-text.stories.d.ts} +13 -0
  177. package/dist/types/components/molecules/inputs/mg-input-text/mg-input-text.d.ts +52 -16
  178. package/dist/types/components/molecules/inputs/mg-input-textarea/doc/mg-input-textarea.stories.d.ts +19 -0
  179. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.d.ts +45 -17
  180. package/dist/types/components/molecules/inputs/mg-input-toggle/{mg-input-toggle.stories.d.ts → doc/mg-input-toggle.stories.d.ts} +5 -0
  181. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.conf.d.ts +1 -1
  182. package/dist/types/components/molecules/inputs/mg-input-toggle/mg-input-toggle.d.ts +29 -12
  183. package/dist/types/components/molecules/{mg-popover/mg-popover.stories.d.ts → mg-form/doc/mg-form.stories.d.ts} +3 -4
  184. package/dist/types/components/molecules/mg-form/mg-form.d.ts +83 -0
  185. package/dist/types/components/molecules/mg-message/{mg-message.stories.d.ts → doc/mg-message.stories.d.ts} +10 -0
  186. package/dist/types/components/molecules/mg-message/mg-message.d.ts +13 -4
  187. package/dist/types/components/molecules/mg-modal/doc/mg-modal.stories.d.ts +13 -0
  188. package/dist/types/components/molecules/mg-modal/mg-modal.d.ts +85 -0
  189. package/dist/types/components/molecules/mg-pagination/{mg-pagination.stories.d.ts → doc/mg-pagination.stories.d.ts} +5 -0
  190. package/dist/types/components/molecules/mg-pagination/mg-pagination.d.ts +31 -7
  191. package/dist/types/components/molecules/mg-panel/doc/mg-panel.stories.d.ts +11 -0
  192. package/dist/types/components/molecules/mg-panel/mg-panel.d.ts +139 -0
  193. package/dist/types/components/molecules/mg-popover/doc/mg-popover.stories.d.ts +25 -0
  194. package/dist/types/components/molecules/mg-popover/mg-popover.conf.d.ts +8 -0
  195. package/dist/types/components/molecules/mg-popover/mg-popover.d.ts +27 -4
  196. package/dist/types/components/molecules/mg-tabs/doc/mg-tabs.stories.d.ts +20 -0
  197. package/dist/types/components/molecules/mg-tabs/mg-tabs.conf.d.ts +11 -0
  198. package/dist/types/components/molecules/mg-tabs/mg-tabs.d.ts +70 -6
  199. package/dist/types/components.d.ts +528 -211
  200. package/dist/types/locales/index.d.ts +108 -38
  201. package/dist/types/stories/{buttons.stories.d.ts → helpers.stories.d.ts} +1 -1
  202. package/dist/types/utils/components.utils.d.ts +16 -9
  203. package/dist/types/utils/locale.utils.d.ts +13 -6
  204. package/dist/types/utils/test.utils.d.ts +13 -1
  205. package/loader/index.js +1 -1
  206. package/package.json +45 -14
  207. package/readme.md +9 -35
  208. package/dist/cjs/css-shim-a22512c4.js +0 -6
  209. package/dist/cjs/mg-badge_20.cjs.entry.js +0 -4661
  210. package/dist/cjs/shadow-css-8940f82d.js +0 -390
  211. package/dist/collection/stories/buttons.stories.js +0 -43
  212. package/dist/collection/stories/messages.stories.js +0 -44
  213. package/dist/collection/stories/tags.stories.js +0 -13
  214. package/dist/esm/css-shim-7c240feb.js +0 -4
  215. package/dist/esm/mg-badge_20.entry.js +0 -4638
  216. package/dist/esm/shadow-css-5d2d01ce.js +0 -388
  217. package/dist/esm-es5/css-shim-7c240feb.js +0 -1
  218. package/dist/esm-es5/index-e3e84606.js +0 -1
  219. package/dist/esm-es5/index.js +0 -0
  220. package/dist/esm-es5/loader.js +0 -1
  221. package/dist/esm-es5/mg-badge_20.entry.js +0 -2
  222. package/dist/esm-es5/mg-components.js +0 -1
  223. package/dist/esm-es5/shadow-css-5d2d01ce.js +0 -12
  224. package/dist/mg-components/mg-components.js +0 -132
  225. package/dist/mg-components/p-1cd24462.system.js +0 -1
  226. package/dist/mg-components/p-2e2f6b27.system.entry.js +0 -2
  227. package/dist/mg-components/p-366a224e.js +0 -1
  228. package/dist/mg-components/p-422c429b.system.js +0 -1
  229. package/dist/mg-components/p-50ea2036.system.js +0 -1
  230. package/dist/mg-components/p-62fa3797.js +0 -1
  231. package/dist/mg-components/p-71d57b8b.system.js +0 -13
  232. package/dist/mg-components/p-9a215712.system.js +0 -1
  233. package/dist/mg-components/p-cbf0464b.entry.js +0 -1
  234. package/dist/mg-components/p-f6455ab3.js +0 -12
  235. package/dist/types/components/atoms/mg-tooltip/mg-tooltip.stories.d.ts +0 -11
  236. package/dist/types/components/molecules/inputs/mg-input-password/mg-input-password.stories.d.ts +0 -9
  237. package/dist/types/components/molecules/inputs/mg-input-select/mg-input-select.stories.d.ts +0 -14
  238. package/dist/types/components/molecules/inputs/mg-input-textarea/mg-input-textarea.stories.d.ts +0 -6
  239. package/dist/types/components/molecules/mg-tabs/mg-tabs.stories.d.ts +0 -7
  240. package/dist/types/stories/messages.stories.d.ts +0 -13
  241. package/dist/types/stories/tags.stories.d.ts +0 -5
@@ -1,44 +1,114 @@
1
- export declare const locale = "fr-FR";
2
- export declare const messages: {
3
- errors: {
4
- required: string;
5
- date: {
6
- badInput: string;
7
- min: string;
8
- max: string;
9
- minMax: string;
10
- };
11
- numeric: {
12
- min: string;
13
- max: string;
14
- minMax: string;
1
+ declare const messages: {
2
+ en: {
3
+ errors: {
4
+ required: string;
5
+ date: {
6
+ badInput: string;
7
+ min: string;
8
+ max: string;
9
+ minMax: string;
10
+ };
11
+ numeric: {
12
+ min: string;
13
+ max: string;
14
+ minMax: string;
15
+ };
15
16
  };
16
- };
17
- nbCharLeft: string;
18
- input: {
19
- select: {
20
- placeholder: string;
17
+ nbCharLeft: string;
18
+ input: {
19
+ select: {
20
+ placeholder: string;
21
+ };
21
22
  };
22
- checkbox: {
23
- true: string;
24
- false: string;
25
- indeterminate: string;
23
+ form: {
24
+ required: string;
25
+ allRequired: string;
26
+ };
27
+ message: {
28
+ closeButton: string;
29
+ };
30
+ modal: {
31
+ closeButton: string;
32
+ };
33
+ pagination: {
34
+ label: string;
35
+ page: string;
36
+ pages: string;
37
+ nextPage: string;
38
+ previousPage: string;
39
+ selectPage: string;
40
+ };
41
+ panel: {
42
+ editLabel: string;
43
+ };
44
+ general: {
45
+ confirm: string;
46
+ cancel: string;
47
+ close: string;
48
+ next: string;
49
+ previous: string;
26
50
  };
27
51
  };
28
- message: {
29
- closeButton: string;
30
- };
31
- popover: {
32
- closeButton: string;
33
- };
34
- pagination: {
35
- page: string;
36
- pages: string;
37
- next: string;
38
- previous: string;
39
- nextPage: string;
40
- previousPage: string;
41
- selectPage: string;
52
+ fr: {
53
+ errors: {
54
+ required: string;
55
+ date: {
56
+ badInput: string;
57
+ min: string;
58
+ max: string;
59
+ minMax: string;
60
+ };
61
+ numeric: {
62
+ min: string;
63
+ max: string;
64
+ minMax: string;
65
+ };
66
+ };
67
+ nbCharLeft: string;
68
+ input: {
69
+ select: {
70
+ placeholder: string;
71
+ };
72
+ };
73
+ form: {
74
+ required: string;
75
+ allRequired: string;
76
+ };
77
+ message: {
78
+ closeButton: string;
79
+ };
80
+ modal: {
81
+ closeButton: string;
82
+ };
83
+ pagination: {
84
+ label: string;
85
+ page: string;
86
+ pages: string;
87
+ nextPage: string;
88
+ previousPage: string;
89
+ selectPage: string;
90
+ };
91
+ panel: {
92
+ editLabel: string;
93
+ };
94
+ general: {
95
+ confirm: string;
96
+ cancel: string;
97
+ close: string;
98
+ next: string;
99
+ previous: string;
100
+ };
42
101
  };
43
102
  };
44
- export declare const currency = "EUR";
103
+ /**
104
+ * Get Intl object
105
+ * We load the defined locale but for now we only support the first subtag for messages
106
+ *
107
+ * @param {HTMLElement} element element we need to get the language
108
+ * @returns {{ locale: string; messages: unknown }} messages object
109
+ */
110
+ export declare const initLocales: (element: HTMLElement) => {
111
+ locale: string;
112
+ messages: any;
113
+ };
114
+ export {};
@@ -10,4 +10,4 @@ declare const _default: {
10
10
  };
11
11
  };
12
12
  export default _default;
13
- export declare const Buttons: any;
13
+ export declare const Helpers: any;
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Create random ID
3
- * @param prefix {string} add prefix to created ID
3
+ *
4
+ * @param {string} prefix add prefix to created ID
5
+ * @param {number} length ID length
4
6
  * @returns {string} ID
5
7
  */
6
8
  export declare function createID(prefix?: string, length?: number): string;
@@ -13,31 +15,36 @@ export declare class ClassList {
13
15
  constructor(classlist?: string[]);
14
16
  /**
15
17
  * Add class
16
- * @param className
18
+ *
19
+ * @param {string} className class name to add
17
20
  * @returns {void}
18
21
  */
19
22
  add: (className: string) => void;
20
23
  /**
21
24
  * Delete class
22
- * @param className
25
+ *
26
+ * @param {string} className class name to delete
23
27
  * @returns {void}
24
28
  */
25
29
  delete: (className: string) => void;
26
30
  /**
27
31
  * Check if class exist in list
28
- * @param className
29
- * @returns {boolean}
32
+ *
33
+ * @param {string} className class name to check
34
+ * @returns {boolean} class name is in the list
30
35
  */
31
36
  has: (className: string) => boolean;
32
37
  /**
33
38
  * Join classes seperated by spaces
34
- * @returns {string}
39
+ *
40
+ * @returns {string} joined values
35
41
  */
36
42
  join: () => string;
37
43
  }
38
44
  /**
39
45
  * Check if all items are string
40
- * @param items
41
- * @returns {boolean}
46
+ *
47
+ * @param {string[]} items items to check
48
+ * @returns {boolean} all items are string
42
49
  */
43
- export declare function allItemsAreString(items: Array<string>): boolean;
50
+ export declare function allItemsAreString(items: string[]): boolean;
@@ -1,22 +1,29 @@
1
1
  /**
2
2
  * Format number to the locale currency
3
- * @param number {number}
3
+ *
4
+ * @param {number} number number to format
5
+ * @param {string} locale locale to apply
6
+ * @param {string} currency currency to apply
4
7
  * @returns {string} formatted currency
5
8
  */
6
- export declare function localeCurrency(number: number): string;
9
+ export declare function localeCurrency(number: number, locale: string, currency: string): string;
7
10
  /**
8
11
  * Format number to locale
9
- * @param number {number}
12
+ *
13
+ * @param {number} number number to format
14
+ * @param {string} locale locale to apply
10
15
  * @returns {string} formatted number
11
16
  */
12
- export declare function localeNumber(number: number): string;
17
+ export declare function localeNumber(number: number, locale: string): string;
13
18
  /**
14
19
  * Date RegExp
15
20
  */
16
21
  export declare const dateRegExp: RegExp;
17
22
  /**
18
23
  * Locale date format
19
- * @param date {string}
24
+ *
25
+ * @param {string} date date to format
26
+ * @param {string} locale locale to apply
20
27
  * @returns {string} formatted date
21
28
  */
22
- export declare function localeDate(date: string): string;
29
+ export declare function localeDate(date: string, locale: string): string;
@@ -1,5 +1,17 @@
1
1
  import { E2EPage } from '@stencil/core/testing';
2
2
  import { Page as PuppeteerPage } from 'puppeteer';
3
3
  export declare type DesignSystemE2EPage = E2EPage & Pick<PuppeteerPage, 'screenshot' | 'viewport'>;
4
+ /**
5
+ * Create E2E page
6
+ *
7
+ * @param {string} htmlString html to render
8
+ * @returns {Promise<DesignSystemE2EPage>} page
9
+ */
4
10
  export declare function createPage(htmlString?: string): Promise<DesignSystemE2EPage>;
5
- export declare const cloneDeep: (el: any) => any;
11
+ /**
12
+ * Clone Deep function
13
+ *
14
+ * @param {unknown} obj object to clone
15
+ * @returns {unknown} cloned json
16
+ */
17
+ export declare const cloneDeep: (obj: unknown) => unknown;
package/loader/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
 
2
2
  (function(){if("undefined"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();
3
3
  export * from '../dist/esm/polyfills/index.js';
4
- export * from '../dist/esm-es5/loader.js';
4
+ export * from '../dist/esm/loader.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mgdis/mg-components",
3
- "version": "3.1.0",
3
+ "version": "4.0.0",
4
4
  "description": "MG Components",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -18,19 +18,48 @@
18
18
  "Simon Duhem <duhem-s@mgdis.fr>",
19
19
  "Nicolas Jouanno <jouanno-n@mgdis.fr>"
20
20
  ],
21
+ "exports": {
22
+ "./variables.css": "./dist/mg-components/variables.css",
23
+ "./mg-components.css": "./dist/mg-components/mg-components.css",
24
+ "./mg-badge": "./dist/components/mg-badge.js",
25
+ "./mg-button": "./dist/components/mg-button.js",
26
+ "./mg-character-left": "./dist/components/mg-character-left.js",
27
+ "./mg-form": "./dist/components/mg-form.js",
28
+ "./mg-icon": "./dist/components/mg-icon.js",
29
+ "./mg-input-checkbox": "./dist/components/mg-input-checkbox.js",
30
+ "./mg-input-date": "./dist/components/mg-input-date.js",
31
+ "./mg-input-numeric": "./dist/components/mg-input-numeric.js",
32
+ "./mg-input-password": "./dist/components/mg-input-password.js",
33
+ "./mg-input-radio": "./dist/components/mg-input-radio.js",
34
+ "./mg-input-select": "./dist/components/mg-input-select.js",
35
+ "./mg-input-text": "./dist/components/mg-input-text.js",
36
+ "./mg-input-textarea": "./dist/components/mg-input-textarea.js",
37
+ "./mg-input-title": "./dist/components/mg-input-title.js",
38
+ "./mg-input-toggle": "./dist/components/mg-input-toggle.js",
39
+ "./mg-message": "./dist/components/mg-message.js",
40
+ "./mg-modal": "./dist/components/mg-modal.js",
41
+ "./mg-pagination": "./dist/components/mg-pagination.js",
42
+ "./mg-panel": "./dist/components/mg-panel.js",
43
+ "./mg-popover": "./dist/components/mg-popover.js",
44
+ "./mg-tabs": "./dist/components/mg-tabs.js",
45
+ "./mg-tag": "./dist/components/mg-tag.js",
46
+ "./mg-tooltip": "./dist/components/mg-tooltip.js"
47
+ },
21
48
  "scripts": {
22
49
  "build": "stencil build --docs",
23
50
  "start": "stencil build --dev --watch --serve",
24
51
  "lint": "run-s lint:es lint:prettier",
25
- "lint:es": "eslint src/**/*.{ts,tsx}",
52
+ "lint:fix": "run-s lint:es:fix lint:prettier:fix",
53
+ "lint:es": "eslint src/**/*.{ts,tsx,js}",
54
+ "lint:es:fix": "eslint src/**/*.{ts,tsx} --fix",
26
55
  "lint:prettier": "prettier --check **/*.{ts,tsx,scss,html,mdx,json}",
27
56
  "lint:prettier:fix": "prettier --write **/*.{ts,tsx,scss,html,mdx,json}",
28
- "test": "stencil test --spec --e2e",
29
- "test:unit": "stencil test --spec",
57
+ "test": "TZ=UTC stencil test --spec --e2e",
58
+ "test:unit": "TZ=UTC stencil test --spec",
30
59
  "test:e2e": "stencil test --e2e",
31
60
  "test.watch": "stencil test --spec --e2e --watchAll",
32
61
  "generate": "stencil generate",
33
- "storybook": "start-storybook -p 6006 -s www/build",
62
+ "storybook": "start-storybook -p 6006",
34
63
  "storybook:build": "build-storybook",
35
64
  "prepare": "husky install"
36
65
  },
@@ -40,7 +69,7 @@
40
69
  },
41
70
  "dependencies": {
42
71
  "@popperjs/core": "^2.11.2",
43
- "@stencil/core": "^2.14.1",
72
+ "@stencil/core": "^2.17.1",
44
73
  "normalize.css": "^8.0.1"
45
74
  },
46
75
  "devDependencies": {
@@ -49,12 +78,12 @@
49
78
  "@pxtrn/storybook-addon-docs-stencil": "^6.4.1",
50
79
  "@stencil/eslint-plugin": "^0.4.0",
51
80
  "@stencil/sass": "^1.5.2",
52
- "@storybook/addon-a11y": "^6.4.19",
53
- "@storybook/addon-actions": "^6.4.19",
54
- "@storybook/addon-docs": "^6.4.19",
55
- "@storybook/addon-essentials": "^6.4.19",
56
- "@storybook/addon-links": "^6.4.19",
57
- "@storybook/html": "^6.4.19",
81
+ "@storybook/addon-a11y": "^6.5.9",
82
+ "@storybook/addon-actions": "^6.5.9",
83
+ "@storybook/addon-docs": "^6.5.9",
84
+ "@storybook/addon-essentials": "^6.5.9",
85
+ "@storybook/addon-links": "^6.5.9",
86
+ "@storybook/html": "^6.5.9",
58
87
  "@storybook/preset-scss": "^1.0.3",
59
88
  "@types/jest": "^26.0.24",
60
89
  "@types/jest-image-snapshot": "^4.3.1",
@@ -62,11 +91,13 @@
62
91
  "@typescript-eslint/parser": "^4.33.0",
63
92
  "babel-loader": "^8.2.2",
64
93
  "babel-plugin-jsx-pragmatic": "^1.0.2",
94
+ "chromatic": "^6.5.4",
65
95
  "css-loader": "^5.2.7",
66
96
  "eslint": "^7.32.0",
97
+ "eslint-plugin-jsdoc": "^38.0.6",
67
98
  "eslint-plugin-jsx-a11y": "^6.5.1",
68
99
  "eslint-plugin-react": "^7.26.1",
69
- "eslint-plugin-storybook": "^0.5.7",
100
+ "eslint-plugin-storybook": "^0.5.13",
70
101
  "husky": "^7.0.4",
71
102
  "jest": "^26.6.3",
72
103
  "jest-cli": "^26.6.3",
@@ -74,12 +105,12 @@
74
105
  "jest-junit": "^13.0.0",
75
106
  "jsx-dom": "^8.0.1-beta.1",
76
107
  "npm-run-all": "^4.1.5",
77
- "postcss": "^8.4.5",
78
108
  "prettier": "^2.5.1",
79
109
  "puppeteer": "^13.3.2",
80
110
  "sass": "^1.41.0",
81
111
  "sass-loader": "^10.2.0",
82
112
  "style-loader": "^2.0.0",
113
+ "ts-node": "^10.7.0",
83
114
  "typescript": "^4.4.3"
84
115
  },
85
116
  "license": "BSD-3-Clause"
package/readme.md CHANGED
@@ -4,8 +4,6 @@
4
4
 
5
5
  This project centralize MGDIS standalone Web Components using [Stencil](https://stenciljs.com/).
6
6
 
7
- All components refer to [PDA9-61 Spec](https://jira.mgdis.fr/browse/PDA9-61).
8
-
9
7
  ## Stencil
10
8
 
11
9
  Stencil is a compiler for building fast web apps using Web Components.
@@ -16,18 +14,11 @@ Stencil components are just Web Components, so they work in any major framework
16
14
 
17
15
  ## Getting Started
18
16
 
19
- To run MG Components, clone this repo to a new directory:
20
-
21
- ```bash
22
- git clone https://gitlab.mgdis.fr/core/core-ui/mg-components
23
- cd mg-components
24
- ```
25
-
26
- and run:
17
+ To run MG Components, clone this repository, go to your new directory and run:
27
18
 
28
19
  ```bash
29
20
  npm ci
30
- npm start
21
+ npm run start
31
22
  ```
32
23
 
33
24
  To build for production, run:
@@ -49,8 +40,12 @@ npm run test:e2e
49
40
 
50
41
  # filter on filename
51
42
  npm run test -- mg-icon
43
+ npm run test:unit -- mg-icon
52
44
  ```
53
- To regenerate snapshot you must add the `-u` parameter.
45
+
46
+ <!-- Not working for now: To regenerate snapshot you must add the `-u` parameter. -->
47
+
48
+ For E2E tests you **must** use [WSL](https://docs.microsoft.com/fr-fr/windows/wsl/install) or a Linux OS to get the same screenshots as the GitLab CI.
54
49
 
55
50
  To add a component, run:
56
51
 
@@ -66,32 +61,11 @@ npm run generate molecules/mg-message
66
61
 
67
62
  ## Naming Components
68
63
 
69
- When creating new component tags, we recommend _not_ using `stencil` in the component name (ex: `<stencil-datepicker>`). This is because the generated component has little to nothing to do with Stencil; it's just a web component!
70
-
71
- Instead, use a prefix that fits your company or any name for a group of related components. For example, all of the MGDIS generated web components use the prefix `mg`.
64
+ All of the MGDIS generated web components must use the prefix `mg`.
72
65
 
73
66
  ## Using this library
74
67
 
75
- There are three strategies we recommend for using web components built with Stencil.
76
-
77
- The first step for all three of these strategies is to [publish to NPM](https://docs.npmjs.com/getting-started/publishing-npm-packages).
78
-
79
- ### Script tag
80
-
81
- - Put a script tag similar to this `<script src='https://unpkg.com/mg-button@0.0.1/dist/mg-button.esm.js'></script>` in the head of your index.html
82
- - Then you can use the element anywhere in your template, JSX, html etc
83
-
84
- ### Node Modules
85
-
86
- - Run `npm install @mgdis/mg-button --save`
87
- - Put a script tag similar to this `<script src='node_modules/mg-button/dist/mg-button.esm.js'></script>` in the head of your index.html
88
- - Then you can use the element anywhere in your template, JSX, html etc
89
-
90
- ### In a stencil-starter app
91
-
92
- - Run `npm install @mgdis/mg-button --save`
93
- - Add an import to the npm packages `import @mgdis/mg-button;`
94
- - Then you can use the element anywhere in your template, JSX, html etc
68
+ You will find how to use the library instructions in the [Getting Started section](src/stories/1-getting-started.stories.mdx).
95
69
 
96
70
  ## Style
97
71
 
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- /*
4
- Stencil Client Patch Esm v2.14.1 | MIT Licensed | https://stenciljs.com
5
- */
6
- var __assign=function(){return (__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},StyleNode=function(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector="";};function parse(e){return parseCss(lex(e=clean(e)),e)}function clean(e){return e.replace(RX.comments,"").replace(RX.port,"")}function lex(e){var t=new StyleNode;t.start=0,t.end=e.length;for(var r=t,n=0,s=e.length;n<s;n++)if(e[n]===OPEN_BRACE){r.rules||(r.rules=[]);var o=r,a=o.rules[o.rules.length-1]||null;(r=new StyleNode).start=n+1,r.parent=o,r.previous=a,o.rules.push(r);}else e[n]===CLOSE_BRACE&&(r.end=n+1,r=r.parent||t);return t}function parseCss(e,t){var r=t.substring(e.start,e.end-1);if(e.parsedCssText=e.cssText=r.trim(),e.parent){var n=e.previous?e.previous.end:e.parent.start;r=(r=(r=_expandUnicodeEscapes(r=t.substring(n,e.start-1))).replace(RX.multipleSpaces," ")).substring(r.lastIndexOf(";")+1);var s=e.parsedSelector=e.selector=r.trim();e.atRule=0===s.indexOf(AT_START),e.atRule?0===s.indexOf(MEDIA_START)?e.type=types.MEDIA_RULE:s.match(RX.keyframesRule)&&(e.type=types.KEYFRAMES_RULE,e.keyframesName=e.selector.split(RX.multipleSpaces).pop()):0===s.indexOf(VAR_START)?e.type=types.MIXIN_RULE:e.type=types.STYLE_RULE;}var o=e.rules;if(o)for(var a=0,i=o.length,l=void 0;a<i&&(l=o[a]);a++)parseCss(l,t);return e}function _expandUnicodeEscapes(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return "\\"+e}))}var types={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE="{",CLOSE_BRACE="}",RX={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START="--",MEDIA_START="@media",AT_START="@";function findRegex(e,t,r){e.lastIndex=0;var n=t.substring(r).match(e);if(n){var s=r+n.index;return {start:s,end:s+n[0].length}}return null}var VAR_USAGE_START=/\bvar\(/,VAR_ASSIGN_START=/\B--[\w-]+\s*:/,COMMENTS=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,TRAILING_LINES=/^[\t ]+\n/gm;function resolveVar(e,t,r){return e[t]?e[t]:r?executeTemplate(r,e):""}function findVarEndIndex(e,t){for(var r=0,n=t;n<e.length;n++){var s=e[n];if("("===s)r++;else if(")"===s&&--r<=0)return n+1}return n}function parseVar(e,t){var r=findRegex(VAR_USAGE_START,e,t);if(!r)return null;var n=findVarEndIndex(e,r.start),s=e.substring(r.end,n-1).split(","),o=s[0],a=s.slice(1);return {start:r.start,end:n,propName:o.trim(),fallback:a.length>0?a.join(",").trim():void 0}}function compileVar(e,t,r){var n=parseVar(e,r);if(!n)return t.push(e.substring(r,e.length)),e.length;var s=n.propName,o=null!=n.fallback?compileTemplate(n.fallback):void 0;return t.push(e.substring(r,n.start),(function(e){return resolveVar(e,s,o)})),n.end}function executeTemplate(e,t){for(var r="",n=0;n<e.length;n++){var s=e[n];r+="string"==typeof s?s:s(t);}return r}function findEndValue(e,t){for(var r=!1,n=!1,s=t;s<e.length;s++){var o=e[s];if(r)n&&'"'===o&&(r=!1),n||"'"!==o||(r=!1);else if('"'===o)r=!0,n=!0;else if("'"===o)r=!0,n=!1;else {if(";"===o)return s+1;if("}"===o)return s}}return s}function removeCustomAssigns(e){for(var t="",r=0;;){var n=findRegex(VAR_ASSIGN_START,e,r),s=n?n.start:e.length;if(t+=e.substring(r,s),!n)break;r=findEndValue(e,s);}return t}function compileTemplate(e){var t=0;e=removeCustomAssigns(e=e.replace(COMMENTS,"")).replace(TRAILING_LINES,"");for(var r=[];t<e.length;)t=compileVar(e,r,t);return r}function resolveValues(e){var t={};e.forEach((function(e){e.declarations.forEach((function(e){t[e.prop]=e.value;}));}));for(var r={},n=Object.entries(t),s=function(e){var t=!1;if(n.forEach((function(e){var n=e[0],s=executeTemplate(e[1],r);s!==r[n]&&(r[n]=s,t=!0);})),!t)return "break"},o=0;o<10;o++){if("break"===s())break}return r}function getSelectors(e,t){if(void 0===t&&(t=0),!e.rules)return [];var r=[];return e.rules.filter((function(e){return e.type===types.STYLE_RULE})).forEach((function(e){var n=getDeclarations(e.cssText);n.length>0&&e.parsedSelector.split(",").forEach((function(e){e=e.trim(),r.push({selector:e,declarations:n,specificity:computeSpecificity(),nu:t});})),t++;})),r}function computeSpecificity(e){return 1}var IMPORTANT="!important",FIND_DECLARATIONS=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;function getDeclarations(e){for(var t,r=[];t=FIND_DECLARATIONS.exec(e.trim());){var n=normalizeValue(t[2]),s=n.value,o=n.important;r.push({prop:t[1].trim(),value:compileTemplate(s),important:o});}return r}function normalizeValue(e){var t=(e=e.replace(/\s+/gim," ").trim()).endsWith(IMPORTANT);return t&&(e=e.substr(0,e.length-IMPORTANT.length).trim()),{value:e,important:t}}function getActiveSelectors(e,t,r){var n=[],s=getScopesForElement(t,e);return r.forEach((function(e){return n.push(e)})),s.forEach((function(e){return n.push(e)})),sortSelectors(getSelectorsForScopes(n).filter((function(t){return matches(e,t.selector)})))}function getScopesForElement(e,t){for(var r=[];t;){var n=e.get(t);n&&r.push(n),t=t.parentElement;}return r}function getSelectorsForScopes(e){var t=[];return e.forEach((function(e){t.push.apply(t,e.selectors);})),t}function sortSelectors(e){return e.sort((function(e,t){return e.specificity===t.specificity?e.nu-t.nu:e.specificity-t.specificity})),e}function matches(e,t){return ":root"===t||"html"===t||e.matches(t)}function parseCSS(e){var t=parse(e),r=compileTemplate(e);return {original:e,template:r,selectors:getSelectors(t),usesCssVars:r.length>1}}function addGlobalStyle(e,t){if(e.some((function(e){return e.styleEl===t})))return !1;var r=parseCSS(t.textContent);return r.styleEl=t,e.push(r),!0}function updateGlobalScopes(e){var t=resolveValues(getSelectorsForScopes(e));e.forEach((function(e){e.usesCssVars&&(e.styleEl.textContent=executeTemplate(e.template,t));}));}function reScope(e,t){var r=e.template.map((function(r){return "string"==typeof r?replaceScope(r,e.scopeId,t):r})),n=e.selectors.map((function(r){return __assign(__assign({},r),{selector:replaceScope(r.selector,e.scopeId,t)})}));return __assign(__assign({},e),{template:r,selectors:n,scopeId:t})}function replaceScope(e,t,r){return e=replaceAll(e,"\\.".concat(t),".".concat(r))}function replaceAll(e,t,r){return e.replace(new RegExp(t,"g"),r)}function loadDocument(e,t){return loadDocumentStyles(e,t),loadDocumentLinks(e,t).then((function(){updateGlobalScopes(t);}))}function startWatcher(e,t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(){loadDocumentStyles(e,t)&&updateGlobalScopes(t);})).observe(document.head,{childList:!0});}function loadDocumentLinks(e,t){for(var r=[],n=e.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])'),s=0;s<n.length;s++)r.push(addGlobalLink(e,t,n[s]));return Promise.all(r)}function loadDocumentStyles(e,t){return Array.from(e.querySelectorAll("style:not([data-styles]):not([data-no-shim])")).map((function(e){return addGlobalStyle(t,e)})).some(Boolean)}function addGlobalLink(e,t,r){var n=r.href;return fetch(n).then((function(e){return e.text()})).then((function(s){if(hasCssVariables(s)&&r.parentNode){hasRelativeUrls(s)&&(s=fixRelativeUrls(s,n));var o=e.createElement("style");o.setAttribute("data-styles",""),o.textContent=s,addGlobalStyle(t,o),r.parentNode.insertBefore(o,r),r.remove();}})).catch((function(e){console.error(e);}))}var CSS_VARIABLE_REGEXP=/[\s;{]--[-a-zA-Z0-9]+\s*:/m;function hasCssVariables(e){return e.indexOf("var(")>-1||CSS_VARIABLE_REGEXP.test(e)}var CSS_URL_REGEXP=/url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;function hasRelativeUrls(e){return CSS_URL_REGEXP.lastIndex=0,CSS_URL_REGEXP.test(e)}function fixRelativeUrls(e,t){var r=t.replace(/[^/]*$/,"");return e.replace(CSS_URL_REGEXP,(function(e,t){var n=r+t;return e.replace(t,n)}))}var CustomStyle=function(){function e(e,t){this.win=e,this.doc=t,this.count=0,this.hostStyleMap=new WeakMap,this.hostScopeMap=new WeakMap,this.globalScopes=[],this.scopesMap=new Map,this.didInit=!1;}return e.prototype.i=function(){var e=this;return this.didInit||!this.win.requestAnimationFrame?Promise.resolve():(this.didInit=!0,new Promise((function(t){e.win.requestAnimationFrame((function(){startWatcher(e.doc,e.globalScopes),loadDocument(e.doc,e.globalScopes).then((function(){return t()}));}));})))},e.prototype.addLink=function(e){var t=this;return addGlobalLink(this.doc,this.globalScopes,e).then((function(){t.updateGlobal();}))},e.prototype.addGlobalStyle=function(e){addGlobalStyle(this.globalScopes,e)&&this.updateGlobal();},e.prototype.createHostStyle=function(e,t,r,n){if(this.hostScopeMap.has(e))throw new Error("host style already created");var s=this.registerHostTemplate(r,t,n),o=this.doc.createElement("style");return o.setAttribute("data-no-shim",""),s.usesCssVars?n?(o["s-sc"]=t="".concat(s.scopeId,"-").concat(this.count),o.textContent="/*needs update*/",this.hostStyleMap.set(e,o),this.hostScopeMap.set(e,reScope(s,t)),this.count++):(s.styleEl=o,s.usesCssVars||(o.textContent=executeTemplate(s.template,{})),this.globalScopes.push(s),this.updateGlobal(),this.hostScopeMap.set(e,s)):o.textContent=r,o},e.prototype.removeHost=function(e){var t=this.hostStyleMap.get(e);t&&t.remove(),this.hostStyleMap.delete(e),this.hostScopeMap.delete(e);},e.prototype.updateHost=function(e){var t=this.hostScopeMap.get(e);if(t&&t.usesCssVars&&t.isScoped){var r=this.hostStyleMap.get(e);if(r){var n=resolveValues(getActiveSelectors(e,this.hostScopeMap,this.globalScopes));r.textContent=executeTemplate(t.template,n);}}},e.prototype.updateGlobal=function(){updateGlobalScopes(this.globalScopes);},e.prototype.registerHostTemplate=function(e,t,r){var n=this.scopesMap.get(t);return n||((n=parseCSS(e)).scopeId=t,n.isScoped=r,this.scopesMap.set(t,n)),n},e}();!function(e){!e||e.__cssshim||e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")||(e.__cssshim=new CustomStyle(e,e.document));}("undefined"!=typeof window&&window);