@bluepic/embed 0.4.0-next.165 → 0.4.0-next.167

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.
@@ -7,10 +7,15 @@ export interface BxTableColumn {
7
7
  width?: string;
8
8
  /** Header text for assistive tech only, e.g. an actions column. */
9
9
  srOnlyLabel?: boolean;
10
+ /**
11
+ * Pin the column while the table scrolls sideways. Pinned columns must be
12
+ * the outermost ones (the first N / the last N); anything else is ignored.
13
+ */
14
+ sticky?: 'left' | 'right';
10
15
  }
11
16
  /**
12
- * A table's chrome: the scroll container, the border, the header, row hover and
13
- * per-column alignment.
17
+ * A table's chrome: the scroll container, the border, the header, row hover,
18
+ * per-column alignment, pinned header/columns and row states.
14
19
  *
15
20
  * The BODY is a slot rather than a `rows` prop on purpose. Real tables wrap
16
21
  * their rows — the studio's org list puts every `<tr>` inside a
@@ -19,27 +24,77 @@ export interface BxTableColumn {
19
24
  * keeps its `<tr>`s and this owns everything around them, which is the part
20
25
  * that was being re-written per app.
21
26
  *
22
- * Alignment reaches app-authored cells through custom properties rather than
23
- * classes the caller would have to remember: each column publishes
24
- * `--col-N-align`, and the static rules below read it. Eight columns is the
25
- * supported width; past that, a table is a different problem.
27
+ * Alignment and pinning reach app-authored cells through custom properties
28
+ * rather than classes the caller would have to remember: each column publishes
29
+ * `--col-N-align` (and, when pinned, `--col-N-position/left/right/z`), and the
30
+ * static rules below read them. Twenty-four columns is the supported width.
31
+ *
32
+ * Row states are read off ATTRIBUTES on the caller's `<tr>`, so a table stays
33
+ * a table for assistive tech:
34
+ * - `aria-current="true"` → the ACTIVE row (themed inset ring)
35
+ * - `aria-selected="true"` → a SELECTED row (soft primary background)
26
36
  */
27
37
  type __VLS_Props = {
28
38
  columns?: BxTableColumn[];
29
- /** Outer border and rounding, so the table can sit on the page unwrapped. */
39
+ /** Outer border, so the table can sit on the page unwrapped. */
30
40
  bordered?: boolean;
41
+ /** Corner rounding, same scale as BxCard. */
42
+ radius?: 'none' | 'sm' | 'md' | 'lg';
43
+ /**
44
+ * `plain` is a table on the page's own ground. `card` puts it on a raised
45
+ * surface, for a table that reads as a block of its own rather than a
46
+ * region of the page. (Note this differs from BxList's `card`, where each
47
+ * ROW is a surface; a table's rows cannot be separated without breaking
48
+ * column alignment, which is the whole point of a table.)
49
+ */
50
+ variant?: 'plain' | 'card';
31
51
  /** Row highlight on hover. Off unless rows actually do something. */
32
52
  hoverable?: boolean;
33
53
  dense?: boolean;
54
+ /** Keep the header row visible while the body scrolls vertically. */
55
+ stickyHeader?: boolean;
56
+ /**
57
+ * Fill the parent (a flex column) and scroll INSIDE the wrapper in both
58
+ * axes, instead of growing with the rows. Momentum scrolling and contained
59
+ * overscroll come with it, so the page never scrolls sideways.
60
+ */
61
+ fill?: boolean;
62
+ /** Cap the wrapper's height; the body scrolls beyond it. */
63
+ maxHeight?: string;
64
+ /**
65
+ * Pin the first `left` / last `right` columns while scrolling sideways.
66
+ * The per-column `sticky` field is the other way to say the same thing.
67
+ */
68
+ stickyColumns?: {
69
+ left?: number;
70
+ right?: number;
71
+ };
34
72
  };
35
73
  type __VLS_Slots = {
36
74
  default?: () => VNode[] | VNode;
75
+ /** Replaces a header cell's label; the column def and its index come along. */
76
+ 'header-cell'?: (scope: {
77
+ column: BxTableColumn;
78
+ index: number;
79
+ }) => VNode[] | VNode;
37
80
  };
38
- declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
81
+ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {
82
+ /** The scroll container, for `scrollIntoView` on a row or programmatic scrolling. */
83
+ wrapperRef: import("vue").Ref<HTMLDivElement | undefined, HTMLDivElement | undefined>;
84
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
85
+ fill: boolean;
39
86
  bordered: boolean;
40
87
  hoverable: boolean;
88
+ radius: "none" | "sm" | "md" | "lg";
89
+ maxHeight: string;
90
+ variant: "plain" | "card";
41
91
  columns: BxTableColumn[];
42
92
  dense: boolean;
93
+ stickyHeader: boolean;
94
+ stickyColumns: {
95
+ left?: number;
96
+ right?: number;
97
+ };
43
98
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
44
99
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
45
100
  export default _default;
@@ -9032,8 +9032,9 @@ export declare class BluepicEmbed extends EventTarget {
9032
9032
  id: number;
9033
9033
  uid: string;
9034
9034
  userId: string;
9035
+ orgId: number | null;
9035
9036
  name: string;
9036
- type: "template" | "email" | "widget" | "team" | "web" | "batch" | "api";
9037
+ type: "template" | "email" | "batch" | "widget" | "team" | "web";
9037
9038
  active: boolean;
9038
9039
  private: boolean;
9039
9040
  password: string | null;
@@ -9052,7 +9053,7 @@ export declare class BluepicEmbed extends EventTarget {
9052
9053
  templates: string[];
9053
9054
  config: {
9054
9055
  bluepicBranding: boolean;
9055
- layout: "stack" | "gallery" | "selection:horizontal" | "selection:vertical";
9056
+ layout: "gallery" | "stack" | "selection:horizontal" | "selection:vertical";
9056
9057
  allowPanAndZoom: boolean;
9057
9058
  sortByCategories: boolean;
9058
9059
  export: {
@@ -9073,6 +9074,7 @@ export declare class BluepicEmbed extends EventTarget {
9073
9074
  trackLinks?: boolean | undefined;
9074
9075
  redactLogging?: boolean | undefined;
9075
9076
  };
9077
+ editMode?: "all" | "batch" | "single" | undefined;
9076
9078
  logo?: string | undefined;
9077
9079
  title?: string | undefined;
9078
9080
  hints?: {
@@ -9169,8 +9171,9 @@ export declare class BluepicEmbed extends EventTarget {
9169
9171
  id: number;
9170
9172
  uid: string;
9171
9173
  userId: string;
9174
+ orgId: number | null;
9172
9175
  name: string;
9173
- type: "template" | "email" | "widget" | "team" | "web" | "batch" | "api";
9176
+ type: "template" | "email" | "batch" | "widget" | "team" | "web";
9174
9177
  active: boolean;
9175
9178
  private: boolean;
9176
9179
  password: string | null;
@@ -9189,7 +9192,7 @@ export declare class BluepicEmbed extends EventTarget {
9189
9192
  templates: string[];
9190
9193
  config: {
9191
9194
  bluepicBranding: boolean;
9192
- layout: "stack" | "gallery" | "selection:horizontal" | "selection:vertical";
9195
+ layout: "gallery" | "stack" | "selection:horizontal" | "selection:vertical";
9193
9196
  allowPanAndZoom: boolean;
9194
9197
  sortByCategories: boolean;
9195
9198
  export: {
@@ -9210,6 +9213,7 @@ export declare class BluepicEmbed extends EventTarget {
9210
9213
  trackLinks?: boolean | undefined;
9211
9214
  redactLogging?: boolean | undefined;
9212
9215
  };
9216
+ editMode?: "all" | "batch" | "single" | undefined;
9213
9217
  logo?: string | undefined;
9214
9218
  title?: string | undefined;
9215
9219
  hints?: {