package toffee
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
CSS layout engine for OCaml (Flexbox, Grid, Block)
Install
dune-project
Dependency
Authors
Maintainers
Sources
mosaic-0.1.0.tbz
sha256=9e4e90d17f9b2af1b07071fe425bc2c519c849c4f1d1ab73cde512be2d874849
sha512=06e9c4a741590942e81a27738d0b5c0413fafec8cf3b7dae047ad69f155e7b718aa4223818dc161b7d028efffcfd3365905e264d6fd31d453910ddfa91dcf9b9
doc/src/toffee.style/dimension.ml.html
Source file dimension.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75type t = Compact_length.t (* Constructors *) let length value = Compact_length.length value let percent value = Compact_length.percent value let auto = Compact_length.auto let calc index = Compact_length.calc index let px value = length value let pct value = percent (value /. 100.0) (* Constants *) let zero = Compact_length.zero (* Inspection *) let is_length t = Compact_length.is_length t let is_percent t = Compact_length.is_percent t let is_auto t = Compact_length.is_auto t let is_calc t = Compact_length.is_calc t (* Value extraction *) let value t = Compact_length.value t (* Get length value if this is a length, None otherwise *) let to_option t = if is_length t then Some (value t) else None (* Pretty printing *) let to_string = Compact_length.to_string (* Comparison *) let equal = Compact_length.equal let compare = Compact_length.compare let pp = Compact_length.pp (* Additional helpers *) let is_zero t = Compact_length.is_zero t let uses_percentage t = Compact_length.uses_percentage t let resolved_percentage_size t parent_size = Compact_length.resolved_percentage_size t parent_size let resolved_percentage_size_with_calc t parent_size calc_resolver = Compact_length.resolved_percentage_size_with_calc t parent_size calc_resolver (* Resolve functions from Taffy's resolve.rs *) let maybe_resolve t context calc_resolver = if is_auto t then None else if is_length t then Some (value t) else if is_percent t then match context with | None -> None | Some dim -> (* Emulate f32 arithmetic to match Taffy's behavior *) let result = dim *. value t in (* Round to f32 precision *) Some (Int32.float_of_bits (Int32.bits_of_float result)) else if is_calc t then match context with | None -> None | Some dim -> Some (calc_resolver (Compact_length.get_calc_index t) dim) else failwith "Dimension.maybe_resolve: unsupported tag (expected \ length/percent/auto/calc)" let resolve_or_zero t context calc_resolver = match maybe_resolve t context calc_resolver with Some v -> v | None -> 0.0
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>