{"version":3,"file":"974.min.js?t=1747159542749","mappings":"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","sources":["webpack://@hero-digital/masonite/./src/components/foundation/Link/Link.stories.js","webpack://@hero-digital/masonite/./src/components/foundation/Link/Link.template.js","webpack://@hero-digital/masonite/./src/components/foundation/Text/Text.template.js","webpack://@hero-digital/masonite/./src/components/foundation/Title/Title.template.js","webpack://@hero-digital/masonite/./src/components/foundation/Typography/Typography.template.js","webpack://@hero-digital/masonite/./src/js/utilities/classnames.js","webpack://@hero-digital/masonite/./src/js/utilities/html.js","webpack://@hero-digital/masonite/./src/js/utilities/renderer.js","webpack://@hero-digital/masonite/./src/storybook/Tokens/Alignment.js","webpack://@hero-digital/masonite/./src/storybook/Tokens/ModuleSpacing.js","webpack://@hero-digital/masonite/./src/storybook/Controls/ModuleSpacing.js","webpack://@hero-digital/masonite/./src/storybook/Controls/Alignment.js"],"sourcesContent":["import { ModuleSpacing } from 'storybook/Controls'\nimport linkTemplate from './Link.template'\n\nexport default {\n\ttitle: '3. Foundation/Link',\n\targTypes: {\n\t\taccessibilityLabel: {\n\t\t\tname: 'Accessibility Label',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Accessibility'\n\t\t\t}\n\t\t},\n\t\tmoduleSpacing: ModuleSpacing,\n\t\tlinkSize: {\n\t\t\tname: 'Link Size',\n\t\t\tcontrol: {\n\t\t\t\tlabels: {\n\t\t\t\t\t'link-small': 'Small',\n\t\t\t\t\t'link-large': 'Large'\n\t\t\t\t},\n\t\t\t\ttype: 'inline-radio'\n\t\t\t},\n\t\t\toptions: ['link-small', 'link-large'],\n\t\t\ttable: {\n\t\t\t\tcategory: 'Design'\n\t\t\t}\n\t\t},\n\t\tlinkStyle: {\n\t\t\tname: 'Link Button Style',\n\t\t\tcontrol: {\n\t\t\t\tlabels: {\n\t\t\t\t\t'link-style-primary': 'Primary',\n\t\t\t\t\t'link-style-secondary': 'Secondary',\n\t\t\t\t\t'link-style-primary-reversed': 'Primary | Reversed',\n\t\t\t\t\t'link-style-secondary-reversed': 'Secondary | Reversed',\n\t\t\t\t\t'link-style-text': 'Text',\n\t\t\t\t\t'link-style-text-reversed': 'Text | Reversed',\n\t\t\t\t\t'link-style-list': 'List',\n\t\t\t\t\t'link-style-list-reversed': 'List | Reversed',\n\t\t\t\t\t'link-style-text-inline': 'Text Inline',\n\t\t\t\t\t'link-style-text-inline-reversed': 'Text Inline | Reversed'\n\t\t\t\t},\n\t\t\t\ttype: 'inline-radio'\n\t\t\t},\n\t\t\toptions: [\n\t\t\t\t'link-style-primary',\n\t\t\t\t'link-style-secondary',\n\t\t\t\t'link-style-primary-reversed',\n\t\t\t\t'link-style-secondary-reversed',\n\t\t\t\t'link-style-text',\n\t\t\t\t'link-style-text-reversed',\n\t\t\t\t'link-style-text-inline',\n\t\t\t\t'link-style-text-inline-reversed',\n\t\t\t\t'link-style-list',\n\t\t\t\t'link-style-list-reversed'\n\t\t\t],\n\t\t\ttable: {\n\t\t\t\tcategory: 'Design'\n\t\t\t}\n\t\t},\n\t\tdisabled: {\n\t\t\tname: 'Disabled',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Accessibility'\n\t\t\t}\n\t\t},\n\t\tid: {\n\t\t\tname: 'ID',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Accessibility'\n\t\t\t}\n\t\t},\n\t\tlabel: {\n\t\t\tname: 'Link Label',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t},\n\t\tshowAsButtonLink: {\n\t\t\tname: 'Show As Button?',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t},\n\t\tshowAsListLink: {\n\t\t\tname: 'Show As List?',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t},\n\t\tshowAsTextLink: {\n\t\t\tname: 'Show As Link?',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t},\n\t\tstartIcon: {\n\t\t\tname: 'Icon to display at the start of the link',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t},\n\t\tendIcon: {\n\t\t\tname: 'Icon to display at the end of the link',\n\t\t\ttable: {\n\t\t\t\tcategory: 'Content'\n\t\t\t}\n\t\t}\n\t}\n}\n\nconst Template = linkTemplate\n\nconst sharedArgs = {\n\t// Design\n\tlinkButtonStyle: 'link-style-primary',\n\tlinkTextStyle: 'link-style-primary',\n\tlinkSize: 'link-large',\n\tshowAsButtonLink: true,\n\tshowAsListLink: false,\n\tshowAsTextLink: false,\n\tshowAsDownloadLink: false,\n\t// Content\n\tlabel: '',\n\thref: '#',\n\t// Accessiblity\n\taccessibilityLabel: '',\n\tdisabled: false,\n\tid: '',\n\t// Spacing\n\tmoduleSpacing: 'module-spacing-default'\n}\n\nexport const Default = Template.bind({})\nDefault.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-primary',\n\tlabel: 'Link sit dolor'\n}\n\nexport const Primary = Template.bind({})\nPrimary.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-primary',\n\tlabel: 'Primary sit dolor'\n}\n\nexport const PrimaryReversed = Template.bind({})\nPrimaryReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-primary-reversed',\n\tlabel: 'Primary reversed sit dolor'\n}\n\nexport const Secondary = Template.bind({})\nSecondary.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-secondary',\n\tlabel: 'Secondary sit dolor'\n}\n\nexport const SecondaryReversed = Template.bind({})\nSecondaryReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-secondary-reversed',\n\tlabel: 'Secondary reversed sit dolor'\n}\n\nexport const SecondaryTransparent = Template.bind({})\nSecondaryTransparent.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-secondary-transparent',\n\tlabel: 'Secondary transparent sit dolor'\n}\n\nexport const SecondaryTransparentReversed = Template.bind({})\nSecondaryTransparentReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-secondary-reversed-transparent',\n\tlabel: 'Secondary reversed transparent'\n}\n\nexport const Text = Template.bind({})\nText.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-text',\n\tlabel: 'Text sit dolor',\n\tshowAsButtonLink: false,\n\tshowAsTextLink: true\n}\n\nexport const TextReversed = Template.bind({})\nTextReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-text-reversed',\n\tlabel: 'Text reversed sit dolor',\n\tshowAsButtonLink: false,\n\tshowAsTextLink: true\n}\n\nexport const TextInline = Template.bind({})\nTextInline.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-text-inline',\n\tlabel: 'Text inline sit dolor',\n\tmoduleSpacing: 'module-spacing-zero',\n\tshowAsButtonLink: false\n}\n\nexport const TextInlineReversed = Template.bind({})\nTextInlineReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-text-inline-reversed',\n\tlabel: 'Text inline reversed sit dolor',\n\tmoduleSpacing: 'module-spacing-zero',\n\tshowAsButtonLink: false\n}\n\nexport const ListLink = Template.bind({})\nListLink.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-list',\n\tlabel: 'ESG ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod.',\n\tshowAsButtonLink: false,\n\tshowAsListLink: true,\n\tshowAsTextLink: false\n}\n\nexport const ListLinkReversed = Template.bind({})\nListLinkReversed.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-list-reversed',\n\tlabel: 'Innovation ipsum dolor sit amet, consectetur adipiscing elit sed do eius.',\n\tshowAsButtonLink: false,\n\tshowAsListLink: true,\n\tshowAsTextLink: false\n}\n\nexport const DownloadLink = Template.bind({})\nDownloadLink.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-text',\n\tlabel: 'Download sit dolor',\n\tshowAsButtonLink: false,\n\tshowAsTextLink: false,\n\n\tshowAsDownloadLink: true\n}\n\nexport const StartIcon = Template.bind({})\nStartIcon.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-primary',\n\n\tshowAsButtonLink: false,\n\tstartIcon: 'map-pin',\n\tlabel: 'Where to Buy'\n}\n\nexport const EndIcon = Template.bind({})\nEndIcon.args = {\n\t...sharedArgs,\n\tlinkStyle: 'link-style-primary',\n\n\tshowAsButtonLink: false,\n\tendIcon: 'map-pin',\n\tlabel: 'View Builder Packages'\n}\n\nexport const WithAnalytics = Template.bind({})\nWithAnalytics.args = {\n\t...Default.args,\n\tanalytics: {\n\t\tevent: 'cta_link',\n\t\tcta_title: 'Link Title',\n\t\tcta_text: 'Link Text'\n\t}\n}\n","import classNames from 'utilities/classnames'\n\n/**\n * Download icon to display at the end of the link\n */\nconst downloadLinkIcon = () => /* HTML */ `\n\t\n\t\t\n\t\n`\n\n/**\n * Arrow icon to display at the end of the link\n */\nconst textLinkIcon = () => /* HTML */ `\n\t\n\t\t\n\t\n`\n\n/**\n * Icon to display at the start of the link\n * @param {Object} icon SVG icon to display\n * @returns\n */\nconst startIconTemplate = (icon) => /* HTML */ `\n\t\n`\n\n/**\n * Icon to display at the end of the link\n * @param {Object} icon SVG icon to display\n * @returns\n */\nconst endIconTemplate = (icon) => /* HTML */ `\n\t\n`\n\n/**\n *\n * @param {Object} args\n * @param {String} args.accessibilityLabel - Accessibility label for the link\n * @param {Array} args.dataAttributes - Data attributes for the link\n * @param {Boolean} args.disabled - Whether or not the link is disabled\n * @param {String} args.id - The link's id\n * @param {String} args.href - The link's href\n * @param {String} args.label - The link's label\n * @param {String} args.linkSize - The link's size\n * @param {String} args.linkStyle - The link's style\n * @param {String} args.moduleSpacing - The link's spacing\n * @param {Boolean} args.showAsButtonLink - Whether or not the link should be styled as a button\n * @param {Boolean} args.showAsDownloadLink - Whether or not the link should be styled as a download link\n * @param {Boolean} args.showAsListLink - Whether or not the link should be styled as a list link\n * @param {Boolean} args.showAsTextLink - Whether or not the link should be styled as a text link\n * @param {String} args.startIcon - The link's start icon\n * @param {String} args.endIcon - The link's end icon\n * @returns\n */\nconst linkTemplate = ({\n\taccessibilityLabel,\n\tanalytics,\n\tdataAttributes,\n\tdisabled,\n\tid = '',\n\thref,\n\tlabel,\n\tlinkSize,\n\tlinkStyle,\n\tmoduleSpacing,\n\tshowAsButtonLink,\n\tshowAsListLink,\n\tshowAsDownloadLink,\n\tshowAsTextLink,\n\tstartIcon,\n\tendIcon,\n\ttarget = '_self',\n\tnoopener,\n\tnoreferer\n}) => {\n\tconst linkArgs = {\n\t\t'aria-label': accessibilityLabel,\n\t\tclass: classNames(\n\t\t\t'fdn-link',\n\t\t\tlinkStyle,\n\t\t\tlinkSize,\n\t\t\tmoduleSpacing,\n\t\t\tdisabled && 'disabled'\n\t\t),\n\t\thref,\n\t\tid,\n\t\ttarget,\n\t\t...((noopener || noreferer) && {\n\t\t\trel: `${noopener ? 'noopener' : ''} ${noreferer ? 'noreferer' : ''}`\n\t\t})\n\t}\n\n\tconst labelWrapperArgs = {\n\t\tclass: ''\n\t}\n\n\tif (analytics) {\n\t\tlinkArgs['data-analytics'] = true\n\n\t\tObject.keys(analytics).forEach((key) => {\n\t\t\tlinkArgs[`data-analytics_${key}`] = analytics[key]\n\t\t})\n\t}\n\n\tif (showAsButtonLink || showAsListLink) {\n\t\tlinkArgs.tabindex = '0'\n\t}\n\n\tif (showAsTextLink) {\n\t\tlinkArgs.class = `${linkArgs.class} icon-arrow-animated`\n\t\tlabelWrapperArgs.class = `${labelWrapperArgs.class} icon-arrow-animated-container`\n\t}\n\n\tif (showAsDownloadLink) {\n\t\tlinkArgs.class = `${linkArgs.class} icon-download`\n\t\tlabelWrapperArgs.class = `${labelWrapperArgs.class} icon-download-container`\n\t}\n\n\tif (startIcon) {\n\t\tlabelWrapperArgs.class = `${labelWrapperArgs.class} fdn-link__icon-container`\n\t}\n\n\tif (endIcon) {\n\t\tlabelWrapperArgs.class = `${labelWrapperArgs.class} fdn-link__icon-container`\n\t}\n\n\treturn `\n (linkArgs[key] ? `${key}=\"${linkArgs[key]}\"` : ''))\n\t\t\t.join(' ')}\n ${Array.isArray(dataAttributes) ? dataAttributes.join(' ') : ''}\n >\n \n\t\t\t\tlabelWrapperArgs[key] ? `${key}=\"${labelWrapperArgs[key]}\"` : ''\n\t\t\t)\n\t\t\t.join(' ')}\n >\n ${startIcon ? startIconTemplate(startIcon) : ''}\n ${label}\n ${showAsDownloadLink ? downloadLinkIcon() : ''}\n ${showAsTextLink ? textLinkIcon() : ''}\n ${endIcon ? endIconTemplate(endIcon) : ''}\n \n \n `\n}\n\nexport default linkTemplate\n","import classNames from 'utilities/classnames'\nimport typographyTemplate, {\n\tTHEMES as TYPE_THEMES\n} from '../Typography/Typography.template'\n\n/**\n * Allowable Text Type class names\n */\nexport const TYPES = {\n\tH6: 'h6',\n\tH6_CALLOUT: 'h6-callout',\n\tBLOCK: 'block',\n\tBODY_LG: 'body-lg',\n\tBODY_LG_CALLOUT: 'body-lg-callout',\n\tBODY_LG_INLINE: 'body-lg-inline',\n\tBODY_MD: 'body-md',\n\tBODY_MD_INLINE: 'body-md-inline',\n\tBODY_SM: 'body-sm',\n\tBODY_XSM: 'body-xsm',\n\tCALLOUT: 'callout',\n\tCAPTION: 'caption',\n\tCTA_LG: 'cta-lg',\n\tCTA_SM: 'cta-sm',\n\tCARD_TITLE: 'card-title',\n\tEYEBROW: 'eyebrow',\n\tEYEBROW_SM: 'eyebrow-sm',\n\tFORM_SECTION_TITLE: 'form-section-title'\n}\n\n/**\n * Allowable Typography Color theme class names\n */\nexport const THEMES = { ...TYPE_THEMES }\n\n/**\n *\n * Template for dispaying a Text element\n * @param {Object} args\n * @param {String} args.accessibilityLabel Optional aria-label\n * @param {String} args.addClassName Optional additional class names to add\n * @param {String} args.alignment Optional alignment class name\n * @param {String} args.id Optional element id\n * @param {String} args.linesToDisplay Optional line count to display\n * @param {String} args.linesToDisplaySm Optional line count to display on small screens\n * @param {String} args.linesToDisplayLg Optional line count to display on large screens\n * @param {String} args.moduleSpacing Optional module-spacing class name to add\n * @param {String} args.text Inner-text value\n * @param {String} args.textElement Optional element tag (e.g. p, span, div, etc) Defaults to `div`\n * @param {String} args.textType Type class name (expected TYPES values)\n * @param {String} args.theme Optional color theme (expected THEMES values)\n * @returns\n */\nconst textTemplate = ({\n\taccessibilityLabel,\n\taddClassName,\n\talignment,\n\tid,\n\tlinesToDisplay,\n\tlinesToDisplaySm,\n\tlinesToDisplayLg,\n\tmoduleSpacing,\n\ttheme,\n\ttext,\n\ttextElement = 'div',\n\ttextType,\n\ttextSize\n}) =>\n\ttypographyTemplate({\n\t\taccessibilityLabel,\n\t\taddClassName: classNames(\n\t\t\t!textType && 'fdn-text', // fallback for backward compatible fdn-text\n\t\t\t!textType && !textSize && 'text-medium', // fallback for backward compatible text size\n\t\t\ttextSize,\n\t\t\taddClassName\n\t\t),\n\t\talignment,\n\t\tid,\n\t\tlinesToDisplay,\n\t\tlinesToDisplaySm,\n\t\tlinesToDisplayLg,\n\t\tmoduleSpacing,\n\t\ttag: textElement,\n\t\ttheme,\n\t\ttext,\n\t\ttype: textType\n\t})\n\nexport default textTemplate\n","import classNames from 'utilities/classnames'\nimport typographyTemplate, {\n\tTHEMES as TYPE_THEMES\n} from '../Typography/Typography.template'\n\n/**\n * Allowable Title Type class names\n */\nexport const TYPES = {\n\tH1: 'h1',\n\tH2: 'h2',\n\tH3: 'h3',\n\tH3_CALLOUT: 'h3-callout',\n\tH4: 'h4',\n\tH5: 'h5',\n\tH6: 'h6',\n\tH6_CALLOUT: 'h6-callout',\n\tEYEBROW: 'eyebrow',\n\tEYEBROW_SM: 'eyebrow-sm'\n}\n\n/**\n * Allowable Typography Color theme class names\n */\nexport const THEMES = { ...TYPE_THEMES }\n\n/**\n *\n * Template for dispaying a Title element\n * @param {Object} args\n * @param {String} args.accessibilityLabel Optional aria-label\n * @param {String} args.addClassName Optional additional class names to add\n * @param {String} args.alignment Optional alignment class name\n * @param {String} args.headingElement Element tag (e.g. h1, h2, p, etc)\n * @param {String} args.headingStyle Optional additional class names to add\n * @param {String} args.headingType Type class name (expected TYPES values)\n * @param {String} args.id Optional element id\n * @param {String} args.linesToDisplay Optional line count to display\n * @param {String} args.linesToDisplaySm Optional line count to display on small screens\n * @param {String} args.linesToDisplayLg Optional line count to display on large screens\n * @param {String} args.moduleSpacing Optional module-spacing class name to add\n * @param {String} args.text Inner-text value\n * @param {String} args.theme Optional color theme (expected THEMES values)\n * @returns\n */\nconst titleTemplate = ({\n\taccessibilityLabel,\n\taddClassName,\n\talignment,\n\theadingElement,\n\theadingStyle,\n\theadingType,\n\tid,\n\tmoduleSpacing,\n\tlinesToDisplay,\n\tlinesToDisplaySm,\n\tlinesToDisplayLg,\n\ttheme,\n\ttext\n}) =>\n\ttypographyTemplate({\n\t\taccessibilityLabel,\n\t\taddClassName: classNames(\n\t\t\t!headingType && 'fdn-title',\n\t\t\t!headingType && !headingStyle && 'headline-x-large',\n\t\t\theadingStyle,\n\t\t\taddClassName\n\t\t),\n\t\talignment,\n\t\tid,\n\t\ttag: headingElement,\n\t\ttheme,\n\t\ttype: headingType,\n\t\ttext,\n\t\tmoduleSpacing,\n\t\tlinesToDisplay,\n\t\tlinesToDisplaySm,\n\t\tlinesToDisplayLg\n\t})\n\nexport default titleTemplate\n","import classNames from 'utilities/classnames'\n\n/**\n * Allowable Typography Type class names\n */\nexport const TYPES = {\n\tH1: 'h1',\n\tH2: 'h2',\n\tH3: 'h3',\n\tH3_CALLOUT: 'h3-callout',\n\tH4: 'h4',\n\tH5: 'h5',\n\tH6: 'h6',\n\tH6_CALLOUT: 'h6-callout',\n\tBLOCK: 'block',\n\tBODY_LG: 'body-lg',\n\tBODY_LG_INLINE: 'body-lg-inline',\n\tBODY_MD: 'body-md',\n\tBODY_MD_INLINE: 'body-md-inline',\n\tBODY_SM: 'body-sm',\n\tBODY_XSM: 'body-xsm',\n\tCALLOUT: 'callout',\n\tCAPTION: 'caption',\n\tCTA_LG: 'cta-lg',\n\tCTA_SM: 'cta-sm',\n\tCARD_TITLE: 'card-title',\n\tEYEBROW: 'eyebrow',\n\tEYEBROW_SM: 'eyebrow-sm'\n}\n\n/**\n * Allowable Typography Color theme class names\n */\nexport const THEMES = {\n\tLIGHT: 'type--theme-light',\n\tLIGHT_BOLD: 'type--theme-light-bold',\n\tDARK: 'type--theme-dark',\n\tINHERIT: 'type--theme-inherit'\n}\n\n/**\n * Template for dispaying a typography element\n * @param {Object} args\n * @param {String} args.accessibilityLabel Optional aria-label\n * @param {String} args.addClassName Optional additional class names to add\n * @param {String} args.alignment Optional alignment class name\n * @param {String} args.linesToDisplay Optional line count to display\n * @param {String} args.linesToDisplaySm Optional line count to display on small screens\n * @param {String} args.linesToDisplayLg Optional line count to display on large screens\n * @param {String} args.moduleSpacing Optional module-spacing class name to add\n * @param {String} args.id Optional element id\n * @param {String} args.tag Element tag (e.g. h1, h2, p, etc)\n * @param {String} args.text Inner-text value\n * @param {String} args.theme Optional color theme (expected THEMES values)\n * @param {String} args.type Type class name (expected TYPES values)\n *\n * @returns HTML representation of `tag` element\n */\nconst typographyTemplate = ({\n\taccessibilityLabel,\n\taddClassName,\n\talignment,\n\tid,\n\tmoduleSpacing,\n\tlinesToDisplay,\n\tlinesToDisplaySm,\n\tlinesToDisplayLg,\n\ttag,\n\ttheme,\n\ttype,\n\ttext\n}) => {\n\tlet styleTag = ''\n\n\tif (linesToDisplay) {\n\t\tstyleTag = `${styleTag} --lines: ${linesToDisplay};`\n\t}\n\n\tif (linesToDisplaySm) {\n\t\tstyleTag = `${styleTag} --lines-small: ${linesToDisplaySm};`\n\t}\n\n\tif (linesToDisplayLg) {\n\t\tstyleTag = `${styleTag} --lines-large: ${linesToDisplayLg};`\n\t}\n\n\treturn `\n <${tag}\n ${accessibilityLabel ? `aria-label=\"${accessibilityLabel}\"` : ''}\n class=\"${classNames(\n\t\t\t\ttype && `fdn-type-${type}`,\n\t\t\t\ttheme,\n\t\t\t\tstyleTag && 'type--line-clamp',\n\t\t\t\taddClassName,\n\t\t\t\talignment,\n\t\t\t\tmoduleSpacing\n\t\t\t)}\"\n ${styleTag ? `style=\"${styleTag.trim()}\"` : ''}\n ${id ? `id=\"${id}\"` : ''}\n >\n ${text}\n ${tag}>\n `\n}\nexport default typographyTemplate\n","/**\n * Conditionally returns a list of class names based\n * on the value's truthyness\n * @param {(boolean | undefined | ?string)[]} classes - An array of class names to be joined together\n * @returns {string} - A string of joined class names\n *\n * @example\n * classNames(true && 'foo', false && 'bar', 'baz', undefined && '') // => 'foo baz'\n */\nexport default function classNames(...classes) {\n\treturn classes.filter(Boolean).join(' ')\n}\n","import { fromTemplate } from './renderer'\n\n/**\n * A function which takes arguments of a tagged template literal and returns an HTML string or Element.\n * @param {Array} literalSections Array of string literals from the template literal\n * @param {Array} substs Substitutions to be interpolated into the string literal sections (if any) and returned as a string or Element (if getNode is true)\n * @example\n * const template = html`