@haklex/rich-ext-gallery 0.0.20 → 0.0.21

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/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import { useSensors, useSensor, PointerSensor, DndContext, closestCenter, DragOv
13
13
  import { arrayMove, SortableContext, verticalListSortingStrategy, useSortable } from "@dnd-kit/sortable";
14
14
  import { CSS } from "@dnd-kit/utilities";
15
15
  import { presentDialog, SegmentedControl } from "@haklex/rich-editor-ui";
16
- import { usePortalTheme } from "@haklex/rich-style-token";
16
+ import { usePortalTheme, vars } from "@haklex/rich-style-token";
17
17
  import { createPortal } from "react-dom";
18
18
  var gallery = "_10ydd1n0";
19
19
  var galleryGrid = "_10ydd1n1";
@@ -430,7 +430,7 @@ const DragOverlayCard = ({ image }) => /* @__PURE__ */ jsxs("div", { className:
430
430
  "span",
431
431
  {
432
432
  style: {
433
- fontSize: "0.8125rem",
433
+ fontSize: vars.typography.fontSizeSm,
434
434
  overflow: "hidden",
435
435
  textOverflow: "ellipsis",
436
436
  whiteSpace: "nowrap"
@@ -1,403 +1 @@
1
- ._10ydd1n0 {
2
- position: relative;
3
- width: 100%;
4
- margin: 16px 0;
5
- }
6
- ._10ydd1n1 {
7
- display: grid;
8
- grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
9
- gap: 12px;
10
- }
11
- ._10ydd1n2 {
12
- column-count: 3;
13
- column-gap: 12px;
14
- }
15
- ._10ydd1n2 figure {
16
- break-inside: avoid;
17
- margin-bottom: 12px;
18
- }
19
- ._10ydd1n3 {
20
- position: relative;
21
- }
22
- ._10ydd1n4 {
23
- width: 100%;
24
- overflow-x: auto;
25
- white-space: nowrap;
26
- scroll-behavior: smooth;
27
- scrollbar-width: none;
28
- -ms-overflow-style: none;
29
- }
30
- ._10ydd1n4::-webkit-scrollbar {
31
- display: none;
32
- }
33
- ._10ydd1n5 {
34
- display: inline-block;
35
- margin: 0;
36
- cursor: pointer;
37
- transition: transform 0.2s ease;
38
- }
39
- ._10ydd1n5:hover {
40
- transform: scale(1.02);
41
- }
42
- ._10ydd1n5 img {
43
- display: block;
44
- border-radius: 4px;
45
- }
46
- ._10ydd1n6 {
47
- position: absolute;
48
- top: 50%;
49
- transform: translateY(-50%);
50
- width: 32px;
51
- height: 32px;
52
- border-radius: 50%;
53
- border: 1px solid var(--rc-border);
54
- background: var(--rc-bg-secondary);
55
- color: var(--rc-text-secondary);
56
- display: flex;
57
- align-items: center;
58
- justify-content: center;
59
- cursor: pointer;
60
- backdrop-filter: blur(20px) saturate(180%);
61
- z-index: 10;
62
- }
63
- ._10ydd1n7 {
64
- left: 8px;
65
- }
66
- ._10ydd1n8 {
67
- right: 8px;
68
- }
69
- ._10ydd1n9 {
70
- position: absolute;
71
- bottom: 12px;
72
- left: 50%;
73
- transform: translateX(-50%);
74
- display: flex;
75
- gap: 8px;
76
- z-index: 10;
77
- }
78
- ._10ydd1na {
79
- width: 6px;
80
- height: 6px;
81
- border-radius: 50%;
82
- background: var(--rc-text-secondary);
83
- opacity: 0.5;
84
- backdrop-filter: blur(20px) saturate(180%);
85
- cursor: pointer;
86
- transition: opacity 0.2s;
87
- }
88
- ._10ydd1na:hover {
89
- opacity: 1;
90
- }
91
- ._10ydd1nb {
92
- opacity: 1;
93
- }
94
- ._10ydd1nc {
95
- position: relative;
96
- width: 100%;
97
- margin: 16px 0;
98
- border-radius: 0.5rem;
99
- overflow: hidden;
100
- border: 1px solid var(--rc-border);
101
- min-height: 120px;
102
- }
103
- ._10ydd1nd {
104
- position: absolute;
105
- inset: 0;
106
- z-index: 5;
107
- display: flex;
108
- align-items: center;
109
- justify-content: center;
110
- cursor: pointer;
111
- background: transparent;
112
- border: none;
113
- transition: background 0.2s;
114
- }
115
- ._10ydd1nd:hover {
116
- background: color-mix(in srgb, currentColor 6%, transparent);
117
- }
118
- ._10ydd1ne {
119
- display: flex;
120
- align-items: center;
121
- gap: 6px;
122
- padding: 6px 14px;
123
- border-radius: 6px;
124
- background: var(--rc-bg);
125
- border: 1px solid var(--rc-border);
126
- color: var(--rc-text);
127
- font-size: 0.8125rem;
128
- font-weight: 500;
129
- opacity: 0;
130
- transition: opacity 0.2s;
131
- }
132
- ._10ydd1nc:hover ._10ydd1ne {
133
- opacity: 1;
134
- }
135
- ._10ydd1nf {
136
- display: flex;
137
- flex-direction: column;
138
- align-items: center;
139
- justify-content: center;
140
- padding: 2rem;
141
- gap: 0.75rem;
142
- color: var(--rc-text-secondary);
143
- font-size: 0.875rem;
144
- min-height: 120px;
145
- }
146
- ._10ydd1ng._10ydd1ng {
147
- padding: 0;
148
- gap: 0;
149
- display: flex;
150
- flex-direction: column;
151
- overflow: hidden;
152
- width: calc(100vw - 2rem);
153
- height: min(720px, 85vh);
154
- border-radius: 0.5rem;
155
- }
156
- ._10ydd1ng._10ydd1ng[data-open] {
157
- animation: none;
158
- }
159
- ._10ydd1ng._10ydd1ng[data-closed] {
160
- animation: none;
161
- }
162
- ._10ydd1nh {
163
- display: flex;
164
- align-items: center;
165
- height: 48px;
166
- flex-shrink: 0;
167
- padding: 0 12px 0 16px;
168
- border-bottom: 1px solid var(--rc-border);
169
- gap: 10px;
170
- }
171
- ._10ydd1ni {
172
- display: flex;
173
- align-items: center;
174
- gap: 0.5rem;
175
- font-size: 0.875rem;
176
- font-weight: 600;
177
- color: var(--rc-text);
178
- line-height: 1;
179
- }
180
- ._10ydd1nj {
181
- margin-left: auto;
182
- display: flex;
183
- align-items: center;
184
- gap: 2px;
185
- }
186
- ._10ydd1nk {
187
- margin-left: 8px;
188
- flex-shrink: 0;
189
- display: flex;
190
- align-items: center;
191
- justify-content: center;
192
- width: 32px;
193
- height: 32px;
194
- border-radius: 6px;
195
- border: none;
196
- background: transparent;
197
- color: var(--rc-text-secondary);
198
- cursor: pointer;
199
- transition: background 0.15s, color 0.15s;
200
- }
201
- ._10ydd1nk:hover {
202
- background: color-mix(in srgb, currentColor 8%, transparent);
203
- color: var(--rc-text);
204
- }
205
- ._10ydd1nl {
206
- flex: 1;
207
- min-height: 0;
208
- overflow-y: auto;
209
- padding: 1rem;
210
- }
211
- ._10ydd1nm {
212
- display: flex;
213
- flex-direction: column;
214
- gap: 0.75rem;
215
- }
216
- ._10ydd1nn {
217
- display: flex;
218
- align-items: flex-start;
219
- gap: 0.75rem;
220
- padding: 0.75rem;
221
- border-radius: 0.5rem;
222
- border: 1px solid var(--rc-border);
223
- background: color-mix(in srgb, var(--rc-text) 2%, transparent);
224
- }
225
- ._10ydd1no {
226
- display: flex;
227
- align-items: center;
228
- justify-content: center;
229
- width: 24px;
230
- height: 24px;
231
- flex-shrink: 0;
232
- color: var(--rc-text-secondary);
233
- cursor: grab;
234
- margin-top: 4px;
235
- border-radius: 4px;
236
- transition: background 0.15s, color 0.15s;
237
- }
238
- ._10ydd1no:hover {
239
- background: color-mix(in srgb, currentColor 8%, transparent);
240
- color: var(--rc-text);
241
- }
242
- ._10ydd1no:active {
243
- cursor: grabbing;
244
- }
245
- ._10ydd1np {
246
- width: 64px;
247
- height: 64px;
248
- border-radius: 4px;
249
- overflow: hidden;
250
- flex-shrink: 0;
251
- background-color: color-mix(in srgb, var(--rc-text) 5%, transparent);
252
- display: flex;
253
- align-items: center;
254
- justify-content: center;
255
- }
256
- ._10ydd1np img {
257
- width: 100%;
258
- height: 100%;
259
- object-fit: cover;
260
- }
261
- ._10ydd1nq {
262
- color: color-mix(in srgb, var(--rc-text-secondary) 40%, transparent);
263
- }
264
- ._10ydd1nr {
265
- flex: 1;
266
- display: flex;
267
- flex-direction: column;
268
- gap: 6px;
269
- min-width: 0;
270
- }
271
- ._10ydd1ns {
272
- width: 100%;
273
- padding: 4px 8px;
274
- border-radius: 4px;
275
- border: 1px solid var(--rc-border);
276
- background: var(--rc-bg);
277
- color: var(--rc-text);
278
- font-size: 0.8125rem;
279
- outline: none;
280
- transition: border-color 0.15s;
281
- }
282
- ._10ydd1ns:focus {
283
- border-color: color-mix(in srgb, var(--rc-text) 30%, transparent);
284
- }
285
- ._10ydd1ns::placeholder {
286
- color: color-mix(in srgb, var(--rc-text-secondary) 50%, transparent);
287
- }
288
- ._10ydd1nt {
289
- display: flex;
290
- flex-direction: column;
291
- gap: 2px;
292
- flex-shrink: 0;
293
- }
294
- ._10ydd1nu {
295
- display: inline-flex;
296
- align-items: center;
297
- justify-content: center;
298
- width: 28px;
299
- height: 28px;
300
- border-radius: 4px;
301
- border: none;
302
- background: transparent;
303
- color: var(--rc-text-secondary);
304
- cursor: pointer;
305
- transition: background 0.15s, color 0.15s;
306
- }
307
- ._10ydd1nu:hover {
308
- background: color-mix(in srgb, var(--rc-alert-caution) 10%, transparent);
309
- color: var(--rc-alert-caution);
310
- }
311
- ._10ydd1nv {
312
- display: flex;
313
- align-items: center;
314
- justify-content: center;
315
- gap: 6px;
316
- width: 100%;
317
- padding: 0.625rem;
318
- border-radius: 0.5rem;
319
- border: 1px dashed var(--rc-border);
320
- background: transparent;
321
- color: var(--rc-text-secondary);
322
- font-size: 0.8125rem;
323
- cursor: pointer;
324
- transition: border-color 0.15s, color 0.15s, background 0.15s;
325
- }
326
- ._10ydd1nv:hover {
327
- border-color: color-mix(in srgb, var(--rc-text) 20%, transparent);
328
- color: var(--rc-text);
329
- background: color-mix(in srgb, var(--rc-text) 2%, transparent);
330
- }
331
- ._10ydd1nw {
332
- display: flex;
333
- align-items: center;
334
- justify-content: space-between;
335
- padding: 0 1rem;
336
- height: 44px;
337
- border-top: 1px solid var(--rc-border);
338
- flex-shrink: 0;
339
- background-color: color-mix(in srgb, var(--rc-text) 1.5%, transparent);
340
- }
341
- ._10ydd1nx {
342
- font-size: 0.75rem;
343
- color: var(--rc-text-secondary);
344
- }
345
- ._10ydd1ny {
346
- display: flex;
347
- align-items: center;
348
- gap: 0.5rem;
349
- }
350
- ._10ydd1nz {
351
- padding: 0.25rem 0.75rem;
352
- border-radius: 0.375rem;
353
- font-size: 0.75rem;
354
- font-weight: 500;
355
- cursor: pointer;
356
- height: 28px;
357
- transition: background-color 0.15s, border-color 0.15s;
358
- }
359
- ._10ydd1n10 {
360
- background-color: transparent;
361
- color: var(--rc-text-secondary);
362
- border: 1px solid var(--rc-border);
363
- }
364
- ._10ydd1n10:hover {
365
- background-color: color-mix(in srgb, var(--rc-text) 4%, transparent);
366
- }
367
- ._10ydd1n11 {
368
- background-color: var(--rc-text);
369
- color: var(--rc-bg);
370
- border: 1px solid transparent;
371
- }
372
- ._10ydd1n11:hover {
373
- background-color: color-mix(in srgb, var(--rc-text) 85%, transparent);
374
- }
375
- ._10ydd1n12 {
376
- display: flex;
377
- flex-direction: column;
378
- align-items: center;
379
- justify-content: center;
380
- flex: 1;
381
- gap: 1rem;
382
- color: var(--rc-text-secondary);
383
- font-size: 0.875rem;
384
- padding: 2rem;
385
- }
386
- @media (max-width: 768px) {
387
- ._10ydd1n2 {
388
- column-count: 2;
389
- }
390
- }
391
- @media (max-width: 480px) {
392
- ._10ydd1n1 {
393
- grid-template-columns: 1fr;
394
- }
395
- ._10ydd1n2 {
396
- column-count: 1;
397
- }
398
- }
399
- @media (min-width: 640px) {
400
- ._10ydd1ng._10ydd1ng {
401
- max-width: 56rem;
402
- }
403
- }
1
+ ._10ydd1n0{position:relative;width:100%;margin:16px 0}._10ydd1n1{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}._10ydd1n2{column-count:3;column-gap:12px}._10ydd1n2 figure{break-inside:avoid;margin-bottom:12px}._10ydd1n3{position:relative}._10ydd1n4{width:100%;overflow-x:auto;white-space:nowrap;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}._10ydd1n4::-webkit-scrollbar{display:none}._10ydd1n5{display:inline-block;margin:0;cursor:pointer;transition:transform .2s ease}._10ydd1n5:hover{transform:scale(1.02)}._10ydd1n5 img{display:block;border-radius:4px}._10ydd1n6{position:absolute;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;border:1px solid var(--rc-border);background:var(--rc-bg-secondary);color:var(--rc-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(20px) saturate(180%);z-index:10}._10ydd1n7{left:8px}._10ydd1n8{right:8px}._10ydd1n9{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:10}._10ydd1na{width:6px;height:6px;border-radius:50%;background:var(--rc-text-secondary);opacity:.5;backdrop-filter:blur(20px) saturate(180%);cursor:pointer;transition:opacity .2s}._10ydd1na:hover,._10ydd1nb{opacity:1}._10ydd1nc{position:relative;width:100%;margin:16px 0;border-radius:.5rem;overflow:hidden;border:1px solid var(--rc-border);min-height:120px}._10ydd1nd{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;transition:background .2s}._10ydd1nd:hover{background:color-mix(in srgb,currentColor 6%,transparent)}._10ydd1ne{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:6px;background:var(--rc-bg);border:1px solid var(--rc-border);color:var(--rc-text);font-size:var(--rc-font-size-sm);font-weight:500;opacity:0;transition:opacity .2s}._10ydd1nc:hover ._10ydd1ne{opacity:1}._10ydd1nf{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:.75rem;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);min-height:120px}._10ydd1ng._10ydd1ng{padding:0;gap:0;display:flex;flex-direction:column;overflow:hidden;width:calc(100vw - 2rem);height:min(720px,85vh);border-radius:.5rem}._10ydd1ng._10ydd1ng[data-open],._10ydd1ng._10ydd1ng[data-closed]{animation:none}._10ydd1nh{display:flex;align-items:center;height:48px;flex-shrink:0;padding:0 12px 0 16px;border-bottom:1px solid var(--rc-border);gap:10px}._10ydd1ni{display:flex;align-items:center;gap:.5rem;font-size:var(--rc-font-size-md);font-weight:600;color:var(--rc-text);line-height:1}._10ydd1nj{margin-left:auto;display:flex;align-items:center;gap:2px}._10ydd1nk{margin-left:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:none;background:transparent;color:var(--rc-text-secondary);cursor:pointer;transition:background .15s,color .15s}._10ydd1nk:hover{background:color-mix(in srgb,currentColor 8%,transparent);color:var(--rc-text)}._10ydd1nl{flex:1;min-height:0;overflow-y:auto;padding:1rem}._10ydd1nm{display:flex;flex-direction:column;gap:.75rem}._10ydd1nn{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:.5rem;border:1px solid var(--rc-border);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._10ydd1no{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:var(--rc-text-secondary);cursor:grab;margin-top:4px;border-radius:4px;transition:background .15s,color .15s}._10ydd1no:hover{background:color-mix(in srgb,currentColor 8%,transparent);color:var(--rc-text)}._10ydd1no:active{cursor:grabbing}._10ydd1np{width:64px;height:64px;border-radius:4px;overflow:hidden;flex-shrink:0;background-color:color-mix(in srgb,var(--rc-text) 5%,transparent);display:flex;align-items:center;justify-content:center}._10ydd1np img{width:100%;height:100%;object-fit:cover}._10ydd1nq{color:color-mix(in srgb,var(--rc-text-secondary) 40%,transparent)}._10ydd1nr{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}._10ydd1ns{width:100%;padding:4px 8px;border-radius:4px;border:1px solid var(--rc-border);background:var(--rc-bg);color:var(--rc-text);font-size:var(--rc-font-size-sm);outline:none;transition:border-color .15s}._10ydd1ns:focus{border-color:color-mix(in srgb,var(--rc-text) 30%,transparent)}._10ydd1ns::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent)}._10ydd1nt{display:flex;flex-direction:column;gap:2px;flex-shrink:0}._10ydd1nu{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;border:none;background:transparent;color:var(--rc-text-secondary);cursor:pointer;transition:background .15s,color .15s}._10ydd1nu:hover{background:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent);color:var(--rc-alert-caution)}._10ydd1nv{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:.625rem;border-radius:.5rem;border:1px dashed var(--rc-border);background:transparent;color:var(--rc-text-secondary);font-size:var(--rc-font-size-sm);cursor:pointer;transition:border-color .15s,color .15s,background .15s}._10ydd1nv:hover{border-color:color-mix(in srgb,var(--rc-text) 20%,transparent);color:var(--rc-text);background:color-mix(in srgb,var(--rc-text) 2%,transparent)}._10ydd1nw{display:flex;align-items:center;justify-content:space-between;padding:0 1rem;height:44px;border-top:1px solid var(--rc-border);flex-shrink:0;background-color:color-mix(in srgb,var(--rc-text) 1.5%,transparent)}._10ydd1nx{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary)}._10ydd1ny{display:flex;align-items:center;gap:.5rem}._10ydd1nz{padding:.25rem .75rem;border-radius:.375rem;font-size:var(--rc-font-size-xs);font-weight:500;cursor:pointer;height:28px;transition:background-color .15s,border-color .15s}._10ydd1n10{background-color:transparent;color:var(--rc-text-secondary);border:1px solid var(--rc-border)}._10ydd1n10:hover{background-color:color-mix(in srgb,var(--rc-text) 4%,transparent)}._10ydd1n11{background-color:var(--rc-text);color:var(--rc-bg);border:1px solid transparent}._10ydd1n11:hover{background-color:color-mix(in srgb,var(--rc-text) 85%,transparent)}._10ydd1n12{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:1rem;color:var(--rc-text-secondary);font-size:var(--rc-font-size-md);padding:2rem}@media(max-width:768px){._10ydd1n2{column-count:2}}@media(max-width:480px){._10ydd1n1{grid-template-columns:1fr}._10ydd1n2{column-count:1}}@media(min-width:640px){._10ydd1ng._10ydd1ng{max-width:56rem}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-ext-gallery",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Image gallery extension with drag-and-drop",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,9 +22,9 @@
22
22
  "react-intersection-observer": "^9.16.0",
23
23
  "react-photo-view": "^1.2.7",
24
24
  "thumbhash": "^0.1.1",
25
- "@haklex/rich-editor": "0.0.20",
26
- "@haklex/rich-editor-ui": "0.0.20",
27
- "@haklex/rich-style-token": "0.0.20"
25
+ "@haklex/rich-editor": "0.0.21",
26
+ "@haklex/rich-editor-ui": "0.0.21",
27
+ "@haklex/rich-style-token": "0.0.21"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@types/react": "^19.2.14",