@voxel51/voodo 0.0.24 → 0.0.26

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.
@@ -0,0 +1,67 @@
1
+ import { HTMLAttributes, ReactElement, ReactNode } from 'react';
2
+ import { Descriptor, Orientation } from '../../types';
3
+ export interface ImageListProps<T = unknown> extends HTMLAttributes<HTMLDivElement> {
4
+ /** Items to display in the grid. */
5
+ items: Descriptor<T>[];
6
+ /** Renders the content of each grid cell. */
7
+ renderItem: (data: T, id: string) => ReactNode;
8
+ /**
9
+ * Number of columns for vertical orientation, or number of rows for
10
+ * horizontal orientation. Defaults to `3`.
11
+ */
12
+ cols?: number;
13
+ /** Gap between cells in pixels. Defaults to `8`. */
14
+ gap?: number;
15
+ /**
16
+ * Controls the scroll axis.
17
+ * - `Orientation.Column` (default) — items flow into columns; the list
18
+ * scrolls **vertically**.
19
+ * - `Orientation.Row` — items flow into rows; the list scrolls
20
+ * **horizontally**.
21
+ */
22
+ orientation?: Orientation;
23
+ /**
24
+ * Fixed height of each row in pixels for vertical orientation.
25
+ * Defaults to `164`.
26
+ */
27
+ rowHeight?: number;
28
+ /**
29
+ * Fixed width of each auto-generated column in pixels for horizontal
30
+ * orientation. Defaults to `164`.
31
+ */
32
+ colWidth?: number;
33
+ /**
34
+ * Called when the sentinel element near the end of the list becomes
35
+ * visible. Use this to fetch and append more items.
36
+ */
37
+ onLoadMore?: () => void;
38
+ /** Set to `true` while loading additional items. */
39
+ hasMore?: boolean;
40
+ /** Displays a {@link Spinner} in the sentinel area while `true`. */
41
+ loading?: boolean;
42
+ }
43
+ /**
44
+ * A scrollable grid that lays items out in a uniform, non-masonry grid.
45
+ * Supports vertical and horizontal scroll directions and infinite scroll
46
+ * via `onLoadMore`.
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * <ImageList
51
+ * items={photos.map((p) => ({ id: p.id, data: p }))}
52
+ * renderItem={(photo) => (
53
+ * <img src={photo.src} alt={photo.alt} className="size-full object-cover" />
54
+ * )}
55
+ * cols={3}
56
+ * rowHeight={200}
57
+ * onLoadMore={fetchMore}
58
+ * hasMore={hasMore}
59
+ * loading={loading}
60
+ * />
61
+ * ```
62
+ */
63
+ export declare function ImageList<T = unknown>({ items, renderItem, cols, gap, orientation, rowHeight, colWidth, onLoadMore, hasMore, loading, className, style, ...rest }: ImageListProps<T>): ReactElement;
64
+ export declare namespace ImageList {
65
+ var displayName: string;
66
+ }
67
+ //# sourceMappingURL=ImageList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageList.d.ts","sourceRoot":"","sources":["../../../src/components/ImageList/ImageList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,SAAS,EAIV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,UAAU,EAAE,WAAW,EAAQ,MAAM,SAAS,CAAC;AAGxD,MAAM,WAAW,cAAc,CAC7B,CAAC,GAAG,OAAO,CACX,SAAQ,cAAc,CAAC,cAAc,CAAC;IACtC,oCAAoC;IACpC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,6CAA6C;IAC7C,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;IAC/C;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,EACrC,KAAK,EACL,UAAU,EACV,IAAQ,EACR,GAAO,EACP,WAAgC,EAChC,SAAe,EACf,QAAc,EACd,UAAU,EACV,OAAe,EACf,OAAe,EACf,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,CA0ElC;yBAxFe,SAAS"}
@@ -0,0 +1,2 @@
1
+ export * from './ImageList';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ImageList/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/components/ListItem/ListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAe3D,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CAwEtC,CAAC"}
1
+ {"version":3,"file":"ListItem.d.ts","sourceRoot":"","sources":["../../../src/components/ListItem/ListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAe3D,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA8EtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Pill.d.ts","sourceRoot":"","sources":["../../../src/components/Pill/Pill.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAMhD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,MAAM,EACN,aAAa,EACb,MAAM,EACN,IAAI,EAEJ,WAAW,EACX,SAAS,EACV,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,eAAe,CAAC;IAChE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAQD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAyC9B,CAAC"}
1
+ {"version":3,"file":"Pill.d.ts","sourceRoot":"","sources":["../../../src/components/Pill/Pill.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAMhD,OAAO,EACL,eAAe,EACf,QAAQ,EACR,MAAM,EACN,aAAa,EACb,MAAM,EACN,IAAI,EAEJ,WAAW,EACX,SAAS,EACV,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,eAAe,CAAC;IAChE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAQD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CA6C9B,CAAC"}
@@ -8,14 +8,22 @@ export interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, "chil
8
8
  lockX?: boolean;
9
9
  /** Lock vertical (y-axis) movement. Default `false`. */
10
10
  lockY?: boolean;
11
- /** Initial pixel offset from the left edge of the parent container.*/
12
- xOffset?: number;
13
- /** Initial pixel offset from the top edge of the parent container.*/
14
- yOffset?: number;
11
+ /** Initial offset from the left edge of the parent container. Accepts any CSS length (e.g. `20`, `"10%"`, `"2rem"`). Default `20`. */
12
+ xOffset?: string | number;
13
+ /** Initial offset from the top edge of the parent container. Accepts any CSS length (e.g. `20`, `"10%"`, `"2rem"`). Default `20`. */
14
+ yOffset?: string | number;
15
15
  /** Stacking layer for the toolbar. Default `ZIndex.AboveModal`. */
16
16
  zIndex?: ZIndex;
17
17
  /** Whether the toolbar is rendered. Default `true`. */
18
18
  visible?: boolean;
19
+ /**
20
+ * Called after every drag move with the new pixel position.
21
+ * Use this to persist the toolbar's position across remounts.
22
+ */
23
+ onPositionChange?: (pos: {
24
+ x: number;
25
+ y: number;
26
+ }) => void;
19
27
  }
20
28
  /**
21
29
  * A generic floating, draggable toolbar.
@@ -30,10 +38,11 @@ export interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, "chil
30
38
  * @param props.orientation - Layout direction for groups and actions. Default `Orientation.Column`.
31
39
  * @param props.lockX - Lock horizontal (x-axis) movement. Default `false`.
32
40
  * @param props.lockY - Lock vertical (y-axis) movement. Default `false`.
33
- * @param props.xOffset - Initial pixel offset from the left edge of the parent container. Default `20`.
34
- * @param props.yOffset - Initial pixel offset from the top edge of the parent container. Default `20`.
41
+ * @param props.xOffset - Initial offset from the left edge of the parent container. Accepts any CSS length (e.g. `20`, `"10%"`, `"2rem"`). Default `20`.
42
+ * @param props.yOffset - Initial offset from the top edge of the parent container. Accepts any CSS length (e.g. `20`, `"10%"`, `"2rem"`). Default `20`.
35
43
  * @param props.zIndex - Stacking layer for the toolbar. Default `ZIndex.AboveModal`.
36
44
  * @param props.visible - Whether the toolbar is rendered. Default `true`.
45
+ * @param props.onPositionChange - Called after every drag move with the new pixel position.
37
46
  * @param props - Any additional `HTMLDivElement` attributes (e.g. `data-testid`, `aria-label`) are
38
47
  * forwarded to the root `div`. Internal `onPointerDown`, `onClick`, and `onKeyDown` handlers that
39
48
  * call `stopPropagation` are merged with any consumer-provided handlers.
@@ -50,7 +59,7 @@ export interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, "chil
50
59
  * ```
51
60
  */
52
61
  export declare const Toolbar: {
53
- ({ children, orientation, lockX, lockY, xOffset, yOffset, zIndex, className, style, visible, onPointerDown, onClick, onKeyDown, ...props }: ToolbarProps): JSX.Element | null;
62
+ ({ children, orientation, lockX, lockY, xOffset, yOffset, zIndex, className, style, visible, onPointerDown, onClick, onKeyDown, onPositionChange, ...props }: ToolbarProps): JSX.Element | null;
54
63
  displayName: string;
55
64
  };
56
65
  //# sourceMappingURL=Toolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,cAAc,EACd,GAAG,EAEH,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,OAAO,EAQL,WAAW,EAKX,MAAM,EAEP,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,YAAa,SAAQ,IAAI,CACxC,cAAc,CAAC,cAAc,CAAC,EAC9B,UAAU,CACX;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,OAAO;gJAejB,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;;CA8HnC,CAAC"}
1
+ {"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar/Toolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIL,cAAc,EACd,GAAG,EAEH,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,OAAO,EAQL,WAAW,EAKX,MAAM,EAEP,MAAM,SAAS,CAAC;AAMjB,MAAM,WAAW,YAAa,SAAQ,IAAI,CACxC,cAAc,CAAC,cAAc,CAAC,EAC9B,UAAU,CACX;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sIAAsI;IACtI,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,qIAAqI;IACrI,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5D;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,OAAO;kKAgBjB,YAAY,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI;;CA+HnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar/ToolbarGroup.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,cAAc,CAAC,cAAc,CAAC,EAC9B,UAAU,CACX;IACC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY;wCAItB,iBAAiB,GAAG,GAAG,CAAC,OAAO;;CA4BjC,CAAC"}
1
+ {"version":3,"file":"ToolbarGroup.d.ts","sourceRoot":"","sources":["../../../src/components/Toolbar/ToolbarGroup.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,cAAc,CAAC,cAAc,CAAC,EAC9B,UAAU,CACX;IACC,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY;wCAItB,iBAAiB,GAAG,GAAG,CAAC,OAAO;;CAqCjC,CAAC"}
@@ -10,6 +10,7 @@ export * from './FormField';
10
10
  export * from './FormFieldGroup';
11
11
  export * from './Heading';
12
12
  export * from './Icons';
13
+ export * from './ImageList';
13
14
  export * from './Input';
14
15
  export * from './ListItem';
15
16
  export * from './Pill';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}