@websolutespa/bom-mixer-llm 2.0.1 → 2.0.2

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 (50) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +50 -25
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/esm/initializer/app/app.js +10 -6
  5. package/dist/esm/initializer/app/app.js.map +1 -1
  6. package/dist/esm/initializer/initializer.js +5 -4
  7. package/dist/esm/initializer/initializer.js.map +1 -1
  8. package/dist/esm/llm/components/IntroContext/intro-context.js +12 -0
  9. package/dist/esm/llm/components/IntroContext/intro-context.js.map +1 -0
  10. package/dist/esm/llm/components/Main/main.js +3 -1
  11. package/dist/esm/llm/components/Main/main.js.map +1 -1
  12. package/dist/esm/llm/components/Suggestions/suggestions.js +4 -0
  13. package/dist/esm/llm/components/Suggestions/suggestions.js.map +1 -1
  14. package/dist/esm/llm/components/index.js +2 -0
  15. package/dist/esm/llm/components/index.js.map +1 -1
  16. package/dist/esm/llm/llm.js +6 -6
  17. package/dist/esm/llm/llm.js.map +1 -1
  18. package/dist/esm/useLlm/useLlm.js.map +1 -1
  19. package/dist/esm/useLlm/useLlmView.js +14 -8
  20. package/dist/esm/useLlm/useLlmView.js.map +1 -1
  21. package/dist/types/initializer/initializer.d.ts +2 -1
  22. package/dist/types/initializer/initializer.d.ts.map +1 -1
  23. package/dist/types/llm/components/IntroContext/intro-context-test.d.ts +3 -0
  24. package/dist/types/llm/components/IntroContext/intro-context-test.d.ts.map +1 -0
  25. package/dist/types/llm/components/IntroContext/intro-context.d.ts +3 -0
  26. package/dist/types/llm/components/IntroContext/intro-context.d.ts.map +1 -0
  27. package/dist/types/llm/components/Main/main.d.ts.map +1 -1
  28. package/dist/types/llm/components/Suggestions/suggestions.d.ts.map +1 -1
  29. package/dist/types/llm/components/index.d.ts +1 -0
  30. package/dist/types/llm/components/index.d.ts.map +1 -1
  31. package/dist/types/types.d.ts +3 -3
  32. package/dist/types/types.d.ts.map +1 -1
  33. package/dist/types/useLlm/useLlm.d.ts +2 -1
  34. package/dist/types/useLlm/useLlm.d.ts.map +1 -1
  35. package/dist/types/useLlm/useLlmView.d.ts +3 -2
  36. package/dist/types/useLlm/useLlmView.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/src/initializer/app/app.tsx +12 -5
  39. package/src/initializer/initializer.ts +6 -5
  40. package/src/llm/components/Intro/intro.tsx +1 -1
  41. package/src/llm/components/IntroContext/_style.scss +71 -0
  42. package/src/llm/components/IntroContext/intro-context-test.tsx +78 -0
  43. package/src/llm/components/IntroContext/intro-context.tsx +10 -0
  44. package/src/llm/components/Main/main.tsx +7 -1
  45. package/src/llm/components/Suggestions/suggestions.tsx +5 -0
  46. package/src/llm/components/index.ts +2 -0
  47. package/src/llm/llm.tsx +6 -6
  48. package/src/types.ts +11 -11
  49. package/src/useLlm/useLlm.tsx +3 -2
  50. package/src/useLlm/useLlmView.tsx +24 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @websolutespa/bom-mixer-llm
2
2
 
3
+ ## 2.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Added: openingContext & IntroContext
8
+ - 71f0616: Added: pluginLabels
9
+
3
10
  ## 2.0.1
4
11
 
5
12
  ### Patch Changes
package/dist/cjs/index.js CHANGED
@@ -384,13 +384,16 @@ const createLlmViewStore = _ref => {
384
384
  }
385
385
  });
386
386
  }),
387
- open: () => {
387
+ open: openingContext => {
388
388
  setIdleTimeout();
389
389
  set(state => {
390
390
  const opened = !state.opened;
391
- pushDataLayer({
392
- event: opened ? 'llm_open' : 'llm_close'
393
- });
391
+ if (opened) {
392
+ state.openingContext = openingContext;
393
+ }
394
+ pushDataLayer(Object.assign({
395
+ event: opened ? state.openingContext ? 'llm_open_context' : 'llm_open' : 'llm_close'
396
+ }, state.openingContext || {}));
394
397
  persistMinimized(false);
395
398
  return {
396
399
  opened,
@@ -404,12 +407,15 @@ const createLlmViewStore = _ref => {
404
407
  } = get();
405
408
  return opened;
406
409
  },
407
- setOpened: opened => {
410
+ setOpened: (opened, openingContext) => {
408
411
  setIdleTimeout();
409
412
  set(state => {
410
- pushDataLayer({
411
- event: opened ? 'llm_open' : 'llm_close'
412
- });
413
+ if (opened) {
414
+ state.openingContext = openingContext;
415
+ }
416
+ pushDataLayer(Object.assign({
417
+ event: opened ? state.openingContext ? 'llm_open_context' : 'llm_open' : 'llm_close'
418
+ }, state.openingContext || {}));
413
419
  return {
414
420
  opened
415
421
  };
@@ -3475,12 +3481,20 @@ const Intro = () => {
3475
3481
  });
3476
3482
  };
3477
3483
 
3484
+ const IntroContext = () => {
3485
+ const {
3486
+ Intro
3487
+ } = useLlm(state => state.components);
3488
+ return jsxRuntime.jsx(Intro, {});
3489
+ };
3490
+
3478
3491
  const Main = () => {
3479
3492
  var _a;
3480
3493
  const {
3481
3494
  Canvas,
3482
3495
  Header,
3483
3496
  Intro,
3497
+ IntroContext,
3484
3498
  Prompt,
3485
3499
  Scroller,
3486
3500
  ScrollProposition,
@@ -3489,6 +3503,7 @@ const Main = () => {
3489
3503
  const app = useLlm(state => state.app);
3490
3504
  const theme = useLlm(state => state.theme);
3491
3505
  const messages = useLlm(state => state.messages);
3506
+ const openingContext = useLlmView(state => state.openingContext);
3492
3507
  const introed = useLlmView(state => state.introed);
3493
3508
  const visible = useLlmView(state => state.visible);
3494
3509
  const embedded = useLlmView(state => state.embedded);
@@ -3572,7 +3587,7 @@ const Main = () => {
3572
3587
  initial: "hidden",
3573
3588
  animate: "show",
3574
3589
  className: "llm__content",
3575
- children: [jsxRuntime.jsx(Intro, {}), messages && messages.length > 0 && jsxRuntime.jsx(Thread, {})]
3590
+ children: [openingContext ? jsxRuntime.jsx(IntroContext, {}) : jsxRuntime.jsx(Intro, {}), messages && messages.length > 0 && jsxRuntime.jsx(Thread, {})]
3576
3591
  })
3577
3592
  }), shouldShowPrompt && jsxRuntime.jsxs(jsxRuntime.Fragment, {
3578
3593
  children: [app && !((_a = theme.canvas) === null || _a === void 0 ? void 0 : _a.enabled) && jsxRuntime.jsx("div", {
@@ -5087,6 +5102,7 @@ const Stream = _ref => {
5087
5102
  const Suggestions = () => {
5088
5103
  bomMixerHooks.useWindowSize();
5089
5104
  const app = useLlm(state => state.app);
5105
+ const openingContext = useLlmView(state => state.openingContext);
5090
5106
  const {
5091
5107
  send
5092
5108
  } = useLlmView(state => state.actions);
@@ -5097,6 +5113,9 @@ const Suggestions = () => {
5097
5113
  // console.log('Suggestions.onEnd', response);
5098
5114
  });
5099
5115
  });
5116
+ if (openingContext) {
5117
+ return;
5118
+ }
5100
5119
  const sampleInputTexts = app === null || app === void 0 ? void 0 : app.contents.sampleInputTexts;
5101
5120
  return jsxRuntime.jsx(jsxRuntime.Fragment, {
5102
5121
  children: sampleInputTexts && sampleInputTexts.length > 0 && jsxRuntime.jsx("section", {
@@ -5269,6 +5288,7 @@ const LLM_COMPONENTS = {
5269
5288
  Header,
5270
5289
  Hints,
5271
5290
  Intro,
5291
+ IntroContext,
5272
5292
  Main,
5273
5293
  PageActions,
5274
5294
  PageContext,
@@ -8962,17 +8982,17 @@ const LlmComponent = /*#__PURE__*/React.forwardRef((props, ref) => {
8962
8982
  const embedded = useLlmView(state => state.embedded);
8963
8983
  const imperative = useLlmView(state => state.imperative);
8964
8984
  const instance = React.useMemo(() => ({
8965
- open: () => {
8966
- open();
8985
+ open: openingContext => {
8986
+ open(openingContext);
8967
8987
  },
8968
8988
  isOpened: () => {
8969
8989
  return isOpened();
8970
8990
  },
8971
- setOpened: opened => {
8972
- setOpened(opened);
8991
+ setOpened: (opened, openingContext) => {
8992
+ setOpened(opened, openingContext);
8973
8993
  },
8974
- send: message => {
8975
- setOpened(true);
8994
+ send: (message, openingContext) => {
8995
+ setOpened(true, openingContext);
8976
8996
  send(message);
8977
8997
  },
8978
8998
  clear: () => {
@@ -9392,7 +9412,7 @@ const App = _a => {
9392
9412
  const defaultEndpoint = typeof props.test !== 'undefined' ? 'https://bom-sample-basic-web-git-bom-llm-actarian.vercel.app' : 'https://platform.websolute.ai';
9393
9413
  const endpoint = props.endpoint || defaultEndpoint;
9394
9414
  const layout = {
9395
- labels: getLabels(data.locale, defaultLabels, props.labels),
9415
+ labels: getLabels(data.locale, defaultLabels, props.pluginLabels, props.labels),
9396
9416
  locale: data.locale,
9397
9417
  locales: [{
9398
9418
  id: data.locale,
@@ -9462,12 +9482,16 @@ const App = _a => {
9462
9482
  })
9463
9483
  });
9464
9484
  };
9465
- function getLabels(locale, defaultLabels, extendedLabels) {
9466
- if (extendedLabels === void 0) {
9467
- extendedLabels = [];
9485
+ function getLabels(locale, defaultLabels, pluginLabels, externalLabels) {
9486
+ if (pluginLabels === void 0) {
9487
+ pluginLabels = [];
9488
+ }
9489
+ if (externalLabels === void 0) {
9490
+ externalLabels = [];
9468
9491
  }
9469
- const labels = [...defaultLabels.filter(x => extendedLabels.findIndex(e => e.id === x.id) === -1), ...extendedLabels];
9470
- return labels.map(x => {
9492
+ const labels = [...defaultLabels.filter(x => pluginLabels.findIndex(e => e.id === x.id) === -1), ...pluginLabels];
9493
+ const finalLabels = [...labels.filter(x => externalLabels.findIndex(e => e.id === x.id) === -1), ...externalLabels];
9494
+ return finalLabels.map(x => {
9471
9495
  const localizedItem = bomCore.localizeItem(x, locale, 'en');
9472
9496
  return {
9473
9497
  id: localizedItem.id,
@@ -9612,7 +9636,7 @@ function isIterable(element) {
9612
9636
  return element != null && typeof element[Symbol.iterator] === 'function';
9613
9637
  }
9614
9638
 
9615
- function getInitializer(globalName, plugins) {
9639
+ function getInitializer(globalName, plugins, pluginLabels) {
9616
9640
  if (globalName === void 0) {
9617
9641
  globalName = 'bomLlm';
9618
9642
  }
@@ -9625,23 +9649,24 @@ function getInitializer(globalName, plugins) {
9625
9649
  return;
9626
9650
  }
9627
9651
  props.plugins = [...(props.plugins || []), ...(plugins || [])];
9652
+ props.pluginLabels = pluginLabels;
9628
9653
  const id = bomCore.toKebabCase(globalName);
9629
9654
  const node = document.createElement('div');
9630
9655
  node.setAttribute('id', id);
9631
9656
  body.appendChild(node);
9632
9657
  const initError = 'llm plugin is not initialized';
9633
9658
  const llmInstance = {
9634
- open: () => {
9659
+ open: openingContext => {
9635
9660
  console.log(initError);
9636
9661
  },
9637
- setOpened: opened => {
9662
+ setOpened: (opened, openingContext) => {
9638
9663
  console.log(initError);
9639
9664
  },
9640
9665
  isOpened: () => {
9641
9666
  console.log(initError);
9642
9667
  return false;
9643
9668
  },
9644
- send: message => {
9669
+ send: (message, openingContext) => {
9645
9670
  console.log(initError);
9646
9671
  },
9647
9672
  clear: () => {