@universityofmaryland/web-components-library 1.18.12 → 1.19.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/_types.d.ts +4 -0
- package/dist/_types.d.ts.map +1 -1
- package/dist/bundle.js +14279 -14834
- package/dist/bundle.js.map +1 -1
- package/dist/cdn.js +653 -2311
- package/dist/cdn.js.map +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/carousel.js +1 -1
- package/dist/components/layout.js +1 -1
- package/dist/content.js +2 -2
- package/dist/feed.js +1 -1
- package/dist/{index-DfPIaBDn.js → index-BkuJDd4z.js} +7 -6
- package/dist/index-BkuJDd4z.js.map +1 -0
- package/dist/{index-CjOuk67A.js → index-C0H96DKS.js} +40 -48
- package/dist/index-C0H96DKS.js.map +1 -0
- package/dist/{index-C8YoHmAp.js → index-Dj28K-Au.js} +61 -63
- package/dist/index-Dj28K-Au.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/interactive.js +3 -3
- package/dist/{loader-CD8tNz2T.js → loader-DCx7K2yt.js} +4 -4
- package/dist/{loader-CD8tNz2T.js.map → loader-DCx7K2yt.js.map} +1 -1
- package/dist/structural.js +1 -1
- package/dist/web-components/accordion/item.d.ts.map +1 -1
- package/dist/web-components/carousel/image/multiple.d.ts.map +1 -1
- package/dist/web-components/carousel/image/single.d.ts.map +1 -1
- package/dist/web-components/layout/modal.d.ts.map +1 -1
- package/dist/web-components/layout/scroll-top.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/index-C8YoHmAp.js.map +0 -1
- package/dist/index-CjOuk67A.js.map +0 -1
- package/dist/index-DfPIaBDn.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Dj28K-Au.js","sources":["../source/web-components/carousel/base.ts","../source/web-components/carousel/cards.ts","../source/web-components/carousel/image/single.ts","../source/web-components/carousel/image/multiple.ts","../source/web-components/carousel/thumbnail.ts","../source/web-components/carousel/wide.ts"],"sourcesContent":["import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\n// Tag name for the base carousel component\nconst tagName = 'umd-element-carousel';\n\n// Slot configuration for the base carousel component\nconst slots: SlotConfiguration = {\n blocks: {\n required: true,\n },\n};\n\n// Attribute handlers for the base carousel component\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a base carousel component\n * @param element - The host HTML element\n * @returns Configured carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const isThemeDark = Attributes.isTheme.dark({\n element,\n });\n const attributeLeftButton = element.getAttribute('left-button');\n const attributeRightButton = element.getAttribute('right-button');\n const attributeMobileHint = element.getAttribute('mobile-hint');\n const attributeHint = element.getAttribute('hint');\n const tabletSize = element.getAttribute('tablet-size');\n const desktopSize = element.getAttribute('desktop-size');\n const tabletCount = element.getAttribute('tablet-count');\n const desktopCount = element.getAttribute('desktop-count');\n const maxCount = element.getAttribute('max-count');\n const gridGap = element.getAttribute('grid-gap-pixels');\n const slide = element.querySelector(\n `[slot=\"${Slots.name.BLOCKS}\"]`,\n ) as HTMLElement;\n const blocks = Array.from(\n slide.querySelectorAll(':scope > *'),\n ) as HTMLElement[];\n let hasLeftButton = true;\n let hasRightButton = true;\n let mobileHint = true;\n let hint = true;\n\n if (attributeLeftButton === 'false') hasLeftButton = false;\n if (attributeRightButton === 'false') hasRightButton = false;\n if (attributeMobileHint === 'false') mobileHint = false;\n if (attributeHint === 'false') hint = false;\n\n const createCardShadowRef = () => {\n const slot = createSlot(Slots.name.BLOCKS);\n shadow.appendChild(slot);\n };\n\n createCardShadowRef();\n\n const shadowRef = shadow.querySelector(\n `[name=\"${Slots.name.BLOCKS}\"]`,\n ) as HTMLElement;\n\n return carousel.macro({\n slide,\n shadowRef,\n blocks,\n isThemeDark,\n hasLeftButton,\n hasRightButton,\n mobileHint,\n hint,\n tabletSize: tabletSize ? parseInt(tabletSize) : undefined,\n desktopSize: desktopSize ? parseInt(desktopSize) : undefined,\n tabletCount: tabletCount ? parseInt(tabletCount) : undefined,\n desktopCount: desktopCount ? parseInt(desktopCount) : undefined,\n maxCount: maxCount ? parseInt(maxCount) : undefined,\n gridGap,\n });\n};\n\n/**\n * Base Carousel\n *\n * A versatile carousel component for displaying scrollable content blocks with navigation controls.\n *\n * ## Custom Element\n * `<umd-element-carousel>`\n *\n * ## Slots\n * - `blocks` - Container for carousel items (required, accepts: any element)\n *\n * ## Attributes\n * - `left-button` - Left navigation button visibility:\n * - `true` - Show left navigation button (default)\n * - `false` - Hide left navigation button\n * - `right-button` - Right navigation button visibility:\n * - `true` - Show right navigation button (default)\n * - `false` - Hide right navigation button\n * - `mobile-hint` - Mobile swipe hint visibility:\n * - `true` - Show mobile swipe hint (default)\n * - `false` - Hide mobile swipe hint\n * - `hint` - Navigation hint visibility:\n * - `true` - Show navigation hint (default)\n * - `false` - Hide navigation hint\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `tablet-size` - Number of visible items on tablet\n * - `desktop-size` - Number of visible items on desktop\n * - `tablet-count` - Total item count for tablet view\n * - `desktop-count` - Total item count for desktop view\n * - `max-count` - Maximum number of items to display\n * - `grid-gap-pixels` - Gap between items in pixels\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel>\n * <div slot=\"blocks\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </div>\n * </umd-element-carousel>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselBase: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselBase as base };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-cards';\n\nconst slots: SlotConfiguration = {\n cards: {\n required: true,\n },\n headline: Slots.element.allowed.headline,\n text: Slots.element.allowed.text,\n actions: Slots.element.allowed.actions,\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a cards carousel component\n * @param element - The host HTML element\n * @returns Configured cards carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const slide = element.querySelector(\n `[slot=\"${Slots.name.CARDS}\"]`,\n ) as HTMLElement;\n const cards = Array.from(\n slide.querySelectorAll(':scope > *'),\n ) as HTMLElement[];\n\n const createCardShadowRef = () => {\n const slot = createSlot(Slots.name.CARDS);\n shadow.appendChild(slot);\n };\n\n createCardShadowRef();\n\n const shadowRef = shadow.querySelector(\n `[name=\"${Slots.name.CARDS}\"]`,\n ) as HTMLElement;\n\n return carousel.cards({\n slide,\n shadowRef,\n cards,\n headline: Slots.headline.default({ element }),\n text: Slots.text.default({ element }),\n actions: Slots.actions.default({ element }),\n });\n};\n\n/**\n * Cards Carousel\n *\n * A carousel component specifically designed for displaying card components.\n *\n * ## Custom Element\n * `<umd-element-carousel-cards>`\n *\n * ## Slots\n * - `cards` - Container for card components (required, accepts: card elements)\n * - `headline` - Carousel headline (optional, accepts: heading elements)\n * - `text` - Carousel description (optional, accepts: text elements)\n * - `actions` - Carousel action buttons/links (optional, accepts: links or buttons)\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-cards>\n * <div slot=\"cards\">\n * <umd-element-card>\n * <h3 slot=\"headline\">Card 1</h3>\n * <p slot=\"text\">Card content</p>\n * </umd-element-card>\n * <umd-element-card>\n * <h3 slot=\"headline\">Card 2</h3>\n * <p slot=\"text\">Card content</p>\n * </umd-element-card>\n * </div>\n * </umd-element-carousel-cards>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselCards: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselCards as cards };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-carousel-image';\n\nconst slots: SlotConfiguration = {\n images: {\n required: true,\n allowedElements: ['img', 'div'],\n },\n headlines: {\n allowedElements: ['div'],\n },\n texts: {\n allowedElements: ['div'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.SetEventReize(),\n);\n\n/**\n * Creates a single image carousel component\n * @param element - The host HTML element\n * @returns Configured single image carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedImages = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.IMAGES}\"] > *`),\n ) as HTMLImageElement[];\n const slottedHeadlines = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.HEADLINES}\"] > *`),\n );\n const slottedTexts = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.TEXTS}\"] > *`),\n );\n\n const headlines = slottedHeadlines.map((headline) =>\n headline.cloneNode(true),\n ) as HTMLElement[];\n\n const texts = slottedTexts.map((text) =>\n text.cloneNode(true),\n ) as HTMLElement[];\n\n const images = slottedImages\n .map((image) => {\n if (image.nodeName === 'IMG') {\n if (imageHasAlt(image)) return image.cloneNode(true);\n }\n return null;\n })\n .filter((image) => image !== null) as HTMLImageElement[];\n\n return carousel.image({\n images,\n headlines,\n texts,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isFullScreenOption: Attributes.includesFeature.fullScreenOption({ element }),\n isToggleCaption: Attributes.isVisual.textToggle({ element }),\n });\n};\n\n/**\n * Single Image Carousel\n *\n * A carousel component for displaying images with optional captions and headlines.\n *\n * ## Custom Element\n * `<umd-element-carousel-image>`\n *\n * ## Slots\n * - `images` - Container for images (required, accepts: img elements with alt text)\n * - `headlines` - Container for image headlines (optional, accepts: heading elements)\n * - `texts` - Container for image descriptions (optional, accepts: text elements)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `data-feature` - Additional features:\n * - `fullscreen` - Enable fullscreen viewing option\n * - `data-visual-text-toggle` - Caption display style (default: true)\n * - `true` - Toggle button that expands to reveal caption\n * - `false` - Block caption overlaid directly on the image\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-image>\n * <div slot=\"images\">\n * <img src=\"photo1.jpg\" alt=\"Campus view\">\n * <img src=\"photo2.jpg\" alt=\"Student center\">\n * <img src=\"photo3.jpg\" alt=\"Library entrance\">\n * </div>\n * </umd-element-carousel-image>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselImageSingle: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselImageSingle as imageSingle };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-carousel-multiple-image';\n\nconst slots: SlotConfiguration = {\n images: {\n required: true,\n allowedElements: ['div', 'img'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.SetEventReize(),\n);\n\n/**\n * Creates a multiple image carousel component\n * @param element - The host HTML element\n * @returns Configured multiple image carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedImages = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.IMAGES}\"] > *`),\n ) as HTMLImageElement[];\n\n const images = slottedImages\n .map((image) => {\n if (image.nodeName === 'IMG') {\n if (imageHasAlt(image)) return image.cloneNode(true);\n }\n return null;\n })\n .filter((image) => image !== null) as HTMLImageElement[];\n\n return carousel.images({\n images,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isFullScreenOption: Attributes.includesFeature.fullScreenOption({ element }),\n isToggleCaption: Attributes.isVisual.textToggle({ element }),\n });\n};\n\n/**\n * Multiple Image Carousel\n *\n * A carousel component for displaying multiple images in a gallery format.\n *\n * ## Custom Element\n * `<umd-element-carousel-multiple-image>`\n *\n * ## Slots\n * - `images` - Container for images (required, accepts: img elements with alt text)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `data-feature` - Additional features:\n * - `fullscreen` - Enable fullscreen viewing option\n * - `data-visual-text-toggle` - Caption display style (default: true)\n * - `true` - Toggle button that expands to reveal caption\n * - `false` - Block caption overlaid directly on the image\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-multiple-image>\n * <div slot=\"images\">\n * <img src=\"gallery1.jpg\" alt=\"Gallery image 1\">\n * <img src=\"gallery2.jpg\" alt=\"Gallery image 2\">\n * <img src=\"gallery3.jpg\" alt=\"Gallery image 3\">\n * <img src=\"gallery4.jpg\" alt=\"Gallery image 4\">\n * </div>\n * </umd-element-carousel-multiple-image>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselImageMultiple: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselImageMultiple as imageMultiple };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-thumbnail';\n\nconst slots: SlotConfiguration = {\n blocks: {\n required: true,\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a thumbnail carousel component\n * @param element - The host HTML element\n * @returns Configured thumbnail carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedBlocks = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.BLOCKS}\"] > *`),\n ) as HTMLElement[];\n\n const blocks = slottedBlocks.map((block) =>\n block.cloneNode(true),\n ) as HTMLElement[];\n\n return carousel.thumbnail({\n blocks,\n isThemeDark: Attributes.isTheme.dark({ element }),\n });\n};\n\n/**\n * Thumbnail Carousel\n *\n * A carousel component with thumbnail navigation for browsing through content.\n *\n * ## Custom Element\n * `<umd-element-carousel-thumbnail>`\n *\n * ## Slots\n * - `blocks` - Container for carousel items with thumbnails (required, accepts: elements with data-thumbnail attribute)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-thumbnail>\n * <div slot=\"blocks\">\n * <div data-thumbnail=\"thumb1.jpg\">\n * <img src=\"image1.jpg\" alt=\"Image 1\">\n * <p>Caption for image 1</p>\n * </div>\n * <div data-thumbnail=\"thumb2.jpg\">\n * <img src=\"image2.jpg\" alt=\"Image 2\">\n * <p>Caption for image 2</p>\n * </div>\n * </div>\n * </umd-element-carousel-thumbnail>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselThumbnail: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselThumbnail as thumbnail };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Lifecycle, Model } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-image-wide';\n\nconst slots: SlotConfiguration = {\n slides: {\n required: true,\n allowedElements: ['figure', 'div'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a wide carousel component\n * @param element - The host HTML element\n * @returns Configured wide carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const title = element.getAttribute('title');\n const animationTime = element.getAttribute('animation-time');\n const mobileBreakpoint = element.getAttribute('mobile-breakpoint');\n\n const slottedSlides = Array.from(\n element.querySelectorAll(`[slot=\"slides\"] > *`),\n ) as HTMLElement[];\n\n const slides = slottedSlides\n .map((slide) => {\n const image = slide.querySelector('img');\n const headline = slide.querySelector('[data-headline]');\n const text = slide.querySelector('[data-text]');\n\n if (image && !imageHasAlt(image)) {\n console.warn('Carousel slide image missing alt text:', image);\n return null;\n }\n\n return {\n image: image ? (image.cloneNode(true) as HTMLImageElement) : null,\n headline: headline\n ? (headline.cloneNode(true) as HTMLElement)\n : undefined,\n text: text ? (text.cloneNode(true) as HTMLElement) : undefined,\n };\n })\n .filter((slide) => slide && slide.image) as Array<{\n image: HTMLImageElement;\n headline?: HTMLElement;\n text?: HTMLElement;\n }>;\n\n return carousel.wide({\n slides,\n title: title || undefined,\n isThemeDark: Attributes.isTheme.dark({ element }),\n animationTime: animationTime ? parseInt(animationTime) : undefined,\n mobileBreakpoint: mobileBreakpoint ? parseInt(mobileBreakpoint) : undefined,\n });\n};\n\n/**\n * Wide Carousel\n *\n * A full-width carousel component with slide previews, optimized for showcasing\n * featured content with optional text overlays.\n *\n * ## Custom Element\n * `<umd-element-carousel-wide>`\n *\n * ## Slots\n * - `slides` - Container for carousel slides (required, accepts: figure or div elements)\n * - Each slide should contain:\n * - An `img` element with alt text (required)\n * - An element with `data-headline` attribute for headlines (optional)\n * - An element with `data-text` attribute for descriptions (optional)\n *\n * ## Attributes\n * - `title` - Accessible title for the carousel (default: \"Animated Image Carousel\")\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `animation-time` - Animation duration in milliseconds (default: 500)\n * - `mobile-breakpoint` - Breakpoint for mobile behavior in pixels (default: 650)\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-wide title=\"Featured Stories\">\n * <div slot=\"slides\">\n * <figure>\n * <img src=\"hero1.jpg\" alt=\"Research breakthrough\">\n * <div data-headline>\n * <h2>Major Research Discovery</h2>\n * </div>\n * <div data-text>\n * <p>Scientists make groundbreaking discovery in quantum computing.</p>\n * </div>\n * </figure>\n * <figure>\n * <img src=\"hero2.jpg\" alt=\"Campus expansion\">\n * <div data-headline>\n * <h2>New Science Center Opens</h2>\n * </div>\n * <div data-text>\n * <p>State-of-the-art facility enhances research capabilities.</p>\n * </div>\n * </figure>\n * </div>\n * </umd-element-carousel-wide>\n * ```\n *\n * @category Components\n * @since 1.13.0\n */\nexport const CarouselWide: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselWide as wide };\n"],"names":["tagName","slots","attributes","Attributes","element","createComponent","shadow","isThemeDark","attributeLeftButton","attributeRightButton","attributeMobileHint","attributeHint","tabletSize","desktopSize","tabletCount","desktopCount","maxCount","gridGap","slide","Slots","blocks","hasLeftButton","hasRightButton","mobileHint","hint","slot","createSlot","shadowRef","carousel","CarouselBase","Model","Lifecycle","cards","CarouselCards","slottedImages","slottedHeadlines","slottedTexts","headlines","headline","texts","text","images","image","imageHasAlt","CarouselImageSingle","CarouselImageMultiple","block","CarouselThumbnail","title","animationTime","mobileBreakpoint","slides","CarouselWide"],"mappings":";;;;AAUA,MAAMA,IAAU,wBAGVC,IAA2B;AAAA,EAC/B,QAAQ;AAAA,IACN,UAAU;AAAA,EAAA;AAEd,GAGMC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,OAAA;AAClB,GAQMC,IAA2C,CAACD,MAAY;AAC5D,QAAME,IAASF,EAAQ,YACjBG,IAAcJ,EAAW,QAAQ,KAAK;AAAA,IAC1C,SAAAC;AAAA,EAAA,CACD,GACKI,IAAsBJ,EAAQ,aAAa,aAAa,GACxDK,IAAuBL,EAAQ,aAAa,cAAc,GAC1DM,IAAsBN,EAAQ,aAAa,aAAa,GACxDO,IAAgBP,EAAQ,aAAa,MAAM,GAC3CQ,IAAaR,EAAQ,aAAa,aAAa,GAC/CS,IAAcT,EAAQ,aAAa,cAAc,GACjDU,IAAcV,EAAQ,aAAa,cAAc,GACjDW,IAAeX,EAAQ,aAAa,eAAe,GACnDY,IAAWZ,EAAQ,aAAa,WAAW,GAC3Ca,IAAUb,EAAQ,aAAa,iBAAiB,GAChDc,IAAQd,EAAQ;AAAA,IACpB,UAAUe,EAAM,KAAK,MAAM;AAAA,EAAA,GAEvBC,IAAS,MAAM;AAAA,IACnBF,EAAM,iBAAiB,YAAY;AAAA,EAAA;AAErC,MAAIG,IAAgB,IAChBC,IAAiB,IACjBC,IAAa,IACbC,IAAO;AAEX,EAAIhB,MAAwB,YAASa,IAAgB,KACjDZ,MAAyB,YAASa,IAAiB,KACnDZ,MAAwB,YAASa,IAAa,KAC9CZ,MAAkB,YAASa,IAAO,MAEV,MAAM;AAChC,UAAMC,IAAOC,EAAWP,EAAM,KAAK,MAAM;AACzC,IAAAb,EAAO,YAAYmB,CAAI;AAAA,EACzB,GAEA;AAEA,QAAME,IAAYrB,EAAO;AAAA,IACvB,UAAUa,EAAM,KAAK,MAAM;AAAA,EAAA;AAG7B,SAAOS,EAAS,MAAM;AAAA,IACpB,OAAAV;AAAA,IACA,WAAAS;AAAA,IACA,QAAAP;AAAA,IACA,aAAAb;AAAA,IACA,eAAAc;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,MAAAC;AAAA,IACA,YAAYZ,IAAa,SAASA,CAAU,IAAI;AAAA,IAChD,aAAaC,IAAc,SAASA,CAAW,IAAI;AAAA,IACnD,aAAaC,IAAc,SAASA,CAAW,IAAI;AAAA,IACnD,cAAcC,IAAe,SAASA,CAAY,IAAI;AAAA,IACtD,UAAUC,IAAW,SAASA,CAAQ,IAAI;AAAA,IAC1C,SAAAC;AAAA,EAAA,CACD;AACH,GAqDaY,IAAsCC,EAAM,gBAAgB;AAAA,EAAA,SACvE9B;AAAAA,EAAA,OACAC;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAc6B,EAAU,MAAM;AAChC,GAAG,EAAE,OAAO,GAAA,CAAO,GC1Ib/B,IAAU,8BAEVC,IAA2B;AAAA,EAC/B,OAAO;AAAA,IACL,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAUkB,EAAM,QAAQ,QAAQ;AAAA,EAChC,MAAMA,EAAM,QAAQ,QAAQ;AAAA,EAC5B,SAASA,EAAM,QAAQ,QAAQ;AACjC,GAEMjB,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,OAAA;AAClB,GAQMC,IAA2C,CAACD,MAAY;AAC5D,QAAME,IAASF,EAAQ,YACjBc,IAAQd,EAAQ;AAAA,IACpB,UAAUe,EAAM,KAAK,KAAK;AAAA,EAAA,GAEtBa,IAAQ,MAAM;AAAA,IAClBd,EAAM,iBAAiB,YAAY;AAAA,EAAA;AAQrC,GAL4B,MAAM;AAChC,UAAMO,IAAOC,EAAWP,EAAM,KAAK,KAAK;AACxC,IAAAb,EAAO,YAAYmB,CAAI;AAAA,EACzB,GAEA;AAEA,QAAME,IAAYrB,EAAO;AAAA,IACvB,UAAUa,EAAM,KAAK,KAAK;AAAA,EAAA;AAG5B,SAAOS,EAAS,MAAM;AAAA,IACpB,OAAAV;AAAA,IACA,WAAAS;AAAA,IACA,OAAAK;AAAA,IACA,UAAUb,EAAM,SAAS,QAAQ,EAAE,SAAAf,GAAS;AAAA,IAC5C,MAAMe,EAAM,KAAK,QAAQ,EAAE,SAAAf,GAAS;AAAA,IACpC,SAASe,EAAM,QAAQ,QAAQ,EAAE,SAAAf,GAAS;AAAA,EAAA,CAC3C;AACH,GAsCa6B,IAAuCH,EAAM,gBAAgB;AAAA,EAAA,SACxE9B;AAAAA,EAAA,OACAC;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAc6B,EAAU,MAAM;AAChC,GAAG,EAAE,OAAO,GAAA,CAAO,GC7Fb/B,IAAU,8BAEVC,IAA2B;AAAA,EAC/B,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,iBAAiB,CAAC,OAAO,KAAK;AAAA,EAAA;AAAA,EAEhC,WAAW;AAAA,IACT,iBAAiB,CAAC,KAAK;AAAA,EAAA;AAAA,EAEzB,OAAO;AAAA,IACL,iBAAiB,CAAC,KAAK;AAAA,EAAA;AAE3B,GAEMC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,cAAA;AAClB,GAQMC,IAA2C,CAACD,MAAY;AAC5D,QAAM8B,IAAgB,MAAM;AAAA,IAC1B9B,EAAQ,iBAAiB,UAAUe,EAAM,KAAK,MAAM,QAAQ;AAAA,EAAA,GAExDgB,IAAmB,MAAM;AAAA,IAC7B/B,EAAQ,iBAAiB,UAAUe,EAAM,KAAK,SAAS,QAAQ;AAAA,EAAA,GAE3DiB,IAAe,MAAM;AAAA,IACzBhC,EAAQ,iBAAiB,UAAUe,EAAM,KAAK,KAAK,QAAQ;AAAA,EAAA,GAGvDkB,IAAYF,EAAiB;AAAA,IAAI,CAACG,MACtCA,EAAS,UAAU,EAAI;AAAA,EAAA,GAGnBC,IAAQH,EAAa;AAAA,IAAI,CAACI,MAC9BA,EAAK,UAAU,EAAI;AAAA,EAAA,GAGfC,IAASP,EACZ,IAAI,CAACQ,MACAA,EAAM,aAAa,SACjBC,EAAYD,CAAK,IAAUA,EAAM,UAAU,EAAI,IAE9C,IACR,EACA,OAAO,CAACA,MAAUA,MAAU,IAAI;AAEnC,SAAOd,EAAS,MAAM;AAAA,IACpB,QAAAa;AAAA,IACA,WAAAJ;AAAA,IACA,OAAAE;AAAA,IACA,aAAapC,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS;AAAA,IAChD,oBAAoBD,EAAW,gBAAgB,iBAAiB,EAAE,SAAAC,GAAS;AAAA,IAC3E,iBAAiBD,EAAW,SAAS,WAAW,EAAE,SAAAC,GAAS;AAAA,EAAA,CAC5D;AACH,GA0CawC,IAA6Cd,EAAM,gBAAgB;AAAA,EAAA,SAC9E9B;AAAAA,EAAA,OACAC;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AACzB,GAAG,EAAE,OAAO,GAAA,CAAO,GC5GbF,IAAU,uCAEVC,IAA2B;AAAA,EAC/B,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,iBAAiB,CAAC,OAAO,KAAK;AAAA,EAAA;AAElC,GAEMC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,cAAA;AAClB,GAQMC,IAA2C,CAACD,MAAY;AAK5D,QAAMqC,IAJgB,MAAM;AAAA,IAC1BrC,EAAQ,iBAAiB,UAAUe,EAAM,KAAK,MAAM,QAAQ;AAAA,EAAA,EAI3D,IAAI,CAACuB,MACAA,EAAM,aAAa,SACjBC,EAAYD,CAAK,IAAUA,EAAM,UAAU,EAAI,IAE9C,IACR,EACA,OAAO,CAACA,MAAUA,MAAU,IAAI;AAEnC,SAAOd,EAAS,OAAO;AAAA,IACrB,QAAAa;AAAA,IACA,aAAatC,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS;AAAA,IAChD,oBAAoBD,EAAW,gBAAgB,iBAAiB,EAAE,SAAAC,GAAS;AAAA,IAC3E,iBAAiBD,EAAW,SAAS,WAAW,EAAE,SAAAC,GAAS;AAAA,EAAA,CAC5D;AACH,GAyCayC,IAA+Cf,EAAM,gBAAgB;AAAA,EAAA,SAChF9B;AAAAA,EAAA,OACAC;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AACzB,GAAG,EAAE,OAAO,GAAA,CAAO,GCtFbF,IAAU,kCAEVC,IAA2B;AAAA,EAC/B,QAAQ;AAAA,IACN,UAAU;AAAA,EAAA;AAEd,GAEMC,IAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,OAAA;AAClB,GAQMC,IAA2C,CAACD,MAAY;AAK5D,QAAMgB,IAJgB,MAAM;AAAA,IAC1BhB,EAAQ,iBAAiB,UAAUe,EAAM,KAAK,MAAM,QAAQ;AAAA,EAAA,EAGjC;AAAA,IAAI,CAAC2B,MAChCA,EAAM,UAAU,EAAI;AAAA,EAAA;AAGtB,SAAOlB,EAAS,UAAU;AAAA,IACxB,QAAAR;AAAA,IACA,aAAajB,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS;AAAA,EAAA,CACjD;AACH,GAwCa2C,IAA2CjB,EAAM,gBAAgB;AAAA,EAAA,SAC5E9B;AAAAA,EAAA,OACAC;AAAAA,EAAA,iBACAI;AAAAA,EACA,YAAY,CAACH,CAAU;AAAA,EACvB,cAAc6B,EAAU,MAAM;AAChC,GAAG,EAAE,OAAO,GAAA,CAAO,GC5Eb/B,KAAU,mCAEVC,KAA2B;AAAA,EAC/B,QAAQ;AAAA,IACN,UAAU;AAAA,IACV,iBAAiB,CAAC,UAAU,KAAK;AAAA,EAAA;AAErC,GAEMC,KAAaC,EAAW,QAAQ,OAAO;AAAA,EAAO,CAACC,MACnDA,EAAQ,QAAQ,OAAA;AAClB,GAQMC,KAA2C,CAACD,MAAY;AAC5D,QAAM4C,IAAQ5C,EAAQ,aAAa,OAAO,GACpC6C,IAAgB7C,EAAQ,aAAa,gBAAgB,GACrD8C,IAAmB9C,EAAQ,aAAa,mBAAmB,GAM3D+C,IAJgB,MAAM;AAAA,IAC1B/C,EAAQ,iBAAiB,qBAAqB;AAAA,EAAA,EAI7C,IAAI,CAACc,MAAU;AACd,UAAMwB,IAAQxB,EAAM,cAAc,KAAK,GACjCoB,IAAWpB,EAAM,cAAc,iBAAiB,GAChDsB,IAAOtB,EAAM,cAAc,aAAa;AAE9C,WAAIwB,KAAS,CAACC,EAAYD,CAAK,KAC7B,QAAQ,KAAK,0CAA0CA,CAAK,GACrD,QAGF;AAAA,MACL,OAAOA,IAASA,EAAM,UAAU,EAAI,IAAyB;AAAA,MAC7D,UAAUJ,IACLA,EAAS,UAAU,EAAI,IACxB;AAAA,MACJ,MAAME,IAAQA,EAAK,UAAU,EAAI,IAAoB;AAAA,IAAA;AAAA,EAEzD,CAAC,EACA,OAAO,CAACtB,MAAUA,KAASA,EAAM,KAAK;AAMzC,SAAOU,EAAS,KAAK;AAAA,IACnB,QAAAuB;AAAA,IACA,OAAOH,KAAS;AAAA,IAChB,aAAa7C,EAAW,QAAQ,KAAK,EAAE,SAAAC,GAAS;AAAA,IAChD,eAAe6C,IAAgB,SAASA,CAAa,IAAI;AAAA,IACzD,kBAAkBC,IAAmB,SAASA,CAAgB,IAAI;AAAA,EAAA,CACnE;AACH,GA0DaE,IAAsCtB,EAAM,gBAAgB;AAAA,EACvE,SAAA9B;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAI;AAAA,EACA,YAAY,CAACH,EAAU;AAAA,EACvB,cAAc6B,EAAU,MAAM;AAChC,GAAG,EAAE,OAAO,GAAA,CAAO;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { u as a } from "./loader-
|
|
2
|
-
import { L as t, l as i } from "./loader-
|
|
3
|
-
import { A as n, a as p } from "./index-
|
|
1
|
+
import { u as a } from "./loader-DCx7K2yt.js";
|
|
2
|
+
import { L as t, l as i } from "./loader-DCx7K2yt.js";
|
|
3
|
+
import { A as n, a as p } from "./index-BkuJDd4z.js";
|
|
4
4
|
import { A as m, a as f } from "./index-ttzsIJeg.js";
|
|
5
5
|
import { A as c, a as u, b as C, c as g } from "./index-Cl0QSfTe.js";
|
|
6
6
|
import { B as S, a as v, b as L } from "./index-w4yF38ne.js";
|
|
7
7
|
import { C as b, a as E, b as h, c as A, d as H, e as I, f as N, g as B } from "./index-F2olbj6x.js";
|
|
8
|
-
import { C as w, a as D, b as T, c as G, d as M, e as k, f as q } from "./index-
|
|
8
|
+
import { C as w, a as D, b as T, c as G, d as M, e as k, f as q } from "./index-Dj28K-Au.js";
|
|
9
9
|
import { F as Q, a as V, b as W, c as j, d as U, e as z, f as J, g as K, h as R, i as X, j as Y } from "./index-wTh3pJOz.js";
|
|
10
10
|
import { F as _, f as $ } from "./index-C8QF5Yaz.js";
|
|
11
11
|
import { H as ea, a as sa, b as oa, c as ra, d as ta, e as ia, h as da } from "./index-yQgu19Cg.js";
|
|
12
|
-
import { L as pa, a as la, b as ma, c as fa, d as xa, e as ca, f as ua, l as Ca } from "./index-
|
|
12
|
+
import { L as pa, a as la, b as ma, c as fa, d as xa, e as ca, f as ua, l as Ca } from "./index-C0H96DKS.js";
|
|
13
13
|
import { M as ya, a as Sa, m as va } from "./index-BIivaL9F.js";
|
|
14
14
|
import { N as Fa, a as ba, b as Ea, c as ha, d as Aa, e as Ha, n as Ia } from "./index-BGK3DZ1i.js";
|
|
15
15
|
import { P as Ba, a as Pa, p as wa } from "./index-D-Cxht6b.js";
|
package/dist/interactive.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as o } from "./index-
|
|
2
|
-
import { f as t } from "./index-
|
|
1
|
+
import { a as o } from "./index-BkuJDd4z.js";
|
|
2
|
+
import { f as t } from "./index-Dj28K-Au.js";
|
|
3
3
|
import { f as r } from "./index-C8QF5Yaz.js";
|
|
4
4
|
import { s as a } from "./index-D_H6cdkS.js";
|
|
5
5
|
import { t as m } from "./index-BbC8gAkR.js";
|
|
6
|
-
import { l as s } from "./loader-
|
|
6
|
+
import { l as s } from "./loader-DCx7K2yt.js";
|
|
7
7
|
const i = {
|
|
8
8
|
accordion: o,
|
|
9
9
|
carousel: t,
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { A as r, a as t } from "./index-
|
|
1
|
+
import { A as r, a as t } from "./index-BkuJDd4z.js";
|
|
2
2
|
import { A as i, a as n } from "./index-ttzsIJeg.js";
|
|
3
3
|
import { A as d, a as m, b as l, c as p } from "./index-Cl0QSfTe.js";
|
|
4
4
|
import { B as c, a as f, b as u } from "./index-w4yF38ne.js";
|
|
5
5
|
import { C as y, a as C, b, c as g, d as S, e as v, f as L, g as E } from "./index-F2olbj6x.js";
|
|
6
|
-
import { C as F, a as h, b as P, c as A, d as w, e as B, f as H } from "./index-
|
|
6
|
+
import { C as F, a as h, b as P, c as A, d as w, e as B, f as H } from "./index-Dj28K-Au.js";
|
|
7
7
|
import { F as I, a as N, b as x, c as D, d as T, e as O, f as G, g as j, h as k, i as M, j as _ } from "./index-wTh3pJOz.js";
|
|
8
8
|
import { F as U, f as q } from "./index-C8QF5Yaz.js";
|
|
9
9
|
import { H as z, a as Q, b as V, c as W, d as K, e as R, h as J } from "./index-yQgu19Cg.js";
|
|
10
|
-
import { L as X, a as Y, b as Z, c as $, d as aa, e as oa, f as sa, l as ea } from "./index-
|
|
10
|
+
import { L as X, a as Y, b as Z, c as $, d as aa, e as oa, f as sa, l as ea } from "./index-C0H96DKS.js";
|
|
11
11
|
import { M as ra, a as ta, m as ia } from "./index-BIivaL9F.js";
|
|
12
12
|
import { N as na, a as da, b as ma, c as la, d as pa, e as ca, n as fa } from "./index-BGK3DZ1i.js";
|
|
13
13
|
import { P as ua, a as ya, p as Ca } from "./index-D-Cxht6b.js";
|
|
@@ -122,4 +122,4 @@ export {
|
|
|
122
122
|
Oa as l,
|
|
123
123
|
Ta as u
|
|
124
124
|
};
|
|
125
|
-
//# sourceMappingURL=loader-
|
|
125
|
+
//# sourceMappingURL=loader-DCx7K2yt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader-
|
|
1
|
+
{"version":3,"file":"loader-DCx7K2yt.js","sources":["../source/exports/loader.ts"],"sourcesContent":["/**\n * Shared component loading utilities\n * Extracted to avoid circular dependencies\n */\nimport * as umdComponents from '../web-components';\n\n/**\n * Type definition for a map of component registration functions.\n * Used to organize components by category and variant.\n */\nexport interface ComponentMap {\n [key: string]: {\n [subKey: string]: () => void;\n };\n}\n\n/**\n * Utility function to register a collection of UMD web components.\n * Iterates through a ComponentMap and calls each registration function.\n */\nexport const loadComponentClass = (componentMap: ComponentMap) => {\n for (const key in componentMap) {\n if (Object.prototype.hasOwnProperty.call(componentMap, key)) {\n const component = componentMap[key];\n\n for (const subKey in component) {\n if (Object.prototype.hasOwnProperty.call(component, subKey)) {\n component[subKey]();\n }\n }\n }\n }\n};\n\nconst allList = umdComponents as unknown as ComponentMap;\n\n/**\n * @deprecated This function is deprecated and will be removed in version 2.0.\n * Use the bundle export instead:\n * ```typescript\n * import { initializeBundle } from '@universityofmaryland/web-components-library/bundle';\n * initializeBundle();\n * ```\n */\nexport const LoadUmdComponents = () => {\n console.error(\n '[DEPRECATED] LoadUmdComponents is deprecated.\\n' +\n 'Use: import { initializeBundle } from \"@universityofmaryland/web-components-library/bundle\"',\n );\n\n loadComponentClass(allList);\n};"],"names":["loadComponentClass","componentMap","key","component","subKey","allList","umdComponents","LoadUmdComponents"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CAoBaA,KAAqB,CAACC,MAA+B;AAChE,aAAWC,KAAOD;AAChB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAcC,CAAG,GAAG;AAC3D,YAAMC,IAAYF,EAAaC,CAAG;AAElC,iBAAWE,KAAUD;AACnB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAWC,CAAM,KACxDD,EAAUC,CAAM,EAAA;AAAA,IAGtB;AAEJ,GAEMC,KAAUC,IAUHC,KAAoB,MAAM;AACrC,UAAQ;AAAA,IACN;AAAA;AAAA,EAAA,GAIFP,GAAmBK,EAAO;AAC5B;"}
|
package/dist/structural.js
CHANGED
|
@@ -2,7 +2,7 @@ import { a as o } from "./index-ttzsIJeg.js";
|
|
|
2
2
|
import { h as t } from "./index-yQgu19Cg.js";
|
|
3
3
|
import { p as a } from "./index-D-Cxht6b.js";
|
|
4
4
|
import { n as r } from "./index-BGK3DZ1i.js";
|
|
5
|
-
import { l as m } from "./loader-
|
|
5
|
+
import { l as m } from "./loader-DCx7K2yt.js";
|
|
6
6
|
const s = {
|
|
7
7
|
actions: o,
|
|
8
8
|
hero: t,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../source/web-components/accordion/item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAA8C,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"item.d.ts","sourceRoot":"","sources":["../../../source/web-components/accordion/item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAA8C,MAAM,cAAc,CAAC;AAgHjG,eAAO,MAAM,aAAa,EAAE,qBAKR,CAAC;AAGrB,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiple.d.ts","sourceRoot":"","sources":["../../../../source/web-components/carousel/image/multiple.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"multiple.d.ts","sourceRoot":"","sources":["../../../../source/web-components/carousel/image/multiple.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AAkFzB,eAAO,MAAM,qBAAqB,EAAE,qBAKhB,CAAC;AAGrB,OAAO,EAAE,qBAAqB,IAAI,aAAa,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../../source/web-components/carousel/image/single.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"single.d.ts","sourceRoot":"","sources":["../../../../source/web-components/carousel/image/single.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AAyGzB,eAAO,MAAM,mBAAmB,EAAE,qBAKd,CAAC;AAGrB,OAAO,EAAE,mBAAmB,IAAI,WAAW,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../source/web-components/layout/modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,qBAAqB,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../source/web-components/layout/modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,qBAAqB,EAAe,MAAM,cAAc,CAAC;AA6H3F,eAAO,MAAM,WAAW,EAAE,qBAIN,CAAC;AAGrB,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-top.d.ts","sourceRoot":"","sources":["../../../source/web-components/layout/scroll-top.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,qBAAqB,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"scroll-top.d.ts","sourceRoot":"","sources":["../../../source/web-components/layout/scroll-top.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,qBAAqB,EAAe,MAAM,cAAc,CAAC;AAuD3F,eAAO,MAAM,eAAe,EAAE,qBAIV,CAAC;AAGrB,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@universityofmaryland/web-components-library",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.19.0",
|
|
4
4
|
"description": "UMD Web Components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
"postcss-js": "^4.0.1",
|
|
55
55
|
"postcss-nesting": "^13.0.1",
|
|
56
56
|
"tw-to-css": "^0.0.12",
|
|
57
|
-
"@universityofmaryland/web-
|
|
57
|
+
"@universityofmaryland/web-builder-library": "^1.0.4",
|
|
58
|
+
"@universityofmaryland/web-elements-library": "^1.7.0",
|
|
58
59
|
"@universityofmaryland/web-icons-library": "^1.0.4",
|
|
59
|
-
"@universityofmaryland/web-
|
|
60
|
-
"@universityofmaryland/web-
|
|
61
|
-
"@universityofmaryland/web-
|
|
62
|
-
"@universityofmaryland/web-utilities-library": "^1.0.
|
|
63
|
-
"@universityofmaryland/web-
|
|
64
|
-
"@universityofmaryland/web-styles-library": "^1.8.13"
|
|
60
|
+
"@universityofmaryland/web-model-library": "^1.1.2",
|
|
61
|
+
"@universityofmaryland/web-feeds-library": "^1.3.10",
|
|
62
|
+
"@universityofmaryland/web-token-library": "^1.0.3",
|
|
63
|
+
"@universityofmaryland/web-utilities-library": "^1.0.6",
|
|
64
|
+
"@universityofmaryland/web-styles-library": "^1.8.14"
|
|
65
65
|
},
|
|
66
66
|
"peerDependencies": {
|
|
67
67
|
"@universityofmaryland/web-builder-library": "^1.0.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-C8YoHmAp.js","sources":["../source/web-components/carousel/base.ts","../source/web-components/carousel/cards.ts","../source/web-components/carousel/image/single.ts","../source/web-components/carousel/image/multiple.ts","../source/web-components/carousel/thumbnail.ts","../source/web-components/carousel/wide.ts"],"sourcesContent":["import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\n// Tag name for the base carousel component\nconst tagName = 'umd-element-carousel';\n\n// Slot configuration for the base carousel component\nconst slots: SlotConfiguration = {\n blocks: {\n required: true,\n },\n};\n\n// Attribute handlers for the base carousel component\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a base carousel component\n * @param element - The host HTML element\n * @returns Configured carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const isThemeDark = Attributes.isTheme.dark({\n element,\n });\n const attributeLeftButton = element.getAttribute('left-button');\n const attributeRightButton = element.getAttribute('right-button');\n const attributeMobileHint = element.getAttribute('mobile-hint');\n const attributeHint = element.getAttribute('hint');\n const tabletSize = element.getAttribute('tablet-size');\n const desktopSize = element.getAttribute('desktop-size');\n const tabletCount = element.getAttribute('tablet-count');\n const desktopCount = element.getAttribute('desktop-count');\n const maxCount = element.getAttribute('max-count');\n const gridGap = element.getAttribute('grid-gap-pixels');\n const slide = element.querySelector(\n `[slot=\"${Slots.name.BLOCKS}\"]`,\n ) as HTMLElement;\n const blocks = Array.from(\n slide.querySelectorAll(':scope > *'),\n ) as HTMLElement[];\n let hasLeftButton = true;\n let hasRightButton = true;\n let mobileHint = true;\n let hint = true;\n\n if (attributeLeftButton === 'false') hasLeftButton = false;\n if (attributeRightButton === 'false') hasRightButton = false;\n if (attributeMobileHint === 'false') mobileHint = false;\n if (attributeHint === 'false') hint = false;\n\n const createCardShadowRef = () => {\n const slot = createSlot(Slots.name.BLOCKS);\n shadow.appendChild(slot);\n };\n\n createCardShadowRef();\n\n const shadowRef = shadow.querySelector(\n `[name=\"${Slots.name.BLOCKS}\"]`,\n ) as HTMLElement;\n\n return carousel.macro({\n slide,\n shadowRef,\n blocks,\n isThemeDark,\n hasLeftButton,\n hasRightButton,\n mobileHint,\n hint,\n tabletSize: tabletSize ? parseInt(tabletSize) : undefined,\n desktopSize: desktopSize ? parseInt(desktopSize) : undefined,\n tabletCount: tabletCount ? parseInt(tabletCount) : undefined,\n desktopCount: desktopCount ? parseInt(desktopCount) : undefined,\n maxCount: maxCount ? parseInt(maxCount) : undefined,\n gridGap,\n });\n};\n\n/**\n * Base Carousel\n *\n * A versatile carousel component for displaying scrollable content blocks with navigation controls.\n *\n * ## Custom Element\n * `<umd-element-carousel>`\n *\n * ## Slots\n * - `blocks` - Container for carousel items (required, accepts: any element)\n *\n * ## Attributes\n * - `left-button` - Left navigation button visibility:\n * - `true` - Show left navigation button (default)\n * - `false` - Hide left navigation button\n * - `right-button` - Right navigation button visibility:\n * - `true` - Show right navigation button (default)\n * - `false` - Hide right navigation button\n * - `mobile-hint` - Mobile swipe hint visibility:\n * - `true` - Show mobile swipe hint (default)\n * - `false` - Hide mobile swipe hint\n * - `hint` - Navigation hint visibility:\n * - `true` - Show navigation hint (default)\n * - `false` - Hide navigation hint\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `tablet-size` - Number of visible items on tablet\n * - `desktop-size` - Number of visible items on desktop\n * - `tablet-count` - Total item count for tablet view\n * - `desktop-count` - Total item count for desktop view\n * - `max-count` - Maximum number of items to display\n * - `grid-gap-pixels` - Gap between items in pixels\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel>\n * <div slot=\"blocks\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * <div>Item 3</div>\n * </div>\n * </umd-element-carousel>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselBase: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselBase as base };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-cards';\n\nconst slots: SlotConfiguration = {\n cards: {\n required: true,\n },\n headline: Slots.element.allowed.headline,\n text: Slots.element.allowed.text,\n actions: Slots.element.allowed.actions,\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a cards carousel component\n * @param element - The host HTML element\n * @returns Configured cards carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const shadow = element.shadowRoot as ShadowRoot;\n const slide = element.querySelector(\n `[slot=\"${Slots.name.CARDS}\"]`,\n ) as HTMLElement;\n const cards = Array.from(\n slide.querySelectorAll(':scope > *'),\n ) as HTMLElement[];\n\n const createCardShadowRef = () => {\n const slot = createSlot(Slots.name.CARDS);\n shadow.appendChild(slot);\n };\n\n createCardShadowRef();\n\n const shadowRef = shadow.querySelector(\n `[name=\"${Slots.name.CARDS}\"]`,\n ) as HTMLElement;\n\n return carousel.cards({\n slide,\n shadowRef,\n cards,\n headline: Slots.headline.default({ element }),\n text: Slots.text.default({ element }),\n actions: Slots.actions.default({ element }),\n });\n};\n\n/**\n * Cards Carousel\n *\n * A carousel component specifically designed for displaying card components.\n *\n * ## Custom Element\n * `<umd-element-carousel-cards>`\n *\n * ## Slots\n * - `cards` - Container for card components (required, accepts: card elements)\n * - `headline` - Carousel headline (optional, accepts: heading elements)\n * - `text` - Carousel description (optional, accepts: text elements)\n * - `actions` - Carousel action buttons/links (optional, accepts: links or buttons)\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-cards>\n * <div slot=\"cards\">\n * <umd-element-card>\n * <h3 slot=\"headline\">Card 1</h3>\n * <p slot=\"text\">Card content</p>\n * </umd-element-card>\n * <umd-element-card>\n * <h3 slot=\"headline\">Card 2</h3>\n * <p slot=\"text\">Card content</p>\n * </umd-element-card>\n * </div>\n * </umd-element-carousel-cards>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselCards: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselCards as cards };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-carousel-image';\n\nconst slots: SlotConfiguration = {\n images: {\n required: true,\n allowedElements: ['img', 'div'],\n },\n headlines: {\n allowedElements: ['div'],\n },\n texts: {\n allowedElements: ['div'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.SetEventReize(),\n);\n\n/**\n * Creates a single image carousel component\n * @param element - The host HTML element\n * @returns Configured single image carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedImages = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.IMAGES}\"] > *`),\n ) as HTMLImageElement[];\n const slottedHeadlines = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.HEADLINES}\"] > *`),\n );\n const slottedTexts = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.TEXTS}\"] > *`),\n );\n\n const headlines = slottedHeadlines.map((headline) =>\n headline.cloneNode(true),\n ) as HTMLElement[];\n\n const texts = slottedTexts.map((text) =>\n text.cloneNode(true),\n ) as HTMLElement[];\n\n const images = slottedImages\n .map((image) => {\n if (image.nodeName === 'IMG') {\n if (imageHasAlt(image)) return image.cloneNode(true);\n }\n return null;\n })\n .filter((image) => image !== null) as HTMLImageElement[];\n\n return carousel.image({\n images,\n headlines,\n texts,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isFullScreenOption: Attributes.includesFeature.fullScreenOption({\n element,\n }),\n });\n};\n\n/**\n * Single Image Carousel\n *\n * A carousel component for displaying images with optional captions and headlines.\n *\n * ## Custom Element\n * `<umd-element-carousel-image>`\n *\n * ## Slots\n * - `images` - Container for images (required, accepts: img elements with alt text)\n * - `headlines` - Container for image headlines (optional, accepts: heading elements)\n * - `texts` - Container for image descriptions (optional, accepts: text elements)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `data-feature` - Additional features:\n * - `fullscreen` - Enable fullscreen viewing option\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-image>\n * <div slot=\"images\">\n * <img src=\"photo1.jpg\" alt=\"Campus view\">\n * <img src=\"photo2.jpg\" alt=\"Student center\">\n * <img src=\"photo3.jpg\" alt=\"Library entrance\">\n * </div>\n * </umd-element-carousel-image>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselImageSingle: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselImageSingle as imageSingle };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-carousel-multiple-image';\n\nconst slots: SlotConfiguration = {\n images: {\n required: true,\n allowedElements: ['div', 'img'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.SetEventReize(),\n);\n\n/**\n * Creates a multiple image carousel component\n * @param element - The host HTML element\n * @returns Configured multiple image carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedImages = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.IMAGES}\"] > *`),\n ) as HTMLImageElement[];\n\n const images = slottedImages\n .map((image) => {\n if (image.nodeName === 'IMG') {\n if (imageHasAlt(image)) return image.cloneNode(true);\n }\n return null;\n })\n .filter((image) => image !== null) as HTMLImageElement[];\n\n return carousel.images({\n images,\n isThemeDark: Attributes.isTheme.dark({ element }),\n isFullScreenOption: Attributes.includesFeature.fullScreenOption({\n element,\n }),\n });\n};\n\n/**\n * Multiple Image Carousel\n *\n * A carousel component for displaying multiple images in a gallery format.\n *\n * ## Custom Element\n * `<umd-element-carousel-multiple-image>`\n *\n * ## Slots\n * - `images` - Container for images (required, accepts: img elements with alt text)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `data-feature` - Additional features:\n * - `fullscreen` - Enable fullscreen viewing option\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-multiple-image>\n * <div slot=\"images\">\n * <img src=\"gallery1.jpg\" alt=\"Gallery image 1\">\n * <img src=\"gallery2.jpg\" alt=\"Gallery image 2\">\n * <img src=\"gallery3.jpg\" alt=\"Gallery image 3\">\n * <img src=\"gallery4.jpg\" alt=\"Gallery image 4\">\n * </div>\n * </umd-element-carousel-multiple-image>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselImageMultiple: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselImageMultiple as imageMultiple };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Lifecycle, Model, Slots } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-thumbnail';\n\nconst slots: SlotConfiguration = {\n blocks: {\n required: true,\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a thumbnail carousel component\n * @param element - The host HTML element\n * @returns Configured thumbnail carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const slottedBlocks = Array.from(\n element.querySelectorAll(`[slot=\"${Slots.name.BLOCKS}\"] > *`),\n ) as HTMLElement[];\n\n const blocks = slottedBlocks.map((block) =>\n block.cloneNode(true),\n ) as HTMLElement[];\n\n return carousel.thumbnail({\n blocks,\n isThemeDark: Attributes.isTheme.dark({ element }),\n });\n};\n\n/**\n * Thumbnail Carousel\n *\n * A carousel component with thumbnail navigation for browsing through content.\n *\n * ## Custom Element\n * `<umd-element-carousel-thumbnail>`\n *\n * ## Slots\n * - `blocks` - Container for carousel items with thumbnails (required, accepts: elements with data-thumbnail attribute)\n *\n * ## Attributes\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-thumbnail>\n * <div slot=\"blocks\">\n * <div data-thumbnail=\"thumb1.jpg\">\n * <img src=\"image1.jpg\" alt=\"Image 1\">\n * <p>Caption for image 1</p>\n * </div>\n * <div data-thumbnail=\"thumb2.jpg\">\n * <img src=\"image2.jpg\" alt=\"Image 2\">\n * <p>Caption for image 2</p>\n * </div>\n * </div>\n * </umd-element-carousel-thumbnail>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const CarouselThumbnail: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselThumbnail as thumbnail };\n","import { carousel } from '@universityofmaryland/web-elements-library/composite';\nimport { imageHasAlt } from '@universityofmaryland/web-utilities-library/accessibility';\nimport { Attributes, Lifecycle, Model } from '@universityofmaryland/web-model-library';\nimport type {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-carousel-image-wide';\n\nconst slots: SlotConfiguration = {\n slides: {\n required: true,\n allowedElements: ['figure', 'div'],\n },\n};\n\nconst attributes = Attributes.handler.common.resize((element) =>\n element.events?.resize(),\n);\n\n/**\n * Creates a wide carousel component\n * @param element - The host HTML element\n * @returns Configured wide carousel component\n * @internal\n */\nconst createComponent: CreateComponentFunction = (element) => {\n const title = element.getAttribute('title');\n const animationTime = element.getAttribute('animation-time');\n const mobileBreakpoint = element.getAttribute('mobile-breakpoint');\n\n const slottedSlides = Array.from(\n element.querySelectorAll(`[slot=\"slides\"] > *`),\n ) as HTMLElement[];\n\n const slides = slottedSlides\n .map((slide) => {\n const image = slide.querySelector('img');\n const headline = slide.querySelector('[data-headline]');\n const text = slide.querySelector('[data-text]');\n\n if (image && !imageHasAlt(image)) {\n console.warn('Carousel slide image missing alt text:', image);\n return null;\n }\n\n return {\n image: image ? (image.cloneNode(true) as HTMLImageElement) : null,\n headline: headline\n ? (headline.cloneNode(true) as HTMLElement)\n : undefined,\n text: text ? (text.cloneNode(true) as HTMLElement) : undefined,\n };\n })\n .filter((slide) => slide && slide.image) as Array<{\n image: HTMLImageElement;\n headline?: HTMLElement;\n text?: HTMLElement;\n }>;\n\n return carousel.wide({\n slides,\n title: title || undefined,\n isThemeDark: Attributes.isTheme.dark({ element }),\n animationTime: animationTime ? parseInt(animationTime) : undefined,\n mobileBreakpoint: mobileBreakpoint ? parseInt(mobileBreakpoint) : undefined,\n });\n};\n\n/**\n * Wide Carousel\n *\n * A full-width carousel component with slide previews, optimized for showcasing\n * featured content with optional text overlays.\n *\n * ## Custom Element\n * `<umd-element-carousel-wide>`\n *\n * ## Slots\n * - `slides` - Container for carousel slides (required, accepts: figure or div elements)\n * - Each slide should contain:\n * - An `img` element with alt text (required)\n * - An element with `data-headline` attribute for headlines (optional)\n * - An element with `data-text` attribute for descriptions (optional)\n *\n * ## Attributes\n * - `title` - Accessible title for the carousel (default: \"Animated Image Carousel\")\n * - `data-theme` - Visual theme:\n * - `light` - Light theme (default)\n * - `dark` - Dark theme\n * - `animation-time` - Animation duration in milliseconds (default: 500)\n * - `mobile-breakpoint` - Breakpoint for mobile behavior in pixels (default: 650)\n *\n * ## Observed Attributes\n * - `resize` - Triggers carousel size recalculation\n *\n * @example\n * ```html\n * <umd-element-carousel-wide title=\"Featured Stories\">\n * <div slot=\"slides\">\n * <figure>\n * <img src=\"hero1.jpg\" alt=\"Research breakthrough\">\n * <div data-headline>\n * <h2>Major Research Discovery</h2>\n * </div>\n * <div data-text>\n * <p>Scientists make groundbreaking discovery in quantum computing.</p>\n * </div>\n * </figure>\n * <figure>\n * <img src=\"hero2.jpg\" alt=\"Campus expansion\">\n * <div data-headline>\n * <h2>New Science Center Opens</h2>\n * </div>\n * <div data-text>\n * <p>State-of-the-art facility enhances research capabilities.</p>\n * </div>\n * </figure>\n * </div>\n * </umd-element-carousel-wide>\n * ```\n *\n * @category Components\n * @since 1.13.0\n */\nexport const CarouselWide: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes: [attributes],\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { CarouselWide as wide };\n"],"names":["tagName","slots","attributes","Attributes","element","createComponent","shadow","isThemeDark","attributeLeftButton","attributeRightButton","attributeMobileHint","attributeHint","tabletSize","desktopSize","tabletCount","desktopCount","maxCount","gridGap","slide","Slots","blocks","hasLeftButton","hasRightButton","mobileHint","hint","slot","createSlot","shadowRef","carousel","CarouselBase","Model","Lifecycle","cards","CarouselCards","slottedImages","slottedHeadlines","slottedTexts","headlines","headline","texts","text","images","image","imageHasAlt","CarouselImageSingle","CarouselImageMultiple","block","CarouselThumbnail","title","animationTime","mobileBreakpoint","slides","CarouselWide"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-CjOuk67A.js","sources":["../source/web-components/layout/box-logo.ts","../source/web-components/layout/image-expand.ts","../source/web-components/layout/modal.ts","../source/web-components/layout/scroll-top.ts","../source/web-components/layout/section-intro/common.ts","../source/web-components/layout/section-intro/small.ts","../source/web-components/layout/section-intro/wide.ts","../source/web-components/layout/sticky-columns.ts"],"sourcesContent":["import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport * as validation from '@universityofmaryland/web-utilities-library/validation';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-logo';\n\nconst slots: SlotConfiguration = {\n image: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) =>\n layout.box.logo({\n image: validation.getValidatedSlotImage({\n element,\n slotName: Slots.name.assets.image,\n }) as HTMLImageElement,\n text: Slots.text.default({ element }),\n isThemeDark: Attributes.isTheme.dark({ element }),\n isBordered: Attributes.isVisual.bordered({ element }),\n });\n\n/**\n * Box Logo\n *\n * A layout component that displays a logo image with optional text content in a boxed layout.\n * Commonly used for brand identity sections, partner logos, or featured organization displays.\n *\n * ## Custom Element\n * `<umd-element-logo>`\n *\n * ## Slots\n * - `image` - Logo image (required, accepts: img)\n * - Default slot - Optional text content to display alongside the logo\n *\n * ## Attributes\n * - `data-theme` - Theme options:\n * - `dark` - Dark background with light text\n * - `data-visual` - Visual styling options:\n * - `bordered` - Adds a border around the component\n *\n * @example\n * ```html\n * <!-- Basic logo display -->\n * <umd-element-logo>\n * <img slot=\"image\" src=\"logo.png\" alt=\"Company Logo\" />\n * </umd-element-logo>\n * ```\n *\n * @example\n * ```html\n * <!-- Logo with text and dark theme -->\n * <umd-element-logo data-theme=\"dark\">\n * <img slot=\"image\" src=\"partner-logo.png\" alt=\"Partner Logo\" />\n * <p>Official University Partner</p>\n * </umd-element-logo>\n * ```\n *\n * @example\n * ```html\n * <!-- Bordered logo box -->\n * <umd-element-logo data-visual=\"bordered\">\n * <img slot=\"image\" src=\"sponsor.png\" alt=\"Sponsor Logo\" />\n * <span>Gold Sponsor</span>\n * </umd-element-logo>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutBoxLogo: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutBoxLogo as boxLogo };\n","import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport * as validation from '@universityofmaryland/web-utilities-library/validation';\nimport { Model, Slots } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-layout-image-expand';\n\nconst slots: SlotConfiguration = {\n content: {\n required: true,\n },\n image: {\n required: true,\n },\n};\n\nconst createComponent: CreateComponentFunction = (element) =>\n layout.image.expand({\n content: createSlot('content'),\n image: validation.getValidatedSlotImage({\n element,\n slotName: Slots.name.assets.image,\n }) as HTMLImageElement,\n });\n\n/**\n * Image Expand Layout\n *\n * A layout component that presents content alongside an expandable image. The image can extend\n * beyond the normal content boundaries to create visual impact. Ideal for showcasing featured\n * content, hero sections, or highlighting important information with striking visuals.\n *\n * ## Custom Element\n * `<umd-layout-image-expand>`\n *\n * ## Slots\n * - `content` - Main content area (required, accepts: any elements)\n * - `image` - Featured image that can expand (required, accepts: img)\n *\n * @example\n * ```html\n * <!-- Basic image expand layout -->\n * <umd-layout-image-expand>\n * <div slot=\"content\">\n * <h2>Featured Research</h2>\n * <p>Breakthrough discoveries in quantum computing...</p>\n * </div>\n * <img slot=\"image\" src=\"research-lab.jpg\" alt=\"Quantum Lab\" />\n * </umd-layout-image-expand>\n * ```\n *\n * @example\n * ```html\n * <!-- With rich content -->\n * <umd-layout-image-expand>\n * <article slot=\"content\">\n * <h1>Campus Innovation Hub</h1>\n * <p>The new Innovation Hub brings together students, faculty, and industry partners...</p>\n * <a href=\"/innovation\">Learn More</a>\n * </article>\n * <img slot=\"image\" src=\"innovation-hub.jpg\" alt=\"Innovation Hub Interior\" />\n * </umd-layout-image-expand>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutImageExpand: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutImageExpand as imageExpand };\n","import { layout } from '@universityofmaryland/web-elements-library/atomic';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration, LayoutProps } from '../../_types';\n\ninterface ModalProps extends LayoutProps {\n content: HTMLElement | null;\n context: HTMLElement;\n callback: () => void;\n}\n\nconst tagName = 'umd-element-modal';\n\nconst createComponent: CreateComponentFunction = (element) => {\n const callback = () => {\n element.setAttribute(\n Attributes.names.layout.hidden,\n Attributes.values.state.TRUE,\n );\n };\n\n const props: ModalProps = {\n content: Slots.content.default({ element, isDefaultStyling: false }),\n isHidden: Attributes.isLayout.hidden({ element }),\n context: element,\n callback,\n };\n\n return layout.overlay.modal(props);\n};\n\nconst attributes = Attributes.handler.common.visualShowHide({\n onShow: (element) => element.events?.show(),\n onHide: (element) => element.events?.hide(),\n});\n\n/**\n * Modal\n *\n * A modal overlay component that displays content in a focused dialog window.\n * Includes backdrop, close functionality, and proper focus management for accessibility.\n * The modal can be controlled programmatically through observed attributes.\n *\n * ## Custom Element\n * `<umd-element-modal>`\n *\n * ## Slots\n * - Default slot - Content to display inside the modal\n *\n * ## Attributes\n * - `data-layout-hidden` - Initial visibility state:\n * - `true` - Modal starts hidden\n * - Absence implies visible\n *\n * ## Observed Attributes\n * - `data-visual-open` - Shows the modal when set to \"true\"\n * - `data-visual-closed` - Hides the modal when set to \"true\"\n *\n * @example\n * ```html\n * <!-- Basic modal -->\n * <umd-element-modal data-layout-hidden=\"true\">\n * <h2>Welcome</h2>\n * <p>This is modal content.</p>\n * <button>Close</button>\n * </umd-element-modal>\n * ```\n *\n * @example\n * ```html\n * <!-- Programmatic control -->\n * <button id=\"open-modal\">Open Modal</button>\n * <umd-element-modal id=\"my-modal\" data-layout-hidden=\"true\">\n * <div class=\"modal-content\">\n * <h2>Important Information</h2>\n * <p>Please read this carefully...</p>\n * <button id=\"close-modal\">I Understand</button>\n * </div>\n * </umd-element-modal>\n *\n * <script>\n * const modal = document.getElementById('my-modal');\n * document.getElementById('open-modal').addEventListener('click', () => {\n * modal.setAttribute('data-visual-open', 'true');\n * });\n * document.getElementById('close-modal').addEventListener('click', () => {\n * modal.setAttribute('data-visual-closed', 'true');\n * });\n * </script>\n * ```\n *\n * @example\n * ```html\n * <!-- Form modal -->\n * <umd-element-modal data-layout-hidden=\"true\">\n * <form>\n * <h2>Contact Us</h2>\n * <label>\n * Name:\n * <input type=\"text\" name=\"name\" required>\n * </label>\n * <label>\n * Email:\n * <input type=\"email\" name=\"email\" required>\n * </label>\n * <textarea name=\"message\" placeholder=\"Your message\"></textarea>\n * <button type=\"submit\">Send</button>\n * </form>\n * </umd-element-modal>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutModal: ComponentRegistration = Model.defineComponent({\n tagName,\n attributes,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutModal as modal };\n","import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Lifecycle, Model } from '@universityofmaryland/web-model-library';\nimport { CreateComponentFunction, ComponentRegistration, LayoutProps } from '../../_types';\n\ninterface ScrollTopProps extends Pick<LayoutProps, 'isFixed'> {}\n\nconst tagName = 'umd-element-scroll-top';\n\nconst createComponent: CreateComponentFunction = (element) => {\n const props: ScrollTopProps = {\n isFixed: element.hasAttribute(\n Attributes.names.deprecated.layout.LAYOUT_FIXED,\n ),\n };\n\n return layout.scrollTop(props);\n};\n\n/**\n * Scroll to Top\n *\n * A utility component that provides a smooth scroll-to-top functionality.\n * Displays a button that appears after scrolling down and returns users to the top of the page.\n * Can be positioned fixed or absolute within its container.\n *\n * ## Custom Element\n * `<umd-element-scroll-top>`\n *\n * ## Attributes\n * - `data-layout-fixed` - Positioning mode:\n * - When present - Fixed positioning relative to viewport\n * - When absent - Absolute positioning within parent container\n *\n * @example\n * ```html\n * <!-- Basic scroll to top button -->\n * <umd-element-scroll-top></umd-element-scroll-top>\n * ```\n *\n * @example\n * ```html\n * <!-- Fixed position scroll to top -->\n * <umd-element-scroll-top data-layout-fixed></umd-element-scroll-top>\n * ```\n *\n * @example\n * ```html\n * <!-- Within a specific container -->\n * <div class=\"content-wrapper\" style=\"position: relative;\">\n * <article>\n * <!-- Long content here -->\n * </article>\n * <umd-element-scroll-top></umd-element-scroll-top>\n * </div>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutScrollTop: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n afterConnect: Lifecycle.hooks.loadOnConnect,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutScrollTop as scrollTop };\n","import { Slots } from '@universityofmaryland/web-model-library';\n\nexport const CommonIntroData = ({\n element,\n isThemeDark,\n}: {\n element: HTMLElement;\n isThemeDark?: boolean;\n}) => ({\n headline: Slots.headline.default({ element }),\n actions: Slots.actions.default({ element }),\n isThemeDark,\n});\n","import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport {\n Attributes,\n Lifecycle,\n Model,\n Slots,\n} from '@universityofmaryland/web-model-library';\nimport { CommonIntroData } from './common';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-section-intro';\n\nconst createComponent: CreateComponentFunction = (element) =>\n layout.sectionIntro.small({\n ...CommonIntroData({\n element,\n isThemeDark: Attributes.isTheme.dark({ element }),\n }),\n text: Slots.text.default({ element }),\n hasSeparator: element.hasAttribute(\n Attributes.names.deprecated.option.OPTIONAL_HAS_SEPARATOR,\n ),\n });\n\n/**\n * Section Introduction (Small)\n *\n * A compact section introduction component that provides a headline, descriptive text,\n * and optional action buttons. Designed for introducing content sections with minimal\n * space usage.\n *\n * ## Custom Element\n * `<umd-element-section-intro>`\n *\n * ## Slots\n * - `headline` - Section headline/title\n * - `actions` - Call-to-action buttons or links\n * - Default slot - Descriptive text content\n *\n * ## Attributes\n * - `data-theme` - Theme options:\n * - `dark` - Dark background with light text\n * - `data-has-separator` - Adds visual separator line\n *\n * @example\n * ```html\n * <!-- Basic section intro -->\n * <umd-element-section-intro>\n * <h2 slot=\"headline\">Our Mission</h2>\n * <p>We are committed to excellence in education and research.</p>\n * </umd-element-section-intro>\n * ```\n *\n * @example\n * ```html\n * <!-- With actions and separator -->\n * <umd-element-section-intro data-has-separator>\n * <h2 slot=\"headline\">Get Started</h2>\n * <p>Join our community of innovators and leaders.</p>\n * <div slot=\"actions\">\n * <a href=\"/apply\">Apply Now</a>\n * <a href=\"/info\">Learn More</a>\n * </div>\n * </umd-element-section-intro>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutSectionIntroSmall: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutSectionIntroSmall as sectionIntroSmall };\n","import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Model } from '@universityofmaryland/web-model-library';\nimport { CommonIntroData } from './common';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n} from '../../../_types';\n\nconst tagName = 'umd-element-section-intro-wide';\n\nconst createComponent: CreateComponentFunction = (element) =>\n layout.sectionIntro.wide(\n CommonIntroData({\n element,\n isThemeDark: Attributes.isTheme.dark({ element }),\n }),\n );\n\n/**\n * Section Introduction (Wide)\n *\n * A full-width section introduction component that spans the entire container width.\n * Provides a bold headline and optional action buttons for high-impact section openings.\n * Ideal for major content divisions or landing page sections.\n *\n * ## Custom Element\n * `<umd-element-section-intro-wide>`\n *\n * ## Slots\n * - `headline` - Section headline/title\n * - `actions` - Call-to-action buttons or links\n *\n * ## Attributes\n * - `data-theme` - Theme options:\n * - `dark` - Dark background with light text\n *\n * @example\n * ```html\n * <!-- Basic wide section intro -->\n * <umd-element-section-intro-wide>\n * <h1 slot=\"headline\">Welcome to the University of Maryland</h1>\n * </umd-element-section-intro-wide>\n * ```\n *\n * @example\n * ```html\n * <!-- With call-to-action -->\n * <umd-element-section-intro-wide>\n * <h2 slot=\"headline\">Discover Your Path</h2>\n * <div slot=\"actions\">\n * <a href=\"/programs\" class=\"button\">Explore Programs</a>\n * <a href=\"/visit\" class=\"button-outline\">Plan a Visit</a>\n * </div>\n * </umd-element-section-intro-wide>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme variant -->\n * <umd-element-section-intro-wide data-theme=\"dark\">\n * <h1 slot=\"headline\">Innovation Starts Here</h1>\n * <a slot=\"actions\" href=\"/innovation\">Join the Movement</a>\n * </umd-element-section-intro-wide>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutSectionIntroWide: ComponentRegistration = Model.defineComponent({\n tagName,\n createComponent,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutSectionIntroWide as sectionIntroWide };\n","import { layout } from '@universityofmaryland/web-elements-library/composite';\nimport { createSlot } from '@universityofmaryland/web-utilities-library/elements';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport {\n CreateComponentFunction,\n ComponentRegistration,\n SlotConfiguration,\n} from '../../_types';\n\nconst tagName = 'umd-element-sticky-columns';\n\nconst slots: SlotConfiguration = {\n [`sticky-column`]: {\n required: true,\n },\n [`static-column`]: {\n required: true,\n },\n};\n\nconst attributes = Attributes.handler.combine(\n Attributes.handler.observe.visuallyPosition({\n callback: (element, topPosition) =>\n element.events?.setPosition({ value: topPosition }),\n }),\n // Deprecated\n Attributes.handler.observe.visuallyPosition({\n name: Attributes.names.deprecated.layout.LAYOUT_STICKY_TOP,\n callback: (element, topPosition) =>\n element.events?.setPosition({ value: topPosition }),\n }),\n);\n\nconst createComponent: CreateComponentFunction = (element) =>\n layout.stickyColumns({\n stickyColumn: createSlot(Slots.name.STICKY_COLUMN),\n staticColumn: createSlot(Slots.name.STATIC_COLUMN),\n isStickyLast: !Attributes.isVisual.stickyFirst({ element }),\n topPosition: Attributes.getValue.topPosition({ element }),\n });\n\n/**\n * Sticky Columns\n *\n * A two-column layout component where one column remains sticky during scroll while\n * the other scrolls normally. Useful for keeping navigation, table of contents, or\n * supplementary information visible while scrolling through main content.\n *\n * ## Custom Element\n * `<umd-element-sticky-columns>`\n *\n * ## Slots\n * - `sticky-column` - Content that remains fixed during scroll (required)\n * - `static-column` - Content that scrolls normally (required)\n *\n * ## Attributes\n * - `data-visual` - Column order options:\n * - `sticky-first` - Sticky column appears first (left on desktop)\n *\n * ## Observed Attributes\n * - `data-visual-position` - Sets the top position offset for the sticky column (in pixels)\n *\n * @example\n * ```html\n * <!-- Basic sticky columns with navigation -->\n * <umd-element-sticky-columns>\n * <nav slot=\"sticky-column\">\n * <ul>\n * <li><a href=\"#section1\">Section 1</a></li>\n * <li><a href=\"#section2\">Section 2</a></li>\n * <li><a href=\"#section3\">Section 3</a></li>\n * </ul>\n * </nav>\n * <article slot=\"static-column\">\n * <section id=\"section1\">...</section>\n * <section id=\"section2\">...</section>\n * <section id=\"section3\">...</section>\n * </article>\n * </umd-element-sticky-columns>\n * ```\n *\n * @example\n * ```html\n * <!-- Sticky column first with custom offset -->\n * <umd-element-sticky-columns data-visual=\"sticky-first\" data-visual-position=\"100\">\n * <aside slot=\"sticky-column\">\n * <h3>Quick Facts</h3>\n * <ul>\n * <li>Founded: 1856</li>\n * <li>Students: 40,000+</li>\n * <li>Location: College Park, MD</li>\n * </ul>\n * </aside>\n * <main slot=\"static-column\">\n * <h1>About the University</h1>\n * <p>Long content about the university...</p>\n * </main>\n * </umd-element-sticky-columns>\n * ```\n *\n * @example\n * ```html\n * <!-- Dynamic sticky position adjustment -->\n * <umd-element-sticky-columns id=\"sticky-layout\">\n * <div slot=\"sticky-column\">Sticky content</div>\n * <div slot=\"static-column\">Scrollable content</div>\n * </umd-element-sticky-columns>\n *\n * <script>\n * // Adjust sticky position based on header height\n * const stickyLayout = document.getElementById('sticky-layout');\n * const headerHeight = document.querySelector('header').offsetHeight;\n * stickyLayout.setAttribute('data-visual-position', headerHeight + 20);\n * </script>\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const LayoutStickyColumns: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { LayoutStickyColumns as stickyColumns };\n"],"names":["tagName","slots","createComponent","element","layout","validation","Slots","Attributes","LayoutBoxLogo","Model","createSlot","LayoutImageExpand","callback","props","attributes","LayoutModal","LayoutScrollTop","Lifecycle","CommonIntroData","isThemeDark","LayoutSectionIntroSmall","LayoutSectionIntroWide","topPosition","LayoutStickyColumns"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DfPIaBDn.js","sources":["../source/web-components/accordion/item.ts"],"sourcesContent":["import { accordion } from '@universityofmaryland/web-elements-library/composite';\nimport { Attributes, Model, Slots } from '@universityofmaryland/web-model-library';\nimport { ComponentRegistration, CreateComponentFunction, SlotConfiguration } from '../../_types';\n\nconst tagName = 'umd-element-accordion-item';\n\nconst createComponent: CreateComponentFunction = (element) =>\n accordion.item({\n text:\n Slots.deprecated.body({ element, isDefaultStyling: false }) ||\n Slots.text.default({ element, isDefaultStyling: false }),\n headline: Slots.headline.default({ element }),\n isThemeLight: Attributes.isTheme.light({\n element,\n }),\n isThemeDark: Attributes.isTheme.dark({\n element,\n }),\n isStateOpen: Attributes.isVisual.open({\n element,\n }),\n });\n\nconst slots: SlotConfiguration = {\n headline: {\n ...Slots.element.allowed.headline,\n required: true,\n },\n body: Slots.element.allowed.body,\n text: {\n ...Slots.element.allowed.text,\n required: true,\n },\n};\n\nconst attributes = Attributes.handler.common.accordion();\n\n/**\n * Accordion Item\n *\n * Creates an expandable/collapsible content container with smooth animations and theme variations.\n *\n * ## Custom Element\n * `<umd-element-accordion-item>`\n *\n * ## Slots\n * - `headline` - The clickable header (required, accepts: span, p)\n * - `text` - The expandable content (required, accepts: div, p)\n * - `body` - Deprecated: Use `text` slot instead\n *\n * ## Attributes\n * - `data-theme` - Color theme options:\n * - `light` - Light theme styling\n * - `dark` - Dark theme styling\n * - `data-visual-open` - Initial visual state:\n * - `true` - Opens accordion on load\n * - `false` - Closes accordion on load\n *\n * ## Observed Attributes\n * - `data-visual-open` - When changed to \"true\", opens accordion with animation; when changed to \"false\", closes with animation\n * - `resize` - When set to \"true\", re-evaluates accordion height without animation\n *\n * @example\n * ```html\n * <umd-element-accordion-item>\n * <p slot=\"headline\">Click to expand</p>\n * <div slot=\"text\">\n * <p>Hidden content revealed when expanded</p>\n * </div>\n * </umd-element-accordion-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Dark theme with default open state -->\n * <umd-element-accordion-item data-theme=\"dark\" data-visual-open=\"true\">\n * <span slot=\"headline\">Click to collapse</span>\n * <div slot=\"text\">\n * <p>Content revealed as expanded</p>\n * </div>\n * </umd-element-accordion-item>\n * ```\n *\n * @example\n * ```javascript\n * // Programmatic control\n * const accordion = document.querySelector('umd-element-accordion-item');\n * accordion.setAttribute('data-visual-open', 'true'); // Opens with animation\n * accordion.setAttribute('data-visual-open', 'false'); // Closes with animation\n * ```\n *\n * @category Components\n * @since 1.0.0\n */\nexport const AccordionItem: ComponentRegistration = Model.defineComponent({\n tagName,\n slots,\n createComponent,\n attributes,\n}, { eager: false });\n\n/** Backwards compatibility alias for grouped exports */\nexport { AccordionItem as item };\n"],"names":["tagName","createComponent","element","accordion","Slots","Attributes","slots","attributes","AccordionItem","Model"],"mappings":";;AAIA,MAAMA,IAAU,8BAEVC,IAA2C,CAACC,MAChDC,EAAU,KAAK;AAAA,EACb,MACEC,EAAM,WAAW,KAAK,EAAE,SAAAF,GAAS,kBAAkB,GAAA,CAAO,KAC1DE,EAAM,KAAK,QAAQ,EAAE,SAAAF,GAAS,kBAAkB,IAAO;AAAA,EACzD,UAAUE,EAAM,SAAS,QAAQ,EAAE,SAAAF,GAAS;AAAA,EAC5C,cAAcG,EAAW,QAAQ,MAAM;AAAA,IACrC,SAAAH;AAAA,EAAA,CACD;AAAA,EACD,aAAaG,EAAW,QAAQ,KAAK;AAAA,IACnC,SAAAH;AAAA,EAAA,CACD;AAAA,EACD,aAAaG,EAAW,SAAS,KAAK;AAAA,IACpC,SAAAH;AAAA,EAAA,CACD;AACH,CAAC,GAEGI,IAA2B;AAAA,EAC/B,UAAU;AAAA,IACR,GAAGF,EAAM,QAAQ,QAAQ;AAAA,IACzB,UAAU;AAAA,EAAA;AAAA,EAEZ,MAAMA,EAAM,QAAQ,QAAQ;AAAA,EAC5B,MAAM;AAAA,IACJ,GAAGA,EAAM,QAAQ,QAAQ;AAAA,IACzB,UAAU;AAAA,EAAA;AAEd,GAEMG,IAAaF,EAAW,QAAQ,OAAO,UAAA,GA2DhCG,IAAuCC,EAAM,gBAAgB;AAAA,EACxE,SAAAT;AAAA,EACA,OAAAM;AAAA,EACA,iBAAAL;AAAA,EACA,YAAAM;AACF,GAAG,EAAE,OAAO,GAAA,CAAO;;;;;"}
|