@assistant-ui/react 0.7.26 → 0.7.28

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.
Files changed (110) hide show
  1. package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
  2. package/dist/context/providers/AssistantRuntimeProvider.js +1 -2
  3. package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
  4. package/dist/context/providers/AssistantRuntimeProvider.mjs +2 -3
  5. package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
  6. package/dist/context/react/ThreadListItemContext.d.ts +0 -5
  7. package/dist/context/react/ThreadListItemContext.d.ts.map +1 -1
  8. package/dist/context/react/ThreadListItemContext.js +6 -5
  9. package/dist/context/react/ThreadListItemContext.js.map +1 -1
  10. package/dist/context/react/ThreadListItemContext.mjs +5 -3
  11. package/dist/context/react/ThreadListItemContext.mjs.map +1 -1
  12. package/dist/context/react/index.d.ts +1 -0
  13. package/dist/context/react/index.d.ts.map +1 -1
  14. package/dist/context/react/index.js +5 -0
  15. package/dist/context/react/index.js.map +1 -1
  16. package/dist/context/react/index.mjs +6 -0
  17. package/dist/context/react/index.mjs.map +1 -1
  18. package/dist/runtimes/core/AssistantRuntimeCore.d.ts +9 -2
  19. package/dist/runtimes/core/AssistantRuntimeCore.d.ts.map +1 -1
  20. package/dist/runtimes/core/AssistantRuntimeCore.js.map +1 -1
  21. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts +2 -0
  22. package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
  23. package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
  24. package/dist/runtimes/core/BaseAssistantRuntimeCore.mjs.map +1 -1
  25. package/dist/runtimes/core/ThreadRuntimeCore.d.ts +4 -0
  26. package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
  27. package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
  28. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +6 -0
  29. package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
  30. package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
  31. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts +5 -2
  32. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
  33. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +21 -6
  34. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
  35. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +21 -6
  36. package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
  37. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts +1 -1
  38. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.d.ts.map +1 -1
  39. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js +2 -2
  40. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.js.map +1 -1
  41. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs +2 -2
  42. package/dist/runtimes/external-store/ExternalStoreThreadRuntimeCore.mjs.map +1 -1
  43. package/dist/runtimes/external-store/useExternalStoreRuntime.js +1 -1
  44. package/dist/runtimes/external-store/useExternalStoreRuntime.js.map +1 -1
  45. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs +1 -1
  46. package/dist/runtimes/external-store/useExternalStoreRuntime.mjs.map +1 -1
  47. package/dist/runtimes/local/LocalRuntimeCore.d.ts +1 -0
  48. package/dist/runtimes/local/LocalRuntimeCore.d.ts.map +1 -1
  49. package/dist/runtimes/local/LocalRuntimeCore.js +1 -0
  50. package/dist/runtimes/local/LocalRuntimeCore.js.map +1 -1
  51. package/dist/runtimes/local/LocalRuntimeCore.mjs +1 -0
  52. package/dist/runtimes/local/LocalRuntimeCore.mjs.map +1 -1
  53. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +1 -1
  54. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
  55. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +3 -6
  56. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
  57. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +4 -7
  58. package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
  59. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
  60. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js +1 -2
  61. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +1 -1
  62. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs +1 -2
  63. package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +1 -1
  64. package/dist/runtimes/remote-thread-list/types.d.ts +2 -2
  65. package/dist/runtimes/remote-thread-list/types.d.ts.map +1 -1
  66. package/dist/runtimes/remote-thread-list/types.js.map +1 -1
  67. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +2 -2
  68. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
  69. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs +2 -2
  70. package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs.map +1 -1
  71. package/dist/styles/index.css +8 -7
  72. package/dist/styles/index.css.map +1 -1
  73. package/dist/styles/tailwindcss/thread.css +7 -7
  74. package/dist/styles/tailwindcss/thread.css.json +7 -7
  75. package/dist/styles/themes/default.css +3 -0
  76. package/dist/styles/themes/default.css.json +2 -1
  77. package/dist/styles/themes/shadcn-extras.css +4 -0
  78. package/dist/styles/themes/shadcn-extras.css.json +5 -0
  79. package/dist/tailwindcss/index.d.ts.map +1 -1
  80. package/dist/tailwindcss/index.js +7 -0
  81. package/dist/tailwindcss/index.js.map +1 -1
  82. package/dist/tailwindcss/index.mjs +7 -0
  83. package/dist/tailwindcss/index.mjs.map +1 -1
  84. package/package.json +1 -1
  85. package/src/context/providers/AssistantRuntimeProvider.tsx +2 -6
  86. package/src/context/react/ThreadListItemContext.ts +4 -2
  87. package/src/context/react/index.ts +6 -0
  88. package/src/runtimes/core/AssistantRuntimeCore.tsx +9 -2
  89. package/src/runtimes/core/BaseAssistantRuntimeCore.tsx +4 -0
  90. package/src/runtimes/core/ThreadRuntimeCore.tsx +5 -0
  91. package/src/runtimes/external-store/ExternalStoreAdapter.tsx +8 -0
  92. package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +26 -6
  93. package/src/runtimes/external-store/ExternalStoreThreadRuntimeCore.tsx +2 -2
  94. package/src/runtimes/external-store/useExternalStoreRuntime.tsx +1 -1
  95. package/src/runtimes/local/LocalRuntimeCore.tsx +1 -0
  96. package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +4 -10
  97. package/src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx +1 -2
  98. package/src/runtimes/remote-thread-list/types.tsx +2 -2
  99. package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +2 -2
  100. package/src/styles/tailwindcss/thread.css +7 -7
  101. package/src/styles/themes/default.css +3 -0
  102. package/src/styles/themes/shadcn-extras.css +4 -0
  103. package/src/tailwindcss/index.ts +7 -0
  104. package/dist/primitive-hooks/thread/useThread.d.ts +0 -1
  105. package/dist/primitive-hooks/thread/useThread.d.ts.map +0 -1
  106. package/dist/primitive-hooks/thread/useThread.js +0 -2
  107. package/dist/primitive-hooks/thread/useThread.js.map +0 -1
  108. package/dist/primitive-hooks/thread/useThread.mjs +0 -1
  109. package/dist/primitive-hooks/thread/useThread.mjs.map +0 -1
  110. package/src/primitive-hooks/thread/useThread.tsx +0 -1
@@ -7,7 +7,7 @@
7
7
  "@apply bg-aui-background flex h-full flex-col items-center overflow-y-scroll scroll-smooth px-4 pt-8": {}
8
8
  },
9
9
  ".aui-thread-viewport-footer": {
10
- "@apply sticky bottom-0 mt-3 flex w-full max-w-2xl flex-col items-center justify-end rounded-t-lg bg-inherit pb-4": {}
10
+ "@apply max-w-aui-thread sticky bottom-0 mt-3 flex w-full flex-col items-center justify-end rounded-t-lg bg-inherit pb-4": {}
11
11
  },
12
12
  ".aui-thread-scroll-to-bottom": {
13
13
  "@apply absolute -top-8 rounded-full disabled:invisible": {}
@@ -19,7 +19,7 @@
19
19
  "@apply bg-aui-background hover:bg-aui-muted/80 rounded-full border px-3 py-1 text-sm transition-colors ease-in": {}
20
20
  },
21
21
  ".aui-thread-welcome-root": {
22
- "@apply flex w-full max-w-2xl flex-grow flex-col": {}
22
+ "@apply max-w-aui-thread flex w-full flex-grow flex-col": {}
23
23
  },
24
24
  ".aui-thread-welcome-center": {
25
25
  "@apply flex w-full flex-grow flex-col items-center justify-center": {}
@@ -74,7 +74,7 @@
74
74
  },
75
75
  ".aui-user-message-root": {
76
76
  "@apply grid auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 [&>*]:col-start-2": {},
77
- "@apply w-full max-w-2xl py-4": {}
77
+ "@apply max-w-aui-thread w-full py-4": {}
78
78
  },
79
79
  ":where(.aui-user-message-root) > .aui-user-action-bar-root": {
80
80
  "@apply col-start-1 row-start-2 mr-3 mt-2.5": {}
@@ -91,7 +91,7 @@
91
91
  "@apply -mr-1 justify-end": {}
92
92
  },
93
93
  ".aui-user-message-content": {
94
- "@apply bg-aui-muted text-aui-foreground max-w-xl break-words rounded-3xl px-5 py-2.5": {}
94
+ "@apply bg-aui-muted text-aui-foreground max-w-[calc(var(--aui-thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5": {}
95
95
  },
96
96
  ".aui-user-message-attachments": {
97
97
  "@apply flex w-full flex-row gap-3": {}
@@ -100,7 +100,7 @@
100
100
  "@apply flex flex-col items-end": {}
101
101
  },
102
102
  ".aui-edit-composer-root": {
103
- "@apply bg-aui-muted my-4 flex w-full max-w-2xl flex-col gap-2 rounded-xl": {}
103
+ "@apply bg-aui-muted max-w-aui-thread my-4 flex w-full flex-col gap-2 rounded-xl": {}
104
104
  },
105
105
  ".aui-edit-composer-input": {
106
106
  "@apply text-aui-foreground flex h-8 w-full resize-none bg-transparent p-4 pb-0 outline-none": {}
@@ -110,7 +110,7 @@
110
110
  },
111
111
  ".aui-assistant-message-root": {
112
112
  "@apply grid grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr]": {},
113
- "@apply relative w-full max-w-2xl py-4": {}
113
+ "@apply max-w-aui-thread relative w-full py-4": {}
114
114
  },
115
115
  ":where(.aui-assistant-message-root) > .aui-avatar-root": {
116
116
  "@apply col-start-1 row-span-full row-start-1 mr-4": {}
@@ -127,7 +127,7 @@
127
127
  "@apply col-span-2 col-start-2 row-start-1 my-1.5": {}
128
128
  },
129
129
  ".aui-assistant-message-content": {
130
- "@apply text-aui-foreground max-w-xl break-words leading-7": {}
130
+ "@apply text-aui-foreground max-w-[calc(var(--aui-thread-max-width)*0.8)] break-words leading-7": {}
131
131
  },
132
132
  ".aui-assistant-action-bar-root": {
133
133
  "@apply text-aui-muted-foreground flex gap-1": {}
@@ -28,6 +28,9 @@
28
28
  --aui-ring: 240 10% 3.9%;
29
29
 
30
30
  --aui-radius: 0.5rem;
31
+
32
+ /* aui specific */
33
+ --aui-thread-max-width: 42rem;
31
34
  }
32
35
 
33
36
  .dark {
@@ -19,7 +19,8 @@
19
19
  "--aui-border": "240 5.9% 90%",
20
20
  "--aui-input": "240 5.9% 90%",
21
21
  "--aui-ring": "240 10% 3.9%",
22
- "--aui-radius": "0.5rem"
22
+ "--aui-radius": "0.5rem",
23
+ "--aui-thread-max-width": "42rem"
23
24
  },
24
25
  ".dark": {
25
26
  "--aui-background": "0 0% 7%",
@@ -0,0 +1,4 @@
1
+ /* duplicates from default.css for properties outside what is included in shadcn-ui themes */
2
+ :root {
3
+ --aui-thread-max-width: 42rem;
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ ":root": {
3
+ "--aui-thread-max-width": "42rem"
4
+ }
5
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tailwindcss/index.ts"],"names":[],"mappings":"AAMA,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC;IACzE,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,QAAA,MAAM,SAAS;;;cA7CiB,CAAC;;;CAwIhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tailwindcss/index.ts"],"names":[],"mappings":"AAOA,KAAK,6BAA6B,GAAG;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,UAAU,CAAC,EAAE,CAAC,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC;IACzE,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,QAAA,MAAM,SAAS;;;cA9CiB,CAAC;;;CA+IhC,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -38,6 +38,7 @@ var import_base_components_css = __toESM(require("../../dist/styles/tailwindcss/
38
38
  var import_thread_css = __toESM(require("../../dist/styles/tailwindcss/thread.css.json"));
39
39
  var import_modal_css = __toESM(require("../../dist/styles/tailwindcss/modal.css.json"));
40
40
  var import_default_css = __toESM(require("../../dist/styles/themes/default.css.json"));
41
+ var import_shadcn_extras_css = __toESM(require("../../dist/styles/themes/shadcn-extras.css.json"));
41
42
  var auiPlugin = import_plugin.default.withOptions(
42
43
  ({ components = ["assistant-modal", "thread"], shadcn = false } = {}) => ({ addComponents }) => {
43
44
  const assistantModal = components.includes("assistant-modal");
@@ -49,6 +50,9 @@ var auiPlugin = import_plugin.default.withOptions(
49
50
  if (defaultTheme || base && !shadcn) {
50
51
  addComponents(import_default_css.default);
51
52
  }
53
+ if (!defaultTheme && base && shadcn) {
54
+ addComponents(import_shadcn_extras_css.default);
55
+ }
52
56
  if (base) {
53
57
  addComponents(import_base_components_css.default);
54
58
  }
@@ -65,6 +69,9 @@ var auiPlugin = import_plugin.default.withOptions(
65
69
  safelist: [{ pattern: /aui-/ }],
66
70
  theme: {
67
71
  extend: {
72
+ maxWidth: {
73
+ "aui-thread": "var(--aui-thread-max-width)"
74
+ },
68
75
  colors: {
69
76
  aui: {
70
77
  border: colors.border ?? `hsl(var(${prefix}border))`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tailwindcss/index.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport baseComponentsCSS from \"../../dist/styles/tailwindcss/base-components.css.json\";\nimport threadCSS from \"../../dist/styles/tailwindcss/thread.css.json\";\nimport modalCSS from \"../../dist/styles/tailwindcss/modal.css.json\";\nimport defaultThemeCSS from \"../../dist/styles/themes/default.css.json\";\n\ntype AssistantTailwindPluginColors = {\n border: string;\n input: string;\n ring: string;\n background: string;\n foreground: string;\n primary: {\n DEFAULT: string;\n foreground: string;\n };\n secondary: {\n DEFAULT: string;\n foreground: string;\n };\n destructive: {\n DEFAULT: string;\n foreground: string;\n };\n muted: {\n DEFAULT: string;\n foreground: string;\n };\n accent: {\n DEFAULT: string;\n foreground: string;\n };\n popover: {\n DEFAULT: string;\n foreground: string;\n };\n card: {\n DEFAULT: string;\n foreground: string;\n };\n};\n\ntype AssisstantTailwindPluginOptions = {\n components?: (\"default-theme\" | \"base\" | \"thread\" | \"assistant-modal\")[];\n colors?: AssistantTailwindPluginColors;\n shadcn?: boolean;\n};\n\nconst auiPlugin = plugin.withOptions<AssisstantTailwindPluginOptions>(\n ({ components = [\"assistant-modal\", \"thread\"], shadcn = false } = {}) =>\n ({ addComponents }) => {\n const assistantModal = components.includes(\"assistant-modal\");\n const thread = assistantModal || components.includes(\"thread\");\n const base = thread || components.includes(\"base\");\n const defaultTheme = components.includes(\"default-theme\");\n\n if (defaultTheme && shadcn)\n throw new Error(\"default-theme cannot be used with shadcn\");\n\n if (defaultTheme || (base && !shadcn)) {\n addComponents(defaultThemeCSS);\n }\n\n if (base) {\n addComponents(baseComponentsCSS);\n }\n\n if (thread) {\n addComponents(threadCSS);\n }\n\n if (assistantModal) {\n addComponents(modalCSS);\n }\n },\n ({ shadcn = false, colors = {} } = {}) => {\n const prefix = !shadcn ? \"--aui-\" : \"--\";\n return {\n safelist: [{ pattern: /aui-/ }],\n theme: {\n extend: {\n colors: {\n aui: {\n border: colors.border ?? `hsl(var(${prefix}border))`,\n input: colors.input ?? `hsl(var(${prefix}input))`,\n ring: colors.ring ?? `hsl(var(${prefix}ring))`,\n background: colors.background ?? `hsl(var(${prefix}background))`,\n foreground: colors.foreground ?? `hsl(var(${prefix}foreground))`,\n primary: {\n DEFAULT:\n colors.primary?.DEFAULT ?? `hsl(var(${prefix}primary))`,\n foreground:\n colors.primary?.foreground ??\n `hsl(var(${prefix}primary-foreground))`,\n },\n secondary: {\n DEFAULT:\n colors.secondary?.DEFAULT ?? `hsl(var(${prefix}secondary))`,\n foreground:\n colors.secondary?.foreground ??\n `hsl(var(${prefix}secondary-foreground))`,\n },\n destructive: {\n DEFAULT:\n colors.destructive?.DEFAULT ??\n `hsl(var(${prefix}destructive))`,\n foreground: `hsl(var(${prefix}destructive-foreground))`,\n },\n muted: {\n DEFAULT: `hsl(var(${prefix}muted))`,\n foreground:\n colors.muted?.foreground ??\n `hsl(var(${prefix}muted-foreground))`,\n },\n accent: {\n DEFAULT: colors.accent?.DEFAULT ?? `hsl(var(${prefix}accent))`,\n foreground:\n colors.accent?.foreground ??\n `hsl(var(${prefix}accent-foreground))`,\n },\n popover: {\n DEFAULT:\n colors.popover?.DEFAULT ?? `hsl(var(${prefix}popover))`,\n foreground:\n colors.popover?.foreground ??\n `hsl(var(${prefix}popover-foreground))`,\n },\n card: {\n DEFAULT: colors.card?.DEFAULT ?? `hsl(var(${prefix}card))`,\n foreground:\n colors.card?.foreground ??\n `hsl(var(${prefix}card-foreground))`,\n },\n },\n },\n },\n },\n };\n },\n);\n\nexport default auiPlugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,iCAA8B;AAC9B,wBAAsB;AACtB,uBAAqB;AACrB,yBAA4B;AA4C5B,IAAM,YAAY,cAAAA,QAAO;AAAA,EACvB,CAAC,EAAE,aAAa,CAAC,mBAAmB,QAAQ,GAAG,SAAS,MAAM,IAAI,CAAC,MACjE,CAAC,EAAE,cAAc,MAAM;AACrB,UAAM,iBAAiB,WAAW,SAAS,iBAAiB;AAC5D,UAAM,SAAS,kBAAkB,WAAW,SAAS,QAAQ;AAC7D,UAAM,OAAO,UAAU,WAAW,SAAS,MAAM;AACjD,UAAM,eAAe,WAAW,SAAS,eAAe;AAExD,QAAI,gBAAgB;AAClB,YAAM,IAAI,MAAM,0CAA0C;AAE5D,QAAI,gBAAiB,QAAQ,CAAC,QAAS;AACrC,oBAAc,mBAAAC,OAAe;AAAA,IAC/B;AAEA,QAAI,MAAM;AACR,oBAAc,2BAAAC,OAAiB;AAAA,IACjC;AAEA,QAAI,QAAQ;AACV,oBAAc,kBAAAC,OAAS;AAAA,IACzB;AAEA,QAAI,gBAAgB;AAClB,oBAAc,iBAAAC,OAAQ;AAAA,IACxB;AAAA,EACF;AAAA,EACF,CAAC,EAAE,SAAS,OAAO,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM;AACxC,UAAM,SAAS,CAAC,SAAS,WAAW;AACpC,WAAO;AAAA,MACL,UAAU,CAAC,EAAE,SAAS,OAAO,CAAC;AAAA,MAC9B,OAAO;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,YACN,KAAK;AAAA,cACH,QAAQ,OAAO,UAAU,WAAW,MAAM;AAAA,cAC1C,OAAO,OAAO,SAAS,WAAW,MAAM;AAAA,cACxC,MAAM,OAAO,QAAQ,WAAW,MAAM;AAAA,cACtC,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,WAAW;AAAA,gBACT,SACE,OAAO,WAAW,WAAW,WAAW,MAAM;AAAA,gBAChD,YACE,OAAO,WAAW,cAClB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,aAAa;AAAA,gBACX,SACE,OAAO,aAAa,WACpB,WAAW,MAAM;AAAA,gBACnB,YAAY,WAAW,MAAM;AAAA,cAC/B;AAAA,cACA,OAAO;AAAA,gBACL,SAAS,WAAW,MAAM;AAAA,gBAC1B,YACE,OAAO,OAAO,cACd,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,QAAQ;AAAA,gBACN,SAAS,OAAO,QAAQ,WAAW,WAAW,MAAM;AAAA,gBACpD,YACE,OAAO,QAAQ,cACf,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,MAAM;AAAA,gBACJ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM;AAAA,gBAClD,YACE,OAAO,MAAM,cACb,WAAW,MAAM;AAAA,cACrB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ;","names":["plugin","defaultThemeCSS","baseComponentsCSS","threadCSS","modalCSS"]}
1
+ {"version":3,"sources":["../../src/tailwindcss/index.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport baseComponentsCSS from \"../../dist/styles/tailwindcss/base-components.css.json\";\nimport threadCSS from \"../../dist/styles/tailwindcss/thread.css.json\";\nimport modalCSS from \"../../dist/styles/tailwindcss/modal.css.json\";\nimport defaultThemeCSS from \"../../dist/styles/themes/default.css.json\";\nimport shadcnExtrasCSS from \"../../dist/styles/themes/shadcn-extras.css.json\";\n\ntype AssistantTailwindPluginColors = {\n border: string;\n input: string;\n ring: string;\n background: string;\n foreground: string;\n primary: {\n DEFAULT: string;\n foreground: string;\n };\n secondary: {\n DEFAULT: string;\n foreground: string;\n };\n destructive: {\n DEFAULT: string;\n foreground: string;\n };\n muted: {\n DEFAULT: string;\n foreground: string;\n };\n accent: {\n DEFAULT: string;\n foreground: string;\n };\n popover: {\n DEFAULT: string;\n foreground: string;\n };\n card: {\n DEFAULT: string;\n foreground: string;\n };\n};\n\ntype AssisstantTailwindPluginOptions = {\n components?: (\"default-theme\" | \"base\" | \"thread\" | \"assistant-modal\")[];\n colors?: AssistantTailwindPluginColors;\n shadcn?: boolean;\n};\n\nconst auiPlugin = plugin.withOptions<AssisstantTailwindPluginOptions>(\n ({ components = [\"assistant-modal\", \"thread\"], shadcn = false } = {}) =>\n ({ addComponents }) => {\n const assistantModal = components.includes(\"assistant-modal\");\n const thread = assistantModal || components.includes(\"thread\");\n const base = thread || components.includes(\"base\");\n const defaultTheme = components.includes(\"default-theme\");\n\n if (defaultTheme && shadcn)\n throw new Error(\"default-theme cannot be used with shadcn\");\n\n if (defaultTheme || (base && !shadcn)) {\n addComponents(defaultThemeCSS);\n }\n if (!defaultTheme && base && shadcn) {\n addComponents(shadcnExtrasCSS);\n }\n\n if (base) {\n addComponents(baseComponentsCSS);\n }\n\n if (thread) {\n addComponents(threadCSS);\n }\n\n if (assistantModal) {\n addComponents(modalCSS);\n }\n },\n ({ shadcn = false, colors = {} } = {}) => {\n const prefix = !shadcn ? \"--aui-\" : \"--\";\n return {\n safelist: [{ pattern: /aui-/ }],\n theme: {\n extend: {\n maxWidth: {\n \"aui-thread\": \"var(--aui-thread-max-width)\",\n },\n colors: {\n aui: {\n border: colors.border ?? `hsl(var(${prefix}border))`,\n input: colors.input ?? `hsl(var(${prefix}input))`,\n ring: colors.ring ?? `hsl(var(${prefix}ring))`,\n background: colors.background ?? `hsl(var(${prefix}background))`,\n foreground: colors.foreground ?? `hsl(var(${prefix}foreground))`,\n primary: {\n DEFAULT:\n colors.primary?.DEFAULT ?? `hsl(var(${prefix}primary))`,\n foreground:\n colors.primary?.foreground ??\n `hsl(var(${prefix}primary-foreground))`,\n },\n secondary: {\n DEFAULT:\n colors.secondary?.DEFAULT ?? `hsl(var(${prefix}secondary))`,\n foreground:\n colors.secondary?.foreground ??\n `hsl(var(${prefix}secondary-foreground))`,\n },\n destructive: {\n DEFAULT:\n colors.destructive?.DEFAULT ??\n `hsl(var(${prefix}destructive))`,\n foreground: `hsl(var(${prefix}destructive-foreground))`,\n },\n muted: {\n DEFAULT: `hsl(var(${prefix}muted))`,\n foreground:\n colors.muted?.foreground ??\n `hsl(var(${prefix}muted-foreground))`,\n },\n accent: {\n DEFAULT: colors.accent?.DEFAULT ?? `hsl(var(${prefix}accent))`,\n foreground:\n colors.accent?.foreground ??\n `hsl(var(${prefix}accent-foreground))`,\n },\n popover: {\n DEFAULT:\n colors.popover?.DEFAULT ?? `hsl(var(${prefix}popover))`,\n foreground:\n colors.popover?.foreground ??\n `hsl(var(${prefix}popover-foreground))`,\n },\n card: {\n DEFAULT: colors.card?.DEFAULT ?? `hsl(var(${prefix}card))`,\n foreground:\n colors.card?.foreground ??\n `hsl(var(${prefix}card-foreground))`,\n },\n },\n },\n },\n },\n };\n },\n);\n\nexport default auiPlugin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;AACnB,iCAA8B;AAC9B,wBAAsB;AACtB,uBAAqB;AACrB,yBAA4B;AAC5B,+BAA4B;AA4C5B,IAAM,YAAY,cAAAA,QAAO;AAAA,EACvB,CAAC,EAAE,aAAa,CAAC,mBAAmB,QAAQ,GAAG,SAAS,MAAM,IAAI,CAAC,MACjE,CAAC,EAAE,cAAc,MAAM;AACrB,UAAM,iBAAiB,WAAW,SAAS,iBAAiB;AAC5D,UAAM,SAAS,kBAAkB,WAAW,SAAS,QAAQ;AAC7D,UAAM,OAAO,UAAU,WAAW,SAAS,MAAM;AACjD,UAAM,eAAe,WAAW,SAAS,eAAe;AAExD,QAAI,gBAAgB;AAClB,YAAM,IAAI,MAAM,0CAA0C;AAE5D,QAAI,gBAAiB,QAAQ,CAAC,QAAS;AACrC,oBAAc,mBAAAC,OAAe;AAAA,IAC/B;AACA,QAAI,CAAC,gBAAgB,QAAQ,QAAQ;AACnC,oBAAc,yBAAAC,OAAe;AAAA,IAC/B;AAEA,QAAI,MAAM;AACR,oBAAc,2BAAAC,OAAiB;AAAA,IACjC;AAEA,QAAI,QAAQ;AACV,oBAAc,kBAAAC,OAAS;AAAA,IACzB;AAEA,QAAI,gBAAgB;AAClB,oBAAc,iBAAAC,OAAQ;AAAA,IACxB;AAAA,EACF;AAAA,EACF,CAAC,EAAE,SAAS,OAAO,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM;AACxC,UAAM,SAAS,CAAC,SAAS,WAAW;AACpC,WAAO;AAAA,MACL,UAAU,CAAC,EAAE,SAAS,OAAO,CAAC;AAAA,MAC9B,OAAO;AAAA,QACL,QAAQ;AAAA,UACN,UAAU;AAAA,YACR,cAAc;AAAA,UAChB;AAAA,UACA,QAAQ;AAAA,YACN,KAAK;AAAA,cACH,QAAQ,OAAO,UAAU,WAAW,MAAM;AAAA,cAC1C,OAAO,OAAO,SAAS,WAAW,MAAM;AAAA,cACxC,MAAM,OAAO,QAAQ,WAAW,MAAM;AAAA,cACtC,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,WAAW;AAAA,gBACT,SACE,OAAO,WAAW,WAAW,WAAW,MAAM;AAAA,gBAChD,YACE,OAAO,WAAW,cAClB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,aAAa;AAAA,gBACX,SACE,OAAO,aAAa,WACpB,WAAW,MAAM;AAAA,gBACnB,YAAY,WAAW,MAAM;AAAA,cAC/B;AAAA,cACA,OAAO;AAAA,gBACL,SAAS,WAAW,MAAM;AAAA,gBAC1B,YACE,OAAO,OAAO,cACd,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,QAAQ;AAAA,gBACN,SAAS,OAAO,QAAQ,WAAW,WAAW,MAAM;AAAA,gBACpD,YACE,OAAO,QAAQ,cACf,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,MAAM;AAAA,gBACJ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM;AAAA,gBAClD,YACE,OAAO,MAAM,cACb,WAAW,MAAM;AAAA,cACrB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ;","names":["plugin","defaultThemeCSS","shadcnExtrasCSS","baseComponentsCSS","threadCSS","modalCSS"]}
@@ -4,6 +4,7 @@ import baseComponentsCSS from "../../dist/styles/tailwindcss/base-components.css
4
4
  import threadCSS from "../../dist/styles/tailwindcss/thread.css.json";
5
5
  import modalCSS from "../../dist/styles/tailwindcss/modal.css.json";
6
6
  import defaultThemeCSS from "../../dist/styles/themes/default.css.json";
7
+ import shadcnExtrasCSS from "../../dist/styles/themes/shadcn-extras.css.json";
7
8
  var auiPlugin = plugin.withOptions(
8
9
  ({ components = ["assistant-modal", "thread"], shadcn = false } = {}) => ({ addComponents }) => {
9
10
  const assistantModal = components.includes("assistant-modal");
@@ -15,6 +16,9 @@ var auiPlugin = plugin.withOptions(
15
16
  if (defaultTheme || base && !shadcn) {
16
17
  addComponents(defaultThemeCSS);
17
18
  }
19
+ if (!defaultTheme && base && shadcn) {
20
+ addComponents(shadcnExtrasCSS);
21
+ }
18
22
  if (base) {
19
23
  addComponents(baseComponentsCSS);
20
24
  }
@@ -31,6 +35,9 @@ var auiPlugin = plugin.withOptions(
31
35
  safelist: [{ pattern: /aui-/ }],
32
36
  theme: {
33
37
  extend: {
38
+ maxWidth: {
39
+ "aui-thread": "var(--aui-thread-max-width)"
40
+ },
34
41
  colors: {
35
42
  aui: {
36
43
  border: colors.border ?? `hsl(var(${prefix}border))`,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tailwindcss/index.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport baseComponentsCSS from \"../../dist/styles/tailwindcss/base-components.css.json\";\nimport threadCSS from \"../../dist/styles/tailwindcss/thread.css.json\";\nimport modalCSS from \"../../dist/styles/tailwindcss/modal.css.json\";\nimport defaultThemeCSS from \"../../dist/styles/themes/default.css.json\";\n\ntype AssistantTailwindPluginColors = {\n border: string;\n input: string;\n ring: string;\n background: string;\n foreground: string;\n primary: {\n DEFAULT: string;\n foreground: string;\n };\n secondary: {\n DEFAULT: string;\n foreground: string;\n };\n destructive: {\n DEFAULT: string;\n foreground: string;\n };\n muted: {\n DEFAULT: string;\n foreground: string;\n };\n accent: {\n DEFAULT: string;\n foreground: string;\n };\n popover: {\n DEFAULT: string;\n foreground: string;\n };\n card: {\n DEFAULT: string;\n foreground: string;\n };\n};\n\ntype AssisstantTailwindPluginOptions = {\n components?: (\"default-theme\" | \"base\" | \"thread\" | \"assistant-modal\")[];\n colors?: AssistantTailwindPluginColors;\n shadcn?: boolean;\n};\n\nconst auiPlugin = plugin.withOptions<AssisstantTailwindPluginOptions>(\n ({ components = [\"assistant-modal\", \"thread\"], shadcn = false } = {}) =>\n ({ addComponents }) => {\n const assistantModal = components.includes(\"assistant-modal\");\n const thread = assistantModal || components.includes(\"thread\");\n const base = thread || components.includes(\"base\");\n const defaultTheme = components.includes(\"default-theme\");\n\n if (defaultTheme && shadcn)\n throw new Error(\"default-theme cannot be used with shadcn\");\n\n if (defaultTheme || (base && !shadcn)) {\n addComponents(defaultThemeCSS);\n }\n\n if (base) {\n addComponents(baseComponentsCSS);\n }\n\n if (thread) {\n addComponents(threadCSS);\n }\n\n if (assistantModal) {\n addComponents(modalCSS);\n }\n },\n ({ shadcn = false, colors = {} } = {}) => {\n const prefix = !shadcn ? \"--aui-\" : \"--\";\n return {\n safelist: [{ pattern: /aui-/ }],\n theme: {\n extend: {\n colors: {\n aui: {\n border: colors.border ?? `hsl(var(${prefix}border))`,\n input: colors.input ?? `hsl(var(${prefix}input))`,\n ring: colors.ring ?? `hsl(var(${prefix}ring))`,\n background: colors.background ?? `hsl(var(${prefix}background))`,\n foreground: colors.foreground ?? `hsl(var(${prefix}foreground))`,\n primary: {\n DEFAULT:\n colors.primary?.DEFAULT ?? `hsl(var(${prefix}primary))`,\n foreground:\n colors.primary?.foreground ??\n `hsl(var(${prefix}primary-foreground))`,\n },\n secondary: {\n DEFAULT:\n colors.secondary?.DEFAULT ?? `hsl(var(${prefix}secondary))`,\n foreground:\n colors.secondary?.foreground ??\n `hsl(var(${prefix}secondary-foreground))`,\n },\n destructive: {\n DEFAULT:\n colors.destructive?.DEFAULT ??\n `hsl(var(${prefix}destructive))`,\n foreground: `hsl(var(${prefix}destructive-foreground))`,\n },\n muted: {\n DEFAULT: `hsl(var(${prefix}muted))`,\n foreground:\n colors.muted?.foreground ??\n `hsl(var(${prefix}muted-foreground))`,\n },\n accent: {\n DEFAULT: colors.accent?.DEFAULT ?? `hsl(var(${prefix}accent))`,\n foreground:\n colors.accent?.foreground ??\n `hsl(var(${prefix}accent-foreground))`,\n },\n popover: {\n DEFAULT:\n colors.popover?.DEFAULT ?? `hsl(var(${prefix}popover))`,\n foreground:\n colors.popover?.foreground ??\n `hsl(var(${prefix}popover-foreground))`,\n },\n card: {\n DEFAULT: colors.card?.DEFAULT ?? `hsl(var(${prefix}card))`,\n foreground:\n colors.card?.foreground ??\n `hsl(var(${prefix}card-foreground))`,\n },\n },\n },\n },\n },\n };\n },\n);\n\nexport default auiPlugin;\n"],"mappings":";AAAA,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,eAAe;AACtB,OAAO,cAAc;AACrB,OAAO,qBAAqB;AA4C5B,IAAM,YAAY,OAAO;AAAA,EACvB,CAAC,EAAE,aAAa,CAAC,mBAAmB,QAAQ,GAAG,SAAS,MAAM,IAAI,CAAC,MACjE,CAAC,EAAE,cAAc,MAAM;AACrB,UAAM,iBAAiB,WAAW,SAAS,iBAAiB;AAC5D,UAAM,SAAS,kBAAkB,WAAW,SAAS,QAAQ;AAC7D,UAAM,OAAO,UAAU,WAAW,SAAS,MAAM;AACjD,UAAM,eAAe,WAAW,SAAS,eAAe;AAExD,QAAI,gBAAgB;AAClB,YAAM,IAAI,MAAM,0CAA0C;AAE5D,QAAI,gBAAiB,QAAQ,CAAC,QAAS;AACrC,oBAAc,eAAe;AAAA,IAC/B;AAEA,QAAI,MAAM;AACR,oBAAc,iBAAiB;AAAA,IACjC;AAEA,QAAI,QAAQ;AACV,oBAAc,SAAS;AAAA,IACzB;AAEA,QAAI,gBAAgB;AAClB,oBAAc,QAAQ;AAAA,IACxB;AAAA,EACF;AAAA,EACF,CAAC,EAAE,SAAS,OAAO,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM;AACxC,UAAM,SAAS,CAAC,SAAS,WAAW;AACpC,WAAO;AAAA,MACL,UAAU,CAAC,EAAE,SAAS,OAAO,CAAC;AAAA,MAC9B,OAAO;AAAA,QACL,QAAQ;AAAA,UACN,QAAQ;AAAA,YACN,KAAK;AAAA,cACH,QAAQ,OAAO,UAAU,WAAW,MAAM;AAAA,cAC1C,OAAO,OAAO,SAAS,WAAW,MAAM;AAAA,cACxC,MAAM,OAAO,QAAQ,WAAW,MAAM;AAAA,cACtC,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,WAAW;AAAA,gBACT,SACE,OAAO,WAAW,WAAW,WAAW,MAAM;AAAA,gBAChD,YACE,OAAO,WAAW,cAClB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,aAAa;AAAA,gBACX,SACE,OAAO,aAAa,WACpB,WAAW,MAAM;AAAA,gBACnB,YAAY,WAAW,MAAM;AAAA,cAC/B;AAAA,cACA,OAAO;AAAA,gBACL,SAAS,WAAW,MAAM;AAAA,gBAC1B,YACE,OAAO,OAAO,cACd,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,QAAQ;AAAA,gBACN,SAAS,OAAO,QAAQ,WAAW,WAAW,MAAM;AAAA,gBACpD,YACE,OAAO,QAAQ,cACf,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,MAAM;AAAA,gBACJ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM;AAAA,gBAClD,YACE,OAAO,MAAM,cACb,WAAW,MAAM;AAAA,cACrB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ;","names":[]}
1
+ {"version":3,"sources":["../../src/tailwindcss/index.ts"],"sourcesContent":["import plugin from \"tailwindcss/plugin.js\";\nimport baseComponentsCSS from \"../../dist/styles/tailwindcss/base-components.css.json\";\nimport threadCSS from \"../../dist/styles/tailwindcss/thread.css.json\";\nimport modalCSS from \"../../dist/styles/tailwindcss/modal.css.json\";\nimport defaultThemeCSS from \"../../dist/styles/themes/default.css.json\";\nimport shadcnExtrasCSS from \"../../dist/styles/themes/shadcn-extras.css.json\";\n\ntype AssistantTailwindPluginColors = {\n border: string;\n input: string;\n ring: string;\n background: string;\n foreground: string;\n primary: {\n DEFAULT: string;\n foreground: string;\n };\n secondary: {\n DEFAULT: string;\n foreground: string;\n };\n destructive: {\n DEFAULT: string;\n foreground: string;\n };\n muted: {\n DEFAULT: string;\n foreground: string;\n };\n accent: {\n DEFAULT: string;\n foreground: string;\n };\n popover: {\n DEFAULT: string;\n foreground: string;\n };\n card: {\n DEFAULT: string;\n foreground: string;\n };\n};\n\ntype AssisstantTailwindPluginOptions = {\n components?: (\"default-theme\" | \"base\" | \"thread\" | \"assistant-modal\")[];\n colors?: AssistantTailwindPluginColors;\n shadcn?: boolean;\n};\n\nconst auiPlugin = plugin.withOptions<AssisstantTailwindPluginOptions>(\n ({ components = [\"assistant-modal\", \"thread\"], shadcn = false } = {}) =>\n ({ addComponents }) => {\n const assistantModal = components.includes(\"assistant-modal\");\n const thread = assistantModal || components.includes(\"thread\");\n const base = thread || components.includes(\"base\");\n const defaultTheme = components.includes(\"default-theme\");\n\n if (defaultTheme && shadcn)\n throw new Error(\"default-theme cannot be used with shadcn\");\n\n if (defaultTheme || (base && !shadcn)) {\n addComponents(defaultThemeCSS);\n }\n if (!defaultTheme && base && shadcn) {\n addComponents(shadcnExtrasCSS);\n }\n\n if (base) {\n addComponents(baseComponentsCSS);\n }\n\n if (thread) {\n addComponents(threadCSS);\n }\n\n if (assistantModal) {\n addComponents(modalCSS);\n }\n },\n ({ shadcn = false, colors = {} } = {}) => {\n const prefix = !shadcn ? \"--aui-\" : \"--\";\n return {\n safelist: [{ pattern: /aui-/ }],\n theme: {\n extend: {\n maxWidth: {\n \"aui-thread\": \"var(--aui-thread-max-width)\",\n },\n colors: {\n aui: {\n border: colors.border ?? `hsl(var(${prefix}border))`,\n input: colors.input ?? `hsl(var(${prefix}input))`,\n ring: colors.ring ?? `hsl(var(${prefix}ring))`,\n background: colors.background ?? `hsl(var(${prefix}background))`,\n foreground: colors.foreground ?? `hsl(var(${prefix}foreground))`,\n primary: {\n DEFAULT:\n colors.primary?.DEFAULT ?? `hsl(var(${prefix}primary))`,\n foreground:\n colors.primary?.foreground ??\n `hsl(var(${prefix}primary-foreground))`,\n },\n secondary: {\n DEFAULT:\n colors.secondary?.DEFAULT ?? `hsl(var(${prefix}secondary))`,\n foreground:\n colors.secondary?.foreground ??\n `hsl(var(${prefix}secondary-foreground))`,\n },\n destructive: {\n DEFAULT:\n colors.destructive?.DEFAULT ??\n `hsl(var(${prefix}destructive))`,\n foreground: `hsl(var(${prefix}destructive-foreground))`,\n },\n muted: {\n DEFAULT: `hsl(var(${prefix}muted))`,\n foreground:\n colors.muted?.foreground ??\n `hsl(var(${prefix}muted-foreground))`,\n },\n accent: {\n DEFAULT: colors.accent?.DEFAULT ?? `hsl(var(${prefix}accent))`,\n foreground:\n colors.accent?.foreground ??\n `hsl(var(${prefix}accent-foreground))`,\n },\n popover: {\n DEFAULT:\n colors.popover?.DEFAULT ?? `hsl(var(${prefix}popover))`,\n foreground:\n colors.popover?.foreground ??\n `hsl(var(${prefix}popover-foreground))`,\n },\n card: {\n DEFAULT: colors.card?.DEFAULT ?? `hsl(var(${prefix}card))`,\n foreground:\n colors.card?.foreground ??\n `hsl(var(${prefix}card-foreground))`,\n },\n },\n },\n },\n },\n };\n },\n);\n\nexport default auiPlugin;\n"],"mappings":";AAAA,OAAO,YAAY;AACnB,OAAO,uBAAuB;AAC9B,OAAO,eAAe;AACtB,OAAO,cAAc;AACrB,OAAO,qBAAqB;AAC5B,OAAO,qBAAqB;AA4C5B,IAAM,YAAY,OAAO;AAAA,EACvB,CAAC,EAAE,aAAa,CAAC,mBAAmB,QAAQ,GAAG,SAAS,MAAM,IAAI,CAAC,MACjE,CAAC,EAAE,cAAc,MAAM;AACrB,UAAM,iBAAiB,WAAW,SAAS,iBAAiB;AAC5D,UAAM,SAAS,kBAAkB,WAAW,SAAS,QAAQ;AAC7D,UAAM,OAAO,UAAU,WAAW,SAAS,MAAM;AACjD,UAAM,eAAe,WAAW,SAAS,eAAe;AAExD,QAAI,gBAAgB;AAClB,YAAM,IAAI,MAAM,0CAA0C;AAE5D,QAAI,gBAAiB,QAAQ,CAAC,QAAS;AACrC,oBAAc,eAAe;AAAA,IAC/B;AACA,QAAI,CAAC,gBAAgB,QAAQ,QAAQ;AACnC,oBAAc,eAAe;AAAA,IAC/B;AAEA,QAAI,MAAM;AACR,oBAAc,iBAAiB;AAAA,IACjC;AAEA,QAAI,QAAQ;AACV,oBAAc,SAAS;AAAA,IACzB;AAEA,QAAI,gBAAgB;AAClB,oBAAc,QAAQ;AAAA,IACxB;AAAA,EACF;AAAA,EACF,CAAC,EAAE,SAAS,OAAO,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM;AACxC,UAAM,SAAS,CAAC,SAAS,WAAW;AACpC,WAAO;AAAA,MACL,UAAU,CAAC,EAAE,SAAS,OAAO,CAAC;AAAA,MAC9B,OAAO;AAAA,QACL,QAAQ;AAAA,UACN,UAAU;AAAA,YACR,cAAc;AAAA,UAChB;AAAA,UACA,QAAQ;AAAA,YACN,KAAK;AAAA,cACH,QAAQ,OAAO,UAAU,WAAW,MAAM;AAAA,cAC1C,OAAO,OAAO,SAAS,WAAW,MAAM;AAAA,cACxC,MAAM,OAAO,QAAQ,WAAW,MAAM;AAAA,cACtC,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,YAAY,OAAO,cAAc,WAAW,MAAM;AAAA,cAClD,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,WAAW;AAAA,gBACT,SACE,OAAO,WAAW,WAAW,WAAW,MAAM;AAAA,gBAChD,YACE,OAAO,WAAW,cAClB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,aAAa;AAAA,gBACX,SACE,OAAO,aAAa,WACpB,WAAW,MAAM;AAAA,gBACnB,YAAY,WAAW,MAAM;AAAA,cAC/B;AAAA,cACA,OAAO;AAAA,gBACL,SAAS,WAAW,MAAM;AAAA,gBAC1B,YACE,OAAO,OAAO,cACd,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,QAAQ;AAAA,gBACN,SAAS,OAAO,QAAQ,WAAW,WAAW,MAAM;AAAA,gBACpD,YACE,OAAO,QAAQ,cACf,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,SAAS;AAAA,gBACP,SACE,OAAO,SAAS,WAAW,WAAW,MAAM;AAAA,gBAC9C,YACE,OAAO,SAAS,cAChB,WAAW,MAAM;AAAA,cACrB;AAAA,cACA,MAAM;AAAA,gBACJ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM;AAAA,gBAClD,YACE,OAAO,MAAM,cACb,WAAW,MAAM;AAAA,cACrB;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,IAAO,sBAAQ;","names":[]}
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "conversational-ui",
30
30
  "conversational-ai"
31
31
  ],
32
- "version": "0.7.26",
32
+ "version": "0.7.28",
33
33
  "license": "MIT",
34
34
  "exports": {
35
35
  ".": {
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
 
3
3
  import type { FC, PropsWithChildren } from "react";
4
- import { memo, useEffect, useMemo, useState } from "react";
4
+ import { Fragment, memo, useEffect, useMemo, useState } from "react";
5
5
  import { AssistantContext } from "../react/AssistantContext";
6
6
  import { makeAssistantToolUIsStore } from "../stores/AssistantToolUIs";
7
7
  import { ThreadRuntimeProvider } from "./ThreadRuntimeProvider";
@@ -46,13 +46,9 @@ const useThreadListStore = (runtime: AssistantRuntime) => {
46
46
  return store;
47
47
  };
48
48
 
49
- const DEFAULT_RENDER_COMPONENT: FC<PropsWithChildren> = ({ children }) =>
50
- children;
51
-
52
49
  const getRenderComponent = (runtime: AssistantRuntime) => {
53
50
  return (
54
- (runtime as { _core?: AssistantRuntimeCore })._core
55
- ?.__internal_RenderComponent ?? DEFAULT_RENDER_COMPONENT
51
+ (runtime as { _core?: AssistantRuntimeCore })._core?.Provider ?? Fragment
56
52
  );
57
53
  };
58
54
 
@@ -35,5 +35,7 @@ export function useThreadListItemRuntime(options?: {
35
35
  return context.useThreadListItemRuntime();
36
36
  }
37
37
 
38
- export const { useThreadListItem, useThreadListItemStore } =
39
- createContextStoreHook(useThreadListItemContext, "useThreadListItem");
38
+ export const { useThreadListItem } = createContextStoreHook(
39
+ useThreadListItemContext,
40
+ "useThreadListItem",
41
+ );
@@ -13,6 +13,12 @@ export {
13
13
  useThreadViewport,
14
14
  useThreadViewportStore,
15
15
  } from "./ThreadContext";
16
+
17
+ export {
18
+ useThreadListItemRuntime,
19
+ useThreadListItem,
20
+ } from "./ThreadListItemContext";
21
+
16
22
  export {
17
23
  useMessageRuntime,
18
24
  useMessage,
@@ -1,4 +1,4 @@
1
- import { PropsWithChildren } from "react";
1
+ import { ComponentType, PropsWithChildren } from "react";
2
2
  import type { ModelConfigProvider } from "../../types/ModelConfigTypes";
3
3
  import type { Unsubscribe } from "../../types/Unsubscribe";
4
4
  import { ThreadListRuntimeCore } from "./ThreadListRuntimeCore";
@@ -8,5 +8,12 @@ export type AssistantRuntimeCore = {
8
8
 
9
9
  registerModelConfigProvider: (provider: ModelConfigProvider) => Unsubscribe;
10
10
 
11
- __internal_RenderComponent?: React.FC<PropsWithChildren>;
11
+ /**
12
+ * A Provider component that wraps the app via `AssistantRuntimeProvider`.
13
+ *
14
+ * Note: This field is expected to never change.
15
+ * Refer to the source implementation of `ExternalStoreRuntimeCore`
16
+ * for an example of updating the provider via a zustand store.
17
+ */
18
+ readonly Provider: ComponentType<PropsWithChildren> | undefined;
12
19
  };
@@ -3,10 +3,14 @@ import type { Unsubscribe } from "../../types/Unsubscribe";
3
3
  import type { AssistantRuntimeCore } from "./AssistantRuntimeCore";
4
4
  import { ProxyConfigProvider } from "../../utils/ProxyConfigProvider";
5
5
  import { ThreadListRuntimeCore } from "./ThreadListRuntimeCore";
6
+ import { ComponentType } from "react";
6
7
 
7
8
  export abstract class BaseAssistantRuntimeCore implements AssistantRuntimeCore {
8
9
  protected readonly _proxyConfigProvider = new ProxyConfigProvider();
9
10
  public abstract get threadList(): ThreadListRuntimeCore;
11
+ public abstract get Provider():
12
+ | ComponentType<React.PropsWithChildren>
13
+ | undefined;
10
14
 
11
15
  constructor() {}
12
16
 
@@ -89,6 +89,11 @@ export type ThreadRuntimeCore = Readonly<{
89
89
  isDisabled: boolean;
90
90
  messages: readonly ThreadMessage[];
91
91
  suggestions: readonly ThreadSuggestion[];
92
+
93
+ /**
94
+ * @deprecated This field is deprecated and will be removed in 0.8.0.
95
+ * Please migrate to using `AssistantRuntimeCore.Provider` instead.
96
+ */
92
97
  extras: unknown;
93
98
 
94
99
  subscribe: (callback: () => void) => Unsubscribe;
@@ -1,3 +1,4 @@
1
+ import { PropsWithChildren } from "react";
1
2
  import { AppendMessage, ThreadMessage } from "../../types";
2
3
  import { AttachmentAdapter } from "../attachment";
3
4
  import {
@@ -53,6 +54,11 @@ type ExternalStoreAdapterBase<T> = {
53
54
  isRunning?: boolean | undefined;
54
55
  messages: T[];
55
56
  suggestions?: readonly ThreadSuggestion[] | undefined;
57
+
58
+ /**
59
+ * @deprecated This field is deprecated and will be removed in 0.8.0.
60
+ * Please migrate to `Provider` and a custom react context provider component instead.
61
+ */
56
62
  extras?: unknown;
57
63
 
58
64
  setMessages?: ((messages: T[]) => void) | undefined;
@@ -82,6 +88,8 @@ type ExternalStoreAdapterBase<T> = {
82
88
  copy?: boolean | undefined;
83
89
  }
84
90
  | undefined;
91
+
92
+ unstable_Provider?: React.ComponentType<PropsWithChildren> | undefined;
85
93
  };
86
94
 
87
95
  export type ExternalStoreAdapter<T = ThreadMessage> =
@@ -2,6 +2,9 @@ import { BaseAssistantRuntimeCore } from "../../internal";
2
2
  import { ExternalStoreThreadListRuntimeCore } from "./ExternalStoreThreadListRuntimeCore";
3
3
  import { ExternalStoreAdapter } from "./ExternalStoreAdapter";
4
4
  import { ExternalStoreThreadRuntimeCore } from "./ExternalStoreThreadRuntimeCore";
5
+ import { Fragment } from "react/jsx-runtime";
6
+ import { PropsWithChildren } from "react";
7
+ import { create } from "zustand";
5
8
 
6
9
  const getThreadListAdapter = (store: ExternalStoreAdapter<any>) => {
7
10
  return {
@@ -12,18 +15,35 @@ const getThreadListAdapter = (store: ExternalStoreAdapter<any>) => {
12
15
  export class ExternalStoreRuntimeCore extends BaseAssistantRuntimeCore {
13
16
  public readonly threadList;
14
17
 
15
- constructor(store: ExternalStoreAdapter<any>) {
18
+ private useRenderComponent;
19
+
20
+ constructor(adapter: ExternalStoreAdapter<any>) {
16
21
  super();
22
+ this.useRenderComponent = create(() => ({
23
+ RenderComponent: adapter.unstable_Provider ?? Fragment,
24
+ }));
17
25
  this.threadList = new ExternalStoreThreadListRuntimeCore(
18
- getThreadListAdapter(store),
26
+ getThreadListAdapter(adapter),
19
27
  () =>
20
- new ExternalStoreThreadRuntimeCore(this._proxyConfigProvider, store),
28
+ new ExternalStoreThreadRuntimeCore(this._proxyConfigProvider, adapter),
21
29
  );
22
30
  }
23
31
 
24
- public setStore(store: ExternalStoreAdapter<any>) {
32
+ public setAdapter(adapter: ExternalStoreAdapter<any>) {
25
33
  // Update the thread list adapter and propagate store changes to the main thread
26
- this.threadList.__internal_setAdapter(getThreadListAdapter(store));
27
- this.threadList.getMainThreadRuntimeCore().__internal_setStore(store);
34
+ this.threadList.__internal_setAdapter(getThreadListAdapter(adapter));
35
+ this.threadList.getMainThreadRuntimeCore().__internal_setAdapter(adapter);
36
+
37
+ const RenderComponent = adapter.unstable_Provider ?? Fragment;
38
+ if (
39
+ RenderComponent !== this.useRenderComponent.getState().RenderComponent
40
+ ) {
41
+ this.useRenderComponent.setState({ RenderComponent }, true);
42
+ }
28
43
  }
44
+
45
+ public readonly Provider = ({ children }: PropsWithChildren) => {
46
+ const RenderComponent = this.useRenderComponent.getState().RenderComponent;
47
+ return <RenderComponent>{children}</RenderComponent>;
48
+ };
29
49
  }
@@ -80,10 +80,10 @@ export class ExternalStoreThreadRuntimeCore
80
80
  store: ExternalStoreAdapter<any>,
81
81
  ) {
82
82
  super(configProvider);
83
- this.__internal_setStore(store);
83
+ this.__internal_setAdapter(store);
84
84
  }
85
85
 
86
- public __internal_setStore(store: ExternalStoreAdapter<any>) {
86
+ public __internal_setAdapter(store: ExternalStoreAdapter<any>) {
87
87
  if (this._store === store) return;
88
88
 
89
89
  const isRunning = store.isRunning ?? false;
@@ -8,7 +8,7 @@ export const useExternalStoreRuntime = <T,>(store: ExternalStoreAdapter<T>) => {
8
8
  const [runtime] = useState(() => new ExternalStoreRuntimeCore(store));
9
9
 
10
10
  useEffect(() => {
11
- runtime.setStore(store);
11
+ runtime.setAdapter(store);
12
12
  });
13
13
 
14
14
  return useMemo(
@@ -20,6 +20,7 @@ const getExportFromInitialMessages = (
20
20
 
21
21
  export class LocalRuntimeCore extends BaseAssistantRuntimeCore {
22
22
  public readonly threadList;
23
+ public readonly Provider = undefined;
23
24
 
24
25
  private _options: LocalRuntimeOptionsBase;
25
26
 
@@ -5,7 +5,7 @@ import { RemoteThreadListHookInstanceManager } from "./RemoteThreadListHookInsta
5
5
  import { BaseSubscribable } from "./BaseSubscribable";
6
6
  import { EMPTY_THREAD_CORE } from "./EMPTY_THREAD_CORE";
7
7
  import { OptimisticState } from "./OptimisticState";
8
- import { FC, PropsWithChildren, useEffect, useId } from "react";
8
+ import { FC, Fragment, PropsWithChildren, useEffect, useId } from "react";
9
9
  import { create } from "zustand";
10
10
  import { CloudInitializeResponse } from "./cloud/CloudContext";
11
11
 
@@ -25,10 +25,6 @@ type RemoteThreadData =
25
25
  readonly title?: string | undefined;
26
26
  };
27
27
 
28
- const DEFAULT_RENDER_COMPONENT: FC<PropsWithChildren> = ({ children }) => {
29
- return children;
30
- };
31
-
32
28
  type THREAD_MAPPING_ID = string & { __brand: "THREAD_MAPPING_ID" };
33
29
  function createThreadMappingId(id: string): THREAD_MAPPING_ID {
34
30
  return id as THREAD_MAPPING_ID;
@@ -157,8 +153,7 @@ export class RemoteThreadListThreadListRuntimeCore
157
153
  adapter.runtimeHook,
158
154
  );
159
155
  this.useRenderComponent = create(() => ({
160
- RenderComponent:
161
- adapter.__internal_RenderComponent ?? DEFAULT_RENDER_COMPONENT,
156
+ RenderComponent: adapter.unstable_Provider ?? Fragment,
162
157
  }));
163
158
  this.__internal_setAdapter(adapter);
164
159
 
@@ -234,8 +229,7 @@ export class RemoteThreadListThreadListRuntimeCore
234
229
  this._disposeOldAdapter?.();
235
230
  this._disposeOldAdapter = this._adapter.onInitialize(this._onInitialize);
236
231
 
237
- const RenderComponent =
238
- adapter.__internal_RenderComponent ?? DEFAULT_RENDER_COMPONENT;
232
+ const RenderComponent = adapter.unstable_Provider ?? Fragment;
239
233
  if (
240
234
  RenderComponent !== this.useRenderComponent.getState().RenderComponent
241
235
  ) {
@@ -460,7 +454,7 @@ export class RemoteThreadListThreadListRuntimeCore
460
454
 
461
455
  private useBoundIds = create<string[]>(() => []);
462
456
 
463
- public __internal_RenderComponent: FC<PropsWithChildren> = ({ children }) => {
457
+ public __internal_Provider: FC<PropsWithChildren> = ({ children }) => {
464
458
  const id = useId();
465
459
  useEffect(() => {
466
460
  this.useBoundIds.setState((s) => [...s, id], true);
@@ -86,8 +86,7 @@ export const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {
86
86
  onInitialize: (callback) => {
87
87
  return cloudContextValue.subscribe(callback);
88
88
  },
89
- __internal_RenderComponent: ({ children }: PropsWithChildren) => {
90
- console.log("RENDER COMPONENT");
89
+ unstable_Provider: ({ children }: PropsWithChildren) => {
91
90
  return (
92
91
  <CloudContext.Provider value={cloudContextValue}>
93
92
  {children}
@@ -1,4 +1,4 @@
1
- import { FC, PropsWithChildren } from "react";
1
+ import { ComponentType, PropsWithChildren } from "react";
2
2
  import { AssistantRuntime } from "../../api";
3
3
  import { Unsubscribe } from "../../types";
4
4
  import { CloudInitializeResponse } from "./cloud/CloudContext";
@@ -30,5 +30,5 @@ export type RemoteThreadListAdapter = {
30
30
  callback: (task: Promise<CloudInitializeResponse>) => Promise<void>,
31
31
  ): Unsubscribe;
32
32
 
33
- __internal_RenderComponent?: FC<PropsWithChildren>;
33
+ unstable_Provider?: ComponentType<PropsWithChildren>;
34
34
  };
@@ -12,8 +12,8 @@ class RemoteThreadListRuntimeCore extends BaseAssistantRuntimeCore {
12
12
  this.threadList = new RemoteThreadListThreadListRuntimeCore(adapter);
13
13
  }
14
14
 
15
- public get __internal_RenderComponent() {
16
- return this.threadList.__internal_RenderComponent;
15
+ public get Provider() {
16
+ return this.threadList.__internal_Provider;
17
17
  }
18
18
  }
19
19
 
@@ -9,7 +9,7 @@
9
9
  }
10
10
 
11
11
  .aui-thread-viewport-footer {
12
- @apply sticky bottom-0 mt-3 flex w-full max-w-2xl flex-col items-center justify-end rounded-t-lg bg-inherit pb-4;
12
+ @apply max-w-aui-thread sticky bottom-0 mt-3 flex w-full flex-col items-center justify-end rounded-t-lg bg-inherit pb-4;
13
13
  }
14
14
 
15
15
  .aui-thread-scroll-to-bottom {
@@ -27,7 +27,7 @@
27
27
  /* thread welcome */
28
28
 
29
29
  .aui-thread-welcome-root {
30
- @apply flex w-full max-w-2xl flex-grow flex-col;
30
+ @apply max-w-aui-thread flex w-full flex-grow flex-col;
31
31
  }
32
32
 
33
33
  .aui-thread-welcome-center {
@@ -108,7 +108,7 @@
108
108
 
109
109
  .aui-user-message-root {
110
110
  @apply grid auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] gap-y-2 [&>*]:col-start-2;
111
- @apply w-full max-w-2xl py-4;
111
+ @apply max-w-aui-thread w-full py-4;
112
112
  }
113
113
 
114
114
  :where(.aui-user-message-root) > .aui-user-action-bar-root {
@@ -130,7 +130,7 @@
130
130
  }
131
131
 
132
132
  .aui-user-message-content {
133
- @apply bg-aui-muted text-aui-foreground max-w-xl break-words rounded-3xl px-5 py-2.5;
133
+ @apply bg-aui-muted text-aui-foreground max-w-[calc(var(--aui-thread-max-width)*0.8)] break-words rounded-3xl px-5 py-2.5;
134
134
  }
135
135
 
136
136
  .aui-user-message-attachments {
@@ -146,7 +146,7 @@
146
146
  /* edit composer */
147
147
 
148
148
  .aui-edit-composer-root {
149
- @apply bg-aui-muted my-4 flex w-full max-w-2xl flex-col gap-2 rounded-xl;
149
+ @apply bg-aui-muted max-w-aui-thread my-4 flex w-full flex-col gap-2 rounded-xl;
150
150
  }
151
151
 
152
152
  .aui-edit-composer-input {
@@ -161,7 +161,7 @@
161
161
 
162
162
  .aui-assistant-message-root {
163
163
  @apply grid grid-cols-[auto_auto_1fr] grid-rows-[auto_1fr];
164
- @apply relative w-full max-w-2xl py-4;
164
+ @apply max-w-aui-thread relative w-full py-4;
165
165
  }
166
166
 
167
167
  :where(.aui-assistant-message-root) > .aui-avatar-root {
@@ -183,7 +183,7 @@
183
183
  }
184
184
 
185
185
  .aui-assistant-message-content {
186
- @apply text-aui-foreground max-w-xl break-words leading-7;
186
+ @apply text-aui-foreground max-w-[calc(var(--aui-thread-max-width)*0.8)] break-words leading-7;
187
187
  }
188
188
 
189
189
  /* assistant action bar */
@@ -28,6 +28,9 @@
28
28
  --aui-ring: 240 10% 3.9%;
29
29
 
30
30
  --aui-radius: 0.5rem;
31
+
32
+ /* aui specific */
33
+ --aui-thread-max-width: 42rem;
31
34
  }
32
35
 
33
36
  .dark {
@@ -0,0 +1,4 @@
1
+ /* duplicates from default.css for properties outside what is included in shadcn-ui themes */
2
+ :root {
3
+ --aui-thread-max-width: 42rem;
4
+ }