@page-speed/lightbox 0.0.2 → 0.1.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.
package/dist/index.js CHANGED
@@ -2806,11 +2806,11 @@ var require_react_jsx_runtime_development = __commonJS({
2806
2806
  return jsxWithValidation(type, props, key, false);
2807
2807
  }
2808
2808
  }
2809
- var jsx11 = jsxWithValidationDynamic;
2810
- var jsxs7 = jsxWithValidationStatic;
2809
+ var jsx15 = jsxWithValidationDynamic;
2810
+ var jsxs11 = jsxWithValidationStatic;
2811
2811
  exports2.Fragment = REACT_FRAGMENT_TYPE;
2812
- exports2.jsx = jsx11;
2813
- exports2.jsxs = jsxs7;
2812
+ exports2.jsx = jsx15;
2813
+ exports2.jsxs = jsxs11;
2814
2814
  })();
2815
2815
  }
2816
2816
  }
@@ -21605,7 +21605,23 @@ var Lightbox_default = {
21605
21605
  captionTitle: "Lightbox_captionTitle",
21606
21606
  captionText: "Lightbox_captionText",
21607
21607
  pdfContainer: "Lightbox_pdfContainer",
21608
- pdfFallback: "Lightbox_pdfFallback"
21608
+ pdfFallback: "Lightbox_pdfFallback",
21609
+ verticalSplitLayoutRoot: "Lightbox_verticalSplitLayoutRoot",
21610
+ verticalSplitLayoutContainer: "Lightbox_verticalSplitLayoutContainer",
21611
+ verticalSplitContent: "Lightbox_verticalSplitContent",
21612
+ verticalSplitSidebar: "Lightbox_verticalSplitSidebar",
21613
+ customSlideLayoutRoot: "Lightbox_customSlideLayoutRoot",
21614
+ customSlideLayoutContainer: "Lightbox_customSlideLayoutContainer",
21615
+ customSlideContent: "Lightbox_customSlideContent",
21616
+ customSlideChrome: "Lightbox_customSlideChrome",
21617
+ fullscreenLayoutRoot: "Lightbox_fullscreenLayoutRoot",
21618
+ fullscreenLayoutContainer: "Lightbox_fullscreenLayoutContainer",
21619
+ fullscreenContent: "Lightbox_fullscreenContent",
21620
+ fullscreenChrome: "Lightbox_fullscreenChrome",
21621
+ inlineLayoutRoot: "Lightbox_inlineLayoutRoot",
21622
+ inlineLayoutContainer: "Lightbox_inlineLayoutContainer",
21623
+ inlineContent: "Lightbox_inlineContent",
21624
+ inlineToolbar: "Lightbox_inlineToolbar"
21609
21625
  };
21610
21626
 
21611
21627
  // src/components/LightboxOverlay.tsx
@@ -22478,8 +22494,121 @@ function HorizontalLayout({
22478
22494
  ) });
22479
22495
  }
22480
22496
 
22481
- // src/components/Lightbox.tsx
22497
+ // src/components/Layouts/VerticalSplitLayout.tsx
22482
22498
  var import_jsx_runtime14 = __toESM(require_jsx_runtime());
22499
+ function VerticalSplitLayout({
22500
+ content,
22501
+ chrome,
22502
+ height,
22503
+ maxWidth,
22504
+ className,
22505
+ style
22506
+ }) {
22507
+ const containerStyle = {
22508
+ maxWidth,
22509
+ height,
22510
+ ...style
22511
+ };
22512
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: Lightbox_default.verticalSplitLayoutRoot, style: containerStyle, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
22513
+ "div",
22514
+ {
22515
+ className: [
22516
+ Lightbox_default.verticalSplitLayoutContainer,
22517
+ className || ""
22518
+ ].join(" ").trim(),
22519
+ children: [
22520
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: Lightbox_default.verticalSplitContent, children: content }),
22521
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: Lightbox_default.verticalSplitSidebar, children: chrome })
22522
+ ]
22523
+ }
22524
+ ) });
22525
+ }
22526
+
22527
+ // src/components/Layouts/CustomSlideLayout.tsx
22528
+ var import_jsx_runtime15 = __toESM(require_jsx_runtime());
22529
+ function CustomSlideLayout({
22530
+ content,
22531
+ chrome,
22532
+ height,
22533
+ maxWidth,
22534
+ className,
22535
+ style
22536
+ }) {
22537
+ const containerStyle = {
22538
+ maxWidth,
22539
+ height,
22540
+ ...style
22541
+ };
22542
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: Lightbox_default.customSlideLayoutRoot, style: containerStyle, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
22543
+ "div",
22544
+ {
22545
+ className: [
22546
+ Lightbox_default.customSlideLayoutContainer,
22547
+ className || ""
22548
+ ].join(" ").trim(),
22549
+ children: [
22550
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: Lightbox_default.customSlideContent, children: content }),
22551
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: Lightbox_default.customSlideChrome, children: chrome })
22552
+ ]
22553
+ }
22554
+ ) });
22555
+ }
22556
+
22557
+ // src/components/Layouts/FullscreenLayout.tsx
22558
+ var import_jsx_runtime16 = __toESM(require_jsx_runtime());
22559
+ function FullscreenLayout({
22560
+ content,
22561
+ chrome,
22562
+ className,
22563
+ style
22564
+ }) {
22565
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: Lightbox_default.fullscreenLayoutRoot, style, children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
22566
+ "div",
22567
+ {
22568
+ className: [
22569
+ Lightbox_default.fullscreenLayoutContainer,
22570
+ className || ""
22571
+ ].join(" ").trim(),
22572
+ children: [
22573
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: Lightbox_default.fullscreenContent, children: content }),
22574
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: Lightbox_default.fullscreenChrome, children: chrome })
22575
+ ]
22576
+ }
22577
+ ) });
22578
+ }
22579
+
22580
+ // src/components/Layouts/InlineLayout.tsx
22581
+ var import_jsx_runtime17 = __toESM(require_jsx_runtime());
22582
+ function InlineLayout({
22583
+ content,
22584
+ chrome,
22585
+ height,
22586
+ maxWidth,
22587
+ className,
22588
+ style
22589
+ }) {
22590
+ const containerStyle = {
22591
+ maxWidth,
22592
+ height,
22593
+ ...style
22594
+ };
22595
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: Lightbox_default.inlineLayoutRoot, style: containerStyle, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
22596
+ "div",
22597
+ {
22598
+ className: [
22599
+ Lightbox_default.inlineLayoutContainer,
22600
+ className || ""
22601
+ ].join(" ").trim(),
22602
+ children: [
22603
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: Lightbox_default.inlineContent, children: content }),
22604
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: Lightbox_default.inlineToolbar, children: chrome })
22605
+ ]
22606
+ }
22607
+ ) });
22608
+ }
22609
+
22610
+ // src/components/Lightbox.tsx
22611
+ var import_jsx_runtime18 = __toESM(require_jsx_runtime());
22483
22612
  function Lightbox(props) {
22484
22613
  const { items, initialIndex = 0 } = props;
22485
22614
  const gallery = useGalleryState({
@@ -22556,45 +22685,64 @@ function Lightbox(props) {
22556
22685
  captions: true,
22557
22686
  ...props.controls
22558
22687
  };
22559
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: Lightbox_default.lightboxPortal, role: "dialog", "aria-modal": "true", children: [
22560
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
22688
+ const contentNode = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
22689
+ LightboxContent,
22690
+ {
22691
+ item: currentItem,
22692
+ layout,
22693
+ optixFlowConfig: props.optixFlowConfig
22694
+ }
22695
+ );
22696
+ const chromeNode = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
22697
+ LightboxChrome,
22698
+ {
22699
+ currentIndex: gallery.currentIndex,
22700
+ totalItems: items.length,
22701
+ currentItem,
22702
+ canNext: gallery.canNext,
22703
+ canPrev: gallery.canPrev,
22704
+ controls: effectiveControls,
22705
+ onNext: handleNext,
22706
+ onPrev: handlePrev,
22707
+ onClose: handleClose
22708
+ }
22709
+ );
22710
+ const layoutProps = {
22711
+ content: contentNode,
22712
+ chrome: chromeNode,
22713
+ height: props.height,
22714
+ maxWidth: props.maxWidth,
22715
+ className: props.className,
22716
+ style: props.style
22717
+ };
22718
+ if (layout === "inline") {
22719
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(InlineLayout, { ...layoutProps });
22720
+ }
22721
+ let layoutComponent;
22722
+ switch (layout) {
22723
+ case "vertical-split":
22724
+ layoutComponent = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(VerticalSplitLayout, { ...layoutProps });
22725
+ break;
22726
+ case "custom-slide":
22727
+ layoutComponent = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CustomSlideLayout, { ...layoutProps });
22728
+ break;
22729
+ case "fullscreen":
22730
+ layoutComponent = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(FullscreenLayout, { ...layoutProps });
22731
+ break;
22732
+ case "horizontal":
22733
+ default:
22734
+ layoutComponent = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(HorizontalLayout, { ...layoutProps });
22735
+ break;
22736
+ }
22737
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", { className: Lightbox_default.lightboxPortal, role: "dialog", "aria-modal": "true", children: [
22738
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
22561
22739
  LightboxOverlay,
22562
22740
  {
22563
22741
  onClose: handleClose,
22564
22742
  closeOnBackdropClick: props.closeOnBackdropClick ?? true
22565
22743
  }
22566
22744
  ),
22567
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
22568
- HorizontalLayout,
22569
- {
22570
- content: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
22571
- LightboxContent,
22572
- {
22573
- item: currentItem,
22574
- layout,
22575
- optixFlowConfig: props.optixFlowConfig
22576
- }
22577
- ),
22578
- chrome: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
22579
- LightboxChrome,
22580
- {
22581
- currentIndex: gallery.currentIndex,
22582
- totalItems: items.length,
22583
- currentItem,
22584
- canNext: gallery.canNext,
22585
- canPrev: gallery.canPrev,
22586
- controls: effectiveControls,
22587
- onNext: handleNext,
22588
- onPrev: handlePrev,
22589
- onClose: handleClose
22590
- }
22591
- ),
22592
- height: props.height,
22593
- maxWidth: props.maxWidth,
22594
- className: props.className,
22595
- style: props.style
22596
- }
22597
- )
22745
+ layoutComponent
22598
22746
  ] });
22599
22747
  }
22600
22748
 
@@ -22669,13 +22817,17 @@ function useLightbox(props) {
22669
22817
  }
22670
22818
  export {
22671
22819
  ComponentRenderer,
22820
+ CustomSlideLayout,
22821
+ FullscreenLayout,
22672
22822
  HorizontalLayout,
22673
22823
  ImageRenderer,
22824
+ InlineLayout,
22674
22825
  Lightbox,
22675
22826
  LightboxChrome,
22676
22827
  LightboxContent,
22677
22828
  LightboxOverlay,
22678
22829
  PDFRenderer,
22830
+ VerticalSplitLayout,
22679
22831
  VideoRenderer,
22680
22832
  useGalleryState,
22681
22833
  useKeyboardShortcuts,
@@ -97,3 +97,164 @@
97
97
  height: 100%;
98
98
  color: var(--lightbox-text-muted, rgba(255, 255, 255, 0.7));
99
99
  }
100
+ .Lightbox_verticalSplitLayoutRoot2 {
101
+ position: relative;
102
+ max-width: var(--lightbox-max-width, 90vw);
103
+ width: 100%;
104
+ padding: var(--lightbox-padding, 24px);
105
+ box-sizing: border-box;
106
+ }
107
+ .Lightbox_verticalSplitLayoutContainer2 {
108
+ position: relative;
109
+ background: var(--lightbox-modal-bg, #111);
110
+ color: var(--lightbox-text, #fff);
111
+ border-radius: var(--lightbox-radius, 12px);
112
+ overflow: hidden;
113
+ display: flex;
114
+ flex-direction: row;
115
+ min-height: 70vh;
116
+ }
117
+ .Lightbox_verticalSplitContent2 {
118
+ flex: 2;
119
+ display: flex;
120
+ align-items: center;
121
+ justify-content: center;
122
+ background: var(--lightbox-content-bg, #000);
123
+ overflow: auto;
124
+ }
125
+ .Lightbox_verticalSplitSidebar2 {
126
+ flex: 1;
127
+ min-width: 300px;
128
+ max-width: 400px;
129
+ border-left: 1px solid var(--lightbox-border, rgba(255, 255, 255, 0.1));
130
+ display: flex;
131
+ flex-direction: column;
132
+ background: var(--lightbox-sidebar-bg, rgba(0, 0, 0, 0.3));
133
+ }
134
+ @media (max-width: 1024px) {
135
+ .Lightbox_verticalSplitLayoutContainer2 {
136
+ flex-direction: column;
137
+ }
138
+ .Lightbox_verticalSplitSidebar2 {
139
+ min-width: auto;
140
+ max-width: none;
141
+ border-left: none;
142
+ border-top: 1px solid var(--lightbox-border, rgba(255, 255, 255, 0.1));
143
+ }
144
+ }
145
+ .Lightbox_customSlideLayoutRoot2 {
146
+ position: relative;
147
+ max-width: var(--lightbox-max-width, 95vw);
148
+ width: 100%;
149
+ padding: var(--lightbox-padding, 16px);
150
+ box-sizing: border-box;
151
+ }
152
+ .Lightbox_customSlideLayoutContainer2 {
153
+ position: relative;
154
+ background: var(--lightbox-modal-bg, #111);
155
+ color: var(--lightbox-text, #fff);
156
+ border-radius: var(--lightbox-radius, 12px);
157
+ overflow: hidden;
158
+ min-height: 80vh;
159
+ display: flex;
160
+ flex-direction: column;
161
+ }
162
+ .Lightbox_customSlideContent2 {
163
+ flex: 1;
164
+ position: relative;
165
+ display: flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+ background: var(--lightbox-content-bg, #000);
169
+ overflow: auto;
170
+ }
171
+ .Lightbox_customSlideChrome2 {
172
+ position: absolute;
173
+ bottom: 0;
174
+ left: 0;
175
+ right: 0;
176
+ background:
177
+ linear-gradient(
178
+ to top,
179
+ rgba(0, 0, 0, 0.8) 0%,
180
+ transparent 100%);
181
+ padding: 24px 16px 16px;
182
+ z-index: 10;
183
+ }
184
+ .Lightbox_fullscreenLayoutRoot2 {
185
+ position: fixed;
186
+ inset: 0;
187
+ z-index: 1000;
188
+ background: var(--lightbox-fullscreen-bg, #000);
189
+ }
190
+ .Lightbox_fullscreenLayoutContainer2 {
191
+ width: 100%;
192
+ height: 100%;
193
+ display: flex;
194
+ flex-direction: column;
195
+ color: var(--lightbox-text, #fff);
196
+ }
197
+ .Lightbox_fullscreenContent2 {
198
+ flex: 1;
199
+ display: flex;
200
+ align-items: center;
201
+ justify-content: center;
202
+ background: var(--lightbox-content-bg, #000);
203
+ overflow: auto;
204
+ }
205
+ .Lightbox_fullscreenChrome2 {
206
+ position: absolute;
207
+ top: 0;
208
+ left: 0;
209
+ right: 0;
210
+ background:
211
+ linear-gradient(
212
+ to bottom,
213
+ rgba(0, 0, 0, 0.8) 0%,
214
+ transparent 100%);
215
+ padding: 16px 24px 48px;
216
+ z-index: 10;
217
+ }
218
+ .Lightbox_inlineLayoutRoot2 {
219
+ position: relative;
220
+ max-width: var(--lightbox-max-width, 100%);
221
+ width: 100%;
222
+ margin: 0 auto;
223
+ }
224
+ .Lightbox_inlineLayoutContainer2 {
225
+ position: relative;
226
+ background: var(--lightbox-modal-bg, #111);
227
+ color: var(--lightbox-text, #fff);
228
+ border-radius: var(--lightbox-radius, 12px);
229
+ overflow: hidden;
230
+ display: flex;
231
+ flex-direction: column;
232
+ }
233
+ .Lightbox_inlineContent2 {
234
+ flex: 1;
235
+ display: flex;
236
+ align-items: center;
237
+ justify-content: center;
238
+ background: var(--lightbox-content-bg, #000);
239
+ min-height: 400px;
240
+ }
241
+ .Lightbox_inlineToolbar2 {
242
+ border-top: 1px solid var(--lightbox-border, rgba(255, 255, 255, 0.1));
243
+ }
244
+ @media (max-width: 768px) {
245
+ .Lightbox_verticalSplitLayoutRoot2,
246
+ .Lightbox_customSlideLayoutRoot2 {
247
+ padding: 0;
248
+ max-width: 100vw;
249
+ max-height: 100vh;
250
+ }
251
+ .Lightbox_verticalSplitLayoutContainer2,
252
+ .Lightbox_customSlideLayoutContainer2 {
253
+ border-radius: 0;
254
+ min-height: 100vh;
255
+ }
256
+ .Lightbox_customSlideChrome2,
257
+ .Lightbox_fullscreenChrome2 {
258
+ padding: 12px;
259
+ }
260
+ }
@@ -22167,7 +22167,23 @@ var Lightbox_default = {
22167
22167
  captionTitle: "Lightbox_captionTitle2",
22168
22168
  captionText: "Lightbox_captionText2",
22169
22169
  pdfContainer: "Lightbox_pdfContainer2",
22170
- pdfFallback: "Lightbox_pdfFallback2"
22170
+ pdfFallback: "Lightbox_pdfFallback2",
22171
+ verticalSplitLayoutRoot: "Lightbox_verticalSplitLayoutRoot2",
22172
+ verticalSplitLayoutContainer: "Lightbox_verticalSplitLayoutContainer2",
22173
+ verticalSplitContent: "Lightbox_verticalSplitContent2",
22174
+ verticalSplitSidebar: "Lightbox_verticalSplitSidebar2",
22175
+ customSlideLayoutRoot: "Lightbox_customSlideLayoutRoot2",
22176
+ customSlideLayoutContainer: "Lightbox_customSlideLayoutContainer2",
22177
+ customSlideContent: "Lightbox_customSlideContent2",
22178
+ customSlideChrome: "Lightbox_customSlideChrome2",
22179
+ fullscreenLayoutRoot: "Lightbox_fullscreenLayoutRoot2",
22180
+ fullscreenLayoutContainer: "Lightbox_fullscreenLayoutContainer2",
22181
+ fullscreenContent: "Lightbox_fullscreenContent2",
22182
+ fullscreenChrome: "Lightbox_fullscreenChrome2",
22183
+ inlineLayoutRoot: "Lightbox_inlineLayoutRoot2",
22184
+ inlineLayoutContainer: "Lightbox_inlineLayoutContainer2",
22185
+ inlineContent: "Lightbox_inlineContent2",
22186
+ inlineToolbar: "Lightbox_inlineToolbar2"
22171
22187
  };
22172
22188
 
22173
22189
  // src/renderers/ImageRenderer.tsx
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@page-speed/lightbox",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "High-performance, feature-rich lightbox for OpenSite platform",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",