@admin-layout/tailwind-ui 12.2.4-alpha.59 → 12.2.4-alpha.60

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.
@@ -19,6 +19,25 @@ export interface CharacterPicker {
19
19
  /** Switch the active character by name. Pass null to clear (revert to first). */
20
20
  setActive: (name: string | null) => void;
21
21
  }
22
+ /**
23
+ * Marketplace character entry — produced from `contributes.uiLayout` rows
24
+ * under `marketplace.characters.*`. Fed in from yantra-app via
25
+ * `setMarketplaceCharacters` so this package stays free of GraphQL deps.
26
+ */
27
+ export interface MarketplaceCharacterEntry {
28
+ name: string;
29
+ fileName?: string;
30
+ extensionId?: string;
31
+ extensionSlug?: string;
32
+ /** Optional pre-resolved data URL (e.g. CDN avatar). Filesystem install will override. */
33
+ avatarSrc?: string | null;
34
+ }
35
+ /**
36
+ * Publish the current list of marketplace-contributed characters. Called by
37
+ * yantra-app after `useSettingsLoader({ configKey: 'marketplace.characters' })`
38
+ * resolves. Triggers a re-render of any active character hook.
39
+ */
40
+ export declare function setMarketplaceCharacters(entries: MarketplaceCharacterEntry[]): void;
22
41
  /**
23
42
  * Return the active character (name + avatar) or null when none is installed
24
43
  * / we're not running under Tauri. Selection follows `pickActiveMerged` (file_name
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveCharacter.d.ts","sourceRoot":"","sources":["../../../../src/components/AIToolbar/hooks/useActiveCharacter.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,eAAe;IAC5B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,gFAAgF;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iFAAiF;IACjF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C;AAmMD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAkC3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAiEpD"}
1
+ {"version":3,"file":"useActiveCharacter.d.ts","sourceRoot":"","sources":["../../../../src/components/AIToolbar/hooks/useActiveCharacter.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,eAAe;IAC5B,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC5B,sDAAsD;IACtD,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,gFAAgF;IAChF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iFAAiF;IACjF,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC5C;AASD;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAiCD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,yBAAyB,EAAE,GAAG,IAAI,CASnF;AAkMD;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,IAAI,CAqC3D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAoEpD"}
@@ -1,4 +1,4 @@
1
- import*as React from'react';import {ACTIVE_CHARACTER_CHANGE_EVENT,readPreferredActiveCharacterFileName,setPreferredActiveCharacterFileName,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY}from'../../../hooks/activeCharacterPreference.js';import {clearCharacterSpriteCache}from'./useCharacterSprite.js';// Active-character lookup for the AIToolbar.
1
+ import*as React from'react';import {setPreferredActiveCharacterFileName,ACTIVE_CHARACTER_CHANGE_EVENT,readPreferredActiveCharacterFileName,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY}from'../../../hooks/activeCharacterPreference.js';import {clearCharacterSpriteCache}from'./useCharacterSprite.js';// Active-character lookup for the AIToolbar.
2
2
  //
3
3
  // Surfaces the currently-selected character (name + avatar data URL) so the
4
4
  // completion popover and message history can show "Seraphina" with her avatar
@@ -34,8 +34,52 @@ const EXTENSIONS_CHANGED_EVENT = 'yantra:extensions-changed';
34
34
  /** Window event dispatched by `useCharacterPicker().setActive(...)` to notify subscribers. */
35
35
  const ACTIVE_CHARACTER_CHANGED_EVENT = 'yantra:active-character-changed';
36
36
  const ACTIVE_CHARACTER_STORAGE_KEY = 'yantra:active-character-name';
37
- /** Manifest contribution key emitted by extensions that ship character cards. */
38
- const CHARACTER_CONTRIBUTION = 'characters';
37
+ /** Manifest contribution keys that should retrigger a character reload. */
38
+ const CHARACTER_CONTRIBUTIONS = ['characters', 'uiLayout'];
39
+ // marketplace registry (populated by yantra-app via setMarketplaceCharacters)
40
+ let marketplaceRegistry = [];
41
+ const marketplaceSubscribers = new Set();
42
+ function subscribeMarketplace(cb) {
43
+ marketplaceSubscribers.add(cb);
44
+ return () => marketplaceSubscribers.delete(cb);
45
+ }
46
+ /**
47
+ * Publish the current list of marketplace-contributed characters. Called by
48
+ * yantra-app after `useSettingsLoader({ configKey: 'marketplace.characters' })`
49
+ * resolves. Triggers a re-render of any active character hook.
50
+ */
51
+ function setMarketplaceCharacters(entries) {
52
+ marketplaceRegistry = Array.isArray(entries) ? entries : [];
53
+ marketplaceSubscribers.forEach(cb => {
54
+ try {
55
+ cb();
56
+ } catch {
57
+ // ignore subscriber errors
58
+ }
59
+ });
60
+ }
61
+ function getMarketplaceCharacters() {
62
+ return marketplaceRegistry;
63
+ }
64
+ /**
65
+ * Merge marketplace entries into the filesystem list. Filesystem wins on
66
+ * name conflicts (real avatar > stub), so the marketplace entry is dropped.
67
+ */
68
+ function mergeWithMarketplace(filesystem, marketplace) {
69
+ if (marketplace.length === 0) return filesystem;
70
+ const seen = new Set(filesystem.map(c => c.name));
71
+ const extras = [];
72
+ for (const m of marketplace) {
73
+ if (!m.name || seen.has(m.name)) continue;
74
+ seen.add(m.name);
75
+ extras.push({
76
+ name: m.name,
77
+ file_name: m.fileName,
78
+ source: 'marketplace'
79
+ });
80
+ }
81
+ return extras.length ? [...filesystem, ...extras] : filesystem;
82
+ }
39
83
  // helpers
40
84
  function isTauri() {
41
85
  if (typeof window === 'undefined') return false;
@@ -79,7 +123,7 @@ function readStoredActiveName() {
79
123
  function isCharacterRelevant(event) {
80
124
  const detail = event.detail;
81
125
  if (!detail || !Array.isArray(detail.contributes)) return true;
82
- return detail.contributes.includes(CHARACTER_CONTRIBUTION);
126
+ return detail.contributes.some(c => CHARACTER_CONTRIBUTIONS.includes(c));
83
127
  }
84
128
  function writeStoredActiveName(name) {
85
129
  if (typeof window === 'undefined') return;
@@ -113,6 +157,11 @@ function pickActiveMerged(list) {
113
157
  const byName = list.find(c => c.name === desiredName);
114
158
  if (byName) return byName;
115
159
  }
160
+ // No explicit selection: prefer an extension-contributed character over
161
+ // user-root cards so a freshly-installed extension (e.g. Seraphina) wins
162
+ // by default instead of dev/test residue sitting in the user data dir.
163
+ const extensionPick = list.find(c => c.source === 'extension');
164
+ if (extensionPick) return extensionPick;
116
165
  return list[0];
117
166
  }
118
167
  /** Subscribe to both preference schemes + cross-webview Tauri event; bump resets derived selection. */
@@ -195,10 +244,13 @@ function useActiveCharacter() {
195
244
  const next = await safeInvoke('character_list', {
196
245
  shallow: false
197
246
  });
198
- setList(next ?? []);
247
+ setList(mergeWithMarketplace(next ?? [], getMarketplaceCharacters()));
199
248
  }, []);
200
249
  React.useEffect(() => {
201
250
  void reload();
251
+ return subscribeMarketplace(() => {
252
+ void reload();
253
+ });
202
254
  }, [reload]);
203
255
  useCharacterPreferenceListeners(reload, bumpFn);
204
256
  const active = React.useMemo(() => pickActiveMerged(list), [list, bump]);
@@ -234,10 +286,13 @@ function useCharacterPicker() {
234
286
  const next = await safeInvoke('character_list', {
235
287
  shallow: false
236
288
  });
237
- setList(next ?? []);
289
+ setList(mergeWithMarketplace(next ?? [], getMarketplaceCharacters()));
238
290
  }, []);
239
291
  React.useEffect(() => {
240
292
  void reload();
293
+ return subscribeMarketplace(() => {
294
+ void reload();
295
+ });
241
296
  }, [reload]);
242
297
  useCharacterPreferenceListeners(reload, bumpFn);
243
298
  const activeName = React.useMemo(() => pickActiveMerged(list)?.name ?? null, [list, bump]);
@@ -286,4 +341,4 @@ function useCharacterPicker() {
286
341
  activeName,
287
342
  setActive
288
343
  };
289
- }export{useActiveCharacter,useCharacterPicker};//# sourceMappingURL=useActiveCharacter.js.map
344
+ }export{setMarketplaceCharacters,useActiveCharacter,useCharacterPicker};//# sourceMappingURL=useActiveCharacter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveCharacter.js","sources":["../../../../src/components/AIToolbar/hooks/useActiveCharacter.ts"],"sourcesContent":[null],"names":[],"mappings":"oSAqCA;;;;;;AAMI;AACH;AAED;;;AAGI;AACH;AAED;;;;AAII;;;AAGH;AAmMD;;;;;;AA4CG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"useActiveCharacter.js","sources":["../../../../src/components/AIToolbar/hooks/useActiveCharacter.ts"],"sourcesContent":[null],"names":[],"mappings":"oSAqCA;;;;;;AAMI;AACH;AAED;;;AAGI;AACH;AAED;;;;AAII;;;AAGH;AASD;;;;;MAQI,uBAAqB,GAAA,0BAAA;;;AAGrB;AACH;AAiCD;;;;AAIG,MAAA,4BAAA,GAAA,8BAAA;AACH;AA2MA,MAAA,uBAAA,GAAA,CAAA,YAAA,EAAA,UAAA,CAAA;;;;AAIG,SAAA,oBAAA,CAAA,EAAA,EAAA;AACH,EAAA,sBAAgB,CAAA,GAAA,CAAA,EAAA,CAAA;AAuChB,EAAA,OAAA,MAAA,sBAAA,CAAA,MAAA,CAAA,EAAA,CAAA;;;AAGG;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -2,4 +2,6 @@ export { AIToolbar, AIToolbarLeading, AIToolbarMain, AIToolbarTrailing, AIToolba
2
2
  export type { AIToolbarProps, AIToolbarSectionProps, AIToolbarInputSurfaceProps, AIToolbarStatusDotProps, } from './components/AIToolbarPrimitives';
3
3
  export * from './components';
4
4
  export type { CompletionSubmitOptions, UseCompletionReturn, SystemAudioProps, AIToolbarAppProps, AIToolbarHostPlatform, ChatMessage, ChatConversation, VadConfig, ToolbarAiProvider, ToolbarSelectedProvider, ToolbarAudioDevices, ToolbarAttachedFile, ToolbarScreenshotConfiguration, } from './components/types';
5
+ export { setMarketplaceCharacters, useActiveCharacter, useCharacterPicker } from './hooks/useActiveCharacter';
6
+ export type { MarketplaceCharacterEntry, ActiveCharacter, CharacterListEntry, CharacterPicker, } from './hooks/useActiveCharacter';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AIToolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,cAAc,cAAc,CAAC;AAE7B,YAAY,EACR,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,GACjC,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AIToolbar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACrB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACR,cAAc,EACd,qBAAqB,EACrB,0BAA0B,EAC1B,uBAAuB,GAC1B,MAAM,kCAAkC,CAAC;AAE1C,cAAc,cAAc,CAAC;AAE7B,YAAY,EACR,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,8BAA8B,GACjC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAC9G,YAAY,EACR,yBAAyB,EACzB,eAAe,EACf,kBAAkB,EAClB,eAAe,GAClB,MAAM,4BAA4B,CAAC"}
package/lib/index.js CHANGED
@@ -1 +1 @@
1
- export{default as PageLoading}from'./components/PageLoading/index.js';export{ApplicationErrorHandler}from'./components/ErrorHandlers/ApplicationErrorHandler.js';export{ErrorBoundary}from'./components/ErrorHandlers/ErrorBoundary.js';export{LayoutErrorBoundary}from'./components/ErrorHandlers/LayoutErrorBoundary.js';export{RemixErrorBoundary}from'./components/ErrorHandlers/RemixErrorBoundary.js';export{SPAErrorBoundary}from'./components/ErrorHandlers/SPAErrorBoundary.js';export{ReactTable}from'./components/ReactTable/Table.js';export{DefaultColumnFilter,SelectColumnFilter}from'./components/ReactTable/TableFilters.js';export{Error404}from'./components/ErrorPages/404.js';export{Error500}from'./components/ErrorPages/500.js';export{Error403}from'./components/ErrorPages/403.js';export{PageContainer}from'./components/PageContainer/PageContainer.js';export{Spin}from'./components/Spin/index.js';export{OTPInput}from'./components/OTP/OTPInput.js';export{SingleInput}from'./components/OTP/SingleInput.js';export{useOTPInput}from'./components/OTP/hooks.js';export{OTPVerification}from'./components/OTP/OTPVerification.js';export{SearchInput}from'./components/Search/SearchInput.js';export{Select,SelectContent,SelectItem,SelectSearch,SelectTrigger,SelectValue}from'./components/Select/Select.js';export{DatePicker}from'./components/DatePicker/DatePicker.js';export{Dialog}from'./components/Dialog/Dialog.js';export{TailwindUiButton}from'./components/Button/Button.js';export{TailwindThemeProvider,ThemeContext,themes}from'./components/ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./components/ThemeProvider/ThemeToggle.js';export{LanguageMenuDropdown}from'./components/LanguageMenuDropdown/LanguageMenuDropdown.js';export{InputToolBar}from'./components/InputToolBar/InputToolBar.js';export{getDefaultLeftItems,getDefaultRightItems}from'./components/InputToolBar/defaults.js';export{AIToolbar,AIToolbarInputSurface,AIToolbarLeading,AIToolbarMain,AIToolbarStatusDot,AIToolbarTrailing}from'./components/AIToolbar/components/AIToolbarPrimitives.js';export{Completion}from'./components/AIToolbar/components/completion/index.js';export{SystemAudio}from'./components/AIToolbar/components/speech/index.js';export{AudioVisualizer}from'./components/AIToolbar/components/speech/audio-visualizer.js';export{StatusIndicator}from'./components/AIToolbar/components/speech/StatusIndicator.js';export{AIToolBar}from'./components/AIToolbar/components/AIToolBar.js';export{CustomCursor}from'./components/AIToolbar/components/CustomCursor.js';export{MessageHistory}from'./components/AIToolbar/components/completion/MessageHistory.js';export{Screenshot}from'./components/AIToolbar/components/completion/Screenshot.js';export{Header}from'./components/AIToolbar/components/speech/Header.js';export{ModeSwitcher}from'./components/AIToolbar/components/speech/ModeSwitcher.js';export{PermissionFlow}from'./components/AIToolbar/components/speech/PermissionFlow.js';export{YantraIcon}from'./components/YantraIcon.js';export{Markdown as AIToolbarMarkdown}from'./components/AIToolbar/components/Markdown/index.js';export{MarkdownBreadcrumbs}from'./components/Markdown/MarkdownBreadcrumbs.js';export{MarkdownCopyButton}from'./components/Markdown/MarkdownCopyButton.js';export{MarkdownHeader}from'./components/Markdown/MarkdownHeader.js';export{MarkdownNavigation}from'./components/Markdown/MarkdownNavigation.js';export{MarkdownPage}from'./components/Markdown/MarkdownPage.js';export{MarkdownTableOfContents}from'./components/Markdown/MarkdownTableOfContents.js';export{ACTIVE_CHARACTER_CHANGE_EVENT,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY,readPreferredActiveCharacterFileName,resolveActiveCharacterFromList,setPreferredActiveCharacterFileName}from'./hooks/activeCharacterPreference.js';export{useTheme}from'./hooks/useTheme.js';export{useWindowSize}from'./hooks/useWindowSize.js';export{ToastContainer,useToast,useToastCloseAll}from'./hooks/useToast.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';export{cn}from'./utils/util.js';export{AssistantMessageActions}from'./components/AIToolbar/components/completion/AssistantMessageActions.js';export{DragButton}from'./components/AIToolbar/components/DragButton.js';//# sourceMappingURL=index.js.map
1
+ export{default as PageLoading}from'./components/PageLoading/index.js';export{ApplicationErrorHandler}from'./components/ErrorHandlers/ApplicationErrorHandler.js';export{ErrorBoundary}from'./components/ErrorHandlers/ErrorBoundary.js';export{LayoutErrorBoundary}from'./components/ErrorHandlers/LayoutErrorBoundary.js';export{RemixErrorBoundary}from'./components/ErrorHandlers/RemixErrorBoundary.js';export{SPAErrorBoundary}from'./components/ErrorHandlers/SPAErrorBoundary.js';export{ReactTable}from'./components/ReactTable/Table.js';export{DefaultColumnFilter,SelectColumnFilter}from'./components/ReactTable/TableFilters.js';export{Error404}from'./components/ErrorPages/404.js';export{Error500}from'./components/ErrorPages/500.js';export{Error403}from'./components/ErrorPages/403.js';export{PageContainer}from'./components/PageContainer/PageContainer.js';export{Spin}from'./components/Spin/index.js';export{OTPInput}from'./components/OTP/OTPInput.js';export{SingleInput}from'./components/OTP/SingleInput.js';export{useOTPInput}from'./components/OTP/hooks.js';export{OTPVerification}from'./components/OTP/OTPVerification.js';export{SearchInput}from'./components/Search/SearchInput.js';export{Select,SelectContent,SelectItem,SelectSearch,SelectTrigger,SelectValue}from'./components/Select/Select.js';export{DatePicker}from'./components/DatePicker/DatePicker.js';export{Dialog}from'./components/Dialog/Dialog.js';export{TailwindUiButton}from'./components/Button/Button.js';export{TailwindThemeProvider,ThemeContext,themes}from'./components/ThemeProvider/ThemeProvider.js';export{ThemeToggle}from'./components/ThemeProvider/ThemeToggle.js';export{LanguageMenuDropdown}from'./components/LanguageMenuDropdown/LanguageMenuDropdown.js';export{InputToolBar}from'./components/InputToolBar/InputToolBar.js';export{getDefaultLeftItems,getDefaultRightItems}from'./components/InputToolBar/defaults.js';export{AIToolbar,AIToolbarInputSurface,AIToolbarLeading,AIToolbarMain,AIToolbarStatusDot,AIToolbarTrailing}from'./components/AIToolbar/components/AIToolbarPrimitives.js';export{Completion}from'./components/AIToolbar/components/completion/index.js';export{SystemAudio}from'./components/AIToolbar/components/speech/index.js';export{AudioVisualizer}from'./components/AIToolbar/components/speech/audio-visualizer.js';export{StatusIndicator}from'./components/AIToolbar/components/speech/StatusIndicator.js';export{AIToolBar}from'./components/AIToolbar/components/AIToolBar.js';export{CustomCursor}from'./components/AIToolbar/components/CustomCursor.js';export{MessageHistory}from'./components/AIToolbar/components/completion/MessageHistory.js';export{Screenshot}from'./components/AIToolbar/components/completion/Screenshot.js';export{Header}from'./components/AIToolbar/components/speech/Header.js';export{ModeSwitcher}from'./components/AIToolbar/components/speech/ModeSwitcher.js';export{PermissionFlow}from'./components/AIToolbar/components/speech/PermissionFlow.js';export{setMarketplaceCharacters,useActiveCharacter,useCharacterPicker}from'./components/AIToolbar/hooks/useActiveCharacter.js';export{YantraIcon}from'./components/YantraIcon.js';export{Markdown as AIToolbarMarkdown}from'./components/AIToolbar/components/Markdown/index.js';export{MarkdownBreadcrumbs}from'./components/Markdown/MarkdownBreadcrumbs.js';export{MarkdownCopyButton}from'./components/Markdown/MarkdownCopyButton.js';export{MarkdownHeader}from'./components/Markdown/MarkdownHeader.js';export{MarkdownNavigation}from'./components/Markdown/MarkdownNavigation.js';export{MarkdownPage}from'./components/Markdown/MarkdownPage.js';export{MarkdownTableOfContents}from'./components/Markdown/MarkdownTableOfContents.js';export{ACTIVE_CHARACTER_CHANGE_EVENT,ACTIVE_CHARACTER_FILE_NAME_STORAGE_KEY,readPreferredActiveCharacterFileName,resolveActiveCharacterFromList,setPreferredActiveCharacterFileName}from'./hooks/activeCharacterPreference.js';export{useTheme}from'./hooks/useTheme.js';export{useWindowSize}from'./hooks/useWindowSize.js';export{ToastContainer,useToast,useToastCloseAll}from'./hooks/useToast.js';export{useMediaQuery}from'./hooks/useMediaQuery.js';export{cn}from'./utils/util.js';export{AssistantMessageActions}from'./components/AIToolbar/components/completion/AssistantMessageActions.js';export{DragButton}from'./components/AIToolbar/components/DragButton.js';//# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@admin-layout/tailwind-ui",
3
- "version": "12.2.4-alpha.59",
3
+ "version": "12.2.4-alpha.60",
4
4
  "description": "Sample core for higher packages to depend on",
5
5
  "license": "ISC",
6
6
  "author": "CDMBase LLC",
@@ -96,5 +96,5 @@
96
96
  "typescript": {
97
97
  "definition": "lib/index.d.ts"
98
98
  },
99
- "gitHead": "628dab51faaae1c1ab545c071a2252395659fe7e"
99
+ "gitHead": "5f1cbe79214debd2025b7e36e351fad227998a0f"
100
100
  }