// Copyright (c) 2014, 2025, Oracle and/or its affiliates.  Licensed under The Universal Permissive License (UPL), Version 1.0 as shown at https://oss.oracle.com/licenses/upl/

// NOTE: The mixins defined in these files are needed
// based on our current supported browsers. Mixins in this
// file will be removed when we no longer need to use vendor
// prefixes for a particular property.



@mixin oj-break-inside-property ($breakInsideValue)
{
  // -moz-column-break-inside doesn't work on FF 24 on windows
  // try adding page-break-inside as well
     -moz-column-break-inside: $breakInsideValue;
      -ms-column-break-inside: $breakInsideValue;
                 break-inside: $breakInsideValue;
}


//*****************************************************************************
//
// Usage Example:
//
// .oj-foo, .oj-bar
// {
//   @include oj-placeholder()
//   {
//     color: red;
//   }
// }
//*****************************************************************************

@mixin oj-placeholder ()
{
  // tried comma separating these, didn't work
  &:-ms-input-placeholder {
   @content;
  }
 
  &::-ms-input-placeholder {
   @content;
  }
 
  &::placeholder {
   @content;
  }
}

@mixin oj-user-select-property ($userSelectValue)
{
    -webkit-user-select: $userSelectValue;
       -moz-user-select: $userSelectValue;
        -ms-user-select: $userSelectValue;
            user-select: $userSelectValue;
}


@mixin oj-backface-visibility-property ($backfaceVisibilityValue)
{
	-webkit-backface-visibility: $backfaceVisibilityValue;
	backface-visibility: $backfaceVisibilityValue;
}


@mixin oj-animation-fill-mode-property ($animationFillModeValue)
{
  -webkit-animation-fill-mode: $animationFillModeValue;
  animation-fill-mode: $animationFillModeValue;
}

// All mixins below this line are deprecated
//----------------------------------------------------


//****************************************************
// START FLEXBOX PROPERTIES
// flex syntax: http://the-echoplex.net/flexyboxes
//
//****************************************************


@mixin oj-display-flex-property ()
{
  @warn "mixin oj-display-flex-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
   display: flex;
}

@mixin oj-display-inline-flex-property ()
{
  @warn "mixin oj-display-inline-flex-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
   display: inline-flex;
}

@mixin oj-flex-property ($flexValue)
{
  @warn "mixin oj-flex-property is deprecated because vendor prefixing is no longer needed, just set the property directly. If you were passing in initial use flex: 0 1 auto instead.";
    // IE11 doesn't support flex:initial,
    // so if they pass in 'initial' set it explicitly to '0 1 auto'
    // http://www.w3.org/TR/css-flexbox-1/#flex-common
    @if ($flexValue == initial)
    {
      $flexValue: 0 1 auto;
    }

    flex: $flexValue;
}


@mixin oj-flex-direction-property($flexDirectionValue) {
  @warn "mixin oj-flex-direction-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  flex-direction: $flexDirectionValue;
}


@mixin oj-flex-wrap-property($flexWrapValue) {
  @warn "mixin oj-flex-wrap-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  flex-wrap: $flexWrapValue;
}

@mixin oj-align-items-property($alignItemsValue) {
  @warn "mixin oj-align-items-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  align-items: $alignItemsValue;
}

@mixin oj-align-self-property($alignSelfValue) {
  @warn "mixin oj-align-self-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  align-self: $alignSelfValue;
}

@mixin oj-align-content-property($alignContentValue) {
  @warn "mixin oj-align-content-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  align-content: $alignContentValue;
}


@mixin oj-justify-content-property($justifyContentValue) {
  @warn "mixin oj-justify-content-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  justify-content: $justifyContentValue;
}

@mixin oj-order-property($orderValue)
{
  @warn "mixin oj-order-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  order: $orderValue;
}

@mixin oj-flex-shrink-property($flexShrinkValue) {
  @warn "mixin oj-flex-shrink-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  flex-shrink: $flexShrinkValue;
}

@mixin oj-flex-grow-property($flexGrowValue) {
  @warn "mixin oj-flex-grow-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  flex-grow: $flexGrowValue;
}

@mixin oj-flex-basis-property($flexBasisValue) {
  @warn "mixin oj-flex-basis-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  flex-basis: $flexBasisValue;
}


//****************************************************
// END FLEXBOX PROPERTIES
//****************************************************


@mixin oj-will-change-property ($willChangeValue...)
{
  @warn "mixin oj-will-change-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  will-change: $willChangeValue;
}


@mixin oj-keyframes-at-rule ($name)
{
  @warn "mixin oj-keyframes-at-rule is deprecated because vendor prefixing is no longer needed, just set the property directly";
  
  @keyframes #{$name} {
    @content
  }
}

@mixin oj-animation-property ($animationValue)
{
    @warn "mixin oj-animation-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
    animation: $animationValue;
}

@mixin oj-column-count-property ($columnCountValue)
{
    @warn "mixin oj-column-count-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
    column-count: $columnCountValue;
}

@mixin oj-column-width-property ($columnWidthValue)
{
    @warn "mixin oj-column-width-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
    column-width: $columnWidthValue;
}

@mixin oj-column-gap-property ($columnGapValue)
{
    @warn "mixin oj-column-gap-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
    column-gap: $columnGapValue;
}

@mixin oj-transform-property ($transformValue)
{
  @warn "mixin oj-transform-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  transform: $transformValue;
}

@mixin oj-transition-property ($transitionValue...)
{
  @warn "mixin oj-transition-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
    transition: $transitionValue;
}

@mixin oj-transition-timing-function-property ($transitionTimingValue)
{
  @warn "mixin oj-transition-timing-function-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
	transition-timing-function: $transitionTimingValue;
}


@mixin oj-animation-duration-property ($animationDurationValue)
{
  @warn "mixin oj-animation-duration-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
  animation-duration: $animationDurationValue;
}

@mixin oj-perspective-property ($perspectiveValue)
{
  @warn "mixin oj-perspective-property is deprecated because vendor prefixing is no longer needed, just set the property directly";
	perspective: $perspectiveValue;
}

@mixin oj-box-sizing-property ($boxSizingValue)
{
    @warn "mixin oj-box-sizing-property deprecated, prefixing box sizing on jet supported browsers not needed, use box-sizing property directly";
    // supported without -moz in ff 29
    // -moz-box-sizing: $boxSizingValue;
    box-sizing: $boxSizingValue;
}