@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 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.2",
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.2"
46
+ "@thangdevalone/meeting-grid-layout-core": "1.5.3"
47
47
  },
48
48
  "devDependencies": {
49
49
  "vue": "^3.4.0",