{"version":3,"file":"component---src-pages-index-js-ec38dc92ab05eb8002eb.js","mappings":"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","sources":["webpack://gatsby-starter-default/./src/components/Tool.js","webpack://gatsby-starter-default/./src/utils/filterData.js","webpack://gatsby-starter-default/./src/components/ButtonFilter.js","webpack://gatsby-starter-default/./src/images/toolkit.png","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack://gatsby-starter-default/./node_modules/clsx/dist/clsx.m.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/helpers/count.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/components/Tabs.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/components/TabList.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/components/Tab.js","webpack://gatsby-starter-default/./node_modules/react-tabs/esm/components/TabPanel.js","webpack://gatsby-starter-default/./src/images/funding.png","webpack://gatsby-starter-default/./src/images/municipal.png","webpack://gatsby-starter-default/./src/images/connections.png","webpack://gatsby-starter-default/./src/images/abstract.png","webpack://gatsby-starter-default/./src/components/Preface.js","webpack://gatsby-starter-default/./src/pages/index.js"],"sourcesContent":["import React from \"react\";\r\nimport Icon from \"./Icon\";\r\nimport { Link } from \"gatsby\";\r\nimport { focusAreas, principles } from \"../utils/icons\";\r\n\r\nconst Tool = ({ tool }) => {\r\n let fileName = tool.title;\r\n fileName = fileName.replace(/\\s|[()]|\\/|\\,/g, \"\").toLowerCase();\r\n\r\n return (\r\n
\r\n
\r\n \r\n {tool.title}\r\n \r\n
\r\n {tool.focusAreas.map(focus => {\r\n return ;\r\n })}\r\n {tool.principles.map(principle => {\r\n return ;\r\n })}\r\n
\r\n
\r\n {tool.html ? (\r\n \r\n ) : (\r\n
\r\n Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\r\n eiusmod tempor incididunt ut labore et dolore magna aliqua. Elementum\r\n pulvinar etiam non quam lacus suspendisse faucibus.\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default Tool;\r\n","/**\r\n * takes in array of data and filters by either string or array of filters or also both.\r\n * @param {Array} data\r\n * @param {String Array} filter\r\n * @param {String} property\r\n * @returns Array\r\n */\r\n\r\nconst filterData = (data, filter, property) => {\r\n if (typeof filter === \"object\") {\r\n let checker = (arr, target) => target.every(v => arr.includes(v));\r\n if (property === \"focus\")\r\n return data.filter(data => checker(data.focusAreas, filter));\r\n if (property === \"principle\")\r\n return data.filter(data => checker(data.principles, filter));\r\n }\r\n return data.filter(\r\n data =>\r\n data.title.toLowerCase().includes(filter.toLowerCase()) ||\r\n data.html.toLowerCase().includes(filter.toLowerCase())\r\n );\r\n};\r\n\r\nexport default filterData;\r\n","import React, { useContext } from \"react\";\r\nimport AppContext from \"../utils/AppContext\";\r\nimport { focusAreas, principles } from \"../utils/icons\";\r\n\r\nconst ButtonFilter = () => {\r\n const {\r\n nameFilter,\r\n focusFilter,\r\n principleFilter,\r\n setNameFilter,\r\n setFocusFilter,\r\n setPrincipleFilter,\r\n } = useContext(AppContext);\r\n\r\n /**\r\n * captures button click event and calls function to update the array of filters associated with that button\r\n * @param {Event} event\r\n */\r\n const toggleFilter = event => {\r\n event.target.classList.toggle(\"grayscale\");\r\n const typeAndElem = event.target.firstChild.id.split(/\\s(.*)/s);\r\n const filterArr =\r\n typeAndElem[0] === \"focus\" ? focusFilter : principleFilter;\r\n const setFilterFunc =\r\n typeAndElem[0] === \"focus\" ? setFocusFilter : setPrincipleFilter;\r\n setFilter(filterArr, typeAndElem[1], setFilterFunc);\r\n };\r\n\r\n /**\r\n * takes an array and appends the filter or removes the filter\r\n * @param {Array} filterArr\r\n * @param {String} filterElem\r\n * @param {Function} setFilterFunc\r\n * @returns\r\n */\r\n const setFilter = (filterArr, filterElem, setFilterFunc) => {\r\n if (!filterArr.includes(filterElem)) {\r\n return setFilterFunc([...filterArr, filterElem]);\r\n } else if (filterArr.includes(filterElem)) {\r\n const oldState = filterArr.filter(el => el !== filterElem);\r\n return setFilterFunc(oldState);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n setNameFilter(e.target.value)}\r\n value={nameFilter}\r\n className=\"w-5/6 md:w-[90%] block border border-[#cccccc] p-1\"\r\n style={{ borderRadius: \"4px\" }}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n Filter by Focus Area:\r\n
\r\n {Object.keys(focusAreas).map(focus => {\r\n return (\r\n \r\n \r\n \r\n {focus}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n Filter by Principle:\r\n
\r\n {Object.keys(principles).map(principle => {\r\n return (\r\n \r\n \r\n \r\n {principle}\r\n \r\n \r\n );\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ButtonFilter;\r\n","export default __webpack_public_path__ + \"static/toolkit-a668a7b05ec865bfaed33662283e5e0f.png\";","function makeTypeChecker(tabsRole) {\n return function (element) {\n return !!element.type && element.type.tabsRole === tabsRole;\n };\n}\n\nexport var isTab = makeTypeChecker(\"Tab\");\nexport var isTabList = makeTypeChecker(\"TabList\");\nexport var isTabPanel = makeTypeChecker(\"TabPanel\");","import { Children, cloneElement } from \"react\";\nimport { isTabPanel, isTab, isTabList } from \"./elementTypes\";\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, function (child) {\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && typeof child.props.children === \"object\") {\n return cloneElement(child, Object.assign({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\nexport function deepForEach(children, callback) {\n return Children.forEach(children, function (child) {\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && typeof child.props.children === \"object\") {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}","function toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","import { deepForEach } from \"./childrenDeepMap\";\nimport { isTab } from \"./elementTypes\";\nexport function getTabsCount(children) {\n var tabCount = 0;\n deepForEach(children, function (child) {\n if (isTab(child)) tabCount++;\n });\n return tabCount;\n}","var _excluded = [\"children\", \"className\", \"disabledTabClassName\", \"domRef\", \"focus\", \"forceRenderTabPanel\", \"onSelect\", \"selectedIndex\", \"selectedTabClassName\", \"selectedTabPanelClassName\", \"environment\", \"disableUpDownKeys\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { cloneElement, useRef, useId } from \"react\";\nimport cx from \"clsx\";\nimport { childrenPropType } from \"../helpers/propTypes\";\nimport { getTabsCount as getTabsCountHelper } from \"../helpers/count\";\nimport { deepMap } from \"../helpers/childrenDeepMap\";\nimport { isTabList, isTabPanel, isTab } from \"../helpers/elementTypes\";\n\nfunction isNode(node) {\n return node && \"getAttribute\" in node;\n}\n\nfunction isTabNode(node) {\n return isNode(node) && node.getAttribute(\"data-rttab\");\n}\n\nfunction isTabDisabled(node) {\n return isNode(node) && node.getAttribute(\"aria-disabled\") === \"true\";\n}\n\nvar canUseActiveElement;\n\nfunction determineCanUseActiveElement(environment) {\n var env = environment || (typeof window !== \"undefined\" ? window : undefined);\n\n try {\n canUseActiveElement = !!(typeof env !== \"undefined\" && env.document && env.document.activeElement);\n } catch (e) {\n canUseActiveElement = false;\n }\n}\n\nvar defaultProps = {\n className: \"react-tabs\",\n focus: false\n};\n\nvar UncontrolledTabs = function UncontrolledTabs(props) {\n var tabNodes = useRef([]);\n var tabIds = useRef([]);\n\n var _ref = useRef();\n\n function setSelected(index, event) {\n if (index < 0 || index >= getTabsCount()) return;\n var onSelect = props.onSelect,\n selectedIndex = props.selectedIndex;\n onSelect(index, selectedIndex, event);\n }\n\n function getNextTab(index) {\n var count = getTabsCount();\n\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(getTab(i))) {\n return i;\n }\n }\n\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(getTab(_i))) {\n return _i;\n }\n }\n\n return index;\n }\n\n function getPrevTab(index) {\n var i = index;\n\n while (i--) {\n if (!isTabDisabled(getTab(i))) {\n return i;\n }\n }\n\n i = getTabsCount();\n\n while (i-- > index) {\n if (!isTabDisabled(getTab(i))) {\n return i;\n }\n }\n\n return index;\n }\n\n function getFirstTab() {\n var count = getTabsCount();\n\n for (var i = 0; i < count; i++) {\n if (!isTabDisabled(getTab(i))) {\n return i;\n }\n }\n\n return null;\n }\n\n function getLastTab() {\n var i = getTabsCount();\n\n while (i--) {\n if (!isTabDisabled(getTab(i))) {\n return i;\n }\n }\n\n return null;\n }\n\n function getTabsCount() {\n var children = props.children;\n return getTabsCountHelper(children);\n }\n\n function getTab(index) {\n return tabNodes.current[\"tabs-\" + index];\n }\n\n function getChildren() {\n var index = 0;\n var children = props.children,\n disabledTabClassName = props.disabledTabClassName,\n focus = props.focus,\n forceRenderTabPanel = props.forceRenderTabPanel,\n selectedIndex = props.selectedIndex,\n selectedTabClassName = props.selectedTabClassName,\n selectedTabPanelClassName = props.selectedTabPanelClassName,\n environment = props.environment;\n tabIds.current = tabIds.current || [];\n var diff = tabIds.current.length - getTabsCount();\n var id = useId();\n\n while (diff++ < 0) {\n tabIds.current.push(\"\" + id + tabIds.current.length);\n }\n\n return deepMap(children, function (child) {\n var result = child;\n\n if (isTabList(child)) {\n var listIndex = 0;\n var wasTabFocused = false;\n\n if (canUseActiveElement == null) {\n determineCanUseActiveElement(environment);\n }\n\n var env = environment || (typeof window !== \"undefined\" ? window : undefined);\n\n if (canUseActiveElement && env) {\n wasTabFocused = React.Children.toArray(child.props.children).filter(isTab).some(function (tab, i) {\n return env.document.activeElement === getTab(i);\n });\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, function (tab) {\n var key = \"tabs-\" + listIndex;\n var selected = selectedIndex === listIndex;\n var props = {\n tabRef: function tabRef(node) {\n tabNodes.current[key] = node;\n },\n id: tabIds.current[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n listIndex++;\n return cloneElement(tab, props);\n })\n });\n } else if (isTabPanel(child)) {\n var _props = {\n id: tabIds.current[index],\n selected: selectedIndex === index\n };\n if (forceRenderTabPanel) _props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) _props.selectedClassName = selectedTabPanelClassName;\n index++;\n result = cloneElement(child, _props);\n }\n\n return result;\n });\n }\n\n function handleKeyDown(e) {\n var direction = props.direction,\n disableUpDownKeys = props.disableUpDownKeys;\n\n if (isTabFromContainer(e.target)) {\n var index = props.selectedIndex;\n var preventDefault = false;\n var useSelectedIndex = false;\n\n if (e.code === \"Space\" || e.keyCode === 32 || e.code === \"Enter\" || e.keyCode === 13) {\n preventDefault = true;\n useSelectedIndex = false;\n handleClick(e);\n }\n\n if (e.code === \"ArrowLeft\" || e.keyCode === 37 || !disableUpDownKeys && (e.keyCode === 38 || e.code === \"ArrowUp\")) {\n if (direction === \"rtl\") {\n index = getNextTab(index);\n } else {\n index = getPrevTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.code === \"ArrowRight\" || e.keyCode === 39 || !disableUpDownKeys && (e.keyCode === 40 || e.code === \"ArrowDown\")) {\n if (direction === \"rtl\") {\n index = getPrevTab(index);\n } else {\n index = getNextTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 35 || e.code === \"End\") {\n index = getLastTab();\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 36 || e.code === \"Home\") {\n index = getFirstTab();\n preventDefault = true;\n useSelectedIndex = true;\n }\n\n if (preventDefault) {\n e.preventDefault();\n }\n\n if (useSelectedIndex) {\n setSelected(index, e);\n }\n }\n }\n\n function handleClick(e) {\n var node = e.target;\n\n do {\n if (isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n setSelected(index, e);\n return;\n }\n } while ((node = node.parentNode) != null);\n }\n\n function isTabFromContainer(node) {\n if (!isTabNode(node)) {\n return false;\n }\n\n var nodeAncestor = node.parentElement;\n\n do {\n if (nodeAncestor === _ref.current) return true;\n if (nodeAncestor.getAttribute(\"data-rttabs\")) break;\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n }\n\n var children = props.children,\n className = props.className,\n disabledTabClassName = props.disabledTabClassName,\n domRef = props.domRef,\n focus = props.focus,\n forceRenderTabPanel = props.forceRenderTabPanel,\n onSelect = props.onSelect,\n selectedIndex = props.selectedIndex,\n selectedTabClassName = props.selectedTabClassName,\n selectedTabPanelClassName = props.selectedTabPanelClassName,\n environment = props.environment,\n disableUpDownKeys = props.disableUpDownKeys,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n return React.createElement(\"div\", Object.assign({}, attributes, {\n className: cx(className),\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ref: function ref(node) {\n _ref.current = node;\n if (domRef) domRef(node);\n },\n \"data-rttabs\": true\n }), getChildren());\n};\n\nUncontrolledTabs.defaultProps = defaultProps;\nexport default UncontrolledTabs;","import React, { useEffect, useState } from \"react\";\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from \"../helpers/propTypes\";\nimport UncontrolledTabs from \"./UncontrolledTabs\";\nimport { getTabsCount } from \"../helpers/count\";\nvar MODE_CONTROLLED = 0;\nvar MODE_UNCONTROLLED = 1;\nvar defaultProps = {\n defaultFocus: false,\n focusTabOnClick: true,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null,\n environment: null,\n disableUpDownKeys: false\n};\n\nvar getModeFromProps = function getModeFromProps(props) {\n return props.selectedIndex === null ? MODE_UNCONTROLLED : MODE_CONTROLLED;\n};\n\nvar checkForIllegalModeChange = function checkForIllegalModeChange(props, mode) {\n if (process.env.NODE_ENV !== \"production\" && mode != undefined && mode !== getModeFromProps(props)) {\n throw new Error(\"Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see https://github.com/reactjs/react-tabs#controlled-vs-uncontrolled-mode.\");\n }\n};\n\nvar Tabs = function Tabs(props) {\n var children = props.children,\n defaultFocus = props.defaultFocus,\n defaultIndex = props.defaultIndex,\n focusTabOnClick = props.focusTabOnClick,\n onSelect = props.onSelect;\n\n var _useState = useState(defaultFocus),\n focus = _useState[0],\n setFocus = _useState[1];\n\n var _useState2 = useState(getModeFromProps(props)),\n mode = _useState2[0];\n\n var _useState3 = useState(mode === MODE_UNCONTROLLED ? defaultIndex || 0 : null),\n selectedIndex = _useState3[0],\n setSelectedIndex = _useState3[1];\n\n useEffect(function () {\n setFocus(false);\n }, []);\n\n if (mode === MODE_UNCONTROLLED) {\n var tabsCount = getTabsCount(children);\n useEffect(function () {\n if (selectedIndex != null) {\n var maxTabIndex = Math.max(0, tabsCount - 1);\n setSelectedIndex(Math.min(selectedIndex, maxTabIndex));\n }\n }, [tabsCount]);\n }\n\n checkForIllegalModeChange(props, mode);\n\n var handleSelected = function handleSelected(index, last, event) {\n if (typeof onSelect === \"function\") {\n if (onSelect(index, last, event) === false) return;\n }\n\n if (focusTabOnClick) {\n setFocus(true);\n }\n\n if (mode === MODE_UNCONTROLLED) {\n setSelectedIndex(index);\n }\n };\n\n var subProps = Object.assign({}, props);\n subProps.focus = focus;\n subProps.onSelect = handleSelected;\n\n if (selectedIndex != null) {\n subProps.selectedIndex = selectedIndex;\n }\n\n delete subProps.defaultFocus;\n delete subProps.defaultIndex;\n delete subProps.focusTabOnClick;\n return React.createElement(UncontrolledTabs, subProps, children);\n};\n\nTabs.defaultProps = defaultProps;\nTabs.tabsRole = \"Tabs\";\nexport default Tabs;","var _excluded = [\"children\", \"className\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React from \"react\";\nimport cx from \"clsx\";\nvar defaultProps = {\n className: \"react-tabs__tab-list\"\n};\n\nvar TabList = function TabList(props) {\n var children = props.children,\n className = props.className,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n return React.createElement(\"ul\", Object.assign({}, attributes, {\n className: cx(className),\n role: \"tablist\"\n }), children);\n};\n\nTabList.tabsRole = \"TabList\";\nTabList.defaultProps = defaultProps;\nexport default TabList;","var _excluded = [\"children\", \"className\", \"disabled\", \"disabledClassName\", \"focus\", \"id\", \"selected\", \"selectedClassName\", \"tabIndex\", \"tabRef\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React, { useEffect, useRef } from \"react\";\nimport cx from \"clsx\";\nvar DEFAULT_CLASS = \"react-tabs__tab\";\nvar defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + \"--disabled\",\n focus: false,\n id: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\n\nvar Tab = function Tab(props) {\n var _cx;\n\n var nodeRef = useRef();\n\n var children = props.children,\n className = props.className,\n disabled = props.disabled,\n disabledClassName = props.disabledClassName,\n focus = props.focus,\n id = props.id,\n selected = props.selected,\n selectedClassName = props.selectedClassName,\n tabIndex = props.tabIndex,\n tabRef = props.tabRef,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n useEffect(function () {\n if (selected && focus) {\n nodeRef.current.focus();\n }\n }, [selected, focus]);\n return React.createElement(\"li\", Object.assign({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n nodeRef.current = node;\n if (tabRef) tabRef(node);\n },\n role: \"tab\",\n id: \"tab\" + id,\n \"aria-selected\": selected ? \"true\" : \"false\",\n \"aria-disabled\": disabled ? \"true\" : \"false\",\n \"aria-controls\": \"panel\" + id,\n tabIndex: tabIndex || (selected ? \"0\" : null),\n \"data-rttab\": true\n }), children);\n};\n\nTab.tabsRole = \"Tab\";\nTab.defaultProps = defaultProps;\nexport default Tab;","var _excluded = [\"children\", \"className\", \"forceRender\", \"id\", \"selected\", \"selectedClassName\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport React from \"react\";\nimport cx from \"clsx\";\nvar DEFAULT_CLASS = \"react-tabs__tab-panel\";\nvar defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\n\nvar TabPanel = function TabPanel(props) {\n var _cx;\n\n var children = props.children,\n className = props.className,\n forceRender = props.forceRender,\n id = props.id,\n selected = props.selected,\n selectedClassName = props.selectedClassName,\n attributes = _objectWithoutPropertiesLoose(props, _excluded);\n\n return React.createElement(\"div\", Object.assign({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: \"tabpanel\",\n id: \"panel\" + id,\n \"aria-labelledby\": \"tab\" + id\n }), forceRender || selected ? children : null);\n};\n\nTabPanel.tabsRole = \"TabPanel\";\nTabPanel.defaultProps = defaultProps;\nexport default TabPanel;","export default __webpack_public_path__ + \"static/funding-662499a4c53f2482649faa1ae6f5569a.png\";","export default __webpack_public_path__ + \"static/municipal-e08e1db3fa3a5405571c242421a914cf.png\";","export default __webpack_public_path__ + \"static/connections-82ad5b465f49e291f53c8edfa74216f4.png\";","export default __webpack_public_path__ + \"static/abstract-3096252c41c363662d23ac98ca9dab1e.png\";","import React, { useContext, useEffect } from \"react\";\r\nimport ToolKit from \"../images/toolkit.png\";\r\nimport { Tabs, Tab, TabList, TabPanel } from \"react-tabs\";\r\nimport Funding from \"../images/funding.png\";\r\nimport Municipal from \"../images/municipal.png\";\r\nimport Connections from \"../images/connections.png\";\r\nimport Abstract from \"../images/abstract.png\";\r\nimport { flushSync } from \"react-dom\";\r\nimport Icon from \"./Icon\";\r\nimport { focusAreas, principles } from \"../utils/icons\";\r\nimport AppContext from \"../utils/AppContext\";\r\n\r\nconst Preface = () => {\r\n const { info, isVisible, setIsVisible } = useContext(AppContext);\r\n\r\n useEffect(() => {\r\n const listenToScroll = () => {\r\n let heightToHideFrom = Math.floor(\r\n info.current.getBoundingClientRect().height\r\n );\r\n const winScroll =\r\n document.body.scrollTop || document.documentElement.scrollTop;\r\n\r\n if (winScroll >= heightToHideFrom) {\r\n if (isVisible) {\r\n flushSync(() => setIsVisible(false));\r\n window.scrollTo({\r\n top: document.body.scrollTop.toString(),\r\n behavior: \"auto\",\r\n });\r\n }\r\n }\r\n };\r\n\r\n window.addEventListener(\"scroll\", listenToScroll);\r\n return () => window.removeEventListener(\"scroll\", listenToScroll);\r\n }, [isVisible, setIsVisible, info]);\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n About\r\n Principles\r\n Focus Areas\r\n \r\n
\r\n \r\n
\r\n \r\n The Delaware Valley Regional Planning Commission (DVRPC)\r\n {\" \"}\r\n is responsible for long-range planning at the regional scale,\r\n but implementation of the Plan—and much of our collective\r\n future—is based on how the region’s 350 municipalities use\r\n their home-rule authority to influence land use, provide\r\n public services, protect natural and historic resources, and,\r\n ultimately, create the places we call home. DVRPC has designed\r\n this Municipal Implementation Toolbox to serve as a guide for\r\n municipalities to help implement the goals of{\" \"}\r\n Connections 2050, the region’s Long-Range Plan. It\r\n contains resources, case studies, ordinances, and indicators\r\n for 75 tools.{\" \"}\r\n \r\n Click the tabs above to learn more about Principles and\r\n Focus Areas, and scroll down to find the tools that best fit\r\n your municipality’s needs by using the interactive filters.\r\n \r\n
\r\n
\r\n \r\n \r\n Funding Opportunities\r\n \r\n \r\n \r\n Building Municipal Capacity\r\n \r\n \r\n \r\n
Connections 2050 Plan
\r\n \r\n \r\n \r\n Abstract\r\n \r\n
\r\n
\r\n \r\n
\r\n The Connections 2050 Plan is built on three principles:\r\n
\r\n
\r\n
\r\n \r\n
\r\n EQUITY: commitment\r\n to public outreach and participatory planning to hear more\r\n voices in the development of communities that we live in,\r\n and to increase everyone’s access to the transportation\r\n infrastructure needed for all of our daily activities.\r\n
\r\n
\r\n
\r\n \r\n
\r\n SUSTAINABILITY:{\" \"}\r\n reduction of emissions to a net zero level by 2050 through\r\n renewable energy, energy management, the electrification\r\n of buildings and vehicles, and improving transit and\r\n non-motorized travel options.\r\n
\r\n
\r\n
\r\n \r\n
\r\n RESILIENCY:{\" \"}\r\n hardening our communities and their infrastructure systems\r\n or moving them out of harm’s way in the face of\r\n anticipated flooding; ecosystem degradation; fishing and\r\n farming disruptions; and human health risks.\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n These principles are applied to the focus areas of the Plan:\r\n
\r\n
\r\n
\r\n \r\n
\r\n COMMUNITIES:{\" \"}\r\n inclusive, healthy, and walkable communities that offer a\r\n better quality of life for all residents, using the more\r\n than 135 Plan Centers as a framework for infrastructure\r\n investments.\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n MULTIMODAL TRANSPORTATION:\r\n {\" \"}\r\n safe, healthy, and environmentally friendly transportation\r\n accessible to a wide range of users for a variety of trip\r\n purposes.\r\n
\r\n
\r\n
\r\n \r\n
\r\n ECONOMY:{\" \"}\r\n accelerating the transition to a more environmentally\r\n friendly economy, enhancing workforce skills, and\r\n supporting inclusive growth.\r\n
\r\n
\r\n
\r\n \r\n
\r\n ENVIRONMENT:{\" \"}\r\n protection and enhancement of natural amenities, air and\r\n water quality, open space, and farmland.\r\n
\r\n
\r\n
\r\n \r\n
\r\n REGIONAL PLANNING:{\" \"}\r\n local decisions with a regional impact that require or\r\n would benefit from coordination across municipal\r\n boundaries.\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Preface;\r\n","import React, { useContext, useEffect, useRef } from \"react\";\r\nimport Layout from \"../components/Layout\";\r\nimport Tool from \"../components/Tool\";\r\nimport filterData from \"../utils/filterData\";\r\nimport ButtonFilter from \"../components/ButtonFilter\";\r\nimport Preface from \"../components/Preface\";\r\nimport { graphql } from \"gatsby\";\r\nimport AppContext from \"../utils/AppContext\";\r\n\r\nconst IndexPage = ({ data }) => {\r\n const {\r\n isVisible,\r\n setIsVisible,\r\n tools,\r\n setTools,\r\n nameFilter,\r\n focusFilter,\r\n principleFilter,\r\n } = useContext(AppContext);\r\n let {\r\n allMarkdownRemark: { edges },\r\n } = data;\r\n // destructure frontmatter and html from nodes\r\n edges = useRef(\r\n Array.from(edges, ({ node: { frontmatter, html } }) => {\r\n return { ...frontmatter, html };\r\n })\r\n );\r\n\r\n useEffect(() => {\r\n const filters = {\r\n nameFilter: nameFilter,\r\n focusFilter: focusFilter,\r\n principleFilter: principleFilter,\r\n };\r\n\r\n let oldState = [...edges.current];\r\n Object.keys(filters).forEach(key => {\r\n let filter = filters[key];\r\n if (typeof filter === \"object\" && filter.length) {\r\n let filterName = key.split(\"Filter\")[0];\r\n oldState = filterData(oldState, filter, filterName);\r\n } else if (typeof filter === \"string\" && filter !== \"\") {\r\n oldState = filterData(oldState, filter);\r\n }\r\n });\r\n\r\n setTools(oldState);\r\n }, [nameFilter, focusFilter, principleFilter, setTools, edges]);\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n
Search Tools:
\r\n \r\n
Search results: {tools.length}
\r\n
\r\n
\r\n {tools.map(tool => {\r\n return ;\r\n })}\r\n {!tools.length && (\r\n
No tools match search...
\r\n )}\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const pageQuery = graphql`\r\n query {\r\n allMarkdownRemark(sort: { fields: [frontmatter___title], order: ASC }) {\r\n edges {\r\n node {\r\n id\r\n html\r\n frontmatter {\r\n title\r\n focusAreas\r\n principles\r\n }\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport default IndexPage;\r\n"],"names":["tool","fileName","title","replace","toLowerCase","className","Link","to","focusAreas","map","focus","Icon","image","altText","principles","principle","html","dangerouslySetInnerHTML","__html","slice","data","filter","property","checker","arr","target","every","v","includes","useContext","AppContext","nameFilter","focusFilter","principleFilter","setNameFilter","setFocusFilter","setPrincipleFilter","toggleFilter","event","classList","toggle","typeAndElem","firstChild","id","split","filterArr","setFilterFunc","setFilter","filterElem","el","type","onChange","e","value","style","borderRadius","Object","keys","onClick","alt","src","makeTypeChecker","tabsRole","element","deepMap","children","callback","Children","child","isTabChild","props","cloneElement","assign","toVal","mix","k","y","str","Array","isArray","length","tmp","x","i","arguments","tabCount","canUseActiveElement","_excluded","isNode","node","isTabNode","getAttribute","isTabDisabled","UncontrolledTabs","tabNodes","useRef","tabIds","_ref","setSelected","index","getTabsCount","onSelect","selectedIndex","getNextTab","count","getTab","_i","getPrevTab","current","handleClick","isTabFromContainer","call","parentNode","indexOf","nodeAncestor","parentElement","domRef","disabledTabClassName","attributes","forceRenderTabPanel","selectedTabClassName","selectedTabPanelClassName","environment","disableUpDownKeys","source","excluded","key","sourceKeys","_objectWithoutPropertiesLoose","onKeyDown","direction","preventDefault","useSelectedIndex","code","keyCode","getLastTab","getFirstTab","ref","diff","useId","push","result","listIndex","wasTabFocused","env","window","undefined","document","activeElement","determineCanUseActiveElement","some","tab","selected","tabRef","selectedClassName","disabledClassName","_props","forceRender","getChildren","defaultProps","Tabs","defaultFocus","defaultIndex","focusTabOnClick","_useState","useState","setFocus","_useState2","getModeFromProps","mode","_useState3","setSelectedIndex","useEffect","tabsCount","maxTabIndex","Math","max","min","subProps","last","TabList","role","DEFAULT_CLASS","Tab","_cx","nodeRef","disabled","tabIndex","TabPanel","info","isVisible","setIsVisible","listenToScroll","heightToHideFrom","floor","getBoundingClientRect","height","body","scrollTop","documentElement","flushSync","scrollTo","top","toString","behavior","addEventListener","removeEventListener","display","ToolKit","href","Funding","Municipal","Connections","Abstract","tools","setTools","edges","allMarkdownRemark","from","frontmatter","filters","oldState","forEach","filterName","filterData","Layout","position"],"sourceRoot":""}