@thangdevalone/meeting-grid-layout-vue 1.5.2 → 1.5.3
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/README.md +1 -0
- package/dist/index.cjs +15 -3
- package/dist/index.d.cts +23 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.mjs +15 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ Wraps the grid and provides layout via `provide`/`inject`.
|
|
|
56
56
|
| `float-height` | `number` | - | Height of the auto-float PiP (2-person mode). Overrides breakpoints. |
|
|
57
57
|
| `float-breakpoints` | `PipBreakpoint[]` | - | Responsive breakpoints for auto-float PiP (see [Responsive PiP](#responsive-pip)) |
|
|
58
58
|
| `pip-index` | `number` | `1` | Which participant (0 or 1) is the floating PiP in 2-person mode |
|
|
59
|
+
| `pin-only` | `boolean` | `false` | Mobile pin-only mode: page 0 = pinned full-screen, page 1+ = others gallery (≤768px) |
|
|
59
60
|
| `tag` | `string` | `'div'` | Root HTML element tag |
|
|
60
61
|
|
|
61
62
|
### `<GridItem>`
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const vue = require('vue');
|
|
4
|
-
const core = require('@vueuse/core');
|
|
5
3
|
const meetingGridLayoutCore = require('@thangdevalone/meeting-grid-layout-core');
|
|
4
|
+
const core = require('@vueuse/core');
|
|
5
|
+
const vue = require('vue');
|
|
6
6
|
const motionV = require('motion-v');
|
|
7
7
|
|
|
8
8
|
function useGridDimensions(elementRef) {
|
|
@@ -152,6 +152,17 @@ const GridContainer = vue.defineComponent({
|
|
|
152
152
|
type: Number,
|
|
153
153
|
default: void 0
|
|
154
154
|
},
|
|
155
|
+
/**
|
|
156
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
157
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
158
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
159
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
160
|
+
* @default false
|
|
161
|
+
*/
|
|
162
|
+
pinOnly: {
|
|
163
|
+
type: Boolean,
|
|
164
|
+
default: false
|
|
165
|
+
},
|
|
155
166
|
/** HTML tag to render */
|
|
156
167
|
tag: {
|
|
157
168
|
type: String,
|
|
@@ -177,7 +188,8 @@ const GridContainer = vue.defineComponent({
|
|
|
177
188
|
floatWidth: props.floatWidth,
|
|
178
189
|
floatHeight: props.floatHeight,
|
|
179
190
|
floatBreakpoints: props.floatBreakpoints,
|
|
180
|
-
pipIndex: props.pipIndex
|
|
191
|
+
pipIndex: props.pipIndex,
|
|
192
|
+
pinOnly: props.pinOnly
|
|
181
193
|
}));
|
|
182
194
|
const grid = useMeetGrid(gridOptions);
|
|
183
195
|
vue.provide(GridContextKey, {
|
package/dist/index.d.cts
CHANGED
|
@@ -149,6 +149,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
149
149
|
type: NumberConstructor;
|
|
150
150
|
default: undefined;
|
|
151
151
|
};
|
|
152
|
+
/**
|
|
153
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
154
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
155
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
156
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
157
|
+
* @default false
|
|
158
|
+
*/
|
|
159
|
+
pinOnly: {
|
|
160
|
+
type: BooleanConstructor;
|
|
161
|
+
default: boolean;
|
|
162
|
+
};
|
|
152
163
|
/** HTML tag to render */
|
|
153
164
|
tag: {
|
|
154
165
|
type: StringConstructor;
|
|
@@ -253,6 +264,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
253
264
|
type: NumberConstructor;
|
|
254
265
|
default: undefined;
|
|
255
266
|
};
|
|
267
|
+
/**
|
|
268
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
269
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
270
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
271
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
272
|
+
* @default false
|
|
273
|
+
*/
|
|
274
|
+
pinOnly: {
|
|
275
|
+
type: BooleanConstructor;
|
|
276
|
+
default: boolean;
|
|
277
|
+
};
|
|
256
278
|
/** HTML tag to render */
|
|
257
279
|
tag: {
|
|
258
280
|
type: StringConstructor;
|
|
@@ -274,6 +296,7 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
274
296
|
floatHeight: number;
|
|
275
297
|
floatBreakpoints: PipBreakpoint[];
|
|
276
298
|
pipIndex: number;
|
|
299
|
+
pinOnly: boolean;
|
|
277
300
|
tag: string;
|
|
278
301
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
279
302
|
declare const GridItem: vue.DefineComponent<vue.ExtractPropTypes<{
|
package/dist/index.d.mts
CHANGED
|
@@ -149,6 +149,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
149
149
|
type: NumberConstructor;
|
|
150
150
|
default: undefined;
|
|
151
151
|
};
|
|
152
|
+
/**
|
|
153
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
154
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
155
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
156
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
157
|
+
* @default false
|
|
158
|
+
*/
|
|
159
|
+
pinOnly: {
|
|
160
|
+
type: BooleanConstructor;
|
|
161
|
+
default: boolean;
|
|
162
|
+
};
|
|
152
163
|
/** HTML tag to render */
|
|
153
164
|
tag: {
|
|
154
165
|
type: StringConstructor;
|
|
@@ -253,6 +264,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
253
264
|
type: NumberConstructor;
|
|
254
265
|
default: undefined;
|
|
255
266
|
};
|
|
267
|
+
/**
|
|
268
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
269
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
270
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
271
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
272
|
+
* @default false
|
|
273
|
+
*/
|
|
274
|
+
pinOnly: {
|
|
275
|
+
type: BooleanConstructor;
|
|
276
|
+
default: boolean;
|
|
277
|
+
};
|
|
256
278
|
/** HTML tag to render */
|
|
257
279
|
tag: {
|
|
258
280
|
type: StringConstructor;
|
|
@@ -274,6 +296,7 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
274
296
|
floatHeight: number;
|
|
275
297
|
floatBreakpoints: PipBreakpoint[];
|
|
276
298
|
pipIndex: number;
|
|
299
|
+
pinOnly: boolean;
|
|
277
300
|
tag: string;
|
|
278
301
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
279
302
|
declare const GridItem: vue.DefineComponent<vue.ExtractPropTypes<{
|
package/dist/index.d.ts
CHANGED
|
@@ -149,6 +149,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
149
149
|
type: NumberConstructor;
|
|
150
150
|
default: undefined;
|
|
151
151
|
};
|
|
152
|
+
/**
|
|
153
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
154
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
155
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
156
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
157
|
+
* @default false
|
|
158
|
+
*/
|
|
159
|
+
pinOnly: {
|
|
160
|
+
type: BooleanConstructor;
|
|
161
|
+
default: boolean;
|
|
162
|
+
};
|
|
152
163
|
/** HTML tag to render */
|
|
153
164
|
tag: {
|
|
154
165
|
type: StringConstructor;
|
|
@@ -253,6 +264,17 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
253
264
|
type: NumberConstructor;
|
|
254
265
|
default: undefined;
|
|
255
266
|
};
|
|
267
|
+
/**
|
|
268
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
269
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
270
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
271
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
272
|
+
* @default false
|
|
273
|
+
*/
|
|
274
|
+
pinOnly: {
|
|
275
|
+
type: BooleanConstructor;
|
|
276
|
+
default: boolean;
|
|
277
|
+
};
|
|
256
278
|
/** HTML tag to render */
|
|
257
279
|
tag: {
|
|
258
280
|
type: StringConstructor;
|
|
@@ -274,6 +296,7 @@ declare const GridContainer: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
274
296
|
floatHeight: number;
|
|
275
297
|
floatBreakpoints: PipBreakpoint[];
|
|
276
298
|
pipIndex: number;
|
|
299
|
+
pinOnly: boolean;
|
|
277
300
|
tag: string;
|
|
278
301
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
279
302
|
declare const GridItem: vue.DefineComponent<vue.ExtractPropTypes<{
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ref, onMounted, computed, defineComponent, provide, h, inject, watch } from 'vue';
|
|
2
|
-
import { useResizeObserver } from '@vueuse/core';
|
|
3
1
|
import { createMeetGrid, getSpringConfig, resolveFloatSize } from '@thangdevalone/meeting-grid-layout-core';
|
|
4
2
|
export { createGrid, createGridItemPositioner, createMeetGrid, getAspectRatio, getGridItemDimensions, getSpringConfig, springPresets } from '@thangdevalone/meeting-grid-layout-core';
|
|
3
|
+
import { useResizeObserver } from '@vueuse/core';
|
|
4
|
+
import { ref, onMounted, computed, defineComponent, provide, h, inject, watch } from 'vue';
|
|
5
5
|
import { useMotionValue, animate, motion } from 'motion-v';
|
|
6
6
|
|
|
7
7
|
function useGridDimensions(elementRef) {
|
|
@@ -151,6 +151,17 @@ const GridContainer = defineComponent({
|
|
|
151
151
|
type: Number,
|
|
152
152
|
default: void 0
|
|
153
153
|
},
|
|
154
|
+
/**
|
|
155
|
+
* Pin-only mode. When enabled with pagination on mobile/tablet (container width <= 768px):
|
|
156
|
+
* - Page 0: Only the pinned participant is shown (full screen)
|
|
157
|
+
* - Page 1+: Other participants are shown in gallery grid (without pin)
|
|
158
|
+
* On desktop (width > 768px), the layout behaves as normal sidebar.
|
|
159
|
+
* @default false
|
|
160
|
+
*/
|
|
161
|
+
pinOnly: {
|
|
162
|
+
type: Boolean,
|
|
163
|
+
default: false
|
|
164
|
+
},
|
|
154
165
|
/** HTML tag to render */
|
|
155
166
|
tag: {
|
|
156
167
|
type: String,
|
|
@@ -176,7 +187,8 @@ const GridContainer = defineComponent({
|
|
|
176
187
|
floatWidth: props.floatWidth,
|
|
177
188
|
floatHeight: props.floatHeight,
|
|
178
189
|
floatBreakpoints: props.floatBreakpoints,
|
|
179
|
-
pipIndex: props.pipIndex
|
|
190
|
+
pipIndex: props.pipIndex,
|
|
191
|
+
pinOnly: props.pinOnly
|
|
180
192
|
}));
|
|
181
193
|
const grid = useMeetGrid(gridOptions);
|
|
182
194
|
provide(GridContextKey, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thangdevalone/meeting-grid-layout-vue",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3",
|
|
4
4
|
"description": "Vue 3 integration for meeting-grid-layout with Motion animations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@vueuse/core": "^10.7.0",
|
|
45
45
|
"motion-v": "^1.0.0",
|
|
46
|
-
"@thangdevalone/meeting-grid-layout-core": "1.5.
|
|
46
|
+
"@thangdevalone/meeting-grid-layout-core": "1.5.3"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"vue": "^3.4.0",
|