Home / Function/ sortFractionsLast() — tailwindcss Function Reference

sortFractionsLast() — tailwindcss Function Reference

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

Entity Profile

Dependency Diagram

graph TD
  30e86a6f_821a_5b81_4761_35b768b56e01["sortFractionsLast()"]
  056e68fb_d884_a7a7_1647_810cbfa921c2["getClassList()"]
  056e68fb_d884_a7a7_1647_810cbfa921c2 -->|calls| 30e86a6f_821a_5b81_4761_35b768b56e01
  4cd99e59_ac1e_2a1f_0946_33cc1afd2532["get()"]
  30e86a6f_821a_5b81_4761_35b768b56e01 -->|calls| 4cd99e59_ac1e_2a1f_0946_33cc1afd2532
  style 30e86a6f_821a_5b81_4761_35b768b56e01 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
}

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