@universityofmaryland/web-model-library 1.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 (252) hide show
  1. package/README.md +138 -0
  2. package/dist/_types.d.ts +77 -0
  3. package/dist/_types.d.ts.map +1 -0
  4. package/dist/_virtual/___vite-browser-external.js +8 -0
  5. package/dist/_virtual/___vite-browser-external.js.map +1 -0
  6. package/dist/_virtual/___vite-browser-external.mjs +7 -0
  7. package/dist/_virtual/___vite-browser-external.mjs.map +1 -0
  8. package/dist/_virtual/__vite-browser-external.js +4 -0
  9. package/dist/_virtual/__vite-browser-external.js.map +1 -0
  10. package/dist/_virtual/__vite-browser-external.mjs +5 -0
  11. package/dist/_virtual/__vite-browser-external.mjs.map +1 -0
  12. package/dist/_virtual/_commonjsHelpers.js +37 -0
  13. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  14. package/dist/_virtual/_commonjsHelpers.mjs +37 -0
  15. package/dist/_virtual/_commonjsHelpers.mjs.map +1 -0
  16. package/dist/_virtual/index.js +7 -0
  17. package/dist/_virtual/index.js.map +1 -0
  18. package/dist/_virtual/index.mjs +8 -0
  19. package/dist/_virtual/index.mjs.map +1 -0
  20. package/dist/_virtual/picocolors.browser.js +5 -0
  21. package/dist/_virtual/picocolors.browser.js.map +1 -0
  22. package/dist/_virtual/picocolors.browser.mjs +5 -0
  23. package/dist/_virtual/picocolors.browser.mjs.map +1 -0
  24. package/dist/_virtual/postcss.js +7 -0
  25. package/dist/_virtual/postcss.js.map +1 -0
  26. package/dist/_virtual/postcss.mjs +8 -0
  27. package/dist/_virtual/postcss.mjs.map +1 -0
  28. package/dist/_virtual/symbols.js +5 -0
  29. package/dist/_virtual/symbols.js.map +1 -0
  30. package/dist/_virtual/symbols.mjs +5 -0
  31. package/dist/_virtual/symbols.mjs.map +1 -0
  32. package/dist/attributes/checks.d.ts +133 -0
  33. package/dist/attributes/checks.d.ts.map +1 -0
  34. package/dist/attributes/checks.js +757 -0
  35. package/dist/attributes/checks.js.map +1 -0
  36. package/dist/attributes/checks.mjs +740 -0
  37. package/dist/attributes/checks.mjs.map +1 -0
  38. package/dist/attributes/handler.d.ts +52 -0
  39. package/dist/attributes/handler.d.ts.map +1 -0
  40. package/dist/attributes/handler.js +205 -0
  41. package/dist/attributes/handler.js.map +1 -0
  42. package/dist/attributes/handler.mjs +206 -0
  43. package/dist/attributes/handler.mjs.map +1 -0
  44. package/dist/attributes/index.d.ts +7 -0
  45. package/dist/attributes/index.d.ts.map +1 -0
  46. package/dist/attributes/names.d.ts +132 -0
  47. package/dist/attributes/names.d.ts.map +1 -0
  48. package/dist/attributes/names.js +145 -0
  49. package/dist/attributes/names.js.map +1 -0
  50. package/dist/attributes/names.mjs +146 -0
  51. package/dist/attributes/names.mjs.map +1 -0
  52. package/dist/attributes/values.d.ts +70 -0
  53. package/dist/attributes/values.d.ts.map +1 -0
  54. package/dist/attributes/values.js +80 -0
  55. package/dist/attributes/values.js.map +1 -0
  56. package/dist/attributes/values.mjs +81 -0
  57. package/dist/attributes/values.mjs.map +1 -0
  58. package/dist/attributes.d.ts +2 -0
  59. package/dist/attributes.js +23 -0
  60. package/dist/attributes.js.map +1 -0
  61. package/dist/attributes.mjs +23 -0
  62. package/dist/attributes.mjs.map +1 -0
  63. package/dist/index.d.ts +10 -0
  64. package/dist/index.d.ts.map +1 -0
  65. package/dist/index.js +13 -0
  66. package/dist/index.js.map +1 -0
  67. package/dist/index.mjs +13 -0
  68. package/dist/index.mjs.map +1 -0
  69. package/dist/model/index.d.ts +43 -0
  70. package/dist/model/index.d.ts.map +1 -0
  71. package/dist/model.d.ts +2 -0
  72. package/dist/model.js +259 -0
  73. package/dist/model.js.map +1 -0
  74. package/dist/model.mjs +259 -0
  75. package/dist/model.mjs.map +1 -0
  76. package/dist/node_modules/nanoid/non-secure/index.js +31 -0
  77. package/dist/node_modules/nanoid/non-secure/index.js.map +1 -0
  78. package/dist/node_modules/nanoid/non-secure/index.mjs +31 -0
  79. package/dist/node_modules/nanoid/non-secure/index.mjs.map +1 -0
  80. package/dist/node_modules/picocolors/picocolors.browser.js +17 -0
  81. package/dist/node_modules/picocolors/picocolors.browser.js.map +1 -0
  82. package/dist/node_modules/picocolors/picocolors.browser.mjs +17 -0
  83. package/dist/node_modules/picocolors/picocolors.browser.mjs.map +1 -0
  84. package/dist/node_modules/postcss/lib/at-rule.js +30 -0
  85. package/dist/node_modules/postcss/lib/at-rule.js.map +1 -0
  86. package/dist/node_modules/postcss/lib/at-rule.mjs +30 -0
  87. package/dist/node_modules/postcss/lib/at-rule.mjs.map +1 -0
  88. package/dist/node_modules/postcss/lib/comment.js +21 -0
  89. package/dist/node_modules/postcss/lib/comment.js.map +1 -0
  90. package/dist/node_modules/postcss/lib/comment.mjs +21 -0
  91. package/dist/node_modules/postcss/lib/comment.mjs.map +1 -0
  92. package/dist/node_modules/postcss/lib/container.js +383 -0
  93. package/dist/node_modules/postcss/lib/container.js.map +1 -0
  94. package/dist/node_modules/postcss/lib/container.mjs +383 -0
  95. package/dist/node_modules/postcss/lib/container.mjs.map +1 -0
  96. package/dist/node_modules/postcss/lib/css-syntax-error.js +92 -0
  97. package/dist/node_modules/postcss/lib/css-syntax-error.js.map +1 -0
  98. package/dist/node_modules/postcss/lib/css-syntax-error.mjs +92 -0
  99. package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +1 -0
  100. package/dist/node_modules/postcss/lib/declaration.js +27 -0
  101. package/dist/node_modules/postcss/lib/declaration.js.map +1 -0
  102. package/dist/node_modules/postcss/lib/declaration.mjs +27 -0
  103. package/dist/node_modules/postcss/lib/declaration.mjs.map +1 -0
  104. package/dist/node_modules/postcss/lib/document.js +34 -0
  105. package/dist/node_modules/postcss/lib/document.js.map +1 -0
  106. package/dist/node_modules/postcss/lib/document.mjs +34 -0
  107. package/dist/node_modules/postcss/lib/document.mjs.map +1 -0
  108. package/dist/node_modules/postcss/lib/fromJSON.js +67 -0
  109. package/dist/node_modules/postcss/lib/fromJSON.js.map +1 -0
  110. package/dist/node_modules/postcss/lib/fromJSON.mjs +67 -0
  111. package/dist/node_modules/postcss/lib/fromJSON.mjs.map +1 -0
  112. package/dist/node_modules/postcss/lib/input.js +216 -0
  113. package/dist/node_modules/postcss/lib/input.js.map +1 -0
  114. package/dist/node_modules/postcss/lib/input.mjs +216 -0
  115. package/dist/node_modules/postcss/lib/input.mjs.map +1 -0
  116. package/dist/node_modules/postcss/lib/lazy-result.js +467 -0
  117. package/dist/node_modules/postcss/lib/lazy-result.js.map +1 -0
  118. package/dist/node_modules/postcss/lib/lazy-result.mjs +467 -0
  119. package/dist/node_modules/postcss/lib/lazy-result.mjs.map +1 -0
  120. package/dist/node_modules/postcss/lib/list.js +60 -0
  121. package/dist/node_modules/postcss/lib/list.js.map +1 -0
  122. package/dist/node_modules/postcss/lib/list.mjs +60 -0
  123. package/dist/node_modules/postcss/lib/list.mjs.map +1 -0
  124. package/dist/node_modules/postcss/lib/map-generator.js +314 -0
  125. package/dist/node_modules/postcss/lib/map-generator.js.map +1 -0
  126. package/dist/node_modules/postcss/lib/map-generator.mjs +314 -0
  127. package/dist/node_modules/postcss/lib/map-generator.mjs.map +1 -0
  128. package/dist/node_modules/postcss/lib/no-work-result.js +113 -0
  129. package/dist/node_modules/postcss/lib/no-work-result.js.map +1 -0
  130. package/dist/node_modules/postcss/lib/no-work-result.mjs +113 -0
  131. package/dist/node_modules/postcss/lib/no-work-result.mjs.map +1 -0
  132. package/dist/node_modules/postcss/lib/node.js +335 -0
  133. package/dist/node_modules/postcss/lib/node.js.map +1 -0
  134. package/dist/node_modules/postcss/lib/node.mjs +335 -0
  135. package/dist/node_modules/postcss/lib/node.mjs.map +1 -0
  136. package/dist/node_modules/postcss/lib/parse.js +30 -0
  137. package/dist/node_modules/postcss/lib/parse.js.map +1 -0
  138. package/dist/node_modules/postcss/lib/parse.mjs +30 -0
  139. package/dist/node_modules/postcss/lib/parse.mjs.map +1 -0
  140. package/dist/node_modules/postcss/lib/parser.js +543 -0
  141. package/dist/node_modules/postcss/lib/parser.js.map +1 -0
  142. package/dist/node_modules/postcss/lib/parser.mjs +543 -0
  143. package/dist/node_modules/postcss/lib/parser.mjs.map +1 -0
  144. package/dist/node_modules/postcss/lib/postcss.js +28 -0
  145. package/dist/node_modules/postcss/lib/postcss.js.map +1 -0
  146. package/dist/node_modules/postcss/lib/postcss.mjs +29 -0
  147. package/dist/node_modules/postcss/lib/postcss.mjs.map +1 -0
  148. package/dist/node_modules/postcss/lib/postcss2.js +110 -0
  149. package/dist/node_modules/postcss/lib/postcss2.js.map +1 -0
  150. package/dist/node_modules/postcss/lib/postcss2.mjs +110 -0
  151. package/dist/node_modules/postcss/lib/postcss2.mjs.map +1 -0
  152. package/dist/node_modules/postcss/lib/previous-map.js +123 -0
  153. package/dist/node_modules/postcss/lib/previous-map.js.map +1 -0
  154. package/dist/node_modules/postcss/lib/previous-map.mjs +123 -0
  155. package/dist/node_modules/postcss/lib/previous-map.mjs.map +1 -0
  156. package/dist/node_modules/postcss/lib/processor.js +61 -0
  157. package/dist/node_modules/postcss/lib/processor.js.map +1 -0
  158. package/dist/node_modules/postcss/lib/processor.mjs +61 -0
  159. package/dist/node_modules/postcss/lib/processor.mjs.map +1 -0
  160. package/dist/node_modules/postcss/lib/result.js +44 -0
  161. package/dist/node_modules/postcss/lib/result.js.map +1 -0
  162. package/dist/node_modules/postcss/lib/result.mjs +44 -0
  163. package/dist/node_modules/postcss/lib/result.mjs.map +1 -0
  164. package/dist/node_modules/postcss/lib/root.js +58 -0
  165. package/dist/node_modules/postcss/lib/root.js.map +1 -0
  166. package/dist/node_modules/postcss/lib/root.mjs +58 -0
  167. package/dist/node_modules/postcss/lib/root.mjs.map +1 -0
  168. package/dist/node_modules/postcss/lib/rule.js +33 -0
  169. package/dist/node_modules/postcss/lib/rule.js.map +1 -0
  170. package/dist/node_modules/postcss/lib/rule.mjs +33 -0
  171. package/dist/node_modules/postcss/lib/rule.mjs.map +1 -0
  172. package/dist/node_modules/postcss/lib/stringifier.js +308 -0
  173. package/dist/node_modules/postcss/lib/stringifier.js.map +1 -0
  174. package/dist/node_modules/postcss/lib/stringifier.mjs +308 -0
  175. package/dist/node_modules/postcss/lib/stringifier.mjs.map +1 -0
  176. package/dist/node_modules/postcss/lib/stringify.js +19 -0
  177. package/dist/node_modules/postcss/lib/stringify.js.map +1 -0
  178. package/dist/node_modules/postcss/lib/stringify.mjs +19 -0
  179. package/dist/node_modules/postcss/lib/stringify.mjs.map +1 -0
  180. package/dist/node_modules/postcss/lib/symbols.js +13 -0
  181. package/dist/node_modules/postcss/lib/symbols.js.map +1 -0
  182. package/dist/node_modules/postcss/lib/symbols.mjs +13 -0
  183. package/dist/node_modules/postcss/lib/symbols.mjs.map +1 -0
  184. package/dist/node_modules/postcss/lib/tokenize.js +219 -0
  185. package/dist/node_modules/postcss/lib/tokenize.js.map +1 -0
  186. package/dist/node_modules/postcss/lib/tokenize.mjs +219 -0
  187. package/dist/node_modules/postcss/lib/tokenize.mjs.map +1 -0
  188. package/dist/node_modules/postcss/lib/warning.js +40 -0
  189. package/dist/node_modules/postcss/lib/warning.js.map +1 -0
  190. package/dist/node_modules/postcss/lib/warning.mjs +40 -0
  191. package/dist/node_modules/postcss/lib/warning.mjs.map +1 -0
  192. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js +130 -0
  193. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js.map +1 -0
  194. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs +130 -0
  195. package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs.map +1 -0
  196. package/dist/slots/create.d.ts +15 -0
  197. package/dist/slots/create.d.ts.map +1 -0
  198. package/dist/slots/create.js +50 -0
  199. package/dist/slots/create.js.map +1 -0
  200. package/dist/slots/create.mjs +50 -0
  201. package/dist/slots/create.mjs.map +1 -0
  202. package/dist/slots/element.d.ts +3 -0
  203. package/dist/slots/element.d.ts.map +1 -0
  204. package/dist/slots/element.js +42 -0
  205. package/dist/slots/element.js.map +1 -0
  206. package/dist/slots/element.mjs +42 -0
  207. package/dist/slots/element.mjs.map +1 -0
  208. package/dist/slots/extract.d.ts +6 -0
  209. package/dist/slots/extract.d.ts.map +1 -0
  210. package/dist/slots/index.d.ts +140 -0
  211. package/dist/slots/index.d.ts.map +1 -0
  212. package/dist/slots/mapping.d.ts +82 -0
  213. package/dist/slots/mapping.d.ts.map +1 -0
  214. package/dist/slots/mapping.js +97 -0
  215. package/dist/slots/mapping.js.map +1 -0
  216. package/dist/slots/mapping.mjs +97 -0
  217. package/dist/slots/mapping.mjs.map +1 -0
  218. package/dist/slots/query.d.ts +9 -0
  219. package/dist/slots/query.d.ts.map +1 -0
  220. package/dist/slots/validate.d.ts +22 -0
  221. package/dist/slots/validate.d.ts.map +1 -0
  222. package/dist/slots.d.ts +6 -0
  223. package/dist/slots.js +73 -0
  224. package/dist/slots.js.map +1 -0
  225. package/dist/slots.mjs +74 -0
  226. package/dist/slots.mjs.map +1 -0
  227. package/dist/utilities/index.d.ts +4 -0
  228. package/dist/utilities/index.d.ts.map +1 -0
  229. package/dist/utilities/lifecycle.d.ts +12 -0
  230. package/dist/utilities/lifecycle.d.ts.map +1 -0
  231. package/dist/utilities/lifecycle.js +21 -0
  232. package/dist/utilities/lifecycle.js.map +1 -0
  233. package/dist/utilities/lifecycle.mjs +21 -0
  234. package/dist/utilities/lifecycle.mjs.map +1 -0
  235. package/dist/utilities/register.d.ts +17 -0
  236. package/dist/utilities/register.d.ts.map +1 -0
  237. package/dist/utilities/register.js +32 -0
  238. package/dist/utilities/register.js.map +1 -0
  239. package/dist/utilities/register.mjs +32 -0
  240. package/dist/utilities/register.mjs.map +1 -0
  241. package/dist/utilities/styles.d.ts +5 -0
  242. package/dist/utilities/styles.d.ts.map +1 -0
  243. package/dist/utilities/styles.js +79 -0
  244. package/dist/utilities/styles.js.map +1 -0
  245. package/dist/utilities/styles.mjs +80 -0
  246. package/dist/utilities/styles.mjs.map +1 -0
  247. package/dist/utilities.d.ts +2 -0
  248. package/dist/utilities.js +11 -0
  249. package/dist/utilities.js.map +1 -0
  250. package/dist/utilities.mjs +11 -0
  251. package/dist/utilities.mjs.map +1 -0
  252. package/package.json +69 -0
package/dist/model.mjs ADDED
@@ -0,0 +1,259 @@
1
+ import stylesTemplate from "./utilities/styles.mjs";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
6
+ var __typeError = (msg) => {
7
+ throw TypeError(msg);
8
+ };
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
12
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
13
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
14
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
15
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
16
+ var __runInitializers = (array, flags, self, value) => {
17
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) fns[i].call(self);
18
+ return value;
19
+ };
20
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
21
+ var it, done, ctx, k = flags & 7, p = false;
22
+ var j = 0;
23
+ var extraInitializers = array[j] || (array[j] = []);
24
+ var desc = k && (target = target.prototype, k < 5 && (k > 3 || !p) && __getOwnPropDesc(target, name));
25
+ __name(target, name);
26
+ for (var i = decorators.length - 1; i >= 0; i--) {
27
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
28
+ it = (0, decorators[i])(target, ctx), done._ = 1;
29
+ __expectFn(it) && (target = it);
30
+ }
31
+ return __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
32
+ };
33
+ const ComponentConfig = (config) => {
34
+ return function(constructor) {
35
+ constructor.componentConfig = config;
36
+ return constructor;
37
+ };
38
+ };
39
+ class BaseComponent extends HTMLElement {
40
+ constructor() {
41
+ super();
42
+ this.elementRef = null;
43
+ const constructor = this.constructor;
44
+ this.config = constructor.componentConfig;
45
+ if (!this.config) {
46
+ throw new Error(
47
+ "Component config not found. Did you forget to use the @Component decorator?"
48
+ );
49
+ }
50
+ this.shadow = this.attachShadow({ mode: "open" });
51
+ this.validateConfig();
52
+ }
53
+ static get observedAttributes() {
54
+ return this.componentConfig?.attributes?.map((attr) => attr.name) || [];
55
+ }
56
+ connectedCallback() {
57
+ try {
58
+ this.initializeComponent();
59
+ } catch (error) {
60
+ this.handleError("Failed to initialize component", error);
61
+ }
62
+ }
63
+ disconnectedCallback() {
64
+ this.cleanup();
65
+ }
66
+ attributeChangedCallback(name, oldValue, newValue) {
67
+ if (oldValue === newValue) return;
68
+ try {
69
+ this.handleAttributeChange(name, oldValue, newValue);
70
+ } catch (error) {
71
+ this.handleError(`Failed to handle attribute change: ${name}`, error);
72
+ }
73
+ }
74
+ initializeComponent() {
75
+ try {
76
+ this.validateSlots();
77
+ const componentRef = this.config.createComponent(this);
78
+ if (!componentRef || !componentRef.element) {
79
+ throw new Error(
80
+ "Component creation failed: Invalid component reference"
81
+ );
82
+ }
83
+ this.elementRef = componentRef;
84
+ this.setupShadowDom(componentRef);
85
+ this.afterInit();
86
+ } catch (error) {
87
+ this.handleError("Failed to initialize component", error);
88
+ }
89
+ }
90
+ setupShadowDom(component) {
91
+ this.shadow.appendChild(
92
+ stylesTemplate({ styles: component.styles || "" }).content.cloneNode(true)
93
+ );
94
+ this.shadow.appendChild(component.element);
95
+ }
96
+ validateConfig() {
97
+ const requiredFields = [
98
+ "tagName",
99
+ "createComponent"
100
+ ];
101
+ requiredFields.forEach((field) => {
102
+ if (!this.config[field]) {
103
+ throw new Error(`Missing required config field: ${field}`);
104
+ }
105
+ });
106
+ if (this.config.attributes) {
107
+ this.config.attributes.forEach((attr) => {
108
+ if (!attr.name || !attr.handler) {
109
+ throw new Error(
110
+ "Invalid attribute config: requires name and handler"
111
+ );
112
+ }
113
+ });
114
+ }
115
+ }
116
+ async afterInit() {
117
+ if (!this.elementRef) {
118
+ this.handleError("Cannot initialize - missing element reference", null);
119
+ return;
120
+ }
121
+ await this.executeLifecycleCallbacks();
122
+ this.dispatchComponentEvent("umdComponent:ready", {
123
+ shadowRoot: this.shadow,
124
+ ref: this.elementRef
125
+ });
126
+ }
127
+ handleAttributeChange(name, oldValue, newValue) {
128
+ if (!this.elementRef) return;
129
+ const handler = this.config.attributes?.find(
130
+ (attr) => attr.name === name
131
+ )?.handler;
132
+ if (handler) {
133
+ handler(this.elementRef, oldValue, newValue);
134
+ }
135
+ }
136
+ cleanup() {
137
+ this.elementRef = null;
138
+ }
139
+ /**
140
+ * Helper method to dispatch component events with consistent structure
141
+ */
142
+ dispatchComponentEvent(eventName, detail) {
143
+ const fullDetail = {
144
+ ...detail,
145
+ tagName: this.config.tagName,
146
+ element: this,
147
+ timestamp: Date.now()
148
+ };
149
+ this.dispatchEvent(
150
+ new CustomEvent(eventName, {
151
+ detail: fullDetail,
152
+ bubbles: true,
153
+ composed: true
154
+ })
155
+ );
156
+ }
157
+ handleError(message, error) {
158
+ console.error(`[${this.config.tagName}]`, message, error);
159
+ const errorType = this.elementRef ? "runtime" : message.toLowerCase().includes("validation") ? "validation" : "initialization";
160
+ this.dispatchComponentEvent("umdComponent:error", {
161
+ type: errorType,
162
+ message,
163
+ details: error
164
+ });
165
+ }
166
+ validateSlots() {
167
+ if (!this.config.slots) return;
168
+ const errors = [];
169
+ Object.entries(this.config.slots).forEach(([name, config]) => {
170
+ const type = name.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`).replace(/^-/, "");
171
+ if (config.required) {
172
+ const slotElement = this.querySelector(`[slot="${type}"]`);
173
+ if (!slotElement) {
174
+ errors.push({
175
+ slot: name,
176
+ error: "missing",
177
+ message: `Required slot "${type}" is missing`
178
+ });
179
+ }
180
+ }
181
+ if (config.deprecated) {
182
+ const slotElement = this.querySelector(`[slot="${type}"]`);
183
+ if (slotElement) {
184
+ errors.push({
185
+ slot: name,
186
+ error: "deprecated",
187
+ message: `Slot "${type}" is deprecated. ${config.deprecated}`
188
+ });
189
+ }
190
+ }
191
+ if (config.allowedElements) {
192
+ const slotElements = Array.from(
193
+ this.querySelectorAll(`[slot="${type}"]`)
194
+ );
195
+ const invalidElements = slotElements.filter(
196
+ (element) => !config.allowedElements.includes(element.tagName.toLowerCase())
197
+ );
198
+ if (invalidElements.length > 0) {
199
+ errors.push({
200
+ slot: name,
201
+ error: "invalid-elements",
202
+ message: `Slot "${type}" contains invalid elements. Allowed: ${config.allowedElements.join(
203
+ ", "
204
+ )}`,
205
+ invalidElements
206
+ });
207
+ }
208
+ }
209
+ });
210
+ if (errors.length > 0) {
211
+ this.handleError("Slot validation failed", errors);
212
+ errors.forEach((error) => {
213
+ console.warn(`[${this.config.tagName}]`, error.message, error);
214
+ });
215
+ }
216
+ }
217
+ async executeLifecycleCallbacks() {
218
+ const lifecycleMethods = [
219
+ "beforeConnect",
220
+ "afterConnect",
221
+ "onReady"
222
+ ];
223
+ for (const method of lifecycleMethods) {
224
+ await this.executeCallback(method);
225
+ }
226
+ }
227
+ async executeCallback(name) {
228
+ const callback = this.config[name];
229
+ if (!callback) {
230
+ return;
231
+ }
232
+ try {
233
+ await Promise.resolve(callback(this.elementRef, this.shadow));
234
+ } catch (error) {
235
+ this.handleError(`Failed to execute ${name} callback`, error);
236
+ }
237
+ }
238
+ getRef() {
239
+ return this.elementRef;
240
+ }
241
+ }
242
+ const createCustomElement = (config) => {
243
+ var _Component_decorators, _init, _a;
244
+ _Component_decorators = [ComponentConfig(config)];
245
+ class Component extends (_a = BaseComponent) {
246
+ constructor() {
247
+ super();
248
+ }
249
+ }
250
+ _init = __decoratorStart(_a);
251
+ Component = __decorateElement(_init, 0, "Component", _Component_decorators, Component);
252
+ __runInitializers(_init, 1, Component);
253
+ return Component;
254
+ };
255
+ export {
256
+ BaseComponent,
257
+ createCustomElement
258
+ };
259
+ //# sourceMappingURL=model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.mjs","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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEA,MAAM,kBAAkB,CAAC,WAA4B;AACnD,SAAO,SAA0C,aAAgB;AAC/D,gBAAY,kBAAkB;AAC9B,WAAO;AAAA,EACT;AACF;AAUA,MAAM,sBAAsB,YAAY;AAAA,EAOtC,cAAc;AACZ,UAAA;AAJF,SAAU,aAAgC;AAMxC,UAAM,cAAc,KAAK;AACzB,SAAK,SAAS,YAAY;AAE1B,QAAI,CAAC,KAAK,QAAQ;AAChB,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAEA,SAAK,SAAS,KAAK,aAAa,EAAE,MAAM,QAAQ;AAChD,SAAK,eAAA;AAAA,EACP;AAAA,EAEA,WAAW,qBAA+B;AACxC,WAAO,KAAK,iBAAiB,YAAY,IAAI,CAAC,SAAS,KAAK,IAAI,KAAK,CAAA;AAAA,EACvE;AAAA,EAEA,oBAA0B;AACxB,QAAI;AACF,WAAK,oBAAA;AAAA,IACP,SAAS,OAAO;AACd,WAAK,YAAY,kCAAkC,KAAK;AAAA,IAC1D;AAAA,EACF;AAAA,EAEA,uBAA6B;AAC3B,SAAK,QAAA;AAAA,EACP;AAAA,EAEA,yBACE,MACA,UACA,UACM;AACN,QAAI,aAAa,SAAU;AAE3B,QAAI;AACF,WAAK,sBAAsB,MAAM,UAAU,QAAQ;AAAA,IACrD,SAAS,OAAO;AACd,WAAK,YAAY,sCAAsC,IAAI,IAAI,KAAK;AAAA,IACtE;AAAA,EACF;AAAA,EAEU,sBAA4B;AACpC,QAAI;AACF,WAAK,cAAA;AAEL,YAAM,eAAe,KAAK,OAAO,gBAAgB,IAAI;AAErD,UAAI,CAAC,gBAAgB,CAAC,aAAa,SAAS;AAC1C,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AAEA,WAAK,aAAa;AAClB,WAAK,eAAe,YAAY;AAChC,WAAK,UAAA;AAAA,IACP,SAAS,OAAO;AACd,WAAK,YAAY,kCAAkC,KAAK;AAAA,IAC1D;AAAA,EACF;AAAA,EAEU,eAAe,WAA6B;AACpD,SAAK,OAAO;AAAA,MACVA,eAAe,EAAE,QAAQ,UAAU,UAAU,IAAI,EAAE,QAAQ,UAAU,IAAI;AAAA,IAAA;AAE3E,SAAK,OAAO,YAAY,UAAU,OAAO;AAAA,EAC3C;AAAA,EAEU,iBAAuB;AAC/B,UAAM,iBAA4C;AAAA,MAChD;AAAA,MACA;AAAA,IAAA;AAGF,mBAAe,QAAQ,CAAC,UAAU;AAChC,UAAI,CAAC,KAAK,OAAO,KAAK,GAAG;AACvB,cAAM,IAAI,MAAM,kCAAkC,KAAK,EAAE;AAAA,MAC3D;AAAA,IACF,CAAC;AAED,QAAI,KAAK,OAAO,YAAY;AAC1B,WAAK,OAAO,WAAW,QAAQ,CAAC,SAAS;AACvC,YAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,SAAS;AAC/B,gBAAM,IAAI;AAAA,YACR;AAAA,UAAA;AAAA,QAEJ;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAgB,YAA2B;AACzC,QAAI,CAAC,KAAK,YAAY;AACpB,WAAK,YAAY,iDAAiD,IAAI;AACtE;AAAA,IACF;AAEA,UAAM,KAAK,0BAAA;AAGX,SAAK,uBAA6C,sBAAsB;AAAA,MACtE,YAAY,KAAK;AAAA,MACjB,KAAK,KAAK;AAAA,IAAA,CACX;AAAA,EACH;AAAA,EAEU,sBACR,MACA,UACA,UACM;AACN,QAAI,CAAC,KAAK,WAAY;AAEtB,UAAM,UAAU,KAAK,OAAO,YAAY;AAAA,MACtC,CAAC,SAAS,KAAK,SAAS;AAAA,IAAA,GACvB;AAEH,QAAI,SAAS;AACX,cAAQ,KAAK,YAAY,UAAU,QAAQ;AAAA,IAC7C;AAAA,EACF;AAAA,EAEU,UAAgB;AACxB,SAAK,aAAa;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKU,uBACR,WACA,QACM;AACN,UAAM,aAAa;AAAA,MACjB,GAAG;AAAA,MACH,SAAS,KAAK,OAAO;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,KAAK,IAAA;AAAA,IAAI;AAGtB,SAAK;AAAA,MACH,IAAI,YAAe,WAAW;AAAA,QAC5B,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,UAAU;AAAA,MAAA,CACX;AAAA,IAAA;AAAA,EAEL;AAAA,EAEU,YAAY,SAAiB,OAAsB;AAC3D,YAAQ,MAAM,IAAI,KAAK,OAAO,OAAO,KAAK,SAAS,KAAK;AAGxD,UAAM,YAAY,KAAK,aACnB,YACA,QAAQ,cAAc,SAAS,YAAY,IAC3C,eACA;AAEJ,SAAK,uBAA6C,sBAAsB;AAAA,MACtE,MAAM;AAAA,MACN;AAAA,MACA,SAAS;AAAA,IAAA,CACV;AAAA,EACH;AAAA,EAEQ,gBAAsB;AAC5B,QAAI,CAAC,KAAK,OAAO,MAAO;AAExB,UAAM,SAAgC,CAAA;AAEtC,WAAO,QAAQ,KAAK,OAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,MAAM,MAAM;AAC5D,YAAM,OAAO,KACV,QAAQ,UAAU,CAAC,WAAW,IAAI,OAAO,YAAA,CAAa,EAAE,EACxD,QAAQ,MAAM,EAAE;AAEnB,UAAI,OAAO,UAAU;AACnB,cAAM,cAAc,KAAK,cAAc,UAAU,IAAI,IAAI;AACzD,YAAI,CAAC,aAAa;AAChB,iBAAO,KAAK;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,SAAS,kBAAkB,IAAI;AAAA,UAAA,CAChC;AAAA,QACH;AAAA,MACF;AAEA,UAAI,OAAO,YAAY;AACrB,cAAM,cAAc,KAAK,cAAc,UAAU,IAAI,IAAI;AACzD,YAAI,aAAa;AACf,iBAAO,KAAK;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,SAAS,SAAS,IAAI,oBAAoB,OAAO,UAAU;AAAA,UAAA,CAC5D;AAAA,QACH;AAAA,MACF;AAEA,UAAI,OAAO,iBAAiB;AAC1B,cAAM,eAAe,MAAM;AAAA,UACzB,KAAK,iBAAiB,UAAU,IAAI,IAAI;AAAA,QAAA;AAE1C,cAAM,kBAAkB,aAAa;AAAA,UACnC,CAAC,YACC,CAAC,OAAO,gBAAiB,SAAS,QAAQ,QAAQ,YAAA,CAAa;AAAA,QAAA;AAGnE,YAAI,gBAAgB,SAAS,GAAG;AAC9B,iBAAO,KAAK;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,YACP,SAAS,SAAS,IAAI,yCAAyC,OAAO,gBAAgB;AAAA,cACpF;AAAA,YAAA,CACD;AAAA,YACD;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MACF;AAAA,IACF,CAAC;AAED,QAAI,OAAO,SAAS,GAAG;AACrB,WAAK,YAAY,0BAA0B,MAAM;AAEjD,aAAO,QAAQ,CAAC,UAAU;AACxB,gBAAQ,KAAK,IAAI,KAAK,OAAO,OAAO,KAAK,MAAM,SAAS,KAAK;AAAA,MAC/D,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAc,4BAA2C;AACvD,UAAM,mBAAmB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGF,eAAW,UAAU,kBAAkB;AACrC,YAAM,KAAK,gBAAgB,MAAM;AAAA,IACnC;AAAA,EACF;AAAA,EAEA,MAAc,gBAAgB,MAA+C;AAC3E,UAAM,WAAW,KAAK,OAAO,IAAI;AAEjC,QAAI,CAAC,UAAU;AACb;AAAA,IACF;AAEA,QAAI;AACF,YAAM,QAAQ,QAAQ,SAAS,KAAK,YAAa,KAAK,MAAM,CAAC;AAAA,IAC/D,SAAS,OAAO;AACd,WAAK,YAAY,qBAAqB,IAAI,aAAa,KAAK;AAAA,IAC9D;AAAA,EACF;AAAA,EAEO,SAA4B;AACjC,WAAO,KAAK;AAAA,EACd;AACF;AAuBA,MAAM,sBAAsB,CAAC,WAAkD;AA5X/E,MAAA,uBAAA,OAAA;AA6XE,0BAAA,CAAC,gBAAgB,MAAM,CAAA;AAAA,EACvB,MAAM,mBAAkB,KAAA,eAAc;AAAA,IACpC,cAAc;AACZ,YAAA;AAAA,IACF;AAAA,EAAA;AAHF,UAAA,iBAAA,EAAA;AAAM,cAAN,yCADA,uBACM,SAAA;AAAN,oBAAA,OAAA,GAAM,SAAA;AAMN,SAAO;AACT;"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var nonSecure;
4
+ var hasRequiredNonSecure;
5
+ function requireNonSecure() {
6
+ if (hasRequiredNonSecure) return nonSecure;
7
+ hasRequiredNonSecure = 1;
8
+ let urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
9
+ let customAlphabet = (alphabet, defaultSize = 21) => {
10
+ return (size = defaultSize) => {
11
+ let id = "";
12
+ let i = size | 0;
13
+ while (i--) {
14
+ id += alphabet[Math.random() * alphabet.length | 0];
15
+ }
16
+ return id;
17
+ };
18
+ };
19
+ let nanoid = (size = 21) => {
20
+ let id = "";
21
+ let i = size | 0;
22
+ while (i--) {
23
+ id += urlAlphabet[Math.random() * 64 | 0];
24
+ }
25
+ return id;
26
+ };
27
+ nonSecure = { nanoid, customAlphabet };
28
+ return nonSecure;
29
+ }
30
+ exports.__require = requireNonSecure;
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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]}
@@ -0,0 +1,31 @@
1
+ var nonSecure;
2
+ var hasRequiredNonSecure;
3
+ function requireNonSecure() {
4
+ if (hasRequiredNonSecure) return nonSecure;
5
+ hasRequiredNonSecure = 1;
6
+ let urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
7
+ let customAlphabet = (alphabet, defaultSize = 21) => {
8
+ return (size = defaultSize) => {
9
+ let id = "";
10
+ let i = size | 0;
11
+ while (i--) {
12
+ id += alphabet[Math.random() * alphabet.length | 0];
13
+ }
14
+ return id;
15
+ };
16
+ };
17
+ let nanoid = (size = 21) => {
18
+ let id = "";
19
+ let i = size | 0;
20
+ while (i--) {
21
+ id += urlAlphabet[Math.random() * 64 | 0];
22
+ }
23
+ return id;
24
+ };
25
+ nonSecure = { nanoid, customAlphabet };
26
+ return nonSecure;
27
+ }
28
+ export {
29
+ requireNonSecure as __require
30
+ };
31
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","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]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const picocolors_browser = require("../../_virtual/picocolors.browser.js");
4
+ var hasRequiredPicocolors_browser;
5
+ function requirePicocolors_browser() {
6
+ if (hasRequiredPicocolors_browser) return picocolors_browser.__module.exports;
7
+ hasRequiredPicocolors_browser = 1;
8
+ var x = String;
9
+ var create = function() {
10
+ 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
+ };
12
+ picocolors_browser.__module.exports = create();
13
+ picocolors_browser.__module.exports.createColors = create;
14
+ return picocolors_browser.__module.exports;
15
+ }
16
+ exports.__require = requirePicocolors_browser;
17
+ //# sourceMappingURL=picocolors.browser.js.map
@@ -0,0 +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]}
@@ -0,0 +1,17 @@
1
+ import { __module as picocolors_browser } from "../../_virtual/picocolors.browser.mjs";
2
+ var hasRequiredPicocolors_browser;
3
+ function requirePicocolors_browser() {
4
+ if (hasRequiredPicocolors_browser) return picocolors_browser.exports;
5
+ hasRequiredPicocolors_browser = 1;
6
+ var x = String;
7
+ var create = function() {
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 };
9
+ };
10
+ picocolors_browser.exports = create();
11
+ picocolors_browser.exports.createColors = create;
12
+ return picocolors_browser.exports;
13
+ }
14
+ export {
15
+ requirePicocolors_browser as __require
16
+ };
17
+ //# sourceMappingURL=picocolors.browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"picocolors.browser.mjs","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]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const container = require("./container.js");
4
+ var atRule;
5
+ var hasRequiredAtRule;
6
+ function requireAtRule() {
7
+ if (hasRequiredAtRule) return atRule;
8
+ hasRequiredAtRule = 1;
9
+ let Container = container.__require();
10
+ class AtRule extends Container {
11
+ constructor(defaults) {
12
+ super(defaults);
13
+ this.type = "atrule";
14
+ }
15
+ append(...children) {
16
+ if (!this.proxyOf.nodes) this.nodes = [];
17
+ return super.append(...children);
18
+ }
19
+ prepend(...children) {
20
+ if (!this.proxyOf.nodes) this.nodes = [];
21
+ return super.prepend(...children);
22
+ }
23
+ }
24
+ atRule = AtRule;
25
+ AtRule.default = AtRule;
26
+ Container.registerAtRule(AtRule);
27
+ return atRule;
28
+ }
29
+ exports.__require = requireAtRule;
30
+ //# sourceMappingURL=at-rule.js.map
@@ -0,0 +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]}
@@ -0,0 +1,30 @@
1
+ import { __require as requireContainer } from "./container.mjs";
2
+ var atRule;
3
+ var hasRequiredAtRule;
4
+ function requireAtRule() {
5
+ if (hasRequiredAtRule) return atRule;
6
+ hasRequiredAtRule = 1;
7
+ let Container = requireContainer();
8
+ class AtRule extends Container {
9
+ constructor(defaults) {
10
+ super(defaults);
11
+ this.type = "atrule";
12
+ }
13
+ append(...children) {
14
+ if (!this.proxyOf.nodes) this.nodes = [];
15
+ return super.append(...children);
16
+ }
17
+ prepend(...children) {
18
+ if (!this.proxyOf.nodes) this.nodes = [];
19
+ return super.prepend(...children);
20
+ }
21
+ }
22
+ atRule = AtRule;
23
+ AtRule.default = AtRule;
24
+ Container.registerAtRule(AtRule);
25
+ return atRule;
26
+ }
27
+ export {
28
+ requireAtRule as __require
29
+ };
30
+ //# sourceMappingURL=at-rule.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"at-rule.mjs","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]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const node = require("./node.js");
4
+ var comment;
5
+ var hasRequiredComment;
6
+ function requireComment() {
7
+ if (hasRequiredComment) return comment;
8
+ hasRequiredComment = 1;
9
+ let Node = node.__require();
10
+ class Comment extends Node {
11
+ constructor(defaults) {
12
+ super(defaults);
13
+ this.type = "comment";
14
+ }
15
+ }
16
+ comment = Comment;
17
+ Comment.default = Comment;
18
+ return comment;
19
+ }
20
+ exports.__require = requireComment;
21
+ //# sourceMappingURL=comment.js.map
@@ -0,0 +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]}
@@ -0,0 +1,21 @@
1
+ import { __require as requireNode } from "./node.mjs";
2
+ var comment;
3
+ var hasRequiredComment;
4
+ function requireComment() {
5
+ if (hasRequiredComment) return comment;
6
+ hasRequiredComment = 1;
7
+ let Node = requireNode();
8
+ class Comment extends Node {
9
+ constructor(defaults) {
10
+ super(defaults);
11
+ this.type = "comment";
12
+ }
13
+ }
14
+ comment = Comment;
15
+ Comment.default = Comment;
16
+ return comment;
17
+ }
18
+ export {
19
+ requireComment as __require
20
+ };
21
+ //# sourceMappingURL=comment.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comment.mjs","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]}