@use 'sass:math';

$utilities: (
  'display': (
    'values': (
      display-none: none,
      block: block,
      inline-block: inline-block,
      inline: inline,
      flex: flex,
      inline-flex: inline-flex,
      table: table,
      inline-table: inline-table,
      table-caption: table-caption,
      table-cell: table-cell,
      table-column: table-column,
      table-column-group: table-column-group,
      table-footer-group: table-footer-group,
      table-header-group: table-header-group,
      table-row-group: table-row-group,
      table-row: table-row,
      flow-root: flow-root,
      grid: grid,
      inline-grid: inline-grid,
      contents: contents,
      list-item: list-item
    )
  ),
  'flex-direction': (
    'values': (
      flex-row: row,
      flex-row-reverse: row-reverse,
      flex-col: column,
      flex-col-reverse: column-reverse
    )
  ),
  'flex-wrap': (
    'values': (
      flex-wrap: wrap,
      flex-wrap-reverse: wrap-reverse,
      flex-nowrap: nowrap
    )
  ),
  'flex': (
    'values': (
      flex-none: none,
      flex-1: 1,
      flex-2: 2,
      flex-initial: initial,
      flex-auto: auto
    )
  ),
  'flex-grow': (
    'values': (
      grow: 1,
      grow-none: 0
    )
  ),
  'flex-shrink': (
    'values': (
      shrink: 1,
      shrink-none: 0
    )
  ),
  'order': (
    'values': (
      order-1: 1,
      order-2: 2,
      order-3: 3,
      order-4: 4,
      order-5: 5,
      order-6: 6,
      order-7: 7,
      order-8: 8,
      order-9: 9,
      order-10: 10,
      order-11: 11,
      order-12: 12,
      order-first: -9999,
      order-last: 9999,
      order-none: 0
    )
  ),
  'grid-template-columns': (
    'values': (
      grid-col-1: repeat(1, minmax(0, 1fr)),
      grid-col-2: repeat(2, minmax(0, 1fr)),
      grid-col-3: repeat(3, minmax(0, 1fr)),
      grid-col-4: repeat(4, minmax(0, 1fr)),
      grid-col-5: repeat(5, minmax(0, 1fr)),
      grid-col-6: repeat(6, minmax(0, 1fr)),
      grid-col-7: repeat(7, minmax(0, 1fr)),
      grid-col-8: repeat(8, minmax(0, 1fr)),
      grid-col-9: repeat(9, minmax(0, 1fr)),
      grid-col-10: repeat(10, minmax(0, 1fr)),
      grid-col-11: repeat(11, minmax(0, 1fr)),
      grid-col-12: repeat(12, minmax(0, 1fr)),
      grid-col-none: none
    )
  ),
  'grid-column': (
    'values': (
      col-auto: auto,
      col-span-1: span 1,
      col-span-2: span 2,
      col-span-3: span 3,
      col-span-4: span 4,
      col-span-5: span 5,
      col-span-6: span 6,
      col-span-7: span 7,
      col-span-8: span 8,
      col-span-9: span 9,
      col-span-10: span 10,
      col-span-11: span 11,
      col-span-12: span 12,
      col-span-full: math.div(1, -1)
    )
  ),
  'grid-column-start': (
    'values': (
      col-start-1: 1,
      col-start-2: 2,
      col-start-3: 3,
      col-start-4: 4,
      col-start-5: 5,
      col-start-6: 6,
      col-start-7: 7,
      col-start-8: 8,
      col-start-9: 9,
      col-start-10: 10,
      col-start-11: 11,
      col-start-12: 12,
      col-start-13: 13,
      col-start-auto: auto
    )
  ),
  'grid-column-end': (
    'values': (
      col-end-1: 1,
      col-end-2: 2,
      col-end-3: 3,
      col-end-4: 4,
      col-end-5: 5,
      col-end-6: 6,
      col-end-7: 7,
      col-end-8: 8,
      col-end-9: 9,
      col-end-10: 10,
      col-end-11: 11,
      col-end-12: 12,
      col-end-13: 13,
      col-end-auto: auto
    )
  ),
  'grid-template-rows': (
    'values': (
      grid-rows-1: repeat(1, minmax(0, 1fr)),
      grid-rows-2: repeat(2, minmax(0, 1fr)),
      grid-rows-3: repeat(3, minmax(0, 1fr)),
      grid-rows-4: repeat(4, minmax(0, 1fr)),
      grid-rows-5: repeat(5, minmax(0, 1fr)),
      grid-rows-6: repeat(6, minmax(0, 1fr)),
      grid-rows-7: repeat(7, minmax(0, 1fr)),
      grid-rows-8: repeat(8, minmax(0, 1fr)),
      grid-rows-9: repeat(9, minmax(0, 1fr)),
      grid-rows-10: repeat(10, minmax(0, 1fr)),
      grid-rows-11: repeat(11, minmax(0, 1fr)),
      grid-rows-12: repeat(12, minmax(0, 1fr)),
      grid-rows-none: none
    )
  ),
  'grid-row': (
    'values': (
      row-auto: auto,
      row-span-1: span 1 / span 1,
      row-span-2: span 2 / span 2,
      row-span-3: span 3 / span 3,
      row-span-4: span 4 / span 4,
      row-span-5: span 5 / span 5,
      row-span-6: span 6 / span 6,
      row-span-full: math.div(1, -1)
    )
  ),
  'grid-row-start': (
    'values': (
      row-start-1: 1,
      row-start-2: 2,
      row-start-3: 3,
      row-start-4: 4,
      row-start-5: 5,
      row-start-6: 6,
      row-start-7: 7,
      row-start-auto: auto
    )
  ),
  'grid-row-end': (
    'values': (
      row-end-1: 1,
      row-end-2: 2,
      row-end-3: 3,
      row-end-4: 4,
      row-end-5: 5,
      row-end-6: 6,
      row-end-7: 7,
      row-end-auto: auto
    )
  ),
  'grid-auto-flow': (
    'values': (
      grid-flow-row: row,
      grid-flow-col: column,
      grid-flow-row-dense: row dense,
      grid-flow-col-dense: column dense
    )
  ),
  'grid-auto-columns': (
    'values': (
      auto-cols-auto: auto,
      auto-cols-min: min-content,
      auto-cols-max: max-content,
      auto-cols-fr: minmax(0, 1fr)
    )
  ),
  'grid-auto-rows': (
    'values': (
      auto-rows-auto: auto,
      auto-rows-min: min-content,
      auto-rows-max: max-content,
      auto-rows-fr: minmax(0, 1fr)
    )
  ),
  'justify-content': (
    'values': (
      justify-start: flex-start,
      justify-end: flex-end,
      justify-center: center,
      justify-between: space-between,
      justify-around: space-around,
      justify-evenly: space-evenly
    )
  ),
  'justify-items': (
    'values': (
      justify-items-start: start,
      justify-items-end: end,
      justify-items-center: center,
      justify-items-stretch: stretch
    )
  ),
  'justify-self': (
    'values': (
      justify-self-auto: auto,
      justify-self-start: start,
      justify-self-end: end,
      justify-self-center: center,
      justify-self-stretch: stretch
    )
  ),
  'align-content': (
    'values': (
      content-center: center,
      content-start: flex-start,
      content-end: flex-end,
      content-between: space-between,
      content-around: space-around,
      content-evenly: space-evenly
    )
  ),
  'align-items': (
    'values': (
      items-start: flex-start,
      items-end: flex-end,
      items-center: center,
      items-baseline: baseline,
      items-stretch: stretch
    )
  ),
  'align-self': (
    'values': (
      self-auto: auto,
      self-start: flex-start,
      self-end: flex-end,
      self-center: center,
      self-stretch: stretch,
      self-baseline: baseline
    )
  ),
  'place-content': (
    'values': (
      place-content-center: center,
      place-content-start: start,
      place-content-end: end,
      place-content-between: space-between,
      place-content-around: space-around,
      place-content-evenly: space-evenly,
      place-content-stretch: stretch
    )
  ),
  'place-items': (
    'values': (
      place-items-start: start,
      place-items-end: end,
      place-items-center: center,
      place-items-stretch: stretch
    )
  ),
  'place-self': (
    'values': (
      place-self-auto: auto,
      place-self-start: start,
      place-self-end: end,
      place-self-center: center,
      place-self-stretch: stretch
    )
  ),
  'flex-basis': (
    'values': (
      basis-auto: auto,
      basis-none: 0%,
      basis-half: 50%,
      basis-full: 100%
    )
  )
);
