@artsy/palette 29.4.0 → 29.4.1

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.
@@ -83,7 +83,8 @@ var Popover = function Popover(_ref) {
83
83
  variant = _ref$variant === void 0 ? "defaultLight" : _ref$variant,
84
84
  _ref$visible = _ref.visible,
85
85
  _visible = _ref$visible === void 0 ? false : _ref$visible,
86
- zIndex = _ref.zIndex,
86
+ _ref$zIndex = _ref.zIndex,
87
+ zIndex = _ref$zIndex === void 0 ? 1 : _ref$zIndex,
87
88
  rest = _objectWithoutProperties(_ref, _excluded);
88
89
 
89
90
  var _useState = (0, _react.useState)(false),
@@ -154,7 +155,7 @@ var Popover = function Popover(_ref) {
154
155
  }), visible && createPortal( /*#__PURE__*/_react.default.createElement(Tip, {
155
156
  tabIndex: 0,
156
157
  ref: tooltipRef,
157
- zIndex: zIndex !== null && zIndex !== void 0 ? zIndex : 1,
158
+ zIndex: zIndex,
158
159
  display: "inline-block",
159
160
  position: "relative",
160
161
  variant: variant
@@ -186,7 +187,7 @@ exports.Popover = Popover;
186
187
  var Tip = (0, _styledComponents.default)(_Box.Box).withConfig({
187
188
  displayName: "Popover__Tip",
188
189
  componentId: "x2qqfz-0"
189
- })(["position:fixed;z-index:1;text-align:left;transition:opacity 250ms ease-out;box-shadow:", ";", ""], _helpers.DROP_SHADOW, (0, _styledSystem.variant)({
190
+ })(["position:fixed;text-align:left;transition:opacity 250ms ease-out;box-shadow:", ";", ""], _helpers.DROP_SHADOW, (0, _styledSystem.variant)({
190
191
  variants: POPOVER_VARIANTS
191
192
  }));
192
193
  var Panel = (0, _styledComponents.default)(_Box.Box).withConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["POPOVER_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Popover","children","onClose","offset","placement","pointer","popover","variant","visible","_visible","zIndex","rest","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","active","isFlipped","state","ref","onClickOutside","when","type","createPortal","Tip","Box","DROP_SHADOW","variants","Panel","Close","Clickable"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW } from \"../../helpers\"\nimport { CloseIcon } from \"../../svgs\"\nimport { Position, useClickOutside, usePortal, usePosition } from \"../../utils\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Pointer } from \"../Pointer\"\n\nexport const POPOVER_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type PopoverVariant = keyof typeof POPOVER_VARIANTS\n\nexport interface PopoverActions {\n /** Call to show popover */\n onVisible(): void\n /** Call to hide popover */\n onHide(): void\n /** Pass ref to element you want the popover to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n}\n\nexport interface PopoverProps extends BoxProps {\n children: ({ anchorRef, onVisible, onHide }: PopoverActions) => JSX.Element\n offset?: number\n onClose?: () => void\n placement?: Position\n /** Display triangular pointer back to anchor node */\n pointer?: boolean\n popover: React.ReactNode\n variant?: PopoverVariant\n /** Initial default visibility */\n visible?: boolean\n}\n\n/**\n * A `Popover` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element.\n */\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n onClose,\n offset = 10,\n placement = \"top\",\n pointer = false,\n popover,\n variant = \"defaultLight\",\n visible: _visible = false,\n zIndex,\n ...rest\n}) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n // Yields focus back and forth between popover and anchor\n useUpdateEffect(() => {\n if (visible && tooltipRef.current) {\n tooltipRef.current.focus()\n return\n }\n\n if (!anchorRef.current) return\n anchorRef.current.focus()\n }, [visible])\n\n const onVisible = useCallback(() => {\n setVisible(true)\n }, [])\n\n const onHide = useCallback(() => {\n setVisible(false)\n }, [])\n\n const handleHide = useCallback(() => {\n onHide()\n onClose?.()\n }, [onHide, onClose])\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n handleHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [handleHide])\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible,\n })\n\n useClickOutside({\n ref: tooltipRef,\n onClickOutside: handleHide,\n when: visible,\n type: \"click\",\n })\n\n const { createPortal } = usePortal()\n\n return (\n <>\n {children({ anchorRef: anchorRef as any, onVisible, onHide })}\n\n {visible &&\n createPortal(\n <Tip\n tabIndex={0}\n ref={tooltipRef as any}\n zIndex={zIndex ?? 1}\n display=\"inline-block\"\n position=\"relative\"\n variant={variant}\n >\n {pointer && (\n <Pointer\n anchorRef={anchorRef}\n tooltipRef={tooltipRef}\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Close\n position=\"relative\"\n zIndex={2}\n p={1}\n onClick={handleHide}\n aria-label=\"Close\"\n >\n <CloseIcon fill=\"currentColor\" display=\"block\" />\n </Close>\n\n <Panel\n variant={variant}\n position=\"relative\"\n py={2}\n px={1}\n zIndex={1}\n {...rest}\n >\n {popover}\n </Panel>\n </Tip>\n )}\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: PopoverVariant }>`\n position: fixed;\n z-index: 1;\n text-align: left;\n transition: opacity 250ms ease-out;\n box-shadow: ${DROP_SHADOW};\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: PopoverVariant }>`\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Close = styled(Clickable)`\n float: right;\n`\n"],"file":"Popover.js"}
1
+ {"version":3,"sources":["../../../src/elements/Popover/Popover.tsx"],"names":["POPOVER_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Popover","children","onClose","offset","placement","pointer","popover","variant","visible","_visible","zIndex","rest","setVisible","tooltipRef","current","focus","anchorRef","onVisible","onHide","handleHide","handleKeydown","event","key","document","addEventListener","removeEventListener","position","active","isFlipped","state","ref","onClickOutside","when","type","createPortal","Tip","Box","DROP_SHADOW","variants","Panel","Close","Clickable"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW } from \"../../helpers\"\nimport { CloseIcon } from \"../../svgs\"\nimport { Position, useClickOutside, usePortal, usePosition } from \"../../utils\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Pointer } from \"../Pointer\"\n\nexport const POPOVER_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type PopoverVariant = keyof typeof POPOVER_VARIANTS\n\nexport interface PopoverActions {\n /** Call to show popover */\n onVisible(): void\n /** Call to hide popover */\n onHide(): void\n /** Pass ref to element you want the popover to be anchored to */\n anchorRef: React.MutableRefObject<HTMLElement>\n}\n\nexport interface PopoverProps extends BoxProps {\n children: ({ anchorRef, onVisible, onHide }: PopoverActions) => JSX.Element\n offset?: number\n onClose?: () => void\n placement?: Position\n /** Display triangular pointer back to anchor node */\n pointer?: boolean\n popover: React.ReactNode\n variant?: PopoverVariant\n /** Initial default visibility */\n visible?: boolean\n}\n\n/**\n * A `Popover` is a small modal-type element which is anchored, and can be\n * positioned relative to, another element.\n */\nexport const Popover: React.FC<PopoverProps> = ({\n children,\n onClose,\n offset = 10,\n placement = \"top\",\n pointer = false,\n popover,\n variant = \"defaultLight\",\n visible: _visible = false,\n zIndex = 1,\n ...rest\n}) => {\n const [visible, setVisible] = useState(false)\n\n // If prop updates/set initial visibility.\n useEffect(() => {\n setVisible(_visible)\n }, [_visible])\n\n // Yields focus back and forth between popover and anchor\n useUpdateEffect(() => {\n if (visible && tooltipRef.current) {\n tooltipRef.current.focus()\n return\n }\n\n if (!anchorRef.current) return\n anchorRef.current.focus()\n }, [visible])\n\n const onVisible = useCallback(() => {\n setVisible(true)\n }, [])\n\n const onHide = useCallback(() => {\n setVisible(false)\n }, [])\n\n const handleHide = useCallback(() => {\n onHide()\n onClose?.()\n }, [onHide, onClose])\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n handleHide()\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [handleHide])\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible,\n })\n\n useClickOutside({\n ref: tooltipRef,\n onClickOutside: handleHide,\n when: visible,\n type: \"click\",\n })\n\n const { createPortal } = usePortal()\n\n return (\n <>\n {children({ anchorRef: anchorRef as any, onVisible, onHide })}\n\n {visible &&\n createPortal(\n <Tip\n tabIndex={0}\n ref={tooltipRef as any}\n zIndex={zIndex}\n display=\"inline-block\"\n position=\"relative\"\n variant={variant}\n >\n {pointer && (\n <Pointer\n anchorRef={anchorRef}\n tooltipRef={tooltipRef}\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Close\n position=\"relative\"\n zIndex={2}\n p={1}\n onClick={handleHide}\n aria-label=\"Close\"\n >\n <CloseIcon fill=\"currentColor\" display=\"block\" />\n </Close>\n\n <Panel\n variant={variant}\n position=\"relative\"\n py={2}\n px={1}\n zIndex={1}\n {...rest}\n >\n {popover}\n </Panel>\n </Tip>\n )}\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: PopoverVariant }>`\n position: fixed;\n text-align: left;\n transition: opacity 250ms ease-out;\n box-shadow: ${DROP_SHADOW};\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: PopoverVariant }>`\n ${variant({ variants: POPOVER_VARIANTS })}\n`\n\nconst Close = styled(Clickable)`\n float: right;\n`\n"],"file":"Popover.js"}
@@ -23,7 +23,7 @@ var _Pointer = require("../Pointer");
23
23
 
24
24
  var _Text = require("../Text");
25
25
 
26
- var _excluded = ["children", "content", "width", "offset", "placement", "pointer", "variant", "visible"];
26
+ var _excluded = ["children", "content", "width", "offset", "placement", "pointer", "variant", "visible", "zIndex"];
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
@@ -80,6 +80,8 @@ var Tooltip = function Tooltip(_ref) {
80
80
  _ref$variant = _ref.variant,
81
81
  variant = _ref$variant === void 0 ? "defaultLight" : _ref$variant,
82
82
  visible = _ref.visible,
83
+ _ref$zIndex = _ref.zIndex,
84
+ zIndex = _ref$zIndex === void 0 ? 1 : _ref$zIndex,
83
85
  rest = _objectWithoutProperties(_ref, _excluded);
84
86
 
85
87
  var _useState = (0, _react.useState)(false),
@@ -122,7 +124,7 @@ var Tooltip = function Tooltip(_ref) {
122
124
  ref: tooltipRef,
123
125
  variant: variant,
124
126
  width: width,
125
- zIndex: 1,
127
+ zIndex: zIndex,
126
128
  style: // If visible is explictly set to `false` then the tooltip should be hidden
127
129
  // Otherwise it should be visible or utilize the active state.
128
130
  visible !== false ? {
@@ -148,7 +150,7 @@ exports.Tooltip = Tooltip;
148
150
  var Tip = (0, _styledComponents.default)(_Box.Box).withConfig({
149
151
  displayName: "Tooltip__Tip",
150
152
  componentId: "ymkaxc-0"
151
- })(["position:absolute;z-index:1;transition:opacity 250ms ease-out;text-align:left;box-shadow:", ";cursor:default;pointer-events:none;", ""], _helpers.DROP_SHADOW, (0, _styledSystem.variant)({
153
+ })(["position:absolute;transition:opacity 250ms ease-out;text-align:left;box-shadow:", ";cursor:default;pointer-events:none;", ""], _helpers.DROP_SHADOW, (0, _styledSystem.variant)({
152
154
  variants: TOOLTIP_VARIANTS
153
155
  }));
154
156
  var Panel = (0, _styledComponents.default)(_Box.Box).withConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.tsx"],"names":["TOOLTIP_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Tooltip","children","content","width","offset","placement","pointer","variant","visible","rest","active","setActive","handleClick","prevActive","activate","deactivate","position","anchorRef","tooltipRef","isFlipped","state","React","cloneElement","ref","tabIndex","onClick","compose","props","onMouseOver","onMouseOut","onFocus","onBlur","opacity","Tip","Box","DROP_SHADOW","variants","Panel","a","b","args"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW, isText } from \"../../helpers\"\nimport { Position, usePosition } from \"../../utils/usePosition\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Pointer } from \"../Pointer\"\nimport { Text } from \"../Text\"\n\nexport const TOOLTIP_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type TooltipVariant = keyof typeof TOOLTIP_VARIANTS\n\nexport interface TooltipProps extends BoxProps {\n /** Anchor element to attach to tooltip */\n children: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n /** Content of tooltip */\n content: React.ReactNode\n offset?: number\n placement?: Position\n pointer?: boolean\n variant?: TooltipVariant\n visible?: boolean\n}\n\n/**\n * A tooltip\n */\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n width = 230,\n offset = 10,\n placement = \"top\",\n pointer = false,\n variant = \"defaultLight\",\n visible,\n ...rest\n}) => {\n const [active, setActive] = useState(false)\n\n const handleClick = () => {\n setActive((prevActive) => !prevActive)\n }\n\n const activate = () => {\n setActive(true)\n }\n\n const deactivate = () => {\n setActive(false)\n }\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible ?? active,\n })\n\n return (\n <>\n {React.cloneElement(children, {\n ref: anchorRef,\n tabIndex: 0,\n onClick: compose(handleClick, children.props?.onClick),\n onMouseOver: compose(activate, children.props?.onMouseOver),\n onMouseOut: compose(deactivate, children.props?.onMouseOut),\n onFocus: compose(activate, children.props?.onFocus),\n onBlur: compose(deactivate, children.props?.onBlur),\n })}\n\n <Tip\n ref={tooltipRef as any}\n variant={variant}\n width={width}\n zIndex={1}\n style={\n // If visible is explictly set to `false` then the tooltip should be hidden\n // Otherwise it should be visible or utilize the active state.\n visible !== false\n ? {\n opacity: visible ?? active ? 1 : 0,\n }\n : { opacity: 0 }\n }\n >\n {pointer && (\n <Pointer\n anchorRef={anchorRef}\n tooltipRef={tooltipRef}\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Panel variant={variant} p={1} {...rest}>\n {isText(content) ? <Text variant=\"xs\">{content}</Text> : content}\n </Panel>\n </Tip>\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: TooltipVariant }>`\n position: absolute;\n z-index: 1;\n transition: opacity 250ms ease-out;\n text-align: left;\n box-shadow: ${DROP_SHADOW};\n cursor: default;\n pointer-events: none;\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: TooltipVariant }>`\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst compose = (a?: (...args: any) => any, b?: (...args: any) => any) => {\n return (...args) => {\n a?.(...args)\n b?.(...args)\n }\n}\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../src/elements/Tooltip/Tooltip.tsx"],"names":["TOOLTIP_VARIANTS","defaultLight","backgroundColor","color","defaultDark","Tooltip","children","content","width","offset","placement","pointer","variant","visible","zIndex","rest","active","setActive","handleClick","prevActive","activate","deactivate","position","anchorRef","tooltipRef","isFlipped","state","React","cloneElement","ref","tabIndex","onClick","compose","props","onMouseOver","onMouseOut","onFocus","onBlur","opacity","Tip","Box","DROP_SHADOW","variants","Panel","a","b","args"],"mappings":"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","sourcesContent":["import React, { useState } from \"react\"\nimport styled from \"styled-components\"\nimport { variant } from \"styled-system\"\nimport { DROP_SHADOW, isText } from \"../../helpers\"\nimport { Position, usePosition } from \"../../utils/usePosition\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Pointer } from \"../Pointer\"\nimport { Text } from \"../Text\"\n\nexport const TOOLTIP_VARIANTS = {\n defaultLight: {\n backgroundColor: \"white100\",\n color: \"black100\",\n },\n defaultDark: {\n backgroundColor: \"black100\",\n color: \"white100\",\n },\n}\n\nexport type TooltipVariant = keyof typeof TOOLTIP_VARIANTS\n\nexport interface TooltipProps extends BoxProps {\n /** Anchor element to attach to tooltip */\n children: React.ReactElement<any, string | React.JSXElementConstructor<any>>\n /** Content of tooltip */\n content: React.ReactNode\n offset?: number\n placement?: Position\n pointer?: boolean\n variant?: TooltipVariant\n visible?: boolean\n}\n\n/**\n * A tooltip\n */\nexport const Tooltip: React.FC<TooltipProps> = ({\n children,\n content,\n width = 230,\n offset = 10,\n placement = \"top\",\n pointer = false,\n variant = \"defaultLight\",\n visible,\n zIndex = 1,\n ...rest\n}) => {\n const [active, setActive] = useState(false)\n\n const handleClick = () => {\n setActive((prevActive) => !prevActive)\n }\n\n const activate = () => {\n setActive(true)\n }\n\n const deactivate = () => {\n setActive(false)\n }\n\n const {\n anchorRef,\n tooltipRef,\n state: { isFlipped },\n } = usePosition({\n position: placement,\n offset,\n active: visible ?? active,\n })\n\n return (\n <>\n {React.cloneElement(children, {\n ref: anchorRef,\n tabIndex: 0,\n onClick: compose(handleClick, children.props?.onClick),\n onMouseOver: compose(activate, children.props?.onMouseOver),\n onMouseOut: compose(deactivate, children.props?.onMouseOut),\n onFocus: compose(activate, children.props?.onFocus),\n onBlur: compose(deactivate, children.props?.onBlur),\n })}\n\n <Tip\n ref={tooltipRef as any}\n variant={variant}\n width={width}\n zIndex={zIndex}\n style={\n // If visible is explictly set to `false` then the tooltip should be hidden\n // Otherwise it should be visible or utilize the active state.\n visible !== false\n ? {\n opacity: visible ?? active ? 1 : 0,\n }\n : { opacity: 0 }\n }\n >\n {pointer && (\n <Pointer\n anchorRef={anchorRef}\n tooltipRef={tooltipRef}\n variant={variant}\n placement={placement}\n isFlipped={isFlipped}\n />\n )}\n\n <Panel variant={variant} p={1} {...rest}>\n {isText(content) ? <Text variant=\"xs\">{content}</Text> : content}\n </Panel>\n </Tip>\n </>\n )\n}\n\nconst Tip = styled(Box)<{ variant?: TooltipVariant }>`\n position: absolute;\n transition: opacity 250ms ease-out;\n text-align: left;\n box-shadow: ${DROP_SHADOW};\n cursor: default;\n pointer-events: none;\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst Panel = styled(Box)<{ variant?: TooltipVariant }>`\n ${variant({ variants: TOOLTIP_VARIANTS })}\n`\n\nconst compose = (a?: (...args: any) => any, b?: (...args: any) => any) => {\n return (...args) => {\n a?.(...args)\n b?.(...args)\n }\n}\n"],"file":"Tooltip.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artsy/palette",
3
- "version": "29.4.0",
3
+ "version": "29.4.1",
4
4
  "description": "Design system library for react components",
5
5
  "main": "dist/index.js",
6
6
  "publishConfig": {
@@ -174,5 +174,5 @@
174
174
  "<rootDir>/www/"
175
175
  ]
176
176
  },
177
- "gitHead": "c279ef87f547aafbc5b8a47f1e5c439ab81e6c94"
177
+ "gitHead": "0ed93b36eddc65565d9c13eb4e5f457c78f3b0e7"
178
178
  }