Home / Function/ sortFractionsLast() — tailwindcss Function Reference

sortFractionsLast() — tailwindcss Function Reference

Architecture documentation for the sortFractionsLast() function in intellisense.ts from the tailwindcss codebase.

Function typescript OxideCore Scanner calls 1 called by 1

Entity Profile

Dependency Diagram

graph TD
  0b76687f_ad57_0b8b_192a_e82432392da3["sortFractionsLast()"]
  9bc6d1a1_404b_43fc_8f6b_36e8b6674c0d["getClassList()"]
  9bc6d1a1_404b_43fc_8f6b_36e8b6674c0d -->|calls| 0b76687f_ad57_0b8b_192a_e82432392da3
  0aa64a1c_efd8_a69d_48ed_649b7a86c854["get()"]
  0b76687f_ad57_0b8b_192a_e82432392da3 -->|calls| 0aa64a1c_efd8_a69d_48ed_649b7a86c854
  style 0b76687f_ad57_0b8b_192a_e82432392da3 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/tailwindcss/src/intellisense.ts lines 81–141

function sortFractionsLast(list: ClassItem[]) {
  type Bucket = {
    utility: string
    items: ClassItem[]
  }

  // 1. Create "buckets" for each utility group
  let buckets: Bucket[] = []
  let current: Bucket | null = null

  // 2. Determine the last bucket for each utility group
  let lastUtilityBucket = new Map<string, Bucket>()

  // 3. Collect all fractions in a given utility group
  let fractions = new DefaultMap<string, ClassItem[]>(() => [])

  for (let item of list) {
    let { utility, fraction } = item

    if (!current) {
      current = { utility, items: [] }
      lastUtilityBucket.set(utility, current)
    }

    if (utility !== current.utility) {
      buckets.push(current)

      current = { utility, items: [] }
      lastUtilityBucket.set(utility, current)
    }

    if (fraction) {
      fractions.get(utility).push(item)
    } else {
      current.items.push(item)
    }
  }

  if (current && buckets[buckets.length - 1] !== current) {
    buckets.push(current)
  }

  // 4. Add fractions to their respective last utility buckets
  for (let [utility, items] of fractions) {
    let bucket = lastUtilityBucket.get(utility)
    if (!bucket) continue

    bucket.items.push(...items)
  }

  // 5. Flatten the buckets into a single list
  let entries: ClassEntry[] = []

  for (let bucket of buckets) {
    for (let entry of bucket.items) {
      entries.push([entry.name, { modifiers: entry.modifiers }])
    }
  }

  return entries
}

Domain

Subdomains

Calls

Called By

Frequently Asked Questions

What does sortFractionsLast() do?
sortFractionsLast() is a function in the tailwindcss codebase.
What does sortFractionsLast() call?
sortFractionsLast() calls 1 function(s): get.
What calls sortFractionsLast()?
sortFractionsLast() is called by 1 function(s): getClassList.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free