@graphysdk/theme-gamma 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/LICENSE.md +17 -0
  2. package/README.md +64 -2
  3. package/dist/fonts.d.ts +2 -0
  4. package/dist/index.cjs +1 -0
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.mjs +1872 -0
  7. package/dist/mushroom/mushroom.d.ts +15 -0
  8. package/dist/mushroom/renderer/area.d.ts +5 -0
  9. package/dist/mushroom/renderer/bar.d.ts +7 -0
  10. package/dist/mushroom/renderer/cap.d.ts +19 -0
  11. package/dist/mushroom/renderer/line.d.ts +5 -0
  12. package/dist/mushroom/renderer/plugins.d.ts +8 -0
  13. package/dist/mushroom/renderer/point.d.ts +5 -0
  14. package/dist/mushroom/renderer/slice.d.ts +6 -0
  15. package/dist/mushroom/renderer/texture.d.ts +39 -0
  16. package/dist/mushroom/styles.d.ts +31 -0
  17. package/dist/night/night.d.ts +14 -0
  18. package/dist/night/renderer/area.d.ts +5 -0
  19. package/dist/night/renderer/bar.d.ts +3 -0
  20. package/dist/night/renderer/corner.d.ts +2 -0
  21. package/dist/night/renderer/glass.d.ts +18 -0
  22. package/dist/night/renderer/line.d.ts +5 -0
  23. package/dist/night/renderer/plugins.d.ts +8 -0
  24. package/dist/night/renderer/point.d.ts +5 -0
  25. package/dist/night/renderer/slice.d.ts +3 -0
  26. package/dist/night/renderer/star.d.ts +12 -0
  27. package/dist/night/sky.d.ts +5 -0
  28. package/dist/night/styles.d.ts +30 -0
  29. package/dist/shared/bar-frame.d.ts +22 -0
  30. package/dist/shared/ink.d.ts +10 -0
  31. package/dist/shared/intro.d.ts +20 -0
  32. package/dist/shared/paint.d.ts +21 -0
  33. package/dist/shared/slice-extent.d.ts +12 -0
  34. package/dist/shared/trace.d.ts +19 -0
  35. package/dist/shared/utils/paths.d.ts +7 -0
  36. package/dist/shared/utils/projections.d.ts +16 -0
  37. package/fonts.css +2 -0
  38. package/licenses/PolyForm-Free-Trial-1.0.0.md +93 -0
  39. package/licenses/PolyForm-NonCommercial-1.0.0.md +131 -0
  40. package/licenses/PolyForm-Small-Business-1.0.0.md +121 -0
  41. package/package.json +79 -3
  42. package/src/fonts.css.d.ts +2 -0
@@ -0,0 +1,15 @@
1
+ import { Theme } from '@graphysdk/react';
2
+ /**
3
+ * Graphs in Gamma's mushroom forest under a summer sky. A bar grows as a mushroom: a speckled cap
4
+ * whose crown is the value, its gilled underside showing below the rim, on a stippled stalk. A pie is
5
+ * the underside of a cap with its gills running round it and its stalk in the middle, and a reading
6
+ * on a line or a scatter is a little cap sitting on it. Groups take the caps' colours. Drawn for the
7
+ * light scheme only.
8
+ *
9
+ * Headings are set in Plus Jakarta Sans and text in Inter, standing in for Gamma's own faces. Import
10
+ * `@graphysdk/theme-gamma/fonts.css` once to load them.
11
+ *
12
+ * @example
13
+ * const kit = createGraphyKit({ theme: gammaMushroom });
14
+ */
15
+ export declare const gammaMushroom: Theme;
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Each area speckled like a cap, its edge along its readings drawn in the cap's deeper rim colour. */
3
+ export declare const mushroomArea: ResolvedGeomRenderer;
4
+ /** A filled radar, speckled like a cap. */
5
+ export declare const mushroomRadarArea: ResolvedGeomRenderer;
@@ -0,0 +1,7 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /**
3
+ * Each bar grows as one of Gamma's mushrooms: a speckled cap whose crown is the value, its gilled
4
+ * underside showing below the rim, on a stippled stalk that tapers up from the foot. In a stack the
5
+ * slabs are the caps' colours and only the top one is crowned.
6
+ */
7
+ export declare const mushroomBar: ResolvedGeomRenderer;
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ interface MiniCapProps {
3
+ cx: number;
4
+ cy: number;
5
+ /** Across the cap at its rim. */
6
+ width: number;
7
+ color: string;
8
+ opacity?: number;
9
+ edge?: {
10
+ stroke: string;
11
+ strokeWidth: number;
12
+ };
13
+ }
14
+ /**
15
+ * A small mushroom cap centred on a reading: a dome in `color` over a sliver of pale gilled underside,
16
+ * the reading at the middle of the dome so the cap sits on it whichever way it is read.
17
+ */
18
+ export declare const MiniCap: ({ cx, cy, width, color, opacity, edge }: MiniCapProps) => ReactNode;
19
+ export {};
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** A line with a little mushroom cap sitting on each reading. */
3
+ export declare const mushroomLine: ResolvedGeomRenderer;
4
+ /** A radar's outline, closed, with a cap at each reading. */
5
+ export declare const mushroomRadarLine: ResolvedGeomRenderer;
@@ -0,0 +1,8 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /**
3
+ * Every built-in geom the mushroom theme repaints, under each coordinate system it is drawn in. A
4
+ * tile keeps the built-in renderer, rounded by the stylesheet, since a heatmap reads from its colours.
5
+ * Positions, scales and axes come from the compiled layer unchanged, and colour and opacity come from
6
+ * the stylesheet.
7
+ */
8
+ export declare const mushroomPlugins: readonly ResolvedGeomRenderer[];
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Scatter and bubble: a mushroom cap centred on each reading. */
3
+ export declare const mushroomPoint: ResolvedGeomRenderer;
4
+ /** A radar's vertices as caps. */
5
+ export declare const mushroomRadarPoint: ResolvedGeomRenderer;
@@ -0,0 +1,6 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /**
3
+ * Pie, donut, rose and radial bar as the underside of a mushroom cap: each slice scored with gills
4
+ * that run on from slice to slice, pale towards the middle, and a pie's stalk rising from its centre.
5
+ */
6
+ export declare const mushroomSlice: ResolvedGeomRenderer;
@@ -0,0 +1,39 @@
1
+ import { ReactNode } from 'react';
2
+ export declare const STALK_COLORS: {
3
+ readonly shade: "#138F6E";
4
+ readonly body: "#2FB27A";
5
+ readonly sunlit: "#C2DC5E";
6
+ readonly stipple: "#0B6B50";
7
+ };
8
+ export declare const GILL_COLORS: {
9
+ readonly underside: "#F8CCD8";
10
+ readonly gill: "#DE8FAA";
11
+ };
12
+ interface DotsProps {
13
+ id: string;
14
+ color: string;
15
+ opacity: number;
16
+ count: number;
17
+ seed: number;
18
+ /** The largest dot's radius. */
19
+ largest: number;
20
+ }
21
+ export declare const DotPattern: ({ id, color, opacity, count, seed, largest }: DotsProps) => ReactNode;
22
+ /** The white speckles over a cap. */
23
+ export declare const Speckles: ({ id }: {
24
+ id: string;
25
+ }) => ReactNode;
26
+ /** The darker stipple over a stalk. */
27
+ export declare const Stipple: ({ id }: {
28
+ id: string;
29
+ }) => ReactNode;
30
+ /** A cap in `color`, sunlit at its crown and deepening towards violet at its rim, as Gamma's are. */
31
+ export declare const CapGradient: ({ id, color }: {
32
+ id: string;
33
+ color: string;
34
+ }) => ReactNode;
35
+ /** A stalk in shade on one side and in sun on the other. */
36
+ export declare const StalkGradient: ({ id }: {
37
+ id: string;
38
+ }) => ReactNode;
39
+ export {};
@@ -0,0 +1,31 @@
1
+ import { Stylesheet } from '@graphysdk/react';
2
+ export declare const MUSHROOM_COLORS: {
3
+ readonly sky: "#84C1FA";
4
+ readonly haze: "#AFE7FC";
5
+ readonly mist: "#E8EEFC";
6
+ readonly ground: "#FFFFFF";
7
+ readonly raised: "#FFFFFF";
8
+ readonly text: "#002253";
9
+ readonly secondary: "#4B5A78";
10
+ readonly accent: "#0540AD";
11
+ readonly rule: "rgba(0, 34, 83, 0.55)";
12
+ readonly grid: "rgba(255, 255, 255, 0.75)";
13
+ };
14
+ /** The caps of Gamma's mushrooms: coral red, violet blue, pink, a sunset orange and a purple. */
15
+ export declare const MUSHROOM_HUES: {
16
+ readonly coral: "#FF5D73";
17
+ readonly violet: "#6B5BE2";
18
+ readonly pink: "#F26DB5";
19
+ readonly orange: "#FF9A3C";
20
+ readonly purple: "#B05CE0";
21
+ readonly teal: "#1FA88A";
22
+ };
23
+ export declare const MUSHROOM_PALETTE: readonly string[];
24
+ /** For a colour that stands for a number: from the gills' pale pink through coral to violet. */
25
+ export declare const MUSHROOM_COLORMAP: readonly string[];
26
+ /**
27
+ * Gamma's summer sky inside the graph, fading from blue to white, with no frame round it. Grid lines
28
+ * are drawn in white across the sky, the baseline is the ground the mushrooms stand on, and headings
29
+ * are set heavy and tight in Gamma's navy.
30
+ */
31
+ export declare const mushroomStyles: Stylesheet;
@@ -0,0 +1,14 @@
1
+ import { Theme } from '@graphysdk/react';
2
+ /**
3
+ * Graphs in the night sky behind Gamma's wordmark: navy fading to indigo, scattered with stars. Every
4
+ * shape is filled as the wordmark is, a pale glass most solid at its top and thinning as it falls so
5
+ * the stars show through: bars and slices have softened corners, and a line is a broad ribbon whose readings are the stars along it. Drawn for
6
+ * the dark scheme only.
7
+ *
8
+ * Headings are set in Plus Jakarta Sans and text in Inter, standing in for Gamma's own faces. Import
9
+ * `@graphysdk/theme-gamma/fonts.css` once to load them.
10
+ *
11
+ * @example
12
+ * const kit = createGraphyKit({ theme: gammaNight });
13
+ */
14
+ export declare const gammaNight: Theme;
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Each area a sheet of the wordmark's glass, fading as it falls, with a bright edge along its readings. */
3
+ export declare const nightArea: ResolvedGeomRenderer;
4
+ /** A filled radar as a sheet of glass with a bright edge. */
5
+ export declare const nightRadarArea: ResolvedGeomRenderer;
@@ -0,0 +1,3 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Each bar a stroke of the wordmark: glass with softened top corners, most solid at its top, the stars showing through its foot. */
3
+ export declare const nightBar: ResolvedGeomRenderer;
@@ -0,0 +1,2 @@
1
+ /** The bend at the outer end of a bar or slice, in pixels, so both are softened alike. */
2
+ export declare const CORNER_RADIUS_PX = 6;
@@ -0,0 +1,18 @@
1
+ import { ReactNode } from 'react';
2
+ import { PixelSize } from '../../shared/utils/projections';
3
+ /** Which way the light falls across the panel: down a column chart, leftwards along a bar chart. */
4
+ export type Fall = 'down' | 'left';
5
+ interface GlassGradientsProps {
6
+ idFor: (color: string) => string;
7
+ colors: Iterable<string>;
8
+ panel: PixelSize;
9
+ fall: Fall;
10
+ /** How solid the glass is overall, before it fades. */
11
+ strength?: number;
12
+ }
13
+ /**
14
+ * One gradient per colour, laid across the whole panel rather than each shape, as the wordmark's is
15
+ * across all its letters: a tall shape is more solid at its top than a short one.
16
+ */
17
+ export declare const GlassGradients: ({ idFor, colors, panel, fall, strength }: GlassGradientsProps) => ReactNode;
18
+ export {};
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** A line as a broad glass ribbon with a fine bright thread down its middle and a star at each reading. */
3
+ export declare const nightLine: ResolvedGeomRenderer;
4
+ /** A radar's outline as a closed ribbon, a star at each reading. */
5
+ export declare const nightRadarLine: ResolvedGeomRenderer;
@@ -0,0 +1,8 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /**
3
+ * Every built-in geom the night theme repaints, under each coordinate system it is drawn in. A tile
4
+ * keeps the built-in renderer, rounded by the stylesheet: a heatmap reads from its colours, which glass
5
+ * that fades would muddy. Positions, scales and axes come from the compiled layer unchanged, and
6
+ * colour and opacity come from the stylesheet.
7
+ */
8
+ export declare const nightPlugins: readonly ResolvedGeomRenderer[];
@@ -0,0 +1,5 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Scatter and bubble: a star at each reading. */
3
+ export declare const nightPoint: ResolvedGeomRenderer;
4
+ /** A radar's vertices as stars. */
5
+ export declare const nightRadarPoint: ResolvedGeomRenderer;
@@ -0,0 +1,3 @@
1
+ import { ResolvedGeomRenderer } from '@graphysdk/react';
2
+ /** Pie, donut, radial bar and rose as glass slices. */
3
+ export declare const nightSlice: ResolvedGeomRenderer;
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ interface StarProps {
3
+ cx: number;
4
+ cy: number;
5
+ /** From the middle to the tip of each point. */
6
+ reach: number;
7
+ color: string;
8
+ opacity?: number;
9
+ }
10
+ /** A four-pointed star in `color`, burning white in its middle, with a soft halo round it. */
11
+ export declare const Star: ({ cx, cy, reach, color, opacity }: StarProps) => ReactNode;
12
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface SkyStop {
2
+ offset: number;
3
+ color: string;
4
+ }
5
+ export declare const buildNightSky: (stops: readonly SkyStop[], starColor: string) => string;
@@ -0,0 +1,30 @@
1
+ import { Stylesheet } from '@graphysdk/react';
2
+ export declare const NIGHT_COLORS: {
3
+ readonly zenith: "#122547";
4
+ readonly dusk: "#31347A";
5
+ readonly horizon: "#405199";
6
+ readonly raised: "#1B2A5C";
7
+ readonly text: "#EEF2FE";
8
+ readonly secondary: "#AAB5E6";
9
+ readonly rule: "rgba(170, 181, 230, 0.6)";
10
+ readonly grid: "rgba(170, 181, 230, 0.13)";
11
+ readonly star: "#FFFFFF";
12
+ };
13
+ /** The wordmark's own pale lavender, then colours lit against the night: Gamma's sky blue, and the mushrooms' pink, mint and gold. */
14
+ export declare const NIGHT_HUES: {
15
+ readonly wordmark: "#B9C3FF";
16
+ readonly sky: "#6CAEEE";
17
+ readonly petal: "#FF8FB8";
18
+ readonly mint: "#5FE0C1";
19
+ readonly gold: "#FFD66B";
20
+ readonly coral: "#FF8A65";
21
+ };
22
+ export declare const NIGHT_PALETTE: readonly string[];
23
+ /** For a colour that stands for a number: from the deep sky to the wordmark's palest glass. */
24
+ export declare const NIGHT_COLORMAP: readonly string[];
25
+ /**
26
+ * Gamma's night sky inside the graph, starred and fading from navy to indigo, with no frame round it.
27
+ * The rule under the wordmark is the baseline, a faint grid sits behind, and headings are set heavy and
28
+ * tight, as Gamma's are.
29
+ */
30
+ export declare const nightStyles: Stylesheet;
@@ -0,0 +1,22 @@
1
+ import { MainAxis, Observation, XYPoint } from '@graphysdk/react';
2
+ import { PixelSize } from './utils/projections';
3
+ export interface BarFrame {
4
+ /** Across the band. */
5
+ breadth: number;
6
+ /** Along the value, from the foot. */
7
+ length: number;
8
+ /** Whether the bar ends its stack, so its value's end is its own to shape. */
9
+ endsStack: boolean;
10
+ /** A point across and along the bar, in panel pixels. */
11
+ at: (across: number, along: number) => XYPoint;
12
+ }
13
+ /** A bar part way through its entrance: `growth` of the way from `baseline` to its value. */
14
+ export interface BarGrowth {
15
+ /** Where the bars grow from, as a top-left `[0, 1]` position along the value axis. */
16
+ baseline: number;
17
+ growth: number;
18
+ }
19
+ /** A bar's frame in panel pixels, drawn in from any edge it shares with a neighbour in its stack. */
20
+ export declare const readBarFrame: (observation: Observation, mainAxis: MainAxis, panel: PixelSize, stackGap: number, growth?: BarGrowth) => BarFrame | null;
21
+ /** A path through local points: `M` at the first, `L` to each plain point, `C` through each triple. */
22
+ export declare const toBarPath: (frame: BarFrame, segments: ReadonlyArray<ReadonlyArray<[number, number]>>) => string;
@@ -0,0 +1,10 @@
1
+ /** `color` moved `amount` of the way to `target`; a colour either cannot read is returned as it is. */
2
+ export declare const mixColors: (color: string, target: string, amount: number) => string;
3
+ /** An id a `url()` can name: React's own holds characters one cannot. */
4
+ export declare const useDefId: (prefix: string) => string;
5
+ /** Ids for one definition per colour under one prefix, for shapes that share a gradient or a pattern. */
6
+ export declare const useColorIds: (prefix: string) => ((color: string) => string);
7
+ /** A number from a string, so a shape's speckles fall the same way every time it is drawn. */
8
+ export declare const hashSeed: (text: string) => number;
9
+ /** Numbers in `[0, 1)` from a seed, the same run of them for the same seed. */
10
+ export declare const createRandom: (seed: number) => (() => number);
@@ -0,0 +1,20 @@
1
+ import { ReactNode } from 'react';
2
+ import { GrowIntroPlan, LayerIntroPlan } from '@graphysdk/react';
3
+ /** How far a shape has grown towards its value, by its stable key: 0 at the baseline, 1 at rest. */
4
+ export type ReadGrowth = (key: string) => number;
5
+ export interface IntroGrowth {
6
+ /** The grow plan being played; absent when the layer enters some other way or is at rest. */
7
+ plan: GrowIntroPlan | null;
8
+ readGrowth: ReadGrowth;
9
+ }
10
+ /** A layer's grow entrance, played on its own clock. */
11
+ export declare const useIntroGrowth: (intro: LayerIntroPlan | null | undefined) => IntroGrowth;
12
+ /** A position part way from the baseline to where it rests. */
13
+ export declare const growFrom: (baseline: number, value: number, growth: number) => number;
14
+ interface IntroRevealProps {
15
+ intro: LayerIntroPlan | null | undefined;
16
+ children: ReactNode;
17
+ }
18
+ /** The entrances a layer plays whole rather than shape by shape: a wipe along a line, or a fade. */
19
+ export declare const IntroReveal: ({ intro, children }: IntroRevealProps) => ReactNode;
20
+ export {};
@@ -0,0 +1,21 @@
1
+ import { Observation, SceneLayerFor, StyleState } from '@graphysdk/react';
2
+ /** What a filled shape is drawn with. */
3
+ export interface ShapePaint {
4
+ color: string;
5
+ opacity: number;
6
+ fillOpacity: number;
7
+ /** The edge that parts it from its neighbours, or rules it when hovered. */
8
+ edge: string;
9
+ edgeWidth: number;
10
+ }
11
+ /** What a line is drawn with. Its rails take `color`; the ground shows between them. */
12
+ export interface LinePaint {
13
+ color: string;
14
+ opacity: number;
15
+ width: number;
16
+ dashArray: string | undefined;
17
+ }
18
+ export type ReadShapePaint = (observation: Observation, state?: StyleState) => ShapePaint;
19
+ export type ReadLinePaint = (observation: Observation, state?: StyleState) => LinePaint;
20
+ export declare const useShapePaint: (layer: SceneLayerFor<"bar" | "point" | "tile" | "area">) => ReadShapePaint;
21
+ export declare const useLinePaint: (layer: SceneLayerFor<"line">) => ReadLinePaint;
@@ -0,0 +1,12 @@
1
+ import { GrowIntroPlan, Observation } from '@graphysdk/react';
2
+ export interface SliceExtent {
3
+ startAngle: number;
4
+ endAngle: number;
5
+ innerRadius: number;
6
+ outerRadius: number;
7
+ }
8
+ /**
9
+ * A slice's angles and unit radii, part way through its entrance when one is playing: a pie sweeps
10
+ * round from its start angle, a rose reaches out from its inner radius.
11
+ */
12
+ export declare const readSliceExtent: (observation: Observation, plan: GrowIntroPlan | null, growth: number) => SliceExtent | null;
@@ -0,0 +1,19 @@
1
+ import { Observation, SceneLayer, XYPoint } from '@graphysdk/react';
2
+ import { PixelSize, Projection } from './utils/projections';
3
+ /** One group's path in panel pixels, with the observation its paint is read for. */
4
+ export interface Trace {
5
+ key: string;
6
+ path: string;
7
+ observation: Observation;
8
+ }
9
+ /** One trace per group, from whatever turns a group's observations into its path. */
10
+ export declare const readTraces: (layer: SceneLayer, buildPath: (observations: Observation[]) => string | null) => Trace[];
11
+ /** A radar group's vertices in panel pixels, in angular order so its outline never crosses itself. */
12
+ export declare const readRadarPoints: (observations: Observation[], panel: PixelSize) => XYPoint[];
13
+ export declare const buildRadarPath: (observations: Observation[], panel: PixelSize) => string | null;
14
+ /** Each reading of every group in panel pixels, with the observation it is read from. */
15
+ export declare const readReadings: (layer: SceneLayer, panel: PixelSize, project: Projection) => Array<{
16
+ key: string;
17
+ observation: Observation;
18
+ point: XYPoint;
19
+ }>;
@@ -0,0 +1,7 @@
1
+ import { PixelSize } from './projections';
2
+ /**
3
+ * A path written in the unit square, in the panel's pixels. A shape is measured in pixels on every
4
+ * side, which a path stretched by a transform is not. Reads the commands a line or an area is written
5
+ * in; an arc is not one of them.
6
+ */
7
+ export declare const scalePathToPanel: (path: string, panel: PixelSize) => string;
@@ -0,0 +1,16 @@
1
+ import { Observation, XYPoint } from '@graphysdk/react';
2
+ export interface PixelSize {
3
+ width: number;
4
+ height: number;
5
+ }
6
+ export interface PixelRect extends PixelSize {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ /** Where an observation is drawn in the panel, in pixels; `null` for one missing a position. */
11
+ export type Projection = (observation: Observation, panel: PixelSize) => XYPoint | null;
12
+ export declare const projectCartesian: Projection;
13
+ export declare const projectPolar: Projection;
14
+ /** The whole panel, for a shape that may reach any part of it. */
15
+ export declare const toPanelBounds: (panel: PixelSize) => PixelRect;
16
+ export declare const toClosedPath: (points: XYPoint[]) => string;
package/fonts.css ADDED
@@ -0,0 +1,2 @@
1
+ /* Plus Jakarta Sans for headings and Inter for small type, stand-ins for Gamma's own ES Build and PP Mori that the themes' stylesheets name. Import this once, before the first graph is measured. */
2
+ @import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@500;700;800&family=Inter:wght@400;500;600&display=swap');
@@ -0,0 +1,93 @@
1
+ # PolyForm Free Trial License 1.0.0
2
+
3
+ <https://polyformproject.org/licenses/free-trial/1.0.0>
4
+
5
+ ## Acceptance
6
+
7
+ In order to get any license under these terms, you must agree
8
+ to them as both strict obligations and conditions to all
9
+ your licenses.
10
+
11
+ ## Copyright License
12
+
13
+ The licensor grants you a copyright license for the software
14
+ to do everything you might do with the software that would
15
+ otherwise infringe the licensor's copyright in it for any
16
+ permitted purpose. However, you may only make changes or
17
+ new works based on the software according to [Changes and New
18
+ Works License](#changes-and-new-works-license), and you may
19
+ not distribute copies of the software.
20
+
21
+ ## Changes and New Works License
22
+
23
+ The licensor grants you an additional copyright license to
24
+ make changes and new works based on the software for any
25
+ permitted purpose.
26
+
27
+ ## Patent License
28
+
29
+ The licensor grants you a patent license for the software that
30
+ covers patent claims the licensor can license, or becomes able
31
+ to license, that you would infringe by using the software.
32
+
33
+ ## Fair Use
34
+
35
+ You may have "fair use" rights for the software under the
36
+ law. These terms do not limit them.
37
+
38
+ ## Free Trial
39
+
40
+ Use to evaluate whether the software suits a particular
41
+ application for less than 32 consecutive calendar days, on
42
+ behalf of you or your company, is use for a permitted purpose.
43
+
44
+ ## No Other Rights
45
+
46
+ These terms do not allow you to sublicense or transfer any of
47
+ your licenses to anyone else, or prevent the licensor from
48
+ granting licenses to anyone else. These terms do not imply
49
+ any other licenses.
50
+
51
+ ## Patent Defense
52
+
53
+ If you make any written claim that the software infringes or
54
+ contributes to infringement of any patent, your patent license
55
+ for the software granted under these terms ends immediately. If
56
+ your company makes such a claim, your patent license ends
57
+ immediately for work on behalf of your company.
58
+
59
+ ## Violations
60
+
61
+ If you violate any of these terms, or do anything with the
62
+ software not covered by your licenses, all your licenses
63
+ end immediately.
64
+
65
+ ## No Liability
66
+
67
+ _**As far as the law allows, the software comes as is, without
68
+ any warranty or condition, and the licensor will not be liable
69
+ to you for any damages arising out of these terms or the use
70
+ or nature of the software, under any kind of legal claim.**_
71
+
72
+ ## Definitions
73
+
74
+ The **licensor** is the individual or entity offering these
75
+ terms, and the **software** is the software the licensor makes
76
+ available under these terms.
77
+
78
+ **You** refers to the individual or entity agreeing to these
79
+ terms.
80
+
81
+ **Your company** is any legal entity, sole proprietorship,
82
+ or other kind of organization that you work for, plus all
83
+ organizations that have control over, are under the control of,
84
+ or are under common control with that organization. **Control**
85
+ means ownership of substantially all the assets of an entity,
86
+ or the power to direct its management and policies by vote,
87
+ contract, or otherwise. Control can be direct or indirect.
88
+
89
+ **Your licenses** are all the licenses granted to you for the
90
+ software under these terms.
91
+
92
+ **Use** means anything you do with the software requiring one
93
+ of your licenses.