@bagelink/vue 0.0.974 → 0.0.980

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.
@@ -8,7 +8,7 @@ export interface BagelOptions {
8
8
  availableLangs?: string[];
9
9
  defaultLang?: string;
10
10
  language?: string;
11
- host: string;
11
+ host?: string;
12
12
  onError?: (err: Error) => void;
13
13
  i18nT?: (key: string) => string;
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bagel.d.ts","sourceRoot":"","sources":["../../src/plugins/bagel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQrC,eAAO,MAAM,iBAAiB,EAAsB,YAAY,CAAC,KAAK,CAAC,CAAA;AACvE,eAAO,MAAM,iBAAiB,EAAsB,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;AAEzF,wBAAgB,QAAQ,UAKvB;AAED,wBAAgB,QAAQ,UAT+C,MAAM,KAAK,MAAM,CAcvF;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IAEZ,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAE9B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CAC/B;AACD,eAAO,MAAM,QAAQ,EAAE,MAyBtB,CAAA"}
1
+ {"version":3,"file":"bagel.d.ts","sourceRoot":"","sources":["../../src/plugins/bagel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAQrC,eAAO,MAAM,iBAAiB,EAAsB,YAAY,CAAC,KAAK,CAAC,CAAA;AACvE,eAAO,MAAM,iBAAiB,EAAsB,YAAY,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAA;AAEzF,wBAAgB,QAAQ,UAKvB;AAED,wBAAgB,QAAQ,UAT+C,MAAM,KAAK,MAAM,CAcvF;AAED,MAAM,WAAW,YAAY;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;IAE9B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;CAC/B;AACD,eAAO,MAAM,QAAQ,EAAE,MAyBtB,CAAA"}
package/dist/style.css CHANGED
@@ -707,6 +707,13 @@ data[data-v-6c27f163] {
707
707
  }
708
708
  }
709
709
 
710
+ .img-web-kit[data-v-e1f932a8] {
711
+ max-width: 100%;
712
+ vertical-align: middle;
713
+ border: 0;
714
+ width: 100%;
715
+ }
716
+
710
717
  .fileUploadWrap[data-v-e057bb0f] {
711
718
  outline: 1px solid var(--border-color);
712
719
  border-radius: var(--input-border-radius);
@@ -1034,281 +1041,70 @@ data[data-v-6c27f163] {
1034
1041
  border-radius: 5px;
1035
1042
  }
1036
1043
 
1037
- /* Basic editor styles */
1038
- .tiptap > * + * {
1039
- margin-top: 0.75em;
1040
- }
1041
- .tiptap ul,
1042
- .tiptap ol {
1043
- padding: 0 1rem;
1044
- }
1045
- .tiptap h1,
1046
- .tiptap h2 {
1047
- line-height: 1;
1048
- }
1049
- .tiptap h3,
1050
- .tiptap h4,
1051
- .tiptap h5,
1052
- .tiptap h6 {
1053
- line-height: 1.1;
1054
- }
1055
- .tiptap pre {
1056
- background: #0d0d0d;
1057
- color: var(--bgl-light-text);
1058
- font-family: 'JetBrainsMono', monospace;
1059
- padding: 0.75rem 1rem;
1060
- border-radius: 0.5rem;
1061
- margin: 0;
1062
- }
1063
- .tiptap pre code {
1064
- color: inherit;
1065
- padding: 0;
1066
- background: none;
1067
- font-size: 0.8rem;
1068
- }
1069
- .tiptap img {
1070
- max-width: 100%;
1071
- height: auto;
1072
- }
1073
- .tiptap blockquote {
1074
- padding-inline-start: 0.5rem;
1075
- border-inline-start: 2px solid var(--border-color);
1076
- margin: 0.5rem
1077
- }
1078
- .tiptap hr {
1079
- border: none;
1080
- border-top: 2px solid var(--border-color);
1081
- margin: 1rem 0;
1082
- }
1083
- .tiptap {
1084
- min-height: 200px;
1085
- background: var(--input-bg);
1086
- overflow: auto;
1087
- max-height: 500px;
1088
- padding: 0.7rem;
1089
- color: var(--input-color);
1090
- border-radius: var(--input-border-radius);
1091
- font-size: var(--input-font-size);
1092
- line-height: 1.5;
1093
- }
1094
- .tiptap.ProseMirror-focused {
1095
- outline: none;
1096
- box-shadow: inset 0 0 10px #00000012;
1097
- }
1098
- .RichText {
1099
- margin-bottom: 0.5rem;
1100
- }
1101
- .RichText-tools {
1102
- background: var(--input-bg);
1103
- margin-bottom: 0.125rem;
1104
- border-radius: var(--input-border-radius);
1105
- }
1106
- .tiptap {
1107
- table {
1108
- border-collapse: collapse;
1109
- table-layout: fixed;
1110
- width: 100%;
1111
- margin: 0;
1112
- overflow: hidden;
1113
- td,
1114
- th {
1115
- min-width: 1em;
1116
- border: 2px solid var(--border-color);
1117
- padding: 3px 5px;
1118
- vertical-align: top;
1119
- box-sizing: border-box;
1120
- position: relative;
1121
- > * {
1122
- margin-bottom: 0;
1123
- margin-top: 0;
1124
- }
1125
- }
1126
- th {
1127
- font-weight: bold;
1128
- text-align: start;
1129
- background-color: var(--bgl-gray-80);
1130
- }
1131
- .selectedCell:after {
1132
- z-index: 2;
1133
- position: absolute;
1134
- content: '';
1135
- left: 0;
1136
- right: 0;
1137
- top: 0;
1138
- bottom: 0;
1139
- background: var(--bgl-gray-20);
1140
- pointer-events: none;
1141
- }
1142
- .selectedCell p::selection{
1143
- color: var(--bgl-popup-text)
1144
- }
1145
- .column-resize-handle {
1146
- position: absolute;
1147
- inset-inline-start: -2px;
1148
- top: 0;
1149
- bottom: -2px;
1150
- width: 4px;
1151
- background-color: #adf;
1152
- pointer-events: none;
1153
- }
1154
- p {
1155
- margin: 0;
1156
- }
1157
- }
1158
- }
1159
- .tableWrapper {
1160
- padding: 1rem 0;
1161
- overflow-x: auto;
1162
- }
1163
- .resize-cursor {
1164
- cursor: ew-resize;
1165
- cursor: col-resize;
1166
- }
1167
- .RichText-tools [disabled]{
1168
- color: var(--bgl-popup-text) !important;
1169
- opacity: 0.3;
1170
- }
1171
- .RichText iframe{
1172
- width: 100%;
1173
- max-width: 700px;
1174
- margin: 0 auto;
1175
- height: auto;
1176
- display: block;
1177
- border-radius: var(--input-border-radius);
1178
- border: none;
1179
- aspect-ratio: 16/9;
1180
- }
1181
- .RichText img{
1182
- width: 100%;
1183
- max-width: 700px;
1184
- margin: 0 auto;
1185
- height: auto;
1186
- display: block;
1187
- border-radius: var(--input-border-radius);
1044
+ .toolbar[data-v-6868ce1f] .active {
1045
+ background: var(--primary-color);
1046
+ color: white;
1188
1047
  }
1189
1048
 
1190
- @font-face {
1191
- font-family: 'FontWithASyntaxHighlighter';
1192
- font-style: normal;
1193
- font-weight: 400;
1194
- font-stretch: 100%;
1195
- font-display: swap;
1196
- src: url(https://bagel.sfo2.cdn.digitaloceanspaces.com/Fonts/FontWithASyntaxHighlighter-Regular.woff2) format('woff2')
1197
- }
1198
- @font-palette-values --myCustomPalette {
1199
- font-family: 'FontWithASyntaxHighlighter';
1200
- override-colors:
1201
- 0 #6191c2, /* keywords, {} */
1202
- 1 #75975d, /* comments */
1203
- 2 yellow, /* literals */
1204
- 3 #a3c19a, /* numbers */
1205
- 4 lightblue, /* functions, [] */
1206
- 5 orange, /* js others */
1207
- 6 black, /* not in use */
1208
- 7 #bc8abd, /* inside quotes, css properties, few chars */
1209
- 8 #818181 /* few chars */
1210
- ;
1211
- }
1212
- .preview-area[data-v-cca783dc]{
1213
- font-family: "FontWithASyntaxHighlighter", monospace;
1214
- font-palette: --myCustomPalette;
1215
- background: var(--bgl-code-bg);
1216
- color: var(--bgl-code-color)
1217
- }
1218
- .rich-text-editor[data-v-cca783dc] {
1219
- background: var(--input-bg);
1220
- margin-bottom: 0.5rem;
1221
- width: 100%;
1222
- }
1223
- .editableContent[data-v-cca783dc]{
1224
- min-height: 100%;
1225
- white-space: pre-wrap;
1226
- outline: none;
1049
+ .rich-text-editor[data-v-9f9e8600] {
1050
+ background: var(--input-bg);
1051
+ border: 1px solid var(--border-color);
1052
+ transition: all 0.3s ease;
1227
1053
  }
1228
- .content-area[data-v-cca783dc]{
1229
- background: var(--bgl-richtext-color);
1054
+ .editor-container[data-v-9f9e8600] {
1055
+ display: flex;
1056
+ gap: 1rem;
1230
1057
  }
1231
- .content-area[data-v-cca783dc], .preview-area[data-v-cca783dc]{
1232
- min-height: 200px;
1058
+ .content-area[data-v-9f9e8600], .preview-area[data-v-9f9e8600] {
1059
+ flex: 1;
1060
+ min-height: 200px;
1061
+ background: var(--bgl-richtext-color);
1233
1062
  }
1234
- .fullscreen-mode[data-v-cca783dc] {
1235
- position: fixed;
1236
- top: 0;
1237
- left: 0;
1238
- width: 100%;
1239
- height: 100%;
1240
- z-index: 9999;
1241
- background: var(--input-bg);
1242
- padding: 2rem;
1243
- overflow: auto;
1244
- border-radius: 0;
1063
+ .split-view .content-area[data-v-9f9e8600],
1064
+ .split-view .preview-area[data-v-9f9e8600] {
1065
+ width: 50%;
1245
1066
  }
1246
- .fullscreen-mode .content-area[data-v-cca783dc]{
1247
- height: calc(100vh - 5rem);
1248
- padding: 4rem !important;
1249
- max-width: 900px;
1250
- margin-inline: auto ;
1251
- overflow-y: auto;
1067
+ .editableContent[data-v-9f9e8600] {
1068
+ min-height: 100%;
1069
+ white-space: pre-wrap;
1070
+ outline: none;
1252
1071
  }
1253
- .fullscreen-mode .toolbar[data-v-cca783dc]{
1254
- max-width: 900px;
1255
- margin-inline: auto ;
1256
- /* border-bottom: 1px solid var(--border-color); */
1257
- /* margin-bottom: 2rem; */
1072
+ .html-editor[data-v-9f9e8600] {
1073
+ width: 100%;
1074
+ height: 100%;
1075
+ min-height: 200px;
1076
+ font-family: monospace;
1077
+ background: transparent;
1078
+ border: none;
1079
+ outline: none;
1080
+ resize: none;
1258
1081
  }
1259
-
1260
- /* [contenteditable='true'] {
1261
- white-space: pre-wrap;
1262
- word-wrap: break-word;
1263
- outline: none;
1264
- height: 100%;
1265
- } */
1266
- /*
1267
-
1268
- .editor-container {
1269
- display: flex;
1270
- border: 1px solid #ccc;
1271
- border-radius: 4px;
1272
- overflow: hidden;
1082
+ .preview-area[data-v-9f9e8600] {
1083
+ font-family: monospace;
1084
+ white-space: pre-wrap;
1085
+ overflow-x: auto;
1273
1086
  }
1274
-
1275
- .content-area,
1276
- .preview-area {
1277
- flex: 1;
1278
- min-height: 300px;
1279
- padding: 10px;
1087
+ .preview-area code[data-v-9f9e8600] {
1088
+ display: block;
1089
+ padding: 1rem;
1090
+ }
1091
+ .fullscreen-mode[data-v-9f9e8600] {
1092
+ position: fixed;
1093
+ top: 0;
1094
+ left: 0;
1095
+ width: 100vw;
1096
+ height: 100vh;
1097
+ z-index: 9999;
1098
+ padding: 2rem;
1099
+ }
1100
+ .fullscreen-mode .editor-container[data-v-9f9e8600] {
1101
+ height: calc(100vh - 8rem);
1102
+ }
1103
+ .fullscreen-mode .content-area[data-v-9f9e8600],
1104
+ .fullscreen-mode .preview-area[data-v-9f9e8600] {
1105
+ height: 100%;
1280
1106
  overflow-y: auto;
1281
1107
  }
1282
-
1283
- .content-area:focus {
1284
- outline: none;
1285
- }
1286
-
1287
- .split-view .content-area,
1288
- .split-view .preview-area {
1289
- width: 50%;
1290
- }
1291
-
1292
- .preview-area {
1293
- background-color: #f9f9f9;
1294
- border-left: 1px solid #ccc;
1295
- } */
1296
-
1297
- /* @media (max-width: 768px) {
1298
- .split-view {
1299
- flex-direction: column;
1300
- }
1301
-
1302
- .split-view .content-area,
1303
- .split-view .preview-area {
1304
- width: 100%;
1305
- }
1306
-
1307
- .preview-area {
1308
- border-left: none;
1309
- border-top: 1px solid #ccc;
1310
- }
1311
- } */
1312
1108
  .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}
1313
1109
 
1314
1110
  .selectinput[data-v-982f5078] {
@@ -1805,25 +1601,25 @@ p {
1805
1601
  transform: translateX(-20px);
1806
1602
  }
1807
1603
 
1808
- .skeleton-wrap[data-v-9a44f23a] {
1604
+ .skeleton-wrap[data-v-4da8c0d1] {
1809
1605
  margin-bottom: var(--skeleton-margin);
1810
1606
  }
1811
- .skeleton[data-v-9a44f23a] {
1607
+ .skeleton[data-v-4da8c0d1] {
1812
1608
  background-color: var(--skeleton-bg);
1813
1609
  border-radius: var(--bg-card-radius);
1814
1610
  margin-bottom: 0.25em;
1815
1611
  position: relative;
1816
1612
  overflow: hidden;
1817
1613
  }
1818
- .skeleton[data-v-9a44f23a]::before {
1614
+ .skeleton[data-v-4da8c0d1]::before {
1819
1615
  content: "";
1820
1616
  background: linear-gradient(90deg, transparent 20%, var(--skeleton-pulse) 50%, transparent 80%);
1821
- animation: loadingAnimation-9a44f23a 1s ease-in-out infinite;
1617
+ animation: loadingAnimation-4da8c0d1 1s ease-in-out infinite;
1822
1618
  position: absolute;
1823
1619
  inset: 0px;
1824
1620
  transform: translateX(-100%);
1825
1621
  }
1826
- @keyframes loadingAnimation-9a44f23a {
1622
+ @keyframes loadingAnimation-4da8c0d1 {
1827
1623
  to {
1828
1624
  transform: translateX(100%);
1829
1625
  }
@@ -3474,19 +3270,19 @@ tbody tr[data-v-fae54756]:hover {
3474
3270
  -moz-user-drag: none;
3475
3271
  }
3476
3272
 
3477
- .lightbox-image[data-v-0a882f27]{
3273
+ .lightbox-image[data-v-d5e5a1db]{
3478
3274
  object-fit: contain;
3479
3275
  }
3480
- .bgl-lightbox-overlay[data-v-0a882f27] {
3276
+ .bgl-lightbox-overlay[data-v-d5e5a1db] {
3481
3277
  background: rgba(0, 0, 0, 0.8);
3482
3278
  }
3483
- .bgl-lightbox[data-v-0a882f27] {
3279
+ .bgl-lightbox[data-v-d5e5a1db] {
3484
3280
  max-height: 90%;
3485
3281
  }
3486
- .bgl-lightbox-item[data-v-0a882f27]{
3487
- animation: 500ms ease bgl-lightbox-load-0a882f27;
3282
+ .bgl-lightbox-item[data-v-d5e5a1db]{
3283
+ animation: 500ms ease bgl-lightbox-load-d5e5a1db;
3488
3284
  }
3489
- @keyframes bgl-lightbox-load-0a882f27 {
3285
+ @keyframes bgl-lightbox-load-d5e5a1db {
3490
3286
  from {
3491
3287
  scale:0.7;
3492
3288
  }
@@ -3494,44 +3290,44 @@ to {
3494
3290
  scale:1;
3495
3291
  }
3496
3292
  }
3497
- .bgl-lightbox-item[data-v-0a882f27] * {
3293
+ .bgl-lightbox-item[data-v-d5e5a1db] * {
3498
3294
  max-width: 90%;
3499
3295
  max-height: calc(80vh - 90px);
3500
3296
  border-radius: 3px;
3501
3297
  margin: auto;
3502
- animation: 200ms ease bgl-lightbox-load-0a882f27;
3298
+ animation: 200ms ease bgl-lightbox-load-d5e5a1db;
3503
3299
  }
3504
- .navigation[data-v-0a882f27] {
3300
+ .navigation[data-v-d5e5a1db] {
3505
3301
  top: 50%;
3506
3302
  transform: translateY(-50%);
3507
3303
  }
3508
- .navigation-btn[data-v-0a882f27] {
3304
+ .navigation-btn[data-v-d5e5a1db] {
3509
3305
  width: var(--input-height);
3510
3306
  height: var(--input-height);
3511
3307
  }
3512
- .thumbnail[data-v-0a882f27] {
3308
+ .thumbnail[data-v-d5e5a1db] {
3513
3309
  height: 50px;
3514
3310
  width: 50px;
3515
3311
  }
3516
- .thumbnail[data-v-0a882f27]:hover {
3312
+ .thumbnail[data-v-d5e5a1db]:hover {
3517
3313
  opacity: 1;
3518
3314
  }
3519
- .thumbnail[data-v-0a882f27]:active {
3315
+ .thumbnail[data-v-d5e5a1db]:active {
3520
3316
  opacity: 0.8;
3521
3317
  }
3522
- .thumbnail.active[data-v-0a882f27] {
3318
+ .thumbnail.active[data-v-d5e5a1db] {
3523
3319
  opacity: 1;
3524
3320
  outline: 2px solid white;
3525
3321
  }
3526
- .file-info[data-v-0a882f27]{
3322
+ .file-info[data-v-d5e5a1db]{
3527
3323
  max-width: 420px
3528
3324
  }
3529
3325
  @media screen and (max-width: 910px) {
3530
- .file-info[data-v-0a882f27]{
3326
+ .file-info[data-v-d5e5a1db]{
3531
3327
  max-width: 220px;
3532
3328
  text-align: center !important;
3533
3329
  }
3534
- .file-info[data-v-0a882f27] *{
3330
+ .file-info[data-v-d5e5a1db] *{
3535
3331
  text-align: center !important;
3536
3332
  margin-inline: 0 !important;;
3537
3333
  max-width: 100% !important;
@@ -16,6 +16,8 @@ export declare const isDate: (dateToTest: any) => boolean;
16
16
  export declare function getFallbackSchema<T>(data?: any[], showFields?: string[]): BglFormSchemaT<T>;
17
17
  export declare function sleep(ms?: number): Promise<unknown>;
18
18
  export declare function appendScript(src: string): Promise<void>;
19
+ export declare function normalizeURL(url: string): string;
20
+ export declare function normalizeDimension(value: string | number | undefined, defaultMetric?: string): string | undefined;
19
21
  export * as bagelFormUtils from './BagelFormUtils';
20
22
  export { useLang } from './lang';
21
23
  export { formatString } from './strings';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAC3E,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GACjB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAelC;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAGtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,QAIrE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,UAOpE;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACnD,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,GAAG,EACd,GAAG,CAAC,EAAE,CAAC,OAcP;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAO9C;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,OAG5E;AAED,eAAO,MAAM,MAAM,eAAgB,GAAG,YAA0C,CAAA;AAEhF,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,IAAI,CAAC,EAAE,GAAG,EAAE,EACZ,UAAU,CAAC,EAAE,MAAM,EAAE,GACnB,cAAc,CAAC,CAAC,CAAC,CAWnB;AAED,wBAAgB,KAAK,CAAC,EAAE,GAAE,MAAY,oBAErC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvD;AAED,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE/D,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,EAC3E,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,OAAO,GACjB,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAelC;AAED,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ3D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,iBAGtE;AAED,wBAAgB,QAAQ,CAAC,GAAG,MAAM,EAAE,MAAM,EAAE,UAG3C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,QAIrE;AAED,wBAAgB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,UAOpE;AAED,wBAAgB,SAAS,CAAC,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACnD,KAAK,CAAC,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,GAAG,EACd,GAAG,CAAC,EAAE,CAAC,OAcP;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAO9C;AAED,wBAAgB,SAAS,CAAC,QAAQ,CAAC,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,OAAO,CAAC,EAAE,MAAM,OAG5E;AAED,eAAO,MAAM,MAAM,eAAgB,GAAG,YAA0C,CAAA;AAEhF,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,IAAI,CAAC,EAAE,GAAG,EAAE,EACZ,UAAU,CAAC,EAAE,MAAM,EAAE,GACnB,cAAc,CAAC,CAAC,CAAC,CAWnB;AAED,wBAAgB,KAAK,CAAC,EAAE,GAAE,MAAY,oBAErC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAIvC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,aAAa,SAAO,GAAG,MAAM,GAAG,SAAS,CAG/G;AAED,OAAO,KAAK,cAAc,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bagelink/vue",
3
3
  "type": "module",
4
- "version": "0.0.974",
4
+ "version": "0.0.980",
5
5
  "description": "Bagel core sdk packages",
6
6
  "author": {
7
7
  "name": "Neveh Allon",
@@ -1,8 +1,9 @@
1
1
  <script setup lang="ts">
2
+ import { Skeleton, normalizeURL, normalizeDimension } from '@bagelink/vue'
2
3
  import heic2any from 'heic2any'
3
4
  import { watch } from 'vue'
4
5
 
5
- const { src, alt, width, height } = defineProps<{
6
+ const { height, width, alt = '', src } = defineProps<{
6
7
  src: string
7
8
  alt?: string
8
9
  width?: string | number
@@ -12,12 +13,42 @@ const { src, alt, width, height } = defineProps<{
12
13
  let imageSrc = $ref<string | null>(null)
13
14
 
14
15
  async function loadImage(src: string) {
15
- if (src.endsWith('.heic')) {
16
+ if (!src) {
17
+ imageSrc = null
18
+ return
19
+ }
20
+ src = normalizeURL(src)
21
+ const ext = src.split('.').pop()?.toLowerCase().split('?').shift()
22
+
23
+ if (ext === 'heic') {
24
+ if (!('caches' in window)) {
25
+ console.warn('Caching is not available. Proceeding without cache.')
26
+ } else {
27
+ try {
28
+ const imgCache = await window.caches.open('img-cache')
29
+ const cachedResponse = await imgCache.match(src)
30
+ if (cachedResponse) {
31
+ imageSrc = URL.createObjectURL(await cachedResponse.blob())
32
+ return
33
+ }
34
+ } catch (error) {
35
+ console.warn('Error accessing cache:', error)
36
+ }
37
+ }
16
38
  try {
17
39
  const response = await fetch(src)
18
40
  const blob = await response.blob()
19
41
  const convertedBlob = await heic2any({ blob }) as Blob
20
42
  imageSrc = URL.createObjectURL(convertedBlob)
43
+ // Only attempt to cache if the cache API is available
44
+ if ('caches' in window) {
45
+ try {
46
+ const imgCache = await window.caches.open('img-cache')
47
+ imgCache.put(src, new Response(convertedBlob))
48
+ } catch (cacheError) {
49
+ console.warn('Failed to cache the image:', cacheError)
50
+ }
51
+ }
21
52
  } catch (error) {
22
53
  console.error('Error converting HEIC file:', error)
23
54
  }
@@ -25,12 +56,25 @@ async function loadImage(src: string) {
25
56
  imageSrc = src
26
57
  }
27
58
  }
28
-
29
59
  watch(() => src, loadImage, { immediate: true })
30
60
  </script>
31
61
 
32
62
  <template>
33
- <div>
34
- <img v-if="imageSrc" :src="imageSrc" v-bind="$attrs" :alt="alt" :width="width" :height="height">
35
- </div>
63
+ <img v-if="imageSrc" :src="imageSrc" v-bind="$attrs" :alt="alt" :width="normalizeDimension(width)" :height="normalizeDimension(height)">
64
+ <Skeleton
65
+ v-else
66
+ class="img-web-kit"
67
+ :width="normalizeDimension(width)"
68
+ :height="normalizeDimension(height)"
69
+ />
36
70
  </template>
71
+
72
+ <style scoped>
73
+ .img-web-kit {
74
+ max-width: 100%;
75
+ vertical-align: middle;
76
+ border: 0;
77
+ width: 100%;
78
+
79
+ }
80
+ </style>
@@ -53,28 +53,35 @@ const toolbarOptions: toolbarOption[] = [
53
53
  </script>
54
54
 
55
55
  <template>
56
- <div class="toolbar flex gap-025 pb-05 flex-wrap" role="toolbar">
57
- <template v-for="(action, index) in toolbarOptions" :key="index">
58
- <Btn
59
- v-if="action.name !== 'separator' && config.includes(action.name)"
60
- v-tooltip="action.label"
61
- :icon="action.icon"
62
- thin
63
- flat
64
- :aria-label="action.name"
65
- :class="action.class"
66
- class="radius-05"
67
- @click="emit('action', action.name, action.label)"
68
- />
69
- <span
70
- v-else-if="action.name === 'separator'"
71
- :key="`separator-${index}`"
72
- class=" opacity-2 mb-025"
73
- >|</span>
74
- </template>
75
- </div>
56
+ <div class="toolbar flex gap-025 pb-05 flex-wrap" role="toolbar">
57
+ <template v-for="(action, index) in toolbarOptions" :key="index">
58
+ <Btn
59
+ v-if="action.name !== 'separator' && config.includes(action.name)"
60
+ v-tooltip="action.label"
61
+ :icon="action.icon"
62
+ thin
63
+ flat
64
+ :aria-label="action.name"
65
+ :class="[action.class, { active: selectedStyles?.has(action.name) }]"
66
+ class="radius-05"
67
+ @click="emit('action', action.name, action.label)"
68
+ />
69
+ <span
70
+ v-else-if="action.name === 'separator'"
71
+ :key="`separator-${index}`"
72
+ class="opacity-2 mb-025"
73
+ >|</span>
74
+ </template>
75
+ </div>
76
76
  </template>
77
77
 
78
+ <style scoped>
79
+ .toolbar :deep(.active) {
80
+ background: var(--primary-color);
81
+ color: white;
82
+ }
83
+ </style>
84
+
78
85
  <style scoped>
79
86
 
80
87
  </style>