import {Property} from 'csstype';

import {StyleFnConfig, buildStyleFns} from '../buildStyleFns';

/** style props to set CSS border style properties
 * @deprecated
 */
export type BorderLineStyleProps = {
  /** sets [CSS border-collapse property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-collapse)
   * @deprecated
   */
  borderCollapse?: Property.BorderCollapse;
  /** sets [CSS border-spacing property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-spacing)
   * @deprecated
   */
  borderSpacing?: Property.BorderSpacing;
  /** sets [CSS border-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-style)
   * @deprecated
   */
  borderStyle?: Property.Border;
  /** sets [CSS border-top-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-style)
   * @deprecated
   */
  borderTopStyle?: Property.Border;
  /**
   * - sets [CSS border-right-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-right-style)
   * - no bidirectional support
   * @deprecated
   */
  borderRightStyle?: Property.Border;
  /** sets [CSS border-bottom-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-style)
   * @deprecated
   */
  borderBottomStyle?: Property.Border;
  /**
   * - sets [CSS border-left-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-left-style)
   * - no bidirectional support
   * @deprecated
   */
  borderLeftStyle?: Property.Border;
  /**
   * - sets [CSS border-inline-start-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-start-style)
   * - bidirectional support
   * @deprecated
   */
  borderInlineStartStyle?: Property.Border;
  /**
   * - sets [CSS border-inline-end-style property](https://developer.mozilla.org/en-US/docs/Web/CSS/border-inline-end-style)
   * - bidirectional support
   * @deprecated
   */
  borderInlineEndStyle?: Property.Border;
};

/** @deprecated */
export const borderLineStyleFnConfigs: StyleFnConfig[] = [
  {
    name: 'borderCollapse',
    properties: ['borderCollapse'],
    system: 'none',
  },
  {
    name: 'borderSpacing',
    properties: ['borderSpacing'],
    system: 'none',
  },
  {
    name: 'borderStyle',
    properties: ['borderStyle'],
    system: 'none',
  },
  {
    name: 'borderTopStyle',
    properties: ['borderTopStyle'],
    system: 'none',
  },
  {
    name: 'borderRightStyle',
    properties: ['borderRightStyle'],
    system: 'none',
  },
  {
    name: 'borderBottomStyle',
    properties: ['borderBottomStyle'],
    system: 'none',
  },
  {
    name: 'borderLeftStyle',
    properties: ['borderLeftStyle'],
    system: 'none',
  },
  {
    name: 'borderInlineStartStyle',
    properties: ['borderInlineStartStyle'],
    system: 'none',
  },
  {
    name: 'borderInlineEndStyle',
    properties: ['borderInlineEndStyle'],
    system: 'none',
  },
];

/** @deprecated */
export const borderLineStyleFns = buildStyleFns(borderLineStyleFnConfigs);
