From 5833b7c83591ee38d4c0d9815055825b86dd5408 Mon Sep 17 00:00:00 2001 From: Tristan Guichaoua Date: Sun, 19 Oct 2025 14:40:24 +0200 Subject: [PATCH] kebab-chart:0.2.0 --- packages/preview/kebab-chart/0.2.0/LICENSE | 21 + packages/preview/kebab-chart/0.2.0/README.md | 47 +++ .../preview/kebab-chart/0.2.0/docs/manual.pdf | Bin 0 -> 73939 bytes .../0.2.0/gallery/development_cycles.png | Bin 0 -> 103213 bytes .../kebab-chart/0.2.0/gallery/simple.png | Bin 0 -> 26576 bytes .../preview/kebab-chart/0.2.0/src/chart.typ | 367 ++++++++++++++++++ .../preview/kebab-chart/0.2.0/src/lib.typ | 1 + packages/preview/kebab-chart/0.2.0/typst.toml | 11 + 8 files changed, 447 insertions(+) create mode 100644 packages/preview/kebab-chart/0.2.0/LICENSE create mode 100644 packages/preview/kebab-chart/0.2.0/README.md create mode 100644 packages/preview/kebab-chart/0.2.0/docs/manual.pdf create mode 100644 packages/preview/kebab-chart/0.2.0/gallery/development_cycles.png create mode 100644 packages/preview/kebab-chart/0.2.0/gallery/simple.png create mode 100644 packages/preview/kebab-chart/0.2.0/src/chart.typ create mode 100644 packages/preview/kebab-chart/0.2.0/src/lib.typ create mode 100644 packages/preview/kebab-chart/0.2.0/typst.toml diff --git a/packages/preview/kebab-chart/0.2.0/LICENSE b/packages/preview/kebab-chart/0.2.0/LICENSE new file mode 100644 index 0000000000..8dc12cd087 --- /dev/null +++ b/packages/preview/kebab-chart/0.2.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Tristan Guichaoua + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/preview/kebab-chart/0.2.0/README.md b/packages/preview/kebab-chart/0.2.0/README.md new file mode 100644 index 0000000000..efc4d0bd58 --- /dev/null +++ b/packages/preview/kebab-chart/0.2.0/README.md @@ -0,0 +1,47 @@ +# Kebab Chart + +[![Typst Universe](https://img.shields.io/badge/Typst-Universe-239dad)](https://typst.app/universe/package/kebab-chart/) +[![Repo](https://img.shields.io/badge/GitHub-repo-444)](https://github.com/tguichaoua/kebab-chart) +[![Development version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fgithub.com%2Ftguichaoua%2Fkebab-chart%2Fraw%2Fmain%2Ftypst.toml&query=package.version&label=main&color=444)](https://github.com/tguichaoua/kebab-chart/tree/main) +[![Manual](https://img.shields.io/badge/docs-manual.pdf-orange)](docs/manual.pdf?raw=true) + +Kebab chart is a typst package to display time range chart. + +## Examples + +Checkout the [repository](https://github.com/tguichaoua/kebab-chart/tree/main/gallery) for the source code of the following examples: + +### A simple chart + +![simple kebab chart](./gallery/simple.png) + +### Product development cycles + +![development cycle example](./gallery/development_cycles.png) + +## Usage + +Here a simple usage: + +```typst +#import "@preview/kebab-chart:0.2.0": kebab-chart + +#kebab-chart( + ticks: 5, + + ( + ( + spans: ( + (start: datetime(year: 2025, month: 1, day: 1), end: datetime(year: 2025, month: 1, day: 10)), + (start: datetime(year: 2025, month: 2, day: 2), end: datetime(year: 2025, month: 2, day: 7)), + ), + ), + ( + spans: ( + (start: datetime(year: 2025, month: 1, day: 7), end: datetime(year: 2025, month: 1, day: 17)), + (start: datetime(year: 2025, month: 1, day: 28), end: datetime(year: 2025, month: 2, day: 9)), + ), + ), + ), +) +``` diff --git a/packages/preview/kebab-chart/0.2.0/docs/manual.pdf b/packages/preview/kebab-chart/0.2.0/docs/manual.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2e286a2081b7102f5fb546f1ef7615dd7c3f9da0 GIT binary patch literal 73939 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

EDV~dY`_R6%w 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 literal 0 HcmV?d00001 diff --git a/packages/preview/kebab-chart/0.2.0/gallery/development_cycles.png b/packages/preview/kebab-chart/0.2.0/gallery/development_cycles.png new file mode 100644 index 0000000000000000000000000000000000000000..38267b25a09a011ddea2ec57d39c3813b59ec80b GIT binary patch literal 103213 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%0DS?>eb`V?0 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 rseA@E-SC_K*m>gqQ%;;Q<@9@5%d^P*y+$kAn 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 literal 0 HcmV?d00001 diff --git a/packages/preview/kebab-chart/0.2.0/src/chart.typ b/packages/preview/kebab-chart/0.2.0/src/chart.typ new file mode 100644 index 0000000000..6642d12689 --- /dev/null +++ b/packages/preview/kebab-chart/0.2.0/src/chart.typ @@ -0,0 +1,367 @@ +#import "@preview/cetz:0.4.2" + +/// A time range chart with multiple lines and spans per line. +/// +/// `ticks` and `bookmarks` may accept a function that received a dictionary with the following values: +/// - `visible-start`: The datetime of the left-most horizontal position +/// - `visible-end`: The datetime of the right-most horizontal position +/// - `data-start`: The earliest datetime of the entries from `data` +/// - `data-end`: The latest datetime of the entries from `data` +/// +#let kebab-chart( + /// Ticks on the x-axis. + /// + /// Can be one of: + /// - a number of ticks + /// - a list of ticks + /// - a function that returns a list of ticks. + /// + /// A tick can be either a datetime or a dictionary with the following values: + /// - `date`: The position of tick on the x-axis + /// - `content`: The content used displayed under the tick + /// - `color`: Override the color used to display the tick + /// -> int | array | func + ticks: 10, + /// The format used to display tick datetime. + /// + /// -> str + date-format: "[day] [month repr:short]", + /// The earliest date to show. + /// + /// If set to `auto`, use the earliest datetime from `data`. + /// -> datetime | auto + start-date: auto, + /// The latest date to show. + /// + /// If set to `auto`, use the latest datetime from `data`. + /// -> datetime | auto + end-date: auto, + /// A padding applied to `start-date` and `end-date` to determines the visible range of dates. + /// + /// -> duration + date-padding: duration(weeks: 1), + /// The width the canvas will occupied. + /// -> length + width: 10cm, + /// The height of the spans + /// -> length + span-height: 0.3cm, + /// Spaces between each "kebab" lines. + /// -> length + vertical-padding: 0.6, + /// A list or a function that returns a list of bookmarks. + /// + /// A bookmark is a dictionary with the following values: + /// - `date`: a datetime or an array of two datetimes. + /// - `position`: Either `"above"` or `"below"` (default to `"above"`), the layer on which the bookmark is rendered. + /// - `stroke`: The stroke used to render the bookmark. + /// - `fill`: The fill used to render the bookmark. + /// - `content`: Facultative content rendered above the bookmark. + /// + /// -> array | func + bookmarks: (), + /// Which sides on which render the data's labels. + /// + /// -> "left" | "right" | "both" | none + label-side: "both", + /// If not `none`, shows the weekday above the charts. + /// + /// Expect to be an array with 7 items (one for each weekdays). + /// + /// -> none | auto | array + weekdays: none, + /// The data used to defined each "kebab" and each time span. + /// + /// An array of dictionary with the following properties: + /// - `label`: a label displayed on the side. + /// - `spans`: a list of time spans. + /// + /// Span is a dictionary with the following properties: + /// - `start`: a datetime that defined the start of the span. + /// - `end`: a datetime that defined the end of the span. + /// - `stroke`: the stoke used to render the span. + /// - `fill`: the fill used to render the span. + /// + /// -> array + data, +) = context { + cetz.canvas({ + import cetz.draw: * + + let LABEL-PADDING = 0.2cm + + /* -------------------------------------------------------------------------- */ + assert(type(data) == array, message: "'data' is expected to be an array") + /* -------------------------------------------------------------------------- */ + let VALID-LABEL-SIDE = (none, "both", "right", "left") + assert( + VALID-LABEL-SIDE.contains(label-side), + message: "'label-side' is expected to be one of " + repr(VALID-LABEL-SIDE), + ) + /* -------------------------------------------------------------------------- */ + let weekdays = weekdays + if weekdays == auto { + weekdays = ("M", "T", "W", "T", "F", "S", "S") + } + assert( + weekdays == none or (type(weekdays) == array and weekdays.len() == 7), + message: "invalid value for 'weekdays', expected `none` or a array with 7 elements", + ) + /* -------------------------------------------------------------------------- */ + + let data-start-dt = start-date + let data-end-dt = end-date + + if data-start-dt == auto { + let min-date = datetime(year: 5000, month: 12, day: 31) + for entry in data { + for span in entry.spans { + if span.start < min-date { + min-date = span.start + } + } + } + + data-start-dt = min-date + } + + if data-end-dt == auto { + let max-date = datetime(year: 1900, month: 1, day: 1) + for entry in data { + for span in entry.spans { + if span.end > max-date { + max-date = span.end + } + } + } + + data-end-dt = max-date + } + + assert(type(data-start-dt) == datetime, message: "'start-date' is expected to be a datetime") + assert(type(data-end-dt) == datetime, message: "'end-date' is expected to be a datetime") + + let visible-start-dt = data-start-dt - date-padding + let visible-end-dt = data-end-dt + date-padding + + let DATES = ( + visible-start: visible-start-dt, + visible-end: visible-end-dt, + data-start: data-start-dt, + data-end: data-end-dt, + ) + + /* -------------------------------------------------------------------------- */ + let ticks = ticks + if type(ticks) == int { + let tick-duration = (data-end-dt - data-start-dt) / (ticks - 1) + ticks = range(0, ticks).map(i => data-start-dt + i * tick-duration) + } else if type(ticks) == function { + ticks = ticks(DATES) + } + assert(type(ticks) == array) + /* -------------------------------------------------------------------------- */ + let bookmarks = bookmarks + if type(bookmarks) == function { + bookmarks = bookmarks(DATES) + } + assert(type(bookmarks) == array) + /* -------------------------------------------------------------------------- */ + + let labels-width = 0pt + if label-side != none { + for e in data { + if "label" in e { + let (width,) = measure(e.label) + if width > labels-width { + labels-width = width + } + } + } + } + labels-width += LABEL-PADDING + if label-side == "both" { + labels-width *= 2 + } + + /* -------------------------------------------------------------------------- */ + + let UNIT-PER-DAYS = (width - labels-width) / (visible-end-dt - visible-start-dt).days() + + let dt-to-x(dt, start: visible-start-dt) = (dt - start).days() * UNIT-PER-DAYS + + let is-date-visible(dt) = dt >= visible-start-dt and dt <= visible-end-dt + + let bar(start, end, y, ..params) = { + let a = dt-to-x(start) + let b = dt-to-x(end, start: start) + rect((a, y), (rel: (b, span-height)), anchor: "north", ..params) + } + + let RIGHT = dt-to-x(visible-end-dt) + + /* -------------------------------------------------------------------------- */ + + // Display the "kebabs" + // The y-axis is rendered from "0" toward negative values + // so that "kebabs" are ordered top to bottom + for (i, entry) in data.enumerate() { + let y = -i * vertical-padding + + if "label" in entry { + if label-side == "both" or label-side == "left" { + content( + (0, y), + anchor: "east", + padding: (right: LABEL-PADDING), + entry.label, + ) + } + if label-side == "both" or label-side == "right" { + content( + (RIGHT, y), + anchor: "west", + padding: (left: LABEL-PADDING), + entry.label, + ) + } + } + + line((0, y), (RIGHT, y), stroke: (dash: "dashed", thickness: 0.5pt)) + + for span in entry.spans { + let fill = span.at("fill", default: auto) + let stroke = span.at("stroke", default: auto) + bar( + span.start, + span.end, + y, + fill: fill, + stroke: stroke, + ) + } + } + + /* -------------------------------------------------------------------------- */ + + // Reset the origin so that to bottomest "kebab" is near "0" + let n = data.len() + let TOP = (n + 1) * vertical-padding + set-origin((0, -(n - 0.5) * vertical-padding - 0.5)) + + // Display the vertical and horizontals axes + line((0, 0), (0, TOP)) + line((0, 0), (RIGHT, 0)) + line((RIGHT, 0), (RIGHT, TOP)) + + /* -------------------------------------------------------------------------- */ + + for tick in ticks { + let dt + let tick-content + let color + + if type(tick) == datetime { + dt = tick + tick-content = dt.display(date-format) + color = auto + } else if type(tick) == dictionary { + dt = tick.at("date") + tick-content = tick.at("content") + color = tick.at("color", default: auto) + } else { + panic("invalid tick") + } + + if not is-date-visible(dt) { + continue + } + + let x = dt-to-x(dt) + + move-to((x, 0)) + line( + (rel: (0, -0.2)), + (rel: (0, 0.4)), + stroke: (paint: color), + ) + content((x, 0), anchor: "north", padding: (top: 0.4cm), tick-content) + } + + /* -------------------------------------------------------------------------- */ + + // Display the bookmarks + for mark in bookmarks { + // assert the bookmark is visible + if type(mark.date) == datetime { + if not is-date-visible(mark.date) { + continue + } + } else { + let (start, end) = mark.date + if end <= visible-start-dt or start >= visible-end-dt { + continue + } + } + + let layer = mark.at("position", default: auto) + let layer = if layer == "below" { -1 } else { 1 } + + on-layer(layer, { + if type(mark.date) == datetime { + let x = dt-to-x(mark.date) + line((x, 0), (x, TOP), stroke: mark.at("stroke", default: auto)) + if "content" in mark { + content( + (x, TOP), + anchor: "south", + padding: (bottom: 0.15cm), + mark.content, + ) + } + } else { + let (start, end) = mark.date + if start < visible-start-dt { + start = visible-start-dt + } + if end > visible-end-dt { + end = visible-end-dt + } + + let start = dt-to-x(start) + let end = dt-to-x(end) + rect( + (start, 0), + (end, TOP), + fill: mark.at("fill", default: auto), + stroke: mark.at("stroke", default: auto), + ) + } + }) + } + + /* -------------------------------------------------------------------------- */ + + if weekdays != none { + let i = visible-start-dt + + while i < visible-end-dt { + let a = dt-to-x(i) + let b = dt-to-x(i + duration(days: 1)) + + rect( + (a, TOP), + (b, TOP + 0.4), + ) + content( + ((a + b) / 2, TOP + 0.2), + text(size: .7em, weekdays.at(i.weekday() - 1)), + ) + + i += duration(days: 1) + } + } + + /* -------------------------------------------------------------------------- */ + }) +} diff --git a/packages/preview/kebab-chart/0.2.0/src/lib.typ b/packages/preview/kebab-chart/0.2.0/src/lib.typ new file mode 100644 index 0000000000..430dca5996 --- /dev/null +++ b/packages/preview/kebab-chart/0.2.0/src/lib.typ @@ -0,0 +1 @@ +#import "chart.typ": kebab-chart diff --git a/packages/preview/kebab-chart/0.2.0/typst.toml b/packages/preview/kebab-chart/0.2.0/typst.toml new file mode 100644 index 0000000000..42a02acc75 --- /dev/null +++ b/packages/preview/kebab-chart/0.2.0/typst.toml @@ -0,0 +1,11 @@ +[package] +name = "kebab-chart" +version = "0.2.0" +repository = "https://github.com/tguichaoua/kebab-chart" +entrypoint = "src/lib.typ" +authors = ["Tristan Guichaoua "] +categories = ["visualization"] +license = "MIT" +description = "Chart for temporal span representation" +keywords = ["chart", "time"] +exclude = ["/gallery/*", "docs/*"]