UNPKG

@workday/canvas-kit-react

Version:

The parent module that contains all Workday Canvas Kit React components

95 lines (94 loc) 5.24 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.PopupCard = exports.popupCardStencil = void 0; const React = __importStar(require("react")); const card_1 = require("@workday/canvas-kit-react/card"); const tokens_1 = require("@workday/canvas-kit-react/tokens"); const common_1 = require("@workday/canvas-kit-react/common"); const layout_1 = require("@workday/canvas-kit-react/layout"); const getTransformFromPlacement_1 = require("./getTransformFromPlacement"); const hooks_1 = require("./hooks"); const canvas_kit_styling_1 = require("@workday/canvas-kit-styling"); const canvas_tokens_web_1 = require("@workday/canvas-tokens-web"); const translateVars = (0, canvas_kit_styling_1.createVars)({ id: "696a04", args: ["positionX", "positionY"] }); /** * Keyframe for the dots loading animation. */ const fadeIn = (0, canvas_kit_styling_1.keyframes)({ name: "ojxay", styles: "0%{opacity:1;transform:translate(var(--positionX-696a04), var(--positionY-696a04));}100%{opacity:1;transform:translate(0);}" }); function getSpace(value) { if (value && value in tokens_1.space) { return tokens_1.space[value]; } else { return value; } } function getMaxHeight(margin) { // set the default margin offset to space.xl let marginOffset = (0, canvas_kit_styling_1.cssVar)(canvas_tokens_web_1.system.space.x10); if (margin) { // parse the margin prop if (typeof margin === 'string') { const marginValues = margin.split(' '); const marginTop = getSpace(marginValues[0]); // If provided, use the specific margin-bottom in the shorthand, otherwise use the margin-top value const marginBottom = getSpace(marginValues[2]) || marginTop; marginOffset = `(${marginTop} + ${marginBottom})`; } else { // if margin is a number, double it to get the offset marginOffset = `${margin * 2}px`; } } return `calc(100vh - ${marginOffset})`; } exports.popupCardStencil = (0, canvas_kit_styling_1.createStencil)({ vars: { maxHeight: '', transformOriginHorizontal: '', transformOriginVertical: '', }, base: { name: "ojxaz", styles: "box-sizing:border-box;font-family:var(--cnvs-sys-font-family-default);font-weight:var(--cnvs-sys-font-weight-normal);line-height:var(--cnvs-sys-line-height-subtext-large);font-size:var(--cnvs-sys-font-size-subtext-large);letter-spacing:var(--cnvs-base-letter-spacing-150);display:flex;position:relative;max-width:calc(100vw - var(--cnvs-sys-space-x8));flex-direction:column;box-shadow:var(--cnvs-sys-depth-5);min-height:var(--cnvs-sys-space-zero);padding:var(--cnvs-sys-space-x6);max-height:var(--maxHeight-popup-card-36628b);overflow-y:auto;animation-name:animation-ojxay;animation-duration:150ms;animation-timing-function:ease-out;transform-origin:var(--transformOriginVertical-popup-card-36628b) var(--transformOriginHorizontal-popup-card-36628b);.wd-no-animation &{animation:none;}@media screen and (max-width: 768px){transform-origin:bottom center;}" } }, "popup-card-36628b"); exports.PopupCard = (0, common_1.createSubcomponent)('div')({ displayName: 'Popup.Card', modelHook: hooks_1.usePopupModel, elemPropsHook: hooks_1.usePopupCard, })(({ children, ref, ...elemProps }, Element, model) => { const transformOrigin = React.useMemo(() => { return (0, getTransformFromPlacement_1.getTransformFromPlacement)(model.state.placement || 'bottom'); }, [model.state.placement]); const translate = (0, common_1.getTransformOrigin)(transformOrigin, (0, canvas_kit_styling_1.cssVar)(canvas_tokens_web_1.system.space.x2)); const cardMaxHeight = getMaxHeight(elemProps.margin); return (React.createElement(card_1.Card, { as: Element, ref: ref, ...(0, layout_1.mergeStyles)(elemProps, [ (0, exports.popupCardStencil)({ transformOriginHorizontal: transformOrigin.horizontal, transformOriginVertical: transformOrigin.vertical, maxHeight: cardMaxHeight, }), translateVars({ positionX: translate.x, positionY: translate.y }), ]) }, children)); });