@pnx-mixtape/mxds 0.0.19 → 0.0.21
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 +18 -6
- package/dist/build/accordion.entry.js +2 -2
- package/dist/build/accordion.entry.js.map +1 -1
- package/dist/build/base.css +2 -1
- package/dist/build/button.css +4 -4
- package/dist/build/card.css +6 -5
- package/dist/build/chunks/{Accordion-deu4CCT-.js → Accordion-O-huO4At.js} +2 -2
- package/dist/build/chunks/{Accordion-deu4CCT-.js.map → Accordion-O-huO4At.js.map} +1 -1
- package/dist/build/chunks/{disclosure-widget-WwE5XplD.js → disclosure-widget-DVpnRsTI.js} +2 -2
- package/dist/build/chunks/{disclosure-widget-WwE5XplD.js.map → disclosure-widget-DVpnRsTI.js.map} +1 -1
- package/dist/build/chunks/{drop-menu.entry-e1iZ4ERw.js → drop-menu.entry-B4TtnC50.js} +2 -2
- package/dist/build/chunks/{drop-menu.entry-e1iZ4ERw.js.map → drop-menu.entry-B4TtnC50.js.map} +1 -1
- package/dist/build/chunks/{utilities-BeWkujCZ.js → utilities-DXELy_An.js} +91 -1
- package/dist/build/chunks/utilities-DXELy_An.js.map +1 -0
- package/dist/build/constants.css +6 -4
- package/dist/build/dialog.css +1 -9
- package/dist/build/dialog.entry.js +1 -1
- package/dist/build/drop-menu.entry.js +1 -1
- package/dist/build/filters.entry.js +1 -1
- package/dist/build/global-alert.entry.js +1 -1
- package/dist/build/header.css +49 -63
- package/dist/build/header.entry.js +1107 -21
- package/dist/build/header.entry.js.map +1 -1
- package/dist/build/hero-banner.css +12 -6
- package/dist/build/in-page-navigation.entry.js +1 -1
- package/dist/build/navigation.entry.js +2 -2
- package/dist/build/page.css +2 -2
- package/dist/build/pagination.css +15 -21
- package/dist/build/steps.css +11 -11
- package/dist/build/sticky.entry.js +1 -1
- package/dist/build/tabs.entry.js +2 -2
- package/dist/build/utilities.css +9 -1
- package/package.json +18 -29
- package/src/Atom/Button/_buttons-styles.css +3 -3
- package/src/Atom/Heading/Heading.tsx +1 -1
- package/src/Atom/Icon/Icon.tsx +1 -1
- package/src/Atom/Link/Link.stories.tsx +2 -6
- package/src/Atom/Link/Link.tsx +9 -4
- package/src/Atom/Link/_links.css +1 -0
- package/src/Component/Accordion/Accordion.stories.tsx +39 -9
- package/src/Component/Accordion/Accordion.tsx +28 -50
- package/src/Component/Accordion/Components/AccordionContent.tsx +24 -0
- package/src/Component/Accordion/Components/AccordionTitle.tsx +34 -0
- package/src/Component/Accordion/Components/AccordionTitleIcon.tsx +22 -0
- package/src/Component/Accordion/__snapshots__/Accordion.stories.tsx.snap +26 -0
- package/src/Component/Breadcrumb/Breadcrumb.tsx +8 -2
- package/src/Component/Breadcrumb/__snapshots__/Breadcrumb.stories.tsx.snap +7 -3
- package/src/Component/Card/Card.stories.tsx +22 -19
- package/src/Component/Card/Card.tsx +6 -28
- package/src/Component/Card/Components/CardContent.tsx +12 -0
- package/src/Component/Card/Components/CardMedia.tsx +17 -0
- package/src/Component/Card/__snapshots__/Card.stories.tsx.snap +9 -9
- package/src/Component/Card/card.css +3 -2
- package/src/Component/ContentBlock/Components/ContentBlockContent.tsx +14 -0
- package/src/Component/ContentBlock/Components/ContentBlockMedia.tsx +20 -0
- package/src/Component/ContentBlock/ContentBlock.stories.tsx +16 -13
- package/src/Component/ContentBlock/ContentBlock.tsx +5 -28
- package/src/Component/ContentBlock/__snapshots__/ContentBlock.stories.tsx.snap +0 -2
- package/src/Component/Dialog/Components/DialogCloseButton.tsx +18 -0
- package/src/Component/Dialog/Components/DialogContent.tsx +7 -0
- package/src/Component/Dialog/Dialog.stories.tsx +19 -24
- package/src/Component/Dialog/Dialog.tsx +31 -25
- package/src/Component/Dialog/__snapshots__/Dialog.stories.tsx.snap +14 -21
- package/src/Component/Dialog/dialog.css +0 -8
- package/src/Component/HeroBanner/HeroBanner.stories.ts +23 -12
- package/src/Component/HeroBanner/HeroBanner.stories.tsx +26 -7
- package/src/Component/HeroBanner/HeroBanner.tsx +2 -20
- package/src/Component/HeroBanner/__snapshots__/HeroBanner.stories.ts.snap +51 -3
- package/src/Component/HeroBanner/hero-banner.css +8 -4
- package/src/Component/HeroBanner/hero-banner.twig +2 -2
- package/src/Component/HeroSearch/HeroSearch.stories.ts +105 -0
- package/src/Component/HeroSearch/HeroSearch.stories.tsx +48 -0
- package/src/Component/HeroSearch/HeroSearch.tsx +32 -0
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.ts.snap +176 -0
- package/src/Component/HeroSearch/__snapshots__/HeroSearch.stories.tsx.snap +36 -0
- package/src/Component/HeroSearch/hero-search.twig +43 -0
- package/src/Component/InPageNavigation/InPageNavigation.stories.tsx +1 -1
- package/src/Component/InPageNavigation/InPageNavigation.tsx +1 -0
- package/src/Component/InPageNavigation/__snapshots__/InPageNavigation.stories.tsx.snap +1 -1
- package/src/Component/LinkList/LinkList.stories.ts +12 -0
- package/src/Component/LinkList/LinkList.stories.tsx +0 -6
- package/src/Component/LinkList/LinkList.tsx +5 -16
- package/src/Component/LinkList/__snapshots__/LinkList.stories.ts.snap +37 -0
- package/src/Component/LinkList/__snapshots__/LinkList.stories.tsx.snap +9 -29
- package/src/Component/LinkList/link-list.twig +1 -0
- package/src/Component/ListItem/Components/ListItemContent.tsx +12 -0
- package/src/Component/ListItem/Components/ListItemMedia.tsx +20 -0
- package/src/Component/ListItem/ListItem.stories.tsx +22 -19
- package/src/Component/ListItem/ListItem.tsx +3 -32
- package/src/Component/ListItem/__snapshots__/ListItem.stories.tsx.snap +3 -0
- package/src/Component/Pagination/Components/PaginationContext.tsx +10 -4
- package/src/Component/Pagination/Components/PaginationItem.tsx +10 -10
- package/src/Component/Pagination/Pagination.tsx +6 -2
- package/src/Component/Pagination/__snapshots__/Pagination.stories.tsx.snap +10 -4
- package/src/Component/Pagination/pagination.css +13 -18
- package/src/Component/Steps/__snapshots__/Steps.stories.ts.snap +12 -12
- package/src/Component/Steps/step-item.twig +1 -1
- package/src/Component/Steps/steps.css +1 -2
- package/src/Component/Tabs/Components/TabPanel.tsx +1 -1
- package/src/Component/Tabs/__snapshots__/Tabs.stories.tsx.snap +2 -0
- package/src/Component/Tile/Tile.stories.tsx +20 -15
- package/src/Component/Tile/__snapshots__/Tile.stories.tsx.snap +18 -23
- package/src/Layout/Header/Elements/GlobalToggle.ts +55 -21
- package/src/Layout/Header/__snapshots__/Header.stories.ts.snap +14 -14
- package/src/Layout/Header/__snapshots__/Header.stories.tsx.snap +2 -2
- package/src/Layout/Header/_header.css +2 -47
- package/src/Layout/Header/_toggles.css +37 -1
- package/src/Layout/Header/header.twig +5 -5
- package/src/Layout/Page/Page.stories.tsx +13 -4
- package/src/Layout/Page/__snapshots__/Page.stories.tsx.snap +2 -2
- package/src/Layout/Page/page.css +1 -1
- package/src/Layout/Section/__snapshots__/Section.stories.tsx.snap +3 -3
- package/src/Layout/Section/__snapshots__/SectionGrid.stories.tsx.snap +2 -2
- package/src/Layout/Sidebar/__snapshots__/Sidebar.stories.tsx.snap +3 -3
- package/src/Utility/utilities.css +8 -0
- package/src/constants.css +5 -3
- package/src/react.ts +30 -7
- package/src/tokens.js +3 -1
- package/dist/build/chunks/utilities-BeWkujCZ.js.map +0 -1
- package/src/Component/Tile/Tile.tsx +0 -53
package/src/constants.css
CHANGED
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
--font-family: token("font.family");
|
|
73
73
|
--type-ratio: token("font.size.ratio");
|
|
74
74
|
--type-ratio-small: token("font.size.ratioSmall");
|
|
75
|
-
--base-font-size: token("font.size.
|
|
75
|
+
--base-font-size: max(1rem, token("font.size.basePx"));
|
|
76
76
|
--font-size: var(--base-font-size);
|
|
77
77
|
--font-size-s: calc(var(--base-font-size) / var(--type-ratio-small));
|
|
78
78
|
--font-size-xs: calc(var(--font-size-s) / var(--type-ratio-small));
|
|
@@ -111,13 +111,15 @@
|
|
|
111
111
|
--outline-style: token("utility.outline.style");
|
|
112
112
|
--_colour-outline: oklch(50% 0.3 var(--_hue-outline));
|
|
113
113
|
--outline-color: light-dark(
|
|
114
|
-
var(--
|
|
115
|
-
color-mix(in oklch, var(--
|
|
114
|
+
var(--_colour-outline),
|
|
115
|
+
color-mix(in oklch, var(--_colour-outline), white 90%)
|
|
116
116
|
);
|
|
117
117
|
|
|
118
118
|
/* Layout */
|
|
119
119
|
--container-max-width-narrow: token("size.container.narrow");
|
|
120
120
|
--container-max-width: token("size.container.aligned");
|
|
121
|
+
--gutter-min: token("size.container.gutterMin");
|
|
122
|
+
--gutter-max: token("size.container.gutterMax");
|
|
121
123
|
--gap-s: token("size.gap.s");
|
|
122
124
|
--gap: token("size.gap.m");
|
|
123
125
|
--gap-l: token("size.gap.l");
|
package/src/react.ts
CHANGED
|
@@ -6,18 +6,33 @@ export {
|
|
|
6
6
|
default as LinkComponentProvider,
|
|
7
7
|
useLinkComponent,
|
|
8
8
|
} from "./Utility/Context/LinkComponent"
|
|
9
|
-
export { default as Accordion } from "./Component/Accordion/Accordion"
|
|
10
9
|
export { default as Heading } from "./Atom/Heading/Heading"
|
|
11
10
|
export { default as Media } from "./Atom/Media/Media"
|
|
12
11
|
export { default as Link } from "./Atom/Link/Link"
|
|
13
12
|
export { default as Text } from "./Atom/Text/Text"
|
|
14
13
|
export { default as Video } from "./Atom/Video/Video"
|
|
15
14
|
export { default as Button } from "./Atom/Button/Button"
|
|
15
|
+
export {
|
|
16
|
+
default as Accordion,
|
|
17
|
+
useAccordion,
|
|
18
|
+
} from "./Component/Accordion/Accordion"
|
|
19
|
+
export { default as AccordionTitle } from "./Component/Accordion/Components/AccordionTitle"
|
|
20
|
+
export { default as AccordionTitleIcon } from "./Component/Accordion/Components/AccordionTitleIcon"
|
|
21
|
+
export { default as AccordionContent } from "./Component/Accordion/Components/AccordionContent"
|
|
22
|
+
export { default as Breadcrumb } from "./Component/Breadcrumb/Breadcrumb"
|
|
16
23
|
export { default as Card } from "./Component/Card/Card"
|
|
24
|
+
export { default as CardContent } from "./Component/Card/Components/CardContent"
|
|
25
|
+
export { default as CardMedia } from "./Component/Card/Components/CardMedia"
|
|
17
26
|
export { default as ContentBlock } from "./Component/ContentBlock/ContentBlock"
|
|
18
|
-
export { default as
|
|
27
|
+
export { default as ContentBlockContent } from "./Component/ContentBlock/Components/ContentBlockContent"
|
|
28
|
+
export { default as ContentBlockMedia } from "./Component/ContentBlock/Components/ContentBlockMedia"
|
|
29
|
+
export { default as Dialog, useDialog } from "./Component/Dialog/Dialog"
|
|
30
|
+
export { default as DialogContent } from "./Component/Dialog/Components/DialogContent"
|
|
31
|
+
export { default as DialogCloseButton } from "./Component/Dialog/Components/DialogCloseButton"
|
|
19
32
|
export { default as InPageNavigation } from "./Component/InPageNavigation/InPageNavigation"
|
|
20
33
|
export { default as useInPageNavigation } from "./Component/InPageNavigation/Hooks/useInPageNavigation"
|
|
34
|
+
export { default as InPageAlert } from "./Component/InPageAlert/InPageAlert"
|
|
35
|
+
export { default as GlobalAlert } from "./Component/GlobalAlert/GlobalAlert"
|
|
21
36
|
export {
|
|
22
37
|
default as FormCheckbox,
|
|
23
38
|
Checkbox,
|
|
@@ -49,21 +64,29 @@ export {
|
|
|
49
64
|
default as PaginationProvider,
|
|
50
65
|
usePagination,
|
|
51
66
|
} from "./Component/Pagination/Components/PaginationContext"
|
|
67
|
+
export { default as Sticky } from "./Component/Sticky/Sticky"
|
|
52
68
|
export { default as Tabs, useTabContext } from "./Component/Tabs/Tabs"
|
|
69
|
+
export { default as Tab } from "./Component/Tabs/Components/Tab"
|
|
70
|
+
export { default as TabPanel } from "./Component/Tabs/Components/TabPanel"
|
|
71
|
+
export { default as TabList } from "./Component/Tabs/Components/TabList"
|
|
72
|
+
export { default as TabDropMenu } from "./Component/Tabs/Components/TabDropMenu"
|
|
53
73
|
export { default as Tag } from "./Component/Tag/Tag"
|
|
54
74
|
export { default as ListItem } from "./Component/ListItem/ListItem"
|
|
55
|
-
export { default as
|
|
75
|
+
export { default as ListItemContent } from "./Component/ListItem/Components/ListItemContent"
|
|
76
|
+
export { default as ListItemMedia } from "./Component/ListItem/Components/ListItemMedia"
|
|
56
77
|
export { default as Navigation } from "./Component/Navigation/Navigation"
|
|
57
78
|
export { default as NavigationDropdown } from "./Component/Navigation/Dropdown"
|
|
79
|
+
export { default as NavigationDropdownLevel } from "./Component/Navigation/Components/DropdownLevel"
|
|
58
80
|
export { default as DropMenu } from "./Component/DropMenu/DropMenu"
|
|
59
|
-
export { default as DropMenuItem } from "./Component/DropMenu/Components/DropMenuItem"
|
|
60
|
-
export { default as ResultsBar } from "./Component/ResultsBar/ResultsBar"
|
|
61
|
-
export { default as ResultsBarInfo } from "./Component/ResultsBar/Components/ResultsBarInfo"
|
|
62
|
-
export { default as ResultsBarSort } from "./Component/ResultsBar/Components/ResultsBarSort"
|
|
63
81
|
export {
|
|
64
82
|
default as DropMenuProvider,
|
|
65
83
|
useDropMenuContext,
|
|
66
84
|
} from "./Component/DropMenu/Components/DropMenuContext"
|
|
85
|
+
export { default as DropMenuItem } from "./Component/DropMenu/Components/DropMenuItem"
|
|
86
|
+
export { default as ResultsBar } from "./Component/ResultsBar/ResultsBar"
|
|
87
|
+
export { default as ResultsBarInfo } from "./Component/ResultsBar/Components/ResultsBarInfo"
|
|
88
|
+
export { default as ResultsBarSort } from "./Component/ResultsBar/Components/ResultsBarSort"
|
|
89
|
+
|
|
67
90
|
export { default as useLocalStorage } from "./Utility/Hooks/useLocalStorage"
|
|
68
91
|
export { default as useMediaQuery } from "./Utility/Hooks/useMediaQuery"
|
|
69
92
|
export { default as useToggle } from "./Utility/Hooks/useToggle"
|
package/src/tokens.js
CHANGED
|
@@ -65,7 +65,7 @@ export default {
|
|
|
65
65
|
size: {
|
|
66
66
|
ratioSmall: 1.125,
|
|
67
67
|
ratio: 1.25,
|
|
68
|
-
|
|
68
|
+
basePx: "16px",
|
|
69
69
|
diff: 0.3,
|
|
70
70
|
},
|
|
71
71
|
},
|
|
@@ -97,6 +97,8 @@ export default {
|
|
|
97
97
|
minus: "8rem",
|
|
98
98
|
aligned: "76ch",
|
|
99
99
|
narrow: "58ch",
|
|
100
|
+
gutterMin: global.size.s,
|
|
101
|
+
gutterMax: global.size.l,
|
|
100
102
|
},
|
|
101
103
|
},
|
|
102
104
|
utility: {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utilities-BeWkujCZ.js","sources":["../../../node_modules/.pnpm/js-cookie@3.0.5/node_modules/js-cookie/dist/js.cookie.mjs","../../../src/Utility/utilities.ts"],"sourcesContent":["/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/* eslint-disable no-console */\n/**\n * @file utilities.\n */\n\nexport { default as DisclosureWidget } from \"./Elements/disclosure-widget\"\nexport type { DisclosureWidgetEvent } from \"./Elements/disclosure-widget\"\nexport { default as Keyboard } from \"./Elements/keyboard\"\nexport { default as CookieCompliance } from \"./Elements/cookie-compliance\"\nexport { default as IntersectionLoader } from \"./Elements/io-loader\"\nexport { default as BreakpointLoader } from \"./Elements/breakpoint-loader\"\n\nexport const makeAnchor = (string: string, length: number = 20): string => {\n if (typeof string !== \"string\" || !string) return \"\"\n // Convert the string to lowercase and remove non-alphanumeric characters.\n let id: string = string\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, \"-\")\n .replace(/[^-a-z0-9]/g, \"\")\n .replace(/[\\n\\r]+|[\\s]{2,}/g, \"\")\n // Ensure we start the id with a letter.\n // Only run this several times.\n const times: number[] = [...Array(6).keys()]\n times.forEach((): void => {\n if (!id.charAt(0).match(/[a-z]/g)) {\n id = id.substring(1)\n }\n })\n // Cut to the desired length.\n if (length) id = id.substring(0, length + 1)\n\n return id\n}\n\nexport const makeCamelCase = (string: string): string => {\n if (typeof string !== \"string\" || !string) return \"\"\n const output: string = string\n .trim()\n .replace(\n /(?:^\\w|[A-Z]|\\b\\w|\\s+)/g,\n (match: string, index: number): string => {\n if (+match === 0) return \"\"\n return index === 0 ? match.toLowerCase() : match.toUpperCase()\n },\n )\n return output.replace(/[^\\w\\s]/gi, \"\")\n}\n\nexport const isInternalLink = (\n href: string,\n internalHostnames: string[],\n): boolean => {\n if (typeof href !== \"string\" || !href || !Array.isArray(internalHostnames)) {\n return false\n }\n\n try {\n const { hostname }: { hostname: string } = new URL(href)\n return (\n window.location.hostname === hostname ||\n internalHostnames.includes(hostname)\n )\n } catch (error) {\n console.error(error)\n return false\n }\n}\n\nexport const createElement = (string: string): Element | null => {\n try {\n const el: HTMLDivElement = document.createElement(\"div\")\n el.innerHTML = string\n return el.firstElementChild\n } catch (error) {\n console.error(error)\n return null\n }\n}\n\nexport const getElementBox = (\n element: HTMLElement,\n once: boolean = false,\n content: boolean = false,\n): void => {\n const observer: ResizeObserver = new ResizeObserver(entries => {\n entries.forEach(({ contentBoxSize, borderBoxSize }) => {\n const [{ inlineSize, blockSize }] = content\n ? contentBoxSize\n : borderBoxSize\n element.style.setProperty(\"--inline-size\", `${inlineSize.toFixed(1)}px`)\n element.style.setProperty(\"--block-size\", `${blockSize.toFixed(1)}px`)\n if (once) observer.unobserve(element)\n })\n })\n observer.observe(element)\n}\n\nexport const handleOutsideClick = (\n event: MouseEvent,\n container: HTMLElement,\n callback: () => void,\n ignored: HTMLElement[] = [],\n): void => {\n const {\n target,\n clientY,\n clientX,\n }: { target: EventTarget; clientY: number; clientX: number } = event\n // FF treating option click as outside click.\n const isOption: boolean =\n target instanceof HTMLOptionElement || target instanceof HTMLSelectElement\n // Or it's in the ignored list.\n\n const isIgnored: HTMLElement[] = ignored?.filter(\n item => item === target || item.contains(target as HTMLElement),\n )\n // Exit early if we can.\n if (isIgnored.length || isOption) return\n // Check if click is inside the dialog content.\n const obs: IntersectionObserver = new IntersectionObserver(\n ([{ boundingClientRect }]) => {\n const { top, height, width, left } = boundingClientRect\n const isInDialog: boolean =\n top <= clientY &&\n clientY <= top + height &&\n left <= clientX &&\n clientX <= left + width\n\n if (!isInDialog) {\n callback()\n }\n obs.disconnect()\n },\n )\n obs.observe(container)\n}\n\nexport const handleEscape = (\n event: KeyboardEvent,\n callback: () => void,\n): void => {\n const { key } = event\n if (key === \"Escape\") {\n callback()\n }\n}\n\nexport const loadOnReady = (\n callback: (this: Window, ev: Event) => void,\n name: string,\n): void => {\n // @ts-expect-error Drupal is global\n if (Object.hasOwn(window, \"Drupal\") && Object.hasOwn(Drupal, \"behaviors\")) {\n // @ts-expect-error Drupal is global\n Drupal.behaviors[name] = {\n attach: callback,\n }\n return\n }\n window.addEventListener(\"DOMContentLoaded\", callback.bind(document, document))\n}\n"],"names":["converter"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { JSX, ReactNode, PropsWithChildren } from "react"
|
|
2
|
-
import classNames from "classnames"
|
|
3
|
-
import Heading from "../../Atom/Heading/Heading"
|
|
4
|
-
import { HeadingStyles, BackgroundStyles } from "../../enums"
|
|
5
|
-
import { HeadingTypes, AsTypes } from "@pnx-mixtape/ids-shape"
|
|
6
|
-
import Icon, { IconProps } from "../../Atom/Icon/Icon"
|
|
7
|
-
|
|
8
|
-
type TileProps = PropsWithChildren & {
|
|
9
|
-
title: string
|
|
10
|
-
icon?: IconProps
|
|
11
|
-
intro?: ReactNode
|
|
12
|
-
headingLevel?: HeadingTypes
|
|
13
|
-
headingModifier?: HeadingStyles
|
|
14
|
-
as?: AsTypes
|
|
15
|
-
background?: BackgroundStyles
|
|
16
|
-
className?: string
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const Tile = ({
|
|
20
|
-
title,
|
|
21
|
-
children,
|
|
22
|
-
icon = null,
|
|
23
|
-
intro = null,
|
|
24
|
-
headingLevel = HeadingTypes.THREE,
|
|
25
|
-
headingModifier = null,
|
|
26
|
-
as = AsTypes.DIV,
|
|
27
|
-
className = null,
|
|
28
|
-
background = BackgroundStyles.BOX,
|
|
29
|
-
}: TileProps): JSX.Element => {
|
|
30
|
-
const Tag: JSX.ElementType = `${as}` as unknown as JSX.ElementType
|
|
31
|
-
return (
|
|
32
|
-
<Tag
|
|
33
|
-
className={classNames("mx-card", "mx-card--block", className, {
|
|
34
|
-
[`mx-background--${background}`]: background,
|
|
35
|
-
})}
|
|
36
|
-
>
|
|
37
|
-
{icon && (
|
|
38
|
-
<div className="mx-card__icon">
|
|
39
|
-
<Icon {...icon} />
|
|
40
|
-
</div>
|
|
41
|
-
)}
|
|
42
|
-
<div className={classNames("mx-card__content", "mx-vertical-flow-flex")}>
|
|
43
|
-
{intro}
|
|
44
|
-
<Heading as={headingLevel} modifier={headingModifier}>
|
|
45
|
-
{title}
|
|
46
|
-
</Heading>
|
|
47
|
-
{children}
|
|
48
|
-
</div>
|
|
49
|
-
</Tag>
|
|
50
|
-
)
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export default Tile
|