@websolutespa/llm-plugin-maxmeyer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +159 -0
  3. package/dist/esm/__tests/example.test.js +9 -0
  4. package/dist/esm/__tests/example.test.js.map +1 -0
  5. package/dist/esm/blocks/Action/action.js +32 -0
  6. package/dist/esm/blocks/Action/action.js.map +1 -0
  7. package/dist/esm/blocks/Action/action.module.scss +5 -0
  8. package/dist/esm/blocks/ActionGroup/action-group.js +17 -0
  9. package/dist/esm/blocks/ActionGroup/action-group.js.map +1 -0
  10. package/dist/esm/blocks/ActionGroup/action-group.module.scss +8 -0
  11. package/dist/esm/blocks/AssistantMessage/assistant-message.js +18 -0
  12. package/dist/esm/blocks/AssistantMessage/assistant-message.js.map +1 -0
  13. package/dist/esm/blocks/CustomCard/custom-card.js +68 -0
  14. package/dist/esm/blocks/CustomCard/custom-card.js.map +1 -0
  15. package/dist/esm/blocks/CustomCard/custom-card.module.scss +64 -0
  16. package/dist/esm/blocks/CustomCardGroup/custom-card-group.js +65 -0
  17. package/dist/esm/blocks/CustomCardGroup/custom-card-group.js.map +1 -0
  18. package/dist/esm/blocks/CustomCardGroup/custom-card-group.module.scss +58 -0
  19. package/dist/esm/blocks/FormRecap/FormRecap.js +250 -0
  20. package/dist/esm/blocks/FormRecap/FormRecap.js.map +1 -0
  21. package/dist/esm/blocks/FormRecap/form-recap.module.scss +103 -0
  22. package/dist/esm/blocks/FormRecapError/FormRecapError.js +19 -0
  23. package/dist/esm/blocks/FormRecapError/FormRecapError.js.map +1 -0
  24. package/dist/esm/blocks/FormRecapError/form-recap-error.module.scss +7 -0
  25. package/dist/esm/blocks/FormRecapSuccess/FormRecapSuccess.js +19 -0
  26. package/dist/esm/blocks/FormRecapSuccess/FormRecapSuccess.js.map +1 -0
  27. package/dist/esm/blocks/FormRecapSuccess/form-recap-success.module.scss +7 -0
  28. package/dist/esm/blocks/FormRequest/FormRequest.js +36 -0
  29. package/dist/esm/blocks/FormRequest/FormRequest.js.map +1 -0
  30. package/dist/esm/blocks/FormRequest/form-request.module.scss +17 -0
  31. package/dist/esm/blocks/NotFound/not-found.js +15 -0
  32. package/dist/esm/blocks/NotFound/not-found.js.map +1 -0
  33. package/dist/esm/blocks/NotFound/not-found.module.scss +5 -0
  34. package/dist/esm/blocks/StreamError/StreamError.js +46 -0
  35. package/dist/esm/blocks/StreamError/StreamError.js.map +1 -0
  36. package/dist/esm/blocks/StreamError/_style.scss +34 -0
  37. package/dist/esm/blocks/UserMessage/user-message.js +22 -0
  38. package/dist/esm/blocks/UserMessage/user-message.js.map +1 -0
  39. package/dist/esm/blocks/UserMessage/user-message.module.scss +13 -0
  40. package/dist/esm/blocks/index.js +28 -0
  41. package/dist/esm/blocks/index.js.map +1 -0
  42. package/dist/esm/components/chat/Root/root.js +36 -0
  43. package/dist/esm/components/chat/Root/root.js.map +1 -0
  44. package/dist/esm/components/chat/Root/root.module.scss +58 -0
  45. package/dist/esm/components/chat/Thread/thread.js +40 -0
  46. package/dist/esm/components/chat/Thread/thread.js.map +1 -0
  47. package/dist/esm/components/chat/Thread/thread.module.scss +30 -0
  48. package/dist/esm/components/chat/index.js +8 -0
  49. package/dist/esm/components/chat/index.js.map +1 -0
  50. package/dist/esm/components/index.js +3 -0
  51. package/dist/esm/components/index.js.map +1 -0
  52. package/dist/esm/components/page/PageLoading/page-loading.js +32 -0
  53. package/dist/esm/components/page/PageLoading/page-loading.js.map +1 -0
  54. package/dist/esm/components/page/PageLoading/page-loading.module.scss +302 -0
  55. package/dist/esm/components/page/PageRoot/page-root.js +31 -0
  56. package/dist/esm/components/page/PageRoot/page-root.js.map +1 -0
  57. package/dist/esm/components/page/PageRoot/page-root.module.scss +24 -0
  58. package/dist/esm/components/page/PageStreamingIndicator/page-streaming-indicator.js +18 -0
  59. package/dist/esm/components/page/PageStreamingIndicator/page-streaming-indicator.js.map +1 -0
  60. package/dist/esm/components/page/PageStreamingIndicator/page-streaming-indicator.module.scss +38 -0
  61. package/dist/esm/components/page/PageTrigger/page-trigger.js +20 -0
  62. package/dist/esm/components/page/PageTrigger/page-trigger.js.map +1 -0
  63. package/dist/esm/components/page/PageTrigger/page-trigger.module.scss +16 -0
  64. package/dist/esm/components/page/index.js +12 -0
  65. package/dist/esm/components/page/index.js.map +1 -0
  66. package/dist/esm/global.d.js +2 -0
  67. package/dist/esm/global.d.js.map +1 -0
  68. package/dist/esm/index.js +12 -0
  69. package/dist/esm/index.js.map +1 -0
  70. package/dist/esm/llm.js +42 -0
  71. package/dist/esm/llm.js.map +1 -0
  72. package/dist/esm/mock/chat/app.js +76 -0
  73. package/dist/esm/mock/chat/app.js.map +1 -0
  74. package/dist/esm/mock/chat/theme.js +337 -0
  75. package/dist/esm/mock/chat/theme.js.map +1 -0
  76. package/dist/esm/mock/chat/thread.js +450 -0
  77. package/dist/esm/mock/chat/thread.js.map +1 -0
  78. package/dist/esm/mock/index.js +8 -0
  79. package/dist/esm/mock/index.js.map +1 -0
  80. package/dist/esm/mock/page/app.js +74 -0
  81. package/dist/esm/mock/page/app.js.map +1 -0
  82. package/dist/esm/mock/page/theme.js +337 -0
  83. package/dist/esm/mock/page/theme.js.map +1 -0
  84. package/dist/esm/mock/page/thread.js +756 -0
  85. package/dist/esm/mock/page/thread.js.map +1 -0
  86. package/dist/esm/plugin.js +21 -0
  87. package/dist/esm/plugin.js.map +1 -0
  88. package/dist/esm/scss/_base.scss +63 -0
  89. package/dist/esm/scss/_mixin.scss +10 -0
  90. package/dist/esm/scss/_reset.scss +63 -0
  91. package/dist/esm/scss/_thread.scss +35 -0
  92. package/dist/esm/scss/_typography.scss +19 -0
  93. package/dist/esm/scss/mixin/_breakpoint.scss +7 -0
  94. package/dist/esm/scss/mixin/_button.scss +64 -0
  95. package/dist/esm/scss/mixin/_container.scss +14 -0
  96. package/dist/esm/scss/mixin/_markdown.scss +180 -0
  97. package/dist/esm/scss/mixin/_scrollbar.scss +50 -0
  98. package/dist/esm/scss/mixin/_shadow.scss +19 -0
  99. package/dist/esm/scss/mixin/_size.scss +42 -0
  100. package/dist/esm/scss/mixin/_typography.scss +129 -0
  101. package/dist/esm/scss/mixin/_utils.scss +103 -0
  102. package/dist/esm/scss/mixin/_vars.scss +4 -0
  103. package/dist/esm/scss/style.scss +14 -0
  104. package/dist/index.css +5460 -0
  105. package/dist/index.css.map +1 -0
  106. package/dist/index.d.ts +78 -0
  107. package/dist/umd/index.js +48828 -0
  108. package/dist/umd/index.js.map +1 -0
  109. package/dist/umd/index.min.js +20 -0
  110. package/package.json +119 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/mock/page/thread.ts"],"sourcesContent":["/* eslint-disable comma-dangle */\n/* eslint-disable quotes */\n\nimport { LlmMockThread } from '@websolutespa/bom-mixer-llm';\n\nexport const thread: LlmMockThread = [\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Se ho poco spazio in casa che cucina mi consigli?\\n\",\n ],\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n {\n \"type\": \"custom01\",\n \"id\": \"xxxxxx-1\",\n \"title\": \"Custom 01\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"La più adatta alla mia cucina\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Come sfruttare al meglio gli angoli\"\n }]\n },\n {\n \"type\": \"custom02\",\n \"id\": \"xxxxxx-2\",\n \"title\": \"Custom 02\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"Generate 02\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Idea 02\"\n }]\n },\n {\n \"type\": \"custom03\",\n \"id\": \"xxxxxx-3\",\n \"title\": \"Custom 03\"\n },\n {\n \"type\": \"custom04\",\n \"id\": \"xxxxxx-4\",\n \"title\": \"Custom 04\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"Generate 04\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Idea 04\"\n }]\n },\n {\n \"type\": \"custom05\",\n \"id\": \"xxxxxx-5\",\n \"title\": \"Custom 05\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"Generate 05\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Idea 05\"\n }]\n },\n {\n \"type\": \"custom06\",\n \"id\": \"xxxxxx-6\",\n \"title\": \"Custom 06\"\n },\n {\n \"type\": \"custom07\",\n \"id\": \"xxxxxx-7\",\n \"title\": \"Custom 07\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"Generate 07\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Idea 07\"\n }]\n },\n {\n \"type\": \"custom08\",\n \"id\": \"xxxxxx-8\",\n \"title\": \"Custom 08\"\n }\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Cucine con il piano in marmo\\n\",\n ],\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Ecco alcuni elementi custom:\\n\",\n {\n \"type\": \"customCardItem\",\n \"id\": \"xxxxxx-1\",\n \"title\": \"A custom card\",\n \"media\": {\n \"type\": \"image\",\n \"src\": \"https://picsum.photos/id/11/640/480\"\n },\n \"href\": \"/\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"La più adatta alla mia cucina\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Come sfruttare al meglio gli angoli\"\n }]\n },\n {\n \"type\": \"customCardItem\",\n \"id\": \"xxxxxx-2\",\n \"title\": \"A custom card\",\n \"media\": {\n \"type\": \"image\",\n \"src\": \"https://picsum.photos/id/11/640/480\"\n },\n \"href\": \"/\",\n \"actions\": [{\n \"type\": \"generate\",\n \"label\": \"La più adatta alla mia cucina\",\n \"message\": \"message\"\n }, {\n \"type\": \"idea\",\n \"label\": \"Come sfruttare al meglio gli angoli\"\n }]\n }\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Quali sono le opzioni di personalizzazione per Soul?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Products:\\n\",\n {\n \"type\": \"productItem\",\n \"id\": \"54792\",\n \"productType\": \"simple\",\n \"sku\": \"K18090\",\n \"currency\": \"EUR\",\n \"price\": \"1.370000\",\n \"priceLabel\": \"1,37€ al pubblico\",\n \"title\": \"CAPPELLINO ZUCCOTTO DOPPIO STRATO IN ACRILICO MIMETICO\",\n \"media\": {\n \"type\": \"image\",\n \"src\": \"https://www.siliconsrl.it/media/catalog/product/cache/95f6a12655416b1764261bf00237b0fc/k/1/k18090.jpg\"\n },\n \"url\": \"https://www.siliconsrl.it/it/k18090-cappellino-zuccotto-doppio-strato-in-acrilico-mimetico\",\n \"availability\": \"87\",\n \"label\": \"Outlet\"\n },\n {\n \"type\": \"productItem\",\n \"id\": \"54617\",\n \"productType\": \"configurable\",\n \"sku\": \"K18053\",\n \"currency\": \"EUR\", \"price\": \"20.880000\",\n \"priceLabel\": \"20,88€ al pubblico\",\n \"title\": \"CAPPELLINO 6 PANNELLI SPORTY\",\n \"abstract\": \"in cotone pesante pettinato con ricamo sulla visiera e sui pannelli laterali, chiusura regolabile con velcro.\",\n \"media\": {\n \"type\": \"image\",\n \"src\": \"https://www.siliconsrl.it/media/catalog/product/cache/95f6a12655416b1764261bf00237b0fc/k/1/k18053bl_1.jpg\"\n },\n \"url\": \"https://www.siliconsrl.it/it/k18053-cappellino-6-pannelli-sporty\",\n \"availability\": \"54\",\n \"label\": \"Outlet\"\n },\n {\n \"type\": \"productItem\",\n \"id\": \"58216\",\n \"productType\": \"configurable\",\n \"sku\": \"K18118\",\n \"currency\": \"EUR\", \"price\": \"21.060000\",\n \"priceLabel\": \"21,06€ al pubblico\",\n \"title\": \"CAPPELLINO MIRAMARE IN 100% COTONE\",\n \"abstract\": \"in twill di cotone 16x12 di buona qualità.\",\n \"media\": {\n \"type\": \"image\",\n \"src\": \"https://www.siliconsrl.it/media/catalog/product/cache/95f6a12655416b1764261bf00237b0fc/k/1/k18118b.jpg\"\n },\n \"url\": \"https://www.siliconsrl.it/it/k18118-cappellino-da-pescatore-a-falda-in-100-cotone\",\n \"availability\": \"102\",\n \"label\": \"Bestseller\"\n },\n \"Vuoi esplorare altre categorie di prodotti? Ecco alcune opzioni che potrebbero interessarti:\\n\",\n \"<div class=\\\"llm__pill\\\">Scrittura</div>\\n\",\n \"<div class=\\\"llm__pill\\\">Ufficio</div>\\n\",\n \"<div class=\\\"llm__pill\\\">Tecnologia</div>\\n\"\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Come pulire il marmo del top?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Fammi pensare...\\n\",\n \"ecco una lista di eventi:\\n\",\n {\n \"type\": \"eventItem\",\n \"id\": \"xxxx\",\n \"title\": \"Percorri la Bicipolitana di Pesaro con i tuoi bambini\",\n \"abstract\": \"Un’esperienza da non perdere se visiterai la città con i bambini, noleggia la tua bici e esplora Pesaro.\",\n \"place\": \"Pesaro\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://design.wslabs.it/llm/default/bicipolitana.jpg\",\n \"date\": \"15-16 giugno 2024\",\n \"time\": \"ore 20:00\",\n },\n {\n \"type\": \"eventItem\",\n \"id\": \"100\",\n \"title\": \"Non perderti The Magic Castle di Gradara!\",\n \"abstract\": \"The Magic Castle, l’evento per famiglie che ogni estate trasforma magicamente lo splendido borgo di Gradara.\",\n \"place\": \"Gradara\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://design.wslabs.it/llm/default/gradara.jpg\",\n \"date\": \"15-16 giugno 2024\",\n \"time\": \"ore 20:00\",\n },\n {\n \"type\": \"eventItem\",\n \"id\": \"xxxx\",\n \"title\": \"Trekking e panorami mozzafiato al San Bartolo\",\n \"abstract\": \"Scendendo lungo la costa Adriatica, si erge il San Bartolo, un meraviglioso parco naturale affacciato sul mare.\",\n \"place\": \"Parco San Bartolo\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://design.wslabs.it/llm/default/san-bartolo.jpg\",\n \"date\": \"15-16 giugno 2024\",\n \"time\": \"ore 20:00\",\n },\n \"Per qualunque altra cosa sono qui. 🙂\\n\",\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Che cos’è l'anta AIR\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Dammi un momento...\\n\",\n \"ecco un evento:\\n\",\n {\n \"type\": \"event\",\n \"id\": \"234\",\n \"title\": \"Rossini Virtual 'Experience': esplora casa Rossini in AR\",\n \"abstract\": \"Lasciati guidare dallo stesso Gioacchino nella sua casa e scopri la sua storia attraverso giocosi aneddoti in AR.\",\n \"place\": \"Pesaro\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://picsum.photos/id/103/800/600\",\n \"date\": \"15-16 giugno 2024\",\n \"time\": \"ore 20:00\",\n },\n \"Serve altro?\\n\",\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Differenze tra Obliqua e One?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Bene!\\n\",\n \"ecco alcuni punti di interesse:\\n\",\n {\n \"type\": \"poiItem\",\n \"id\": \"111\",\n \"title\": \"Title\",\n \"abstract\": \"Lorem ipsum dolor sit amet.\",\n \"place\": \"Place\",\n \"image\": \"https://picsum.photos/id/102/800/600\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"time\": \"time\",\n },\n {\n \"type\": \"poiItem\",\n \"id\": \"222\",\n \"title\": \"Title\",\n \"abstract\": \"Lorem ipsum dolor sit amet.\",\n \"place\": \"Place\",\n \"image\": \"https://picsum.photos/id/101/800/600\",\n \"url\": \"https://design.wslabs.it/llm\",\n },\n \"Serve altro? 🙂\\n\",\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Se ho poco spazio in casa che cucina mi consigli?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Certo!\\n\",\n \"ecco un punto di interesse:\\n\",\n {\n \"type\": \"poiItem\",\n \"id\": \"111\",\n \"title\": \"Title\",\n \"abstract\": \"Lorem ipsum dolor sit amet.\",\n \"place\": \"Place\",\n \"image\": \"https://design.wslabs.it/llm/default/rossini.jpg\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"time\": \"time\",\n },\n \"Serve altro? 🙂\\n\",\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Quali sono le opzioni di personalizzazione per Soul?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n \"Dammi un secondo...\\n\",\n \"ecco alcuni ristoranti per te:\\n\",\n {\n \"type\": \"tripadvisor\",\n \"id\": \"xxxx\",\n \"title\": \"L'Angolo di Mario\",\n \"rating\": 4.8,\n \"reviews\": 2276,\n \"priceRange\": \"€€-€€€\",\n \"cuisine\": \"Italiana, Pesce, Mediterranea\",\n \"address\": \"Via Nazario Sauro, 61100 Pesaro PU\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"book\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://design.wslabs.it/llm/default/tripadvisor-01.jpg\",\n },\n {\n \"type\": \"tripadvisor\",\n \"id\": \"xxxx\",\n \"title\": \"L'Amo Osteria di Mare\",\n \"rating\": 4.2,\n \"reviews\": 287,\n \"priceRange\": \"€€-€€€\",\n \"cuisine\": \"Italiana, Pesce, Mediterranea\",\n \"address\": \"Via Venturini 4/6, 61121 Pesaro PU\",\n \"url\": \"https://design.wslabs.it/llm\",\n \"book\": \"https://design.wslabs.it/llm\",\n \"image\": \"https://design.wslabs.it/llm/default/tripadvisor-02.jpg\",\n },\n ]\n },\n {\n \"role\": \"user\",\n \"chunks\": [\n \"Come pulire il marmo del top?\\n\",\n ]\n },\n {\n \"role\": \"assistant\",\n \"chunks\": [\n { \"type\": \"text\", \"text\": \"Markdown\\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"Header 1 \\n\" },\n { \"type\": \"text\", \"text\": \"======== \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"Header 2 \\n\" },\n { \"type\": \"text\", \"text\": \"-------- \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Header 3 ### \\n\" },\n { \"type\": \"text\", \"text\": \"#### Header 4 #### \\n\" },\n { \"type\": \"text\", \"text\": \"##### Header 5 ##### \\n\" },\n { \"type\": \"text\", \"text\": \"###### Header 6 ###### \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Phrase Emphasis \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"*italic* \\n\" },\n { \"type\": \"text\", \"text\": \"**bold** \\n\" },\n { \"type\": \"text\", \"text\": \"_italic_ \\n\" },\n { \"type\": \"text\", \"text\": \"__bold__ \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Links \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"An [example](https://www.gmail.com/ \\\"Title\\\") \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Images \\n\" },\n { \"type\": \"text\", \"text\": \"![alt text](https://picsum.photos/id/104/800/600 \\\"Title\\\") \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Lists \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"1. Foo \\n\" },\n { \"type\": \"text\", \"text\": \"2. Bar \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"* A list item. \\n\" },\n { \"type\": \"text\", \"text\": \" With multiple paragraphs. \\n\" },\n { \"type\": \"text\", \"text\": \"* Bar \\n\" },\n { \"type\": \"text\", \"text\": \"* Abacus \\n\" },\n { \"type\": \"text\", \"text\": \" * answer \\n\" },\n { \"type\": \"text\", \"text\": \"* Bubbles \\n\" },\n { \"type\": \"text\", \"text\": \" 1. bunk \\n\" },\n { \"type\": \"text\", \"text\": \" 2. bupkis \\n\" },\n { \"type\": \"text\", \"text\": \" * BELITTLER \\n\" },\n { \"type\": \"text\", \"text\": \" 3. burper \\n\" },\n { \"type\": \"text\", \"text\": \"* Cunning \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Blockquotes \\n\" },\n { \"type\": \"text\", \"text\": \"> Email-style angle brackets \\n\" },\n { \"type\": \"text\", \"text\": \"> are used for blockquotes. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"> > And, they can be nested. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"> ### Headers in blockquotes \\n\" },\n { \"type\": \"text\", \"text\": \"> \\n\" },\n { \"type\": \"text\", \"text\": \"> * You can quote a list. \\n\" },\n { \"type\": \"text\", \"text\": \"> * Etc. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Code Spans \\n\" },\n { \"type\": \"text\", \"text\": \"`<code>` spans are delimited by backticks. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"You can include literal backticks like `` `this` ``. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Preformatted Code Blocks \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"This is a normal paragraph. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \" This is a preformatted \\n\" },\n { \"type\": \"text\", \"text\": \" code block. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"``` \\n\" },\n { \"type\": \"text\", \"text\": \"function sum(a, b) { \\n\" },\n { \"type\": \"text\", \"text\": \" return a + b; \\n\" },\n { \"type\": \"text\", \"text\": \"} \\n\" },\n { \"type\": \"text\", \"text\": \"``` \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Horizontal Rules \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"--- \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"* * * \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"- - - - \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"### Manual Line Breaks \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n { \"type\": \"text\", \"text\": \"Roses are red, \\n\" },\n { \"type\": \"text\", \"text\": \"Violets are blue. \\n\" },\n { \"type\": \"text\", \"text\": \" \\n\" },\n ]\n },\n];\n"],"names":["thread"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { blocks } from './blocks';
2
+ import { components } from './components';
3
+ export function llmPlugin(options) {
4
+ const config = {
5
+ ...options,
6
+ blocks: {
7
+ ...options.blocks,
8
+ ...blocks
9
+ },
10
+ components: {
11
+ ...options.components,
12
+ ...components
13
+ },
14
+ onInit: (state)=>{
15
+ console.log('llmPlugin.onInit', state);
16
+ }
17
+ };
18
+ return config;
19
+ }
20
+
21
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/plugin.ts"],"sourcesContent":["import { LlmOptions } from '@websolutespa/bom-mixer-llm';\nimport { blocks } from './blocks';\nimport { components } from './components';\n\nexport function llmPlugin(options: LlmOptions): LlmOptions {\n const config: LlmOptions = {\n ...options,\n blocks: {\n ...options.blocks,\n ...blocks,\n },\n components: {\n ...options.components,\n ...components,\n },\n onInit: (state) => {\n console.log('llmPlugin.onInit', state);\n },\n };\n return config;\n}\n"],"names":["blocks","components","llmPlugin","options","config","onInit","state","console","log"],"mappings":"AACA,SAASA,MAAM,QAAQ,WAAW;AAClC,SAASC,UAAU,QAAQ,eAAe;AAE1C,OAAO,SAASC,UAAUC,OAAmB;IAC3C,MAAMC,SAAqB;QACzB,GAAGD,OAAO;QACVH,QAAQ;YACN,GAAGG,QAAQH,MAAM;YACjB,GAAGA,MAAM;QACX;QACAC,YAAY;YACV,GAAGE,QAAQF,UAAU;YACrB,GAAGA,UAAU;QACf;QACAI,QAAQ,CAACC;YACPC,QAAQC,GAAG,CAAC,oBAAoBF;QAClC;IACF;IACA,OAAOF;AACT"}
@@ -0,0 +1,63 @@
1
+ :root {
2
+ @include renderSize();
3
+ }
4
+
5
+ :where(llm-embed) {
6
+ display: block;
7
+ width: 100%;
8
+ height: 760px;
9
+ max-height: 100vh;
10
+ background: transparent;
11
+ overflow: clip;
12
+ border-radius: 10px;
13
+ }
14
+
15
+ :where(.llm__row) {
16
+ --grid-columns: var(--llm-grid-columns, 12);
17
+ --grid-size: var(--llm-grid-size, 1fr);
18
+ --grid-column-gap: var(--llm-grid-column-gap, var(--gap));
19
+ --grid-row-gap: var(--llm-grid-row-gap, var(--gap));
20
+ container-type: inline-size;
21
+ display: grid;
22
+ grid-template-columns: repeat(var(--grid-columns), var(--grid-size));
23
+ grid-column-gap: var(--grid-column-gap);
24
+ grid-row-gap: var(--grid-row-gap);
25
+ }
26
+
27
+ :where(.llm__col) {
28
+ --grid-column: var(--llm-grid-columns, 12);
29
+ grid-column: span var(--grid-column);
30
+ }
31
+
32
+ :where(.llm__container) {
33
+ padding: 0 clampUnit(20, 110);
34
+ }
35
+
36
+
37
+ @each $key, $value in $breakpoints {
38
+ @for $i from 1 through 12 {
39
+ .--#{$key}-#{$i} {
40
+ @if $key =="xs" {
41
+ --grid-column: #{$i};
42
+ }
43
+
44
+ @else {
45
+ @include cbp(#{$key}) {
46
+ --grid-column: #{$i};
47
+ }
48
+ }
49
+ }
50
+
51
+ .--end-#{$key}-#{$i} {
52
+ @if $key =="xs" {
53
+ grid-column-end: #{$i + 1};
54
+ }
55
+
56
+ @else {
57
+ @include cbp(#{$key}) {
58
+ grid-column-end: #{$i + 1};
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,10 @@
1
+ @import './mixin/vars';
2
+ @import './mixin/breakpoint';
3
+ @import './mixin/utils';
4
+ @import './mixin/size';
5
+ @import './mixin/container';
6
+ @import './mixin/typography';
7
+ @import './mixin/shadow';
8
+ @import './mixin/scrollbar';
9
+ @import './mixin/button';
10
+ @import './mixin/markdown';
@@ -0,0 +1,63 @@
1
+ :where(.llm *, .llm *::before, .llm *::after) {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ :where(.llm html, .llm body, .llm p, .llm ol, .llm ul, .llm li, .llm dl, .llm dt, .llm dd, .llm blockquote, .llm figure, .llm fieldset, .llm legend, .llm textarea, .llm pre, .llm iframe, .llm button, .llm input, .llm select, .llm hr, .llm h1, .llm h2, .llm h3, .llm h4, .llm h5, .llm h6) {
6
+ margin: 0;
7
+ padding: 0;
8
+ }
9
+
10
+ :where(.llm h1, .llm h2, .llm h3, .llm h4, .llm h5, .llm h6) {
11
+ font-size: 100%;
12
+ font-weight: normal;
13
+ }
14
+
15
+ :where(.llm ul) {
16
+ list-style: none;
17
+ }
18
+
19
+ :where(.llm button) {
20
+ border: none;
21
+ text-decoration: none;
22
+ background: none;
23
+ appearance: none;
24
+ font-family: inherit;
25
+ font-style: inherit;
26
+ font-variant-ligatures: inherit;
27
+ font-variant-caps: inherit;
28
+ font-variant-numeric: inherit;
29
+ font-variant-east-asian: inherit;
30
+ font-weight: inherit;
31
+ font-stretch: inherit;
32
+ text-rendering: inherit;
33
+ letter-spacing: inherit;
34
+ word-spacing: inherit;
35
+ line-height: inherit;
36
+ text-transform: none;
37
+ text-indent: inherit;
38
+ text-shadow: none;
39
+ text-align: inherit;
40
+ }
41
+
42
+ :where(.llm img, .llm video) {
43
+ height: auto;
44
+ max-width: 100%;
45
+ }
46
+
47
+ :where(.llm iframe) {
48
+ border: 0;
49
+ }
50
+
51
+ :where(.llm table) {
52
+ border-collapse: collapse;
53
+ border-spacing: 0;
54
+ }
55
+
56
+ :where(.llm td, .llm th) {
57
+ padding: 0;
58
+ }
59
+
60
+ :where(.llm a) {
61
+ color: inherit;
62
+ text-decoration: none;
63
+ }
@@ -0,0 +1,35 @@
1
+ :where([data-message-role=user] [data-text=true]) {
2
+ @include text(body1);
3
+ background: var(--llm-user-background);
4
+ color: var(--llm-user-foreground);
5
+ border: var(--llm-user-border);
6
+ backdrop-filter: blur(20px);
7
+ border-radius: 12px;
8
+ padding: size(3) size(4);
9
+ }
10
+
11
+ :where([data-message-role=assistant] [data-text=true]) {
12
+ @include markdown();
13
+ @include text(display6);
14
+
15
+ h1,
16
+ h2,
17
+ p {
18
+ &:first-child {
19
+ @include text(display3);
20
+ }
21
+ }
22
+ }
23
+
24
+ :where([data-mode=chat] [data-message-role=user] [data-text=true]),
25
+ :where(.-chat [data-message-role=user] [data-text=true]) {
26
+ align-self: flex-end;
27
+ padding: 0.5em 0;
28
+ padding: var(--llm-pill-padding, 8px);
29
+ border: var(--llm-pill-border);
30
+ border-radius: var(--llm-pill-border-radius);
31
+ background: var(--llm-pill-background);
32
+ color: var(--llm-pill-foreground);
33
+ font-family: var(--llm-pill-font-family);
34
+ text-align: right;
35
+ }
@@ -0,0 +1,19 @@
1
+ :where(.llm) {
2
+ font-style: normal;
3
+ font-weight: normal;
4
+ font-family: var(--llm-font-primary);
5
+ font-size: clampUnit(var(--llm-typography-body1-font-size-min), var(--llm-typography-body1-font-size-max), var(--llm-scale));
6
+ }
7
+
8
+ :where(.llm h1, .llm h2, .llm h3, .llm h4, .llm h5, .llm h6, .llm a, .llm b, .llm em, .llm p, .llm strong, .llm span, .llm ol, .llm ul) {
9
+ color: inherit;
10
+ font-style: inherit;
11
+ font-weight: inherit;
12
+ font-family: inherit;
13
+ }
14
+
15
+ :where(.llm ::selection) {
16
+ background: var(--llm-color-accent-foreground);
17
+ }
18
+
19
+ @include typography();
@@ -0,0 +1,7 @@
1
+ $breakpoints: (
2
+ xs: 0,
3
+ sm: 768px,
4
+ md: 1024px,
5
+ lg: 1440px,
6
+ xl: 1600px,
7
+ );
@@ -0,0 +1,64 @@
1
+ @use 'sass:math';
2
+
3
+ @mixin button() {
4
+ margin: 0;
5
+ padding: 0;
6
+ border: none;
7
+ border-radius: 0;
8
+ text-decoration: none;
9
+ background: none;
10
+ color: inherit;
11
+ appearance: none;
12
+ font-family: inherit;
13
+ font-style: inherit;
14
+ font-size: inherit;
15
+ font-variant-ligatures: inherit;
16
+ font-variant-caps: inherit;
17
+ font-variant-numeric: inherit;
18
+ font-variant-east-asian: inherit;
19
+ font-weight: inherit;
20
+ font-stretch: inherit;
21
+ text-rendering: inherit;
22
+ letter-spacing: inherit;
23
+ word-spacing: inherit;
24
+ line-height: inherit;
25
+ text-transform: none;
26
+ text-indent: inherit;
27
+ text-shadow: none;
28
+ text-align: inherit;
29
+ pointer-events: auto;
30
+ cursor: pointer;
31
+
32
+ outline: 2px solid transparent;
33
+ outline-offset: 2px;
34
+
35
+ &:focus,
36
+ &:focus-visible {
37
+ outline-color: var(--llm-color-outline);
38
+ }
39
+
40
+ &:hover {
41
+ outline-color: color-mix(in srgb, var(--llm-color-outline) 10%, transparent 90%);
42
+ }
43
+
44
+ &:active {
45
+ outline-color: var(--llm-color-accent-foreground);
46
+ }
47
+ }
48
+
49
+ @mixin btn() {
50
+ @include button();
51
+ flex-shrink: 0;
52
+ position: relative;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ outline: 2px solid transparent;
57
+ outline-offset: 2px;
58
+ color: var(--llm-input-accent);
59
+
60
+ svg {
61
+ width: 24px;
62
+ height: 24px;
63
+ }
64
+ }
@@ -0,0 +1,14 @@
1
+ @use 'sass:math';
2
+
3
+ @mixin containerNegativeFull {
4
+ width: calc(100% + clampUnit(20, 110) * 2);
5
+ margin-left: calc(clampUnit(20, 110) * -1);
6
+ margin-right: calc(clampUnit(20, 110) * -1);
7
+ overflow: hidden;
8
+ }
9
+
10
+ @mixin containerNegative {
11
+ @include containerNegativeFull();
12
+ padding-left: clampUnit(20, 110);
13
+ padding-right: clampUnit(20, 110);
14
+ }
@@ -0,0 +1,180 @@
1
+ @use 'sass:math';
2
+
3
+ @mixin markdown() {
4
+ font-family: var(--llm-font-primary);
5
+ background: var(--llm-assistant-background);
6
+ color: var(--llm-assistant-foreground);
7
+ border: var(--llm-assistant-border);
8
+
9
+ /*
10
+ &,
11
+ p {
12
+ font-weight: 300;
13
+ }
14
+ */
15
+
16
+ h1 {
17
+ @include text(display3);
18
+ }
19
+
20
+ h2 {
21
+ @include text(display4);
22
+ }
23
+
24
+ h3 {
25
+ @include text(display5);
26
+ }
27
+
28
+ h4,
29
+ h5,
30
+ h6 {
31
+ @include text(display6);
32
+ }
33
+
34
+ ol,
35
+ ul {
36
+ display: flex;
37
+ flex-direction: column;
38
+ gap: 0.75em;
39
+ margin-left: var(--llm-markdown-margin-left);
40
+ }
41
+
42
+ ol {
43
+ margin-left: 1.1em;
44
+ }
45
+
46
+ ul {
47
+ margin-left: 0.8em;
48
+ list-style: disc;
49
+ }
50
+
51
+ code,
52
+ pre {
53
+ font-size: inherit;
54
+ line-height: inherit;
55
+ font-style: normal;
56
+ font-family: inherit;
57
+ background-color: transparent;
58
+ color: inherit;
59
+ }
60
+
61
+ pre,
62
+ code {
63
+ font-family: monospace;
64
+ font-size: 0.9em;
65
+ }
66
+
67
+ i,
68
+ em {
69
+ font-style: italic;
70
+ }
71
+
72
+ b,
73
+ strong {
74
+ font-weight: var(--llm-typography-cta2-font-weight);
75
+ }
76
+
77
+ h1,
78
+ h2,
79
+ h3,
80
+ h4,
81
+ h5,
82
+ h6 {
83
+ margin-top: var(--llm-markdown-margin-top);
84
+ }
85
+
86
+ p,
87
+ h1,
88
+ h2,
89
+ h3,
90
+ h4,
91
+ h5,
92
+ h6,
93
+ ul,
94
+ ol,
95
+ pre,
96
+ blockquote {
97
+ margin-bottom: var(--llm-markdown-margin-bottom);
98
+
99
+ &:last-child {
100
+ margin-bottom: 0;
101
+ }
102
+ }
103
+
104
+ blockquote {
105
+
106
+ &,
107
+ &:before,
108
+ &:after {
109
+ margin: 0;
110
+ padding: 0;
111
+ border: none;
112
+ outline: none;
113
+ font-family: inherit;
114
+ font-size: inherit;
115
+ background: none;
116
+ color: inherit;
117
+ }
118
+
119
+ & {
120
+ margin-bottom: var(--llm-markdown-margin-bottom);
121
+ padding-left: 0.5em;
122
+ border-left: var(--llm-markdown-border);
123
+ }
124
+ }
125
+
126
+ hr {
127
+ border: none;
128
+ border-top: var(--llm-markdown-border);
129
+ margin-top: var(--llm-markdown-margin-top);
130
+ margin-bottom: var(--llm-markdown-margin-bottom);
131
+ }
132
+
133
+ a {
134
+ text-decoration: underline;
135
+
136
+ &:link,
137
+ &:active,
138
+ &:visited,
139
+ &:hover {
140
+ color: var(--llm-markdown-accent);
141
+ }
142
+ }
143
+
144
+ img {
145
+ max-width: 320px;
146
+ padding: 8px;
147
+ border-radius: 8px;
148
+ border: var(--llm-markdown-border);
149
+ }
150
+
151
+ .llm__text-img {
152
+ display: block;
153
+ margin-top: var(--llm-markdown-margin-top);
154
+ margin-bottom: var(--llm-markdown-margin-bottom);
155
+ font-size: 0;
156
+ text-decoration: none;
157
+
158
+ &>img {
159
+ display: inline-flex;
160
+ justify-content: center;
161
+ align-items: center;
162
+ width: 320px;
163
+ height: 320px;
164
+ object-fit: cover;
165
+ }
166
+ }
167
+
168
+ .llm__pill {
169
+ max-width: Max(375px, u(30));
170
+ margin-bottom: 1em;
171
+
172
+ &:first-of-type {
173
+ margin-top: 2em;
174
+ }
175
+
176
+ &:last-of-type {
177
+ margin-bottom: 2em;
178
+ }
179
+ }
180
+ }
@@ -0,0 +1,50 @@
1
+ @mixin hideScrollbar() {
2
+
3
+ /* Hide scrollbar for Chrome, Safari and Opera */
4
+ &::-webkit-scrollbar {
5
+ display: none;
6
+ }
7
+
8
+ /* Hide scrollbar for IE, Edge and Firefox */
9
+ & {
10
+ -ms-overflow-style: none;
11
+ /* IE and Edge */
12
+ scrollbar-width: none;
13
+ /* Firefox */
14
+ }
15
+ }
16
+
17
+ @mixin scrollbar($thumb-color: black, $track-color: transparent, $width: 6px, $border-radius: 3px) {
18
+ &::-webkit-scrollbar {
19
+ width: $width;
20
+ height: $width;
21
+ border-radius: $border-radius;
22
+ }
23
+
24
+ &::-webkit-scrollbar-button {
25
+ display: none;
26
+ }
27
+
28
+ &::-webkit-scrollbar-button:hover {
29
+ display: none;
30
+ }
31
+
32
+ &::-webkit-scrollbar-thumb {
33
+ background-color: $thumb-color;
34
+ box-shadow: none;
35
+ border-radius: $border-radius - 1px;
36
+
37
+ &:hover {
38
+ background-color: $thumb-color;
39
+ }
40
+ }
41
+
42
+ &::-webkit-scrollbar-track {
43
+ background-color: $track-color;
44
+ border-radius: $border-radius - 1px;
45
+
46
+ &:hover {
47
+ background-color: $track-color;
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,19 @@
1
+ /*
2
+ $shadow: (
3
+ xs: 0 2px 20px -2px rgba(0, 0, 0, 0.1),
4
+ sm: 0 4px 30px -4px rgba(0, 0, 0, 0.2),
5
+ md: 0 6px 40px -6px rgba(0, 0, 0, 0.4),
6
+ lg: 0 8px 50px -8px rgba(0, 0, 0, 0.6),
7
+ xl: 0 10px 60px -10px rgba(0, 0, 0, 0.8),
8
+ );
9
+ */
10
+
11
+ @function shadow($b) {
12
+ @return var(--llm-shadow-#{$b});
13
+ }
14
+
15
+ @mixin renderShadow() {
16
+ @each $key, $value in $breakpoints {
17
+ --llm-shadow-#{$key}: #{map-get($shadow, $key)};
18
+ }
19
+ }
@@ -0,0 +1,42 @@
1
+ $sizes: (
2
+ 1: clampUnit(8, 8),
3
+ // 6xs *
4
+ 2: clampUnit(8, 16),
5
+ // 5xs *
6
+ 3: clampUnit(16, 24),
7
+ // 4xs *
8
+ 4: clampUnit(24, 32),
9
+ // 3xs *
10
+ 5: clampUnit(24, 40),
11
+ // 2xs *
12
+ 6: clampUnit(24, 48),
13
+ // xs *
14
+ 7: clampUnit(24, 56),
15
+ // s
16
+ 8: clampUnit(24, 64),
17
+ // m *
18
+ 9: clampUnit(32, 72),
19
+ // l
20
+ 10: clampUnit(32, 80),
21
+ // xl *
22
+ 11: clampUnit(40, 88),
23
+ // 2xl *
24
+ 12: clampUnit(40, 96),
25
+ // 3xl
26
+ 13: clampUnit(48, 104),
27
+ // 4xl
28
+ 14: clampUnit(48, 112),
29
+ // 5xl
30
+ 15: clampUnit(48, 120),
31
+ // 6xl *
32
+ );
33
+
34
+ @function size($s) {
35
+ @return var(--llm-size-#{$s}, #{0.5rem * $s});
36
+ }
37
+
38
+ @mixin renderSize() {
39
+ @for $i from 1 through 15 {
40
+ --llm-size-#{$i}: #{map-get($sizes, $i)};
41
+ }
42
+ }