0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-23 18:43:02 +00:00

Compare commits

...

69 Commits

Author SHA1 Message Date
Trevor Buckner
f98c506a3f Fix version typo in changelog 2026-01-11 14:50:49 -05:00
Trevor Buckner
56f76bceae Update version number 2026-01-11 14:50:34 -05:00
Trevor Buckner
b1a1c86155 Update changelog.md 2026-01-11 14:49:07 -05:00
Trevor Buckner
727ae0693a Merge pull request #4583 from G-Ambatte/fixSaveHashMismatch
Normalize brew text before hashing for saving
2026-01-11 14:19:03 -05:00
G.Ambatte
4370597587 Normalize brew text before hashing 2026-01-11 21:02:12 +13:00
Víctor Losada Hernández
0495513059 Merge pull request #4576 from 5e-Cleric/fix-cover-footnote
fix footnote in coverpages
2026-01-03 17:50:20 +01:00
Víctor Losada Hernández
97392a9630 Merge branch 'master' of https://github.com/naturalcrit/homebrewery into fix-cover-footnote 2026-01-03 17:46:18 +01:00
Víctor Losada Hernández
494791cdd2 simple override 2026-01-03 17:43:08 +01:00
Víctor Losada Hernández
2ed5444bbc Merge pull request #4575 from 5e-Cleric/fix-vault-pagination
fix vault pagination going wild
2026-01-03 17:38:31 +01:00
Víctor Losada Hernández
044b8bf44c fix vault pagination going wild 2026-01-03 17:34:14 +01:00
Trevor Buckner
6dbc4214e5 Merge pull request #4552 from G-Ambatte/fixBackCoverAsset
Fix backCover image asset
2025-12-31 02:36:24 -05:00
G.Ambatte
aca481388e Merge branch 'master' into fixBackCoverAsset 2025-12-30 21:07:23 +13:00
Trevor Buckner
859dbea0bc Merge pull request #4569 from naturalcrit/d100_font_tweaks
D100 font tweaks
2025-12-27 20:53:22 -05:00
Trevor Buckner
12a45c39ed Update .less and .js font files to include the new d100 icons
collapses the d10 icons definitions down into one-liners (~400 lines shorter)
2025-12-27 20:44:18 -05:00
Trevor Buckner
db58c107d8 Remove unnecessary separate diceFontD100.woff2
All icons now reside in diceFont.woff2
2025-12-27 20:43:20 -05:00
Trevor Buckner
f9a4e30dea Tweak number font in D10 dice to match other dice
- Tweak the font in the d10 dice to match the other dice exactly
- Move the d10 icons over to the core diceFont.woff2 file
- Add a set of d100 icons representing an actual d100 ball die
2025-12-27 20:42:50 -05:00
G.Ambatte
d9f4f0a4ec Move image left by 1px 2025-12-01 18:59:13 +13:00
Víctor Losada Hernández
6c85484f78 Merge pull request #4352 from G-Ambatte/experimentalGoogleServiceAccountChange
Add Google service account to file permissions
2025-11-24 17:52:21 +01:00
Víctor Losada Hernández
50ebab21ce Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-24 15:23:18 +01:00
Trevor Buckner
d79c4d9566 Merge pull request #4544 from naturalcrit/dependabot/npm_and_yarn/vitreum-929c351
Bump vitreum from `9d55fd6` to `929c351`
2025-11-21 15:21:48 -05:00
dependabot[bot]
d04434fdd8 Bump vitreum from 9d55fd6 to 929c351
Bumps [vitreum](https://github.com/calculuschild/vitreum) from `9d55fd6` to `929c351`.
- [Commits](9d55fd6fb7...929c351881)

---
updated-dependencies:
- dependency-name: vitreum
  dependency-version: 929c351881c4229550374421c7e2890a94f4dca7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 19:04:00 +00:00
Trevor Buckner
755d8bb77f Merge pull request #4543 from naturalcrit/dependabot/npm_and_yarn/googleapis/drive-19.2.0
Bump @googleapis/drive from 18.0.0 to 19.2.0
2025-11-21 14:02:34 -05:00
dependabot[bot]
fd8ffe8747 Bump @googleapis/drive from 18.0.0 to 19.2.0
Bumps [@googleapis/drive](https://github.com/googleapis/google-api-nodejs-client) from 18.0.0 to 19.2.0.
- [Release notes](https://github.com/googleapis/google-api-nodejs-client/releases)
- [Changelog](https://github.com/googleapis/google-api-nodejs-client/blob/main/.release-please-manifest.json)
- [Commits](https://github.com/googleapis/google-api-nodejs-client/compare/run-v18.0.0...drive-v19.2.0)

---
updated-dependencies:
- dependency-name: "@googleapis/drive"
  dependency-version: 19.2.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 03:02:38 +00:00
G.Ambatte
a504a2acfe Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-21 10:26:49 +13:00
Trevor Buckner
4fcde805ce Merge pull request #4525 from naturalcrit/dependabot/npm_and_yarn/dev-dependencies-d8b0a98ef9
Bump the dev-dependencies group across 1 directory with 2 updates
2025-11-20 11:28:08 -05:00
Trevor Buckner
8d6438feda Merge branch 'master' into dependabot/npm_and_yarn/dev-dependencies-d8b0a98ef9 2025-11-20 11:24:38 -05:00
Trevor Buckner
e85a980ee0 Merge pull request #4536 from naturalcrit/dependabot/npm_and_yarn/prod-dependencies-3bcb05f39f
Bump the prod-dependencies group across 1 directory with 7 updates
2025-11-20 11:24:22 -05:00
Trevor Buckner
106de864ff Merge branch 'master' into dependabot/npm_and_yarn/prod-dependencies-3bcb05f39f 2025-11-20 11:15:43 -05:00
Trevor Buckner
d398cabb52 Merge pull request #4538 from 5e-Cleric/fix-counter-reset
fix .resetCounter
2025-11-20 11:15:05 -05:00
Trevor Buckner
13550c0267 Merge branch 'master' into fix-counter-reset 2025-11-20 11:08:47 -05:00
Trevor Buckner
3997ebfbdf Merge pull request #4540 from naturalcrit/ReworkHTMLRenderer
Rework Marked custom HTML renderer to skip preprocess step
2025-11-19 23:57:07 -05:00
Trevor Buckner
31c034c029 Rework Marked custom HTML renderer to skip preprocess step
Marked Variables are getting cleared when the custom HTML renderer runs, because Marked.parse re-runs the whole pipeline, including the preprocessor.

Preprocess should only be run once globally during the pipeline, or the original results get overwritten (Marked Variables clears its global array of variables each time it is run)
2025-11-19 23:53:39 -05:00
Víctor Losada Hernández
f991235694 fix .resetCounter 2025-11-19 23:36:43 +01:00
dependabot[bot]
9970dd0699 Bump the prod-dependencies group across 1 directory with 7 updates
Bumps the prod-dependencies group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) | `7.27.1` | `7.28.5` |
| [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) | `3.46.0` | `3.47.0` |
| [js-yaml](https://github.com/nodeca/js-yaml) | `4.1.0` | `4.1.1` |
| [marked-emoji](https://github.com/UziTech/marked-emoji) | `2.0.1` | `2.0.2` |
| [marked-gfm-heading-id](https://github.com/markedjs/marked-gfm-heading-id) | `4.1.2` | `4.1.3` |
| [mongoose](https://github.com/Automattic/mongoose) | `8.19.2` | `8.20.0` |
| [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) | `7.9.5` | `7.9.6` |



Updates `@babel/preset-react` from 7.27.1 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/packages/babel-preset-react)

Updates `core-js` from 3.46.0 to 3.47.0
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)

Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

Updates `marked-emoji` from 2.0.1 to 2.0.2
- [Release notes](https://github.com/UziTech/marked-emoji/releases)
- [Changelog](https://github.com/UziTech/marked-emoji/blob/main/release.config.cjs)
- [Commits](https://github.com/UziTech/marked-emoji/compare/v2.0.1...v2.0.2)

Updates `marked-gfm-heading-id` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/markedjs/marked-gfm-heading-id/releases)
- [Changelog](https://github.com/markedjs/marked-gfm-heading-id/blob/main/release.config.cjs)
- [Commits](https://github.com/markedjs/marked-gfm-heading-id/compare/v4.1.2...v4.1.3)

Updates `mongoose` from 8.19.2 to 8.20.0
- [Release notes](https://github.com/Automattic/mongoose/releases)
- [Changelog](https://github.com/Automattic/mongoose/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Automattic/mongoose/compare/8.19.2...8.20.0)

Updates `react-router` from 7.9.5 to 7.9.6
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.9.6/packages/react-router)

---
updated-dependencies:
- dependency-name: "@babel/preset-react"
  dependency-version: 7.28.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
- dependency-name: core-js
  dependency-version: 3.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
- dependency-name: js-yaml
  dependency-version: 4.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: marked-emoji
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: marked-gfm-heading-id
  dependency-version: 4.1.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
- dependency-name: mongoose
  dependency-version: 8.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: prod-dependencies
- dependency-name: react-router
  dependency-version: 7.9.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-19 03:02:34 +00:00
dependabot[bot]
9f721ff2fc Bump the dev-dependencies group across 1 directory with 2 updates
Bumps the dev-dependencies group with 2 updates in the / directory: [eslint](https://github.com/eslint/eslint) and [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest).


Updates `eslint` from 9.39.0 to 9.39.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.0...v9.39.1)

Updates `eslint-plugin-jest` from 29.0.1 to 29.1.0
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v29.0.1...v29.1.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.39.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-dependencies
- dependency-name: eslint-plugin-jest
  dependency-version: 29.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-19 03:01:21 +00:00
Trevor Buckner
6a02ed410b Merge pull request #4534 from G-Ambatte/fixNewNavItem
Update New Item on NavBar
2025-11-17 23:49:42 -05:00
Trevor Buckner
429ad4d63b Linting and move checkLocalStorage inside confirmLocalStorageChange 2025-11-17 23:48:56 -05:00
Trevor Buckner
033893361d Merge branch 'master' into fixNewNavItem 2025-11-17 23:25:44 -05:00
Trevor Buckner
f1ae7e4d26 Merge pull request #4533 from naturalcrit/fix-editor-issues
Fix small bugs towards 3.20
2025-11-17 23:22:04 -05:00
Trevor Buckner
059d6d7939 Lint 2025-11-17 23:09:47 -05:00
G.Ambatte
73b7d6887b Fix typo in state property name for snippet bar height 2025-11-17 17:09:23 +13:00
Víctor Losada Hernández
f1891d9250 use state instead 2025-11-16 19:02:37 +01:00
G.Ambatte
a17ccdb2a2 Merge branch 'master' into fixNewNavItem 2025-11-16 13:19:08 +13:00
G.Ambatte
c784e2e63b Fix New item on Nav Bar 2025-11-16 13:12:40 +13:00
Víctor Losada Hernández
1d061e6d3f Merge branch 'master' of https://github.com/naturalcrit/homebrewery into fix-editor-issues 2025-11-15 23:41:10 +01:00
Víctor Losada Hernández
5e7fdb34a9 Revert "remove new brew nav item from new page"
This reverts commit b6478f3964.
2025-11-15 23:40:01 +01:00
Víctor Losada Hernández
677e8eaf6c Merge pull request #4532 from G-Ambatte/fixUnearthedArcanaTheme
Fix UnearthedArcana theme
2025-11-15 17:52:59 +01:00
Víctor Losada Hernández
b6478f3964 remove new brew nav item from new page 2025-11-15 17:25:25 +01:00
Víctor Losada Hernández
f18a73e1ff fix glitch in newPage 2025-11-15 17:25:05 +01:00
Víctor Losada Hernández
b78f5079df bring back update native func 2025-11-15 16:59:32 +01:00
Víctor Losada Hernández
7bc41f9b0d fix snippetbar hidden 2025-11-15 16:49:48 +01:00
Víctor Losada Hernández
a217779e76 fix snippetbar wrap 2025-11-15 16:05:21 +01:00
G.Ambatte
ad3d63a5b1 Merge branch 'master' into fixUnearthedArcanaTheme 2025-11-15 18:44:33 +13:00
G.Ambatte
93ef9bfd51 Set UnearthedArcana baseTheme to Blank 2025-11-15 18:33:22 +13:00
Trevor Buckner
a0cfec7668 test change 2025-11-15 04:35:23 +00:00
Trevor Buckner
972c675629 Merge pull request #4527 from MiniX16/master
Add unsaved-change warning to Home page editor
2025-11-14 23:04:19 -05:00
Trevor Buckner
fa9f180759 Modify slightly to follow the existing structure in editPage.jsx for easier merging of these pages later 2025-11-14 22:59:34 -05:00
G.Ambatte
435c6dcc6f Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-15 16:40:47 +13:00
G.Ambatte
e063eab4e7 Make error messages more distinctive 2025-11-15 15:40:55 +13:00
G.Ambatte
1adbbc2ced Updated error message on failure to set permissions on Google Drive file 2025-11-15 15:37:01 +13:00
G.Ambatte
7547454084 Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-15 15:33:54 +13:00
Víctor Losada Hernández
ba2449f3d6 Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-10 23:57:25 +01:00
G.Ambatte
14ea286aa2 Remove Google permissions check function 2025-11-10 06:07:37 +00:00
G.Ambatte
de85c84685 Remove permissionsCheck from brew listing 2025-11-10 06:05:58 +00:00
G.Ambatte
35d93582d7 Remove unnecessary async map function 2025-11-10 06:04:10 +00:00
G.Ambatte
c2ceba2ff6 Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-11-10 19:00:06 +13:00
G.Ambatte
06d1652f51 Merge branch 'master' into experimentalGoogleServiceAccountChange 2025-08-26 07:32:29 +12:00
G.Ambatte
8e2abb9f78 Basic Google file permission checking 2025-07-25 12:04:41 +12:00
G.Ambatte
b447d81b4c Add service account to file permissions 2025-07-22 18:23:11 +12:00
21 changed files with 521 additions and 693 deletions

View File

@@ -83,12 +83,40 @@ pre {
.page .exampleTable td,th {
border:1px dashed #00000030;
}
.page .df {
font-size: 2em;
vertical-align: middle;
}
```
## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
### Friday 11/14/2025 - v13.20.0
### Friday 1/11/2026 - v3.20.1
{{taskList
##### calculuschild
* [x] Add D100 "ball" dice icons `:d100:` :df_d100_05:
##### G-Ambatte
* [x] Fix transparent edge on back cover image
Fixes issue [#4551](https://github.com/naturalcrit/homebrewery/issues/4551)
* [x] Fix "Out of sync" error when document contains extended unicode characters
Fixes issue [#4583](https://github.com/naturalcrit/homebrewery/issues/4583)
##### 5e-Cleric
* [x] Fix page count error on Vault
* [x] Fix cover page footnote set to all-caps
Fixes issue [#4559](https://github.com/naturalcrit/homebrewery/issues/4559)
}}
### Friday 11/14/2025 - v3.20.0
{{taskList
##### calculuschild

View File

@@ -58,7 +58,7 @@ const Editor = createClass({
return {
editorTheme : this.props.editorTheme,
view : 'text', //'text', 'style', 'meta', 'snippet'
snippetbarHeight : 25
snippetBarHeight : 26,
};
},
@@ -85,7 +85,15 @@ const Editor = createClass({
editorTheme : editorTheme
});
}
this.setState({ snippetbarHeight: document.querySelector('.editor > .snippetBar').offsetHeight });
const snippetBar = document.querySelector('.editor > .snippetBar');
if (!snippetBar) return;
this.resizeObserver = new ResizeObserver(entries => {
const height = document.querySelector('.editor > .snippetBar').offsetHeight;
this.setState({ snippetBarHeight: height });
});
this.resizeObserver.observe(snippetBar);
},
componentDidUpdate : function(prevProps, prevState, snapshot) {
@@ -108,6 +116,10 @@ const Editor = createClass({
}
},
componentWillUnmount() {
if (this.resizeObserver) this.resizeObserver.disconnect();
},
handleControlKeys : function(e){
if(!(e.ctrlKey && e.metaKey && e.shiftKey)) return;
const LEFTARROW_KEY = 37;
@@ -408,11 +420,7 @@ const Editor = createClass({
},
//Called when there are changes to the editor's dimensions
update : function(){
const snipHeight = document.querySelector('.editor > .snippetBar').offsetHeight;
if(snipHeight !== this.state.snippetbarHeight)
this.setState({ snippetbarHeight: snipHeight });
},
update : function(){},
updateEditorTheme : function(newTheme){
window.localStorage.setItem(EDITOR_THEME_KEY, newTheme);
@@ -437,7 +445,7 @@ const Editor = createClass({
onChange={this.props.onBrewChange('text')}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent}
style={{ height: `calc(100% - ${this.state.snippetbarHeight}px)` }} />
style={{ height: `calc(100% - ${this.state.snippetBarHeight}px)` }} />
</>;
}
if(this.isStyle()){
@@ -451,7 +459,7 @@ const Editor = createClass({
enableFolding={true}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent}
style={{ height: `calc(100% - ${this.state.snippetbarHeight}px)` }} />
style={{ height: `calc(100% - ${this.state.snippetBarHeight}px)` }} />
</>;
}
if(this.isMeta()){
@@ -468,7 +476,6 @@ const Editor = createClass({
userThemes={this.props.userThemes}/>
</>;
}
if(this.isSnip()){
if(!this.props.brew.snippets) { this.props.brew.snippets = DEFAULT_SNIPPET_TEXT; }
return <>
@@ -481,7 +488,7 @@ const Editor = createClass({
enableFolding={true}
editorTheme={this.state.editorTheme}
rerenderParent={this.rerenderParent}
style={{ height: `calc(100% - ${this.state.snippetbarHeight}px)` }} />
style={{ height: `calc(100% -${this.state.snippetBarHeight}px)` }} />
</>;
}
},

View File

@@ -14,7 +14,7 @@
.snippets {
display : flex;
justify-content : flex-start;
min-width : 432.18px; //must be controlled every time an item is added, must be hardcoded for the wrapping as it is applied
min-width : 499.35px; //must be controlled every time an item is added, must be hardcoded for the wrapping as it is applied
}
.editors {
@@ -237,7 +237,7 @@
}
}
@container editor (width < 683px) {
@container editor (width < 750px) {
.snippetBar {
.editors {
flex : 1;

View File

@@ -3,19 +3,16 @@ const _ = require('lodash');
const Nav = require('client/homebrew/navbar/nav.jsx');
const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); // Importing the function from helpers.js
const BREWKEY = 'homebrewery-new';
const STYLEKEY = 'homebrewery-new-style';
const METAKEY = 'homebrewery-new-meta';
const BREWKEY = 'HB_newPage_content';
const STYLEKEY = 'HB_newPage_style';
const METAKEY = 'HB_newPage_meta';
const NewBrew = ()=>{
const handleFileChange = (e)=>{
const file = e.target.files[0];
if(!file) return;
const currentNew = localStorage.getItem(BREWKEY);
if(currentNew && !confirm(
`You have some text in the new brew space, if you load a file that text will be lost, are you sure you want to load the file?`
)) return;
if(!confirmLocalStorageChange()) return;
const reader = new FileReader();
reader.onload = (e)=>{
@@ -37,12 +34,35 @@ const NewBrew = ()=>{
alert(`This file is invalid: ${!type ? 'Missing file extension' :`.${type} files are not supported`}. Only .txt files exported from the Homebrewery are allowed.`);
console.log(file);
};
reader.readAsText(file);
};
const confirmLocalStorageChange = ()=>{
const currentText = localStorage.getItem(BREWKEY);
const currentStyle = localStorage.getItem(STYLEKEY);
const currentMeta = localStorage.getItem(METAKEY);
// TRUE if no data in any local storage key
// TRUE if data in any local storage key AND approval given
// FALSE if data in any local storage key AND approval declined
return (!(currentText || currentStyle || currentMeta) || confirm(
`You have made changes in the new brew space. If you continue, that information will be PERMANENTLY LOST.\nAre you sure you wish to continue?`
));
};
const clearLocalStorage = ()=>{
if(!confirmLocalStorageChange()) return;
localStorage.removeItem(BREWKEY);
localStorage.removeItem(STYLEKEY);
localStorage.removeItem(METAKEY);
window.location.href = '/new';
return;
};
return (
<Nav.dropdown>
@@ -50,24 +70,31 @@ const NewBrew = ()=>{
className='new'
color='purple'
icon='fa-solid fa-plus-square'>
new
new
</Nav.item>
<Nav.item
className='fromBlank'
className='new'
href='/new'
newTab={true}
color='purple'
icon='fa-solid fa-file'>
from blank
resume draft
</Nav.item>
<Nav.item
className='fromBlank'
newTab={true}
color='yellow'
icon='fa-solid fa-file-circle-plus'
onClick={()=>{ clearLocalStorage(); }}>
from blank
</Nav.item>
<Nav.item
className='fromFile'
color='purple'
color='green'
icon='fa-solid fa-upload'
onClick={()=>{ document.getElementById('uploadTxt').click(); }}>
<input id='uploadTxt' className='newFromLocal' type='file' onChange={handleFileChange} style={{ display: 'none' }} />
from file
from file
</Nav.item>
</Nav.dropdown>
);

View File

@@ -216,7 +216,7 @@ const EditPage = (props)=>{
text : brew.text.normalize('NFC'),
pageCount : ((brew.renderer === 'legacy' ? brew.text.match(/\\page/g) : brew.text.match(/^\\page$/gm)) || []).length + 1,
patches : stringifyPatches(makePatches(encodeURI(lastSavedBrew.current.text.normalize('NFC')), encodeURI(brew.text.normalize('NFC')))),
hash : await md5(lastSavedBrew.current.text),
hash : await md5(lastSavedBrew.current.text.normalize('NFC')),
textBin : undefined,
version : lastSavedBrew.current.version
};

View File

@@ -70,23 +70,14 @@ const HomePage =(props)=>{
}
};
const handleBeforeUnload = (e)=>{
if(unsavedChangesRef.current) {
e.preventDefault();
e.returnValue = '';
return '';
}
};
const previousBeforeUnload = window.onbeforeunload;
window.onbeforeunload = handleBeforeUnload;
document.addEventListener('keydown', handleControlKeys);
window.onbeforeunload = ()=>{
if(unsavedChangesRef.current)
return 'You have unsaved changes!';
};
return ()=>{
document.removeEventListener('keydown', handleControlKeys);
window.onbeforeunload = previousBeforeUnload;
window.onbeforeunload = null;
};
}, []);

View File

@@ -1,12 +1,15 @@
.newPage {
.navItem.save {
.fadeInRight();
.transition(opacity);
background-color : @orange;
transition:all 0.2s;
&:hover { background-color : @green; }
&.neverSaved {
.fadeOutRight();
translate:-100%;
opacity: 0;
background-color :#333;
cursor:auto;
}
}
}

View File

@@ -101,7 +101,7 @@ const VaultPage = (props)=>{
const title = titleRef.current.value || '';
const author = authorRef.current.value || '';
const count = countRef.current.value || 10;
const count = countRef.current.value || 20;
const v3 = v3Ref.current.checked != false;
const legacy = legacyRef.current.checked != false;
const sortOption = sort || 'title';
@@ -288,7 +288,8 @@ const VaultPage = (props)=>{
const renderPaginationControls = ()=>{
if(!totalBrews || totalBrews < 10) return null;
const countInt = parseInt(brewCollection.length || 20);
const countInt = parseInt(countRef.current.value || 20);
const totalPages = Math.ceil(totalBrews / countInt);
let startPage, endPage;

107
package-lock.json generated
View File

@@ -1,28 +1,28 @@
{
"name": "homebrewery",
"version": "3.20.0",
"version": "3.20.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "homebrewery",
"version": "3.20.0",
"version": "3.20.1",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {
"@babel/core": "^7.28.4",
"@babel/plugin-transform-runtime": "^7.28.3",
"@babel/preset-env": "^7.28.3",
"@babel/preset-react": "^7.27.1",
"@babel/preset-react": "^7.28.5",
"@babel/runtime": "^7.28.4",
"@dmsnell/diff-match-patch": "^1.1.0",
"@googleapis/drive": "^18.0.0",
"@googleapis/drive": "^19.2.0",
"@sanity/diff-match-patch": "^3.2.0",
"body-parser": "^2.2.0",
"classnames": "^2.5.1",
"codemirror": "^5.65.6",
"cookie-parser": "^1.4.7",
"core-js": "^3.46.0",
"core-js": "^3.47.0",
"cors": "^2.8.5",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.3",
@@ -34,29 +34,29 @@
"fs-extra": "11.3.2",
"hash-wasm": "^4.12.0",
"idb-keyval": "^6.2.2",
"js-yaml": "^4.1.0",
"js-yaml": "^4.1.1",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
"marked": "15.0.12",
"marked-alignment-paragraphs": "^1.0.0",
"marked-definition-lists": "^1.0.1",
"marked-emoji": "^2.0.1",
"marked-emoji": "^2.0.2",
"marked-extended-tables": "^2.0.1",
"marked-gfm-heading-id": "^4.1.2",
"marked-gfm-heading-id": "^4.1.3",
"marked-nonbreaking-spaces": "^1.0.1",
"marked-smartypants-lite": "^1.0.3",
"marked-subsuper-text": "^1.0.4",
"marked-variables": "^1.0.4",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.30.1",
"mongoose": "^8.19.1",
"mongoose": "^8.20.0",
"nanoid": "5.1.6",
"nconf": "^0.13.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-frame-component": "^4.1.3",
"react-router": "^7.9.4",
"react-router": "^7.9.6",
"romans": "^3.1.0",
"sanitize-filename": "1.6.3",
"superagent": "^10.2.1",
@@ -66,8 +66,8 @@
"devDependencies": {
"@stylistic/stylelint-plugin": "^4.0.0",
"babel-plugin-transform-import-meta": "^2.3.3",
"eslint": "^9.37.0",
"eslint-plugin-jest": "^29.0.1",
"eslint": "^9.39.1",
"eslint-plugin-jest": "^29.1.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^16.4.0",
"jest": "^30.2.0",
@@ -1427,9 +1427,9 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz",
"integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==",
"version": "7.28.0",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz",
"integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1"
@@ -1795,14 +1795,14 @@
}
},
"node_modules/@babel/preset-react": {
"version": "7.27.1",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz",
"integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==",
"version": "7.28.5",
"resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz",
"integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==",
"license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.27.1",
"@babel/helper-validator-option": "^7.27.1",
"@babel/plugin-transform-react-display-name": "^7.27.1",
"@babel/plugin-transform-react-display-name": "^7.28.0",
"@babel/plugin-transform-react-jsx": "^7.27.1",
"@babel/plugin-transform-react-jsx-development": "^7.27.1",
"@babel/plugin-transform-react-pure-annotations": "^7.27.1"
@@ -2258,9 +2258,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.39.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.0.tgz",
"integrity": "sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==",
"version": "9.39.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz",
"integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2295,9 +2295,9 @@
}
},
"node_modules/@googleapis/drive": {
"version": "18.0.0",
"resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-18.0.0.tgz",
"integrity": "sha512-nk4TirsHttwZSOjBEBjltCPDKUqwFso59G3WitNE+EGNVSVseSEq981f8Dmjq2ah0/fk3i206wuCU4PUCwcoTQ==",
"version": "19.2.0",
"resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-19.2.0.tgz",
"integrity": "sha512-XzhQ+CNwW54umLecZLzQ5Q2RborJD1+u2YzJIT/BOpne+VJfsCyxWVG0nxYQmcGdiFXJPeW5+V3sdP/A/nt3eA==",
"license": "Apache-2.0",
"dependencies": {
"googleapis-common": "^8.0.0"
@@ -5343,9 +5343,9 @@
}
},
"node_modules/core-js": {
"version": "3.46.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz",
"integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==",
"version": "3.47.0",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz",
"integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==",
"hasInstallScript": true,
"license": "MIT",
"funding": {
@@ -6259,9 +6259,9 @@
}
},
"node_modules/eslint": {
"version": "9.39.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.0.tgz",
"integrity": "sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==",
"version": "9.39.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz",
"integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -6271,7 +6271,7 @@
"@eslint/config-helpers": "^0.4.2",
"@eslint/core": "^0.17.0",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.39.0",
"@eslint/js": "9.39.1",
"@eslint/plugin-kit": "^0.4.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -6319,9 +6319,9 @@
}
},
"node_modules/eslint-plugin-jest": {
"version": "29.0.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.0.1.tgz",
"integrity": "sha512-EE44T0OSMCeXhDrrdsbKAhprobKkPtJTbQz5yEktysNpHeDZTAL1SfDTNKmcFfJkY6yrQLtTKZALrD3j/Gpmiw==",
"version": "29.1.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-29.1.0.tgz",
"integrity": "sha512-LabxXbASXVjguqL+kBHTPMf3gUeSqwH4fsrEyHTY/MCs42I/p9+ctg09SJpYiD8eGaIsP6GwYr5xW6xWS9XgZg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -9466,9 +9466,9 @@
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -10026,12 +10026,12 @@
}
},
"node_modules/marked-emoji": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-2.0.1.tgz",
"integrity": "sha512-P+nRr02dD+yPOFhtGdaVBzp0qzwlksI2f5GumIdHW/3UadzJ5sVi78CZikiSLr9PmdtUOZodZUBNIO6k38pDMQ==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/marked-emoji/-/marked-emoji-2.0.2.tgz",
"integrity": "sha512-EFnLQn4wTyf+6pXfptkm83Z2mt3VbdEYedHBAsDpwUas5n5satsj42RGqAijBpmetgGerI1EzUuzf7NIccINUQ==",
"license": "MIT",
"peerDependencies": {
"marked": ">=4 <17"
"marked": ">=4 <18"
}
},
"node_modules/marked-extended-tables": {
@@ -10044,15 +10044,15 @@
}
},
"node_modules/marked-gfm-heading-id": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.2.tgz",
"integrity": "sha512-EQ1WiEGHJh0C8viU+hbXbhHyWTDgEia2i96fiSemm2wdYER6YBw/9QI5TB6YFTqFfmMOxBFXPcPJtlgD0fVV2w==",
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/marked-gfm-heading-id/-/marked-gfm-heading-id-4.1.3.tgz",
"integrity": "sha512-aR0i63LmFbuxU/gAgrgz1Ir+8HK6zAIFXMlckeKHpV+qKbYaOP95L4Ux5Gi+sKmCZU5qnN2rdKpvpb7PnUBIWg==",
"license": "MIT",
"dependencies": {
"github-slugger": "^2.0.0"
},
"peerDependencies": {
"marked": ">=13 <17"
"marked": ">=13 <18"
}
},
"node_modules/marked-nonbreaking-spaces": {
@@ -10436,9 +10436,9 @@
}
},
"node_modules/mongoose": {
"version": "8.19.2",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.19.2.tgz",
"integrity": "sha512-ww2T4dBV+suCbOfG5YPwj9pLCfUVyj8FEA1D3Ux1HHqutpLxGyOYEPU06iPRBW4cKr3PJfOSYsIpHWPTkz5zig==",
"version": "8.20.0",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.20.0.tgz",
"integrity": "sha512-SxqNb8yx+VOjIOx2l7HqkGvYuLC/T85d+jPvqGDdUbKJFz/5PVSsVxQzypQsX7chenYvq5bd8jIr4LtunedE7g==",
"license": "MIT",
"dependencies": {
"bson": "^6.10.4",
@@ -12065,9 +12065,9 @@
"license": "MIT"
},
"node_modules/react-router": {
"version": "7.9.5",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.5.tgz",
"integrity": "sha512-JmxqrnBZ6E9hWmf02jzNn9Jm3UqyeimyiwzD69NjxGySG6lIz/1LVPsoTCwN7NBX2XjCEa1LIX5EMz1j2b6u6A==",
"version": "7.9.6",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-7.9.6.tgz",
"integrity": "sha512-Y1tUp8clYRXpfPITyuifmSoE2vncSME18uVLgaqyxh9H35JWpIfzHo+9y3Fzh5odk/jxPW29IgLgzcdwxGqyNA==",
"license": "MIT",
"dependencies": {
"cookie": "^1.0.1",
@@ -14742,7 +14742,8 @@
},
"node_modules/vitreum": {
"version": "6.0.4",
"resolved": "git+https://git@github.com/calculuschild/vitreum.git#9d55fd6fb7e85e7070de798c4f9d5b983c1b7dba",
"resolved": "git+https://git@github.com/calculuschild/vitreum.git#929c351881c4229550374421c7e2890a94f4dca7",
"integrity": "sha512-dclfZIgvZU4pOeju1U7CjfGcAMNY+HwhYxF5O1cB6j9EtBrUXQh5+8XlYvNrw2XIcjWIxWcWaCpAQgJxKssfbQ==",
"hasInstallScript": true,
"license": "MIT",
"dependencies": {

View File

@@ -1,7 +1,7 @@
{
"name": "homebrewery",
"description": "Create authentic looking D&D homebrews using only markdown",
"version": "3.20.0",
"version": "3.20.1",
"type": "module",
"engines": {
"npm": "^10.8.x",
@@ -88,16 +88,16 @@
"@babel/core": "^7.28.4",
"@babel/plugin-transform-runtime": "^7.28.3",
"@babel/preset-env": "^7.28.3",
"@babel/preset-react": "^7.27.1",
"@babel/preset-react": "^7.28.5",
"@babel/runtime": "^7.28.4",
"@dmsnell/diff-match-patch": "^1.1.0",
"@googleapis/drive": "^18.0.0",
"@googleapis/drive": "^19.2.0",
"@sanity/diff-match-patch": "^3.2.0",
"body-parser": "^2.2.0",
"classnames": "^2.5.1",
"codemirror": "^5.65.6",
"cookie-parser": "^1.4.7",
"core-js": "^3.46.0",
"core-js": "^3.47.0",
"cors": "^2.8.5",
"create-react-class": "^15.7.0",
"dedent-tabs": "^0.10.3",
@@ -109,29 +109,29 @@
"fs-extra": "11.3.2",
"hash-wasm": "^4.12.0",
"idb-keyval": "^6.2.2",
"js-yaml": "^4.1.0",
"js-yaml": "^4.1.1",
"jwt-simple": "^0.5.6",
"less": "^3.13.1",
"lodash": "^4.17.21",
"marked": "15.0.12",
"marked-alignment-paragraphs": "^1.0.0",
"marked-definition-lists": "^1.0.1",
"marked-emoji": "^2.0.1",
"marked-emoji": "^2.0.2",
"marked-extended-tables": "^2.0.1",
"marked-gfm-heading-id": "^4.1.2",
"marked-gfm-heading-id": "^4.1.3",
"marked-nonbreaking-spaces": "^1.0.1",
"marked-smartypants-lite": "^1.0.3",
"marked-subsuper-text": "^1.0.4",
"marked-variables": "^1.0.4",
"markedLegacy": "npm:marked@^0.3.19",
"moment": "^2.30.1",
"mongoose": "^8.19.1",
"mongoose": "^8.20.0",
"nanoid": "5.1.6",
"nconf": "^0.13.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-frame-component": "^4.1.3",
"react-router": "^7.9.4",
"react-router": "^7.9.6",
"romans": "^3.1.0",
"sanitize-filename": "1.6.3",
"superagent": "^10.2.1",
@@ -141,8 +141,8 @@
"devDependencies": {
"@stylistic/stylelint-plugin": "^4.0.0",
"babel-plugin-transform-import-meta": "^2.3.3",
"eslint": "^9.37.0",
"eslint-plugin-jest": "^29.0.1",
"eslint": "^9.39.1",
"eslint-plugin-jest": "^29.1.0",
"eslint-plugin-react": "^7.37.5",
"globals": "^16.4.0",
"jest": "^30.2.0",

View File

@@ -6,6 +6,7 @@ import config from './config.js';
let serviceAuth;
let clientEmail;
if(!config.get('service_account')){
const reset = '\x1b[0m'; // Reset to default style
const yellow = '\x1b[33m'; // yellow color
@@ -15,6 +16,10 @@ if(!config.get('service_account')){
JSON.parse(config.get('service_account')) :
config.get('service_account');
if(keys?.client_email) {
clientEmail = keys.client_email;
}
try {
serviceAuth = googleDrive.auth.fromJSON(keys);
serviceAuth.scopes = ['https://www.googleapis.com/auth/drive'];
@@ -227,14 +232,30 @@ const GoogleActions = {
if(!obj) return;
if(clientEmail) {
await drive.permissions.create({
resource : {
type : 'user',
emailAddress : clientEmail,
role : 'writer'
},
fileId : obj.data.id,
fields : 'id',
})
.catch((err)=>{
console.log('Error adding Service Account permissions on Google Drive file');
console.error(err);
});
}
await drive.permissions.create({
resource : { type : 'anyone',
role : 'writer' },
role : 'writer' },
fileId : obj.data.id,
fields : 'id',
})
.catch((err)=>{
console.log('Error updating permissions');
console.log('Error adding "Anyone" permissions on Google Drive file');
console.error(err);
});

View File

@@ -31,7 +31,12 @@ renderer.html = function (token) {
const openTag = html.substring(0, html.indexOf('>')+1);
html = html.substring(html.indexOf('>')+1);
html = html.substring(0, html.lastIndexOf('</div>'));
return `${openTag} ${Marked.parse(html)} </div>`;
// Repeat the markdown processing for content inside the div, minus the preprocessing and postprocessing hooks which should only run once globally
const opts = Marked.defaults;
const tokens = Marked.lexer(html, opts);
Marked.walkTokens(tokens, opts.walkTokens);
return `${openTag} ${Marked.parser(tokens, opts)} </div>`;
}
return html;
};

View File

@@ -615,6 +615,7 @@
text-align : center;
-webkit-text-stroke : 0.1cm black;
paint-order : stroke;
text-transform : none;
}
.logo {
position : absolute;

View File

@@ -492,7 +492,7 @@ body { counter-reset : page-numbers 0; }
.pageNumber { left : 30px; }
}
.resetCounting { counter-set : page-numbers 1; }
&:has(.resetCounting) { counter-set : page-numbers 1; }
&:not(:has(.skipCounting)) { counter-increment : page-numbers; }

View File

@@ -1,6 +1,6 @@
{
"name" : "UnearthedArcana",
"renderer" : "V3",
"baseTheme" : false,
"baseTheme" : "Blank",
"baseSnippets" : false
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 143 KiB

View File

@@ -192,7 +192,109 @@ const diceFont = {
'df_d10_97' : 'df d10-97',
'df_d10_98' : 'df d10-98',
'df_d10_99' : 'df d10-99',
'df_d10_100' : 'df d10-100'
'df_d10_100' : 'df d10-100',
'df_d100_00' : 'df d100-00',
'df_d100_01' : 'df d100-01',
'df_d100_02' : 'df d100-02',
'df_d100_03' : 'df d100-03',
'df_d100_04' : 'df d100-04',
'df_d100_05' : 'df d100-05',
'df_d100_06' : 'df d100-06',
'df_d100_07' : 'df d100-07',
'df_d100_08' : 'df d100-08',
'df_d100_09' : 'df d100-09',
'df_d100_10' : 'df d100-10',
'df_d100_11' : 'df d100-11',
'df_d100_12' : 'df d100-12',
'df_d100_13' : 'df d100-13',
'df_d100_14' : 'df d100-14',
'df_d100_15' : 'df d100-15',
'df_d100_16' : 'df d100-16',
'df_d100_17' : 'df d100-17',
'df_d100_18' : 'df d100-18',
'df_d100_19' : 'df d100-19',
'df_d100_20' : 'df d100-20',
'df_d100_21' : 'df d100-21',
'df_d100_22' : 'df d100-22',
'df_d100_23' : 'df d100-23',
'df_d100_24' : 'df d100-24',
'df_d100_25' : 'df d100-25',
'df_d100_26' : 'df d100-26',
'df_d100_27' : 'df d100-27',
'df_d100_28' : 'df d100-28',
'df_d100_29' : 'df d100-29',
'df_d100_30' : 'df d100-30',
'df_d100_31' : 'df d100-31',
'df_d100_32' : 'df d100-32',
'df_d100_33' : 'df d100-33',
'df_d100_34' : 'df d100-34',
'df_d100_35' : 'df d100-35',
'df_d100_36' : 'df d100-36',
'df_d100_37' : 'df d100-37',
'df_d100_38' : 'df d100-38',
'df_d100_39' : 'df d100-39',
'df_d100_40' : 'df d100-40',
'df_d100_41' : 'df d100-41',
'df_d100_42' : 'df d100-42',
'df_d100_43' : 'df d100-43',
'df_d100_44' : 'df d100-44',
'df_d100_45' : 'df d100-45',
'df_d100_46' : 'df d100-46',
'df_d100_47' : 'df d100-47',
'df_d100_48' : 'df d100-48',
'df_d100_49' : 'df d100-49',
'df_d100_50' : 'df d100-50',
'df_d100_51' : 'df d100-51',
'df_d100_52' : 'df d100-52',
'df_d100_53' : 'df d100-53',
'df_d100_54' : 'df d100-54',
'df_d100_55' : 'df d100-55',
'df_d100_56' : 'df d100-56',
'df_d100_57' : 'df d100-57',
'df_d100_58' : 'df d100-58',
'df_d100_59' : 'df d100-59',
'df_d100_60' : 'df d100-60',
'df_d100_61' : 'df d100-61',
'df_d100_62' : 'df d100-62',
'df_d100_63' : 'df d100-63',
'df_d100_64' : 'df d100-64',
'df_d100_65' : 'df d100-65',
'df_d100_66' : 'df d100-66',
'df_d100_67' : 'df d100-67',
'df_d100_68' : 'df d100-68',
'df_d100_69' : 'df d100-69',
'df_d100_70' : 'df d100-70',
'df_d100_71' : 'df d100-71',
'df_d100_72' : 'df d100-72',
'df_d100_73' : 'df d100-73',
'df_d100_74' : 'df d100-74',
'df_d100_75' : 'df d100-75',
'df_d100_76' : 'df d100-76',
'df_d100_77' : 'df d100-77',
'df_d100_78' : 'df d100-78',
'df_d100_79' : 'df d100-79',
'df_d100_80' : 'df d100-80',
'df_d100_81' : 'df d100-81',
'df_d100_82' : 'df d100-82',
'df_d100_83' : 'df d100-83',
'df_d100_84' : 'df d100-84',
'df_d100_85' : 'df d100-85',
'df_d100_86' : 'df d100-86',
'df_d100_87' : 'df d100-87',
'df_d100_88' : 'df d100-88',
'df_d100_89' : 'df d100-89',
'df_d100_90' : 'df d100-90',
'df_d100_91' : 'df d100-91',
'df_d100_92' : 'df d100-92',
'df_d100_93' : 'df d100-93',
'df_d100_94' : 'df d100-94',
'df_d100_95' : 'df d100-95',
'df_d100_96' : 'df d100-96',
'df_d100_97' : 'df d100-97',
'df_d100_98' : 'df d100-98',
'df_d100_99' : 'df d100-99',
'df_d100_100' : 'df d100-100',
'df_d100' : 'df d100'
};
export default diceFont;

View File

@@ -6,14 +6,6 @@
src : url('../../../fonts/iconFonts/diceFont.woff2');
}
@font-face {
font-family : 'DiceFontD100';
src : url('../../../fonts/iconFonts/diceFontD100.woff2') format('woff2');
font-weight : normal;
font-style : normal;
font-display : block;
}
.df {
display : inline;
font-family : 'DiceFont';
@@ -33,8 +25,19 @@
&.F-minus::before { content : '\f191'; }
&.F-plus::before { content : '\f192'; }
&.F-zero::before { content : '\f193'; }
&.d10::before { content : '\f194'; }
&.d12::before { content : '\f195'; }
&.d10::before { content : '\f194'; }
&.d10-0::before { content : '\f100'; }
&.d10-1:before { content : '\f101'; }
&.d10-10::before { content : '\f102'; }
&.d10-2:before { content : '\f103'; }
&.d10-3::before { content : '\f104'; }
&.d10-4::before { content : '\f105'; }
&.d10-5::before { content : '\f106'; }
&.d10-6::before { content : '\f107'; }
&.d10-7::before { content : '\f108'; }
&.d10-8::before { content : '\f109'; }
&.d10-9::before { content : '\f10A'; }
&.d12::before { content : '\f195'; }
&.d12-1::before { content : '\f10b'; }
&.d12-10::before { content : '\f10c'; }
&.d12-11::before { content : '\f10d'; }
@@ -92,6 +95,208 @@
&.d8-6::before { content : '\f13c'; }
&.d8-7::before { content : '\f13d'; }
&.d8-8::before { content : '\f13e'; }
&.d10-00::before { content : '\f19C'; }
&.d10-01::before { content : '\f19D'; }
&.d10-02::before { content : '\f19E'; }
&.d10-03::before { content : '\f19F'; }
&.d10-04::before { content : '\f1A0'; }
&.d10-05::before { content : '\f1A1'; }
&.d10-06::before { content : '\f1A2'; }
&.d10-07::before { content : '\f1A3'; }
&.d10-08::before { content : '\f1A4'; }
&.d10-09::before { content : '\f1A5'; }
&.d10-11::before { content : '\f1A7'; }
&.d10-12::before { content : '\f1A8'; }
&.d10-13::before { content : '\f1A9'; }
&.d10-14::before { content : '\f1AA'; }
&.d10-15::before { content : '\f1AB'; }
&.d10-16::before { content : '\f1AC'; }
&.d10-17::before { content : '\f1AD'; }
&.d10-18::before { content : '\f1AE'; }
&.d10-19::before { content : '\f1AF'; }
&.d10-20::before { content : '\f1B0'; }
&.d10-21::before { content : '\f1B1'; }
&.d10-22::before { content : '\f1B2'; }
&.d10-23::before { content : '\f1B3'; }
&.d10-24::before { content : '\f1B4'; }
&.d10-25::before { content : '\f1B5'; }
&.d10-26::before { content : '\f1B6'; }
&.d10-27::before { content : '\f1B7'; }
&.d10-28::before { content : '\f1B8'; }
&.d10-29::before { content : '\f1B9'; }
&.d10-30::before { content : '\f1BA'; }
&.d10-31::before { content : '\f1BB'; }
&.d10-32::before { content : '\f1BC'; }
&.d10-33::before { content : '\f1BD'; }
&.d10-34::before { content : '\f1BE'; }
&.d10-35::before { content : '\f1BF'; }
&.d10-36::before { content : '\f1C0'; }
&.d10-37::before { content : '\f1C1'; }
&.d10-38::before { content : '\f1C2'; }
&.d10-39::before { content : '\f1C3'; }
&.d10-40::before { content : '\f1C4'; }
&.d10-41::before { content : '\f1C5'; }
&.d10-42::before { content : '\f1C6'; }
&.d10-43::before { content : '\f1C7'; }
&.d10-44::before { content : '\f1C8'; }
&.d10-45::before { content : '\f1C9'; }
&.d10-46::before { content : '\f1CA'; }
&.d10-47::before { content : '\f1CB'; }
&.d10-48::before { content : '\f1CC'; }
&.d10-49::before { content : '\f1CD'; }
&.d10-50::before { content : '\f1CE'; }
&.d10-51::before { content : '\f1CF'; }
&.d10-52::before { content : '\f1D0'; }
&.d10-53::before { content : '\f1D1'; }
&.d10-54::before { content : '\f1D2'; }
&.d10-55::before { content : '\f1D3'; }
&.d10-56::before { content : '\f1D4'; }
&.d10-57::before { content : '\f1D5'; }
&.d10-58::before { content : '\f1D6'; }
&.d10-59::before { content : '\f1D7'; }
&.d10-60::before { content : '\f1D8'; }
&.d10-61::before { content : '\f1D9'; }
&.d10-62::before { content : '\f1DA'; }
&.d10-63::before { content : '\f1DB'; }
&.d10-64::before { content : '\f1DC'; }
&.d10-65::before { content : '\f1DD'; }
&.d10-66::before { content : '\f1DE'; }
&.d10-67::before { content : '\f1DF'; }
&.d10-68::before { content : '\f1E0'; }
&.d10-69::before { content : '\f1E1'; }
&.d10-70::before { content : '\f1E2'; }
&.d10-71::before { content : '\f1E3'; }
&.d10-72::before { content : '\f1E4'; }
&.d10-73::before { content : '\f1E5'; }
&.d10-74::before { content : '\f1E6'; }
&.d10-75::before { content : '\f1E7'; }
&.d10-76::before { content : '\f1E8'; }
&.d10-77::before { content : '\f1E9'; }
&.d10-78::before { content : '\f1EA'; }
&.d10-79::before { content : '\f1EB'; }
&.d10-80::before { content : '\f1EC'; }
&.d10-81::before { content : '\f1ED'; }
&.d10-82::before { content : '\f1EE'; }
&.d10-83::before { content : '\f1EF'; }
&.d10-84::before { content : '\f1F0'; }
&.d10-85::before { content : '\f1F1'; }
&.d10-86::before { content : '\f1F2'; }
&.d10-87::before { content : '\f1F3'; }
&.d10-88::before { content : '\f1F4'; }
&.d10-89::before { content : '\f1F5'; }
&.d10-90::before { content : '\f1F6'; }
&.d10-91::before { content : '\f1F7'; }
&.d10-92::before { content : '\f1F8'; }
&.d10-93::before { content : '\f1F9'; }
&.d10-94::before { content : '\f1FA'; }
&.d10-95::before { content : '\f1FB'; }
&.d10-96::before { content : '\f1FC'; }
&.d10-97::before { content : '\f1FD'; }
&.d10-98::before { content : '\f1FE'; }
&.d10-99::before { content : '\f1FF'; }
&.d10-100::before { content : '\f200'; }
&.d100-00::before { content : '\f201'; }
&.d100-01::before { content : '\f202'; }
&.d100-02::before { content : '\f203'; }
&.d100-03::before { content : '\f204'; }
&.d100-04::before { content : '\f205'; }
&.d100-05::before { content : '\f206'; }
&.d100-06::before { content : '\f207'; }
&.d100-07::before { content : '\f208'; }
&.d100-08::before { content : '\f209'; }
&.d100-09::before { content : '\f20A'; }
&.d100-10::before { content : '\f20B'; }
&.d100-11::before { content : '\f20C'; }
&.d100-12::before { content : '\f20D'; }
&.d100-13::before { content : '\f20E'; }
&.d100-14::before { content : '\f20F'; }
&.d100-15::before { content : '\f210'; }
&.d100-16::before { content : '\f211'; }
&.d100-17::before { content : '\f212'; }
&.d100-18::before { content : '\f213'; }
&.d100-19::before { content : '\f214'; }
&.d100-20::before { content : '\f215'; }
&.d100-21::before { content : '\f216'; }
&.d100-22::before { content : '\f217'; }
&.d100-23::before { content : '\f218'; }
&.d100-24::before { content : '\f219'; }
&.d100-25::before { content : '\f21A'; }
&.d100-26::before { content : '\f21B'; }
&.d100-27::before { content : '\f21C'; }
&.d100-28::before { content : '\f21D'; }
&.d100-29::before { content : '\f21E'; }
&.d100-30::before { content : '\f21F'; }
&.d100-31::before { content : '\f220'; }
&.d100-32::before { content : '\f221'; }
&.d100-33::before { content : '\f222'; }
&.d100-34::before { content : '\f223'; }
&.d100-35::before { content : '\f224'; }
&.d100-36::before { content : '\f225'; }
&.d100-37::before { content : '\f226'; }
&.d100-38::before { content : '\f227'; }
&.d100-39::before { content : '\f228'; }
&.d100-40::before { content : '\f229'; }
&.d100-41::before { content : '\f22A'; }
&.d100-42::before { content : '\f22B'; }
&.d100-43::before { content : '\f22C'; }
&.d100-44::before { content : '\f22D'; }
&.d100-45::before { content : '\f22E'; }
&.d100-46::before { content : '\f22F'; }
&.d100-47::before { content : '\f230'; }
&.d100-48::before { content : '\f231'; }
&.d100-49::before { content : '\f232'; }
&.d100-50::before { content : '\f233'; }
&.d100-51::before { content : '\f234'; }
&.d100-52::before { content : '\f235'; }
&.d100-53::before { content : '\f236'; }
&.d100-54::before { content : '\f237'; }
&.d100-55::before { content : '\f238'; }
&.d100-56::before { content : '\f239'; }
&.d100-57::before { content : '\f23A'; }
&.d100-58::before { content : '\f23B'; }
&.d100-59::before { content : '\f23C'; }
&.d100-60::before { content : '\f23D'; }
&.d100-61::before { content : '\f23E'; }
&.d100-62::before { content : '\f23F'; }
&.d100-63::before { content : '\f240'; }
&.d100-64::before { content : '\f241'; }
&.d100-65::before { content : '\f242'; }
&.d100-66::before { content : '\f243'; }
&.d100-67::before { content : '\f244'; }
&.d100-68::before { content : '\f245'; }
&.d100-69::before { content : '\f246'; }
&.d100-70::before { content : '\f247'; }
&.d100-71::before { content : '\f248'; }
&.d100-72::before { content : '\f249'; }
&.d100-73::before { content : '\f24A'; }
&.d100-74::before { content : '\f24B'; }
&.d100-75::before { content : '\f24C'; }
&.d100-76::before { content : '\f24D'; }
&.d100-77::before { content : '\f24E'; }
&.d100-78::before { content : '\f24F'; }
&.d100-79::before { content : '\f250'; }
&.d100-80::before { content : '\f251'; }
&.d100-81::before { content : '\f252'; }
&.d100-82::before { content : '\f253'; }
&.d100-83::before { content : '\f254'; }
&.d100-84::before { content : '\f255'; }
&.d100-85::before { content : '\f256'; }
&.d100-86::before { content : '\f257'; }
&.d100-87::before { content : '\f258'; }
&.d100-88::before { content : '\f259'; }
&.d100-89::before { content : '\f25A'; }
&.d100-90::before { content : '\f25B'; }
&.d100-91::before { content : '\f25C'; }
&.d100-92::before { content : '\f25D'; }
&.d100-93::before { content : '\f25E'; }
&.d100-94::before { content : '\f25F'; }
&.d100-95::before { content : '\f260'; }
&.d100-96::before { content : '\f261'; }
&.d100-97::before { content : '\f262'; }
&.d100-98::before { content : '\f263'; }
&.d100-99::before { content : '\f264'; }
&.d100-100::before { content : '\f265'; }
&.d100::before { content : '\f266'; }
&.dot-d6::before { content : '\f19b'; }
&.dot-d6-1::before { content : '\f13f'; }
&.dot-d6-2::before { content : '\f140'; }
@@ -111,568 +316,4 @@
&.solid-small-dot-d6-4::before { content : '\f18c'; }
&.solid-small-dot-d6-5::before { content : '\f18d'; }
&.solid-small-dot-d6-6::before { content : '\f18e'; }
// Replacement d10
&.d10-0::before {
font-family : 'DiceFontD100';
content : '\e900';
}
&.d10-1::before {
font-family : 'DiceFontD100';
content : '\e901';
}
&.d10-2::before {
font-family : 'DiceFontD100';
content : '\e902';
}
&.d10-3::before {
font-family : 'DiceFontD100';
content : '\e903';
}
&.d10-4::before {
font-family : 'DiceFontD100';
content : '\e904';
}
&.d10-5::before {
font-family : 'DiceFontD100';
content : '\e905';
}
&.d10-6::before {
font-family : 'DiceFontD100';
content : '\e906';
}
&.d10-7::before {
font-family : 'DiceFontD100';
content : '\e907';
}
&.d10-8::before {
font-family : 'DiceFontD100';
content : '\e908';
}
&.d10-9::before {
font-family : 'DiceFontD100';
content : '\e909';
}
&.d10-10::before {
font-family : 'DiceFontD100';
content : '\e90a';
}
// d100
&.d10-00::before {
font-family : 'DiceFontD100';
content : '\e90b';
}
&.d10-01::before {
font-family : 'DiceFontD100';
content : '\e90c';
}
&.d10-02::before {
font-family : 'DiceFontD100';
content : '\e90d';
}
&.d10-03::before {
font-family : 'DiceFontD100';
content : '\e90e';
}
&.d10-04::before {
font-family : 'DiceFontD100';
content : '\e90f';
}
&.d10-05::before {
font-family : 'DiceFontD100';
content : '\e910';
}
&.d10-06::before {
font-family : 'DiceFontD100';
content : '\e911';
}
&.d10-07::before {
font-family : 'DiceFontD100';
content : '\e912';
}
&.d10-08::before {
font-family : 'DiceFontD100';
content : '\e913';
}
&.d10-09::before {
font-family : 'DiceFontD100';
content : '\e914';
}
&.d10-10::before {
font-family : 'DiceFontD100';
content : '\e915';
}
&.d10-11::before {
font-family : 'DiceFontD100';
content : '\e916';
}
&.d10-12::before {
font-family : 'DiceFontD100';
content : '\e917';
}
&.d10-13::before {
font-family : 'DiceFontD100';
content : '\e918';
}
&.d10-14::before {
font-family : 'DiceFontD100';
content : '\e919';
}
&.d10-15::before {
font-family : 'DiceFontD100';
content : '\e91a';
}
&.d10-16::before {
font-family : 'DiceFontD100';
content : '\e91b';
}
&.d10-17::before {
font-family : 'DiceFontD100';
content : '\e91c';
}
&.d10-18::before {
font-family : 'DiceFontD100';
content : '\e91d';
}
&.d10-19::before {
font-family : 'DiceFontD100';
content : '\e91e';
}
&.d10-20::before {
font-family : 'DiceFontD100';
content : '\e91f';
}
&.d10-21::before {
font-family : 'DiceFontD100';
content : '\e920';
}
&.d10-22::before {
font-family : 'DiceFontD100';
content : '\e921';
}
&.d10-23::before {
font-family : 'DiceFontD100';
content : '\e922';
}
&.d10-24::before {
font-family : 'DiceFontD100';
content : '\e923';
}
&.d10-25::before {
font-family : 'DiceFontD100';
content : '\e924';
}
&.d10-26::before {
font-family : 'DiceFontD100';
content : '\e925';
}
&.d10-27::before {
font-family : 'DiceFontD100';
content : '\e926';
}
&.d10-28::before {
font-family : 'DiceFontD100';
content : '\e927';
}
&.d10-29::before {
font-family : 'DiceFontD100';
content : '\e928';
}
&.d10-30::before {
font-family : 'DiceFontD100';
content : '\e929';
}
&.d10-31::before {
font-family : 'DiceFontD100';
content : '\e92a';
}
&.d10-32::before {
font-family : 'DiceFontD100';
content : '\e92b';
}
&.d10-33::before {
font-family : 'DiceFontD100';
content : '\e92c';
}
&.d10-34::before {
font-family : 'DiceFontD100';
content : '\e92d';
}
&.d10-35::before {
font-family : 'DiceFontD100';
content : '\e92e';
}
&.d10-36::before {
font-family : 'DiceFontD100';
content : '\e92f';
}
&.d10-37::before {
font-family : 'DiceFontD100';
content : '\e930';
}
&.d10-38::before {
font-family : 'DiceFontD100';
content : '\e931';
}
&.d10-39::before {
font-family : 'DiceFontD100';
content : '\e932';
}
&.d10-40::before {
font-family : 'DiceFontD100';
content : '\e933';
}
&.d10-41::before {
font-family : 'DiceFontD100';
content : '\e934';
}
&.d10-42::before {
font-family : 'DiceFontD100';
content : '\e935';
}
&.d10-43::before {
font-family : 'DiceFontD100';
content : '\e936';
}
&.d10-44::before {
font-family : 'DiceFontD100';
content : '\e937';
}
&.d10-45::before {
font-family : 'DiceFontD100';
content : '\e938';
}
&.d10-46::before {
font-family : 'DiceFontD100';
content : '\e939';
}
&.d10-47::before {
font-family : 'DiceFontD100';
content : '\e93a';
}
&.d10-48::before {
font-family : 'DiceFontD100';
content : '\e93b';
}
&.d10-49::before {
font-family : 'DiceFontD100';
content : '\e93c';
}
&.d10-50::before {
font-family : 'DiceFontD100';
content : '\e93d';
}
&.d10-51::before {
font-family : 'DiceFontD100';
content : '\e93e';
}
&.d10-52::before {
font-family : 'DiceFontD100';
content : '\e93f';
}
&.d10-53::before {
font-family : 'DiceFontD100';
content : '\e940';
}
&.d10-54::before {
font-family : 'DiceFontD100';
content : '\e941';
}
&.d10-55::before {
font-family : 'DiceFontD100';
content : '\e942';
}
&.d10-56::before {
font-family : 'DiceFontD100';
content : '\e943';
}
&.d10-57::before {
font-family : 'DiceFontD100';
content : '\e944';
}
&.d10-58::before {
font-family : 'DiceFontD100';
content : '\e945';
}
&.d10-59::before {
font-family : 'DiceFontD100';
content : '\e946';
}
&.d10-60::before {
font-family : 'DiceFontD100';
content : '\e947';
}
&.d10-61::before {
font-family : 'DiceFontD100';
content : '\e948';
}
&.d10-62::before {
font-family : 'DiceFontD100';
content : '\e949';
}
&.d10-63::before {
font-family : 'DiceFontD100';
content : '\e94a';
}
&.d10-64::before {
font-family : 'DiceFontD100';
content : '\e94b';
}
&.d10-65::before {
font-family : 'DiceFontD100';
content : '\e94c';
}
&.d10-66::before {
font-family : 'DiceFontD100';
content : '\e94d';
}
&.d10-67::before {
font-family : 'DiceFontD100';
content : '\e94e';
}
&.d10-68::before {
font-family : 'DiceFontD100';
content : '\e94f';
}
&.d10-69::before {
font-family : 'DiceFontD100';
content : '\e950';
}
&.d10-70::before {
font-family : 'DiceFontD100';
content : '\e951';
}
&.d10-71::before {
font-family : 'DiceFontD100';
content : '\e952';
}
&.d10-72::before {
font-family : 'DiceFontD100';
content : '\e953';
}
&.d10-73::before {
font-family : 'DiceFontD100';
content : '\e954';
}
&.d10-74::before {
font-family : 'DiceFontD100';
content : '\e955';
}
&.d10-75::before {
font-family : 'DiceFontD100';
content : '\e956';
}
&.d10-76::before {
font-family : 'DiceFontD100';
content : '\e957';
}
&.d10-77::before {
font-family : 'DiceFontD100';
content : '\e958';
}
&.d10-78::before {
font-family : 'DiceFontD100';
content : '\e959';
}
&.d10-79::before {
font-family : 'DiceFontD100';
content : '\e95a';
}
&.d10-80::before {
font-family : 'DiceFontD100';
content : '\e95b';
}
&.d10-81::before {
font-family : 'DiceFontD100';
content : '\e95c';
}
&.d10-82::before {
font-family : 'DiceFontD100';
content : '\e95d';
}
&.d10-83::before {
font-family : 'DiceFontD100';
content : '\e95e';
}
&.d10-84::before {
font-family : 'DiceFontD100';
content : '\e95f';
}
&.d10-85::before {
font-family : 'DiceFontD100';
content : '\e960';
}
&.d10-86::before {
font-family : 'DiceFontD100';
content : '\e961';
}
&.d10-87::before {
font-family : 'DiceFontD100';
content : '\e962';
}
&.d10-88::before {
font-family : 'DiceFontD100';
content : '\e963';
}
&.d10-89::before {
font-family : 'DiceFontD100';
content : '\e964';
}
&.d10-90::before {
font-family : 'DiceFontD100';
content : '\e965';
}
&.d10-91::before {
font-family : 'DiceFontD100';
content : '\e966';
}
&.d10-92::before {
font-family : 'DiceFontD100';
content : '\e967';
}
&.d10-93::before {
font-family : 'DiceFontD100';
content : '\e968';
}
&.d10-94::before {
font-family : 'DiceFontD100';
content : '\e969';
}
&.d10-95::before {
font-family : 'DiceFontD100';
content : '\e96a';
}
&.d10-96::before {
font-family : 'DiceFontD100';
content : '\e96b';
}
&.d10-97::before {
font-family : 'DiceFontD100';
content : '\e96c';
}
&.d10-98::before {
font-family : 'DiceFontD100';
content : '\e96d';
}
&.d10-99::before {
font-family : 'DiceFontD100';
content : '\e96e';
}
&.d10-100::before {
font-family : 'DiceFontD100';
content : '\e96f';
}
}

View File

@@ -39,7 +39,7 @@
"UnearthedArcana": {
"name": "UnearthedArcana",
"renderer": "V3",
"baseTheme": false,
"baseTheme": "Blank",
"baseSnippets": false,
"path": "UnearthedArcana"
}