@mocanvas/mocanvas 1.0.0 → 4.0.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.
@@ -0,0 +1,4 @@
1
+ export { DefaultKeyboardShortcutsDialog, DefaultKeyboardShortcutsDialogContent, KeyboardShortcutsDialogContents } from './chunk-QDUQZXE4.js';
2
+ import './chunk-OMUOD53T.js';
3
+ //# sourceMappingURL=panel-shortcuts-R2PDTDUN.js.map
4
+ //# sourceMappingURL=panel-shortcuts-R2PDTDUN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"panel-shortcuts-R2PDTDUN.js"}
@@ -548,3 +548,388 @@
548
548
  display: inline-flex;
549
549
  flex: 0 0 auto;
550
550
  }
551
+
552
+ /* ==========================================================================
553
+ * The tldraw-shaped UI layer
554
+ * --------------------------------------------------------------------------
555
+ * Everything below styles the components in `ui-*.tsx`, `menu-items.tsx` and
556
+ * `panel-*.tsx`. They use the same custom properties as the panels above, so
557
+ * a host that has restyled the editor by setting `--mocanvas-ui-*` on the
558
+ * container gets these for free.
559
+ * ========================================================================== */
560
+
561
+ /* --- screen-reader-only text -------------------------------------------- */
562
+
563
+ .sr-only {
564
+ position: absolute;
565
+ width: 1px;
566
+ height: 1px;
567
+ margin: -1px;
568
+ padding: 0;
569
+ overflow: hidden;
570
+ clip: rect(0 0 0 0);
571
+ white-space: nowrap;
572
+ border: 0;
573
+ }
574
+
575
+ /* --- menus --------------------------------------------------------------- */
576
+
577
+ .mocanvas-menu {
578
+ position: fixed;
579
+ z-index: 400;
580
+ min-width: 180px;
581
+ max-height: 80vh;
582
+ overflow-y: auto;
583
+ padding: var(--mocanvas-ui-pad);
584
+ background: var(--mocanvas-ui-panel);
585
+ border: 1px solid var(--mocanvas-ui-panel-border);
586
+ border-radius: var(--mocanvas-ui-radius-sm);
587
+ box-shadow: var(--mocanvas-ui-shadow);
588
+ color: var(--mocanvas-ui-text);
589
+ font-family: var(--mocanvas-ui-font);
590
+ font-size: 13px;
591
+ }
592
+
593
+ .mocanvas-menu--icons .mocanvas-menu-icon-group {
594
+ display: grid;
595
+ grid-template-columns: repeat(3, var(--mocanvas-ui-btn));
596
+ gap: var(--mocanvas-ui-gap);
597
+ }
598
+
599
+ .mocanvas-menu-group + .mocanvas-menu-group {
600
+ margin-top: var(--mocanvas-ui-pad);
601
+ padding-top: var(--mocanvas-ui-pad);
602
+ border-top: 1px solid var(--mocanvas-ui-panel-border);
603
+ }
604
+
605
+ .mocanvas-menu-item {
606
+ display: flex;
607
+ align-items: center;
608
+ gap: 8px;
609
+ width: 100%;
610
+ min-height: 32px;
611
+ padding: 0 8px;
612
+ background: none;
613
+ border: 0;
614
+ border-radius: var(--mocanvas-ui-radius-sm);
615
+ color: inherit;
616
+ font: inherit;
617
+ text-align: start;
618
+ cursor: pointer;
619
+ }
620
+
621
+ .mocanvas-menu-item:hover:not(:disabled) {
622
+ background: var(--mocanvas-ui-hover);
623
+ }
624
+
625
+ .mocanvas-menu-item:focus-visible {
626
+ outline: 2px solid var(--mocanvas-ui-accent);
627
+ outline-offset: -2px;
628
+ }
629
+
630
+ .mocanvas-menu-item:disabled {
631
+ opacity: 0.4;
632
+ cursor: default;
633
+ }
634
+
635
+ .mocanvas-menu-item-label {
636
+ flex: 1 1 auto;
637
+ }
638
+
639
+ .mocanvas-menu-item-note,
640
+ .mocanvas-shortcut-label {
641
+ color: var(--mocanvas-ui-muted);
642
+ }
643
+
644
+ .mocanvas-menu-item--sub::after {
645
+ content: "";
646
+ }
647
+
648
+ /* --- keyboard shortcuts -------------------------------------------------- */
649
+
650
+ .mocanvas-kbd {
651
+ display: inline-flex;
652
+ gap: 2px;
653
+ color: var(--mocanvas-ui-muted);
654
+ }
655
+
656
+ .mocanvas-kbd kbd {
657
+ min-width: 16px;
658
+ padding: 1px 4px;
659
+ background: var(--mocanvas-ui-control);
660
+ border-radius: 4px;
661
+ font: inherit;
662
+ font-size: 11px;
663
+ text-align: center;
664
+ }
665
+
666
+ .mocanvas-shortcut-row {
667
+ display: flex;
668
+ align-items: center;
669
+ justify-content: space-between;
670
+ gap: 16px;
671
+ min-height: 26px;
672
+ }
673
+
674
+ .mocanvas-shortcuts {
675
+ display: grid;
676
+ grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
677
+ gap: 16px;
678
+ }
679
+
680
+ .mocanvas-shortcut-section h3 {
681
+ margin: 0 0 6px;
682
+ font-size: 12px;
683
+ text-transform: uppercase;
684
+ letter-spacing: 0.4px;
685
+ color: var(--mocanvas-ui-muted);
686
+ }
687
+
688
+ /* --- dialogs ------------------------------------------------------------- */
689
+
690
+ .mocanvas-dialog-backdrop {
691
+ position: absolute;
692
+ inset: 0;
693
+ z-index: 500;
694
+ display: grid;
695
+ place-items: center;
696
+ background: rgba(15, 18, 25, 0.35);
697
+ }
698
+
699
+ .mocanvas-dialog {
700
+ position: relative;
701
+ max-width: min(560px, calc(100% - 32px));
702
+ max-height: calc(100% - 32px);
703
+ overflow: hidden;
704
+ display: flex;
705
+ flex-direction: column;
706
+ align-items: stretch;
707
+ padding: 0;
708
+ }
709
+
710
+ .mocanvas-dialog-header {
711
+ display: flex;
712
+ align-items: center;
713
+ justify-content: space-between;
714
+ gap: 8px;
715
+ padding: 12px 12px 8px;
716
+ }
717
+
718
+ .mocanvas-dialog-title {
719
+ margin: 0;
720
+ font-size: 15px;
721
+ font-weight: 600;
722
+ }
723
+
724
+ .mocanvas-dialog-body {
725
+ overflow-y: auto;
726
+ padding: 0 12px 12px;
727
+ }
728
+
729
+ .mocanvas-dialog-footer {
730
+ display: flex;
731
+ align-items: center;
732
+ justify-content: flex-end;
733
+ gap: 8px;
734
+ padding: 8px 12px 12px;
735
+ }
736
+
737
+ .mocanvas-dialog-checkbox {
738
+ margin-inline-end: auto;
739
+ display: inline-flex;
740
+ align-items: center;
741
+ gap: 6px;
742
+ color: var(--mocanvas-ui-muted);
743
+ }
744
+
745
+ /* --- toasts -------------------------------------------------------------- */
746
+
747
+ .mocanvas-toasts {
748
+ position: absolute;
749
+ right: var(--mocanvas-ui-inset);
750
+ bottom: var(--mocanvas-ui-inset);
751
+ z-index: 450;
752
+ display: flex;
753
+ flex-direction: column;
754
+ gap: 8px;
755
+ max-width: min(360px, calc(100% - 2 * var(--mocanvas-ui-inset)));
756
+ }
757
+
758
+ .mocanvas-toast {
759
+ position: relative;
760
+ gap: 8px;
761
+ padding: 10px;
762
+ }
763
+
764
+ .mocanvas-toast-body {
765
+ display: flex;
766
+ flex-direction: column;
767
+ gap: 2px;
768
+ flex: 1 1 auto;
769
+ }
770
+
771
+ .mocanvas-toast-desc {
772
+ color: var(--mocanvas-ui-muted);
773
+ }
774
+
775
+ /* --- inputs and sliders --------------------------------------------------- */
776
+
777
+ .mocanvas-input {
778
+ display: flex;
779
+ align-items: center;
780
+ gap: 6px;
781
+ padding: 0 6px;
782
+ background: var(--mocanvas-ui-control);
783
+ border-radius: var(--mocanvas-ui-radius-sm);
784
+ }
785
+
786
+ .mocanvas-input input,
787
+ .mocanvas-textarea {
788
+ flex: 1 1 auto;
789
+ min-width: 0;
790
+ height: 30px;
791
+ background: none;
792
+ border: 0;
793
+ color: inherit;
794
+ font: inherit;
795
+ }
796
+
797
+ .mocanvas-input input:focus-visible,
798
+ .mocanvas-textarea:focus-visible {
799
+ outline: 2px solid var(--mocanvas-ui-accent);
800
+ outline-offset: 1px;
801
+ }
802
+
803
+ /* --- panels --------------------------------------------------------------- */
804
+
805
+ .mocanvas-menu-panel {
806
+ left: var(--mocanvas-ui-inset);
807
+ top: var(--mocanvas-ui-inset);
808
+ }
809
+
810
+ .mocanvas-navigation-panel {
811
+ left: var(--mocanvas-ui-inset);
812
+ bottom: var(--mocanvas-ui-inset);
813
+ flex-direction: column;
814
+ align-items: stretch;
815
+ min-width: 140px;
816
+ }
817
+
818
+ .mocanvas-navigation-row {
819
+ display: flex;
820
+ align-items: center;
821
+ gap: var(--mocanvas-ui-gap);
822
+ }
823
+
824
+ .mocanvas-share-panel {
825
+ right: var(--mocanvas-ui-inset);
826
+ top: var(--mocanvas-ui-inset);
827
+ }
828
+
829
+ .mocanvas-quick-actions,
830
+ .mocanvas-helper-buttons {
831
+ position: absolute;
832
+ left: 50%;
833
+ bottom: calc(2 * var(--mocanvas-ui-inset) + var(--mocanvas-ui-btn));
834
+ transform: translateX(-50%);
835
+ display: flex;
836
+ gap: var(--mocanvas-ui-gap);
837
+ z-index: 10;
838
+ }
839
+
840
+ .mocanvas-contextual-toolbar .mocanvas-toolbar {
841
+ position: relative;
842
+ inset: auto;
843
+ margin: 0;
844
+ max-width: none;
845
+ }
846
+
847
+ .mocanvas-following-indicator {
848
+ position: absolute;
849
+ inset: 0;
850
+ z-index: 5;
851
+ pointer-events: none;
852
+ border: 3px solid var(--mocanvas-selection);
853
+ border-radius: 4px;
854
+ }
855
+
856
+ .mocanvas-following-indicator > * {
857
+ pointer-events: auto;
858
+ }
859
+
860
+ .mocanvas-offline {
861
+ left: 50%;
862
+ top: var(--mocanvas-ui-inset);
863
+ transform: translateX(-50%);
864
+ padding: 4px 10px;
865
+ }
866
+
867
+ /* --- pickers -------------------------------------------------------------- */
868
+
869
+ .mocanvas-style-row + .mocanvas-style-row {
870
+ margin-top: var(--mocanvas-ui-pad-lg);
871
+ }
872
+
873
+ .mocanvas-popover-grid {
874
+ display: grid;
875
+ grid-template-columns: repeat(var(--mocanvas-popover-cols, 5), var(--mocanvas-ui-btn));
876
+ gap: var(--mocanvas-ui-gap);
877
+ }
878
+
879
+ .mocanvas-select-value {
880
+ overflow: hidden;
881
+ text-overflow: ellipsis;
882
+ white-space: nowrap;
883
+ }
884
+
885
+ /* --- people --------------------------------------------------------------- */
886
+
887
+ .mocanvas-people-list,
888
+ .mocanvas-page-list {
889
+ display: flex;
890
+ flex-direction: column;
891
+ }
892
+
893
+ .mocanvas-page-row {
894
+ display: flex;
895
+ align-items: center;
896
+ gap: 4px;
897
+ }
898
+
899
+ .mocanvas-presence-editor {
900
+ display: flex;
901
+ align-items: center;
902
+ gap: 6px;
903
+ padding-bottom: var(--mocanvas-ui-pad);
904
+ border-bottom: 1px solid var(--mocanvas-ui-panel-border);
905
+ }
906
+
907
+ .mocanvas-face-pile-more {
908
+ align-self: center;
909
+ margin-left: 4px;
910
+ color: var(--mocanvas-ui-muted);
911
+ }
912
+
913
+ /* --- debug ---------------------------------------------------------------- */
914
+
915
+ .mocanvas-debug-flags {
916
+ display: flex;
917
+ flex-direction: column;
918
+ gap: 2px;
919
+ font-family: var(--mocanvas-ui-mono);
920
+ font-size: 11px;
921
+ }
922
+
923
+ .mocanvas-debug-flag {
924
+ display: flex;
925
+ align-items: center;
926
+ gap: 6px;
927
+ }
928
+
929
+ /* --- images --------------------------------------------------------------- */
930
+
931
+ .mocanvas-image,
932
+ .mocanvas-image > svg {
933
+ max-width: 100%;
934
+ height: auto;
935
+ }
@@ -0,0 +1,4 @@
1
+ export { BOOKMARK_UNFURL_FAILED, createBookmarkShape, createEmbedShape, defaultHandleExternalUrlContent } from './chunk-TWCVRVK2.js';
2
+ import './chunk-OCYJAMXT.js';
3
+ //# sourceMappingURL=urlContent-GC44EU52.js.map
4
+ //# sourceMappingURL=urlContent-GC44EU52.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"urlContent-GC44EU52.js"}
package/package.json CHANGED
@@ -1,18 +1,9 @@
1
1
  {
2
2
  "name": "@mocanvas/mocanvas",
3
- "version": "1.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "An infinite-canvas SDK for the web: React component, default shapes, tools and UI, on a Rust/WebAssembly engine.",
5
- "license": "MIT",
5
+ "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Symbio Digital",
7
- "homepage": "https://github.com/SYMBIO/mocanvas/tree/main/packages/mocanvas#readme",
8
- "repository": {
9
- "type": "git",
10
- "url": "git+https://github.com/SYMBIO/mocanvas.git",
11
- "directory": "packages/mocanvas"
12
- },
13
- "bugs": {
14
- "url": "https://github.com/SYMBIO/mocanvas/issues"
15
- },
16
7
  "keywords": [
17
8
  "canvas",
18
9
  "infinite-canvas",
@@ -30,12 +21,19 @@
30
21
  ],
31
22
  "type": "module",
32
23
  "engines": {
33
- "node": ">=20"
24
+ "node": ">=22.12.0"
34
25
  },
35
26
  "files": [
36
27
  "dist",
37
28
  "README.md",
38
- "LICENSE"
29
+ "LICENSE",
30
+ "ARCHITECTURE.md",
31
+ "BENCHMARK.md",
32
+ "CLEAN_ROOM.md",
33
+ "COMPAT.md",
34
+ "CUSTOM_SHAPES.md",
35
+ "MIGRATION.md",
36
+ "UI.md"
39
37
  ],
40
38
  "sideEffects": [
41
39
  "*.css",
@@ -55,9 +53,12 @@
55
53
  "access": "public"
56
54
  },
57
55
  "dependencies": {
58
- "@mocanvas/editor": "1.0.0",
59
- "@mocanvas/store": "1.0.0",
60
- "@mocanvas/state": "1.0.0"
56
+ "@tiptap/core": "^3.0.0",
57
+ "@tiptap/pm": "^3.0.0",
58
+ "@tiptap/starter-kit": "^3.0.0",
59
+ "@mocanvas/editor": "4.0.0",
60
+ "@mocanvas/store": "4.0.0",
61
+ "@mocanvas/state": "4.0.0"
61
62
  },
62
63
  "devDependencies": {
63
64
  "@types/react": "^19.1.0",