{"version":3,"file":"style.mjs","names":[],"sources":["../../src/DraggablePanel/style.ts"],"sourcesContent":["import { createStaticStyles, cx } from 'antd-style';\nimport { cva } from 'class-variance-authority';\n\n// Layout constants\nconst LAYOUT = {\n  offset: 16,\n  toggleLength: 54,\n  toggleShort: 16,\n};\n\nconst prefixCls = 'ant';\n\nconst prefix = `${prefixCls}-draggable-panel`;\n\nexport const styles = createStaticStyles(({ css, cssVar }) => {\n  // Base styles - border styles split by showBorder\n  const borderStyles = {\n    borderBottom: css`\n      border-block-end: 1px solid ${cssVar.colorBorderSecondary};\n    `,\n    borderBottomNone: css`\n      border-block-end-width: 0;\n    `,\n    borderLeft: css`\n      border-inline-start: 1px solid ${cssVar.colorBorderSecondary};\n    `,\n    borderLeftNone: css`\n      border-inline-start-width: 0;\n    `,\n    borderRight: css`\n      border-inline-end: 1px solid ${cssVar.colorBorderSecondary};\n    `,\n    borderRightNone: css`\n      border-inline-end-width: 0;\n    `,\n    borderTop: css`\n      border-block-start: 1px solid ${cssVar.colorBorderSecondary};\n    `,\n    borderTopNone: css`\n      border-block-start-width: 0;\n    `,\n  };\n\n  // Position styles\n  const float = css`\n    position: absolute;\n    z-index: 200;\n  `;\n\n  const floatPositions = {\n    bottomFloat: cx(\n      float,\n      css`\n        inset-block-end: 0;\n        inset-inline: 0 0;\n        width: 100%;\n      `,\n    ),\n    leftFloat: cx(\n      float,\n      css`\n        inset-block: var(--draggable-panel-header-height, 0) 0;\n        inset-inline-start: 0;\n        height: calc(100% - var(--draggable-panel-header-height, 0px));\n      `,\n    ),\n    rightFloat: cx(\n      float,\n      css`\n        inset-block: var(--draggable-panel-header-height, 0) 0;\n        inset-inline-end: 0;\n        height: calc(100% - var(--draggable-panel-header-height, 0px));\n      `,\n    ),\n    topFloat: cx(\n      float,\n      css`\n        inset-block-start: var(--draggable-panel-header-height, 0);\n        inset-inline: 0 0;\n        width: 100%;\n      `,\n    ),\n  };\n\n  // Handle styles\n  const handleBaseStyle = css`\n    position: relative;\n\n    &::before {\n      content: '';\n      position: absolute;\n      transition: all 0.2s ${cssVar.motionEaseOut};\n    }\n  `;\n\n  const handleHighlightStyle = css`\n    &:hover {\n      &::before {\n        background: ${cssVar.colorPrimaryBorder};\n        box-shadow: 0 0 8px color-mix(in srgb, ${cssVar.colorPrimary} 25%, transparent);\n      }\n    }\n\n    &:active {\n      &::before {\n        background: ${cssVar.colorPrimary} !important;\n      }\n    }\n  `;\n\n  const handleStyles = {\n    handleBottom: cx(\n      `${prefix}-bottom-handle`,\n      css`\n        &::before {\n          inset-block-end: 50%;\n          width: 100%;\n          height: 2px;\n        }\n      `,\n    ),\n    handleLeft: cx(\n      `${prefix}-left-handle`,\n      css`\n        &::before {\n          inset-inline-start: 50%;\n          width: 2px;\n          height: 100%;\n        }\n      `,\n    ),\n    handleRight: cx(\n      `${prefix}-right-handle`,\n      css`\n        &::before {\n          inset-inline-end: 50%;\n          width: 2px;\n          height: 100%;\n        }\n      `,\n    ),\n    handleRoot: handleBaseStyle,\n    handleTop: cx(\n      `${prefix}-top-handle`,\n      css`\n        &::before {\n          inset-block-start: 50%;\n          width: 100%;\n          height: 2px;\n        }\n      `,\n    ),\n  };\n\n  // Toggle styles - base class with variant for showHandleWideArea\n  const toggleRoot = cx(\n    `${prefix}-toggle`,\n    css`\n      position: absolute;\n      z-index: 50;\n      opacity: 0;\n      transition: all 0.2s ${cssVar.motionEaseOut};\n\n      &:hover,\n      &:active {\n        opacity: 1 !important;\n      }\n\n      > div {\n        pointer-events: all;\n        cursor: pointer;\n\n        position: absolute;\n\n        border: 1px solid ${cssVar.colorBorder};\n\n        color: ${cssVar.colorTextTertiary};\n\n        background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n        backdrop-filter: blur(8px);\n\n        transition: all 0.2s ${cssVar.motionEaseOut};\n\n        &:hover {\n          color: ${cssVar.colorTextSecondary};\n        }\n\n        &:active {\n          color: ${cssVar.colorText};\n        }\n      }\n    `,\n  );\n\n  const toggleRootWithWideArea = css`\n    pointer-events: all;\n  `;\n\n  const toggleRootWithoutWideArea = css`\n    pointer-events: none;\n  `;\n\n  const toggleStyles = {\n    toggleBottom: cx(\n      `${prefix}-toggle-bottom`,\n      css`\n        inset-block-end: -${LAYOUT.offset}px;\n        width: 100%;\n        height: ${LAYOUT.toggleShort}px;\n\n        > div {\n          inset-inline-start: 50%;\n\n          width: ${LAYOUT.toggleLength}px;\n          height: ${LAYOUT.toggleShort}px;\n          margin-inline-start: -27px;\n          border-block-start-width: 0;\n          border-radius: 0 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG};\n        }\n      `,\n    ),\n    toggleLeft: cx(\n      `${prefix}-toggle-left`,\n      css`\n        inset-inline-start: -${LAYOUT.offset}px;\n        width: ${LAYOUT.toggleShort}px;\n        height: 100%;\n\n        > div {\n          inset-block-start: 50%;\n\n          width: ${LAYOUT.toggleShort}px;\n          height: ${LAYOUT.toggleLength}px;\n          margin-block-start: -27px;\n          border-inline-end-width: 0;\n          border-radius: ${cssVar.borderRadiusLG} 0 0 ${cssVar.borderRadiusLG};\n        }\n      `,\n    ),\n    toggleRight: cx(\n      `${prefix}-toggle-right`,\n      css`\n        inset-inline-end: -${LAYOUT.offset}px;\n        width: ${LAYOUT.toggleShort}px;\n        height: 100%;\n\n        > div {\n          inset-block-start: 50%;\n\n          width: ${LAYOUT.toggleShort}px;\n          height: ${LAYOUT.toggleLength}px;\n          margin-block-start: -27px;\n          border-inline-start-width: 0;\n          border-radius: 0 ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0;\n        }\n      `,\n    ),\n    toggleRoot,\n    toggleRootWithWideArea,\n    toggleRootWithoutWideArea,\n    toggleTop: cx(\n      `${prefix}-toggle-top`,\n      css`\n        inset-block-start: -${LAYOUT.offset}px;\n        width: 100%;\n        height: ${LAYOUT.toggleShort}px;\n\n        > div {\n          inset-inline-start: 50%;\n\n          width: ${LAYOUT.toggleLength}px;\n          height: ${LAYOUT.toggleShort}px;\n          margin-inline-start: -27px;\n          border-block-end-width: 0;\n          border-radius: ${cssVar.borderRadiusLG} ${cssVar.borderRadiusLG} 0 0;\n        }\n      `,\n    ),\n  };\n\n  // Additional component styles\n  const componentStyles = {\n    fixed: css`\n      position: relative;\n    `,\n    fullscreen: css`\n      position: absolute;\n      inset-block: var(--draggable-panel-header-height, 0) 0;\n      inset-inline: 0;\n\n      width: 100%;\n      height: calc(100% - var(--draggable-panel-header-height, 0px));\n\n      background: ${cssVar.colorBgContainer};\n    `,\n    handlerIcon: css`\n      transition: all 0.2s ${cssVar.motionEaseOut};\n    `,\n    panel: cx(\n      `${prefix}-fixed`,\n      css`\n        overflow: hidden;\n        background: var(--draggable-panel-bg, ${cssVar.colorBgLayout});\n        transition: all 0.2s ${cssVar.motionEaseOut};\n      `,\n    ),\n    root: cx(\n      prefix,\n      css`\n        flex-shrink: 0;\n\n        &:hover {\n          > .${prefix}-toggle {\n            opacity: 1;\n          }\n        }\n      `,\n    ),\n  };\n\n  return {\n    ...borderStyles,\n    ...floatPositions,\n    ...handleStyles,\n    handleHighlight: handleHighlightStyle,\n    ...toggleStyles,\n    ...componentStyles,\n  };\n});\n\nexport const handleVariants = cva(styles.handleRoot, {\n  variants: {\n    placement: {\n      bottom: styles.handleBottom,\n      left: styles.handleLeft,\n      right: styles.handleRight,\n      top: styles.handleTop,\n    },\n  },\n});\n\nexport const panelVariants = cva(styles.root, {\n  compoundVariants: [\n    {\n      class: styles.bottomFloat,\n      mode: 'float',\n      placement: 'bottom',\n    },\n    {\n      class: styles.topFloat,\n      mode: 'float',\n      placement: 'top',\n    },\n    {\n      class: styles.leftFloat,\n      mode: 'float',\n      placement: 'left',\n    },\n    {\n      class: styles.rightFloat,\n      mode: 'float',\n      placement: 'right',\n    },\n    // Border styles based on placement, isExpand, and showBorder\n    // Note: border is on the opposite side of placement\n    // placement 'top' -> borderBottom, placement 'right' -> borderLeft, etc.\n    {\n      class: styles.borderBottom,\n      isExpand: true,\n      placement: 'top',\n      showBorder: true,\n    },\n    {\n      class: styles.borderBottomNone,\n      isExpand: true,\n      placement: 'top',\n      showBorder: false,\n    },\n    {\n      class: styles.borderLeft,\n      isExpand: true,\n      placement: 'right',\n      showBorder: true,\n    },\n    {\n      class: styles.borderLeftNone,\n      isExpand: true,\n      placement: 'right',\n      showBorder: false,\n    },\n    {\n      class: styles.borderTop,\n      isExpand: true,\n      placement: 'bottom',\n      showBorder: true,\n    },\n    {\n      class: styles.borderTopNone,\n      isExpand: true,\n      placement: 'bottom',\n      showBorder: false,\n    },\n    {\n      class: styles.borderRight,\n      isExpand: true,\n      placement: 'left',\n      showBorder: true,\n    },\n    {\n      class: styles.borderRightNone,\n      isExpand: true,\n      placement: 'left',\n      showBorder: false,\n    },\n  ],\n  defaultVariants: {\n    isExpand: false,\n    mode: 'fixed',\n    placement: 'right',\n    showBorder: true,\n  },\n\n  variants: {\n    isExpand: {\n      false: null,\n      true: null,\n    },\n    mode: {\n      fixed: styles.fixed,\n      float: null,\n    },\n    placement: {\n      bottom: null,\n      left: null,\n      right: null,\n      top: null,\n    },\n    showBorder: {\n      false: null,\n      true: null,\n    },\n  },\n});\n\nexport const toggleVariants = cva(styles.toggleRoot, {\n  compoundVariants: [\n    {\n      class: styles.toggleRootWithWideArea,\n      showHandleWideArea: true,\n    },\n    {\n      class: styles.toggleRootWithoutWideArea,\n      showHandleWideArea: false,\n    },\n  ],\n  defaultVariants: {\n    showHandleWideArea: false,\n  },\n  variants: {\n    placement: {\n      bottom: styles.toggleTop,\n      left: styles.toggleRight,\n      right: styles.toggleLeft,\n      top: styles.toggleBottom,\n    },\n    showHandleWideArea: {\n      false: null,\n      true: null,\n    },\n  },\n});\n"],"mappings":"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GACd,MAAM;GACN,WAAW;GACZ;EAID;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACD;GACE,OAAO,OAAO;GACd,UAAU;GACV,WAAW;GACX,YAAY;GACb;EACF;CACD,iBAAiB;EACf,UAAU;EACV,MAAM;EACN,WAAW;EACX,YAAY;EACb;CAED,UAAU;EACR,UAAU;GACR,OAAO;GACP,MAAM;GACP;EACD,MAAM;GACJ,OAAO,OAAO;GACd,OAAO;GACR;EACD,WAAW;GACT,QAAQ;GACR,MAAM;GACN,OAAO;GACP,KAAK;GACN;EACD,YAAY;GACV,OAAO;GACP,MAAM;GACP;EACF;CACF,CAAC;AAEF,MAAa,iBAAiB,IAAI,OAAO,YAAY;CACnD,kBAAkB,CAChB;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,EACD;EACE,OAAO,OAAO;EACd,oBAAoB;EACrB,CACF;CACD,iBAAiB,EACf,oBAAoB,OACrB;CACD,UAAU;EACR,WAAW;GACT,QAAQ,OAAO;GACf,MAAM,OAAO;GACb,OAAO,OAAO;GACd,KAAK,OAAO;GACb;EACD,oBAAoB;GAClB,OAAO;GACP,MAAM;GACP;EACF;CACF,CAAC"}