@apia/components 2.0.2 → 2.0.4

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.
@@ -243,7 +243,7 @@ function useHandlers({
243
243
  }, 0);
244
244
  return () => {
245
245
  document.removeEventListener("keydown", handleEscape);
246
- document.removeEventListener("click", handleMouseDownOut);
246
+ document.removeEventListener("mousedown", handleMouseDownOut);
247
247
  document.removeEventListener("scroll", handleScroll);
248
248
  document.removeEventListener("mouseout", handleMouseLeave);
249
249
  };
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../src/objects/ApiaUtil/tooltips/tooltip/util.ts"],"sourcesContent":["import { isChild } from '@apia/util';\nimport { TAttachToElement, TPosition, TTooltip } from './types';\nimport { ThemeUICSSObject } from '@apia/theme';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nexport function isAttachToElementAFunction(\n attachToElement: TAttachToElement,\n): attachToElement is () => HTMLElement {\n return (\n attachToElement instanceof Function &&\n getParamNames(attachToElement).length === 0\n );\n}\n\nconst STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/gm;\nconst ARGUMENT_NAMES = /([^\\s,]+)/g;\n\nexport function getParamNames(func: object) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const fnStr = func.toString().replace(STRIP_COMMENTS, '');\n let result: string[] | RegExpMatchArray | null = fnStr\n .slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')'))\n .match(ARGUMENT_NAMES);\n if (result === null) result = [];\n\n return result;\n}\n\nfunction determineAnchorPoint({\n attachToElement,\n attachToElementAnchorPoint,\n}: Pick<TTooltip, 'attachToElementAnchorPoint'> &\n Required<Pick<TTooltip, 'attachToElement'>>) {\n let actualAnchorPoint: TPosition = { left: 0, top: 0 };\n\n const element = isAttachToElementAFunction(attachToElement)\n ? attachToElement()\n : attachToElement.current;\n\n if (element) {\n const rect = element.getBoundingClientRect();\n\n const point = attachToElementAnchorPoint ?? 'topRight';\n\n switch (point) {\n case 'bottomLeft':\n actualAnchorPoint = {\n left: rect.left,\n top: rect.bottom,\n };\n break;\n case 'bottomRight':\n actualAnchorPoint = {\n left: rect.right,\n top: rect.bottom,\n };\n break;\n case 'center':\n actualAnchorPoint = {\n left: (rect.left + rect.right) / 2,\n top: (rect.bottom + rect.top) / 2,\n };\n break;\n case 'topLeft':\n actualAnchorPoint = {\n left: rect.left,\n top: rect.top,\n };\n break;\n case 'topRight':\n actualAnchorPoint = {\n left: rect.right,\n top: rect.top,\n };\n break;\n }\n } else {\n console.warn(\n 'Cannot resolve element, will use default positioning ',\n attachToElement,\n );\n }\n\n return actualAnchorPoint;\n}\n\nlet x = 0;\nlet y = 0;\ndocument.addEventListener('mousemove', (ev) => {\n x = ev.clientX;\n y = ev.clientY;\n});\n\nexport function calculateTooltipPosition({\n anchorPoint,\n attachToElement,\n attachToElementAnchorPoint,\n attachToMousePosition,\n minSize,\n preferredOrientationX,\n preferredOrientationY,\n preferredSize = { height: 'auto', width: 'auto' },\n}: Pick<\n TTooltip,\n | 'anchorPoint'\n | 'attachToElement'\n | 'attachToElementAnchorPoint'\n | 'attachToMousePosition'\n | 'minSize'\n | 'preferredOrientationX'\n | 'preferredOrientationY'\n | 'preferredSize'\n>): ThemeUICSSObject {\n let actualAnchorPoint = anchorPoint;\n\n if (attachToMousePosition) {\n actualAnchorPoint = {\n left: x + 3,\n top: y + 3,\n };\n }\n\n if (attachToElement) {\n actualAnchorPoint = determineAnchorPoint({\n attachToElement,\n attachToElementAnchorPoint,\n });\n }\n\n if (actualAnchorPoint) {\n const availableBottomSpace = window.innerHeight - actualAnchorPoint.top;\n const availableTopSpace = actualAnchorPoint.top;\n const availableLeftSpace = actualAnchorPoint.left;\n const availableRightSpace = window.innerWidth - actualAnchorPoint.left;\n\n const isEnoughToRight = (minSize?.width ?? 0) <= availableRightSpace;\n const isEnoughToLeft = (minSize?.width ?? 0) <= availableLeftSpace;\n const isEnoughToBottom = (minSize?.height ?? 0) <= availableBottomSpace;\n const isEnoughToTop = (minSize?.height ?? 0) <= availableTopSpace;\n\n const preferredWidth =\n preferredSize.width === 'auto' ? Infinity : preferredSize.width;\n const preferredHeight =\n preferredSize.height === 'auto' ? Infinity : preferredSize.height;\n\n const position: ThemeUICSSObject = {\n '& > *': {\n width: '100%',\n height: '100%',\n },\n width: preferredSize.width === 'auto' ? 'auto' : '100%',\n height: preferredSize.height === 'auto' ? 'auto' : '100%',\n };\n\n if (preferredOrientationX === 'left') {\n if (isEnoughToLeft) {\n position.maxWidth = Math.min(preferredWidth, availableLeftSpace);\n position.right = window.innerWidth - actualAnchorPoint.left;\n } else if (isEnoughToRight) {\n position.maxWidth = Math.min(preferredWidth, availableRightSpace);\n position.left = actualAnchorPoint.left;\n } else {\n position.left = 0;\n position.maxWidth = '100vw';\n }\n } else {\n if (isEnoughToRight) {\n position.maxWidth = Math.min(preferredWidth, availableRightSpace);\n position.left = actualAnchorPoint.left;\n } else if (isEnoughToLeft) {\n position.maxWidth = Math.min(preferredWidth, availableLeftSpace);\n position.right = window.innerWidth - actualAnchorPoint.left;\n } else {\n position.left = 0;\n position.maxWidth = '100vw';\n }\n }\n\n if (preferredOrientationY === 'top') {\n if (isEnoughToTop) {\n position.maxHeight = Math.min(preferredHeight, availableTopSpace);\n position.bottom = window.innerHeight - actualAnchorPoint.top;\n } else if (isEnoughToBottom) {\n position.maxHeight = Math.min(preferredHeight, availableBottomSpace);\n position.top = actualAnchorPoint.top;\n } else {\n position.maxHeight = '100vh';\n position.top = 0;\n }\n } else {\n if (isEnoughToBottom) {\n position.maxHeight = Math.min(preferredHeight, availableBottomSpace);\n position.top = actualAnchorPoint.top;\n } else if (isEnoughToTop) {\n position.maxHeight = Math.min(preferredHeight, availableTopSpace);\n position.bottom = window.innerHeight - actualAnchorPoint.top;\n } else {\n position.maxHeight = '100vh';\n position.top = 0;\n }\n }\n\n position.minHeight =\n typeof position.maxHeight === 'number'\n ? Math.min(position.maxHeight, minSize?.height ?? 0)\n : minSize?.height ?? 0;\n position.minWidth =\n typeof position.minWidth === 'number'\n ? Math.min(position.minWidth, minSize?.width ?? 0)\n : minSize?.width ?? 0;\n\n return position;\n }\n\n return { left: 0, top: 0, width: 'auto', height: 'auto' };\n}\n\nexport function useHandlers({\n attachToElement,\n closeOnClick,\n closeOnClickOut,\n closeOnEscape,\n closeOnMouseLeaveTooltip,\n closeOnMouseLeaveAttachedElement,\n closeOnScrollOut,\n onClose,\n}: Pick<\n TTooltip,\n | 'attachToElement'\n | 'closeOnClick'\n | 'closeOnClickOut'\n | 'closeOnEscape'\n | 'closeOnMouseLeaveTooltip'\n | 'closeOnMouseLeaveAttachedElement'\n | 'closeOnScrollOut'\n | 'onClose'\n>) {\n const hasInited = useRef(false);\n const close = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n useEffect(() => {\n function handleEscape(ev: KeyboardEvent) {\n if (ev.code === 'Escape' && closeOnEscape !== false) {\n close();\n }\n }\n function handleMouseDownOut(ev: MouseEvent) {\n if (!hasInited.current) return;\n\n const actuallyCloseOnClickOut =\n (closeOnClickOut instanceof Function\n ? closeOnClickOut(ev)\n : closeOnClickOut) === true;\n\n if (\n actuallyCloseOnClickOut &&\n !isChild(ev.target as HTMLElement, (current) =>\n current.classList?.contains('tooltip__wrapper'),\n )\n ) {\n close();\n }\n }\n function handleScroll(ev: Event) {\n if (!hasInited.current) return;\n if (\n closeOnScrollOut &&\n !isChild(ev.target as HTMLElement, (current) =>\n current.classList?.contains('tooltip__wrapper'),\n )\n ) {\n close();\n }\n }\n\n function handleMouseLeave(event: MouseEvent) {\n const actuallyCloseOnMouseLeaveTooltip =\n closeOnMouseLeaveTooltip instanceof Function\n ? closeOnMouseLeaveTooltip(event)\n : closeOnMouseLeaveTooltip;\n\n const actuallyCloseOnMouseLeaveAttachedElement =\n closeOnMouseLeaveAttachedElement instanceof Function\n ? closeOnMouseLeaveAttachedElement(event)\n : closeOnMouseLeaveAttachedElement;\n\n if (\n !hasInited.current ||\n (!actuallyCloseOnMouseLeaveAttachedElement &&\n !actuallyCloseOnMouseLeaveTooltip)\n )\n return;\n\n const resolvedAttachToElement = attachToElement\n ? isAttachToElementAFunction(attachToElement)\n ? attachToElement()\n : attachToElement.current\n : null;\n\n const isTooltipTheTarget = isChild(\n event.target as HTMLElement,\n (current) => current.classList.contains('tooltip__wrapper'),\n );\n const isAttachedTheTarget = isChild(\n event.target as HTMLElement,\n (current) => current === resolvedAttachToElement,\n );\n\n const isTooltipRelated = isChild(\n event.relatedTarget as HTMLElement,\n (current) => current.classList.contains('tooltip__wrapper'),\n );\n\n const isAttachedRelated = isChild(\n event.relatedTarget as HTMLElement,\n (current) => current === resolvedAttachToElement,\n );\n\n if (isTooltipRelated || isAttachedRelated) return;\n if (isAttachedTheTarget && !actuallyCloseOnMouseLeaveAttachedElement)\n return;\n if (isTooltipTheTarget && !actuallyCloseOnMouseLeaveTooltip) return;\n\n if (isTooltipTheTarget || isAttachedTheTarget) close();\n }\n\n document.addEventListener('keydown', handleEscape);\n document.addEventListener('mousedown', handleMouseDownOut);\n document.addEventListener('scroll', handleScroll);\n document.addEventListener('mouseout', handleMouseLeave);\n\n setTimeout(() => {\n hasInited.current = true;\n }, 0);\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.removeEventListener('click', handleMouseDownOut);\n document.removeEventListener('scroll', handleScroll);\n document.removeEventListener('mouseout', handleMouseLeave);\n };\n }, [\n attachToElement,\n close,\n closeOnClickOut,\n closeOnEscape,\n closeOnMouseLeaveAttachedElement,\n closeOnMouseLeaveTooltip,\n closeOnScrollOut,\n ]);\n\n return {\n handleOnClick: useCallback(\n (ev: React.MouseEvent) => {\n ev.stopPropagation();\n if (closeOnClick) {\n close();\n }\n },\n [close, closeOnClick],\n ),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../src/objects/ApiaUtil/tooltips/tooltip/util.ts"],"sourcesContent":["import { isChild } from '@apia/util';\nimport { TAttachToElement, TPosition, TTooltip } from './types';\nimport { ThemeUICSSObject } from '@apia/theme';\nimport React, { useCallback, useEffect, useRef } from 'react';\n\nexport function isAttachToElementAFunction(\n attachToElement: TAttachToElement,\n): attachToElement is () => HTMLElement {\n return (\n attachToElement instanceof Function &&\n getParamNames(attachToElement).length === 0\n );\n}\n\nconst STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/gm;\nconst ARGUMENT_NAMES = /([^\\s,]+)/g;\n\nexport function getParamNames(func: object) {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n const fnStr = func.toString().replace(STRIP_COMMENTS, '');\n let result: string[] | RegExpMatchArray | null = fnStr\n .slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')'))\n .match(ARGUMENT_NAMES);\n if (result === null) result = [];\n\n return result;\n}\n\nfunction determineAnchorPoint({\n attachToElement,\n attachToElementAnchorPoint,\n}: Pick<TTooltip, 'attachToElementAnchorPoint'> &\n Required<Pick<TTooltip, 'attachToElement'>>) {\n let actualAnchorPoint: TPosition = { left: 0, top: 0 };\n\n const element = isAttachToElementAFunction(attachToElement)\n ? attachToElement()\n : attachToElement.current;\n\n if (element) {\n const rect = element.getBoundingClientRect();\n\n const point = attachToElementAnchorPoint ?? 'topRight';\n\n switch (point) {\n case 'bottomLeft':\n actualAnchorPoint = {\n left: rect.left,\n top: rect.bottom,\n };\n break;\n case 'bottomRight':\n actualAnchorPoint = {\n left: rect.right,\n top: rect.bottom,\n };\n break;\n case 'center':\n actualAnchorPoint = {\n left: (rect.left + rect.right) / 2,\n top: (rect.bottom + rect.top) / 2,\n };\n break;\n case 'topLeft':\n actualAnchorPoint = {\n left: rect.left,\n top: rect.top,\n };\n break;\n case 'topRight':\n actualAnchorPoint = {\n left: rect.right,\n top: rect.top,\n };\n break;\n }\n } else {\n console.warn(\n 'Cannot resolve element, will use default positioning ',\n attachToElement,\n );\n }\n\n return actualAnchorPoint;\n}\n\nlet x = 0;\nlet y = 0;\ndocument.addEventListener('mousemove', (ev) => {\n x = ev.clientX;\n y = ev.clientY;\n});\n\nexport function calculateTooltipPosition({\n anchorPoint,\n attachToElement,\n attachToElementAnchorPoint,\n attachToMousePosition,\n minSize,\n preferredOrientationX,\n preferredOrientationY,\n preferredSize = { height: 'auto', width: 'auto' },\n}: Pick<\n TTooltip,\n | 'anchorPoint'\n | 'attachToElement'\n | 'attachToElementAnchorPoint'\n | 'attachToMousePosition'\n | 'minSize'\n | 'preferredOrientationX'\n | 'preferredOrientationY'\n | 'preferredSize'\n>): ThemeUICSSObject {\n let actualAnchorPoint = anchorPoint;\n\n if (attachToMousePosition) {\n actualAnchorPoint = {\n left: x + 3,\n top: y + 3,\n };\n }\n\n if (attachToElement) {\n actualAnchorPoint = determineAnchorPoint({\n attachToElement,\n attachToElementAnchorPoint,\n });\n }\n\n if (actualAnchorPoint) {\n const availableBottomSpace = window.innerHeight - actualAnchorPoint.top;\n const availableTopSpace = actualAnchorPoint.top;\n const availableLeftSpace = actualAnchorPoint.left;\n const availableRightSpace = window.innerWidth - actualAnchorPoint.left;\n\n const isEnoughToRight = (minSize?.width ?? 0) <= availableRightSpace;\n const isEnoughToLeft = (minSize?.width ?? 0) <= availableLeftSpace;\n const isEnoughToBottom = (minSize?.height ?? 0) <= availableBottomSpace;\n const isEnoughToTop = (minSize?.height ?? 0) <= availableTopSpace;\n\n const preferredWidth =\n preferredSize.width === 'auto' ? Infinity : preferredSize.width;\n const preferredHeight =\n preferredSize.height === 'auto' ? Infinity : preferredSize.height;\n\n const position: ThemeUICSSObject = {\n '& > *': {\n width: '100%',\n height: '100%',\n },\n width: preferredSize.width === 'auto' ? 'auto' : '100%',\n height: preferredSize.height === 'auto' ? 'auto' : '100%',\n };\n\n if (preferredOrientationX === 'left') {\n if (isEnoughToLeft) {\n position.maxWidth = Math.min(preferredWidth, availableLeftSpace);\n position.right = window.innerWidth - actualAnchorPoint.left;\n } else if (isEnoughToRight) {\n position.maxWidth = Math.min(preferredWidth, availableRightSpace);\n position.left = actualAnchorPoint.left;\n } else {\n position.left = 0;\n position.maxWidth = '100vw';\n }\n } else {\n if (isEnoughToRight) {\n position.maxWidth = Math.min(preferredWidth, availableRightSpace);\n position.left = actualAnchorPoint.left;\n } else if (isEnoughToLeft) {\n position.maxWidth = Math.min(preferredWidth, availableLeftSpace);\n position.right = window.innerWidth - actualAnchorPoint.left;\n } else {\n position.left = 0;\n position.maxWidth = '100vw';\n }\n }\n\n if (preferredOrientationY === 'top') {\n if (isEnoughToTop) {\n position.maxHeight = Math.min(preferredHeight, availableTopSpace);\n position.bottom = window.innerHeight - actualAnchorPoint.top;\n } else if (isEnoughToBottom) {\n position.maxHeight = Math.min(preferredHeight, availableBottomSpace);\n position.top = actualAnchorPoint.top;\n } else {\n position.maxHeight = '100vh';\n position.top = 0;\n }\n } else {\n if (isEnoughToBottom) {\n position.maxHeight = Math.min(preferredHeight, availableBottomSpace);\n position.top = actualAnchorPoint.top;\n } else if (isEnoughToTop) {\n position.maxHeight = Math.min(preferredHeight, availableTopSpace);\n position.bottom = window.innerHeight - actualAnchorPoint.top;\n } else {\n position.maxHeight = '100vh';\n position.top = 0;\n }\n }\n\n position.minHeight =\n typeof position.maxHeight === 'number'\n ? Math.min(position.maxHeight, minSize?.height ?? 0)\n : minSize?.height ?? 0;\n position.minWidth =\n typeof position.minWidth === 'number'\n ? Math.min(position.minWidth, minSize?.width ?? 0)\n : minSize?.width ?? 0;\n\n return position;\n }\n\n return { left: 0, top: 0, width: 'auto', height: 'auto' };\n}\n\nexport function useHandlers({\n attachToElement,\n closeOnClick,\n closeOnClickOut,\n closeOnEscape,\n closeOnMouseLeaveTooltip,\n closeOnMouseLeaveAttachedElement,\n closeOnScrollOut,\n onClose,\n}: Pick<\n TTooltip,\n | 'attachToElement'\n | 'closeOnClick'\n | 'closeOnClickOut'\n | 'closeOnEscape'\n | 'closeOnMouseLeaveTooltip'\n | 'closeOnMouseLeaveAttachedElement'\n | 'closeOnScrollOut'\n | 'onClose'\n>) {\n const hasInited = useRef(false);\n const close = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n useEffect(() => {\n function handleEscape(ev: KeyboardEvent) {\n if (ev.code === 'Escape' && closeOnEscape !== false) {\n close();\n }\n }\n function handleMouseDownOut(ev: MouseEvent) {\n if (!hasInited.current) return;\n\n const actuallyCloseOnClickOut =\n (closeOnClickOut instanceof Function\n ? closeOnClickOut(ev)\n : closeOnClickOut) === true;\n\n if (\n actuallyCloseOnClickOut &&\n !isChild(ev.target as HTMLElement, (current) =>\n current.classList?.contains('tooltip__wrapper'),\n )\n ) {\n close();\n }\n }\n function handleScroll(ev: Event) {\n if (!hasInited.current) return;\n if (\n closeOnScrollOut &&\n !isChild(ev.target as HTMLElement, (current) =>\n current.classList?.contains('tooltip__wrapper'),\n )\n ) {\n close();\n }\n }\n\n function handleMouseLeave(event: MouseEvent) {\n const actuallyCloseOnMouseLeaveTooltip =\n closeOnMouseLeaveTooltip instanceof Function\n ? closeOnMouseLeaveTooltip(event)\n : closeOnMouseLeaveTooltip;\n\n const actuallyCloseOnMouseLeaveAttachedElement =\n closeOnMouseLeaveAttachedElement instanceof Function\n ? closeOnMouseLeaveAttachedElement(event)\n : closeOnMouseLeaveAttachedElement;\n\n if (\n !hasInited.current ||\n (!actuallyCloseOnMouseLeaveAttachedElement &&\n !actuallyCloseOnMouseLeaveTooltip)\n )\n return;\n\n const resolvedAttachToElement = attachToElement\n ? isAttachToElementAFunction(attachToElement)\n ? attachToElement()\n : attachToElement.current\n : null;\n\n const isTooltipTheTarget = isChild(\n event.target as HTMLElement,\n (current) => current.classList.contains('tooltip__wrapper'),\n );\n const isAttachedTheTarget = isChild(\n event.target as HTMLElement,\n (current) => current === resolvedAttachToElement,\n );\n\n const isTooltipRelated = isChild(\n event.relatedTarget as HTMLElement,\n (current) => current.classList.contains('tooltip__wrapper'),\n );\n\n const isAttachedRelated = isChild(\n event.relatedTarget as HTMLElement,\n (current) => current === resolvedAttachToElement,\n );\n\n if (isTooltipRelated || isAttachedRelated) return;\n if (isAttachedTheTarget && !actuallyCloseOnMouseLeaveAttachedElement)\n return;\n if (isTooltipTheTarget && !actuallyCloseOnMouseLeaveTooltip) return;\n\n if (isTooltipTheTarget || isAttachedTheTarget) close();\n }\n\n document.addEventListener('keydown', handleEscape);\n document.addEventListener('mousedown', handleMouseDownOut);\n document.addEventListener('scroll', handleScroll);\n document.addEventListener('mouseout', handleMouseLeave);\n\n setTimeout(() => {\n hasInited.current = true;\n }, 0);\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.removeEventListener('mousedown', handleMouseDownOut);\n document.removeEventListener('scroll', handleScroll);\n document.removeEventListener('mouseout', handleMouseLeave);\n };\n }, [\n attachToElement,\n close,\n closeOnClickOut,\n closeOnEscape,\n closeOnMouseLeaveAttachedElement,\n closeOnMouseLeaveTooltip,\n closeOnScrollOut,\n ]);\n\n return {\n handleOnClick: useCallback(\n (ev: React.MouseEvent) => {\n ev.stopPropagation();\n if (closeOnClick) {\n close();\n }\n },\n [close, closeOnClick],\n ),\n };\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apia/components",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "sideEffects": false,
5
5
  "author": "Alexis Leite <alexisleite@live.com>",
6
6
  "main": "dist/index.js",
@@ -13,12 +13,12 @@
13
13
  "libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.tsx,WATCH:true"
14
14
  },
15
15
  "dependencies": {
16
- "@apia/dom-store": "^2.0.2",
17
- "@apia/icons": "^2.0.2",
18
- "@apia/notifications": "^2.0.2",
19
- "@apia/store": "^2.0.2",
20
- "@apia/theme": "^2.0.2",
21
- "@apia/util": "^2.0.2",
16
+ "@apia/dom-store": "@apia/dom-store",
17
+ "@apia/icons": "@apia/icons",
18
+ "@apia/notifications": "@apia/notifications",
19
+ "@apia/store": "@apia/store",
20
+ "@apia/theme": "@apia/theme",
21
+ "@apia/util": "@apia/util",
22
22
  "@theme-ui/color": "0.16.2",
23
23
  "@theme-ui/match-media": "0.16.2",
24
24
  "react-animate-height": "^3.2.2",
@@ -47,5 +47,5 @@
47
47
  "access": "public",
48
48
  "registry": "https://registry.npmjs.org/"
49
49
  },
50
- "gitHead": "d0b9a7a259e964d415e4f64f562532de3c54b4f8"
50
+ "gitHead": "c6308f55e9ecfdc7c425b7488e4b05e314b80808"
51
51
  }