@mantine/lightbox 9.5.2

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.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -0
  3. package/cjs/Lightbox.cjs +56 -0
  4. package/cjs/Lightbox.cjs.map +1 -0
  5. package/cjs/Lightbox.module.cjs +30 -0
  6. package/cjs/Lightbox.module.cjs.map +1 -0
  7. package/cjs/LightboxCaption/LightboxCaption.cjs +30 -0
  8. package/cjs/LightboxCaption/LightboxCaption.cjs.map +1 -0
  9. package/cjs/LightboxCloseButton/LightboxCloseButton.cjs +32 -0
  10. package/cjs/LightboxCloseButton/LightboxCloseButton.cjs.map +1 -0
  11. package/cjs/LightboxNavigation/LightboxNavigation.cjs +105 -0
  12. package/cjs/LightboxNavigation/LightboxNavigation.cjs.map +1 -0
  13. package/cjs/LightboxProvider/LightboxProvider.cjs +29 -0
  14. package/cjs/LightboxProvider/LightboxProvider.cjs.map +1 -0
  15. package/cjs/LightboxRoot/LightboxRoot.cjs +407 -0
  16. package/cjs/LightboxRoot/LightboxRoot.cjs.map +1 -0
  17. package/cjs/LightboxSlide/ImageSlide.cjs +27 -0
  18. package/cjs/LightboxSlide/ImageSlide.cjs.map +1 -0
  19. package/cjs/LightboxSlide/LightboxSlide.cjs +55 -0
  20. package/cjs/LightboxSlide/LightboxSlide.cjs.map +1 -0
  21. package/cjs/LightboxSlide/VideoSlide.cjs +42 -0
  22. package/cjs/LightboxSlide/VideoSlide.cjs.map +1 -0
  23. package/cjs/LightboxSlides/LightboxSlides.cjs +56 -0
  24. package/cjs/LightboxSlides/LightboxSlides.cjs.map +1 -0
  25. package/cjs/LightboxThumbnails/LightboxThumbnails.cjs +74 -0
  26. package/cjs/LightboxThumbnails/LightboxThumbnails.cjs.map +1 -0
  27. package/cjs/LightboxToolbar/LightboxToolbar.cjs +80 -0
  28. package/cjs/LightboxToolbar/LightboxToolbar.cjs.map +1 -0
  29. package/cjs/LightboxToolbar/toolbar-items.cjs +156 -0
  30. package/cjs/LightboxToolbar/toolbar-items.cjs.map +1 -0
  31. package/cjs/_virtual/_rolldown/runtime.cjs +24 -0
  32. package/cjs/default-labels.cjs +20 -0
  33. package/cjs/default-labels.cjs.map +1 -0
  34. package/cjs/hooks/use-lightbox-keyboard.cjs +107 -0
  35. package/cjs/hooks/use-lightbox-keyboard.cjs.map +1 -0
  36. package/cjs/hooks/use-lightbox-lock-scroll.cjs +30 -0
  37. package/cjs/hooks/use-lightbox-lock-scroll.cjs.map +1 -0
  38. package/cjs/hooks/use-lightbox-swipe-close.cjs +38 -0
  39. package/cjs/hooks/use-lightbox-swipe-close.cjs.map +1 -0
  40. package/cjs/hooks/use-lightbox-zoom.cjs +257 -0
  41. package/cjs/hooks/use-lightbox-zoom.cjs.map +1 -0
  42. package/cjs/index.cjs +34 -0
  43. package/cjs/lightbox.context.cjs +8 -0
  44. package/cjs/lightbox.context.cjs.map +1 -0
  45. package/cjs/lightbox.store.cjs +90 -0
  46. package/cjs/lightbox.store.cjs.map +1 -0
  47. package/esm/Lightbox.mjs +56 -0
  48. package/esm/Lightbox.mjs.map +1 -0
  49. package/esm/Lightbox.module.mjs +30 -0
  50. package/esm/Lightbox.module.mjs.map +1 -0
  51. package/esm/LightboxCaption/LightboxCaption.mjs +30 -0
  52. package/esm/LightboxCaption/LightboxCaption.mjs.map +1 -0
  53. package/esm/LightboxCloseButton/LightboxCloseButton.mjs +32 -0
  54. package/esm/LightboxCloseButton/LightboxCloseButton.mjs.map +1 -0
  55. package/esm/LightboxNavigation/LightboxNavigation.mjs +105 -0
  56. package/esm/LightboxNavigation/LightboxNavigation.mjs.map +1 -0
  57. package/esm/LightboxProvider/LightboxProvider.mjs +29 -0
  58. package/esm/LightboxProvider/LightboxProvider.mjs.map +1 -0
  59. package/esm/LightboxRoot/LightboxRoot.mjs +404 -0
  60. package/esm/LightboxRoot/LightboxRoot.mjs.map +1 -0
  61. package/esm/LightboxSlide/ImageSlide.mjs +27 -0
  62. package/esm/LightboxSlide/ImageSlide.mjs.map +1 -0
  63. package/esm/LightboxSlide/LightboxSlide.mjs +55 -0
  64. package/esm/LightboxSlide/LightboxSlide.mjs.map +1 -0
  65. package/esm/LightboxSlide/VideoSlide.mjs +42 -0
  66. package/esm/LightboxSlide/VideoSlide.mjs.map +1 -0
  67. package/esm/LightboxSlides/LightboxSlides.mjs +56 -0
  68. package/esm/LightboxSlides/LightboxSlides.mjs.map +1 -0
  69. package/esm/LightboxThumbnails/LightboxThumbnails.mjs +72 -0
  70. package/esm/LightboxThumbnails/LightboxThumbnails.mjs.map +1 -0
  71. package/esm/LightboxToolbar/LightboxToolbar.mjs +80 -0
  72. package/esm/LightboxToolbar/LightboxToolbar.mjs.map +1 -0
  73. package/esm/LightboxToolbar/toolbar-items.mjs +153 -0
  74. package/esm/LightboxToolbar/toolbar-items.mjs.map +1 -0
  75. package/esm/default-labels.mjs +20 -0
  76. package/esm/default-labels.mjs.map +1 -0
  77. package/esm/hooks/use-lightbox-keyboard.mjs +107 -0
  78. package/esm/hooks/use-lightbox-keyboard.mjs.map +1 -0
  79. package/esm/hooks/use-lightbox-lock-scroll.mjs +30 -0
  80. package/esm/hooks/use-lightbox-lock-scroll.mjs.map +1 -0
  81. package/esm/hooks/use-lightbox-swipe-close.mjs +38 -0
  82. package/esm/hooks/use-lightbox-swipe-close.mjs.map +1 -0
  83. package/esm/hooks/use-lightbox-zoom.mjs +257 -0
  84. package/esm/hooks/use-lightbox-zoom.mjs.map +1 -0
  85. package/esm/index.mjs +14 -0
  86. package/esm/lightbox.context.mjs +8 -0
  87. package/esm/lightbox.context.mjs.map +1 -0
  88. package/esm/lightbox.store.mjs +79 -0
  89. package/esm/lightbox.store.mjs.map +1 -0
  90. package/lib/Lightbox.d.ts +63 -0
  91. package/lib/LightboxCaption/LightboxCaption.d.ts +18 -0
  92. package/lib/LightboxCloseButton/LightboxCloseButton.d.ts +16 -0
  93. package/lib/LightboxNavigation/LightboxNavigation.d.ts +16 -0
  94. package/lib/LightboxProvider/LightboxProvider.d.ts +19 -0
  95. package/lib/LightboxRoot/LightboxRoot.d.ts +88 -0
  96. package/lib/LightboxSlide/ImageSlide.d.ts +12 -0
  97. package/lib/LightboxSlide/LightboxSlide.d.ts +25 -0
  98. package/lib/LightboxSlide/VideoSlide.d.ts +12 -0
  99. package/lib/LightboxSlides/LightboxSlides.d.ts +20 -0
  100. package/lib/LightboxThumbnails/LightboxThumbnails.d.ts +16 -0
  101. package/lib/LightboxToolbar/LightboxToolbar.d.ts +19 -0
  102. package/lib/LightboxToolbar/toolbar-items.d.ts +5 -0
  103. package/lib/default-labels.d.ts +2 -0
  104. package/lib/hooks/use-lightbox-keyboard.d.ts +15 -0
  105. package/lib/hooks/use-lightbox-lock-scroll.d.ts +7 -0
  106. package/lib/hooks/use-lightbox-swipe-close.d.ts +10 -0
  107. package/lib/hooks/use-lightbox-zoom.d.ts +33 -0
  108. package/lib/index.d.mts +67 -0
  109. package/lib/index.d.ts +67 -0
  110. package/lib/lightbox.context.d.ts +36 -0
  111. package/lib/lightbox.store.d.ts +66 -0
  112. package/lib/lightbox.types.d.ts +131 -0
  113. package/lib/test-utils.d.ts +7 -0
  114. package/package.json +63 -0
  115. package/styles.css +262 -0
  116. package/styles.layer.css +263 -0
@@ -0,0 +1,263 @@
1
+ @layer mantine {.m_4f1afa9a {
2
+ --lightbox-transition-duration: 200ms;
3
+ --lightbox-overlay-color: rgba(0, 0, 0, 0.9);
4
+ --lightbox-z-index: 400;
5
+ --lightbox-toolbar-height: calc(3.5rem * var(--mantine-scale));
6
+ --lightbox-thumbnails-height: calc(6.25rem * var(--mantine-scale));
7
+
8
+ display: contents;
9
+ }
10
+
11
+ .m_143cf98 {
12
+ position: fixed;
13
+ inset: 0;
14
+ z-index: var(--lightbox-z-index);
15
+ background-color: var(--lightbox-overlay-color);
16
+ }
17
+
18
+ .m_7b06bfc1 {
19
+ position: fixed;
20
+ inset: 0;
21
+ z-index: var(--lightbox-z-index);
22
+ display: flex;
23
+ flex-direction: column;
24
+ color: var(--mantine-color-white);
25
+ outline: none;
26
+ }
27
+
28
+ .m_fe5b16c3 {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: space-between;
32
+ height: var(--lightbox-toolbar-height);
33
+ padding: 0 var(--mantine-spacing-md);
34
+ flex-shrink: 0;
35
+ z-index: 1;
36
+ }
37
+
38
+ .m_9e01b17c {
39
+ display: flex;
40
+ align-items: center;
41
+ gap: var(--mantine-spacing-xs);
42
+ }
43
+
44
+ .m_19d8cbd5 {
45
+ display: flex;
46
+ align-items: center;
47
+ justify-content: center;
48
+ width: calc(2.5rem * var(--mantine-scale));
49
+ height: calc(2.5rem * var(--mantine-scale));
50
+ border-radius: var(--mantine-radius-sm);
51
+ color: var(--mantine-color-white);
52
+ opacity: 0.8;
53
+ transition:
54
+ opacity var(--lightbox-transition-duration) ease,
55
+ background-color var(--lightbox-transition-duration) ease;
56
+ }
57
+
58
+ @media (hover: hover) {
59
+
60
+ .m_19d8cbd5:hover {
61
+ opacity: 1;
62
+ background-color: rgba(255, 255, 255, 0.1);
63
+ }
64
+ }
65
+
66
+ @media (hover: none) {
67
+
68
+ .m_19d8cbd5:active {
69
+ opacity: 1;
70
+ background-color: rgba(255, 255, 255, 0.1);
71
+ }
72
+ }
73
+
74
+ .m_7b66e144 {
75
+ font-size: var(--mantine-font-size-sm);
76
+ color: var(--mantine-color-white);
77
+ opacity: 0.8;
78
+ user-select: none;
79
+ }
80
+
81
+ .m_f5ce649a {
82
+ flex: 1;
83
+ position: relative;
84
+ overflow: hidden;
85
+ min-height: 0;
86
+ }
87
+
88
+ .m_7f838760 {
89
+ height: 100%;
90
+ overflow: hidden;
91
+ }
92
+
93
+ .m_b5439507 {
94
+ display: flex;
95
+ height: 100%;
96
+ }
97
+
98
+ .m_9450faf9 {
99
+ position: relative;
100
+ flex: 0 0 100%;
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: center;
104
+ padding: var(--mantine-spacing-md);
105
+ min-width: 0;
106
+ }
107
+
108
+ .m_e659b1e2 {
109
+ max-width: 100%;
110
+ max-height: 100%;
111
+ object-fit: contain;
112
+ user-select: none;
113
+ -webkit-user-drag: none;
114
+ transition: transform var(--lightbox-transition-duration) ease;
115
+ }
116
+
117
+ .m_e659b1e2[data-zoom-enabled] {
118
+ touch-action: none;
119
+ }
120
+
121
+ .m_e659b1e2[data-zoomed] {
122
+ cursor: grab;
123
+ }
124
+
125
+ .m_e659b1e2[data-zoomed]:active {
126
+ cursor: grabbing;
127
+ }
128
+
129
+ .m_e659b1e2[data-dragging] {
130
+ transition: none;
131
+ }
132
+
133
+ .m_e659b1e2[data-zoom-enabled]:not([data-zoomed]) {
134
+ cursor: zoom-in;
135
+ }
136
+
137
+ .m_e70f1d02 {
138
+ width: 100%;
139
+ height: 100%;
140
+ max-width: 100%;
141
+ max-height: 100%;
142
+ object-fit: contain;
143
+ }
144
+
145
+ .m_411d1cbf {
146
+ display: block;
147
+ padding: 0 var(--mantine-spacing-md);
148
+ flex-shrink: 0;
149
+ overflow: hidden;
150
+ }
151
+
152
+ .m_3a7e4a85 {
153
+ width: fit-content;
154
+ max-width: 100%;
155
+ margin-inline: auto;
156
+ height: var(--lightbox-thumbnails-height);
157
+ overflow: hidden;
158
+ }
159
+
160
+ .m_59a13682 {
161
+ display: flex;
162
+ gap: var(--mantine-spacing-xs);
163
+ height: 100%;
164
+ align-items: center;
165
+ }
166
+
167
+ .m_3be82a34 {
168
+ flex: 0 0 auto;
169
+ width: calc(4rem * var(--mantine-scale));
170
+ height: calc(4rem * var(--mantine-scale));
171
+ border-radius: var(--mantine-radius-sm);
172
+ overflow: hidden;
173
+ opacity: 0.5;
174
+ border: calc(0.125rem * var(--mantine-scale)) solid transparent;
175
+ cursor: pointer;
176
+ transition:
177
+ opacity var(--lightbox-transition-duration) ease,
178
+ border-color var(--lightbox-transition-duration) ease;
179
+ padding: 0;
180
+ background: none;
181
+ }
182
+
183
+ @media (hover: hover) {
184
+
185
+ .m_3be82a34:hover {
186
+ opacity: 0.8;
187
+ }
188
+ }
189
+
190
+ @media (hover: none) {
191
+
192
+ .m_3be82a34:active {
193
+ opacity: 0.8;
194
+ }
195
+ }
196
+
197
+ .m_3be82a34[data-active] {
198
+ opacity: 1;
199
+ border-color: var(--mantine-primary-color-filled);
200
+ }
201
+
202
+ .m_fd95cf87 {
203
+ width: 100%;
204
+ height: 100%;
205
+ object-fit: cover;
206
+ }
207
+
208
+ .m_15a759cc {
209
+ position: absolute;
210
+ top: 50%;
211
+ display: flex;
212
+ justify-content: space-between;
213
+ width: 100%;
214
+ padding: 0 var(--mantine-spacing-md);
215
+ pointer-events: none;
216
+ transform: translateY(-50%);
217
+ z-index: 1;
218
+ }
219
+
220
+ .m_a5bee41e {
221
+ display: flex;
222
+ align-items: center;
223
+ justify-content: center;
224
+ width: calc(3rem * var(--mantine-scale));
225
+ height: calc(3rem * var(--mantine-scale));
226
+ color: var(--mantine-color-white);
227
+ pointer-events: all;
228
+ opacity: 0.7;
229
+ transition: opacity var(--lightbox-transition-duration) ease;
230
+ }
231
+
232
+ @media (hover: hover) {
233
+
234
+ .m_a5bee41e:hover {
235
+ opacity: 1;
236
+ }
237
+ }
238
+
239
+ @media (hover: none) {
240
+
241
+ .m_a5bee41e:active {
242
+ opacity: 1;
243
+ }
244
+ }
245
+
246
+ .m_a5bee41e[data-inactive] {
247
+ opacity: 0.3;
248
+ pointer-events: none;
249
+ }
250
+
251
+ .m_633f252e {
252
+ text-align: center;
253
+ padding: var(--mantine-spacing-xs) var(--mantine-spacing-md);
254
+ font-size: var(--mantine-font-size-sm);
255
+ color: var(--mantine-color-white);
256
+ opacity: 0.8;
257
+ flex-shrink: 0;
258
+ }
259
+
260
+ .m_1ae53e92 {
261
+ color: var(--mantine-color-white);
262
+ }
263
+ }