@usecrow/ui 0.1.66 → 0.1.67

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/dist/index.cjs CHANGED
@@ -1638,6 +1638,12 @@ function useWidgetStyles({
1638
1638
  const [selectedModel, setSelectedModel] = React3.useState(
1639
1639
  styleCache.get(key)?.model ?? void 0
1640
1640
  );
1641
+ const [modelSelectionEnabled, setModelSelectionEnabled] = React3.useState(
1642
+ styleCache.get(key)?.modelSelectionEnabled || false
1643
+ );
1644
+ const [availableModels, setAvailableModels] = React3.useState(
1645
+ styleCache.get(key)?.availableModels || []
1646
+ );
1641
1647
  const hasFetchedRef = React3.useRef(false);
1642
1648
  const fetchStyles = async () => {
1643
1649
  if (skip) return;
@@ -1657,6 +1663,8 @@ function useWidgetStyles({
1657
1663
  setSelectedModel(config.model ?? void 0);
1658
1664
  setInitialSuggestions(config.initialSuggestions || []);
1659
1665
  setToolConsentSettings(config.toolConsentSettings || {});
1666
+ setModelSelectionEnabled(config.modelSelectionEnabled || false);
1667
+ setAvailableModels(config.availableModels || []);
1660
1668
  } catch (err) {
1661
1669
  console.error("[CrowWidget] Failed to fetch styles:", err);
1662
1670
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -1675,6 +1683,8 @@ function useWidgetStyles({
1675
1683
  setPersistAnonymousConversations(cached.persistAnonymousConversations ?? true);
1676
1684
  setWelcomeMessage(cached.welcomeMessage ?? void 0);
1677
1685
  setSelectedModel(cached.model ?? void 0);
1686
+ setModelSelectionEnabled(cached.modelSelectionEnabled || false);
1687
+ setAvailableModels(cached.availableModels || []);
1678
1688
  setIsLoading(false);
1679
1689
  return;
1680
1690
  }
@@ -1696,6 +1706,8 @@ function useWidgetStyles({
1696
1706
  selectedModel,
1697
1707
  initialSuggestions,
1698
1708
  toolConsentSettings,
1709
+ modelSelectionEnabled,
1710
+ availableModels,
1699
1711
  refetch: fetchStyles
1700
1712
  };
1701
1713
  }
@@ -1735,6 +1747,12 @@ function useCopilotStyles({
1735
1747
  const [toolConsentSettings, setToolConsentSettings] = React3.useState(
1736
1748
  styleCache.get(key)?.toolConsentSettings || {}
1737
1749
  );
1750
+ const [modelSelectionEnabled, setModelSelectionEnabled] = React3.useState(
1751
+ styleCache.get(key)?.modelSelectionEnabled || false
1752
+ );
1753
+ const [availableModels, setAvailableModels] = React3.useState(
1754
+ styleCache.get(key)?.availableModels || []
1755
+ );
1738
1756
  const hasFetchedRef = React3.useRef(false);
1739
1757
  const fetchStyles = async () => {
1740
1758
  if (skip) return;
@@ -1752,6 +1770,8 @@ function useCopilotStyles({
1752
1770
  setWelcomeMessage(config.welcomeMessage ?? void 0);
1753
1771
  setSelectedModel(config.model ?? void 0);
1754
1772
  setToolConsentSettings(config.toolConsentSettings || {});
1773
+ setModelSelectionEnabled(config.modelSelectionEnabled || false);
1774
+ setAvailableModels(config.availableModels || []);
1755
1775
  } catch (err) {
1756
1776
  console.error("[CrowCopilot] Failed to fetch styles:", err);
1757
1777
  setError(err instanceof Error ? err : new Error(String(err)));
@@ -1771,6 +1791,8 @@ function useCopilotStyles({
1771
1791
  setPersistAnonymousConversations(cached.persistAnonymousConversations ?? true);
1772
1792
  setWelcomeMessage(cached.welcomeMessage ?? void 0);
1773
1793
  setSelectedModel(cached.model ?? void 0);
1794
+ setModelSelectionEnabled(cached.modelSelectionEnabled || false);
1795
+ setAvailableModels(cached.availableModels || []);
1774
1796
  setIsLoading(false);
1775
1797
  return;
1776
1798
  }
@@ -1790,6 +1812,8 @@ function useCopilotStyles({
1790
1812
  welcomeMessage,
1791
1813
  selectedModel,
1792
1814
  toolConsentSettings,
1815
+ modelSelectionEnabled,
1816
+ availableModels,
1793
1817
  refetch: fetchStyles
1794
1818
  };
1795
1819
  }
@@ -3231,7 +3255,9 @@ var ModelSelector = ({
3231
3255
  const dropdownRef = React3.useRef(null);
3232
3256
  React3.useEffect(() => {
3233
3257
  const handleClickOutside = (event) => {
3234
- if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
3258
+ if (!dropdownRef.current) return;
3259
+ const path = event.composedPath();
3260
+ if (!path.includes(dropdownRef.current)) {
3235
3261
  setIsOpen(false);
3236
3262
  }
3237
3263
  };
@@ -4216,7 +4242,9 @@ function CrowWidget({
4216
4242
  welcomeMessage: welcomeMessageFromAPI,
4217
4243
  selectedModel: selectedModelFromAPI,
4218
4244
  initialSuggestions,
4219
- toolConsentSettings
4245
+ toolConsentSettings,
4246
+ modelSelectionEnabled,
4247
+ availableModels: availableModelsFromAPI
4220
4248
  } = useWidgetStyles({
4221
4249
  productId,
4222
4250
  apiUrl,
@@ -4813,7 +4841,10 @@ function CrowWidget({
4813
4841
  showStopButton: isBrowserUseActive || !!askUserResolver || !!pendingConfirmation,
4814
4842
  highlighted: !!askUserResolver,
4815
4843
  className: "crow-backdrop-blur-md",
4816
- backendUrl: apiUrl
4844
+ backendUrl: apiUrl,
4845
+ selectedModel: chat.selectedModel || selectedModelFromAPI,
4846
+ onModelChange: chat.setSelectedModel,
4847
+ availableModels: modelSelectionEnabled ? availableModelsFromAPI : []
4817
4848
  }
4818
4849
  )
4819
4850
  ] })
@@ -5148,7 +5179,9 @@ function CrowCopilot({
5148
5179
  persistAnonymousConversations,
5149
5180
  welcomeMessage: welcomeMessageFromAPI,
5150
5181
  selectedModel,
5151
- toolConsentSettings
5182
+ toolConsentSettings,
5183
+ modelSelectionEnabled,
5184
+ availableModels: availableModelsFromAPI
5152
5185
  } = useCopilotStyles({
5153
5186
  productId,
5154
5187
  apiUrl,
@@ -6113,7 +6146,10 @@ function CrowCopilot({
6113
6146
  onSend: handleSend,
6114
6147
  onStop: handleStop,
6115
6148
  placeholder: "Ask anything...",
6116
- isLoading: chat.isLoading
6149
+ isLoading: chat.isLoading,
6150
+ selectedModel: chat.selectedModel || selectedModel,
6151
+ onModelChange: chat.setSelectedModel,
6152
+ availableModels: modelSelectionEnabled ? availableModelsFromAPI : []
6117
6153
  }
6118
6154
  )
6119
6155
  ]