@myoc/excalidraw 0.20.0 → 0.21.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/CHANGELOG.md +305 -0
- package/dist/dev/{chunk-VBVJJWUO.js → chunk-A5GXRKT7.js} +24 -2
- package/dist/dev/chunk-A5GXRKT7.js.map +7 -0
- package/dist/dev/{chunk-6JJSWC4C.js → chunk-ETORD5CS.js} +41 -1
- package/dist/dev/{chunk-6JJSWC4C.js.map → chunk-ETORD5CS.js.map} +3 -3
- package/dist/dev/{chunk-JAMVC3FK.js → chunk-RCINQZKB.js} +2 -2
- package/dist/dev/{chunk-JAMVC3FK.js.map → chunk-RCINQZKB.js.map} +1 -1
- package/dist/dev/{chunk-SYLLRP5N.js → chunk-TYPY4HGC.js} +374 -75
- package/dist/dev/chunk-TYPY4HGC.js.map +7 -0
- package/dist/dev/data/{image-MIDG6L22.js → image-LHOOLEDU.js} +3 -3
- package/dist/dev/index.css +121 -0
- package/dist/dev/index.css.map +2 -2
- package/dist/dev/index.js +2084 -1509
- package/dist/dev/index.js.map +4 -4
- package/dist/dev/locales/{en-V2WTRX5T.js → en-5NWRTZ4G.js} +4 -2
- package/dist/dev/subset-shared.chunk.js +4 -2
- package/dist/dev/subset-worker.chunk.js +2 -2
- package/dist/prod/{chunk-7YEIEXKT.js → chunk-4M4QNZNP.js} +1 -1
- package/dist/prod/{chunk-MZBVWY5X.js → chunk-FX6OEDRJ.js} +4 -4
- package/dist/prod/chunk-UXMXN2SG.js +4 -0
- package/dist/prod/{chunk-Z5NKEFVG.js → chunk-VDR2JODW.js} +10 -10
- package/dist/prod/data/image-XO3VLL25.js +1 -0
- package/dist/prod/index.css +1 -1
- package/dist/prod/index.js +18 -18
- package/dist/prod/locales/en-3B3DKM74.js +1 -0
- package/dist/prod/subset-shared.chunk.js +1 -1
- package/dist/prod/subset-worker.chunk.js +1 -1
- package/dist/types/common/src/constants.d.ts +7 -2
- package/dist/types/common/src/font-metadata.d.ts +4 -2
- package/dist/types/element/src/types.d.ts +2 -2
- package/dist/types/excalidraw/appState.d.ts +1 -1
- package/dist/types/excalidraw/charts/charts.constants.d.ts +1 -1
- package/dist/types/excalidraw/components/ExcalidrawToolbarItem.d.ts +18 -0
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +1 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +15 -4
- package/dist/types/excalidraw/components/FontPicker/FontWeightPicker.d.ts +34 -0
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +3 -2
- package/dist/types/excalidraw/components/ToolPopover.d.ts +2 -1
- package/dist/types/excalidraw/components/Toolbar.d.ts +18 -0
- package/dist/types/excalidraw/components/Tools.d.ts +28 -1
- package/dist/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +2 -1
- package/dist/types/excalidraw/fonts/Fonts.d.ts +15 -4
- package/dist/types/excalidraw/fonts/googleFonts.d.ts +40 -0
- package/dist/types/excalidraw/index.d.ts +5 -1
- package/dist/types/excalidraw/subset/subset-main.d.ts +1 -0
- package/dist/types/excalidraw/subset/subset-shared.chunk.d.ts +1 -0
- package/dist/types/excalidraw/subset/woff2/fontMetrics.d.ts +8 -0
- package/dist/types/excalidraw/types.d.ts +44 -0
- package/package.json +4 -4
- package/dist/dev/chunk-SYLLRP5N.js.map +0 -7
- package/dist/dev/chunk-VBVJJWUO.js.map +0 -7
- package/dist/prod/chunk-PITW2T2E.js +0 -4
- package/dist/prod/data/image-SFMYPR3Z.js +0 -1
- package/dist/prod/locales/en-ALU5NMSJ.js +0 -1
- /package/dist/dev/data/{image-MIDG6L22.js.map → image-LHOOLEDU.js.map} +0 -0
- /package/dist/dev/locales/{en-V2WTRX5T.js.map → en-5NWRTZ4G.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6589,5 +6589,310 @@ First release of `@excalidraw/excalidraw`## Excalidraw Library
|
|
|
6589
6589
|
|
|
6590
6590
|
- Incorrect import for color (was moved to common)
|
|
6591
6591
|
|
|
6592
|
+
---## Excalidraw Library
|
|
6593
|
+
|
|
6594
|
+
**_This section lists the updates made to the excalidraw library and will not affect the integration._**
|
|
6595
|
+
|
|
6596
|
+
### Features
|
|
6597
|
+
|
|
6598
|
+
- Add ability to turn off compression for files that are smaller than a given size
|
|
6599
|
+
|
|
6600
|
+
- Add lock tool to the dropdown and also add the status of the extra tools to be the same icon as the selected tool
|
|
6601
|
+
|
|
6602
|
+
- Add view mode button
|
|
6603
|
+
|
|
6604
|
+
- Add multiple image copy paste or drag and drop
|
|
6605
|
+
|
|
6606
|
+
- Multiple image additions from clipboard
|
|
6607
|
+
|
|
6608
|
+
- Add arrange elements action
|
|
6609
|
+
|
|
6610
|
+
- Add top picks to appProps for both stoke color and background color
|
|
6611
|
+
|
|
6612
|
+
### Fixes
|
|
6613
|
+
|
|
6614
|
+
- Issues
|
|
6615
|
+
|
|
6616
|
+
- Make mobile mode more myoc looking
|
|
6617
|
+
|
|
6618
|
+
- Add normalise functionality
|
|
6619
|
+
|
|
6620
|
+
- Update with excalidraw
|
|
6621
|
+
|
|
6622
|
+
- Fix imports
|
|
6623
|
+
|
|
6624
|
+
- Fix mutateGroup to use scene.mutateGroup
|
|
6625
|
+
|
|
6626
|
+
- Imports
|
|
6627
|
+
|
|
6628
|
+
- Ensure that fileId is different for compressed vs uncompressed file
|
|
6629
|
+
|
|
6630
|
+
- Remove not working prop for dontResizeLimitMBs
|
|
6631
|
+
|
|
6632
|
+
- Add smartview for mobile
|
|
6633
|
+
|
|
6634
|
+
- Hide the alignment buttons if there is only one group selected (they do nothing if only one group is selected)
|
|
6635
|
+
|
|
6636
|
+
- Use css vars already provided instead of hard coding directly from oc-gray
|
|
6637
|
+
|
|
6638
|
+
- Remove unused variables
|
|
6639
|
+
|
|
6640
|
+
- Pass the new top pick color props properly
|
|
6641
|
+
|
|
6642
|
+
- Incorrect import for color (was moved to common)
|
|
6643
|
+
|
|
6644
|
+
---
|
|
6645
|
+
## Excalidraw Library
|
|
6646
|
+
|
|
6647
|
+
**_This section lists the updates made to the excalidraw library and will not affect the integration._**
|
|
6648
|
+
|
|
6649
|
+
### Features
|
|
6650
|
+
|
|
6651
|
+
- Support responsive toolbar overflow
|
|
6652
|
+
|
|
6653
|
+
- Add some ui improvemnets
|
|
6654
|
+
|
|
6655
|
+
- Renew UI and organise
|
|
6656
|
+
|
|
6657
|
+
- Expose ability to use compact mode and also a catalog of actions avaialble
|
|
6658
|
+
|
|
6659
|
+
- Add hint and smart zoom better handling
|
|
6660
|
+
|
|
6661
|
+
- Add double click to zoom in both view and edit mode
|
|
6662
|
+
|
|
6663
|
+
- Add smart zoom hints and hold to zoom on object
|
|
6664
|
+
|
|
6665
|
+
- Add ability to scroll between images with arrows when nothing selected and double click to smartzoom while in view mode.
|
|
6666
|
+
|
|
6667
|
+
- Add canvas horizontal and vertical flipping
|
|
6668
|
+
|
|
6669
|
+
- Add non-stacking aligning
|
|
6670
|
+
|
|
6671
|
+
- Allow view mode breaking when dropping or adding file and fix view mode and edit mode labels and stuff
|
|
6672
|
+
|
|
6673
|
+
- Add search on canvas as part of more tools
|
|
6674
|
+
|
|
6675
|
+
- Capture all raw data in a drag event so it can be parsed later
|
|
6676
|
+
|
|
6677
|
+
- Add apis for thumbhash as well as blur and smooth blur to non-blured animation.
|
|
6678
|
+
|
|
6679
|
+
- Add forced view mode state
|
|
6680
|
+
|
|
6681
|
+
- Allow images to be added with custom data
|
|
6682
|
+
|
|
6683
|
+
- Add custom context menu stuff when right clicking images
|
|
6684
|
+
|
|
6685
|
+
- Remove library for our fork
|
|
6686
|
+
|
|
6687
|
+
- Remove command palette from our fork
|
|
6688
|
+
|
|
6689
|
+
- Add drag z to zoom functionality
|
|
6690
|
+
|
|
6691
|
+
- Add editor preferences dialog in app (not api)
|
|
6692
|
+
|
|
6693
|
+
- Add editor settings as well as new arrange algos
|
|
6694
|
+
|
|
6695
|
+
- Arrow binding is a preference [#10839](https://github.com/excalidraw/excalidraw/pull/10839)
|
|
6696
|
+
|
|
6697
|
+
- Focus indicator [#10613](https://github.com/excalidraw/excalidraw/pull/10613)
|
|
6698
|
+
|
|
6699
|
+
- Support customizing TTD welcome screen [#10719](https://github.com/excalidraw/excalidraw/pull/10719)
|
|
6700
|
+
|
|
6701
|
+
- Prevent pasting excalidraw into textarea & paste element text if avail [#10710](https://github.com/excalidraw/excalidraw/pull/10710)
|
|
6702
|
+
|
|
6703
|
+
- Add ability to turn off compression for files that are smaller than a given size
|
|
6704
|
+
|
|
6705
|
+
- Add lock tool to the dropdown and also add the status of the extra tools to be the same icon as the selected tool
|
|
6706
|
+
|
|
6707
|
+
- Add view mode button
|
|
6708
|
+
|
|
6709
|
+
- Add multiple image copy paste or drag and drop
|
|
6710
|
+
|
|
6711
|
+
- Multiple image additions from clipboard
|
|
6712
|
+
|
|
6713
|
+
- Add arrange elements action
|
|
6714
|
+
|
|
6715
|
+
- Add top picks to appProps for both stoke color and background color
|
|
6716
|
+
|
|
6717
|
+
### Fixes
|
|
6718
|
+
|
|
6719
|
+
- Drag to zoom for viewmode
|
|
6720
|
+
|
|
6721
|
+
- Commit gif improvements
|
|
6722
|
+
|
|
6723
|
+
- Ensure clipboard copies as png so that webm and other types of images are copied properly
|
|
6724
|
+
|
|
6725
|
+
- Use a more efficient wasm gif decoder
|
|
6726
|
+
|
|
6727
|
+
- Tests
|
|
6728
|
+
|
|
6729
|
+
- Ensure playback of gifs does not trigger onchanges
|
|
6730
|
+
|
|
6731
|
+
- Ensure that worker works and also scrolling works for the frames
|
|
6732
|
+
|
|
6733
|
+
- Fix scrolling and add debug logs for decoding
|
|
6734
|
+
|
|
6735
|
+
- GIF controls
|
|
6736
|
+
|
|
6737
|
+
- Issues
|
|
6738
|
+
|
|
6739
|
+
- Review
|
|
6740
|
+
|
|
6741
|
+
- Refactor into its own gif modules
|
|
6742
|
+
|
|
6743
|
+
- Add gif support without good icons yet
|
|
6744
|
+
|
|
6745
|
+
- Normalise before adding image to canvas via api
|
|
6746
|
+
|
|
6747
|
+
- Dont silently fail when adding an unsupported image
|
|
6748
|
+
|
|
6749
|
+
- Ensure that custom data is properly passed into the excalidraw canvas
|
|
6750
|
+
|
|
6751
|
+
- Ensure that normalise and arrange are still available and fix menu placement
|
|
6752
|
+
|
|
6753
|
+
- Fix regression on normalise and arrange
|
|
6754
|
+
|
|
6755
|
+
- Dont couple upload and download progresses or errors
|
|
6756
|
+
|
|
6757
|
+
- Invalid error state on element when the item was cleared and reconciled and also dont link download error to the element error
|
|
6758
|
+
|
|
6759
|
+
- Smartzoom and stuff
|
|
6760
|
+
|
|
6761
|
+
- Fix sidebar overflow
|
|
6762
|
+
|
|
6763
|
+
- Restore hold z to zoom
|
|
6764
|
+
|
|
6765
|
+
- Smartzoom not taking viewport factor setting and also bad error state showing the icon even if its null
|
|
6766
|
+
|
|
6767
|
+
- Test
|
|
6768
|
+
|
|
6769
|
+
- Persist memory
|
|
6770
|
+
|
|
6771
|
+
- Remove regressed right click menu items
|
|
6772
|
+
|
|
6773
|
+
- Restore the smartview and viewmode island button for mobile
|
|
6774
|
+
|
|
6775
|
+
- Some more regressions
|
|
6776
|
+
|
|
6777
|
+
- Allow host to customise render customisations like trails
|
|
6778
|
+
|
|
6779
|
+
- Restore lots of broken functionality due to regresssions
|
|
6780
|
+
|
|
6781
|
+
- Add ability to show error for upload
|
|
6782
|
+
|
|
6783
|
+
- Adjust appearance of transitionary states for the images
|
|
6784
|
+
|
|
6785
|
+
- Css for bottom bar
|
|
6786
|
+
|
|
6787
|
+
- Right clicking a link instantly opens the link fix: ensure that right clicking an image in the group still allows the image to be copied or whatever
|
|
6788
|
+
|
|
6789
|
+
- Add filename as a field to ExcalidrawImageElement
|
|
6790
|
+
|
|
6791
|
+
- Add missing max
|
|
6792
|
+
|
|
6793
|
+
- Fix search text not taking theme colors
|
|
6794
|
+
|
|
6795
|
+
- Add snap to grid at top
|
|
6796
|
+
|
|
6797
|
+
- Fix hand tool breaking tests
|
|
6798
|
+
|
|
6799
|
+
- Make z index of help modal higher
|
|
6800
|
+
|
|
6801
|
+
- Add hand button to the top bar
|
|
6802
|
+
|
|
6803
|
+
- LocalStorage is empty object on node@25 which breaks tests [#11240](https://github.com/excalidraw/excalidraw/pull/11240)
|
|
6804
|
+
|
|
6805
|
+
- Speculative fixes for arrow invariant failures [#11241](https://github.com/excalidraw/excalidraw/pull/11241)
|
|
6806
|
+
|
|
6807
|
+
- Group selection [#11234](https://github.com/excalidraw/excalidraw/pull/11234)
|
|
6808
|
+
|
|
6809
|
+
- Fractional index validation [#11258](https://github.com/excalidraw/excalidraw/pull/11258)
|
|
6810
|
+
|
|
6811
|
+
- Group defragmenting [#11269](https://github.com/excalidraw/excalidraw/pull/11269)
|
|
6812
|
+
|
|
6813
|
+
- Frame selection and membership [#11250](https://github.com/excalidraw/excalidraw/pull/11250)
|
|
6814
|
+
|
|
6815
|
+
- Pin 9 actions to commit SHA [#11075](https://github.com/excalidraw/excalidraw/pull/11075)
|
|
6816
|
+
|
|
6817
|
+
- Add grid color customisation
|
|
6818
|
+
|
|
6819
|
+
- Rotated rounded arrow center point [#10962](https://github.com/excalidraw/excalidraw/pull/10962)
|
|
6820
|
+
|
|
6821
|
+
- Other endpoint is not immediately updated on midpoint snap [#10933](https://github.com/excalidraw/excalidraw/pull/10933)
|
|
6822
|
+
|
|
6823
|
+
- Arrow point index Out-of-Bounds [#10922](https://github.com/excalidraw/excalidraw/pull/10922)
|
|
6824
|
+
|
|
6825
|
+
- DropdownMenu item badge position [#10895](https://github.com/excalidraw/excalidraw/pull/10895)
|
|
6826
|
+
|
|
6827
|
+
- Spacing in the left menu [#10880](https://github.com/excalidraw/excalidraw/pull/10880)
|
|
6828
|
+
|
|
6829
|
+
- "hand" tool active after exiting view mode if laser point was used [#10841](https://github.com/excalidraw/excalidraw/pull/10841)
|
|
6830
|
+
|
|
6831
|
+
- Multi-point arrow bound point update [#10831](https://github.com/excalidraw/excalidraw/pull/10831)
|
|
6832
|
+
|
|
6833
|
+
- Arrow overlap arrow behavior [#10732](https://github.com/excalidraw/excalidraw/pull/10732)
|
|
6834
|
+
|
|
6835
|
+
- Convert ArrowheadNoneIcon to component matching arrowhead icon pattern [#10789](https://github.com/excalidraw/excalidraw/pull/10789)
|
|
6836
|
+
|
|
6837
|
+
- Inside-inside bound arrow endpoint drag trigger focus point editor [#10771](https://github.com/excalidraw/excalidraw/pull/10771)
|
|
6838
|
+
|
|
6839
|
+
- Update arrowhead property defaultValue handling [#10778](https://github.com/excalidraw/excalidraw/pull/10778)
|
|
6840
|
+
|
|
6841
|
+
- Hex8 regression #10578 [#10773](https://github.com/excalidraw/excalidraw/pull/10773)
|
|
6842
|
+
|
|
6843
|
+
- Arrow update when cloned [#10747](https://github.com/excalidraw/excalidraw/pull/10747)
|
|
6844
|
+
|
|
6845
|
+
- Other binding converted from fixed to orbit unconditionally [#10748](https://github.com/excalidraw/excalidraw/pull/10748)
|
|
6846
|
+
|
|
6847
|
+
- Clarify welcome screen message about browser storage limitations [#10721](https://github.com/excalidraw/excalidraw/pull/10721)
|
|
6848
|
+
|
|
6849
|
+
- SVG Inversion on Safari [#10712](https://github.com/excalidraw/excalidraw/pull/10712)
|
|
6850
|
+
|
|
6851
|
+
- Coherent stats binding [#10718](https://github.com/excalidraw/excalidraw/pull/10718)
|
|
6852
|
+
|
|
6853
|
+
- Arrow endpoint offset [#10706](https://github.com/excalidraw/excalidraw/pull/10706)
|
|
6854
|
+
|
|
6855
|
+
- Increase iteration on curve intersection calc [#10707](https://github.com/excalidraw/excalidraw/pull/10707)
|
|
6856
|
+
|
|
6857
|
+
- Bound arrow elements for distribute and wyswig updates [#10702](https://github.com/excalidraw/excalidraw/pull/10702)
|
|
6858
|
+
|
|
6859
|
+
- Make release script work
|
|
6860
|
+
|
|
6861
|
+
- Issues
|
|
6862
|
+
|
|
6863
|
+
- Make mobile mode more myoc looking
|
|
6864
|
+
|
|
6865
|
+
- Add normalise functionality
|
|
6866
|
+
|
|
6867
|
+
- Npm dep versions
|
|
6868
|
+
|
|
6869
|
+
- Update with excalidraw
|
|
6870
|
+
|
|
6871
|
+
- Fix imports
|
|
6872
|
+
|
|
6873
|
+
- Fix mutateGroup to use scene.mutateGroup
|
|
6874
|
+
|
|
6875
|
+
- Imports
|
|
6876
|
+
|
|
6877
|
+
- Ensure that fileId is different for compressed vs uncompressed file
|
|
6878
|
+
|
|
6879
|
+
- Remove not working prop for dontResizeLimitMBs
|
|
6880
|
+
|
|
6881
|
+
- Add smartview for mobile
|
|
6882
|
+
|
|
6883
|
+
- Hide the alignment buttons if there is only one group selected (they do nothing if only one group is selected)
|
|
6884
|
+
|
|
6885
|
+
- Use css vars already provided instead of hard coding directly from oc-gray
|
|
6886
|
+
|
|
6887
|
+
- Remove unused variables
|
|
6888
|
+
|
|
6889
|
+
- Pass the new top pick color props properly
|
|
6890
|
+
|
|
6891
|
+
- Incorrect import for color (was moved to common)
|
|
6892
|
+
|
|
6893
|
+
### Performance
|
|
6894
|
+
|
|
6895
|
+
- Cache hits in collision detection [#10648](https://github.com/excalidraw/excalidraw/pull/10648)
|
|
6896
|
+
|
|
6592
6897
|
---
|
|
6593
6898
|
|
|
@@ -73,6 +73,7 @@ var labels = {
|
|
|
73
73
|
arrowtype_elbowed: "Elbow arrow",
|
|
74
74
|
fontSize: "Font size",
|
|
75
75
|
fontFamily: "Font family",
|
|
76
|
+
fontWeight: "Weight",
|
|
76
77
|
addWatermark: 'Add "Made with Excalidraw"',
|
|
77
78
|
handDrawn: "Hand-drawn",
|
|
78
79
|
normal: "Normal",
|
|
@@ -594,13 +595,32 @@ var overwriteConfirm = {
|
|
|
594
595
|
var quickSearch = {
|
|
595
596
|
placeholder: "Quick search"
|
|
596
597
|
};
|
|
598
|
+
var fontWeight = {
|
|
599
|
+
thin: "Thin",
|
|
600
|
+
extraLight: "Extra Light",
|
|
601
|
+
light: "Light",
|
|
602
|
+
regular: "Regular",
|
|
603
|
+
medium: "Medium",
|
|
604
|
+
semiBold: "Semi Bold",
|
|
605
|
+
bold: "Bold",
|
|
606
|
+
extraBold: "Extra Bold",
|
|
607
|
+
black: "Black",
|
|
608
|
+
more: "More weights\u2026"
|
|
609
|
+
};
|
|
597
610
|
var fontList = {
|
|
598
611
|
badge: {
|
|
599
612
|
old: "old"
|
|
600
613
|
},
|
|
601
614
|
sceneFonts: "In this scene",
|
|
615
|
+
myFonts: "My fonts",
|
|
602
616
|
availableFonts: "Available fonts",
|
|
603
|
-
|
|
617
|
+
builtInFonts: "Built-in",
|
|
618
|
+
empty: "No fonts found",
|
|
619
|
+
browse: "Browse Google Fonts\u2026",
|
|
620
|
+
emptyLibrary: "Your font library is empty. Browse Google Fonts to add some.",
|
|
621
|
+
addToLibrary: "Add to library",
|
|
622
|
+
addToLibraryLocked: "Add to library (upgrade required)",
|
|
623
|
+
upgradeToUse: "Upgrade your plan to use Google fonts"
|
|
604
624
|
};
|
|
605
625
|
var userList = {
|
|
606
626
|
empty: "No users found",
|
|
@@ -654,6 +674,7 @@ var en_default = {
|
|
|
654
674
|
colorPicker,
|
|
655
675
|
overwriteConfirm,
|
|
656
676
|
quickSearch,
|
|
677
|
+
fontWeight,
|
|
657
678
|
fontList,
|
|
658
679
|
userList,
|
|
659
680
|
keys
|
|
@@ -689,9 +710,10 @@ export {
|
|
|
689
710
|
colorPicker,
|
|
690
711
|
overwriteConfirm,
|
|
691
712
|
quickSearch,
|
|
713
|
+
fontWeight,
|
|
692
714
|
fontList,
|
|
693
715
|
userList,
|
|
694
716
|
keys,
|
|
695
717
|
en_default
|
|
696
718
|
};
|
|
697
|
-
//# sourceMappingURL=chunk-
|
|
719
|
+
//# sourceMappingURL=chunk-A5GXRKT7.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../locales/en.json"],
|
|
4
|
+
"sourcesContent": ["{\n \"labels\": {\n \"signUp\": \"Sign up\",\n \"signIn\": \"Sign in\",\n \"paste\": \"Paste\",\n \"pasteAsPlaintext\": \"Paste as plaintext\",\n \"pasteCharts\": \"Paste charts\",\n \"chartType_bar\": \"Bar chart\",\n \"chartType_line\": \"Line chart\",\n \"chartType_radar\": \"Radar chart\",\n \"chartType_plaintext\": \"Plain text\",\n \"selectAll\": \"Select all\",\n \"multiSelect\": \"Add element to selection\",\n \"moveCanvas\": \"Move canvas\",\n \"cut\": \"Cut\",\n \"copy\": \"Copy\",\n \"copyAsPng\": \"Copy to clipboard as PNG\",\n \"copyAsSvg\": \"Copy to clipboard as SVG\",\n \"copyText\": \"Copy to clipboard as text\",\n \"copySource\": \"Copy source to clipboard\",\n \"convertToCode\": \"Convert to code\",\n \"bringForward\": \"Bring forward\",\n \"sendToBack\": \"Send to back\",\n \"bringToFront\": \"Bring to front\",\n \"sendBackward\": \"Send backward\",\n \"delete\": \"Delete\",\n \"copyStyles\": \"Copy styles\",\n \"pasteStyles\": \"Paste styles\",\n \"stroke\": \"Stroke\",\n \"changeStroke\": \"Change stroke color\",\n \"background\": \"Background\",\n \"changeBackground\": \"Change background color\",\n \"fill\": \"Fill\",\n \"smartZoom\": \"Smart Zoom\",\n \"strokeWidth\": \"Stroke width\",\n \"strokeStyle\": \"Stroke style\",\n \"strokeStyle_solid\": \"Solid\",\n \"strokeStyle_dashed\": \"Dashed\",\n \"strokeStyle_dotted\": \"Dotted\",\n \"sloppiness\": \"Sloppiness\",\n \"pressure\": \"Pressure\",\n \"pressure_constant\": \"Constant\",\n \"pressure_variable\": \"Variable\",\n \"opacity\": \"Opacity\",\n \"textAlign\": \"Text align\",\n \"edges\": \"Edges\",\n \"sharp\": \"Sharp\",\n \"round\": \"Round\",\n \"arrowheads\": \"Arrowheads\",\n \"arrowhead_none\": \"None\",\n \"arrowhead_arrow\": \"Arrow\",\n \"arrowhead_bar\": \"Bar\",\n \"arrowhead_circle\": \"Circle\",\n \"arrowhead_circle_outline\": \"Circle (outline)\",\n \"arrowhead_triangle\": \"Triangle\",\n \"arrowhead_triangle_outline\": \"Triangle (outline)\",\n \"arrowhead_diamond\": \"Diamond\",\n \"arrowhead_diamond_outline\": \"Diamond (outline)\",\n \"arrowhead_crowfoot_many\": \"Crow's foot (many)\",\n \"arrowhead_crowfoot_one\": \"Crow's foot (one)\",\n \"arrowhead_crowfoot_one_or_many\": \"Crow's foot (one or many)\",\n \"arrowhead_cardinality_one\": \"Cardinality (one)\",\n \"arrowhead_cardinality_many\": \"Cardinality (many)\",\n \"arrowhead_cardinality_one_or_many\": \"Cardinality (one or many)\",\n \"arrowhead_cardinality_exactly_one\": \"Cardinality (exactly one)\",\n \"arrowhead_cardinality_zero_or_one\": \"Cardinality (zero or one)\",\n \"arrowhead_cardinality_zero_or_many\": \"Cardinality (zero or many)\",\n \"more_options\": \"More options\",\n \"cardinality\": \"Cardinality\",\n \"arrowtypes\": \"Arrow type\",\n \"arrowtype_sharp\": \"Sharp arrow\",\n \"arrowtype_round\": \"Curved arrow\",\n \"arrowtype_elbowed\": \"Elbow arrow\",\n \"fontSize\": \"Font size\",\n \"fontFamily\": \"Font family\",\n \"fontWeight\": \"Weight\",\n \"addWatermark\": \"Add \\\"Made with Excalidraw\\\"\",\n \"handDrawn\": \"Hand-drawn\",\n \"normal\": \"Normal\",\n \"code\": \"Code\",\n \"small\": \"Small\",\n \"medium\": \"Medium\",\n \"large\": \"Large\",\n \"veryLarge\": \"Very large\",\n \"solid\": \"Solid\",\n \"hachure\": \"Hachure\",\n \"zigzag\": \"Zigzag\",\n \"crossHatch\": \"Cross-hatch\",\n \"thin\": \"Thin\",\n \"bold\": \"Bold\",\n \"left\": \"Left\",\n \"center\": \"Center\",\n \"right\": \"Right\",\n \"extraBold\": \"Extra bold\",\n \"architect\": \"Architect\",\n \"artist\": \"Artist\",\n \"cartoonist\": \"Cartoonist\",\n \"fileTitle\": \"File name\",\n \"colorPicker\": \"Color picker\",\n \"canvasColors\": \"Used on canvas\",\n \"canvasBackground\": \"Canvas background\",\n \"drawingCanvas\": \"Drawing canvas\",\n \"clearCanvas\": \"Clear canvas\",\n \"layers\": \"Layers\",\n \"actions\": \"Actions\",\n \"language\": \"Language\",\n \"liveCollaboration\": \"Live collaboration...\",\n \"duplicateSelection\": \"Duplicate\",\n \"untitled\": \"Untitled\",\n \"name\": \"Name\",\n \"yourName\": \"Your name\",\n \"madeWithExcalidraw\": \"Made with Excalidraw\",\n \"group\": \"Group selection\",\n \"ungroup\": \"Ungroup selection\",\n \"collaborators\": \"Collaborators\",\n \"you\": \"You\",\n \"toggleGrid\": \"Toggle grid\",\n \"loadingScene\": \"Loading scene\u2026\",\n \"loadScene\": \"Load scene from file\",\n \"align\": \"Align\",\n \"stacking\": \"Stacking\",\n \"alignTop\": \"Align top\",\n \"alignBottom\": \"Align bottom\",\n \"alignLeft\": \"Align left\",\n \"alignRight\": \"Align right\",\n \"centerVertically\": \"Center vertically\",\n \"centerHorizontally\": \"Center horizontally\",\n \"distributeHorizontally\": \"Distribute horizontally\",\n \"distributeVertically\": \"Distribute vertically\",\n \"flipHorizontal\": \"Flip horizontal\",\n \"flipVertical\": \"Flip vertical\",\n \"flipViewpointHorizontal\": \"Flip viewpoint horizontally\",\n \"flipViewpointVertical\": \"Flip viewpoint vertically\",\n \"viewMode\": \"View mode\",\n \"share\": \"Share\",\n \"showStroke\": \"Show stroke color picker\",\n \"showBackground\": \"Show background color picker\",\n \"showFonts\": \"Show font picker\",\n \"toggleTheme\": \"Toggle light/dark theme\",\n \"arrangeElements\": \"Arrange elements\",\n \"normaliseElements\": \"Normalize images\",\n \"theme\": \"Theme\",\n \"decreaseFontSize\": \"Decrease font size\",\n \"increaseFontSize\": \"Increase font size\",\n \"unbindText\": \"Unbind text\",\n \"bindText\": \"Bind text to the container\",\n \"createContainerFromText\": \"Wrap text in a container\",\n \"link\": {\n \"edit\": \"Edit link\",\n \"editEmbed\": \"Edit embeddable link\",\n \"create\": \"Add link\",\n \"label\": \"Link\",\n \"labelEmbed\": \"Link & embed\",\n \"empty\": \"No link is set\",\n \"hint\": \"Type or paste your link here\",\n \"goToElement\": \"Go to target element\"\n },\n \"lineEditor\": {\n \"edit\": \"Edit line\",\n \"editArrow\": \"Edit arrow\"\n },\n \"polygon\": {\n \"breakPolygon\": \"Break polygon\",\n \"convertToPolygon\": \"Convert to polygon\"\n },\n \"elementLock\": {\n \"lock\": \"Lock\",\n \"unlock\": \"Unlock\",\n \"lockAll\": \"Lock all\",\n \"unlockAll\": \"Unlock all\"\n },\n \"sidebarLock\": \"Keep sidebar open\",\n \"selectAllElementsInFrame\": \"Select all elements in frame\",\n \"removeAllElementsFromFrame\": \"Remove all elements from frame\",\n \"eyeDropper\": \"Pick color from canvas\",\n \"followUs\": \"Follow us\",\n \"discordChat\": \"Discord chat\",\n \"zoomToFitViewport\": \"Zoom to fit in viewport\",\n \"zoomToFitSelection\": \"Zoom to fit selection\",\n \"zoomToFit\": \"Zoom to fit all elements\",\n \"installPWA\": \"Install Excalidraw locally (PWA)\",\n \"autoResize\": \"Enable text auto-resizing\",\n \"imageCropping\": \"Image cropping\",\n \"unCroppedDimension\": \"Uncropped dimension\",\n \"copyElementLink\": \"Copy link to object\",\n \"linkToElement\": \"Link to object\",\n \"wrapSelectionInFrame\": \"Wrap selection in frame\",\n \"tab\": \"Tab\",\n \"shapeSwitch\": \"Switch shape\",\n \"preferences\": \"Preferences\",\n \"preferences_myocDesktopUISize\": \"MyOC desktop UI size\",\n \"preferences_myocDesktopUIDescription\": \"Applies to desktop only. Tablet and phone layouts remain automatic.\",\n \"preferences_myocDesktopUIFull\": \"Full\",\n \"preferences_myocDesktopUICompact\": \"Compact\",\n \"preferences_toolLock\": \"Tool lock\",\n \"boxSelectionMode\": \"Select on\",\n \"boxSelectionContain\": \"Wrap\",\n \"boxSelectionOverlap\": \"Overlap\",\n \"arrowBinding\": \"Arrow binding\",\n \"midpointSnapping\": \"Snap to midpoints\"\n },\n \"elementLink\": {\n \"title\": \"Link to object\",\n \"desc\": \"Click on a shape on canvas or paste a link.\",\n \"notFound\": \"Linked object wasn't found on canvas.\"\n },\n \"search\": {\n \"title\": \"Find on canvas\",\n \"noMatch\": \"No matches found...\",\n \"singleResult\": \"result\",\n \"multipleResults\": \"results\",\n \"placeholder\": \"Find text on canvas...\",\n \"frames\": \"Frames\",\n \"texts\": \"Texts\"\n },\n \"buttons\": {\n \"clearReset\": \"Reset the canvas\",\n \"exportJSON\": \"Export to file\",\n \"exportImage\": \"Export image...\",\n \"export\": \"Save to...\",\n \"copyToClipboard\": \"Copy to clipboard\",\n \"copyLink\": \"Copy link\",\n \"save\": \"Save to current file\",\n \"saveAs\": \"Save as\",\n \"load\": \"Open\",\n \"getShareableLink\": \"Get shareable link\",\n \"close\": \"Close\",\n \"selectLanguage\": \"Select language\",\n \"scrollBackToContent\": \"Scroll back to content\",\n \"zoomIn\": \"Zoom in\",\n \"zoomOut\": \"Zoom out\",\n \"resetZoom\": \"Reset zoom\",\n \"menu\": \"Menu\",\n \"done\": \"Done\",\n \"edit\": \"Edit\",\n \"undo\": \"Undo\",\n \"redo\": \"Redo\",\n \"createNewRoom\": \"Create new room\",\n \"fullScreen\": \"Full screen\",\n \"darkMode\": \"Dark mode\",\n \"lightMode\": \"Light mode\",\n \"systemMode\": \"System mode\",\n \"zenMode\": \"Zen mode\",\n \"objectsSnapMode\": \"Snap to objects\",\n \"exitZenMode\": \"Exit zen mode\",\n \"cancel\": \"Cancel\",\n \"clear\": \"Clear\",\n \"remove\": \"Remove\",\n \"embed\": \"Toggle embedding\",\n \"submit\": \"Submit\",\n \"confirm\": \"Confirm\",\n \"embeddableInteractionButton\": \"Click to interact\",\n \"smartZoom\": \"Smart Zoom\"\n },\n \"alerts\": {\n \"clearReset\": \"This will clear the whole canvas. Are you sure?\",\n \"couldNotCreateShareableLink\": \"Couldn't create shareable link.\",\n \"couldNotCreateShareableLinkTooBig\": \"Couldn't create shareable link: the scene is too big\",\n \"couldNotLoadInvalidFile\": \"Couldn't load invalid file\",\n \"importBackendFailed\": \"Importing from backend failed.\",\n \"cannotExportEmptyCanvas\": \"Cannot export empty canvas.\",\n \"couldNotCopyToClipboard\": \"Couldn't copy to clipboard.\",\n \"decryptFailed\": \"Couldn't decrypt data.\",\n \"uploadedSecurly\": \"The upload has been secured with end-to-end encryption, which means that Excalidraw server and third parties can't read the content.\",\n \"loadSceneOverridePrompt\": \"Loading external drawing will replace your existing content. Do you wish to continue?\",\n \"collabStopOverridePrompt\": \"Stopping the session will overwrite your previous, locally stored drawing. Are you sure?\\n\\n(If you want to keep your local drawing, simply close the browser tab instead.)\",\n \"imageDoesNotContainScene\": \"This image does not seem to contain any scene data. Have you enabled scene embedding during export?\",\n \"cannotRestoreFromImage\": \"Scene couldn't be restored from this image file\",\n \"invalidSceneUrl\": \"Couldn't import scene from the supplied URL. It's either malformed, or doesn't contain valid Excalidraw JSON data.\",\n \"invalidEncryptionKey\": \"Encryption key must be of 22 characters. Live collaboration is disabled.\",\n \"collabOfflineWarning\": \"No internet connection available.\\nYour changes will not be saved!\",\n \"localStorageQuotaExceeded\": \"Browser storage quota exceeded. Changes will not be saved.\"\n },\n \"errors\": {\n \"unsupportedFileType\": \"Unsupported file type.\",\n \"imageInsertError\": \"Couldn't insert image. Try again later...\",\n \"fileTooBig\": \"File is too big. Maximum allowed size is {{maxSize}}.\",\n \"svgImageInsertError\": \"Couldn't insert SVG image. The SVG markup looks invalid.\",\n \"failedToFetchImage\": \"Failed to fetch image.\",\n \"cannotResolveCollabServer\": \"Couldn't connect to the collab server. Please reload the page and try again.\",\n \"collabSaveFailed\": \"Couldn't save to the backend database. If problems persist, you should save your file locally to ensure you don't lose your work.\",\n \"collabSaveFailed_sizeExceeded\": \"Couldn't save to the backend database, the canvas seems to be too big. You should save the file locally to ensure you don't lose your work.\",\n \"imageToolNotSupported\": \"Images are disabled.\",\n \"brave_measure_text_error\": {\n \"line1\": \"Looks like you are using Brave browser with the <bold>Aggressively Block Fingerprinting</bold> setting enabled.\",\n \"line2\": \"This could result in breaking the <bold>Text Elements</bold> in your drawings.\",\n \"line3\": \"We strongly recommend disabling this setting. You can follow <link>these steps</link> on how to do so.\",\n \"line4\": \"If disabling this setting doesn't fix the display of text elements, please open an <issueLink>issue</issueLink> on our GitHub, or write us on <discordLink>Discord</discordLink>\"\n },\n \"asyncPasteFailedOnRead\": \"Couldn't paste (couldn't read from system clipboard).\",\n \"asyncPasteFailedOnParse\": \"Couldn't paste.\",\n \"copyToSystemClipboardFailed\": \"Couldn't copy to clipboard.\"\n },\n \"toolBar\": {\n \"selection\": \"Selection\",\n \"lasso\": \"Lasso selection\",\n \"image\": \"Insert image\",\n \"rectangle\": \"Rectangle\",\n \"diamond\": \"Diamond\",\n \"ellipse\": \"Ellipse\",\n \"arrow\": \"Arrow\",\n \"line\": \"Line\",\n \"freedraw\": \"Draw\",\n \"text\": \"Text\",\n \"lock-short\": \"Lock Active Tool\",\n \"lock\": \"Keep selected tool active after drawing\",\n \"penMode\": \"Pen mode - prevent touch\",\n \"link\": \"Add / Update link for a selected shape\",\n \"eraser\": \"Eraser\",\n \"frame\": \"Frame tool\",\n \"embeddable\": \"Web Embed\",\n \"laser\": \"Laser pointer\",\n \"autoshape\": \"Draw to shape\",\n \"bucketfill\": \"Bucket fill\",\n \"hand\": \"Hand (panning tool)\",\n \"extraTools\": \"More tools\",\n \"smartZoom\": \"Smart Zoom\",\n \"convertElementType\": \"Toggle shape type\"\n },\n \"bucketfill\": {\n \"noRegion\": \"Couldn't find an enclosed region to fill here.\",\n \"tooComplex\": \"This region is too complex to fill.\"\n },\n \"element\": {\n \"rectangle\": \"Rectangle\",\n \"diamond\": \"Diamond\",\n \"ellipse\": \"Ellipse\",\n \"arrow\": \"Arrow\",\n \"line\": \"Line\",\n \"freedraw\": \"Freedraw\",\n \"text\": \"Text\",\n \"image\": \"Image\",\n \"group\": \"Group\",\n \"frame\": \"Frame\",\n \"embeddable\": \"Web Embed\",\n \"selection\": \"Selection\",\n \"iframe\": \"IFrame\"\n },\n \"headings\": {\n \"canvasActions\": \"Canvas actions\",\n \"selectedShapeActions\": \"Selected shape actions\",\n \"shapes\": \"Shapes\"\n },\n \"hints\": {\n \"dismissSearch\": \"{{shortcut}} to dismiss search\",\n \"canvasPanning\": \"Pan the canvas with {{shortcut_1}} or {{shortcut_2}} or use the hand tool.\\nHide hints using View Mode (bottom left)\",\n \"linearElement\": \"Click to start multiple points, drag for single line\",\n \"arrowTool\": \"Click to start multiple points, drag for single line. Press {{shortcut}} again to change arrow type.\",\n \"arrowBindModifiers\": \"Hold {{shortcut_1}} to disable binding, or {{shortcut_2}} to bind at a fixed point\",\n \"freeDraw\": \"Click and drag, release when you're finished\",\n \"text\": \"Tip: you can also add text by double-clicking anywhere with the selection tool\",\n \"embeddable\": \"Click-drag to create a website embed\",\n \"autoshape\": \"Draw rectangles, circles, diamonds, lines and arrows\",\n \"text_selected\": \"Double-click or press {{shortcut}} to edit text\",\n \"text_editing\": \"Press {{shortcut_1}} or {{shortcut_2}} to finish editing\",\n \"linearElementMulti\": \"Click on last point or press {{shortcut_1}} or {{shortcut_2}} to finish\",\n \"lockAngle\": \"You can constrain angle by holding {{shortcut}}\",\n \"resize\": \"You can constrain proportions by holding {{shortcut_1}} while resizing,\\nhold {{shortcut_2}} to resize from the center\",\n \"resizeImage\": \"You can resize freely by holding {{shortcut_1}},\\nhold {{shortcut_2}} to resize from the center\",\n \"rotate\": \"You can constrain angles by holding {{shortcut}} while rotating\",\n \"toggleArrowhead\": \"Double-click to toggle the arrowhead\",\n \"lineEditor_info\": \"Hold {{shortcut_1}} and Double-click or press {{shortcut_2}} to edit points\",\n \"lineEditor_line_info\": \"Double-click or press {{shortcut}} to edit points\",\n \"lineEditor_pointSelected\": \"Press {{shortcut_1}} to remove point(s),\\n{{shortcut_2}} to duplicate, or drag to move\",\n \"lineEditor_nothingSelected\": \"Select a point to edit (hold {{shortcut_1}} to select multiple),\\nor hold {{shortcut_2}} and click to add new points\",\n \"bindTextToElement\": \"{{shortcut}} to add text\",\n \"createFlowchart\": \"{{shortcut}} to create a flowchart\",\n \"deepBoxSelect\": \"Hold {{shortcut}} to deep select, and to prevent dragging\",\n \"eraserRevert\": \"Hold {{shortcut}} to revert the elements marked for deletion\",\n \"firefox_clipboard_write\": \"This feature can likely be enabled by setting the \\\"dom.events.asyncClipboard.clipboardItem\\\" flag to \\\"true\\\". To change the browser flags in Firefox, visit the \\\"about:config\\\" page.\",\n \"disableSnapping\": \"Hold {{shortcut}} to disable snapping\",\n \"enterCropEditor\": \"{{shortcut_1}} to smart zoom, or press {{shortcut_2}} to crop\",\n \"leaveCropEditor\": \"Click outside the image or press {{shortcut_1}} or {{shortcut_2}} to finish cropping\"\n },\n \"canvasError\": {\n \"cannotShowPreview\": \"Cannot show preview\",\n \"canvasTooBig\": \"The canvas may be too big.\",\n \"canvasTooBigTip\": \"Tip: try moving the farthest elements a bit closer together.\"\n },\n \"errorSplash\": {\n \"headingMain\": \"Encountered an error. Try <button>reloading the page</button>.\",\n \"clearCanvasMessage\": \"If reloading doesn't work, try <button>clearing the canvas</button>.\",\n \"clearCanvasCaveat\": \" This will result in loss of work \",\n \"trackedToSentry\": \"The error with identifier {{eventId}} was tracked on our system.\",\n \"openIssueMessage\": \"We were very cautious not to include your scene information on the error. If your scene is not private, please consider following up on our <button>bug tracker</button>. Please include information below by copying and pasting into the GitHub issue.\",\n \"sceneContent\": \"Scene content:\"\n },\n \"shareDialog\": {\n \"or\": \"Or\"\n },\n \"roomDialog\": {\n \"desc_intro\": \"Invite people to collaborate on your drawing.\",\n \"desc_privacy\": \"Don't worry, the session is end-to-end encrypted, and fully private. Not even our server can see what you draw.\",\n \"button_startSession\": \"Start session\",\n \"button_stopSession\": \"Stop session\",\n \"desc_inProgressIntro\": \"Live-collaboration session is now in progress.\",\n \"desc_shareLink\": \"Share this link with anyone you want to collaborate with:\",\n \"desc_exitSession\": \"Stopping the session will disconnect you from the room, but you'll be able to continue working with the scene, locally. Note that this won't affect other people, and they'll still be able to collaborate on their version.\",\n \"shareTitle\": \"Join a live collaboration session on Excalidraw\"\n },\n \"errorDialog\": {\n \"title\": \"Error\"\n },\n \"progressDialog\": {\n \"title\": \"Saving\",\n \"defaultMessage\": \"Preparing to save...\"\n },\n \"exportDialog\": {\n \"disk_title\": \"Save to disk\",\n \"disk_details\": \"Export the scene data to a file from which you can import later.\",\n \"disk_button\": \"Save to file\",\n \"link_title\": \"Shareable link\",\n \"link_details\": \"Export as a read-only link.\",\n \"link_button\": \"Export to Link\",\n \"excalidrawplus_description\": \"Save the scene to your Excalidraw+ workspace.\",\n \"excalidrawplus_button\": \"Export\",\n \"excalidrawplus_exportError\": \"Couldn't export to Excalidraw+ at this moment...\"\n },\n \"helpDialog\": {\n \"myoc\": {\n \"showingAll\": \"Showing all controls\",\n \"showingBasic\": \"Showing basic controls\"\n },\n \"blog\": \"Read our blog\",\n \"click\": \"click\",\n \"deepSelect\": \"Deep select\",\n \"deepBoxSelect\": \"Deep select within box, and prevent dragging\",\n \"createFlowchart\": \"Create a flowchart from a generic element\",\n \"navigateFlowchart\": \"Navigate a flowchart\",\n \"curvedArrow\": \"Curved arrow\",\n \"curvedLine\": \"Curved line\",\n \"documentation\": \"Documentation\",\n \"doubleClick\": \"double-click\",\n \"drag\": \"drag\",\n \"editor\": \"Editor\",\n \"editLineArrowPoints\": \"Edit line/arrow points\",\n \"editText\": \"Edit text / add label\",\n \"github\": \"Found an issue? Submit\",\n \"howto\": \"Follow our guides\",\n \"or\": \"or\",\n \"preventBinding\": \"Prevent arrow binding\",\n \"tools\": \"Tools\",\n \"shortcuts\": \"Keyboard shortcuts\",\n \"textFinish\": \"Finish editing (text editor)\",\n \"textNewLine\": \"Add new line (text editor)\",\n \"title\": \"Help\",\n \"view\": \"View\",\n \"smartZoom\": \"Smart Zoom (Fit selection or all elements if none selected)\",\n \"dragToZoom\": \"Drag to zoom\",\n \"zoomToFit\": \"Zoom to fit all elements\",\n \"zoomToSelection\": \"Zoom to selection\",\n \"toggleElementLock\": \"Lock/unlock selection\",\n \"movePageUpDown\": \"Move page up/down\",\n \"movePageLeftRight\": \"Move page left/right\",\n \"cropStart\": \"Crop image\",\n \"cropFinish\": \"Finish image cropping\"\n },\n \"clearCanvasDialog\": {\n \"title\": \"Clear canvas\"\n },\n \"imageExportDialog\": {\n \"header\": \"Export image\",\n \"label\": {\n \"withBackground\": \"Background\",\n \"onlySelected\": \"Only selected\",\n \"darkMode\": \"Dark mode\",\n \"embedScene\": \"Embed scene\",\n \"scale\": \"Scale\",\n \"padding\": \"Padding\"\n },\n \"tooltip\": {\n \"embedScene\": \"Scene data will be saved into the exported PNG/SVG file so that the scene can be restored from it.\\nWill increase exported file size.\"\n },\n \"title\": {\n \"exportToPng\": \"Export to PNG\",\n \"exportToSvg\": \"Export to SVG\",\n \"copyPngToClipboard\": \"Copy PNG to clipboard\"\n },\n \"button\": {\n \"exportToPng\": \"PNG\",\n \"exportToSvg\": \"SVG\",\n \"copyPngToClipboard\": \"Copy to clipboard\"\n }\n },\n \"encrypted\": {\n \"tooltip\": \"Your drawings are end-to-end encrypted so Excalidraw's servers will never see them.\",\n \"link\": \"Blog post on end-to-end encryption in Excalidraw\"\n },\n \"stats\": {\n \"angle\": \"Angle\",\n \"shapes\": \"Shapes\",\n \"height\": \"Height\",\n \"scene\": \"Scene\",\n \"selected\": \"Selected\",\n \"storage\": \"Storage\",\n \"fullTitle\": \"Canvas & Shape properties\",\n \"title\": \"Properties\",\n \"generalStats\": \"General\",\n \"elementProperties\": \"Shape properties\",\n \"total\": \"Total\",\n \"version\": \"Version\",\n \"versionCopy\": \"Click to copy\",\n \"versionNotAvailable\": \"Version not available\",\n \"width\": \"Width\"\n },\n \"toast\": {\n \"copyStyles\": \"Copied styles.\",\n \"copyToClipboard\": \"Copied to clipboard.\",\n \"copyToClipboardAsPng\": \"Copied {{exportSelection}} to clipboard as PNG\\n({{exportColorScheme}})\",\n \"copyToClipboardAsSvg\": \"Copied {{exportSelection}} to clipboard as SVG\\n({{exportColorScheme}})\",\n \"fileSaved\": \"File saved.\",\n \"fileSavedToFilename\": \"Saved to {filename}\",\n \"canvas\": \"canvas\",\n \"selection\": \"selection\",\n \"pasteAsSingleElement\": \"Use {{shortcut}} to paste as a single element,\\nor paste into an existing text editor\",\n \"unableToEmbed\": \"Embedding this url is currently not allowed. Raise an issue on GitHub to request the url whitelisted\",\n \"unrecognizedLinkFormat\": \"The link you embedded does not match the expected format. Please try to paste the 'embed' string provided by the source site\",\n \"elementLinkCopied\": \"Link copied to clipboard\"\n },\n \"colors\": {\n \"transparent\": \"Transparent\",\n \"black\": \"Black\",\n \"white\": \"White\",\n \"red\": \"Red\",\n \"pink\": \"Pink\",\n \"grape\": \"Grape\",\n \"violet\": \"Violet\",\n \"gray\": \"Gray\",\n \"blue\": \"Blue\",\n \"cyan\": \"Cyan\",\n \"teal\": \"Teal\",\n \"green\": \"Green\",\n \"yellow\": \"Yellow\",\n \"orange\": \"Orange\",\n \"bronze\": \"Bronze\"\n },\n \"welcomeScreen\": {\n \"app\": {\n \"center_heading\": \"Your drawings are saved in your browser's storage.\",\n \"center_heading_line2\": \"Browser storage can be cleared unexpectedly.\",\n \"center_heading_line3\": \"Save your work to a file regularly to avoid losing it.\",\n \"center_heading_plus\": \"Did you want to go to the Excalidraw+ instead?\",\n \"menuHint\": \"Export, preferences, languages, ...\"\n },\n \"defaults\": {\n \"menuHint\": \"Export, preferences, and more...\",\n \"center_heading\": \"Diagrams. Made. Simple.\",\n \"toolbarHint\": \"Pick a tool & Start drawing!\",\n \"helpHint\": \"Shortcuts & help\"\n }\n },\n \"colorPicker\": {\n \"color\": \"Color\",\n \"mostUsedCustomColors\": \"Most used custom colors\",\n \"colors\": \"Colors\",\n \"shades\": \"Shades\",\n \"hexCode\": \"Hex code\",\n \"noShades\": \"No shades available for this color\",\n \"invalidColor\": \"Not a valid color\",\n \"invalidHexLength\": \"Hex code must be 3, 4, 6, or 8 characters\",\n \"topPicksTip\": \"Tip: drag any color onto your top picks to pin it\",\n \"resetTopPicks\": \"Reset to default top picks\"\n },\n \"overwriteConfirm\": {\n \"action\": {\n \"exportToImage\": {\n \"title\": \"Export as image\",\n \"button\": \"Export as image\",\n \"description\": \"Export the scene data as an image from which you can import later.\"\n },\n \"saveToDisk\": {\n \"title\": \"Save to disk\",\n \"button\": \"Save to disk\",\n \"description\": \"Export the scene data to a file from which you can import later.\"\n },\n \"excalidrawPlus\": {\n \"title\": \"Excalidraw+\",\n \"button\": \"Export to Excalidraw+\",\n \"description\": \"Save the scene to your Excalidraw+ workspace.\"\n }\n },\n \"modal\": {\n \"loadFromFile\": {\n \"title\": \"Load from file\",\n \"button\": \"Load from file\",\n \"description\": \"Loading from a file will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first using one of the options below.\"\n },\n \"shareableLink\": {\n \"title\": \"Load from link\",\n \"button\": \"Replace my content\",\n \"description\": \"Loading external drawing will <bold>replace your existing content</bold>.<br></br>You can back up your drawing first by using one of the options below.\"\n }\n }\n },\n \"quickSearch\": {\n \"placeholder\": \"Quick search\"\n },\n \"fontWeight\": {\n \"thin\": \"Thin\",\n \"extraLight\": \"Extra Light\",\n \"light\": \"Light\",\n \"regular\": \"Regular\",\n \"medium\": \"Medium\",\n \"semiBold\": \"Semi Bold\",\n \"bold\": \"Bold\",\n \"extraBold\": \"Extra Bold\",\n \"black\": \"Black\",\n \"more\": \"More weights\u2026\"\n },\n \"fontList\": {\n \"badge\": {\n \"old\": \"old\"\n },\n \"sceneFonts\": \"In this scene\",\n \"myFonts\": \"My fonts\",\n \"availableFonts\": \"Available fonts\",\n \"builtInFonts\": \"Built-in\",\n \"empty\": \"No fonts found\",\n \"browse\": \"Browse Google Fonts\u2026\",\n \"emptyLibrary\": \"Your font library is empty. Browse Google Fonts to add some.\",\n \"addToLibrary\": \"Add to library\",\n \"addToLibraryLocked\": \"Add to library (upgrade required)\",\n \"upgradeToUse\": \"Upgrade your plan to use Google fonts\"\n },\n \"userList\": {\n \"empty\": \"No users found\",\n \"hint\": {\n \"text\": \"Click on user to follow\",\n \"followStatus\": \"You're currently following this user\",\n \"inCall\": \"User is in a voice call\",\n \"micMuted\": \"User's microphone is muted\",\n \"isSpeaking\": \"User is speaking\"\n }\n },\n \"keys\": {\n \"ctrl\": \"Ctrl\",\n \"option\": \"Option\",\n \"cmd\": \"Cmd\",\n \"alt\": \"Alt\",\n \"escape\": \"Esc\",\n \"enter\": \"Enter\",\n \"shift\": \"Shift\",\n \"spacebar\": \"Space\",\n \"delete\": \"Delete\",\n \"mmb\": \"Scroll wheel\"\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -4027,6 +4027,40 @@ var woff2_loader_default = () => {
|
|
|
4027
4027
|
return loadedWasm2;
|
|
4028
4028
|
};
|
|
4029
4029
|
|
|
4030
|
+
// subset/woff2/fontMetrics.ts
|
|
4031
|
+
var parseSfntFontMetrics = (sfnt) => {
|
|
4032
|
+
const view = new DataView(sfnt.buffer, sfnt.byteOffset, sfnt.byteLength);
|
|
4033
|
+
const tableCount = view.getUint16(4);
|
|
4034
|
+
const tables = /* @__PURE__ */ new Map();
|
|
4035
|
+
for (let index = 0; index < tableCount; index++) {
|
|
4036
|
+
const offset = 12 + index * 16;
|
|
4037
|
+
const tag = String.fromCharCode(
|
|
4038
|
+
view.getUint8(offset),
|
|
4039
|
+
view.getUint8(offset + 1),
|
|
4040
|
+
view.getUint8(offset + 2),
|
|
4041
|
+
view.getUint8(offset + 3)
|
|
4042
|
+
);
|
|
4043
|
+
tables.set(tag, {
|
|
4044
|
+
offset: view.getUint32(offset + 8),
|
|
4045
|
+
length: view.getUint32(offset + 12)
|
|
4046
|
+
});
|
|
4047
|
+
}
|
|
4048
|
+
const head = tables.get("head");
|
|
4049
|
+
const hhea = tables.get("hhea");
|
|
4050
|
+
if (!head || !hhea || head.length < 20 || hhea.length < 10) {
|
|
4051
|
+
throw new Error("Font is missing OpenType head or hhea metrics");
|
|
4052
|
+
}
|
|
4053
|
+
const unitsPerEm = view.getUint16(head.offset + 18);
|
|
4054
|
+
const ascender = view.getInt16(hhea.offset + 4);
|
|
4055
|
+
const descender = view.getInt16(hhea.offset + 6);
|
|
4056
|
+
const lineGap = view.getInt16(hhea.offset + 8);
|
|
4057
|
+
const lineHeight = (ascender - descender + lineGap) / unitsPerEm;
|
|
4058
|
+
if (!unitsPerEm || !Number.isFinite(lineHeight) || lineHeight <= 0 || !ascender) {
|
|
4059
|
+
throw new Error("Font contains invalid OpenType metrics");
|
|
4060
|
+
}
|
|
4061
|
+
return { unitsPerEm, ascender, descender, lineGap, lineHeight };
|
|
4062
|
+
};
|
|
4063
|
+
|
|
4030
4064
|
// subset/subset-shared.chunk.ts
|
|
4031
4065
|
var Commands = {
|
|
4032
4066
|
Subset: "SUBSET"
|
|
@@ -4048,6 +4082,11 @@ var subsetToBinary = async (arrayBuffer, codePoints) => {
|
|
|
4048
4082
|
const compressedBinary = compress(snftSubset.buffer);
|
|
4049
4083
|
return compressedBinary.buffer;
|
|
4050
4084
|
};
|
|
4085
|
+
var getWoff2FontMetrics = async (arrayBuffer) => {
|
|
4086
|
+
const { decompress } = await woff2_loader_default();
|
|
4087
|
+
const sfnt = decompress(arrayBuffer);
|
|
4088
|
+
return parseSfntFontMetrics(sfnt);
|
|
4089
|
+
};
|
|
4051
4090
|
var toBase64 = async (arrayBuffer) => {
|
|
4052
4091
|
let base64;
|
|
4053
4092
|
if (typeof Buffer !== "undefined") {
|
|
@@ -4063,6 +4102,7 @@ export {
|
|
|
4063
4102
|
Commands,
|
|
4064
4103
|
subsetToBase64,
|
|
4065
4104
|
subsetToBinary,
|
|
4105
|
+
getWoff2FontMetrics,
|
|
4066
4106
|
toBase64
|
|
4067
4107
|
};
|
|
4068
4108
|
/**
|
|
@@ -4129,4 +4169,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
4129
4169
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
4130
4170
|
SOFTWARE.
|
|
4131
4171
|
*/
|
|
4132
|
-
//# sourceMappingURL=chunk-
|
|
4172
|
+
//# sourceMappingURL=chunk-ETORD5CS.js.map
|