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
  b189232f_f48e_d5e4_c174_cf3c8a743d23["sortFractionsLast()"]
  65419ae8_33ea_931a_d1ac_1549de232b64["intellisense.ts"]
  b189232f_f48e_d5e4_c174_cf3c8a743d23 -->|defined in| 65419ae8_33ea_931a_d1ac_1549de232b64
  72e2da57_c616_3dd9_4146_d33580eb2596["getClassList()"]
  72e2da57_c616_3dd9_4146_d33580eb2596 -->|calls| b189232f_f48e_d5e4_c174_cf3c8a743d23
  5bcf4886_1230_a8ff_7302_a26cc5a9a525["get()"]
  b189232f_f48e_d5e4_c174_cf3c8a743d23 -->|calls| 5bcf4886_1230_a8ff_7302_a26cc5a9a525
  style b189232f_f48e_d5e4_c174_cf3c8a743d23 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, defined in packages/tailwindcss/src/intellisense.ts.
Where is sortFractionsLast() defined?
sortFractionsLast() is defined in packages/tailwindcss/src/intellisense.ts at line 81.
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