@bagelink/vue 0.0.400 → 0.0.402

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.
@@ -23,10 +23,20 @@ export interface ModalFormOptions {
23
23
  modelValue?: Record<string, any>;
24
24
  'onUpdate:modelValue'?: (val: any) => void;
25
25
  }
26
+ export type ModalConfirmOptions = {
27
+ title?: string;
28
+ message?: string;
29
+ resolve: (val: boolean) => void;
30
+ };
31
+ type ModalType = 'modal' | 'modalForm' | 'confirm';
32
+ type ConfirmModalUserOptions = string | {
33
+ title: string;
34
+ message: string;
35
+ };
26
36
  export interface ModalComponentProps {
27
37
  componentSlots: Record<string, any>;
28
- modalType: 'modal' | 'modalForm';
29
- modalOptions: ModalOptions | ModalFormOptions;
38
+ modalType: ModalType;
39
+ modalOptions: ModalOptions | ModalFormOptions | ModalConfirmOptions;
30
40
  }
31
41
  export interface ModalFormComponentProps {
32
42
  componentSlots: Record<string, any>;
@@ -37,8 +47,10 @@ export interface ModalApi {
37
47
  showModal: (options: ModalOptions, slots?: Record<string, any>) => void;
38
48
  showModalForm: (options: ModalFormOptions, slots?: Record<string, any>) => ModalFormComponentProps | undefined;
39
49
  hideModal: (index?: number) => void;
50
+ confirm: (options: ConfirmModalUserOptions) => Promise<boolean>;
40
51
  }
41
52
  export declare const ModalSymbol: InjectionKey<ModalApi>;
42
53
  export declare const useModal: () => ModalApi;
43
54
  export declare const ModalPlugin: Plugin;
55
+ export {};
44
56
  //# sourceMappingURL=modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/plugins/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACf,MAAM,KAAK,CAAC;AACb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhE,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,GAAG,cAAc,CAAA;IACrE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,mBAAmB;IACnC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,GAAG,WAAW,CAAC;IACjC,YAAY,EAAE,YAAY,GAAG,gBAAgB,CAAA;CAC7C;AACD,MAAM,WAAW,uBAAuB;IACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,SAAS,EAAE,WAAW,CAAC;IACvB,YAAY,EAAE,gBAAgB,CAAA;CAC9B;AACD,MAAM,WAAW,QAAQ;IACxB,SAAS,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACxE,aAAa,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,uBAAuB,GAAG,SAAS,CAAC;IAC/G,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,QAAQ,CAAmB,CAAC;AAEnE,eAAO,MAAM,QAAQ,QAAO,QAI3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAyCzB,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/plugins/modal.ts"],"names":[],"mappings":"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"}
package/dist/style.css CHANGED
@@ -525,11 +525,11 @@ a[data-v-d09a83c5] {
525
525
  gap: 0;
526
526
  }
527
527
 
528
- .modal-title[data-v-204f5236] {
528
+ .modal-title[data-v-04d84995] {
529
529
  margin-top: 0.5rem;
530
530
  }
531
531
  @media screen and (max-width: 910px) {
532
- .modal-title[data-v-204f5236] {
532
+ .modal-title[data-v-04d84995] {
533
533
  margin-top: 1rem;
534
534
  }
535
535
  }
@@ -896,15 +896,17 @@ display: block;
896
896
  color: var(--bgl-red);
897
897
  }
898
898
 
899
- .bgl_vid iframe[data-v-bbfc4353],
900
- .bgl_vid video[data-v-bbfc4353] {
899
+ .bgl_vid iframe[data-v-b1ad7c32],
900
+ .bgl_vid video[data-v-b1ad7c32] {
901
901
  width: 100%;
902
902
  height: auto;
903
903
  display: block;
904
+ border-radius: var(--input-border-radius);
904
905
  }
905
- .bgl_vid.vid_empty[data-v-bbfc4353] {
906
+ .bgl_vid.vid_empty[data-v-b1ad7c32] {
906
907
  padding-top: 56.25%;
907
- background: #f0f0f0;
908
+ background: var(--input-bg);
909
+ border-radius: var(--input-border-radius);
908
910
  }
909
911
 
910
912
  .blocker[data-v-068aa914] {
@@ -1066,10 +1068,10 @@ display: block;
1066
1068
  }
1067
1069
  .resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}.v-popper__popper{z-index:10000;top:0;left:0;outline:none}.v-popper__popper.v-popper__popper--hidden{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s;pointer-events:none}.v-popper__popper.v-popper__popper--shown{visibility:visible;opacity:1;transition:opacity .15s}.v-popper__popper.v-popper__popper--skip-transition,.v-popper__popper.v-popper__popper--skip-transition>.v-popper__wrapper{transition:none!important}.v-popper__backdrop{position:absolute;top:0;left:0;width:100%;height:100%;display:none}.v-popper__inner{position:relative;box-sizing:border-box;overflow-y:auto}.v-popper__inner>div{position:relative;z-index:1;max-width:inherit;max-height:inherit}.v-popper__arrow-container{position:absolute;width:10px;height:10px}.v-popper__popper--arrow-overflow .v-popper__arrow-container,.v-popper__popper--no-positioning .v-popper__arrow-container{display:none}.v-popper__arrow-inner,.v-popper__arrow-outer{border-style:solid;position:absolute;top:0;left:0;width:0;height:0}.v-popper__arrow-inner{visibility:hidden;border-width:7px}.v-popper__arrow-outer{border-width:6px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{left:-2px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{left:-1px}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-outer{border-bottom-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=top] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-container{top:0}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{border-top-width:0;border-left-color:transparent!important;border-right-color:transparent!important;border-top-color:transparent!important}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-inner{top:-4px}.v-popper__popper[data-popper-placement^=bottom] .v-popper__arrow-outer{top:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{top:-2px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{top:-1px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{border-left-width:0;border-left-color:transparent!important;border-top-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-inner{left:-4px}.v-popper__popper[data-popper-placement^=right] .v-popper__arrow-outer{left:-6px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-container{right:-10px}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner,.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-outer{border-right-width:0;border-top-color:transparent!important;border-right-color:transparent!important;border-bottom-color:transparent!important}.v-popper__popper[data-popper-placement^=left] .v-popper__arrow-inner{left:-2px}.v-popper--theme-tooltip .v-popper__inner{background:rgba(0,0,0,.8);color:#fff;border-radius:6px;padding:7px 12px 6px}.v-popper--theme-tooltip .v-popper__arrow-outer{border-color:#000c}.v-popper--theme-dropdown .v-popper__inner{background:#fff;color:#000;border-radius:6px;border:1px solid #ddd;box-shadow:0 6px 30px #0000001a}.v-popper--theme-dropdown .v-popper__arrow-inner{visibility:visible;border-color:#fff}.v-popper--theme-dropdown .v-popper__arrow-outer{border-color:#ddd}
1068
1070
 
1069
- .selectinput[data-v-3e27cf1d] {
1071
+ .selectinput[data-v-fdfda40b] {
1070
1072
  width: 100%;
1071
1073
  }
1072
- .selectinput-option[data-v-3e27cf1d] {
1074
+ .selectinput-option[data-v-fdfda40b] {
1073
1075
  padding: 6px 12px;
1074
1076
  cursor: pointer;
1075
1077
  border-radius: 5px;
@@ -1080,14 +1082,14 @@ display: block;
1080
1082
  width: 100%;
1081
1083
  font-size: var(--input-font-size);
1082
1084
  }
1083
- .selectinput-options[data-v-3e27cf1d] {
1085
+ .selectinput-options[data-v-fdfda40b] {
1084
1086
  max-height: 300px;
1085
1087
  overflow-y: auto;
1086
1088
  }
1087
- .selectinput-option[data-v-3e27cf1d]:hover {
1089
+ .selectinput-option[data-v-fdfda40b]:hover {
1088
1090
  background: var(--bgl-gray-20);
1089
1091
  }
1090
- .isEmpty p[data-v-3e27cf1d] {
1092
+ .isEmpty p[data-v-fdfda40b] {
1091
1093
  opacity: 0.3;
1092
1094
  }
1093
1095
 
@@ -1674,25 +1676,20 @@ img.preview[data-v-0dbacaa0] {
1674
1676
  .tiptap h1,
1675
1677
  .tiptap h2 {
1676
1678
  line-height: 1;
1677
- margin-top: 0;
1678
1679
  }
1679
1680
  .tiptap h3,
1680
1681
  .tiptap h4,
1681
1682
  .tiptap h5,
1682
1683
  .tiptap h6 {
1683
1684
  line-height: 1.1;
1684
- margin-top: 0;
1685
- }
1686
- .tiptap code {
1687
- background-color: rgba(97, 97, 97, 0.1);
1688
- color: #616161;
1689
1685
  }
1690
1686
  .tiptap pre {
1691
1687
  background: #0d0d0d;
1692
- color: #fff;
1688
+ color: var(--bgl-white);
1693
1689
  font-family: 'JetBrainsMono', monospace;
1694
1690
  padding: 0.75rem 1rem;
1695
1691
  border-radius: 0.5rem;
1692
+ margin: 0;
1696
1693
  }
1697
1694
  .tiptap pre code {
1698
1695
  color: inherit;
@@ -1705,12 +1702,13 @@ img.preview[data-v-0dbacaa0] {
1705
1702
  height: auto;
1706
1703
  }
1707
1704
  .tiptap blockquote {
1708
- padding-left: 1rem;
1709
- border-left: 2px solid rgba(13, 13, 13, 0.1);
1705
+ padding-inline-start: 0.5rem;
1706
+ border-inline-start: 2px solid var(--border-color);
1707
+ margin: 0.5rem
1710
1708
  }
1711
1709
  .tiptap hr {
1712
1710
  border: none;
1713
- border-top: 2px solid rgba(13, 13, 13, 0.1);
1711
+ border-top: 2px solid var(--border-color);
1714
1712
  margin: 1rem 0;
1715
1713
  }
1716
1714
  .tiptap {
@@ -1746,19 +1744,20 @@ table {
1746
1744
  td,
1747
1745
  th {
1748
1746
  min-width: 1em;
1749
- border: 2px solid #ced4da;
1747
+ border: 2px solid var(--border-color);
1750
1748
  padding: 3px 5px;
1751
1749
  vertical-align: top;
1752
1750
  box-sizing: border-box;
1753
1751
  position: relative;
1754
1752
  > * {
1755
1753
  margin-bottom: 0;
1754
+ margin-top: 0;
1756
1755
  }
1757
1756
  }
1758
1757
  th {
1759
1758
  font-weight: bold;
1760
- text-align: left;
1761
- background-color: #f1f3f5;
1759
+ text-align: start;
1760
+ background-color: var(--bgl-gray-80);
1762
1761
  }
1763
1762
  .selectedCell:after {
1764
1763
  z-index: 2;
@@ -1768,12 +1767,15 @@ th {
1768
1767
  right: 0;
1769
1768
  top: 0;
1770
1769
  bottom: 0;
1771
- background: rgba(200, 200, 255, 0.4);
1770
+ background: var(--bgl-gray-20);
1772
1771
  pointer-events: none;
1773
1772
  }
1773
+ .selectedCell p::selection{
1774
+ color: var(--bgl-black)
1775
+ }
1774
1776
  .column-resize-handle {
1775
1777
  position: absolute;
1776
- right: -2px;
1778
+ inset-inline-start: -2px;
1777
1779
  top: 0;
1778
1780
  bottom: -2px;
1779
1781
  width: 4px;
@@ -1793,6 +1795,28 @@ p {
1793
1795
  cursor: ew-resize;
1794
1796
  cursor: col-resize;
1795
1797
  }
1798
+ .RichText-tools [disabled]{
1799
+ color: var(--bgl-black) !important;
1800
+ opacity: 0.3;
1801
+ }
1802
+ .RichText iframe{
1803
+ width: 100%;
1804
+ max-width: 700px;
1805
+ margin: 0 auto;
1806
+ height: auto;
1807
+ display: block;
1808
+ border-radius: var(--input-border-radius);
1809
+ border: none;
1810
+ aspect-ratio: 16/9;
1811
+ }
1812
+ .RichText img{
1813
+ width: 100%;
1814
+ max-width: 700px;
1815
+ margin: 0 auto;
1816
+ height: auto;
1817
+ display: block;
1818
+ border-radius: var(--input-border-radius);
1819
+ }
1796
1820
 
1797
1821
  .chart-line {
1798
1822
  width: 100%;
@@ -3242,6 +3266,14 @@ p {
3242
3266
  height: 1px;
3243
3267
  width: 100%;
3244
3268
  }
3269
+ .ltr,
3270
+ .direction-ltr {
3271
+ direction: ltr;
3272
+ }
3273
+ .rtl,
3274
+ .direction-rtl {
3275
+ direction: rtl;
3276
+ }
3245
3277
  @media screen and (max-width: 910px) {
3246
3278
  .grid-wrap-2 {
3247
3279
  grid-template-columns: repeat(1, 1fr);
@@ -4793,6 +4825,17 @@ p {
4793
4825
  .m_overflow-y-hidden {
4794
4826
  overflow-y: hidden;
4795
4827
  }
4828
+
4829
+ .m_ltr,
4830
+ .m_direction-ltr {
4831
+ direction: ltr;
4832
+ }
4833
+
4834
+ .m_rtl,
4835
+ .m_direction-rtl {
4836
+ direction: rtl;
4837
+ }
4838
+
4796
4839
  }
4797
4840
  input,
4798
4841
  textarea,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.400",
4
+ "version": "0.0.402",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -6,7 +6,8 @@
6
6
  :style="{ aspectRatio }"
7
7
  frameborder="0"
8
8
  allowfullscreen
9
- title="Video" />
9
+ title="Video"
10
+ />
10
11
  <video
11
12
  v-else-if="src"
12
13
  :src="src"
@@ -15,7 +16,8 @@
15
16
  :loop="loop"
16
17
  :style="{ aspectRatio }"
17
18
  :controls="controls"
18
- playsinline />
19
+ playsinline
20
+ />
19
21
  </div>
20
22
  </template>
21
23
 
@@ -32,7 +34,7 @@ type Props = {
32
34
  const props = defineProps<Props>();
33
35
 
34
36
  const aspectRatio = $computed(
35
- () => props.aspectRatio?.replace(':', '/') || '16/9'
37
+ () => props.aspectRatio?.replace(':', '/') || '16/9',
36
38
  );
37
39
 
38
40
  const embedType = $computed<'YouTube' | 'Vimeo' | null>(() => {
@@ -68,10 +70,12 @@ console.log('Video URL:', videoUrl);
68
70
  width: 100%;
69
71
  height: auto;
70
72
  display: block;
73
+ border-radius: var(--input-border-radius);
71
74
  }
72
75
 
73
76
  .bgl_vid.vid_empty {
74
77
  padding-top: 56.25%;
75
- background: #f0f0f0;
78
+ background: var(--input-bg);
79
+ border-radius: var(--input-border-radius);
76
80
  }
77
81
  </style>
@@ -0,0 +1,26 @@
1
+ <template>
2
+ <Modal width="380px" :dismissable="false" :title="title">
3
+ {{ message }}
4
+ <template #footer>
5
+ <Btn @click="select(true)" color="primary" value="Confirm" />
6
+ <Btn @click="select(false)" color="red" value="Cancel" />
7
+ </template>
8
+ </Modal>
9
+ </template>
10
+
11
+ <script lang="ts" setup>
12
+ import { Btn, Modal } from '@bagelink/vue';
13
+
14
+ const props = defineProps<{
15
+ title: string;
16
+ message: string;
17
+ resolve: (value: boolean) => void;
18
+ }>();
19
+
20
+ const emit = defineEmits(['update:visible']);
21
+
22
+ function select(val: boolean) {
23
+ props.resolve(val);
24
+ emit('update:visible');
25
+ }
26
+ </script>
@@ -1,9 +1,10 @@
1
1
  <template>
2
2
  <Modal
3
- @onUpdate:isModalVisible="props['onUpdate:isModalVisible']"
3
+ @update:visible="($event) => emit('update:visible', $event)"
4
4
  :side
5
5
  ref="modal"
6
6
  :width
7
+ :visible="visible"
7
8
  :dismissable
8
9
  :title="title">
9
10
  <BagelForm
@@ -41,24 +42,26 @@ import {
41
42
  const bagel = useBagel();
42
43
 
43
44
  const props = defineProps<{
44
- 'side'?: boolean;
45
- 'title'?: string;
46
- 'width'?: string;
47
- 'dismissable'?: boolean;
48
- 'actions'?: BtnOptions[];
49
- 'schema': BglFormSchemaT | (() => BglFormSchemaT);
45
+ side?: boolean;
46
+ title?: string;
47
+ width?: string;
48
+ dismissable?: boolean;
49
+ actions?: BtnOptions[];
50
+ schema: BglFormSchemaT | (() => BglFormSchemaT);
50
51
  // eslint-disable-next-line no-unused-vars
51
- 'onSubmit'?: (formData: any) => Promise<void>;
52
+ onSubmit?: (formData: any) => Promise<void>;
52
53
  // eslint-disable-next-line no-unused-vars
53
- 'onDelete'?: (id: string) => void;
54
+ onDelete?: (id: string) => void;
54
55
  // eslint-disable-next-line no-unused-vars
55
- 'onUpdate:isModalVisible'?: (visible: boolean) => void;
56
+ visible?: boolean;
56
57
  // eslint-disable-next-line no-unused-vars
57
- 'onError'?: (err: any) => void;
58
+ onError?: (err: any) => void;
58
59
 
59
- 'modelValue'?: Record<string, any>;
60
+ modelValue?: Record<string, any>;
60
61
  }>();
61
62
 
63
+ const emit = defineEmits(['update:visible']);
64
+
62
65
  const modal = $ref<InstanceType<typeof Modal>>();
63
66
 
64
67
  const computedFormSchema = $computed(() => {
@@ -10,7 +10,8 @@
10
10
  v-tooltip="item.name"
11
11
  :key="item.name"
12
12
  :icon="item.icon"
13
- :disabled="item.disabled?.()" />
13
+ :disabled="item.disabled?.()"
14
+ />
14
15
  </div>
15
16
  <editor-content :editor="editor" />
16
17
  </div>
@@ -74,19 +75,22 @@ const config: {
74
75
  name: 'Bold',
75
76
  command: () => focus()?.toggleBold().run(),
76
77
  icon: 'format_bold',
77
- disabled: () => !editor?.can().chain().focus().toggleBold().run(),
78
+ disabled: () => !editor?.can().chain().focus().toggleBold()
79
+ .run(),
78
80
  },
79
81
  {
80
82
  name: 'Italic',
81
83
  command: () => focus().toggleItalic().run(),
82
84
  icon: 'format_italic',
83
- disabled: () => !editor?.can().chain().focus().toggleItalic().run(),
85
+ disabled: () => !editor?.can().chain().focus().toggleItalic()
86
+ .run(),
84
87
  },
85
88
  {
86
89
  name: 'Strike',
87
90
  command: () => focus().toggleStrike().run(),
88
91
  icon: 'format_strikethrough',
89
- disabled: () => !editor?.can().chain().focus().toggleStrike().run(),
92
+ disabled: () => !editor?.can().chain().focus().toggleStrike()
93
+ .run(),
90
94
  },
91
95
  {
92
96
  name: 'Code Text',
@@ -191,27 +195,28 @@ const config: {
191
195
  command: () => focus().setHardBreak().run(),
192
196
  icon: 'keyboard_return',
193
197
  },
198
+ {
199
+ name: 'Table',
200
+ command: () => editor
201
+ .chain()
202
+ .focus()
203
+ .insertTable({ rows: 3, cols: 3, withHeaderRow: true })
204
+ .run(),
205
+ icon: 'table_chart',
206
+ },
194
207
  {
195
208
  name: 'Undo',
196
209
  command: () => focus().undo().run(),
197
210
  icon: 'undo',
198
- disabled: () => !editor?.can().chain().focus().undo().run(),
211
+ disabled: () => !editor?.can().chain().focus().undo()
212
+ .run(),
199
213
  },
200
214
  {
201
215
  name: 'Redo',
202
216
  command: () => focus().redo().run(),
203
217
  icon: 'redo',
204
- disabled: () => !editor?.can().chain().focus().redo().run(),
205
- },
206
- {
207
- name: 'Table',
208
- command: () =>
209
- editor
210
- .chain()
211
- .focus()
212
- .insertTable({ rows: 3, cols: 3, withHeaderRow: true })
213
- .run(),
214
- icon: 'table',
218
+ disabled: () => !editor?.can().chain().focus().redo()
219
+ .run(),
215
220
  },
216
221
  ];
217
222
 
@@ -239,7 +244,7 @@ watch(
239
244
  if (editor?.getHTML() === value) return;
240
245
  editor?.commands.setContent(value, false);
241
246
  },
242
- { immediate: true }
247
+ { immediate: true },
243
248
  );
244
249
 
245
250
  onMounted(initEditor);
@@ -261,7 +266,6 @@ onBeforeUnmount(() => editor?.destroy());
261
266
  .tiptap h1,
262
267
  .tiptap h2 {
263
268
  line-height: 1;
264
- margin-top: 0;
265
269
  }
266
270
 
267
271
  .tiptap h3,
@@ -269,20 +273,15 @@ onBeforeUnmount(() => editor?.destroy());
269
273
  .tiptap h5,
270
274
  .tiptap h6 {
271
275
  line-height: 1.1;
272
- margin-top: 0;
273
- }
274
-
275
- .tiptap code {
276
- background-color: rgba(97, 97, 97, 0.1);
277
- color: #616161;
278
276
  }
279
277
 
280
278
  .tiptap pre {
281
279
  background: #0d0d0d;
282
- color: #fff;
280
+ color: var(--bgl-white);
283
281
  font-family: 'JetBrainsMono', monospace;
284
282
  padding: 0.75rem 1rem;
285
283
  border-radius: 0.5rem;
284
+ margin: 0;
286
285
  }
287
286
 
288
287
  .tiptap pre code {
@@ -298,13 +297,14 @@ onBeforeUnmount(() => editor?.destroy());
298
297
  }
299
298
 
300
299
  .tiptap blockquote {
301
- padding-left: 1rem;
302
- border-left: 2px solid rgba(13, 13, 13, 0.1);
300
+ padding-inline-start: 0.5rem;
301
+ border-inline-start: 2px solid var(--border-color);
302
+ margin: 0.5rem
303
303
  }
304
304
 
305
305
  .tiptap hr {
306
306
  border: none;
307
- border-top: 2px solid rgba(13, 13, 13, 0.1);
307
+ border-top: 2px solid var(--border-color);
308
308
  margin: 1rem 0;
309
309
  }
310
310
 
@@ -343,7 +343,7 @@ onBeforeUnmount(() => editor?.destroy());
343
343
  td,
344
344
  th {
345
345
  min-width: 1em;
346
- border: 2px solid #ced4da;
346
+ border: 2px solid var(--border-color);
347
347
  padding: 3px 5px;
348
348
  vertical-align: top;
349
349
  box-sizing: border-box;
@@ -351,13 +351,14 @@ onBeforeUnmount(() => editor?.destroy());
351
351
 
352
352
  > * {
353
353
  margin-bottom: 0;
354
+ margin-top: 0;
354
355
  }
355
356
  }
356
357
 
357
358
  th {
358
359
  font-weight: bold;
359
- text-align: left;
360
- background-color: #f1f3f5;
360
+ text-align: start;
361
+ background-color: var(--bgl-gray-80);
361
362
  }
362
363
 
363
364
  .selectedCell:after {
@@ -368,13 +369,16 @@ onBeforeUnmount(() => editor?.destroy());
368
369
  right: 0;
369
370
  top: 0;
370
371
  bottom: 0;
371
- background: rgba(200, 200, 255, 0.4);
372
+ background: var(--bgl-gray-20);
372
373
  pointer-events: none;
373
374
  }
375
+ .selectedCell p::selection{
376
+ color: var(--bgl-black)
377
+ }
374
378
 
375
379
  .column-resize-handle {
376
380
  position: absolute;
377
- right: -2px;
381
+ inset-inline-start: -2px;
378
382
  top: 0;
379
383
  bottom: -2px;
380
384
  width: 4px;
@@ -397,4 +401,26 @@ onBeforeUnmount(() => editor?.destroy());
397
401
  cursor: ew-resize;
398
402
  cursor: col-resize;
399
403
  }
404
+ .RichText-tools [disabled]{
405
+ color: var(--bgl-black) !important;
406
+ opacity: 0.3;
407
+ }
408
+ .RichText iframe{
409
+ width: 100%;
410
+ max-width: 700px;
411
+ margin: 0 auto;
412
+ height: auto;
413
+ display: block;
414
+ border-radius: var(--input-border-radius);
415
+ border: none;
416
+ aspect-ratio: 16/9;
417
+ }
418
+ .RichText img{
419
+ width: 100%;
420
+ max-width: 700px;
421
+ margin: 0 auto;
422
+ height: auto;
423
+ display: block;
424
+ border-radius: var(--input-border-radius);
425
+ }
400
426
  </style>
@@ -120,12 +120,14 @@ const selectedLabel = $computed(() => {
120
120
  const emit = defineEmits(['update:modelValue']);
121
121
 
122
122
  const getLabel = (option: Option) => {
123
+ if (!option) return '';
123
124
  if (typeof option === 'string') return option;
124
125
  if (typeof option === 'number') return `${option}`;
125
126
  return option.label;
126
127
  };
127
128
 
128
129
  const getValue = (option: Option) => {
130
+ if (!option) return '';
129
131
  if (typeof option === 'string') return option;
130
132
  if (typeof option === 'number') return option;
131
133
  return option.value;
@@ -182,7 +184,6 @@ function compareArrays(arr1: Option[], arr2: Option[]) {
182
184
  watch(
183
185
  () => props.modelValue,
184
186
  (newVal: Option | Option[]) => {
185
- if (!newVal) return;
186
187
  if (!props.multiselect) {
187
188
  const newOption =
188
189
  props.options.find((o) => getValue(o) === newVal) || newVal;
@@ -202,7 +203,6 @@ watch(
202
203
  watch(
203
204
  () => props.options,
204
205
  () => {
205
- const original = JSON.stringify(props.options.map(getValue));
206
206
  [...selectedItems].forEach((option, i) => {
207
207
  const exists = props.options.find(
208
208
  (o) => getValue(o) === getValue(option)
@@ -210,8 +210,9 @@ watch(
210
210
  if (!exists) selectedItems.splice(i, 1);
211
211
  else selectedItems.splice(i, 1, exists);
212
212
  });
213
- const newSelection = JSON.stringify(selectedItems.map(getValue));
214
- if (original !== newSelection) emitUpdate();
213
+ // const original = JSON.stringify(props.options.map(getValue));
214
+ // const newSelection = JSON.stringify(selectedItems.map(getValue));
215
+ // if (original !== newSelection) emitUpdate();
215
216
  },
216
217
  { deep: true }
217
218
  );
@@ -20,6 +20,7 @@ export { default as Alert } from './Alert.vue';
20
20
  export { default as Badge } from './Badge.vue';
21
21
  export { default as BglVideo } from './BglVideo.vue';
22
22
  export { default as Carousel } from './Carousel.vue';
23
+ export { default as ModalConfirm } from './ModalConfirm.vue';
23
24
 
24
25
  export * from './form';
25
26
  export * from './dashboard';