@crewlethq/artifact-kit 0.0.0-stage → 0.18.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Crewlet
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,130 @@
1
- # Temporary Holding Version
1
+ # @crewlethq/artifact-kit
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ The Crewlet design system as a framework-free browser bundle, for the pages people and agents publish as artifacts. An artifact page links it and paints with the same tokens, themes and fonts as the dashboard around it, follows the reader's appearance as it changes, and can draw an editable sheet over its datastore with one element.
4
+
5
+ The engine serves this package's `dist/` directory, unchanged, from the artifact's own origin at `/_crewlet/kit/<version>/`, so a page never fetches it from a third-party host and works on a closed network.
6
+
7
+ ## What a page links
8
+
9
+ ```html
10
+ <link rel="stylesheet" href="/_crewlet/kit/0.18.0/kit.css">
11
+ <script src="/_crewlet/kit/0.18.0/theme.js"></script>
12
+ <script type="module" src="/_crewlet/kit/0.18.0/kit.js"></script>
13
+ ```
14
+
15
+ Link the first two in the `<head>`, `theme.js` as a classic blocking script, before anything paints. `kit.js` is only needed by a page that draws a sheet. Then write colours, spacing and type with the tokens rather than literal values:
16
+
17
+ ```css
18
+ .summary {
19
+ padding: var(--spacing-3);
20
+ border-radius: var(--radius-md);
21
+ background: var(--color-surface-elevated);
22
+ color: var(--color-text-primary);
23
+ }
24
+ ```
25
+
26
+ ## The sheet
27
+
28
+ A page draws an editable sheet over one of its datastore collections with `<crewlet-sheet>`, its columns declared with `<crewlet-column>`:
29
+
30
+ ```html
31
+ <crewlet-sheet collection="vendors" sort="-score" frozen="1" label="Vendor scorecard">
32
+ <crewlet-column field="vendor" type="text" label="Vendor"></crewlet-column>
33
+ <crewlet-column field="score" type="number" label="Score" format="0.0" min="0" max="10"></crewlet-column>
34
+ <crewlet-column field="approved" type="checkbox" label="Approved"></crewlet-column>
35
+ <crewlet-column field="tier" type="select" label="Tier" options="Gold:amber,Silver:neutral,Bronze:rose"></crewlet-column>
36
+ <crewlet-column field="owner" type="person" label="Owner"></crewlet-column>
37
+ <crewlet-column field="status" type="status" label="Status" options="Review:info,Blocked:warning,Done:success"></crewlet-column>
38
+ </crewlet-sheet>
39
+ ```
40
+
41
+ or from a script:
42
+
43
+ ```js
44
+ import { mountSheet } from '/_crewlet/kit/0.18.0/kit.js';
45
+
46
+ const sheet = mountSheet(document.querySelector('#grid'), { collection: 'vendors' });
47
+ // sheet.update({ ... }) draws it again with changed options; sheet.unmount() takes it down.
48
+ ```
49
+
50
+ A sheet with no columns of its own draws the collection's schema: its hidden columns are left out, its primary column is frozen, and a column type this kit does not know is drawn as read-only text.
51
+
52
+ It is the design system's own `SheetGrid`, the component the dashboard draws a native sheet with, so a page's sheet looks and behaves exactly like it: the keyboard of a spreadsheet (arrows, Enter or F2 to edit, Escape, Tab, Space on a checkbox, typing to replace, Mod+C and Mod+V for ranges, Delete, Mod+Z and Mod+Shift+Z), an edit drawn at once as Saving until the engine confirms it, a refusal said on the cell, a conflict note naming whoever changed a cell under the editor, collaborators' rings and name flags, and the light and dark themes and every palette.
53
+
54
+ ### `<crewlet-sheet>` attributes
55
+
56
+ | Attribute | Meaning |
57
+ | --------- | ------- |
58
+ | `collection` | The datastore collection the sheet edits. Required. |
59
+ | `label` | The sheet's accessible name. The schema's title, then the collection's name, when absent. |
60
+ | `sort` | The initial order: `score` ascending, `-score` descending. |
61
+ | `frozen` | How many leading columns stay in view while the sheet scrolls sideways. |
62
+ | `readonly` | Draws the sheet read only, whatever the reader may do. |
63
+ | `height` | The scroller's height in px. The height its container gives it when absent. |
64
+
65
+ ### `<crewlet-column>` attributes
66
+
67
+ | Attribute | Meaning |
68
+ | --------- | ------- |
69
+ | `field` | The document field. Required. |
70
+ | `type` | `text`, `longtext`, `number`, `checkbox`, `select`, `multiselect`, `status`, `person`, `date`, `url` or `rating`. `text` when absent; an unknown type is drawn as read-only text. |
71
+ | `label` | The header. The field when absent. |
72
+ | `options` | Select, multi-select and status choices: `Label:color` pairs, comma separated. A select's colour is one of the six node hues (`purple`, `cyan`, `green`, `amber`, `rose`, `blue`) or `neutral`; a status's is a tone (`neutral`, `info`, `success`, `warning`, `danger`). |
73
+ | `format` | A number's form: `plain`, `0.0` (the decimals kept), `percent` or `0.0%`, `currency:EUR`. |
74
+ | `min`, `max` | A number's bounds; a rating's number of stars (`max`, 5 by default). |
75
+ | `max-length`, `max-items` | A text's longest value; a multi-select's most options. |
76
+ | `width` | The column's width in px. |
77
+ | `frozen`, `readonly`, `required`, `time` | Stays in view; takes no edit; refuses an empty value; a date with a time of day. |
78
+
79
+ ### What the sheet binds to
80
+
81
+ The sheet talks only to the page's runtime, `window.crewlet` (runtime contract 1.0), so it has exactly the page's capabilities and no more:
82
+
83
+ | Runtime call | What the sheet uses it for | Capability |
84
+ | ------------ | -------------------------- | ---------- |
85
+ | `data.collection(name).schema()`, `.subscribe(null, …)` | The columns, when the page declared none, and the rows, live | `data` |
86
+ | `data.collection(name).update(id, patch)`, `data.batch()` | One edit, and a paste or a cleared range as one all-or-nothing record | `data` |
87
+ | `data.collection(name).create({})` | Add row | `data` |
88
+ | `data.undo()`, `data.redo()` | Mod+Z and Mod+Shift+Z; an undo somebody overtook is skipped and said | `data` |
89
+ | `presence.subscribe(…)`, `presence.set({ focus, editing })` | Collaborators' rings and flags, the presence stack, and the reader's own cell | `presence` |
90
+ | `identity.me()`, `identity.people()`, `identity.lookup(ids)` | A viewer's read-only sheet, the people a person cell offers, and the names of people a cell holds | `identity` |
91
+ | `connection.subscribe(…)` | Offline in the sync strip | none |
92
+
93
+ A page that did not declare `data` gets a sheet that says so rather than an empty grid; without `presence` or `identity` the sheet draws without collaborators or without names. When the kit loads before the runtime, it waits for the runtime's `crewlet:ready` event on `window` (exported as `RUNTIME_READY_EVENT`).
94
+
95
+ ## What is in it
96
+
97
+ | File | Content |
98
+ | ---- | ------- |
99
+ | `kit.css` | The canonical variables, the dark and light palettes of the default theme, every named theme under `data-palette`, the density steps under `data-density`, the self-hosted Geist and Geist Mono faces and the document baseline, then the stylesheet of the sheet, its cells and the presence marks, in one file. |
100
+ | `fonts/` | The four Geist faces `kit.css` references, with `OFL.txt`. |
101
+ | `theme.js` | The theme bootstrap, under 2 KB gzipped. |
102
+ | `kit.js` | The `crewlet-sheet` and `crewlet-column` elements and `mountSheet`, an ES module. It carries the design system's React components and React itself, so a page needs no framework of its own. |
103
+ | `THIRD_PARTY_NOTICES.txt` | The licenses of the third-party code `kit.js` carries: React, React DOM and the scheduler under MIT, and the Lucide drawings of the glyphs under ISC. |
104
+
105
+ `theme.js` reads the reader's appearance from the frame URL's fragment, where the dashboard puts it (`#nonce=...&theme=dark&palette=dusk&density=compact`), and writes `data-theme`, `data-palette` and `data-density` on `<html>` before the first paint, exactly as the dashboard writes its own. When the dashboard transfers the bridge port it follows the reader's appearance on it, so changing the theme in the dashboard repaints the page without a reload. Every value is checked against the allowed ones before it is written. The wire it speaks is `FrameProtocol` in `@crewlethq/ui`, bundled rather than restated.
106
+
107
+ The elements render in the LIGHT DOM, not a shadow root, so the tokens cascade into the sheet and a page's own stylesheet can sit beside it with `var(--color-*)`.
108
+
109
+ ## Budgets
110
+
111
+ The build refuses a kit over any budget, and the suite holds the built files to the same numbers (`scripts/budgets.mjs`):
112
+
113
+ | File | Gzipped budget |
114
+ | ---- | -------------- |
115
+ | `theme.js` | 2 KB |
116
+ | `kit.css` | 40 KB |
117
+ | `kit.js` | 160 KB |
118
+
119
+ ## Building
120
+
121
+ ```sh
122
+ npm run build --workspace @crewlethq/artifact-kit # dist/
123
+ npm test --workspace @crewlethq/artifact-kit # the suite over dist/
124
+ ```
125
+
126
+ It builds from `@crewlethq/tokens` and `@crewlethq/ui` as a consumer installs them, so the kit carries exactly what the published packages carry. How the sheet behaves on a page (binding, edits, refusals, presence, pastes, undo) is tested in jsdom by `apps/ui-tests/src/artifact-kit.test.tsx`, the private workspace that holds the test tooling.
127
+
128
+ ## License
129
+
130
+ The code is licensed under the [MIT License](LICENSE). The Geist and Geist Mono font files in `dist/fonts/` are licensed under the SIL Open Font License 1.1 (`dist/fonts/OFL.txt`). The third-party code `kit.js` carries is under the licenses in `dist/THIRD_PARTY_NOTICES.txt`. The Crewlet name, logo and characters are not covered by these licenses; see [TRADEMARKS.md](TRADEMARKS.md).
package/TRADEMARKS.md ADDED
@@ -0,0 +1,39 @@
1
+ # Trademarks
2
+
3
+ "Crewlet", the Crewlet logo and the Crewlet character (in every pose, illustration, animation and rigged or trimmed variant) are trademarks of Crewlet. The source code and assets in this repository are licensed under the MIT License, and that license covers copyright only: it grants no right to use these trademarks.
4
+
5
+ ## What you may do
6
+
7
+ - Refer to the project by name to describe it truthfully, for example "built with @crewlethq/ui" or "a fork of the Crewlet design system".
8
+ - Use the packages, including the brand files listed below, in an official Crewlet product or in an unmodified build of this repository, such as its Storybook.
9
+
10
+ ## What you may not do
11
+
12
+ - Use the Crewlet name, logo or character in a way that suggests your product is Crewlet, is endorsed by Crewlet, or is an official distribution.
13
+ - Use the logo or the character as the identity of another product, service, company or account, including in a fork. A fork or redistribution that ships a user-facing surface must remove the Crewlet logo and character from it and use a different product name.
14
+
15
+ ## The brand files
16
+
17
+ These files in the repository carry the Crewlet logo or character:
18
+
19
+ - `packages/icons/svg/crewlet-icon.svg`
20
+ - `packages/icons/svg/crewlet-reading.svg`
21
+ - `packages/icons/src/crewletParts.ts`
22
+ - `packages/icons/src/CrewletFigure.tsx`
23
+ - `packages/icons/src/CrewletFigure.css`
24
+
25
+ The `CrewletIcon`, `CrewletReading` and `CrewletFigure` components that the `@crewlethq/icons` package builds from them are covered in the same way.
26
+
27
+ ## Third-party marks
28
+
29
+ `@crewlethq/icons` also ships the marks of the applications a Crewlet product integrates with, or offers as an integration, in `packages/icons/svg/vendor/`, drawn by the `VendorMark` component. Atlassian, ClickUp, Datadog, Discord, Figma, GitHub, GitLab, Mattermost, Microsoft Teams, Notion, Slack and Telegram are trademarks of their respective owners, none of whom are affiliated with Crewlet and none of whom have endorsed it.
30
+
31
+ They are here for nominative use: naming the application a feature connects to, so that a reader recognises it. That means a mark appears beside that application's own name, identifies only that application, and is never used to suggest a partnership, a sponsorship or an endorsement. Each owner's own brand guidelines apply on top of this page, and where the two differ the owner's win.
32
+
33
+ Crewlet claims no rights in these marks. They are excluded from the MIT License's grant for the same reason the Crewlet marks are: that license covers copyright, and a trademark is not copyright.
34
+
35
+ ## The glyph set
36
+
37
+ The Lucide drawings in `packages/icons/glyphs/` are Lucide's, under the ISC License, and those Lucide derives from Feather are under Feather's MIT License as well. Both licenses grant copyright permissions and say nothing about names, so the drawings may be used and redistributed, while "Lucide" and "Feather" stay the names of those projects: nothing this repository publishes is called by either, and neither project endorses it. `packages/icons/glyphs/LICENSE` carries both texts and ships in the package.
38
+
39
+ For any use this page does not allow, ask the maintainers first by opening an issue in this repository.
@@ -0,0 +1,127 @@
1
+ Third-party software carried by kit.js, with the license each is distributed under.
2
+
3
+ ------------------------------------------------------------------------
4
+
5
+ react 19.3.1
6
+
7
+ MIT License
8
+
9
+ Copyright (c) Meta Platforms, Inc. and affiliates.
10
+
11
+ Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ of this software and associated documentation files (the "Software"), to deal
13
+ in the Software without restriction, including without limitation the rights
14
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ copies of the Software, and to permit persons to whom the Software is
16
+ furnished to do so, subject to the following conditions:
17
+
18
+ The above copyright notice and this permission notice shall be included in all
19
+ copies or substantial portions of the Software.
20
+
21
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ SOFTWARE.
28
+
29
+ ------------------------------------------------------------------------
30
+
31
+ react-dom 19.3.1
32
+
33
+ MIT License
34
+
35
+ Copyright (c) Meta Platforms, Inc. and affiliates.
36
+
37
+ Permission is hereby granted, free of charge, to any person obtaining a copy
38
+ of this software and associated documentation files (the "Software"), to deal
39
+ in the Software without restriction, including without limitation the rights
40
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
41
+ copies of the Software, and to permit persons to whom the Software is
42
+ furnished to do so, subject to the following conditions:
43
+
44
+ The above copyright notice and this permission notice shall be included in all
45
+ copies or substantial portions of the Software.
46
+
47
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
48
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
49
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
50
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
51
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
52
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
53
+ SOFTWARE.
54
+
55
+ ------------------------------------------------------------------------
56
+
57
+ scheduler 0.28.0
58
+
59
+ MIT License
60
+
61
+ Copyright (c) Meta Platforms, Inc. and affiliates.
62
+
63
+ Permission is hereby granted, free of charge, to any person obtaining a copy
64
+ of this software and associated documentation files (the "Software"), to deal
65
+ in the Software without restriction, including without limitation the rights
66
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
67
+ copies of the Software, and to permit persons to whom the Software is
68
+ furnished to do so, subject to the following conditions:
69
+
70
+ The above copyright notice and this permission notice shall be included in all
71
+ copies or substantial portions of the Software.
72
+
73
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
74
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
75
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
76
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
77
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
78
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
79
+ SOFTWARE.
80
+
81
+ ------------------------------------------------------------------------
82
+
83
+ Lucide icons (the glyphs of @crewlethq/icons)
84
+
85
+ ISC License
86
+
87
+ Copyright (c) 2026 Lucide Icons and Contributors
88
+
89
+ Permission to use, copy, modify, and/or distribute this software for any
90
+ purpose with or without fee is hereby granted, provided that the above
91
+ copyright notice and this permission notice appear in all copies.
92
+
93
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
94
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
95
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
96
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
97
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
98
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
99
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
100
+
101
+ ---
102
+
103
+ The following Lucide icons are derived from the Feather project:
104
+
105
+ airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
106
+
107
+ The MIT License (MIT) (for the icons listed above)
108
+
109
+ Copyright (c) 2013-present Cole Bemis
110
+
111
+ Permission is hereby granted, free of charge, to any person obtaining a copy
112
+ of this software and associated documentation files (the "Software"), to deal
113
+ in the Software without restriction, including without limitation the rights
114
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
115
+ copies of the Software, and to permit persons to whom the Software is
116
+ furnished to do so, subject to the following conditions:
117
+
118
+ The above copyright notice and this permission notice shall be included in all
119
+ copies or substantial portions of the Software.
120
+
121
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
122
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
123
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
124
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
125
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
126
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
127
+ SOFTWARE.
@@ -0,0 +1,102 @@
1
+ Copyright 2024 The Geist Project Authors (https://github.com/vercel/geist-font)
2
+ Copyright 2024 The Geist Project Authors (https://github.com/vercel/geist-font.git)
3
+
4
+ These are the copyright notices of the faces in this directory, reproduced
5
+ exactly as their files state them: the Geist faces carry the first and the
6
+ Geist Mono faces the second. The faces are the `latin` and `latin-ext` subsets
7
+ that Google Fonts serves for the two families. Each keeps part of the upstream
8
+ variable font's glyphs, layout features and tables, and is therefore a
9
+ Modified Version under the definitions below. Neither family declares a
10
+ Reserved Font Name. fonts/README.md records where each file was downloaded
11
+ from, and SHA256SUMS its checksum.
12
+
13
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
14
+ This license is copied below, and is also available with a FAQ at:
15
+ https://openfontlicense.org
16
+
17
+ -----------------------------------------------------------
18
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
19
+ -----------------------------------------------------------
20
+
21
+ PREAMBLE
22
+ The goals of the Open Font License (OFL) are to stimulate worldwide
23
+ development of collaborative font projects, to support the font creation
24
+ efforts of academic and linguistic communities, and to provide a free and
25
+ open framework in which fonts may be shared and improved in partnership
26
+ with others.
27
+
28
+ The OFL allows the licensed fonts to be used, studied, modified and
29
+ redistributed freely as long as they are not sold by themselves. The
30
+ fonts, including any derivative works, can be bundled, embedded,
31
+ redistributed and/or sold with any software provided that any reserved
32
+ names are not used by derivative works. The fonts and derivatives,
33
+ however, cannot be released under any other type of license. The
34
+ requirement for fonts to remain under this license does not apply
35
+ to any document created using the fonts or their derivatives.
36
+
37
+ DEFINITIONS
38
+ "Font Software" refers to the set of files released by the Copyright
39
+ Holder(s) under this license and clearly marked as such. This may
40
+ include source files, build scripts and documentation.
41
+
42
+ "Reserved Font Name" refers to any names specified as such after the
43
+ copyright statement(s).
44
+
45
+ "Original Version" refers to the collection of Font Software components as
46
+ distributed by the Copyright Holder(s).
47
+
48
+ "Modified Version" refers to any derivative made by adding to, deleting,
49
+ or substituting -- in part or in whole -- any of the components of the
50
+ Original Version, by changing formats or by porting the Font Software to a
51
+ new environment.
52
+
53
+ "Author" refers to any designer, engineer, programmer, technical
54
+ writer or other person who contributed to the Font Software.
55
+
56
+ PERMISSION & CONDITIONS
57
+ Permission is hereby granted, free of charge, to any person obtaining
58
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
59
+ redistribute, and sell modified and unmodified copies of the Font
60
+ Software, subject to the following conditions:
61
+
62
+ 1) Neither the Font Software nor any of its individual components,
63
+ in Original or Modified Versions, may be sold by itself.
64
+
65
+ 2) Original or Modified Versions of the Font Software may be bundled,
66
+ redistributed and/or sold with any software, provided that each copy
67
+ contains the above copyright notice and this license. These can be
68
+ included either as stand-alone text files, human-readable headers or
69
+ in the appropriate machine-readable metadata fields within text or
70
+ binary files as long as those fields can be easily viewed by the user.
71
+
72
+ 3) No Modified Version of the Font Software may use the Reserved Font
73
+ Name(s) unless explicit written permission is granted by the corresponding
74
+ Copyright Holder. This restriction only applies to the primary font name as
75
+ presented to the users.
76
+
77
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
78
+ Software shall not be used to promote, endorse or advertise any
79
+ Modified Version, except to acknowledge the contribution(s) of the
80
+ Copyright Holder(s) and the Author(s) or with their explicit written
81
+ permission.
82
+
83
+ 5) The Font Software, modified or unmodified, in part or in whole,
84
+ must be distributed entirely under this license, and must not be
85
+ distributed under any other license. The requirement for fonts to
86
+ remain under this license does not apply to any document created
87
+ using the Font Software.
88
+
89
+ TERMINATION
90
+ This license becomes null and void if any of the above conditions are
91
+ not met.
92
+
93
+ DISCLAIMER
94
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
95
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
96
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
97
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
98
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
99
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
100
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
101
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
102
+ OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file
Binary file