Files
gridcraft/ATTRIBUTION.md
T
74ab5cc969 M12: regional format data (Region, 20 regions) (#3048)
* M12: regional format data (Region, 15 regions, Workbook::region)

Adds the data model for Excel-style regional formats, with no behaviour
change: nothing reads it yet.

- core: region.rs with `Region` (separators, grouping, date order, short and
  long date and time codes, month and day names, AM/PM words, currency) and
  the 15 regions en-US, en-GB, en-IN, es-ES, de-DE, fr-FR, it-IT, pt-BR,
  pt-PT, ru-RU, cs-CZ, ja-JP, ko-KR, zh-CN, zh-TW. Values follow Unicode CLDR;
  the deliberate departures (four-digit short-date year, Windows grouping
  spaces) are listed in the module doc. `all`, `find` (strict tag),
  `lookup` (system or browser tag, best effort) and `default_region` (en-US)
  select one; `EN_US` reproduces today's behaviour exactly. Unit tests check
  the tables and the lookups.
- model: `Workbook::region`, a `#[serde(skip)]` runtime field that is never
  saved and defaults to en-US. It is here so that the following changes can
  be reviewed independently of each other.

The region is independent of the interface language and of the formula
language. Builds on this, in order: typed input (core `parse_input_in`),
display (numfmt and engine display), the engine session and `app.region`
command, then the Options UI and the app defaults.

* M12: region data: review fixes (tag extensions, zh territory, month periods)

- lookup stops at an extension or private-use singleton:
  en-GB-u-ca-gregory is en-GB (ca was read as Canada) and
  zh-Hant-u-nu-latn is zh-TW.
- For Chinese an explicit territory wins over the script, so
  zh-Hant-CN is China's conventions, consistent with zh-Hans-TW.
- In regions whose month abbreviations end in a period (ru-RU, fr-FR),
  month_from_name accepts any abbreviation typed with one (мар., июн.);
  elsewhere a period stays outside the name, so en-US is unchanged.

* Region: document where dates and month names follow Windows, not CLDR

* M12: Swiss regions (en-CH, de-CH, fr-CH, it-CH) and nl-NL

The Swiss regions group digits with an apostrophe (CLDR 48) and accept the
typographic one glibc uses; lookup maps CH and LI tags to them. Dutch
(Netherlands) follows CLDR 48.

* Region: table-driven lookup test, under main's cognitive-complexity limit

* Region: French and Italian Liechtenstein tags resolve to the Swiss regions

* Region: credit the Unicode CLDR data under the Unicode License v3 (NOTICE, ATTRIBUTION.md)

* Region: month_from_name takes one word; the currency format has the currency's own decimals

---------

Co-authored-by: quantmind-br <dsrodrigues20@gmail.com>
Co-authored-by: quantforge-br <218010578+quantforge-br@users.noreply.github.com>
Co-authored-by: FredApps <153173854+FredApps@users.noreply.github.com>
2026-11-10 13:54:53 +01:00

12 KiB

Asset attribution

Every non-code asset in this repository (images, icons, fonts, example files, presets) is listed here with its author, source and licence. cargo xtask assets (part of cargo xtask ci) fails if an asset file is missing from this table.

Policy (mandatory): GridCraft contains no Microsoft, Adobe, Avid or Autodesk iconography, images, artwork, fonts, templates, themes, table styles or sample files. Every asset is original work by GridCraft contributors or third-party material under an open licence (OSI open source, public domain / CC0, or Creative Commons that allows redistribution). Screenshots of Microsoft software are never committed. Font files are not added here: shared fonts live in storytold/craft-fonts, an optional build input (CRAFT_FONTS_DIR). The one exception is the ArtCraft brand files in docs/brand/: ArtCraft trademarks, not open source, used under docs/brand/LICENSE-brand.txt.

Generated-in-code art is original and has no file to list: the UI icon set (crates/ui-egui/src/icons.rs), themes (crates/engine/src/cmd/view.rs), cell styles (crates/engine/src/cmd/format.rs), table styles (crates/engine/src/tables.rs), chart palettes and the sample workbooks (crates/engine/src/sample.rs).

Asset Author Source Licence Notes
epaint_default_fonts::EGUI_ICONS, epaint_default_fonts::EMOJI_ICON (dependency font inputs) John Slegers egui 6d518fc, emoji-icon-font MIT (Copyright (c) 2014 John Slegers; full upstream text in NOTICE) egui-icons.ttf is the five-glyph subset; emoji-icon-font.ttf is the full monochrome fallback. Registered by the production default font definitions; dependency assets unmodified here, no font file copied into this repository.
epaint_default_fonts::HACK_REGULAR (dependency font input) Source Foundry Authors (Hack; DejaVu and Bitstream Vera foundations) egui 6d518fc, Hack MIT + Bitstream Vera License (full upstream texts in NOTICE) Hack-Regular.ttf is egui's bundled monospace face and GridCraft's last-resort symbol fallback. Dependency asset unmodified here, no font file copied into this repository.
epaint_default_fonts::NOTO_EMOJI_REGULAR (dependency font input) The Noto Project Authors egui 6d518fc, Noto Emoji SIL Open Font License 1.1 (full upstream text in NOTICE) NotoEmoji-Regular.ttf is enabled by egui's monochrome_emoji_fonts feature and used as the monochrome emoji fallback. Dependency asset unmodified here, no font file copied into this repository.
epaint_default_fonts::UBUNTU_LIGHT (dependency font input) Canonical Ltd. and the Ubuntu Font Family authors egui 6d518fc, Ubuntu font Ubuntu Font Licence 1.0 (full upstream text in NOTICE) Ubuntu-Light.ttf is egui's default proportional face. Dependency asset unmodified here, no font file copied into this repository.
Regional format data in crates/core/src/region.rs (data, no file of its own) Unicode, Inc. (Unicode CLDR) cldr-json (cldr-numbers-full, cldr-dates-full) and ICU's CLDR 48 data Unicode License v3 (Unicode-3.0; full text in NOTICE) Separators, month and weekday names, AM/PM words, currency symbols and date order of the built-in regions. No CLDR file is copied into this repository.
docs/brand/artcraft-logo.svg ArtCraft Team ArtCraft brand kit ArtCraft brand terms (docs/brand/LICENSE-brand.txt) Trademark, not open source
docs/brand/artcraft-logo.png ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-logo-white.svg ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-logo-white.png ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-mark.svg ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-mark.png ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-mark-black.svg ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/artcraft-mark-black.png ArtCraft Team ArtCraft brand kit ArtCraft brand terms Trademark
docs/brand/LICENSE-brand.txt (licence text) project —
assets/app-icon/gridcraft.svg GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) PLACEHOLDER app icon (ledger page); replaced by the owner's creature art later
packaging/macos/dmg/background.svg @XusBadia original (hand-written SVG, derived from the GridCraft app icon assets/app-icon/gridcraft.svg, referenced via <image>, not copied; text is outlined glyph paths; packaging/macos/dmg/generate.py renders it to background.tiff) MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE) GridCraft macOS DMG window background for the Finder window; added 2026-10-08
packaging/macos/dmg/background.tiff @XusBadia Rendered from packaging/macos/dmg/background.svg by packaging/macos/dmg/generate.py MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE) 1x + 2x HiDPI TIFF for the macOS DMG window; includes the app icon (see its row) and LittleCMS's built-in sRGB profile ("No copyright, use freely")
assets/app-icon/gridcraft-1024.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, rendered from gridcraft.svg
assets/app-icon/gridcraft-macos-512.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, macOS grid render
assets/app-icon/gridcraft.icns GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, macOS bundle icon
assets/app-icon/gridcraft.ico GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Windows exe icon
assets/app-icon/hicolor/16x16/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/24x24/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/32x32/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/48x48/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/64x64/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/128x128/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/256x256/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/512x512/apps/ai.storyteller.gridcraft.png GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, Linux hicolor render
assets/app-icon/hicolor/scalable/apps/ai.storyteller.gridcraft.svg GridCraft contributors original (hand-written SVG; packaging/icons.sh) MIT OR Apache-2.0 (assets/app-icon/LICENSE.txt) Placeholder icon, copy of gridcraft.svg
assets/app-icon/README.md GridCraft contributors original MIT OR Apache-2.0 Icon documentation
assets/app-icon/LICENSE.txt (licence text) original — Licence of the app icon files
docs/images/hero-sales.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/budget.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/grades-formulas.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/dark-insert.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/pivot.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/format-chart.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
docs/images/page-break.png GridCraft contributors screenshot of GridCraft rendered offscreen (crates/ui-egui/examples/snapshot.rs) showing an original sample workbook MIT OR Apache-2.0 README screenshot; no third-party content
Core 14 AFM metric numbers in crates/pdf/src/symbol.rs (Symbol: character codes and advance widths) and crates/pdf/src/metrics.rs (Helvetica, Times and Courier advance widths); no font file Adobe Systems Incorporated Adobe's Core 14 AFM font metrics files (Symbol.afm 001.008 and the Helvetica, Times and Courier AFMs) Adobe's Core 14 metrics notice: the files may be used, copied and distributed for any purpose and without charge, provided the notice is kept (quoted in crates/pdf/src/metrics.rs) Numbers only, typed in from the public metrics. PDF export embeds no font: Symbol and the Times faces are base-14 fonts every PDF reader supplies, and text outside WinAnsiEncoding is set in a predefined, non-embedded Adobe-GB1 CID font
Unicode values of the Symbol encoding in crates/pdf/src/symbol.rs (the code-to-character map; numbers only, no file copied) Unicode, Inc. symbol.txt, "Adobe Symbol Encoding to Unicode", table version 1.0 (2011-07-12), at unicode.org/Public/MAPPINGS/VENDORS/ADOBE/ Unicode, Inc.'s notice in the file: "Unicode, Inc. hereby grants the right to freely use the information supplied in this file in the creation of products supporting the Unicode Standard, and to make copies of this file in any form for internal or external distribution as long as this notice remains attached." The file is provided as-is, without warranties Separate from Adobe's Core 14 notice (previous row), which covers the character codes and widths; the Unicode values come from this table