@universityofmaryland/web-model-library 1.0.1 → 1.0.2-beta.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 (229) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/___vite-browser-external.js +6 -7
  3. package/dist/_virtual/___vite-browser-external.js.map +1 -1
  4. package/dist/_virtual/__vite-browser-external.js +3 -2
  5. package/dist/_virtual/__vite-browser-external.js.map +1 -1
  6. package/dist/_virtual/_commonjsHelpers.js +4 -4
  7. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  8. package/dist/_virtual/index.js +7 -6
  9. package/dist/_virtual/index.js.map +1 -1
  10. package/dist/_virtual/picocolors.browser.js +3 -3
  11. package/dist/_virtual/picocolors.browser.js.map +1 -1
  12. package/dist/_virtual/postcss.js +7 -6
  13. package/dist/_virtual/postcss.js.map +1 -1
  14. package/dist/_virtual/symbols.js +3 -3
  15. package/dist/_virtual/symbols.js.map +1 -1
  16. package/dist/attributes/checks.d.ts +1 -0
  17. package/dist/attributes/checks.d.ts.map +1 -1
  18. package/dist/attributes/checks.js +317 -331
  19. package/dist/attributes/checks.js.map +1 -1
  20. package/dist/attributes/handler.d.ts +1 -2
  21. package/dist/attributes/handler.d.ts.map +1 -1
  22. package/dist/attributes/handler.js +20 -19
  23. package/dist/attributes/handler.js.map +1 -1
  24. package/dist/attributes/index.d.ts +3 -3
  25. package/dist/attributes/index.d.ts.map +1 -1
  26. package/dist/attributes/names.d.ts +3 -3
  27. package/dist/attributes/names.d.ts.map +1 -1
  28. package/dist/attributes/names.js +5 -3
  29. package/dist/attributes/names.js.map +1 -1
  30. package/dist/attributes/values.d.ts +10 -11
  31. package/dist/attributes/values.d.ts.map +1 -1
  32. package/dist/attributes/values.js +3 -2
  33. package/dist/attributes/values.js.map +1 -1
  34. package/dist/attributes.js +21 -21
  35. package/dist/attributes.js.map +1 -1
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +12 -12
  39. package/dist/index.js.map +1 -1
  40. package/dist/model.js +7 -7
  41. package/dist/model.js.map +1 -1
  42. package/dist/node_modules/nanoid/non-secure/index.js +3 -3
  43. package/dist/node_modules/nanoid/non-secure/index.js.map +1 -1
  44. package/dist/node_modules/picocolors/picocolors.browser.js +8 -8
  45. package/dist/node_modules/picocolors/picocolors.browser.js.map +1 -1
  46. package/dist/node_modules/postcss/lib/at-rule.js +5 -5
  47. package/dist/node_modules/postcss/lib/at-rule.js.map +1 -1
  48. package/dist/node_modules/postcss/lib/comment.js +5 -5
  49. package/dist/node_modules/postcss/lib/comment.js.map +1 -1
  50. package/dist/node_modules/postcss/lib/container.js +69 -62
  51. package/dist/node_modules/postcss/lib/container.js.map +1 -1
  52. package/dist/node_modules/postcss/lib/css-syntax-error.js +30 -19
  53. package/dist/node_modules/postcss/lib/css-syntax-error.js.map +1 -1
  54. package/dist/node_modules/postcss/lib/declaration.js +8 -8
  55. package/dist/node_modules/postcss/lib/declaration.js.map +1 -1
  56. package/dist/node_modules/postcss/lib/document.js +5 -5
  57. package/dist/node_modules/postcss/lib/document.js.map +1 -1
  58. package/dist/node_modules/postcss/lib/fromJSON.js +19 -19
  59. package/dist/node_modules/postcss/lib/fromJSON.js.map +1 -1
  60. package/dist/node_modules/postcss/lib/input.js +51 -37
  61. package/dist/node_modules/postcss/lib/input.js.map +1 -1
  62. package/dist/node_modules/postcss/lib/lazy-result.js +67 -67
  63. package/dist/node_modules/postcss/lib/lazy-result.js.map +1 -1
  64. package/dist/node_modules/postcss/lib/list.js +3 -3
  65. package/dist/node_modules/postcss/lib/list.js.map +1 -1
  66. package/dist/node_modules/postcss/lib/map-generator.js +27 -18
  67. package/dist/node_modules/postcss/lib/map-generator.js.map +1 -1
  68. package/dist/node_modules/postcss/lib/no-work-result.js +54 -51
  69. package/dist/node_modules/postcss/lib/no-work-result.js.map +1 -1
  70. package/dist/node_modules/postcss/lib/node.js +91 -38
  71. package/dist/node_modules/postcss/lib/node.js.map +1 -1
  72. package/dist/node_modules/postcss/lib/parse.js +13 -13
  73. package/dist/node_modules/postcss/lib/parse.js.map +1 -1
  74. package/dist/node_modules/postcss/lib/parser.js +21 -20
  75. package/dist/node_modules/postcss/lib/parser.js.map +1 -1
  76. package/dist/node_modules/postcss/lib/postcss.js +4 -3
  77. package/dist/node_modules/postcss/lib/postcss.js.map +1 -1
  78. package/dist/node_modules/postcss/lib/postcss2.js +43 -43
  79. package/dist/node_modules/postcss/lib/postcss2.js.map +1 -1
  80. package/dist/node_modules/postcss/lib/previous-map.js +14 -12
  81. package/dist/node_modules/postcss/lib/previous-map.js.map +1 -1
  82. package/dist/node_modules/postcss/lib/processor.js +13 -13
  83. package/dist/node_modules/postcss/lib/processor.js.map +1 -1
  84. package/dist/node_modules/postcss/lib/result.js +12 -12
  85. package/dist/node_modules/postcss/lib/result.js.map +1 -1
  86. package/dist/node_modules/postcss/lib/root.js +5 -5
  87. package/dist/node_modules/postcss/lib/root.js.map +1 -1
  88. package/dist/node_modules/postcss/lib/rule.js +13 -13
  89. package/dist/node_modules/postcss/lib/rule.js.map +1 -1
  90. package/dist/node_modules/postcss/lib/stringifier.js +3 -3
  91. package/dist/node_modules/postcss/lib/stringifier.js.map +1 -1
  92. package/dist/node_modules/postcss/lib/stringify.js +5 -5
  93. package/dist/node_modules/postcss/lib/stringify.js.map +1 -1
  94. package/dist/node_modules/postcss/lib/symbols.js +8 -8
  95. package/dist/node_modules/postcss/lib/symbols.js.map +1 -1
  96. package/dist/node_modules/postcss/lib/tokenize.js +5 -5
  97. package/dist/node_modules/postcss/lib/tokenize.js.map +1 -1
  98. package/dist/node_modules/postcss/lib/warning.js +3 -3
  99. package/dist/node_modules/postcss/lib/warning.js.map +1 -1
  100. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js +3 -3
  101. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js.map +1 -1
  102. package/dist/slots/create.js +3 -3
  103. package/dist/slots/create.js.map +1 -1
  104. package/dist/slots/element.js +3 -3
  105. package/dist/slots/element.js.map +1 -1
  106. package/dist/slots/index.d.ts +15 -16
  107. package/dist/slots/index.d.ts.map +1 -1
  108. package/dist/slots/mapping.js +3 -3
  109. package/dist/slots/mapping.js.map +1 -1
  110. package/dist/slots.d.ts +0 -4
  111. package/dist/slots.js +41 -40
  112. package/dist/slots.js.map +1 -1
  113. package/dist/utilities/index.d.ts +1 -1
  114. package/dist/utilities/index.d.ts.map +1 -1
  115. package/dist/utilities/lifecycle.js +4 -4
  116. package/dist/utilities/lifecycle.js.map +1 -1
  117. package/dist/utilities/register.js +6 -6
  118. package/dist/utilities/register.js.map +1 -1
  119. package/dist/utilities/styles.d.ts +1 -2
  120. package/dist/utilities/styles.d.ts.map +1 -1
  121. package/dist/utilities/styles.js +15 -10
  122. package/dist/utilities/styles.js.map +1 -1
  123. package/dist/utilities.js +10 -10
  124. package/dist/utilities.js.map +1 -1
  125. package/package.json +13 -12
  126. package/dist/_virtual/___vite-browser-external.mjs +0 -7
  127. package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
  128. package/dist/_virtual/__vite-browser-external.mjs +0 -5
  129. package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
  130. package/dist/_virtual/_commonjsHelpers.mjs +0 -37
  131. package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
  132. package/dist/_virtual/index.mjs +0 -8
  133. package/dist/_virtual/index.mjs.map +0 -1
  134. package/dist/_virtual/picocolors.browser.mjs +0 -5
  135. package/dist/_virtual/picocolors.browser.mjs.map +0 -1
  136. package/dist/_virtual/postcss.mjs +0 -8
  137. package/dist/_virtual/postcss.mjs.map +0 -1
  138. package/dist/_virtual/symbols.mjs +0 -5
  139. package/dist/_virtual/symbols.mjs.map +0 -1
  140. package/dist/attributes/checks.mjs +0 -752
  141. package/dist/attributes/checks.mjs.map +0 -1
  142. package/dist/attributes/handler.mjs +0 -206
  143. package/dist/attributes/handler.mjs.map +0 -1
  144. package/dist/attributes/names.mjs +0 -143
  145. package/dist/attributes/names.mjs.map +0 -1
  146. package/dist/attributes/values.mjs +0 -84
  147. package/dist/attributes/values.mjs.map +0 -1
  148. package/dist/attributes.mjs +0 -22
  149. package/dist/attributes.mjs.map +0 -1
  150. package/dist/index.mjs +0 -13
  151. package/dist/index.mjs.map +0 -1
  152. package/dist/model.mjs +0 -259
  153. package/dist/model.mjs.map +0 -1
  154. package/dist/node_modules/nanoid/non-secure/index.mjs +0 -31
  155. package/dist/node_modules/nanoid/non-secure/index.mjs.map +0 -1
  156. package/dist/node_modules/picocolors/picocolors.browser.mjs +0 -17
  157. package/dist/node_modules/picocolors/picocolors.browser.mjs.map +0 -1
  158. package/dist/node_modules/postcss/lib/at-rule.mjs +0 -30
  159. package/dist/node_modules/postcss/lib/at-rule.mjs.map +0 -1
  160. package/dist/node_modules/postcss/lib/comment.mjs +0 -21
  161. package/dist/node_modules/postcss/lib/comment.mjs.map +0 -1
  162. package/dist/node_modules/postcss/lib/container.mjs +0 -383
  163. package/dist/node_modules/postcss/lib/container.mjs.map +0 -1
  164. package/dist/node_modules/postcss/lib/css-syntax-error.mjs +0 -92
  165. package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +0 -1
  166. package/dist/node_modules/postcss/lib/declaration.mjs +0 -27
  167. package/dist/node_modules/postcss/lib/declaration.mjs.map +0 -1
  168. package/dist/node_modules/postcss/lib/document.mjs +0 -34
  169. package/dist/node_modules/postcss/lib/document.mjs.map +0 -1
  170. package/dist/node_modules/postcss/lib/fromJSON.mjs +0 -67
  171. package/dist/node_modules/postcss/lib/fromJSON.mjs.map +0 -1
  172. package/dist/node_modules/postcss/lib/input.mjs +0 -216
  173. package/dist/node_modules/postcss/lib/input.mjs.map +0 -1
  174. package/dist/node_modules/postcss/lib/lazy-result.mjs +0 -467
  175. package/dist/node_modules/postcss/lib/lazy-result.mjs.map +0 -1
  176. package/dist/node_modules/postcss/lib/list.mjs +0 -60
  177. package/dist/node_modules/postcss/lib/list.mjs.map +0 -1
  178. package/dist/node_modules/postcss/lib/map-generator.mjs +0 -314
  179. package/dist/node_modules/postcss/lib/map-generator.mjs.map +0 -1
  180. package/dist/node_modules/postcss/lib/no-work-result.mjs +0 -113
  181. package/dist/node_modules/postcss/lib/no-work-result.mjs.map +0 -1
  182. package/dist/node_modules/postcss/lib/node.mjs +0 -335
  183. package/dist/node_modules/postcss/lib/node.mjs.map +0 -1
  184. package/dist/node_modules/postcss/lib/parse.mjs +0 -30
  185. package/dist/node_modules/postcss/lib/parse.mjs.map +0 -1
  186. package/dist/node_modules/postcss/lib/parser.mjs +0 -543
  187. package/dist/node_modules/postcss/lib/parser.mjs.map +0 -1
  188. package/dist/node_modules/postcss/lib/postcss.mjs +0 -29
  189. package/dist/node_modules/postcss/lib/postcss.mjs.map +0 -1
  190. package/dist/node_modules/postcss/lib/postcss2.mjs +0 -110
  191. package/dist/node_modules/postcss/lib/postcss2.mjs.map +0 -1
  192. package/dist/node_modules/postcss/lib/previous-map.mjs +0 -123
  193. package/dist/node_modules/postcss/lib/previous-map.mjs.map +0 -1
  194. package/dist/node_modules/postcss/lib/processor.mjs +0 -61
  195. package/dist/node_modules/postcss/lib/processor.mjs.map +0 -1
  196. package/dist/node_modules/postcss/lib/result.mjs +0 -44
  197. package/dist/node_modules/postcss/lib/result.mjs.map +0 -1
  198. package/dist/node_modules/postcss/lib/root.mjs +0 -58
  199. package/dist/node_modules/postcss/lib/root.mjs.map +0 -1
  200. package/dist/node_modules/postcss/lib/rule.mjs +0 -33
  201. package/dist/node_modules/postcss/lib/rule.mjs.map +0 -1
  202. package/dist/node_modules/postcss/lib/stringifier.mjs +0 -308
  203. package/dist/node_modules/postcss/lib/stringifier.mjs.map +0 -1
  204. package/dist/node_modules/postcss/lib/stringify.mjs +0 -19
  205. package/dist/node_modules/postcss/lib/stringify.mjs.map +0 -1
  206. package/dist/node_modules/postcss/lib/symbols.mjs +0 -13
  207. package/dist/node_modules/postcss/lib/symbols.mjs.map +0 -1
  208. package/dist/node_modules/postcss/lib/tokenize.mjs +0 -219
  209. package/dist/node_modules/postcss/lib/tokenize.mjs.map +0 -1
  210. package/dist/node_modules/postcss/lib/warning.mjs +0 -40
  211. package/dist/node_modules/postcss/lib/warning.mjs.map +0 -1
  212. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs +0 -130
  213. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs.map +0 -1
  214. package/dist/slots/create.mjs +0 -50
  215. package/dist/slots/create.mjs.map +0 -1
  216. package/dist/slots/element.mjs +0 -42
  217. package/dist/slots/element.mjs.map +0 -1
  218. package/dist/slots/mapping.mjs +0 -101
  219. package/dist/slots/mapping.mjs.map +0 -1
  220. package/dist/slots.mjs +0 -78
  221. package/dist/slots.mjs.map +0 -1
  222. package/dist/utilities/lifecycle.mjs +0 -21
  223. package/dist/utilities/lifecycle.mjs.map +0 -1
  224. package/dist/utilities/register.mjs +0 -32
  225. package/dist/utilities/register.mjs.map +0 -1
  226. package/dist/utilities/styles.mjs +0 -80
  227. package/dist/utilities/styles.mjs.map +0 -1
  228. package/dist/utilities.mjs +0 -11
  229. package/dist/utilities.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"values.js","sources":["../../source/attributes/values.ts"],"sourcesContent":["// Values\n\nconst campaign = {\n forward: 'forward',\n};\n\nconst data = {\n type: {\n academic: 'academic',\n },\n};\n\nconst display = {\n block: 'block',\n feature: 'feature',\n featured: 'featured',\n hero: 'hero',\n image: 'image',\n list: 'list',\n minimal: 'minimal',\n overlay: 'overlay',\n promo: 'promo',\n short: 'short',\n stacked: 'stacked',\n standard: 'standard',\n statement: 'statement',\n sticky: 'sticky',\n tabular: 'tabular',\n mega: 'mega',\n visual: 'visual',\n simple: 'simple',\n};\n\nconst layout = {\n center: 'center',\n defaultCentered: 'default-centered',\n defaultInteriorCentered: 'default-interior-centered',\n defaultInterior: 'default-interior',\n fixed: 'fixed',\n fullImage: 'full-image',\n full: 'full',\n large: 'large',\n small: 'small',\n left: 'left',\n right: 'right',\n stackedInterior: 'stacked-interior',\n};\n\nconst search = {\n domain: 'domain',\n};\n\nconst size = {\n NORMAL: 'normal',\n LARGE: 'large',\n};\n\nconst state = {\n CLOSED: 'closed',\n FALSE: 'false',\n OPENED: 'open',\n TRUE: 'true',\n};\n\nconst theme = {\n DARK: 'dark',\n GOLD: 'gold',\n LIGHT: 'light',\n MARYLAND: 'maryland',\n};\n\nconst type = {\n OUTLINE: 'outline',\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n MEGA: 'mega',\n VISUAL: 'visual',\n SIMPLE: 'simple',\n};\n\nconst AttributeValues = {\n campaign,\n data,\n display,\n layout,\n search,\n size,\n state,\n theme,\n type,\n};\n\nexport default AttributeValues;\n"],"names":[],"mappings":";AAEA,MAAM,WAAW;AAAA,EACf,SAAS;AACX;AAEA,MAAM,OAAO;AAAA,EACX,MAAM;AAAA,IACJ,UAAU;AAAA,EAAA;AAEd;AAEA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,MAAM,SAAS;AAAA,EACb,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,iBAAiB;AACnB;AAEA,MAAM,SAAS;AAAA,EACb,QAAQ;AACV;AAEA,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,MAAM,QAAQ;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AAEA,MAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AACZ;AAEA,MAAM,OAAO;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,MAAM,kBAAkB;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;"}
1
+ {"version":3,"file":"values.js","sources":["../../source/attributes/values.ts"],"sourcesContent":["// Values\n\nconst campaign = {\n forward: 'forward',\n};\n\nconst data = {\n type: {\n academic: 'academic',\n },\n};\n\nconst display = {\n block: 'block',\n feature: 'feature',\n featured: 'featured',\n hero: 'hero',\n image: 'image',\n list: 'list',\n minimal: 'minimal',\n overlay: 'overlay',\n promo: 'promo',\n short: 'short',\n stacked: 'stacked',\n standard: 'standard',\n statement: 'statement',\n sticky: 'sticky',\n tabular: 'tabular',\n mega: 'mega',\n visual: 'visual',\n simple: 'simple',\n};\n\nconst layout = {\n center: 'center',\n defaultCentered: 'default-centered',\n defaultInteriorCentered: 'default-interior-centered',\n defaultInterior: 'default-interior',\n fixed: 'fixed',\n fullImage: 'full-image',\n full: 'full',\n large: 'large',\n small: 'small',\n left: 'left',\n right: 'right',\n stackedInterior: 'stacked-interior',\n};\n\nconst search = {\n domain: 'domain',\n};\n\nconst size = {\n NORMAL: 'normal',\n LARGE: 'large',\n};\n\nconst state = {\n CLOSED: 'closed',\n FALSE: 'false',\n OPENED: 'open',\n TRUE: 'true',\n};\n\nconst theme = {\n DARK: 'dark',\n GOLD: 'gold',\n LIGHT: 'light',\n MARYLAND: 'maryland',\n};\n\nconst type = {\n OUTLINE: 'outline',\n PRIMARY: 'primary',\n SECONDARY: 'secondary',\n MEGA: 'mega',\n VISUAL: 'visual',\n SIMPLE: 'simple',\n};\n\nexport const AttributeValues = {\n campaign,\n data,\n display,\n layout,\n search,\n size,\n state,\n theme,\n type,\n} as const;\n"],"names":[],"mappings":"AAEA,MAAM,WAAW;AAAA,EACf,SAAS;AACX;AAEA,MAAM,OAAO;AAAA,EACX,MAAM;AAAA,IACJ,UAAU;AAAA,EAAA;AAEd;AAEA,MAAM,UAAU;AAAA,EACd,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AACV;AAEA,MAAM,SAAS;AAAA,EACb,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,OAAO;AAAA,EACP,WAAW;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,iBAAiB;AACnB;AAEA,MAAM,SAAS;AAAA,EACb,QAAQ;AACV;AAEA,MAAM,OAAO;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,MAAM,QAAQ;AAAA,EACZ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AACR;AAEA,MAAM,QAAQ;AAAA,EACZ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AACZ;AAEA,MAAM,OAAO;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AACV;AAEO,MAAM,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const handler = require("./attributes/handler.js");
4
- const names = require("./attributes/names.js");
5
- const values = require("./attributes/values.js");
6
- const checks = require("./attributes/checks.js");
7
- exports.handler = handler;
8
- exports.names = names;
9
- exports.values = values;
10
- exports.getValue = checks.getValue;
11
- exports.hasDecoration = checks.hasDecoration;
12
- exports.hasInfo = checks.hasInfo;
13
- exports.includesFeature = checks.includesFeature;
14
- exports.includesSharing = checks.includesSharing;
15
- exports.isData = checks.isData;
16
- exports.isDisplay = checks.isDisplay;
17
- exports.isInfo = checks.isInfo;
18
- exports.isLayout = checks.isLayout;
19
- exports.isSharing = checks.isSharing;
20
- exports.isTheme = checks.isTheme;
21
- exports.isVisual = checks.isVisual;
1
+ import { handler } from "./attributes/handler.js";
2
+ import { AttributeNames } from "./attributes/names.js";
3
+ import { AttributeValues } from "./attributes/values.js";
4
+ import { getValue, hasDecoration, hasInfo, includesFeature, includesSharing, isData, isDisplay, isInfo, isLayout, isSharing, isTheme, isVisual } from "./attributes/checks.js";
5
+ export {
6
+ getValue,
7
+ handler,
8
+ hasDecoration,
9
+ hasInfo,
10
+ includesFeature,
11
+ includesSharing,
12
+ isData,
13
+ isDisplay,
14
+ isInfo,
15
+ isLayout,
16
+ isSharing,
17
+ isTheme,
18
+ isVisual,
19
+ AttributeNames as names,
20
+ AttributeValues as values
21
+ };
22
22
  //# sourceMappingURL=attributes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"attributes.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { default as Slots, SlotProps } from './slots';
1
+ import { Slots, SlotProps } from './slots';
2
2
  import { BaseProps, OptionalProps, SlotResult } from './slots/create';
3
3
  import * as Attributes from './attributes';
4
4
  import * as Model from './model';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,mBAAmB,UAAU,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAGxB,mBAAmB,UAAU,CAAC;AAG9B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAGzD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const attributes = require("./attributes.js");
4
- const model = require("./model.js");
5
- const register = require("./utilities/register.js");
6
- const slots = require("./slots.js");
7
- const lifecycle = require("./utilities/lifecycle.js");
8
- exports.Attributes = attributes;
9
- exports.Model = model;
10
- exports.Register = register;
11
- exports.Slots = slots;
12
- exports.Lifecycle = lifecycle;
1
+ import * as attributes from "./attributes.js";
2
+ import * as model from "./model.js";
3
+ import * as register from "./utilities/register.js";
4
+ import { Slots } from "./slots.js";
5
+ import * as lifecycle from "./utilities/lifecycle.js";
6
+ export {
7
+ attributes as Attributes,
8
+ lifecycle as Lifecycle,
9
+ model as Model,
10
+ register as Register,
11
+ Slots
12
+ };
13
13
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
package/dist/model.js CHANGED
@@ -1,10 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const styles = require("./utilities/styles.js");
1
+ import { stylesTemplate } from "./utilities/styles.js";
4
2
  var __create = Object.create;
5
3
  var __defProp = Object.defineProperty;
6
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
5
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
6
  var __typeError = (msg) => {
9
7
  throw TypeError(msg);
10
8
  };
@@ -91,7 +89,7 @@ class BaseComponent extends HTMLElement {
91
89
  }
92
90
  setupShadowDom(component) {
93
91
  this.shadow.appendChild(
94
- styles({ styles: component.styles || "" }).content.cloneNode(true)
92
+ stylesTemplate({ styles: component.styles || "" }).content.cloneNode(true)
95
93
  );
96
94
  this.shadow.appendChild(component.element);
97
95
  }
@@ -254,6 +252,8 @@ const createCustomElement = (config) => {
254
252
  __runInitializers(_init, 1, Component);
255
253
  return Component;
256
254
  };
257
- exports.BaseComponent = BaseComponent;
258
- exports.createCustomElement = createCustomElement;
255
+ export {
256
+ BaseComponent,
257
+ createCustomElement
258
+ };
259
259
  //# sourceMappingURL=model.js.map
package/dist/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sources":["../source/model/index.ts"],"sourcesContent":["/**\n * Custom Element Model System\n *\n * Provides a base class and utilities for creating web components with:\n * - Shadow DOM encapsulation\n * - Attribute observation and handling\n * - Slot validation\n * - Lifecycle management\n * - Error handling\n *\n * ## Key Features:\n *\n * 1. **Attribute Handling**: Automatic observation and callback execution\n * 2. **Slot Validation**: Required slots, deprecated warnings, element type checking\n * 3. **Lifecycle Hooks**: beforeConnect, afterConnect, onReady\n * 4. **Error Management**: Centralized error handling with custom events\n *\n * ## Usage:\n * ```typescript\n * const element = createCustomElement({\n * tagName: 'my-component',\n * slots: {\n * headline: { required: true, allowedElements: ['h2', 'h3'] },\n * content: { allowedElements: ['div', 'p'] }\n * },\n * attributes: [{\n * name: 'theme',\n * handler: (ref, oldValue, newValue) => {\n * // Handle theme change\n * }\n * }],\n * createComponent: (host) => {\n * // Create and return component\n * }\n * });\n * ```\n */\nimport StylesTemplate from '../utilities/styles';\nimport type {\n SlotConfig,\n ComponentEventDetail,\n ComponentReadyDetail,\n ComponentErrorDetail,\n ElementRef\n} from '../_types';\n\ninterface AttributeConfig {\n name: string;\n handler: (element: ElementRef, oldValue: string, newValue: string) => void;\n}\n\ninterface SlotValidationError {\n slot: string;\n error: 'missing' | 'deprecated' | 'invalid-elements';\n message: string;\n invalidElements?: Element[];\n}\n\ninterface ComponentLifecycle {\n beforeConnect?: (ref: ElementRef, shadow: ShadowRoot) => void;\n afterConnect?: (ref: ElementRef, shadow: ShadowRoot) => void;\n onReady?: (ref: ElementRef, shadow: ShadowRoot) => void;\n}\n\ninterface ComponentConfig extends ComponentLifecycle {\n tagName: string;\n attributes?: AttributeConfig[];\n slots?: Record<string, SlotConfig>;\n createComponent: (host: HTMLElement) => ElementRef;\n}\n\n// Store the config on the constructor itself\nconst ComponentConfig = (config: ComponentConfig) => {\n return function <T extends typeof BaseComponent>(constructor: T) {\n constructor.componentConfig = config;\n return constructor;\n };\n};\n\n/**\n * Base class for all web components created by the Model system.\n * Extends HTMLElement with shadow DOM support, attribute observation,\n * slot validation, and lifecycle management.\n *\n * @internal This class is not meant to be extended directly.\n * Use `createCustomElement` to create components.\n */\nclass BaseComponent extends HTMLElement {\n static componentConfig: ComponentConfig;\n\n protected shadow: ShadowRoot;\n protected elementRef: ElementRef | null = null;\n protected config: ComponentConfig;\n\n constructor() {\n super();\n\n const constructor = this.constructor as typeof BaseComponent;\n this.config = constructor.componentConfig;\n\n if (!this.config) {\n throw new Error(\n 'Component config not found. Did you forget to use the @Component decorator?',\n );\n }\n\n this.shadow = this.attachShadow({ mode: 'open' });\n this.validateConfig();\n }\n\n static get observedAttributes(): string[] {\n return this.componentConfig?.attributes?.map((attr) => attr.name) || [];\n }\n\n connectedCallback(): void {\n try {\n this.initializeComponent();\n } catch (error) {\n this.handleError('Failed to initialize component', error);\n }\n }\n\n disconnectedCallback(): void {\n this.cleanup();\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string,\n newValue: string,\n ): void {\n if (oldValue === newValue) return;\n\n try {\n this.handleAttributeChange(name, oldValue, newValue);\n } catch (error) {\n this.handleError(`Failed to handle attribute change: ${name}`, error);\n }\n }\n\n protected initializeComponent(): void {\n try {\n this.validateSlots();\n\n const componentRef = this.config.createComponent(this);\n\n if (!componentRef || !componentRef.element) {\n throw new Error(\n 'Component creation failed: Invalid component reference',\n );\n }\n\n this.elementRef = componentRef;\n this.setupShadowDom(componentRef);\n this.afterInit();\n } catch (error) {\n this.handleError('Failed to initialize component', error);\n }\n }\n\n protected setupShadowDom(component: ElementRef): void {\n this.shadow.appendChild(\n StylesTemplate({ styles: component.styles || '' }).content.cloneNode(true),\n );\n this.shadow.appendChild(component.element);\n }\n\n protected validateConfig(): void {\n const requiredFields: (keyof ComponentConfig)[] = [\n 'tagName',\n 'createComponent',\n ];\n\n requiredFields.forEach((field) => {\n if (!this.config[field]) {\n throw new Error(`Missing required config field: ${field}`);\n }\n });\n\n if (this.config.attributes) {\n this.config.attributes.forEach((attr) => {\n if (!attr.name || !attr.handler) {\n throw new Error(\n 'Invalid attribute config: requires name and handler',\n );\n }\n });\n }\n }\n\n protected async afterInit(): Promise<void> {\n if (!this.elementRef) {\n this.handleError('Cannot initialize - missing element reference', null);\n return;\n }\n\n await this.executeLifecycleCallbacks();\n\n // Dispatch umdComponent:ready event after all lifecycle callbacks complete\n this.dispatchComponentEvent<ComponentReadyDetail>('umdComponent:ready', {\n shadowRoot: this.shadow,\n ref: this.elementRef,\n });\n }\n\n protected handleAttributeChange(\n name: string,\n oldValue: string,\n newValue: string,\n ): void {\n if (!this.elementRef) return;\n\n const handler = this.config.attributes?.find(\n (attr) => attr.name === name,\n )?.handler;\n\n if (handler) {\n handler(this.elementRef, oldValue, newValue);\n }\n }\n\n protected cleanup(): void {\n this.elementRef = null;\n }\n\n /**\n * Helper method to dispatch component events with consistent structure\n */\n protected dispatchComponentEvent<T extends ComponentEventDetail>(\n eventName: string,\n detail: Omit<T, 'tagName' | 'element' | 'timestamp'>,\n ): void {\n const fullDetail = {\n ...detail,\n tagName: this.config.tagName,\n element: this,\n timestamp: Date.now(),\n } as unknown as T;\n\n this.dispatchEvent(\n new CustomEvent<T>(eventName, {\n detail: fullDetail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n protected handleError(message: string, error: unknown): void {\n console.error(`[${this.config.tagName}]`, message, error);\n\n // Determine error type based on component state and message\n const errorType = this.elementRef\n ? 'runtime'\n : message.toLowerCase().includes('validation')\n ? 'validation'\n : 'initialization';\n\n this.dispatchComponentEvent<ComponentErrorDetail>('umdComponent:error', {\n type: errorType,\n message,\n details: error,\n });\n }\n\n private validateSlots(): void {\n if (!this.config.slots) return;\n\n const errors: SlotValidationError[] = [];\n\n Object.entries(this.config.slots).forEach(([name, config]) => {\n const type = name\n .replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)\n .replace(/^-/, '');\n\n if (config.required) {\n const slotElement = this.querySelector(`[slot=\"${type}\"]`);\n if (!slotElement) {\n errors.push({\n slot: name,\n error: 'missing',\n message: `Required slot \"${type}\" is missing`,\n });\n }\n }\n\n if (config.deprecated) {\n const slotElement = this.querySelector(`[slot=\"${type}\"]`);\n if (slotElement) {\n errors.push({\n slot: name,\n error: 'deprecated',\n message: `Slot \"${type}\" is deprecated. ${config.deprecated}`,\n });\n }\n }\n\n if (config.allowedElements) {\n const slotElements = Array.from(\n this.querySelectorAll(`[slot=\"${type}\"]`),\n );\n const invalidElements = slotElements.filter(\n (element) =>\n !config.allowedElements!.includes(element.tagName.toLowerCase()),\n );\n\n if (invalidElements.length > 0) {\n errors.push({\n slot: name,\n error: 'invalid-elements',\n message: `Slot \"${type}\" contains invalid elements. Allowed: ${config.allowedElements.join(\n ', ',\n )}`,\n invalidElements,\n });\n }\n }\n });\n\n if (errors.length > 0) {\n this.handleError('Slot validation failed', errors);\n\n errors.forEach((error) => {\n console.warn(`[${this.config.tagName}]`, error.message, error);\n });\n }\n }\n\n private async executeLifecycleCallbacks(): Promise<void> {\n const lifecycleMethods = [\n 'beforeConnect',\n 'afterConnect',\n 'onReady',\n ] as const;\n\n for (const method of lifecycleMethods) {\n await this.executeCallback(method);\n }\n }\n\n private async executeCallback(name: keyof ComponentLifecycle): Promise<void> {\n const callback = this.config[name];\n\n if (!callback) {\n return;\n }\n\n try {\n await Promise.resolve(callback(this.elementRef!, this.shadow));\n } catch (error) {\n this.handleError(`Failed to execute ${name} callback`, error);\n }\n }\n\n public getRef(): ElementRef | null {\n return this.elementRef;\n }\n}\n\n/**\n * Factory function to create a custom element class.\n *\n * @param config - Component configuration including tagName, slots, attributes, and lifecycle hooks\n * @returns Custom element class that extends BaseComponent\n *\n * @example\n * ```typescript\n * export default () => {\n * Register.registerWebComponent({\n * name: tagName,\n * element: createCustomElement({\n * tagName,\n * slots,\n * attributes,\n * createComponent\n * })\n * });\n * };\n * ```\n */\nconst createCustomElement = (config: ComponentConfig): typeof BaseComponent => {\n @ComponentConfig(config)\n class Component extends BaseComponent {\n constructor() {\n super();\n }\n }\n\n return Component;\n};\n\nexport {\n createCustomElement,\n BaseComponent,\n type ComponentConfig,\n type AttributeConfig,\n};\n"],"names":["StylesTemplate"],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sources":["../source/model/index.ts"],"sourcesContent":["/**\n * Custom Element Model System\n *\n * Provides a base class and utilities for creating web components with:\n * - Shadow DOM encapsulation\n * - Attribute observation and handling\n * - Slot validation\n * - Lifecycle management\n * - Error handling\n *\n * ## Key Features:\n *\n * 1. **Attribute Handling**: Automatic observation and callback execution\n * 2. **Slot Validation**: Required slots, deprecated warnings, element type checking\n * 3. **Lifecycle Hooks**: beforeConnect, afterConnect, onReady\n * 4. **Error Management**: Centralized error handling with custom events\n *\n * ## Usage:\n * ```typescript\n * const element = createCustomElement({\n * tagName: 'my-component',\n * slots: {\n * headline: { required: true, allowedElements: ['h2', 'h3'] },\n * content: { allowedElements: ['div', 'p'] }\n * },\n * attributes: [{\n * name: 'theme',\n * handler: (ref, oldValue, newValue) => {\n * // Handle theme change\n * }\n * }],\n * createComponent: (host) => {\n * // Create and return component\n * }\n * });\n * ```\n */\nimport { stylesTemplate } from '../utilities/styles';\nimport type {\n SlotConfig,\n ComponentEventDetail,\n ComponentReadyDetail,\n ComponentErrorDetail,\n ElementRef\n} from '../_types';\n\ninterface AttributeConfig {\n name: string;\n handler: (element: ElementRef, oldValue: string, newValue: string) => void;\n}\n\ninterface SlotValidationError {\n slot: string;\n error: 'missing' | 'deprecated' | 'invalid-elements';\n message: string;\n invalidElements?: Element[];\n}\n\ninterface ComponentLifecycle {\n beforeConnect?: (ref: ElementRef, shadow: ShadowRoot) => void;\n afterConnect?: (ref: ElementRef, shadow: ShadowRoot) => void;\n onReady?: (ref: ElementRef, shadow: ShadowRoot) => void;\n}\n\ninterface ComponentConfig extends ComponentLifecycle {\n tagName: string;\n attributes?: AttributeConfig[];\n slots?: Record<string, SlotConfig>;\n createComponent: (host: HTMLElement) => ElementRef;\n}\n\n// Store the config on the constructor itself\nconst ComponentConfig = (config: ComponentConfig) => {\n return function <T extends typeof BaseComponent>(constructor: T) {\n constructor.componentConfig = config;\n return constructor;\n };\n};\n\n/**\n * Base class for all web components created by the Model system.\n * Extends HTMLElement with shadow DOM support, attribute observation,\n * slot validation, and lifecycle management.\n *\n * @internal This class is not meant to be extended directly.\n * Use `createCustomElement` to create components.\n */\nclass BaseComponent extends HTMLElement {\n static componentConfig: ComponentConfig;\n\n protected shadow: ShadowRoot;\n protected elementRef: ElementRef | null = null;\n protected config: ComponentConfig;\n\n constructor() {\n super();\n\n const constructor = this.constructor as typeof BaseComponent;\n this.config = constructor.componentConfig;\n\n if (!this.config) {\n throw new Error(\n 'Component config not found. Did you forget to use the @Component decorator?',\n );\n }\n\n this.shadow = this.attachShadow({ mode: 'open' });\n this.validateConfig();\n }\n\n static get observedAttributes(): string[] {\n return this.componentConfig?.attributes?.map((attr) => attr.name) || [];\n }\n\n connectedCallback(): void {\n try {\n this.initializeComponent();\n } catch (error) {\n this.handleError('Failed to initialize component', error);\n }\n }\n\n disconnectedCallback(): void {\n this.cleanup();\n }\n\n attributeChangedCallback(\n name: string,\n oldValue: string,\n newValue: string,\n ): void {\n if (oldValue === newValue) return;\n\n try {\n this.handleAttributeChange(name, oldValue, newValue);\n } catch (error) {\n this.handleError(`Failed to handle attribute change: ${name}`, error);\n }\n }\n\n protected initializeComponent(): void {\n try {\n this.validateSlots();\n\n const componentRef = this.config.createComponent(this);\n\n if (!componentRef || !componentRef.element) {\n throw new Error(\n 'Component creation failed: Invalid component reference',\n );\n }\n\n this.elementRef = componentRef;\n this.setupShadowDom(componentRef);\n this.afterInit();\n } catch (error) {\n this.handleError('Failed to initialize component', error);\n }\n }\n\n protected setupShadowDom(component: ElementRef): void {\n this.shadow.appendChild(\n stylesTemplate({ styles: component.styles || '' }).content.cloneNode(true),\n );\n this.shadow.appendChild(component.element);\n }\n\n protected validateConfig(): void {\n const requiredFields: (keyof ComponentConfig)[] = [\n 'tagName',\n 'createComponent',\n ];\n\n requiredFields.forEach((field) => {\n if (!this.config[field]) {\n throw new Error(`Missing required config field: ${field}`);\n }\n });\n\n if (this.config.attributes) {\n this.config.attributes.forEach((attr) => {\n if (!attr.name || !attr.handler) {\n throw new Error(\n 'Invalid attribute config: requires name and handler',\n );\n }\n });\n }\n }\n\n protected async afterInit(): Promise<void> {\n if (!this.elementRef) {\n this.handleError('Cannot initialize - missing element reference', null);\n return;\n }\n\n await this.executeLifecycleCallbacks();\n\n // Dispatch umdComponent:ready event after all lifecycle callbacks complete\n this.dispatchComponentEvent<ComponentReadyDetail>('umdComponent:ready', {\n shadowRoot: this.shadow,\n ref: this.elementRef,\n });\n }\n\n protected handleAttributeChange(\n name: string,\n oldValue: string,\n newValue: string,\n ): void {\n if (!this.elementRef) return;\n\n const handler = this.config.attributes?.find(\n (attr) => attr.name === name,\n )?.handler;\n\n if (handler) {\n handler(this.elementRef, oldValue, newValue);\n }\n }\n\n protected cleanup(): void {\n this.elementRef = null;\n }\n\n /**\n * Helper method to dispatch component events with consistent structure\n */\n protected dispatchComponentEvent<T extends ComponentEventDetail>(\n eventName: string,\n detail: Omit<T, 'tagName' | 'element' | 'timestamp'>,\n ): void {\n const fullDetail = {\n ...detail,\n tagName: this.config.tagName,\n element: this,\n timestamp: Date.now(),\n } as unknown as T;\n\n this.dispatchEvent(\n new CustomEvent<T>(eventName, {\n detail: fullDetail,\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n protected handleError(message: string, error: unknown): void {\n console.error(`[${this.config.tagName}]`, message, error);\n\n // Determine error type based on component state and message\n const errorType = this.elementRef\n ? 'runtime'\n : message.toLowerCase().includes('validation')\n ? 'validation'\n : 'initialization';\n\n this.dispatchComponentEvent<ComponentErrorDetail>('umdComponent:error', {\n type: errorType,\n message,\n details: error,\n });\n }\n\n private validateSlots(): void {\n if (!this.config.slots) return;\n\n const errors: SlotValidationError[] = [];\n\n Object.entries(this.config.slots).forEach(([name, config]) => {\n const type = name\n .replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`)\n .replace(/^-/, '');\n\n if (config.required) {\n const slotElement = this.querySelector(`[slot=\"${type}\"]`);\n if (!slotElement) {\n errors.push({\n slot: name,\n error: 'missing',\n message: `Required slot \"${type}\" is missing`,\n });\n }\n }\n\n if (config.deprecated) {\n const slotElement = this.querySelector(`[slot=\"${type}\"]`);\n if (slotElement) {\n errors.push({\n slot: name,\n error: 'deprecated',\n message: `Slot \"${type}\" is deprecated. ${config.deprecated}`,\n });\n }\n }\n\n if (config.allowedElements) {\n const slotElements = Array.from(\n this.querySelectorAll(`[slot=\"${type}\"]`),\n );\n const invalidElements = slotElements.filter(\n (element) =>\n !config.allowedElements!.includes(element.tagName.toLowerCase()),\n );\n\n if (invalidElements.length > 0) {\n errors.push({\n slot: name,\n error: 'invalid-elements',\n message: `Slot \"${type}\" contains invalid elements. Allowed: ${config.allowedElements.join(\n ', ',\n )}`,\n invalidElements,\n });\n }\n }\n });\n\n if (errors.length > 0) {\n this.handleError('Slot validation failed', errors);\n\n errors.forEach((error) => {\n console.warn(`[${this.config.tagName}]`, error.message, error);\n });\n }\n }\n\n private async executeLifecycleCallbacks(): Promise<void> {\n const lifecycleMethods = [\n 'beforeConnect',\n 'afterConnect',\n 'onReady',\n ] as const;\n\n for (const method of lifecycleMethods) {\n await this.executeCallback(method);\n }\n }\n\n private async executeCallback(name: keyof ComponentLifecycle): Promise<void> {\n const callback = this.config[name];\n\n if (!callback) {\n return;\n }\n\n try {\n await Promise.resolve(callback(this.elementRef!, this.shadow));\n } catch (error) {\n this.handleError(`Failed to execute ${name} callback`, error);\n }\n }\n\n public getRef(): ElementRef | null {\n return this.elementRef;\n }\n}\n\n/**\n * Factory function to create a custom element class.\n *\n * @param config - Component configuration including tagName, slots, attributes, and lifecycle hooks\n * @returns Custom element class that extends BaseComponent\n *\n * @example\n * ```typescript\n * export default () => {\n * Register.registerWebComponent({\n * name: tagName,\n * element: createCustomElement({\n * tagName,\n * slots,\n * attributes,\n * createComponent\n * })\n * });\n * };\n * ```\n */\nconst createCustomElement = (config: ComponentConfig): typeof BaseComponent => {\n @ComponentConfig(config)\n class Component extends BaseComponent {\n constructor() {\n super();\n }\n }\n\n return Component;\n};\n\nexport {\n createCustomElement,\n BaseComponent,\n type ComponentConfig,\n type AttributeConfig,\n};\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
1
  var nonSecure;
4
2
  var hasRequiredNonSecure;
5
3
  function requireNonSecure() {
@@ -27,5 +25,7 @@ function requireNonSecure() {
27
25
  nonSecure = { nanoid, customAlphabet };
28
26
  return nonSecure;
29
27
  }
30
- exports.__require = requireNonSecure;
28
+ export {
29
+ requireNonSecure as __require
30
+ };
31
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nmodule.exports = { nanoid, customAlphabet }\n"],"names":[],"mappings":";;;;;;;AAMA,MAAI,cACF;AAEF,MAAI,iBAAiB,CAAC,UAAU,cAAc,OAAO;AACnD,WAAO,CAAC,OAAO,gBAAgB;AAC7B,UAAI,KAAK;AAET,UAAI,IAAI,OAAO;AACf,aAAO,KAAK;AAEV,cAAM,SAAU,KAAK,OAAM,IAAK,SAAS,SAAU,CAAC;AAAA,MAC1D;AACI,aAAO;AAAA,IACX;AAAA,EACA;AAEA,MAAI,SAAS,CAAC,OAAO,OAAO;AAC1B,QAAI,KAAK;AAET,QAAI,IAAI,OAAO;AACf,WAAO,KAAK;AAEV,YAAM,YAAa,KAAK,OAAM,IAAK,KAAM,CAAC;AAAA,IAC9C;AACE,WAAO;AAAA,EACT;AAEA,cAAiB,EAAE,QAAQ,eAAc;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nmodule.exports = { nanoid, customAlphabet }\n"],"names":[],"mappings":";;;;;AAMA,MAAI,cACF;AAEF,MAAI,iBAAiB,CAAC,UAAU,cAAc,OAAO;AACnD,WAAO,CAAC,OAAO,gBAAgB;AAC7B,UAAI,KAAK;AAET,UAAI,IAAI,OAAO;AACf,aAAO,KAAK;AAEV,cAAM,SAAU,KAAK,OAAM,IAAK,SAAS,SAAU,CAAC;AAAA,MAC1D;AACI,aAAO;AAAA,IACX;AAAA,EACA;AAEA,MAAI,SAAS,CAAC,OAAO,OAAO;AAC1B,QAAI,KAAK;AAET,QAAI,IAAI,OAAO;AACf,WAAO,KAAK;AAEV,YAAM,YAAa,KAAK,OAAM,IAAK,KAAM,CAAC;AAAA,IAC9C;AACE,WAAO;AAAA,EACT;AAEA,cAAiB,EAAE,QAAQ,eAAc;;;","x_google_ignoreList":[0]}
@@ -1,17 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const picocolors_browser = require("../../_virtual/picocolors.browser.js");
1
+ import { __module as picocolors_browser } from "../../_virtual/picocolors.browser.js";
4
2
  var hasRequiredPicocolors_browser;
5
3
  function requirePicocolors_browser() {
6
- if (hasRequiredPicocolors_browser) return picocolors_browser.__module.exports;
4
+ if (hasRequiredPicocolors_browser) return picocolors_browser.exports;
7
5
  hasRequiredPicocolors_browser = 1;
8
6
  var x = String;
9
7
  var create = function() {
10
8
  return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x, blackBright: x, redBright: x, greenBright: x, yellowBright: x, blueBright: x, magentaBright: x, cyanBright: x, whiteBright: x, bgBlackBright: x, bgRedBright: x, bgGreenBright: x, bgYellowBright: x, bgBlueBright: x, bgMagentaBright: x, bgCyanBright: x, bgWhiteBright: x };
11
9
  };
12
- picocolors_browser.__module.exports = create();
13
- picocolors_browser.__module.exports.createColors = create;
14
- return picocolors_browser.__module.exports;
10
+ picocolors_browser.exports = create();
11
+ picocolors_browser.exports.createColors = create;
12
+ return picocolors_browser.exports;
15
13
  }
16
- exports.__require = requirePicocolors_browser;
14
+ export {
15
+ requirePicocolors_browser as __require
16
+ };
17
17
  //# sourceMappingURL=picocolors.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"picocolors.browser.js","sources":["../../../../../node_modules/picocolors/picocolors.browser.js"],"sourcesContent":["var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n"],"names":["picocolors_browserModule"],"mappings":";;;;;;;AAAA,MAAI,IAAE;AACN,MAAI,SAAO,WAAW;AAAC,WAAO,EAAC,kBAAiB,OAAM,OAAM,GAAE,MAAK,GAAE,KAAI,GAAE,QAAO,GAAE,WAAU,GAAE,SAAQ,GAAE,QAAO,GAAE,eAAc,GAAE,OAAM,GAAE,KAAI,GAAE,OAAM,GAAE,QAAO,GAAE,MAAK,GAAE,SAAQ,GAAE,MAAK,GAAE,OAAM,GAAE,MAAK,GAAE,SAAQ,GAAE,OAAM,GAAE,SAAQ,GAAE,UAAS,GAAE,QAAO,GAAE,WAAU,GAAE,QAAO,GAAE,SAAQ,GAAE,aAAY,GAAE,WAAU,GAAE,aAAY,GAAE,cAAa,GAAE,YAAW,GAAE,eAAc,GAAE,YAAW,GAAE,aAAY,GAAE,eAAc,GAAE,aAAY,GAAE,eAAc,GAAE,gBAAe,GAAE,cAAa,GAAE,iBAAgB,GAAE,cAAa,GAAE,eAAc,EAAC;AAAA,EAAC;AACtgBA,qBAAAA,SAAA,UAAe,OAAM;AACrBA,8BAAA,QAAA,eAA8B;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"picocolors.browser.js","sources":["../../../../../node_modules/picocolors/picocolors.browser.js"],"sourcesContent":["var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x,blackBright:x,redBright:x,greenBright:x,yellowBright:x,blueBright:x,magentaBright:x,cyanBright:x,whiteBright:x,bgBlackBright:x,bgRedBright:x,bgGreenBright:x,bgYellowBright:x,bgBlueBright:x,bgMagentaBright:x,bgCyanBright:x,bgWhiteBright:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n"],"names":["picocolors_browserModule"],"mappings":";;;;;AAAA,MAAI,IAAE;AACN,MAAI,SAAO,WAAW;AAAC,WAAO,EAAC,kBAAiB,OAAM,OAAM,GAAE,MAAK,GAAE,KAAI,GAAE,QAAO,GAAE,WAAU,GAAE,SAAQ,GAAE,QAAO,GAAE,eAAc,GAAE,OAAM,GAAE,KAAI,GAAE,OAAM,GAAE,QAAO,GAAE,MAAK,GAAE,SAAQ,GAAE,MAAK,GAAE,OAAM,GAAE,MAAK,GAAE,SAAQ,GAAE,OAAM,GAAE,SAAQ,GAAE,UAAS,GAAE,QAAO,GAAE,WAAU,GAAE,QAAO,GAAE,SAAQ,GAAE,aAAY,GAAE,WAAU,GAAE,aAAY,GAAE,cAAa,GAAE,YAAW,GAAE,eAAc,GAAE,YAAW,GAAE,aAAY,GAAE,eAAc,GAAE,aAAY,GAAE,eAAc,GAAE,gBAAe,GAAE,cAAa,GAAE,iBAAgB,GAAE,cAAa,GAAE,eAAc,EAAC;AAAA,EAAC;AACtgBA,qBAAA,UAAe,OAAM;AACrBA,qBAAA,QAAA,eAA8B;;;","x_google_ignoreList":[0]}
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const container = require("./container.js");
1
+ import { __require as requireContainer } from "./container.js";
4
2
  var atRule;
5
3
  var hasRequiredAtRule;
6
4
  function requireAtRule() {
7
5
  if (hasRequiredAtRule) return atRule;
8
6
  hasRequiredAtRule = 1;
9
- let Container = container.__require();
7
+ let Container = requireContainer();
10
8
  class AtRule extends Container {
11
9
  constructor(defaults) {
12
10
  super(defaults);
@@ -26,5 +24,7 @@ function requireAtRule() {
26
24
  Container.registerAtRule(AtRule);
27
25
  return atRule;
28
26
  }
29
- exports.__require = requireAtRule;
27
+ export {
28
+ requireAtRule as __require
29
+ };
30
30
  //# sourceMappingURL=at-rule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"at-rule.js","sources":["../../../../../../node_modules/postcss/lib/at-rule.js"],"sourcesContent":["'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n"],"names":["require$$0"],"mappings":";;;;;;;;AAEA,MAAI,YAAYA,UAAAA,UAAA;AAAA,EAEhB,MAAM,eAAe,UAAU;AAAA,IAC7B,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IAChB;AAAA,IAEE,UAAU,UAAU;AAClB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,OAAO,GAAG,QAAQ;AAAA,IACnC;AAAA,IAEE,WAAW,UAAU;AACnB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,QAAQ,GAAG,QAAQ;AAAA,IACpC;AAAA,EACA;AAEA,WAAiB;AACjB,SAAO,UAAU;AAEjB,YAAU,eAAe,MAAM;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"at-rule.js","sources":["../../../../../../node_modules/postcss/lib/at-rule.js"],"sourcesContent":["'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n"],"names":["require$$0"],"mappings":";;;;;;AAEA,MAAI,YAAYA,iBAAA;AAAA,EAEhB,MAAM,eAAe,UAAU;AAAA,IAC7B,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IAChB;AAAA,IAEE,UAAU,UAAU;AAClB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,OAAO,GAAG,QAAQ;AAAA,IACnC;AAAA,IAEE,WAAW,UAAU;AACnB,UAAI,CAAC,KAAK,QAAQ,MAAO,MAAK,QAAQ,CAAA;AACtC,aAAO,MAAM,QAAQ,GAAG,QAAQ;AAAA,IACpC;AAAA,EACA;AAEA,WAAiB;AACjB,SAAO,UAAU;AAEjB,YAAU,eAAe,MAAM;;;","x_google_ignoreList":[0]}
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const node = require("./node.js");
1
+ import { __require as requireNode } from "./node.js";
4
2
  var comment;
5
3
  var hasRequiredComment;
6
4
  function requireComment() {
7
5
  if (hasRequiredComment) return comment;
8
6
  hasRequiredComment = 1;
9
- let Node = node.__require();
7
+ let Node = requireNode();
10
8
  class Comment extends Node {
11
9
  constructor(defaults) {
12
10
  super(defaults);
@@ -17,5 +15,7 @@ function requireComment() {
17
15
  Comment.default = Comment;
18
16
  return comment;
19
17
  }
20
- exports.__require = requireComment;
18
+ export {
19
+ requireComment as __require
20
+ };
21
21
  //# sourceMappingURL=comment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sources":["../../../../../../node_modules/postcss/lib/comment.js"],"sourcesContent":["'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n"],"names":["require$$0"],"mappings":";;;;;;;;AAEA,MAAI,OAAOA,KAAAA,UAAA;AAAA,EAEX,MAAM,gBAAgB,KAAK;AAAA,IACzB,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IAChB;AAAA,EACA;AAEA,YAAiB;AACjB,UAAQ,UAAU;;;;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"comment.js","sources":["../../../../../../node_modules/postcss/lib/comment.js"],"sourcesContent":["'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n"],"names":["require$$0"],"mappings":";;;;;;AAEA,MAAI,OAAOA,YAAA;AAAA,EAEX,MAAM,gBAAgB,KAAK;AAAA,IACzB,YAAY,UAAU;AACpB,YAAM,QAAQ;AACd,WAAK,OAAO;AAAA,IAChB;AAAA,EACA;AAEA,YAAiB;AACjB,UAAQ,UAAU;;;","x_google_ignoreList":[0]}
@@ -1,19 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const symbols = require("./symbols.js");
4
- const declaration = require("./declaration.js");
5
- const comment = require("./comment.js");
6
- const node = require("./node.js");
1
+ import { __require as requireComment } from "./comment.js";
2
+ import { __require as requireDeclaration } from "./declaration.js";
3
+ import { __require as requireNode } from "./node.js";
4
+ import { __require as requireSymbols } from "./symbols.js";
7
5
  var container;
8
6
  var hasRequiredContainer;
9
7
  function requireContainer() {
10
8
  if (hasRequiredContainer) return container;
11
9
  hasRequiredContainer = 1;
12
- let { isClean, my } = symbols.__require();
13
- let Declaration = declaration.__require();
14
- let Comment = comment.__require();
15
- let Node = node.__require();
16
- let parse, Rule, AtRule, Root;
10
+ let Comment = requireComment();
11
+ let Declaration = requireDeclaration();
12
+ let Node = requireNode();
13
+ let { isClean, my } = requireSymbols();
14
+ let AtRule, parse, Root, Rule;
17
15
  function cleanSource(nodes) {
18
16
  return nodes.map((i) => {
19
17
  if (i.nodes) i.nodes = cleanSource(i.nodes);
@@ -21,19 +19,27 @@ function requireContainer() {
21
19
  return i;
22
20
  });
23
21
  }
24
- function markDirtyUp(node2) {
25
- node2[isClean] = false;
26
- if (node2.proxyOf.nodes) {
27
- for (let i of node2.proxyOf.nodes) {
28
- markDirtyUp(i);
22
+ function markTreeDirty(node) {
23
+ node[isClean] = false;
24
+ if (node.proxyOf.nodes) {
25
+ for (let i of node.proxyOf.nodes) {
26
+ markTreeDirty(i);
29
27
  }
30
28
  }
31
29
  }
32
30
  class Container extends Node {
31
+ get first() {
32
+ if (!this.proxyOf.nodes) return void 0;
33
+ return this.proxyOf.nodes[0];
34
+ }
35
+ get last() {
36
+ if (!this.proxyOf.nodes) return void 0;
37
+ return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
38
+ }
33
39
  append(...children) {
34
40
  for (let child of children) {
35
41
  let nodes = this.normalize(child, this.last);
36
- for (let node2 of nodes) this.proxyOf.nodes.push(node2);
42
+ for (let node of nodes) this.proxyOf.nodes.push(node);
37
43
  }
38
44
  this.markDirty();
39
45
  return this;
@@ -41,7 +47,7 @@ function requireContainer() {
41
47
  cleanRaws(keepBetween) {
42
48
  super.cleanRaws(keepBetween);
43
49
  if (this.nodes) {
44
- for (let node2 of this.nodes) node2.cleanRaws(keepBetween);
50
+ for (let node of this.nodes) node.cleanRaws(keepBetween);
45
51
  }
46
52
  }
47
53
  each(callback) {
@@ -70,14 +76,14 @@ function requireContainer() {
70
76
  }
71
77
  getProxyProcessor() {
72
78
  return {
73
- get(node2, prop) {
79
+ get(node, prop) {
74
80
  if (prop === "proxyOf") {
75
- return node2;
76
- } else if (!node2[prop]) {
77
- return node2[prop];
81
+ return node;
82
+ } else if (!node[prop]) {
83
+ return node[prop];
78
84
  } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) {
79
85
  return (...args) => {
80
- return node2[prop](
86
+ return node[prop](
81
87
  ...args.map((i) => {
82
88
  if (typeof i === "function") {
83
89
  return (child, index) => i(child.toProxy(), index);
@@ -89,25 +95,25 @@ function requireContainer() {
89
95
  };
90
96
  } else if (prop === "every" || prop === "some") {
91
97
  return (cb) => {
92
- return node2[prop](
98
+ return node[prop](
93
99
  (child, ...other) => cb(child.toProxy(), ...other)
94
100
  );
95
101
  };
96
102
  } else if (prop === "root") {
97
- return () => node2.root().toProxy();
103
+ return () => node.root().toProxy();
98
104
  } else if (prop === "nodes") {
99
- return node2.nodes.map((i) => i.toProxy());
105
+ return node.nodes.map((i) => i.toProxy());
100
106
  } else if (prop === "first" || prop === "last") {
101
- return node2[prop].toProxy();
107
+ return node[prop].toProxy();
102
108
  } else {
103
- return node2[prop];
109
+ return node[prop];
104
110
  }
105
111
  },
106
- set(node2, prop, value) {
107
- if (node2[prop] === value) return true;
108
- node2[prop] = value;
112
+ set(node, prop, value) {
113
+ if (node[prop] === value) return true;
114
+ node[prop] = value;
109
115
  if (prop === "name" || prop === "params" || prop === "selector") {
110
- node2.markDirty();
116
+ node.markDirty();
111
117
  }
112
118
  return true;
113
119
  }
@@ -122,7 +128,7 @@ function requireContainer() {
122
128
  let existIndex = this.index(exist);
123
129
  let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse();
124
130
  existIndex = this.index(exist);
125
- for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node2);
131
+ for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node);
126
132
  let index;
127
133
  for (let id in this.indexes) {
128
134
  index = this.indexes[id];
@@ -136,9 +142,13 @@ function requireContainer() {
136
142
  insertBefore(exist, add) {
137
143
  let existIndex = this.index(exist);
138
144
  let type = existIndex === 0 ? "prepend" : false;
139
- let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse();
145
+ let nodes = this.normalize(
146
+ add,
147
+ this.proxyOf.nodes[existIndex],
148
+ type
149
+ ).reverse();
140
150
  existIndex = this.index(exist);
141
- for (let node2 of nodes) this.proxyOf.nodes.splice(existIndex, 0, node2);
151
+ for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node);
142
152
  let index;
143
153
  for (let id in this.indexes) {
144
154
  index = this.indexes[id];
@@ -152,6 +162,8 @@ function requireContainer() {
152
162
  normalize(nodes, sample) {
153
163
  if (typeof nodes === "string") {
154
164
  nodes = cleanSource(parse(nodes).nodes);
165
+ } else if (typeof nodes === "undefined") {
166
+ nodes = [];
155
167
  } else if (Array.isArray(nodes)) {
156
168
  nodes = nodes.slice(0);
157
169
  for (let i of nodes) {
@@ -171,7 +183,7 @@ function requireContainer() {
171
183
  nodes.value = String(nodes.value);
172
184
  }
173
185
  nodes = [new Declaration(nodes)];
174
- } else if (nodes.selector) {
186
+ } else if (nodes.selector || nodes.selectors) {
175
187
  nodes = [new Rule(nodes)];
176
188
  } else if (nodes.name) {
177
189
  nodes = [new AtRule(nodes)];
@@ -184,7 +196,8 @@ function requireContainer() {
184
196
  if (!i[my]) Container.rebuild(i);
185
197
  i = i.proxyOf;
186
198
  if (i.parent) i.parent.removeChild(i);
187
- if (i[isClean]) markDirtyUp(i);
199
+ if (i[isClean]) markTreeDirty(i);
200
+ if (!i.raws) i.raws = {};
188
201
  if (typeof i.raws.before === "undefined") {
189
202
  if (sample && typeof sample.raws.before !== "undefined") {
190
203
  i.raws.before = sample.raws.before.replace(/\S/g, "");
@@ -199,7 +212,7 @@ function requireContainer() {
199
212
  children = children.reverse();
200
213
  for (let child of children) {
201
214
  let nodes = this.normalize(child, this.first, "prepend").reverse();
202
- for (let node2 of nodes) this.proxyOf.nodes.unshift(node2);
215
+ for (let node of nodes) this.proxyOf.nodes.unshift(node);
203
216
  for (let id in this.indexes) {
204
217
  this.indexes[id] = this.indexes[id] + nodes.length;
205
218
  }
@@ -213,7 +226,7 @@ function requireContainer() {
213
226
  return this;
214
227
  }
215
228
  removeAll() {
216
- for (let node2 of this.proxyOf.nodes) node2.parent = void 0;
229
+ for (let node of this.proxyOf.nodes) node.parent = void 0;
217
230
  this.proxyOf.nodes = [];
218
231
  this.markDirty();
219
232
  return this;
@@ -335,14 +348,6 @@ function requireContainer() {
335
348
  }
336
349
  });
337
350
  }
338
- get first() {
339
- if (!this.proxyOf.nodes) return void 0;
340
- return this.proxyOf.nodes[0];
341
- }
342
- get last() {
343
- if (!this.proxyOf.nodes) return void 0;
344
- return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
345
- }
346
351
  }
347
352
  Container.registerParse = (dependant) => {
348
353
  parse = dependant;
@@ -358,26 +363,28 @@ function requireContainer() {
358
363
  };
359
364
  container = Container;
360
365
  Container.default = Container;
361
- Container.rebuild = (node2) => {
362
- if (node2.type === "atrule") {
363
- Object.setPrototypeOf(node2, AtRule.prototype);
364
- } else if (node2.type === "rule") {
365
- Object.setPrototypeOf(node2, Rule.prototype);
366
- } else if (node2.type === "decl") {
367
- Object.setPrototypeOf(node2, Declaration.prototype);
368
- } else if (node2.type === "comment") {
369
- Object.setPrototypeOf(node2, Comment.prototype);
370
- } else if (node2.type === "root") {
371
- Object.setPrototypeOf(node2, Root.prototype);
366
+ Container.rebuild = (node) => {
367
+ if (node.type === "atrule") {
368
+ Object.setPrototypeOf(node, AtRule.prototype);
369
+ } else if (node.type === "rule") {
370
+ Object.setPrototypeOf(node, Rule.prototype);
371
+ } else if (node.type === "decl") {
372
+ Object.setPrototypeOf(node, Declaration.prototype);
373
+ } else if (node.type === "comment") {
374
+ Object.setPrototypeOf(node, Comment.prototype);
375
+ } else if (node.type === "root") {
376
+ Object.setPrototypeOf(node, Root.prototype);
372
377
  }
373
- node2[my] = true;
374
- if (node2.nodes) {
375
- node2.nodes.forEach((child) => {
378
+ node[my] = true;
379
+ if (node.nodes) {
380
+ node.nodes.forEach((child) => {
376
381
  Container.rebuild(child);
377
382
  });
378
383
  }
379
384
  };
380
385
  return container;
381
386
  }
382
- exports.__require = requireContainer;
387
+ export {
388
+ requireContainer as __require
389
+ };
383
390
  //# sourceMappingURL=container.js.map