@universityofmaryland/web-model-library 1.0.0 → 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.
- package/README.md +1 -1
- package/dist/_virtual/___vite-browser-external.js +6 -7
- package/dist/_virtual/___vite-browser-external.js.map +1 -1
- package/dist/_virtual/__vite-browser-external.js +3 -2
- package/dist/_virtual/__vite-browser-external.js.map +1 -1
- package/dist/_virtual/_commonjsHelpers.js +4 -4
- package/dist/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/_virtual/index.js +7 -6
- package/dist/_virtual/index.js.map +1 -1
- package/dist/_virtual/picocolors.browser.js +3 -3
- package/dist/_virtual/picocolors.browser.js.map +1 -1
- package/dist/_virtual/postcss.js +7 -6
- package/dist/_virtual/postcss.js.map +1 -1
- package/dist/_virtual/symbols.js +3 -3
- package/dist/_virtual/symbols.js.map +1 -1
- package/dist/attributes/checks.d.ts +5 -6
- package/dist/attributes/checks.d.ts.map +1 -1
- package/dist/attributes/checks.js +338 -340
- package/dist/attributes/checks.js.map +1 -1
- package/dist/attributes/handler.d.ts +1 -2
- package/dist/attributes/handler.d.ts.map +1 -1
- package/dist/attributes/handler.js +20 -19
- package/dist/attributes/handler.js.map +1 -1
- package/dist/attributes/index.d.ts +4 -4
- package/dist/attributes/index.d.ts.map +1 -1
- package/dist/attributes/names.d.ts +4 -6
- package/dist/attributes/names.d.ts.map +1 -1
- package/dist/attributes/names.js +7 -8
- package/dist/attributes/names.js.map +1 -1
- package/dist/attributes/values.d.ts +13 -11
- package/dist/attributes/values.d.ts.map +1 -1
- package/dist/attributes/values.js +7 -3
- package/dist/attributes/values.js.map +1 -1
- package/dist/attributes.js +21 -22
- package/dist/attributes.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/model.js +7 -7
- package/dist/model.js.map +1 -1
- package/dist/node_modules/nanoid/non-secure/index.js +3 -3
- package/dist/node_modules/nanoid/non-secure/index.js.map +1 -1
- package/dist/node_modules/picocolors/picocolors.browser.js +8 -8
- package/dist/node_modules/picocolors/picocolors.browser.js.map +1 -1
- package/dist/node_modules/postcss/lib/at-rule.js +5 -5
- package/dist/node_modules/postcss/lib/at-rule.js.map +1 -1
- package/dist/node_modules/postcss/lib/comment.js +5 -5
- package/dist/node_modules/postcss/lib/comment.js.map +1 -1
- package/dist/node_modules/postcss/lib/container.js +69 -62
- package/dist/node_modules/postcss/lib/container.js.map +1 -1
- package/dist/node_modules/postcss/lib/css-syntax-error.js +30 -19
- package/dist/node_modules/postcss/lib/css-syntax-error.js.map +1 -1
- package/dist/node_modules/postcss/lib/declaration.js +8 -8
- package/dist/node_modules/postcss/lib/declaration.js.map +1 -1
- package/dist/node_modules/postcss/lib/document.js +5 -5
- package/dist/node_modules/postcss/lib/document.js.map +1 -1
- package/dist/node_modules/postcss/lib/fromJSON.js +19 -19
- package/dist/node_modules/postcss/lib/fromJSON.js.map +1 -1
- package/dist/node_modules/postcss/lib/input.js +51 -37
- package/dist/node_modules/postcss/lib/input.js.map +1 -1
- package/dist/node_modules/postcss/lib/lazy-result.js +67 -67
- package/dist/node_modules/postcss/lib/lazy-result.js.map +1 -1
- package/dist/node_modules/postcss/lib/list.js +3 -3
- package/dist/node_modules/postcss/lib/list.js.map +1 -1
- package/dist/node_modules/postcss/lib/map-generator.js +27 -18
- package/dist/node_modules/postcss/lib/map-generator.js.map +1 -1
- package/dist/node_modules/postcss/lib/no-work-result.js +54 -51
- package/dist/node_modules/postcss/lib/no-work-result.js.map +1 -1
- package/dist/node_modules/postcss/lib/node.js +91 -38
- package/dist/node_modules/postcss/lib/node.js.map +1 -1
- package/dist/node_modules/postcss/lib/parse.js +13 -13
- package/dist/node_modules/postcss/lib/parse.js.map +1 -1
- package/dist/node_modules/postcss/lib/parser.js +21 -20
- package/dist/node_modules/postcss/lib/parser.js.map +1 -1
- package/dist/node_modules/postcss/lib/postcss.js +4 -3
- package/dist/node_modules/postcss/lib/postcss.js.map +1 -1
- package/dist/node_modules/postcss/lib/postcss2.js +43 -43
- package/dist/node_modules/postcss/lib/postcss2.js.map +1 -1
- package/dist/node_modules/postcss/lib/previous-map.js +14 -12
- package/dist/node_modules/postcss/lib/previous-map.js.map +1 -1
- package/dist/node_modules/postcss/lib/processor.js +13 -13
- package/dist/node_modules/postcss/lib/processor.js.map +1 -1
- package/dist/node_modules/postcss/lib/result.js +12 -12
- package/dist/node_modules/postcss/lib/result.js.map +1 -1
- package/dist/node_modules/postcss/lib/root.js +5 -5
- package/dist/node_modules/postcss/lib/root.js.map +1 -1
- package/dist/node_modules/postcss/lib/rule.js +13 -13
- package/dist/node_modules/postcss/lib/rule.js.map +1 -1
- package/dist/node_modules/postcss/lib/stringifier.js +3 -3
- package/dist/node_modules/postcss/lib/stringifier.js.map +1 -1
- package/dist/node_modules/postcss/lib/stringify.js +5 -5
- package/dist/node_modules/postcss/lib/stringify.js.map +1 -1
- package/dist/node_modules/postcss/lib/symbols.js +8 -8
- package/dist/node_modules/postcss/lib/symbols.js.map +1 -1
- package/dist/node_modules/postcss/lib/tokenize.js +5 -5
- package/dist/node_modules/postcss/lib/tokenize.js.map +1 -1
- package/dist/node_modules/postcss/lib/warning.js +3 -3
- package/dist/node_modules/postcss/lib/warning.js.map +1 -1
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js +3 -3
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.js.map +1 -1
- package/dist/slots/create.js +3 -3
- package/dist/slots/create.js.map +1 -1
- package/dist/slots/element.js +3 -3
- package/dist/slots/element.js.map +1 -1
- package/dist/slots/index.d.ts +23 -16
- package/dist/slots/index.d.ts.map +1 -1
- package/dist/slots/mapping.d.ts +4 -0
- package/dist/slots/mapping.d.ts.map +1 -1
- package/dist/slots/mapping.js +8 -4
- package/dist/slots/mapping.js.map +1 -1
- package/dist/slots.d.ts +0 -4
- package/dist/slots.js +41 -36
- package/dist/slots.js.map +1 -1
- package/dist/utilities/index.d.ts +1 -1
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/lifecycle.js +4 -4
- package/dist/utilities/lifecycle.js.map +1 -1
- package/dist/utilities/register.js +6 -6
- package/dist/utilities/register.js.map +1 -1
- package/dist/utilities/styles.d.ts +1 -2
- package/dist/utilities/styles.d.ts.map +1 -1
- package/dist/utilities/styles.js +15 -10
- package/dist/utilities/styles.js.map +1 -1
- package/dist/utilities.js +10 -10
- package/dist/utilities.js.map +1 -1
- package/package.json +13 -12
- package/dist/_virtual/___vite-browser-external.mjs +0 -7
- package/dist/_virtual/___vite-browser-external.mjs.map +0 -1
- package/dist/_virtual/__vite-browser-external.mjs +0 -5
- package/dist/_virtual/__vite-browser-external.mjs.map +0 -1
- package/dist/_virtual/_commonjsHelpers.mjs +0 -37
- package/dist/_virtual/_commonjsHelpers.mjs.map +0 -1
- package/dist/_virtual/index.mjs +0 -8
- package/dist/_virtual/index.mjs.map +0 -1
- package/dist/_virtual/picocolors.browser.mjs +0 -5
- package/dist/_virtual/picocolors.browser.mjs.map +0 -1
- package/dist/_virtual/postcss.mjs +0 -8
- package/dist/_virtual/postcss.mjs.map +0 -1
- package/dist/_virtual/symbols.mjs +0 -5
- package/dist/_virtual/symbols.mjs.map +0 -1
- package/dist/attributes/checks.mjs +0 -740
- package/dist/attributes/checks.mjs.map +0 -1
- package/dist/attributes/handler.mjs +0 -206
- package/dist/attributes/handler.mjs.map +0 -1
- package/dist/attributes/names.mjs +0 -146
- package/dist/attributes/names.mjs.map +0 -1
- package/dist/attributes/values.mjs +0 -81
- package/dist/attributes/values.mjs.map +0 -1
- package/dist/attributes.mjs +0 -23
- package/dist/attributes.mjs.map +0 -1
- package/dist/index.mjs +0 -13
- package/dist/index.mjs.map +0 -1
- package/dist/model.mjs +0 -259
- package/dist/model.mjs.map +0 -1
- package/dist/node_modules/nanoid/non-secure/index.mjs +0 -31
- package/dist/node_modules/nanoid/non-secure/index.mjs.map +0 -1
- package/dist/node_modules/picocolors/picocolors.browser.mjs +0 -17
- package/dist/node_modules/picocolors/picocolors.browser.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/at-rule.mjs +0 -30
- package/dist/node_modules/postcss/lib/at-rule.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/comment.mjs +0 -21
- package/dist/node_modules/postcss/lib/comment.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/container.mjs +0 -383
- package/dist/node_modules/postcss/lib/container.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs +0 -92
- package/dist/node_modules/postcss/lib/css-syntax-error.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/declaration.mjs +0 -27
- package/dist/node_modules/postcss/lib/declaration.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/document.mjs +0 -34
- package/dist/node_modules/postcss/lib/document.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/fromJSON.mjs +0 -67
- package/dist/node_modules/postcss/lib/fromJSON.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/input.mjs +0 -216
- package/dist/node_modules/postcss/lib/input.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/lazy-result.mjs +0 -467
- package/dist/node_modules/postcss/lib/lazy-result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/list.mjs +0 -60
- package/dist/node_modules/postcss/lib/list.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/map-generator.mjs +0 -314
- package/dist/node_modules/postcss/lib/map-generator.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/no-work-result.mjs +0 -113
- package/dist/node_modules/postcss/lib/no-work-result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/node.mjs +0 -335
- package/dist/node_modules/postcss/lib/node.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/parse.mjs +0 -30
- package/dist/node_modules/postcss/lib/parse.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/parser.mjs +0 -543
- package/dist/node_modules/postcss/lib/parser.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/postcss.mjs +0 -29
- package/dist/node_modules/postcss/lib/postcss.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/postcss2.mjs +0 -110
- package/dist/node_modules/postcss/lib/postcss2.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/previous-map.mjs +0 -123
- package/dist/node_modules/postcss/lib/previous-map.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/processor.mjs +0 -61
- package/dist/node_modules/postcss/lib/processor.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/result.mjs +0 -44
- package/dist/node_modules/postcss/lib/result.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/root.mjs +0 -58
- package/dist/node_modules/postcss/lib/root.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/rule.mjs +0 -33
- package/dist/node_modules/postcss/lib/rule.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/stringifier.mjs +0 -308
- package/dist/node_modules/postcss/lib/stringifier.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/stringify.mjs +0 -19
- package/dist/node_modules/postcss/lib/stringify.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/symbols.mjs +0 -13
- package/dist/node_modules/postcss/lib/symbols.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/tokenize.mjs +0 -219
- package/dist/node_modules/postcss/lib/tokenize.mjs.map +0 -1
- package/dist/node_modules/postcss/lib/warning.mjs +0 -40
- package/dist/node_modules/postcss/lib/warning.mjs.map +0 -1
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs +0 -130
- package/dist/packages/model/node_modules/postcss-discard-duplicates/src/index.mjs.map +0 -1
- package/dist/slots/create.mjs +0 -50
- package/dist/slots/create.mjs.map +0 -1
- package/dist/slots/element.mjs +0 -42
- package/dist/slots/element.mjs.map +0 -1
- package/dist/slots/mapping.mjs +0 -97
- package/dist/slots/mapping.mjs.map +0 -1
- package/dist/slots.mjs +0 -74
- package/dist/slots.mjs.map +0 -1
- package/dist/utilities/lifecycle.mjs +0 -21
- package/dist/utilities/lifecycle.mjs.map +0 -1
- package/dist/utilities/register.mjs +0 -32
- package/dist/utilities/register.mjs.map +0 -1
- package/dist/utilities/styles.mjs +0 -80
- package/dist/utilities/styles.mjs.map +0 -1
- package/dist/utilities.mjs +0 -11
- package/dist/utilities.mjs.map +0 -1
package/dist/slots/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sources":["../../source/slots/create.ts"],"sourcesContent":["/**\n * Base properties required for slot creation\n */\nexport interface BaseProps {\n /** The HTML element to extract slot content from */\n element: HTMLElement;\n}\n\ninterface BaseConfig extends BaseProps {\n type: string;\n}\n\n/**\n * Optional properties for slot configuration\n */\nexport interface OptionalProps {\n /** Whether to apply default styling to the slot content */\n isDefaultStyling: boolean;\n /** Whether this slot is required */\n isRequired: boolean;\n}\n\ninterface ValidatonErrors {\n errors: string[];\n}\n\ninterface SlotValidation extends ValidatonErrors {\n isValid: boolean;\n}\n\ntype SlotConfig = BaseConfig & Partial<OptionalProps>;\n\n/**\n * Result type for slot creation operations\n * Returns either the processed slot element or null if not found\n */\nexport type SlotResult = HTMLElement | null;\n\nconst createEmptySlot = (type: string): HTMLSlotElement => {\n const slot = document.createElement('slot');\n slot.setAttribute('name', type);\n return slot;\n};\n\nconst validateSlotRequirements = (\n element: HTMLElement,\n type: string,\n isRequired: boolean,\n): SlotValidation => {\n const errors: string[] = [];\n const slottedContent = element.querySelector(`[slot=\"${type}\"]`);\n\n if (isRequired && !slottedContent) {\n errors.push(`Required slot \"${type}\" is missing in ${element.tagName}`);\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n };\n};\n\nconst cloneWithoutSlotAttribute = (element: HTMLElement): HTMLElement => {\n const clone = element.cloneNode(true) as HTMLElement;\n clone.removeAttribute('slot');\n return clone;\n};\n\nconst processDefaultStyling = (\n element: HTMLElement,\n slotRef: string,\n): SlotResult => {\n const elementRef = element.querySelector(\n `:scope > [slot=${slotRef}]`,\n ) as HTMLElement;\n\n if (!elementRef) {\n return null;\n }\n\n return elementRef.hasAttribute('styled')\n ? createEmptySlot(slotRef)\n : cloneWithoutSlotAttribute(elementRef);\n};\n\nconst createSlot = ({\n element,\n type,\n isDefaultStyling = true,\n isRequired = false,\n}: SlotConfig): SlotResult => {\n const validation = validateSlotRequirements(element, type, isRequired);\n if (!validation.isValid) {\n return null;\n }\n\n const slottedContent = element.querySelector(`[slot=\"${type}\"]`);\n if (!slottedContent) {\n return null;\n }\n\n return isDefaultStyling\n ? processDefaultStyling(element, type)\n : createEmptySlot(type);\n};\n\nexport { createSlot };\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.js","sources":["../../source/slots/create.ts"],"sourcesContent":["/**\n * Base properties required for slot creation\n */\nexport interface BaseProps {\n /** The HTML element to extract slot content from */\n element: HTMLElement;\n}\n\ninterface BaseConfig extends BaseProps {\n type: string;\n}\n\n/**\n * Optional properties for slot configuration\n */\nexport interface OptionalProps {\n /** Whether to apply default styling to the slot content */\n isDefaultStyling: boolean;\n /** Whether this slot is required */\n isRequired: boolean;\n}\n\ninterface ValidatonErrors {\n errors: string[];\n}\n\ninterface SlotValidation extends ValidatonErrors {\n isValid: boolean;\n}\n\ntype SlotConfig = BaseConfig & Partial<OptionalProps>;\n\n/**\n * Result type for slot creation operations\n * Returns either the processed slot element or null if not found\n */\nexport type SlotResult = HTMLElement | null;\n\nconst createEmptySlot = (type: string): HTMLSlotElement => {\n const slot = document.createElement('slot');\n slot.setAttribute('name', type);\n return slot;\n};\n\nconst validateSlotRequirements = (\n element: HTMLElement,\n type: string,\n isRequired: boolean,\n): SlotValidation => {\n const errors: string[] = [];\n const slottedContent = element.querySelector(`[slot=\"${type}\"]`);\n\n if (isRequired && !slottedContent) {\n errors.push(`Required slot \"${type}\" is missing in ${element.tagName}`);\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n };\n};\n\nconst cloneWithoutSlotAttribute = (element: HTMLElement): HTMLElement => {\n const clone = element.cloneNode(true) as HTMLElement;\n clone.removeAttribute('slot');\n return clone;\n};\n\nconst processDefaultStyling = (\n element: HTMLElement,\n slotRef: string,\n): SlotResult => {\n const elementRef = element.querySelector(\n `:scope > [slot=${slotRef}]`,\n ) as HTMLElement;\n\n if (!elementRef) {\n return null;\n }\n\n return elementRef.hasAttribute('styled')\n ? createEmptySlot(slotRef)\n : cloneWithoutSlotAttribute(elementRef);\n};\n\nconst createSlot = ({\n element,\n type,\n isDefaultStyling = true,\n isRequired = false,\n}: SlotConfig): SlotResult => {\n const validation = validateSlotRequirements(element, type, isRequired);\n if (!validation.isValid) {\n return null;\n }\n\n const slottedContent = element.querySelector(`[slot=\"${type}\"]`);\n if (!slottedContent) {\n return null;\n }\n\n return isDefaultStyling\n ? processDefaultStyling(element, type)\n : createEmptySlot(type);\n};\n\nexport { createSlot };\n"],"names":[],"mappings":"AAsCA,MAAM,kBAAkB,CAAC,SAAkC;AACzD,QAAM,OAAO,SAAS,cAAc,MAAM;AAC1C,OAAK,aAAa,QAAQ,IAAI;AAC9B,SAAO;AACT;AAEA,MAAM,2BAA2B,CAC/B,SACA,MACA,eACmB;AACnB,QAAM,SAAmB,CAAA;AACzB,QAAM,iBAAiB,QAAQ,cAAc,UAAU,IAAI,IAAI;AAE/D,MAAI,cAAc,CAAC,gBAAgB;AACjC,WAAO,KAAK,kBAAkB,IAAI,mBAAmB,QAAQ,OAAO,EAAE;AAAA,EACxE;AAEA,SAAO;AAAA,IACL,SAAS,OAAO,WAAW;AAAA,IAC3B;AAAA,EAAA;AAEJ;AAEA,MAAM,4BAA4B,CAAC,YAAsC;AACvE,QAAM,QAAQ,QAAQ,UAAU,IAAI;AACpC,QAAM,gBAAgB,MAAM;AAC5B,SAAO;AACT;AAEA,MAAM,wBAAwB,CAC5B,SACA,YACe;AACf,QAAM,aAAa,QAAQ;AAAA,IACzB,kBAAkB,OAAO;AAAA,EAAA;AAG3B,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AAEA,SAAO,WAAW,aAAa,QAAQ,IACnC,gBAAgB,OAAO,IACvB,0BAA0B,UAAU;AAC1C;AAEA,MAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,aAAa;AACf,MAA8B;AAC5B,QAAM,aAAa,yBAAyB,SAAS,MAAM,UAAU;AACrE,MAAI,CAAC,WAAW,SAAS;AACvB,WAAO;AAAA,EACT;AAEA,QAAM,iBAAiB,QAAQ,cAAc,UAAU,IAAI,IAAI;AAC/D,MAAI,CAAC,gBAAgB;AACnB,WAAO;AAAA,EACT;AAEA,SAAO,mBACH,sBAAsB,SAAS,IAAI,IACnC,gBAAgB,IAAI;AAC1B;"}
|
package/dist/slots/element.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
1
|
const subHeadlineElements = ["h2", "h3", "h4", "h5", "h6", "p", "a", "span"];
|
|
4
2
|
const textElements = ["div", "p", "span", "strong"];
|
|
5
3
|
const allowed = {
|
|
@@ -38,5 +36,7 @@ const allowed = {
|
|
|
38
36
|
allowedElements: ["time"]
|
|
39
37
|
}
|
|
40
38
|
};
|
|
41
|
-
|
|
39
|
+
export {
|
|
40
|
+
allowed
|
|
41
|
+
};
|
|
42
42
|
//# sourceMappingURL=element.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sources":["../../source/slots/element.ts"],"sourcesContent":["/**\n * Common Slot Configurations\n *\n * This module provides pre-defined slot configurations that are commonly used\n * across multiple components. These configurations ensure consistency in how\n * components accept and validate slotted content.\n */\n\nimport type { SlotConfig } from '../_types';\n\nconst subHeadlineElements = ['h2', 'h3', 'h4', 'h5', 'h6', 'p', 'a', 'span'];\nconst textElements = ['div', 'p', 'span', 'strong'];\n\n/**\n * Common slot configurations used across multiple components\n *\n * These pre-defined configurations promote consistency and reduce duplication\n * when defining component slots.\n */\nexport const allowed: Record<string, SlotConfig> = {\n actions: {\n allowedElements: ['div', 'a', 'button', 'umd-element-call-to-action'],\n },\n body: {\n deprecated:\n 'Use \"text\" instead. This attribute will be removed in version 2.0.',\n allowedElements: [...textElements],\n },\n content: {\n allowedElements: ['div'],\n },\n eyebrow: {\n allowedElements: ['span', 'p'],\n },\n headline: {\n allowedElements: ['h1', ...subHeadlineElements],\n },\n image: {\n allowedElements: ['img'],\n },\n images: {\n allowedElements: ['div'],\n },\n imageLink: {\n allowedElements: ['img', 'a'],\n },\n subHeadline: {\n allowedElements: subHeadlineElements,\n },\n text: {\n allowedElements: [...textElements],\n },\n time: {\n allowedElements: ['time'],\n },\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"element.js","sources":["../../source/slots/element.ts"],"sourcesContent":["/**\n * Common Slot Configurations\n *\n * This module provides pre-defined slot configurations that are commonly used\n * across multiple components. These configurations ensure consistency in how\n * components accept and validate slotted content.\n */\n\nimport type { SlotConfig } from '../_types';\n\nconst subHeadlineElements = ['h2', 'h3', 'h4', 'h5', 'h6', 'p', 'a', 'span'];\nconst textElements = ['div', 'p', 'span', 'strong'];\n\n/**\n * Common slot configurations used across multiple components\n *\n * These pre-defined configurations promote consistency and reduce duplication\n * when defining component slots.\n */\nexport const allowed: Record<string, SlotConfig> = {\n actions: {\n allowedElements: ['div', 'a', 'button', 'umd-element-call-to-action'],\n },\n body: {\n deprecated:\n 'Use \"text\" instead. This attribute will be removed in version 2.0.',\n allowedElements: [...textElements],\n },\n content: {\n allowedElements: ['div'],\n },\n eyebrow: {\n allowedElements: ['span', 'p'],\n },\n headline: {\n allowedElements: ['h1', ...subHeadlineElements],\n },\n image: {\n allowedElements: ['img'],\n },\n images: {\n allowedElements: ['div'],\n },\n imageLink: {\n allowedElements: ['img', 'a'],\n },\n subHeadline: {\n allowedElements: subHeadlineElements,\n },\n text: {\n allowedElements: [...textElements],\n },\n time: {\n allowedElements: ['time'],\n },\n};\n"],"names":[],"mappings":"AAUA,MAAM,sBAAsB,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,KAAK,MAAM;AAC3E,MAAM,eAAe,CAAC,OAAO,KAAK,QAAQ,QAAQ;AAQ3C,MAAM,UAAsC;AAAA,EACjD,SAAS;AAAA,IACP,iBAAiB,CAAC,OAAO,KAAK,UAAU,4BAA4B;AAAA,EAAA;AAAA,EAEtE,MAAM;AAAA,IACJ,YACE;AAAA,IACF,iBAAiB,CAAC,GAAG,YAAY;AAAA,EAAA;AAAA,EAEnC,SAAS;AAAA,IACP,iBAAiB,CAAC,KAAK;AAAA,EAAA;AAAA,EAEzB,SAAS;AAAA,IACP,iBAAiB,CAAC,QAAQ,GAAG;AAAA,EAAA;AAAA,EAE/B,UAAU;AAAA,IACR,iBAAiB,CAAC,MAAM,GAAG,mBAAmB;AAAA,EAAA;AAAA,EAEhD,OAAO;AAAA,IACL,iBAAiB,CAAC,KAAK;AAAA,EAAA;AAAA,EAEzB,QAAQ;AAAA,IACN,iBAAiB,CAAC,KAAK;AAAA,EAAA;AAAA,EAEzB,WAAW;AAAA,IACT,iBAAiB,CAAC,OAAO,GAAG;AAAA,EAAA;AAAA,EAE9B,aAAa;AAAA,IACX,iBAAiB;AAAA,EAAA;AAAA,EAEnB,MAAM;AAAA,IACJ,iBAAiB,CAAC,GAAG,YAAY;AAAA,EAAA;AAAA,EAEnC,MAAM;AAAA,IACJ,iBAAiB,CAAC,MAAM;AAAA,EAAA;AAE5B;"}
|
package/dist/slots/index.d.ts
CHANGED
|
@@ -2,47 +2,51 @@ import { SlotName } from './mapping';
|
|
|
2
2
|
import { BaseProps, OptionalProps } from './create';
|
|
3
3
|
import * as element from './element';
|
|
4
4
|
export type SlotProps = BaseProps & Partial<OptionalProps>;
|
|
5
|
-
declare const
|
|
6
|
-
allowed: Record<string, import('..').SlotConfig>;
|
|
7
|
-
actions: {
|
|
5
|
+
export declare const Slots: {
|
|
6
|
+
readonly allowed: Record<string, import('..').SlotConfig>;
|
|
7
|
+
readonly actions: {
|
|
8
8
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
9
9
|
};
|
|
10
|
-
assets: {
|
|
10
|
+
readonly assets: {
|
|
11
11
|
readonly image: (props: SlotProps) => import('./create').SlotResult;
|
|
12
12
|
readonly images: (props: SlotProps) => import('./create').SlotResult;
|
|
13
13
|
readonly video: (props: SlotProps) => import('./create').SlotResult;
|
|
14
14
|
};
|
|
15
|
-
contact: {
|
|
15
|
+
readonly contact: {
|
|
16
16
|
readonly additional: (props: SlotProps) => import('./create').SlotResult;
|
|
17
17
|
readonly address: (props: SlotProps) => import('./create').SlotResult;
|
|
18
18
|
readonly email: (props: SlotProps) => import('./create').SlotResult;
|
|
19
19
|
readonly location: (props: SlotProps) => import('./create').SlotResult;
|
|
20
20
|
readonly phone: (props: SlotProps) => import('./create').SlotResult;
|
|
21
21
|
};
|
|
22
|
-
content: {
|
|
22
|
+
readonly content: {
|
|
23
23
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
24
24
|
};
|
|
25
|
-
date: {
|
|
25
|
+
readonly date: {
|
|
26
26
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
27
27
|
};
|
|
28
|
-
deprecated: {
|
|
28
|
+
readonly deprecated: {
|
|
29
29
|
readonly ADDITIONAL: (props: SlotProps) => import('./create').SlotResult;
|
|
30
30
|
readonly body: (props: SlotProps) => import('./create').SlotResult;
|
|
31
31
|
readonly wrappingText: (props: SlotProps) => import('./create').SlotResult;
|
|
32
32
|
readonly plainText: (props: SlotProps) => import('./create').SlotResult;
|
|
33
33
|
readonly stat: (props: SlotProps) => import('./create').SlotResult;
|
|
34
|
+
readonly backgroundImage: (props: SlotProps) => import('./create').SlotResult;
|
|
35
|
+
readonly contactHeadline: (props: SlotProps) => import('./create').SlotResult;
|
|
36
|
+
readonly contactAddress: (props: SlotProps) => import('./create').SlotResult;
|
|
37
|
+
readonly callToAction: (props: SlotProps) => import('./create').SlotResult;
|
|
34
38
|
};
|
|
35
|
-
element: typeof element;
|
|
36
|
-
eyebrow: {
|
|
39
|
+
readonly element: typeof element;
|
|
40
|
+
readonly eyebrow: {
|
|
37
41
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
38
42
|
};
|
|
39
|
-
person: {
|
|
43
|
+
readonly person: {
|
|
40
44
|
readonly association: (props: SlotProps) => import('./create').SlotResult;
|
|
41
45
|
readonly name: (props: SlotProps) => import('./create').SlotResult;
|
|
42
46
|
readonly jobTitle: (props: SlotProps) => import('./create').SlotResult;
|
|
43
47
|
readonly pronouns: (props: SlotProps) => import('./create').SlotResult;
|
|
44
48
|
};
|
|
45
|
-
name: {
|
|
49
|
+
readonly name: {
|
|
46
50
|
readonly ADDITIONAL: string;
|
|
47
51
|
readonly ATTRIBUTION_SUB_TEXT: string;
|
|
48
52
|
readonly ATTRIBUTION: string;
|
|
@@ -100,6 +104,10 @@ declare const _default: {
|
|
|
100
104
|
plainText: string;
|
|
101
105
|
stat: string;
|
|
102
106
|
wrappingText: string;
|
|
107
|
+
backgroundImage: string;
|
|
108
|
+
contactHeadline: string;
|
|
109
|
+
contactAddress: string;
|
|
110
|
+
callToAction: string;
|
|
103
111
|
};
|
|
104
112
|
readonly headline: {
|
|
105
113
|
default: string;
|
|
@@ -121,13 +129,13 @@ declare const _default: {
|
|
|
121
129
|
pronouns: string;
|
|
122
130
|
};
|
|
123
131
|
};
|
|
124
|
-
headline: {
|
|
132
|
+
readonly headline: {
|
|
125
133
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
126
134
|
};
|
|
127
|
-
social: {
|
|
135
|
+
readonly social: {
|
|
128
136
|
readonly linkedin: (props: SlotProps) => import('./create').SlotResult;
|
|
129
137
|
};
|
|
130
|
-
text: {
|
|
138
|
+
readonly text: {
|
|
131
139
|
readonly caption: (props: SlotProps) => import('./create').SlotResult;
|
|
132
140
|
readonly default: (props: SlotProps) => import('./create').SlotResult;
|
|
133
141
|
readonly stat: (props: SlotProps) => import('./create').SlotResult;
|
|
@@ -135,6 +143,5 @@ declare const _default: {
|
|
|
135
143
|
readonly subText: (props: SlotProps) => import('./create').SlotResult;
|
|
136
144
|
};
|
|
137
145
|
};
|
|
138
|
-
export default _default;
|
|
139
146
|
export type { SlotName };
|
|
140
147
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/slots/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAMrC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/slots/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAMrC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AA4E3D,eAAO,MAAM,KAAK;;;kCAxER,SAAS;;;gCAAT,SAAS;iCAAT,SAAS;gCAAT,SAAS;;;qCAAT,SAAS;kCAAT,SAAS;gCAAT,SAAS;mCAAT,SAAS;gCAAT,SAAS;;;kCAAT,SAAS;;;kCAAT,SAAS;;;qCAAT,SAAS;+BAAT,SAAS;uCAAT,SAAS;oCAAT,SAAS;+BAAT,SAAS;0CAAT,SAAS;0CAAT,SAAS;yCAAT,SAAS;uCAAT,SAAS;;;;kCAAT,SAAS;;;sCAAT,SAAS;+BAAT,SAAS;mCAAT,SAAS;mCAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAAT,SAAS;;;mCAAT,SAAS;;;kCAAT,SAAS;kCAAT,SAAS;+BAAT,SAAS;gCAAT,SAAS;kCAAT,SAAS;;CAuFT,CAAC;AAEX,YAAY,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/slots/mapping.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../source/slots/mapping.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../source/slots/mapping.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG,MAAM,CAAC;AAsGvB,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAaL,CAAC;AAEX,OAAO,EAAE,SAAS,EAAE,KAAK,QAAQ,EAAE,CAAC"}
|
package/dist/slots/mapping.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
1
|
const actions = {
|
|
4
2
|
default: "actions"
|
|
5
3
|
};
|
|
@@ -26,7 +24,11 @@ const deprecated = {
|
|
|
26
24
|
body: "body",
|
|
27
25
|
plainText: "plain-text",
|
|
28
26
|
stat: "stat",
|
|
29
|
-
wrappingText: "wrapping-text"
|
|
27
|
+
wrappingText: "wrapping-text",
|
|
28
|
+
backgroundImage: "background-image",
|
|
29
|
+
contactHeadline: "contact-headline",
|
|
30
|
+
contactAddress: "contact-address",
|
|
31
|
+
callToAction: "call-to-action"
|
|
30
32
|
};
|
|
31
33
|
const eyebrows = {
|
|
32
34
|
default: "eyebrow"
|
|
@@ -93,5 +95,7 @@ const SlotNames = {
|
|
|
93
95
|
person,
|
|
94
96
|
...NEEDS_CLEANUP
|
|
95
97
|
};
|
|
96
|
-
|
|
98
|
+
export {
|
|
99
|
+
SlotNames
|
|
100
|
+
};
|
|
97
101
|
//# sourceMappingURL=mapping.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sources":["../../source/slots/mapping.ts"],"sourcesContent":["type SlotName = string;\n\n// Slot Names\n\nconst actions = {\n default: 'actions',\n};\n\nconst assets = {\n image: 'image',\n images: 'images',\n video: 'video',\n featured: 'featured',\n};\n\nconst date = {\n default: 'date',\n};\n\nconst contact = {\n additional: 'additional-contact',\n address: 'address',\n email: 'email',\n location: 'location',\n phone: 'phone',\n};\n\nconst content = {\n default: 'content',\n};\n\nconst deprecated = {\n body: 'body',\n plainText: 'plain-text',\n stat: 'stat',\n wrappingText: 'wrapping-text',\n};\n\nconst eyebrows = {\n default: 'eyebrow',\n};\n\nconst headline = {\n default: 'headline',\n};\n\nconst person = {\n association: 'association',\n jobTitle: 'job-title',\n name: 'name',\n pronouns: 'pronouns',\n};\n\nconst text = {\n caption: 'caption',\n default: 'text',\n stat: 'stat',\n stats: 'stats',\n sub: 'sub-text',\n};\n\nconst social = {\n linkedin: 'linkedin',\n};\n\nconst NEEDS_CLEANUP = {\n ADDITIONAL: 'additional',\n ATTRIBUTION_SUB_TEXT: 'attribution-sub-text',\n ATTRIBUTION: 'attribution',\n BLOCKS: 'blocks',\n BREADCRUMB_COPY: 'breadcrumb-copy',\n BREADCRUMB: 'breadcrumb',\n CARDS: 'cards',\n CHILDREN_SLIDES: 'children-slides',\n\n CTA_ICON: 'cta-icon',\n DATE_END_ISO: 'end-date-iso',\n DATE_START_ISO: 'start-date-iso',\n DESCRIPTION: 'description',\n EVENT_LIST: 'event-list',\n HEADLINES: 'headlines',\n HIGHLIGHT_ATTRIBUTION: 'highlight-attribution',\n HIGHLIGHT: 'highlight',\n IMAGES: 'images',\n PATHS: 'paths',\n\n PRIMARY_SLIDE_CONTENT: 'primary-slide-content',\n PRIMARY_SLIDE_LINKS: 'primary-slide-links',\n PRIMARY_SLIDE_SECONDARY_LINKS: 'primary-slide-secondary-links',\n QUOTE: 'quote',\n\n STATIC_COLUMN: 'static-column',\n STATS: 'stats',\n STICKY_COLUMN: 'sticky-column',\n TABS: 'tabs',\n TEXTS: 'texts',\n};\n\nconst SlotNames = {\n actions,\n assets,\n content,\n contact,\n eyebrows,\n date,\n deprecated,\n headline,\n text,\n social,\n person,\n ...NEEDS_CLEANUP,\n} as const;\n\nexport { SlotNames, type SlotName };\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mapping.js","sources":["../../source/slots/mapping.ts"],"sourcesContent":["type SlotName = string;\n\n// Slot Names\n\nconst actions = {\n default: 'actions',\n};\n\nconst assets = {\n image: 'image',\n images: 'images',\n video: 'video',\n featured: 'featured',\n};\n\nconst date = {\n default: 'date',\n};\n\nconst contact = {\n additional: 'additional-contact',\n address: 'address',\n email: 'email',\n location: 'location',\n phone: 'phone',\n};\n\nconst content = {\n default: 'content',\n};\n\nconst deprecated = {\n body: 'body',\n plainText: 'plain-text',\n stat: 'stat',\n wrappingText: 'wrapping-text',\n backgroundImage: 'background-image',\n contactHeadline: 'contact-headline',\n contactAddress: 'contact-address',\n callToAction: 'call-to-action',\n};\n\nconst eyebrows = {\n default: 'eyebrow',\n};\n\nconst headline = {\n default: 'headline',\n};\n\nconst person = {\n association: 'association',\n jobTitle: 'job-title',\n name: 'name',\n pronouns: 'pronouns',\n};\n\nconst text = {\n caption: 'caption',\n default: 'text',\n stat: 'stat',\n stats: 'stats',\n sub: 'sub-text',\n};\n\nconst social = {\n linkedin: 'linkedin',\n};\n\nconst NEEDS_CLEANUP = {\n ADDITIONAL: 'additional',\n ATTRIBUTION_SUB_TEXT: 'attribution-sub-text',\n ATTRIBUTION: 'attribution',\n BLOCKS: 'blocks',\n BREADCRUMB_COPY: 'breadcrumb-copy',\n BREADCRUMB: 'breadcrumb',\n CARDS: 'cards',\n CHILDREN_SLIDES: 'children-slides',\n\n CTA_ICON: 'cta-icon',\n DATE_END_ISO: 'end-date-iso',\n DATE_START_ISO: 'start-date-iso',\n DESCRIPTION: 'description',\n EVENT_LIST: 'event-list',\n HEADLINES: 'headlines',\n HIGHLIGHT_ATTRIBUTION: 'highlight-attribution',\n HIGHLIGHT: 'highlight',\n IMAGES: 'images',\n PATHS: 'paths',\n\n PRIMARY_SLIDE_CONTENT: 'primary-slide-content',\n PRIMARY_SLIDE_LINKS: 'primary-slide-links',\n PRIMARY_SLIDE_SECONDARY_LINKS: 'primary-slide-secondary-links',\n QUOTE: 'quote',\n\n STATIC_COLUMN: 'static-column',\n STATS: 'stats',\n STICKY_COLUMN: 'sticky-column',\n TABS: 'tabs',\n TEXTS: 'texts',\n};\n\nconst SlotNames = {\n actions,\n assets,\n content,\n contact,\n eyebrows,\n date,\n deprecated,\n headline,\n text,\n social,\n person,\n ...NEEDS_CLEANUP,\n} as const;\n\nexport { SlotNames, type SlotName };\n"],"names":[],"mappings":"AAIA,MAAM,UAAU;AAAA,EACd,SAAS;AACX;AAEA,MAAM,SAAS;AAAA,EACb,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AACZ;AAEA,MAAM,OAAO;AAAA,EACX,SAAS;AACX;AAEA,MAAM,UAAU;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AACT;AAEA,MAAM,UAAU;AAAA,EACd,SAAS;AACX;AAEA,MAAM,aAAa;AAAA,EACjB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AAAA,EACN,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,cAAc;AAChB;AAEA,MAAM,WAAW;AAAA,EACf,SAAS;AACX;AAEA,MAAM,WAAW;AAAA,EACf,SAAS;AACX;AAEA,MAAM,SAAS;AAAA,EACb,aAAa;AAAA,EACb,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AACZ;AAEA,MAAM,OAAO;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AACP;AAEA,MAAM,SAAS;AAAA,EACb,UAAU;AACZ;AAEA,MAAM,gBAAgB;AAAA,EACpB,YAAY;AAAA,EACZ,sBAAsB;AAAA,EACtB,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,iBAAiB;AAAA,EAEjB,UAAU;AAAA,EACV,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,uBAAuB;AAAA,EACvB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EAEP,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,+BAA+B;AAAA,EAC/B,OAAO;AAAA,EAEP,eAAe;AAAA,EACf,OAAO;AAAA,EACP,eAAe;AAAA,EACf,MAAM;AAAA,EACN,OAAO;AACT;AAEA,MAAM,YAAY;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;"}
|
package/dist/slots.d.ts
CHANGED
package/dist/slots.js
CHANGED
|
@@ -1,59 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const createSlotFactory = (type, config = {}) => (props) => create.createSlot({ ...props, type, ...config });
|
|
1
|
+
import { SlotNames } from "./slots/mapping.js";
|
|
2
|
+
import { createSlot } from "./slots/create.js";
|
|
3
|
+
import * as element from "./slots/element.js";
|
|
4
|
+
const createSlotFactory = (type, config = {}) => (props) => createSlot({ ...props, type, ...config });
|
|
6
5
|
const actions = {
|
|
7
|
-
default: createSlotFactory(
|
|
6
|
+
default: createSlotFactory(SlotNames.actions.default)
|
|
8
7
|
};
|
|
9
8
|
const assets = {
|
|
10
|
-
image: createSlotFactory(
|
|
11
|
-
images: createSlotFactory(
|
|
12
|
-
video: createSlotFactory(
|
|
9
|
+
image: createSlotFactory(SlotNames.assets.image),
|
|
10
|
+
images: createSlotFactory(SlotNames.assets.images),
|
|
11
|
+
video: createSlotFactory(SlotNames.assets.video)
|
|
13
12
|
};
|
|
14
13
|
const contact = {
|
|
15
|
-
additional: createSlotFactory(
|
|
16
|
-
address: createSlotFactory(
|
|
17
|
-
email: createSlotFactory(
|
|
18
|
-
location: createSlotFactory(
|
|
19
|
-
phone: createSlotFactory(
|
|
14
|
+
additional: createSlotFactory(SlotNames.contact.additional),
|
|
15
|
+
address: createSlotFactory(SlotNames.contact.address),
|
|
16
|
+
email: createSlotFactory(SlotNames.contact.email),
|
|
17
|
+
location: createSlotFactory(SlotNames.contact.location),
|
|
18
|
+
phone: createSlotFactory(SlotNames.contact.phone)
|
|
20
19
|
};
|
|
21
20
|
const content = {
|
|
22
|
-
default: createSlotFactory(
|
|
21
|
+
default: createSlotFactory(SlotNames.content.default)
|
|
23
22
|
};
|
|
24
23
|
const date = {
|
|
25
|
-
default: createSlotFactory(
|
|
24
|
+
default: createSlotFactory(SlotNames.date.default)
|
|
26
25
|
};
|
|
27
26
|
const eyebrow = {
|
|
28
|
-
default: createSlotFactory(
|
|
27
|
+
default: createSlotFactory(SlotNames.eyebrows.default)
|
|
29
28
|
};
|
|
30
29
|
const headline = {
|
|
31
|
-
default: createSlotFactory(
|
|
30
|
+
default: createSlotFactory(SlotNames.headline.default)
|
|
32
31
|
};
|
|
33
32
|
const person = {
|
|
34
|
-
association: createSlotFactory(
|
|
35
|
-
name: createSlotFactory(
|
|
36
|
-
jobTitle: createSlotFactory(
|
|
37
|
-
pronouns: createSlotFactory(
|
|
33
|
+
association: createSlotFactory(SlotNames.person.association),
|
|
34
|
+
name: createSlotFactory(SlotNames.person.name),
|
|
35
|
+
jobTitle: createSlotFactory(SlotNames.person.jobTitle),
|
|
36
|
+
pronouns: createSlotFactory(SlotNames.person.pronouns)
|
|
38
37
|
};
|
|
39
38
|
const social = {
|
|
40
|
-
linkedin: createSlotFactory(
|
|
39
|
+
linkedin: createSlotFactory(SlotNames.social.linkedin)
|
|
41
40
|
};
|
|
42
41
|
const text = {
|
|
43
|
-
caption: createSlotFactory(
|
|
44
|
-
default: createSlotFactory(
|
|
45
|
-
stat: createSlotFactory(
|
|
46
|
-
stats: createSlotFactory(
|
|
47
|
-
subText: createSlotFactory(
|
|
42
|
+
caption: createSlotFactory(SlotNames.text.caption),
|
|
43
|
+
default: createSlotFactory(SlotNames.text.default),
|
|
44
|
+
stat: createSlotFactory(SlotNames.text.stat),
|
|
45
|
+
stats: createSlotFactory(SlotNames.text.stats),
|
|
46
|
+
subText: createSlotFactory(SlotNames.text.sub)
|
|
48
47
|
};
|
|
49
48
|
const deprecated = {
|
|
50
|
-
ADDITIONAL: createSlotFactory(
|
|
51
|
-
body: createSlotFactory(
|
|
52
|
-
wrappingText: createSlotFactory(
|
|
53
|
-
plainText: createSlotFactory(
|
|
54
|
-
stat: createSlotFactory(
|
|
49
|
+
ADDITIONAL: createSlotFactory(SlotNames.ADDITIONAL),
|
|
50
|
+
body: createSlotFactory(SlotNames.deprecated.body),
|
|
51
|
+
wrappingText: createSlotFactory(SlotNames.deprecated.wrappingText),
|
|
52
|
+
plainText: createSlotFactory(SlotNames.deprecated.plainText),
|
|
53
|
+
stat: createSlotFactory(SlotNames.deprecated.stat),
|
|
54
|
+
backgroundImage: createSlotFactory(SlotNames.deprecated.backgroundImage),
|
|
55
|
+
contactHeadline: createSlotFactory(SlotNames.deprecated.contactHeadline),
|
|
56
|
+
contactAddress: createSlotFactory(SlotNames.deprecated.contactAddress),
|
|
57
|
+
callToAction: createSlotFactory(SlotNames.deprecated.callToAction)
|
|
55
58
|
};
|
|
56
|
-
const
|
|
59
|
+
const Slots = {
|
|
57
60
|
actions,
|
|
58
61
|
assets,
|
|
59
62
|
contact,
|
|
@@ -63,11 +66,13 @@ const index = {
|
|
|
63
66
|
element,
|
|
64
67
|
eyebrow,
|
|
65
68
|
person,
|
|
66
|
-
name:
|
|
69
|
+
name: SlotNames,
|
|
67
70
|
headline,
|
|
68
71
|
social,
|
|
69
72
|
text,
|
|
70
73
|
...element
|
|
71
74
|
};
|
|
72
|
-
|
|
75
|
+
export {
|
|
76
|
+
Slots
|
|
77
|
+
};
|
|
73
78
|
//# sourceMappingURL=slots.js.map
|
package/dist/slots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slots.js","sources":["../source/slots/index.ts"],"sourcesContent":["import { SlotNames, type SlotName } from './mapping';\nimport { createSlot, type BaseProps, type OptionalProps } from './create';\nimport * as element from './element';\n\n/**\n * Properties for creating slot content\n * Combines base properties with optional configuration\n */\nexport type SlotProps = BaseProps & Partial<OptionalProps>;\n\nconst createSlotFactory =\n (type: SlotName, config: Partial<SlotProps> = {}) =>\n (props: SlotProps) =>\n createSlot({ ...props, type, ...config });\n\n// Defined common usage\n\nconst actions = {\n default: createSlotFactory(SlotNames.actions.default),\n} as const;\n\nconst assets = {\n image: createSlotFactory(SlotNames.assets.image),\n images: createSlotFactory(SlotNames.assets.images),\n video: createSlotFactory(SlotNames.assets.video),\n} as const;\n\nconst contact = {\n additional: createSlotFactory(SlotNames.contact.additional),\n address: createSlotFactory(SlotNames.contact.address),\n email: createSlotFactory(SlotNames.contact.email),\n location: createSlotFactory(SlotNames.contact.location),\n phone: createSlotFactory(SlotNames.contact.phone),\n} as const;\n\nconst content = {\n default: createSlotFactory(SlotNames.content.default),\n} as const;\n\nconst date = {\n default: createSlotFactory(SlotNames.date.default),\n} as const;\n\nconst eyebrow = {\n default: createSlotFactory(SlotNames.eyebrows.default),\n} as const;\n\nconst headline = {\n default: createSlotFactory(SlotNames.headline.default),\n} as const;\n\nconst person = {\n association: createSlotFactory(SlotNames.person.association),\n name: createSlotFactory(SlotNames.person.name),\n jobTitle: createSlotFactory(SlotNames.person.jobTitle),\n pronouns: createSlotFactory(SlotNames.person.pronouns),\n} as const;\n\nconst social = {\n linkedin: createSlotFactory(SlotNames.social.linkedin),\n} as const;\n\nconst text = {\n caption: createSlotFactory(SlotNames.text.caption),\n default: createSlotFactory(SlotNames.text.default),\n stat: createSlotFactory(SlotNames.text.stat),\n stats: createSlotFactory(SlotNames.text.stats),\n subText: createSlotFactory(SlotNames.text.sub),\n} as const;\n\n// Deprecated slots (marked for removal)\n/** @deprecated Use CommonSlots instead */\nconst deprecated = {\n ADDITIONAL: createSlotFactory(SlotNames.ADDITIONAL),\n body: createSlotFactory(SlotNames.deprecated.body),\n wrappingText: createSlotFactory(SlotNames.deprecated.wrappingText),\n plainText: createSlotFactory(SlotNames.deprecated.plainText),\n stat: createSlotFactory(SlotNames.deprecated.stat),\n} as const;\n\nexport
|
|
1
|
+
{"version":3,"file":"slots.js","sources":["../source/slots/index.ts"],"sourcesContent":["import { SlotNames, type SlotName } from './mapping';\nimport { createSlot, type BaseProps, type OptionalProps } from './create';\nimport * as element from './element';\n\n/**\n * Properties for creating slot content\n * Combines base properties with optional configuration\n */\nexport type SlotProps = BaseProps & Partial<OptionalProps>;\n\nconst createSlotFactory =\n (type: SlotName, config: Partial<SlotProps> = {}) =>\n (props: SlotProps) =>\n createSlot({ ...props, type, ...config });\n\n// Defined common usage\n\nconst actions = {\n default: createSlotFactory(SlotNames.actions.default),\n} as const;\n\nconst assets = {\n image: createSlotFactory(SlotNames.assets.image),\n images: createSlotFactory(SlotNames.assets.images),\n video: createSlotFactory(SlotNames.assets.video),\n} as const;\n\nconst contact = {\n additional: createSlotFactory(SlotNames.contact.additional),\n address: createSlotFactory(SlotNames.contact.address),\n email: createSlotFactory(SlotNames.contact.email),\n location: createSlotFactory(SlotNames.contact.location),\n phone: createSlotFactory(SlotNames.contact.phone),\n} as const;\n\nconst content = {\n default: createSlotFactory(SlotNames.content.default),\n} as const;\n\nconst date = {\n default: createSlotFactory(SlotNames.date.default),\n} as const;\n\nconst eyebrow = {\n default: createSlotFactory(SlotNames.eyebrows.default),\n} as const;\n\nconst headline = {\n default: createSlotFactory(SlotNames.headline.default),\n} as const;\n\nconst person = {\n association: createSlotFactory(SlotNames.person.association),\n name: createSlotFactory(SlotNames.person.name),\n jobTitle: createSlotFactory(SlotNames.person.jobTitle),\n pronouns: createSlotFactory(SlotNames.person.pronouns),\n} as const;\n\nconst social = {\n linkedin: createSlotFactory(SlotNames.social.linkedin),\n} as const;\n\nconst text = {\n caption: createSlotFactory(SlotNames.text.caption),\n default: createSlotFactory(SlotNames.text.default),\n stat: createSlotFactory(SlotNames.text.stat),\n stats: createSlotFactory(SlotNames.text.stats),\n subText: createSlotFactory(SlotNames.text.sub),\n} as const;\n\n// Deprecated slots (marked for removal)\n/** @deprecated Use CommonSlots instead */\nconst deprecated = {\n ADDITIONAL: createSlotFactory(SlotNames.ADDITIONAL),\n body: createSlotFactory(SlotNames.deprecated.body),\n wrappingText: createSlotFactory(SlotNames.deprecated.wrappingText),\n plainText: createSlotFactory(SlotNames.deprecated.plainText),\n stat: createSlotFactory(SlotNames.deprecated.stat),\n backgroundImage: createSlotFactory(SlotNames.deprecated.backgroundImage),\n contactHeadline: createSlotFactory(SlotNames.deprecated.contactHeadline),\n contactAddress: createSlotFactory(SlotNames.deprecated.contactAddress),\n callToAction: createSlotFactory(SlotNames.deprecated.callToAction),\n} as const;\n\nexport const Slots = {\n actions,\n assets,\n contact,\n content,\n date,\n deprecated,\n element,\n eyebrow,\n person,\n name: SlotNames,\n headline,\n social,\n text,\n ...element,\n} as const;\n\nexport type { SlotName };\n"],"names":[],"mappings":";;;AAUA,MAAM,oBACJ,CAAC,MAAgB,SAA6B,CAAA,MAC9C,CAAC,UACC,WAAW,EAAE,GAAG,OAAO,MAAM,GAAG,QAAQ;AAI5C,MAAM,UAAU;AAAA,EACd,SAAS,kBAAkB,UAAU,QAAQ,OAAO;AACtD;AAEA,MAAM,SAAS;AAAA,EACb,OAAO,kBAAkB,UAAU,OAAO,KAAK;AAAA,EAC/C,QAAQ,kBAAkB,UAAU,OAAO,MAAM;AAAA,EACjD,OAAO,kBAAkB,UAAU,OAAO,KAAK;AACjD;AAEA,MAAM,UAAU;AAAA,EACd,YAAY,kBAAkB,UAAU,QAAQ,UAAU;AAAA,EAC1D,SAAS,kBAAkB,UAAU,QAAQ,OAAO;AAAA,EACpD,OAAO,kBAAkB,UAAU,QAAQ,KAAK;AAAA,EAChD,UAAU,kBAAkB,UAAU,QAAQ,QAAQ;AAAA,EACtD,OAAO,kBAAkB,UAAU,QAAQ,KAAK;AAClD;AAEA,MAAM,UAAU;AAAA,EACd,SAAS,kBAAkB,UAAU,QAAQ,OAAO;AACtD;AAEA,MAAM,OAAO;AAAA,EACX,SAAS,kBAAkB,UAAU,KAAK,OAAO;AACnD;AAEA,MAAM,UAAU;AAAA,EACd,SAAS,kBAAkB,UAAU,SAAS,OAAO;AACvD;AAEA,MAAM,WAAW;AAAA,EACf,SAAS,kBAAkB,UAAU,SAAS,OAAO;AACvD;AAEA,MAAM,SAAS;AAAA,EACb,aAAa,kBAAkB,UAAU,OAAO,WAAW;AAAA,EAC3D,MAAM,kBAAkB,UAAU,OAAO,IAAI;AAAA,EAC7C,UAAU,kBAAkB,UAAU,OAAO,QAAQ;AAAA,EACrD,UAAU,kBAAkB,UAAU,OAAO,QAAQ;AACvD;AAEA,MAAM,SAAS;AAAA,EACb,UAAU,kBAAkB,UAAU,OAAO,QAAQ;AACvD;AAEA,MAAM,OAAO;AAAA,EACX,SAAS,kBAAkB,UAAU,KAAK,OAAO;AAAA,EACjD,SAAS,kBAAkB,UAAU,KAAK,OAAO;AAAA,EACjD,MAAM,kBAAkB,UAAU,KAAK,IAAI;AAAA,EAC3C,OAAO,kBAAkB,UAAU,KAAK,KAAK;AAAA,EAC7C,SAAS,kBAAkB,UAAU,KAAK,GAAG;AAC/C;AAIA,MAAM,aAAa;AAAA,EACjB,YAAY,kBAAkB,UAAU,UAAU;AAAA,EAClD,MAAM,kBAAkB,UAAU,WAAW,IAAI;AAAA,EACjD,cAAc,kBAAkB,UAAU,WAAW,YAAY;AAAA,EACjE,WAAW,kBAAkB,UAAU,WAAW,SAAS;AAAA,EAC3D,MAAM,kBAAkB,UAAU,WAAW,IAAI;AAAA,EACjD,iBAAiB,kBAAkB,UAAU,WAAW,eAAe;AAAA,EACvE,iBAAiB,kBAAkB,UAAU,WAAW,eAAe;AAAA,EACvE,gBAAgB,kBAAkB,UAAU,WAAW,cAAc;AAAA,EACrE,cAAc,kBAAkB,UAAU,WAAW,YAAY;AACnE;AAEO,MAAM,QAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { registerWebComponent, webComponent, type WebComponentConfig } from './register';
|
|
2
2
|
export { hooks, CommonLifecycleHooks } from './lifecycle';
|
|
3
|
-
export {
|
|
3
|
+
export { stylesTemplate as StylesTemplate } from './styles';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/utilities/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../source/utilities/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,cAAc,IAAI,cAAc,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
1
|
const hooks = {
|
|
4
2
|
/**
|
|
5
3
|
* Standard afterConnect that calls the component's load event
|
|
@@ -16,6 +14,8 @@ const hooks = {
|
|
|
16
14
|
resizeOnConnect: (ref) => ref?.events?.resize?.()
|
|
17
15
|
};
|
|
18
16
|
const CommonLifecycleHooks = hooks;
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
export {
|
|
18
|
+
CommonLifecycleHooks,
|
|
19
|
+
hooks
|
|
20
|
+
};
|
|
21
21
|
//# sourceMappingURL=lifecycle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sources":["../../source/utilities/lifecycle.ts"],"sourcesContent":["/**\n * Common Lifecycle Hooks for Components\n *\n * This module provides standard lifecycle implementations that can be\n * reused across multiple components.\n */\n\nimport type { ComponentRef } from '../_types';\n\n/**\n * Common lifecycle hooks for component initialization and state management\n */\nexport const hooks = {\n /**\n * Standard afterConnect that calls the component's load event\n */\n loadOnConnect: (ref: ComponentRef) => ref?.events?.load?.(),\n\n /**\n * AfterConnect hook that sets up component animations\n * Delays animation initialization to ensure proper positioning\n */\n loadAnimation: (ref: ComponentRef) => ref?.events?.loadAnimation?.(),\n\n /**\n * Standard resize handler for afterConnect\n */\n resizeOnConnect: (ref: ComponentRef) => ref?.events?.resize?.(),\n};\n\n/**\n * @deprecated Use hooks instead\n */\nexport const CommonLifecycleHooks = hooks;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sources":["../../source/utilities/lifecycle.ts"],"sourcesContent":["/**\n * Common Lifecycle Hooks for Components\n *\n * This module provides standard lifecycle implementations that can be\n * reused across multiple components.\n */\n\nimport type { ComponentRef } from '../_types';\n\n/**\n * Common lifecycle hooks for component initialization and state management\n */\nexport const hooks = {\n /**\n * Standard afterConnect that calls the component's load event\n */\n loadOnConnect: (ref: ComponentRef) => ref?.events?.load?.(),\n\n /**\n * AfterConnect hook that sets up component animations\n * Delays animation initialization to ensure proper positioning\n */\n loadAnimation: (ref: ComponentRef) => ref?.events?.loadAnimation?.(),\n\n /**\n * Standard resize handler for afterConnect\n */\n resizeOnConnect: (ref: ComponentRef) => ref?.events?.resize?.(),\n};\n\n/**\n * @deprecated Use hooks instead\n */\nexport const CommonLifecycleHooks = hooks;\n"],"names":[],"mappings":"AAYO,MAAM,QAAQ;AAAA;AAAA;AAAA;AAAA,EAInB,eAAe,CAAC,QAAsB,KAAK,QAAQ,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMnD,eAAe,CAAC,QAAsB,KAAK,QAAQ,gBAAA;AAAA;AAAA;AAAA;AAAA,EAKnD,iBAAiB,CAAC,QAAsB,KAAK,QAAQ,SAAA;AACvD;AAKO,MAAM,uBAAuB;"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const model = require("../model.js");
|
|
1
|
+
import { createCustomElement } from "../model.js";
|
|
4
2
|
if (!window.WebComponents) {
|
|
5
3
|
window.WebComponents = {};
|
|
6
4
|
}
|
|
@@ -23,10 +21,12 @@ function webComponent(config) {
|
|
|
23
21
|
};
|
|
24
22
|
registerWebComponent({
|
|
25
23
|
name: config.tagName,
|
|
26
|
-
element:
|
|
24
|
+
element: createCustomElement(normalizedConfig)
|
|
27
25
|
});
|
|
28
26
|
};
|
|
29
27
|
}
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
export {
|
|
29
|
+
registerWebComponent,
|
|
30
|
+
webComponent
|
|
31
|
+
};
|
|
32
32
|
//# sourceMappingURL=register.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sources":["../../source/utilities/register.ts"],"sourcesContent":["interface WebComponentConfig {\n name: string;\n element: CustomElementConstructor;\n}\n\ninterface WebComponentRegistry {\n [key: string]: CustomElementConstructor;\n}\n\ndeclare global {\n interface Window {\n WebComponents: WebComponentRegistry;\n }\n}\n\nif (!window.WebComponents) {\n window.WebComponents = {};\n}\n\nconst registerWebComponent = ({ name, element }: WebComponentConfig): void => {\n if (window.customElements.get(name)) {\n return;\n }\n\n const hasElement = document.getElementsByTagName(name).length > 0;\n if (!hasElement) {\n return;\n }\n\n window.WebComponents[name] = element;\n window.customElements.define(name, element);\n};\n\nimport type { ComponentConfiguration, ComponentRegistration } from '../_types';\nimport { createCustomElement } from '../model';\n\n/**\n * Helper to create a standard component registration function.\n * This simplifies the component export pattern and ensures consistency.\n *\n * @param config - Component configuration\n * @returns Registration function that can be called to register the component\n *\n * @example\n * ```typescript\n * export default createComponentRegistration({\n * tagName: 'umd-element-name',\n * slots,\n * createComponent,\n * attributes: Attributes.handler.common.resize((element) => element.events?.recalculate()),\n * });\n * ```\n */\nexport function webComponent(\n config: ComponentConfiguration,\n): ComponentRegistration {\n return () => {\n // Normalize attributes to always be an array\n const normalizedConfig = {\n ...config,\n attributes: config.attributes\n ? Array.isArray(config.attributes)\n ? config.attributes\n : [config.attributes]\n : undefined,\n };\n \n registerWebComponent({\n name: config.tagName,\n element: createCustomElement(normalizedConfig),\n });\n };\n}\n\nexport { registerWebComponent, type WebComponentConfig };\n"],"names":[
|
|
1
|
+
{"version":3,"file":"register.js","sources":["../../source/utilities/register.ts"],"sourcesContent":["interface WebComponentConfig {\n name: string;\n element: CustomElementConstructor;\n}\n\ninterface WebComponentRegistry {\n [key: string]: CustomElementConstructor;\n}\n\ndeclare global {\n interface Window {\n WebComponents: WebComponentRegistry;\n }\n}\n\nif (!window.WebComponents) {\n window.WebComponents = {};\n}\n\nconst registerWebComponent = ({ name, element }: WebComponentConfig): void => {\n if (window.customElements.get(name)) {\n return;\n }\n\n const hasElement = document.getElementsByTagName(name).length > 0;\n if (!hasElement) {\n return;\n }\n\n window.WebComponents[name] = element;\n window.customElements.define(name, element);\n};\n\nimport type { ComponentConfiguration, ComponentRegistration } from '../_types';\nimport { createCustomElement } from '../model';\n\n/**\n * Helper to create a standard component registration function.\n * This simplifies the component export pattern and ensures consistency.\n *\n * @param config - Component configuration\n * @returns Registration function that can be called to register the component\n *\n * @example\n * ```typescript\n * export default createComponentRegistration({\n * tagName: 'umd-element-name',\n * slots,\n * createComponent,\n * attributes: Attributes.handler.common.resize((element) => element.events?.recalculate()),\n * });\n * ```\n */\nexport function webComponent(\n config: ComponentConfiguration,\n): ComponentRegistration {\n return () => {\n // Normalize attributes to always be an array\n const normalizedConfig = {\n ...config,\n attributes: config.attributes\n ? Array.isArray(config.attributes)\n ? config.attributes\n : [config.attributes]\n : undefined,\n };\n \n registerWebComponent({\n name: config.tagName,\n element: createCustomElement(normalizedConfig),\n });\n };\n}\n\nexport { registerWebComponent, type WebComponentConfig };\n"],"names":[],"mappings":";AAeA,IAAI,CAAC,OAAO,eAAe;AACzB,SAAO,gBAAgB,CAAA;AACzB;AAEA,MAAM,uBAAuB,CAAC,EAAE,MAAM,cAAwC;AAC5E,MAAI,OAAO,eAAe,IAAI,IAAI,GAAG;AACnC;AAAA,EACF;AAEA,QAAM,aAAa,SAAS,qBAAqB,IAAI,EAAE,SAAS;AAChE,MAAI,CAAC,YAAY;AACf;AAAA,EACF;AAEA,SAAO,cAAc,IAAI,IAAI;AAC7B,SAAO,eAAe,OAAO,MAAM,OAAO;AAC5C;AAsBO,SAAS,aACd,QACuB;AACvB,SAAO,MAAM;AAEX,UAAM,mBAAmB;AAAA,MACvB,GAAG;AAAA,MACH,YAAY,OAAO,aACf,MAAM,QAAQ,OAAO,UAAU,IAC7B,OAAO,aACP,CAAC,OAAO,UAAU,IACpB;AAAA,IAAA;AAGN,yBAAqB;AAAA,MACnB,MAAM,OAAO;AAAA,MACb,SAAS,oBAAoB,gBAAgB;AAAA,IAAA,CAC9C;AAAA,EACH;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../source/utilities/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../source/utilities/styles.ts"],"names":[],"mappings":"AA8EA,eAAO,MAAM,cAAc,GAAI,YAAY;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,wBAK5D,CAAC"}
|
package/dist/utilities/styles.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
1
|
+
import "../node_modules/postcss/lib/postcss.js";
|
|
2
|
+
import { token } from "@universityofmaryland/web-styles-library";
|
|
3
|
+
import postcssDuplicates from "../_virtual/index.js";
|
|
4
|
+
import postcss from "../_virtual/postcss.js";
|
|
5
|
+
const CreateStyleString = (styles) => {
|
|
6
|
+
const processor = postcss([postcssDuplicates]);
|
|
7
|
+
const result = processor.process(styles, { from: void 0 });
|
|
8
|
+
return result.css;
|
|
9
|
+
};
|
|
7
10
|
const reset = `
|
|
8
11
|
:host {
|
|
9
|
-
color: ${
|
|
12
|
+
color: ${token.color.black};
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
:host * {
|
|
@@ -23,11 +26,11 @@ const reset = `
|
|
|
23
26
|
font-size: inherit;
|
|
24
27
|
font-weight: inherit;
|
|
25
28
|
line-height: inherit;
|
|
26
|
-
color: ${
|
|
29
|
+
color: ${token.color.black};
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
p {
|
|
30
|
-
color: ${
|
|
33
|
+
color: ${token.color.gray.dark};
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
a {
|
|
@@ -75,5 +78,7 @@ const stylesTemplate = ({ styles }) => {
|
|
|
75
78
|
template.innerHTML = `<style>${reset}${CreateStyleString(styles)}</style>`;
|
|
76
79
|
return template;
|
|
77
80
|
};
|
|
78
|
-
|
|
81
|
+
export {
|
|
82
|
+
stylesTemplate
|
|
83
|
+
};
|
|
79
84
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../source/utilities/styles.ts"],"sourcesContent":["import postcss from 'postcss';\nimport { token } from '@universityofmaryland/web-styles-library';\nimport postcssDuplicates from 'postcss-discard-duplicates';\nconst CreateStyleString = (styles: string)
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../source/utilities/styles.ts"],"sourcesContent":["import postcss from 'postcss';\nimport { token } from '@universityofmaryland/web-styles-library';\nimport postcssDuplicates from 'postcss-discard-duplicates';\n\nconst CreateStyleString = (styles: string): string => {\n const processor = postcss([postcssDuplicates]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = (processor.process as any)(styles, { from: undefined });\n return result.css;\n};\n\nconst reset = `\n :host {\n color: ${token.color.black};\n }\n \n :host * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n\n div {\n line-height: 1;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n color: ${token.color.black};\n }\n\n p {\n color: ${token.color.gray.dark};\n }\n\n a {\n text-decoration: inherit;\n color: inherit;\n }\n\n address {\n font-style: normal;\n }\n\n strong, b {\n font-weight: 700;\n }\n\n em, i {\n font-style: italic;\n }\n\n button {\n border: none;\n background: none;\n cursor: pointer;\n }\n\n img {\n max-width: 100%;\n display: block;\n }\n\n .sr-only {\n clip: rect(0,0,0,0);\n border-width: 0;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n`;\n\nexport const stylesTemplate = ({ styles }: { styles: string }) => {\n const template = document.createElement('template');\n template.innerHTML = `<style>${reset}${CreateStyleString(styles)}</style>`;\n\n return template;\n};\n"],"names":[],"mappings":";;;;AAIA,MAAM,oBAAoB,CAAC,WAA2B;AACpD,QAAM,YAAY,QAAQ,CAAC,iBAAiB,CAAC;AAE7C,QAAM,SAAU,UAAU,QAAgB,QAAQ,EAAE,MAAM,QAAW;AACrE,SAAO,OAAO;AAChB;AAEA,MAAM,QAAQ;AAAA;AAAA,aAED,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAiBjB,MAAM,MAAM,KAAK;AAAA;AAAA;AAAA;AAAA,aAIjB,MAAM,MAAM,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4C3B,MAAM,iBAAiB,CAAC,EAAE,aAAiC;AAChE,QAAM,WAAW,SAAS,cAAc,UAAU;AAClD,WAAS,YAAY,UAAU,KAAK,GAAG,kBAAkB,MAAM,CAAC;AAEhE,SAAO;AACT;"}
|
package/dist/utilities.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import { registerWebComponent, webComponent } from "./utilities/register.js";
|
|
2
|
+
import { CommonLifecycleHooks, hooks } from "./utilities/lifecycle.js";
|
|
3
|
+
import { stylesTemplate } from "./utilities/styles.js";
|
|
4
|
+
export {
|
|
5
|
+
CommonLifecycleHooks,
|
|
6
|
+
stylesTemplate as StylesTemplate,
|
|
7
|
+
hooks,
|
|
8
|
+
registerWebComponent,
|
|
9
|
+
webComponent
|
|
10
|
+
};
|
|
11
11
|
//# sourceMappingURL=utilities.js.map
|
package/dist/utilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utilities.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/package.json
CHANGED
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@universityofmaryland/web-model-library",
|
|
3
|
-
"version": "1.0.0",
|
|
3
|
+
"version": "1.0.2-beta.0",
|
|
4
4
|
"description": "UMD Web Component Model - Base utilities for building web components",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"main": "dist/index.js",
|
|
6
|
-
"module": "dist/index.
|
|
7
|
+
"module": "dist/index.js",
|
|
7
8
|
"types": "dist/index.d.ts",
|
|
8
9
|
"exports": {
|
|
9
10
|
".": {
|
|
10
11
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.
|
|
12
|
-
"
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
13
14
|
},
|
|
14
15
|
"./attributes": {
|
|
15
16
|
"types": "./dist/attributes.d.ts",
|
|
16
|
-
"import": "./dist/attributes.
|
|
17
|
-
"
|
|
17
|
+
"import": "./dist/attributes.js",
|
|
18
|
+
"default": "./dist/attributes.js"
|
|
18
19
|
},
|
|
19
20
|
"./model": {
|
|
20
21
|
"types": "./dist/model.d.ts",
|
|
21
|
-
"import": "./dist/model.
|
|
22
|
-
"
|
|
22
|
+
"import": "./dist/model.js",
|
|
23
|
+
"default": "./dist/model.js"
|
|
23
24
|
},
|
|
24
25
|
"./slots": {
|
|
25
26
|
"types": "./dist/slots.d.ts",
|
|
26
|
-
"import": "./dist/slots.
|
|
27
|
-
"
|
|
27
|
+
"import": "./dist/slots.js",
|
|
28
|
+
"default": "./dist/slots.js"
|
|
28
29
|
},
|
|
29
30
|
"./utilities": {
|
|
30
31
|
"types": "./dist/utilities.d.ts",
|
|
31
|
-
"import": "./dist/utilities.
|
|
32
|
-
"
|
|
32
|
+
"import": "./dist/utilities.js",
|
|
33
|
+
"default": "./dist/utilities.js"
|
|
33
34
|
}
|
|
34
35
|
},
|
|
35
36
|
"license": "MIT",
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as __viteBrowserExternal from "./__vite-browser-external.mjs";
|
|
2
|
-
import { getAugmentedNamespace } from "./_commonjsHelpers.mjs";
|
|
3
|
-
const require$$2 = /* @__PURE__ */ getAugmentedNamespace(__viteBrowserExternal);
|
|
4
|
-
export {
|
|
5
|
-
require$$2 as default
|
|
6
|
-
};
|
|
7
|
-
//# sourceMappingURL=___vite-browser-external.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"___vite-browser-external.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|