@dressed/react 1.3.1 → 1.5.0-rc.1

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
@@ -32,6 +32,24 @@ export default async function ping(interaction: CommandInteraction) {
32
32
  }
33
33
  ```
34
34
 
35
+ If you don't want to manually patch every interaction, you can use middleware:
36
+
37
+ ```ts
38
+ // dressed.config.ts
39
+ import { patchInteraction } from "@dressed/react";
40
+ import type { ServerConfig } from "dressed/server";
41
+
42
+ const config: ServerConfig = {
43
+ build: { extensions: ["tsx", "ts"] },
44
+ middleware: {
45
+ commands: (i) => [patchInteraction(i)],
46
+ components: (i, a) => [patchInteraction(i), a],
47
+ },
48
+ };
49
+
50
+ export default config;
51
+ ```
52
+
35
53
  > [!IMPORTANT]
36
54
  > In order for Dressed to bundle your tsx/jsx files, the extension must be added to the build config's extensions array\
37
55
  > e.g. `dressed build -E tsx,ts`
@@ -0,0 +1,9 @@
1
+ import { type ReactElement, type ReactNode } from "react";
2
+ import type { APILabelComponent } from "discord-api-types/v10";
3
+ import { type ComponentNode } from "../react/renderer.ts";
4
+ type LabelProps = Omit<APILabelComponent, "components" | "type"> & {
5
+ children: ReactNode;
6
+ };
7
+ export declare function Label({ label, description, children, ...rest }: LabelProps): ReactElement<APILabelComponent>;
8
+ export declare function parseActionRow<T extends APILabelComponent>(props: T, children: ComponentNode[]): Promise<T>;
9
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Label as DressedComponent } from "dressed";
2
+ import { createElement } from "react";
3
+ import { renderNode } from "../react/renderer.js";
4
+ export function Label({ label, description, children, ...rest }) {
5
+ const props = DressedComponent(label, null, description, rest);
6
+ return createElement("dressed-node", props, children);
7
+ }
8
+ export async function parseActionRow(props, children) {
9
+ return { ...props, components: await Promise.all(children.map(renderNode)) };
10
+ }
11
+ //# sourceMappingURL=label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../src/components/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAqC,MAAM,OAAO,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAsB,MAAM,sBAAsB,CAAC;AAMtE,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,IAAI,EACI;IACX,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,EAAE,IAAa,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;IACxE,OAAO,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAQ,EACR,QAAyB;IAEzB,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { ActionRow } from "./components/action-row.ts";
2
2
  export { Button } from "./components/button.ts";
3
3
  export { Container } from "./components/container.ts";
4
4
  export { File } from "./components/file.ts";
5
+ export { Label } from "./components/label.ts";
5
6
  export { MediaGallery, MediaGalleryItem } from "./components/media-gallery.ts";
6
7
  export { Section } from "./components/section.ts";
7
8
  export { SelectMenu, SelectMenuOption } from "./components/select-menu.ts";
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { ActionRow } from "./components/action-row.js";
3
3
  export { Button } from "./components/button.js";
4
4
  export { Container } from "./components/container.js";
5
5
  export { File } from "./components/file.js";
6
+ export { Label } from "./components/label.js";
6
7
  export { MediaGallery, MediaGalleryItem } from "./components/media-gallery.js";
7
8
  export { Section } from "./components/section.js";
8
9
  export { SelectMenu, SelectMenuOption } from "./components/select-menu.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,YAAY;AACZ,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,YAAY;AACZ,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC"}
@@ -32,15 +32,9 @@ const config = {
32
32
  afterActiveInstanceBlur() { },
33
33
  getInstanceFromNode: () => null,
34
34
  getInstanceFromScope: () => null,
35
- clearContainer: (renderer) => {
36
- renderer.nodes.length = 0;
37
- },
38
- appendChildToContainer: (renderer, child) => {
39
- renderer.nodes.push(child);
40
- },
41
- removeChildFromContainer: (renderer, child) => {
42
- renderer.nodes.filter((n) => n !== child);
43
- },
35
+ clearContainer: (renderer) => (renderer.nodes.length = 0),
36
+ appendChildToContainer: (renderer, child) => renderer.nodes.push(child),
37
+ removeChildFromContainer: (renderer, child) => renderer.nodes.filter((n) => n !== child),
44
38
  insertInContainerBefore: (renderer, child, before) => {
45
39
  let index = renderer.nodes.indexOf(before);
46
40
  if (index === -1) {
@@ -48,15 +42,9 @@ const config = {
48
42
  }
49
43
  renderer.nodes.splice(index, 0, child);
50
44
  },
51
- appendInitialChild: (parent, child) => {
52
- parent.children.push(child);
53
- },
54
- appendChild: (parent, child) => {
55
- parent.children.push(child);
56
- },
57
- removeChild: (parent, child) => {
58
- parent.children.filter((n) => n !== child);
59
- },
45
+ appendInitialChild: (parent, child) => parent.children.push(child),
46
+ appendChild: (parent, child) => parent.children.push(child),
47
+ removeChild: (parent, child) => parent.children.filter((n) => n !== child),
60
48
  insertBefore: (parent, child, before) => {
61
49
  let index = parent.children.indexOf(before);
62
50
  if (index === -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/react/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../src/react/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAa,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AAE/D,IAAI,qBAAqB,GAAW,eAAe,CAAC;AAEpD,MAAM,MAAM,GAeR;IACF,gBAAgB,EAAE,IAAI;IACtB,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,eAAe,EAAE,UAAU,CAAC,UAAU;IACtC,aAAa,EAAE,UAAU,CAAC,YAAY;IACtC,SAAS,EAAE,CAAC,CAAC;IACb,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC9B,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC/B,cAAc,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9B,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,6DAA6D;QAC7D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QAEpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC;IAClD,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK;IACjC,qBAAqB,KAAI,CAAC;IAC1B,wBAAwB,KAAI,CAAC;IAC7B,uBAAuB,KAAI,CAAC;IAC5B,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC/B,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI;IAChC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACzD,sBAAsB,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACvE,wBAAwB,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAC5C,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;IAC3C,uBAAuB,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACnD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,kBAAkB,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAClE,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3D,WAAW,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;IAC1E,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACjC,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;IAC1C,CAAC;IACD,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC5B,kBAAkB,KAAI,CAAC;IACvB,kBAAkB,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACD,iBAAiB,EAAE,GAAG,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,uBAAuB,EAAE,GAAG,EAAE,CAAC,KAAK;IACpC,wBAAwB,EAAE,CAAC,WAAW,EAAE,EAAE;QACxC,qBAAqB,GAAG,WAAW,CAAC;IACtC,CAAC;IACD,wBAAwB,EAAE,GAAG,EAAE,CAAC,qBAAqB;IACrD,qBAAqB,EAAE,GAAG,EAAE,CAC1B,qBAAqB,KAAK,eAAe;QACvC,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,oBAAoB;IAC1B,gBAAgB,EAAE,GAAG,EAAE,CAAC,KAAK;IAC7B,oBAAoB,EAAE,IAAI;IAC1B,qBAAqB,EAAE;QACrB,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,CAAC;KACiB;IAClC,iBAAiB,KAAI,CAAC;IACtB,wBAAwB,KAAI,CAAC;IAC7B,4BAA4B,EAAE,GAAG,EAAE,CAAC,KAAK;IACzC,mBAAmB,KAAI,CAAC;IACxB,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI;IAC5B,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC/B,eAAe,EAAE,GAAG,EAAE,CAAC,KAAK;IAC5B,qBAAqB,KAAI,CAAC;IAC1B,eAAe,KAAI,CAAC;IACpB,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -6,13 +6,36 @@ import { parseTextDisplay } from "../components/text-display.js";
6
6
  import { parseSelectMenu } from "../components/select-menu.js";
7
7
  import { parseMediaGallery } from "../components/media-gallery.js";
8
8
  import { parseSection } from "../components/section.js";
9
+ import { createTextNode } from "./text-node.js";
10
+ function mergeTextNodes(nodes) {
11
+ const merged = [];
12
+ let content = "";
13
+ function pushText() {
14
+ if (content.length) {
15
+ merged.push(createTextNode(content));
16
+ content = "";
17
+ }
18
+ }
19
+ for (const node of nodes) {
20
+ if (typeof node.props === "string") {
21
+ content += node.props;
22
+ }
23
+ else {
24
+ pushText();
25
+ node.children = mergeTextNodes(node.children);
26
+ merged.push(node);
27
+ }
28
+ }
29
+ pushText();
30
+ return merged;
31
+ }
9
32
  export function createRenderer() {
10
33
  const components = [];
11
34
  const nodes = [];
12
35
  return {
13
36
  nodes,
14
37
  async render() {
15
- for (const node of nodes) {
38
+ for (const node of mergeTextNodes(nodes)) {
16
39
  components.push(await renderNode(node));
17
40
  }
18
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/react/renderer.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,aAAa,GACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAaxD,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAgD,EAAE,CAAC;IACnE,MAAM,KAAK,GAAoD,EAAE,CAAC;IAElE,OAAO;QACL,KAAK;QACL,KAAK,CAAC,MAAM;YACV,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,UAAU,CAAC,IAAI,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAmB;IAEnB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,aAAa,CAAC,MAAM,CAAC;QAC1B,KAAK,aAAa,CAAC,SAAS,CAAC;QAC7B,KAAK,aAAa,CAAC,SAAS,CAAC;QAC7B,KAAK,aAAa,CAAC,IAAI,CAAC;QACxB,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,KAAK,aAAa,CAAC,YAAY,CAAC;QAChC,KAAK,aAAa,CAAC,UAAU,CAAC;QAC9B,KAAK,aAAa,CAAC,UAAU,CAAC;QAC9B,KAAK,aAAa,CAAC,iBAAiB,CAAC;QACrC,KAAK,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;YACjC,OAAO,eAAe,CACpB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAuC,CAC7C,CAAC;QACJ,CAAC;QACD,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3B,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;YAC/B,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,KAAK,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;YAChC,OAAO,iBAAiB,CACtB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAuC,CAC7C,CAAC;QACJ,CAAC;QACD,KAAK,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACnC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/react/renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@dressed/react",
3
- "version": "1.3.1",
3
+ "version": "1.5.0-rc.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Inbestigator/dressed.git",
7
7
  "directory": "packages/dressed-react"
8
8
  },
9
9
  "peerDependencies": {
10
- "dressed": "^1.8.0",
11
- "react": "^19.1.0"
10
+ "dressed": "^1.10.0",
11
+ "react": "^19.1.1"
12
12
  },
13
13
  "exports": "./dist/index.js",
14
14
  "description": "Render Dressed's components using React",
@@ -31,11 +31,11 @@
31
31
  "type": "module",
32
32
  "types": "./dist/index.d.ts",
33
33
  "dependencies": {
34
- "discord-api-types": "^0.38.11",
34
+ "discord-api-types": "^0.38.22",
35
35
  "react-reconciler": "github:inbestigator/dressed-rr"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/react": "^19.1.8",
38
+ "@types/react": "^19.1.12",
39
39
  "@types/react-reconciler": "^0.32.0"
40
40
  }
41
41
  }