{"version":3,"file":"974.min.js?t=1743173738202","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 title: '3. Foundation/Link',\n argTypes: {\n accessibilityLabel: {\n name: 'Accessibility Label',\n table: {\n category: 'Accessibility'\n }\n },\n moduleSpacing: ModuleSpacing,\n linkSize: {\n name: 'Link Size',\n control: {\n labels: {\n 'link-small': 'Small',\n 'link-large': 'Large'\n },\n type: 'inline-radio'\n },\n options: ['link-small', 'link-large'],\n table: {\n category: 'Design'\n }\n },\n linkStyle: {\n name: 'Link Button Style',\n control: {\n labels: {\n 'link-style-primary': 'Primary',\n 'link-style-secondary': 'Secondary',\n 'link-style-primary-reversed': 'Primary | Reversed',\n 'link-style-secondary-reversed': 'Secondary | Reversed',\n 'link-style-text': 'Text',\n 'link-style-text-reversed': 'Text | Reversed',\n 'link-style-list': 'List',\n 'link-style-list-reversed': 'List | Reversed',\n 'link-style-text-inline': 'Text Inline',\n 'link-style-text-inline-reversed': 'Text Inline | Reversed'\n },\n type: 'inline-radio'\n },\n options: [\n 'link-style-primary',\n 'link-style-secondary',\n 'link-style-primary-reversed',\n 'link-style-secondary-reversed',\n 'link-style-text',\n 'link-style-text-reversed',\n 'link-style-text-inline',\n 'link-style-text-inline-reversed',\n 'link-style-list',\n 'link-style-list-reversed'\n ],\n table: {\n category: 'Design'\n }\n },\n disabled: {\n name: 'Disabled',\n table: {\n category: 'Accessibility'\n }\n },\n id: {\n name: 'ID',\n table: {\n category: 'Accessibility'\n }\n },\n label: {\n name: 'Link Label',\n table: {\n category: 'Content'\n }\n },\n showAsButtonLink: {\n name: 'Show As Button?',\n table: {\n category: 'Content'\n }\n },\n showAsListLink: {\n name: 'Show As List?',\n table: {\n category: 'Content'\n }\n },\n showAsTextLink: {\n name: 'Show As Link?',\n table: {\n category: 'Content'\n }\n },\n startIcon: {\n name: 'Icon to display at the start of the link',\n table: {\n category: 'Content'\n }\n },\n endIcon: {\n name: 'Icon to display at the end of the link',\n table: {\n category: 'Content'\n }\n }\n }\n}\n\nconst Template = linkTemplate\n\nconst sharedArgs = {\n // Design\n linkButtonStyle: 'link-style-primary',\n linkTextStyle: 'link-style-primary',\n linkSize: 'link-large',\n showAsButtonLink: true,\n showAsListLink: false,\n showAsTextLink: false,\n showAsDownloadLink: false,\n // Content\n label: '',\n href: '#',\n // Accessiblity\n accessibilityLabel: '',\n disabled: false,\n id: '',\n // Spacing\n moduleSpacing: 'module-spacing-default'\n}\n\nexport const Default = Template.bind({})\nDefault.args = {\n ...sharedArgs,\n linkStyle: 'link-style-primary',\n label: 'Link sit dolor'\n}\n\nexport const Primary = Template.bind({})\nPrimary.args = {\n ...sharedArgs,\n linkStyle: 'link-style-primary',\n label: 'Primary sit dolor'\n}\n\nexport const PrimaryReversed = Template.bind({})\nPrimaryReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-primary-reversed',\n label: 'Primary reversed sit dolor'\n}\n\nexport const Secondary = Template.bind({})\nSecondary.args = {\n ...sharedArgs,\n linkStyle: 'link-style-secondary',\n label: 'Secondary sit dolor'\n}\n\nexport const SecondaryReversed = Template.bind({})\nSecondaryReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-secondary-reversed',\n label: 'Secondary reversed sit dolor'\n}\n\nexport const SecondaryTransparent = Template.bind({})\nSecondaryTransparent.args = {\n ...sharedArgs,\n linkStyle: 'link-style-secondary-transparent',\n label: 'Secondary transparent sit dolor'\n}\n\nexport const SecondaryTransparentReversed = Template.bind({})\nSecondaryTransparentReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-secondary-reversed-transparent',\n label: 'Secondary reversed transparent'\n}\n\nexport const Text = Template.bind({})\nText.args = {\n ...sharedArgs,\n linkStyle: 'link-style-text',\n label: 'Text sit dolor',\n showAsButtonLink: false,\n showAsTextLink: true\n}\n\nexport const TextReversed = Template.bind({})\nTextReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-text-reversed',\n label: 'Text reversed sit dolor',\n showAsButtonLink: false,\n showAsTextLink: true\n}\n\nexport const TextInline = Template.bind({})\nTextInline.args = {\n ...sharedArgs,\n linkStyle: 'link-style-text-inline',\n label: 'Text inline sit dolor',\n moduleSpacing: 'module-spacing-zero',\n showAsButtonLink: false\n}\n\nexport const TextInlineReversed = Template.bind({})\nTextInlineReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-text-inline-reversed',\n label: 'Text inline reversed sit dolor',\n moduleSpacing: 'module-spacing-zero',\n showAsButtonLink: false\n}\n\nexport const ListLink = Template.bind({})\nListLink.args = {\n ...sharedArgs,\n linkStyle: 'link-style-list',\n label:\n 'ESG ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod.',\n showAsButtonLink: false,\n showAsListLink: true,\n showAsTextLink: false\n}\n\nexport const ListLinkReversed = Template.bind({})\nListLinkReversed.args = {\n ...sharedArgs,\n linkStyle: 'link-style-list-reversed',\n label:\n 'Innovation ipsum dolor sit amet, consectetur adipiscing elit sed do eius.',\n showAsButtonLink: false,\n showAsListLink: true,\n showAsTextLink: false\n}\n\nexport const DownloadLink = Template.bind({})\nDownloadLink.args = {\n ...sharedArgs,\n linkStyle: 'link-style-text',\n label: 'Download sit dolor',\n showAsButtonLink: false,\n showAsTextLink: false,\n\n showAsDownloadLink: true\n}\n\nexport const StartIcon = Template.bind({})\nStartIcon.args = {\n ...sharedArgs,\n linkStyle: 'link-style-primary',\n\n showAsButtonLink: false,\n startIcon: 'map-pin',\n label: 'Where to Buy'\n}\n\nexport const EndIcon = Template.bind({})\nEndIcon.args = {\n ...sharedArgs,\n linkStyle: 'link-style-primary',\n\n showAsButtonLink: false,\n endIcon: 'map-pin',\n label: 'View Builder Packages'\n}\n\nexport const WithAnalytics = Template.bind({})\nWithAnalytics.args = {\n ...Default.args,\n analytics: {\n event: 'cta_link',\n cta_title: 'Link Title',\n cta_text: 'Link Text'\n }\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 \n \n \n`\n\n/**\n * Arrow icon to display at the end of the link\n */\nconst textLinkIcon = () => /* HTML */ `\n \n \n \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 \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 \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 accessibilityLabel,\n analytics,\n dataAttributes,\n disabled,\n id = '',\n href,\n label,\n linkSize,\n linkStyle,\n moduleSpacing,\n showAsButtonLink,\n showAsListLink,\n showAsDownloadLink,\n showAsTextLink,\n startIcon,\n endIcon,\n target = '_self',\n noopener,\n noreferer\n}) => {\n const linkArgs = {\n 'aria-label': accessibilityLabel,\n class: classNames(\n 'fdn-link',\n linkStyle,\n linkSize,\n moduleSpacing,\n disabled && 'disabled'\n ),\n href,\n id,\n target,\n ...((noopener || noreferer) && {\n rel: `${noopener ? 'noopener' : ''} ${noreferer ? 'noreferer' : ''}`\n })\n }\n\n const labelWrapperArgs = {\n class: ''\n }\n\n if (analytics) {\n linkArgs['data-analytics'] = true\n\n Object.keys(analytics).forEach((key) => {\n linkArgs[`data-analytics_${key}`] = analytics[key]\n })\n }\n\n if (showAsButtonLink || showAsListLink) {\n linkArgs.tabindex = '0'\n }\n\n if (showAsTextLink) {\n linkArgs.class = `${linkArgs.class} icon-arrow-animated`\n labelWrapperArgs.class = `${labelWrapperArgs.class} icon-arrow-animated-container`\n }\n\n if (showAsDownloadLink) {\n linkArgs.class = `${linkArgs.class} icon-download`\n labelWrapperArgs.class = `${labelWrapperArgs.class} icon-download-container`\n }\n\n if (startIcon) {\n labelWrapperArgs.class = `${labelWrapperArgs.class} fdn-link__icon-container`\n }\n\n if (endIcon) {\n labelWrapperArgs.class = `${labelWrapperArgs.class} fdn-link__icon-container`\n }\n\n return `\n (linkArgs[key] ? `${key}=\"${linkArgs[key]}\"` : ''))\n .join(' ')}\n ${Array.isArray(dataAttributes) ? dataAttributes.join(' ') : ''}\n >\n \n labelWrapperArgs[key] ? `${key}=\"${labelWrapperArgs[key]}\"` : ''\n )\n .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 THEMES as TYPE_THEMES\n} from '../Typography/Typography.template'\n\n/**\n * Allowable Text Type class names\n */\nexport const TYPES = {\n H6: 'h6',\n H6_CALLOUT: 'h6-callout',\n BLOCK: 'block',\n BODY_LG: 'body-lg',\n BODY_LG_CALLOUT: 'body-lg-callout',\n BODY_LG_INLINE: 'body-lg-inline',\n BODY_MD: 'body-md',\n BODY_MD_INLINE: 'body-md-inline',\n BODY_SM: 'body-sm',\n BODY_XSM: 'body-xsm',\n CALLOUT: 'callout',\n CAPTION: 'caption',\n CTA_LG: 'cta-lg',\n CTA_SM: 'cta-sm',\n CARD_TITLE: 'card-title',\n EYEBROW: 'eyebrow',\n EYEBROW_SM: 'eyebrow-sm',\n FORM_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 accessibilityLabel,\n addClassName,\n alignment,\n id,\n linesToDisplay,\n linesToDisplaySm,\n linesToDisplayLg,\n moduleSpacing,\n theme,\n text,\n textElement = 'div',\n textType,\n textSize\n}) =>\n typographyTemplate({\n accessibilityLabel,\n addClassName: classNames(\n !textType && 'fdn-text', // fallback for backward compatible fdn-text\n !textType && !textSize && 'text-medium', // fallback for backward compatible text size\n textSize,\n addClassName\n ),\n alignment,\n id,\n linesToDisplay,\n linesToDisplaySm,\n linesToDisplayLg,\n moduleSpacing,\n tag: textElement,\n theme,\n text,\n type: textType\n })\n\nexport default textTemplate\n","import classNames from 'utilities/classnames'\nimport typographyTemplate, {\n THEMES as TYPE_THEMES\n} from '../Typography/Typography.template'\n\n/**\n * Allowable Title Type class names\n */\nexport const TYPES = {\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H3_CALLOUT: 'h3-callout',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n H6_CALLOUT: 'h6-callout',\n EYEBROW: 'eyebrow',\n EYEBROW_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 accessibilityLabel,\n addClassName,\n alignment,\n headingElement,\n headingStyle,\n headingType,\n id,\n moduleSpacing,\n linesToDisplay,\n linesToDisplaySm,\n linesToDisplayLg,\n theme,\n text\n}) =>\n typographyTemplate({\n accessibilityLabel,\n addClassName: classNames(\n !headingType && 'fdn-title',\n !headingType && !headingStyle && 'headline-x-large',\n headingStyle,\n addClassName\n ),\n alignment,\n id,\n tag: headingElement,\n theme,\n type: headingType,\n text,\n moduleSpacing,\n linesToDisplay,\n linesToDisplaySm,\n linesToDisplayLg\n })\n\nexport default titleTemplate\n","import classNames from 'utilities/classnames'\n\n/**\n * Allowable Typography Type class names\n */\nexport const TYPES = {\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H3_CALLOUT: 'h3-callout',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n H6_CALLOUT: 'h6-callout',\n BLOCK: 'block',\n BODY_LG: 'body-lg',\n BODY_LG_INLINE: 'body-lg-inline',\n BODY_MD: 'body-md',\n BODY_MD_INLINE: 'body-md-inline',\n BODY_SM: 'body-sm',\n BODY_XSM: 'body-xsm',\n CALLOUT: 'callout',\n CAPTION: 'caption',\n CTA_LG: 'cta-lg',\n CTA_SM: 'cta-sm',\n CARD_TITLE: 'card-title',\n EYEBROW: 'eyebrow',\n EYEBROW_SM: 'eyebrow-sm'\n}\n\n/**\n * Allowable Typography Color theme class names\n */\nexport const THEMES = {\n LIGHT: 'type--theme-light',\n LIGHT_BOLD: 'type--theme-light-bold',\n DARK: 'type--theme-dark',\n INHERIT: '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 accessibilityLabel,\n addClassName,\n alignment,\n id,\n moduleSpacing,\n linesToDisplay,\n linesToDisplaySm,\n linesToDisplayLg,\n tag,\n theme,\n type,\n text\n}) => {\n let styleTag = ''\n\n if (linesToDisplay) {\n styleTag = `${styleTag} --lines: ${linesToDisplay};`\n }\n\n if (linesToDisplaySm) {\n styleTag = `${styleTag} --lines-small: ${linesToDisplaySm};`\n }\n\n if (linesToDisplayLg) {\n styleTag = `${styleTag} --lines-large: ${linesToDisplayLg};`\n }\n\n return `\n <${tag}\n ${accessibilityLabel ? `aria-label=\"${accessibilityLabel}\"` : ''}\n class=\"${classNames(\n type && `fdn-type-${type}`,\n theme,\n styleTag && 'type--line-clamp',\n addClassName,\n alignment,\n moduleSpacing\n )}\"\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 return 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`