@websolutespa/bom-llm 0.0.12 → 0.0.13
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/CHANGELOG.md +8 -0
- package/dist/umd/index.css +165 -138
- package/dist/umd/index.js +569 -158
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
package/dist/umd/index.js
CHANGED
|
@@ -7905,6 +7905,39 @@
|
|
|
7905
7905
|
return classNames.trim();
|
|
7906
7906
|
}
|
|
7907
7907
|
|
|
7908
|
+
/**
|
|
7909
|
+
* PascalCase
|
|
7910
|
+
* camelCase
|
|
7911
|
+
* kebab-case
|
|
7912
|
+
* snake_case
|
|
7913
|
+
* char*case
|
|
7914
|
+
**/
|
|
7915
|
+
|
|
7916
|
+
function unknownCaseToPascalCase(unknownCase) {
|
|
7917
|
+
const pascalCase = unknownCase.replace(/(^[a-zA-Z])|(\W|_)+(\w?)([a-z0-9]*)?/g, (m, g1, g2, g3, g4) => (g1 ? g1.toUpperCase() : '') + (g3 ? g3.toUpperCase() : '') + (g4 ? g4.toLowerCase() : ''));
|
|
7918
|
+
// console.log('unknownCaseToPascalCase', unknownCase, pascalCase);
|
|
7919
|
+
return pascalCase;
|
|
7920
|
+
}
|
|
7921
|
+
function pascalCaseToCharCase(pascalCase, char) {
|
|
7922
|
+
if (char === void 0) {
|
|
7923
|
+
char = '-';
|
|
7924
|
+
}
|
|
7925
|
+
const charCase = pascalCase.replace(/([A-Z]+)/g, (m, g1, index) => (index > 0 ? char : '') + m).toLowerCase();
|
|
7926
|
+
return charCase;
|
|
7927
|
+
}
|
|
7928
|
+
function toCharCase(unknownCase, char) {
|
|
7929
|
+
if (char === void 0) {
|
|
7930
|
+
char = '-';
|
|
7931
|
+
}
|
|
7932
|
+
const pascalCase = unknownCaseToPascalCase(unknownCase);
|
|
7933
|
+
const charCase = pascalCaseToCharCase(pascalCase, char);
|
|
7934
|
+
return charCase;
|
|
7935
|
+
}
|
|
7936
|
+
function toKebabCase(unknownCase) {
|
|
7937
|
+
const kebabCase = toCharCase(unknownCase, '-');
|
|
7938
|
+
return kebabCase;
|
|
7939
|
+
}
|
|
7940
|
+
|
|
7908
7941
|
function isArray(item) {
|
|
7909
7942
|
return Array.isArray(item);
|
|
7910
7943
|
}
|
|
@@ -7912,6 +7945,41 @@
|
|
|
7912
7945
|
return item != null && typeof item === 'object' && !isArray(item);
|
|
7913
7946
|
}
|
|
7914
7947
|
|
|
7948
|
+
/**
|
|
7949
|
+
* Represents a primitive value that can be used in the deep merge operation.
|
|
7950
|
+
*/
|
|
7951
|
+
|
|
7952
|
+
/**
|
|
7953
|
+
* Represents a dynamic value that can be used in the deep merge operation.
|
|
7954
|
+
*/
|
|
7955
|
+
|
|
7956
|
+
/**
|
|
7957
|
+
* Deeply merges two objects or arrays.
|
|
7958
|
+
*
|
|
7959
|
+
* @param target - The target object or array to merge into.
|
|
7960
|
+
* @param source - The source object or array to merge from.
|
|
7961
|
+
* @returns The merged object or array.
|
|
7962
|
+
*/
|
|
7963
|
+
function deepMerge(target, source) {
|
|
7964
|
+
const output = {
|
|
7965
|
+
...target
|
|
7966
|
+
};
|
|
7967
|
+
if (isObject$3(target) && isObject$3(source)) {
|
|
7968
|
+
Object.entries(source).forEach(_ref => {
|
|
7969
|
+
let [k, v] = _ref;
|
|
7970
|
+
if (isArray(v)) {
|
|
7971
|
+
output[k] = v.map(x => deepMerge(x, x));
|
|
7972
|
+
} else if (isObject$3(v)) {
|
|
7973
|
+
const targetValue = k in target ? target[k] : undefined;
|
|
7974
|
+
output[k] = isObject$3(targetValue) ? deepMerge(targetValue, v) : deepMerge(v, v);
|
|
7975
|
+
} else {
|
|
7976
|
+
output[k] = v;
|
|
7977
|
+
}
|
|
7978
|
+
});
|
|
7979
|
+
}
|
|
7980
|
+
return output;
|
|
7981
|
+
}
|
|
7982
|
+
|
|
7915
7983
|
const isBrowser$1 = typeof window !== 'undefined';
|
|
7916
7984
|
|
|
7917
7985
|
function getDefaultLocale() {
|
|
@@ -22720,6 +22788,170 @@
|
|
|
22720
22788
|
});
|
|
22721
22789
|
SwiperSlide.displayName = 'SwiperSlide';
|
|
22722
22790
|
|
|
22791
|
+
const defaultTheme = {
|
|
22792
|
+
font: {
|
|
22793
|
+
primary: 'Aeonik',
|
|
22794
|
+
secondary: 'Capraia'
|
|
22795
|
+
},
|
|
22796
|
+
color: {
|
|
22797
|
+
neutral: {
|
|
22798
|
+
'100': '#ffffff',
|
|
22799
|
+
// *
|
|
22800
|
+
'200': '#e8e8e8',
|
|
22801
|
+
// *
|
|
22802
|
+
'300': '#bdbdbd',
|
|
22803
|
+
'500': '#7c7c7c',
|
|
22804
|
+
'600': '#525252',
|
|
22805
|
+
'700': '#3d3d3d',
|
|
22806
|
+
'800': '#292929',
|
|
22807
|
+
'900': '#000000' // *
|
|
22808
|
+
},
|
|
22809
|
+
base: {
|
|
22810
|
+
'100': '#003c8c',
|
|
22811
|
+
// *
|
|
22812
|
+
'200': '#73c3ff',
|
|
22813
|
+
// *
|
|
22814
|
+
'300': '#96dca0',
|
|
22815
|
+
// *
|
|
22816
|
+
'400': '#dcdc3c',
|
|
22817
|
+
// *
|
|
22818
|
+
'500': '#007378',
|
|
22819
|
+
// *
|
|
22820
|
+
'600': '#b41e5f',
|
|
22821
|
+
'700': '#aa96f0',
|
|
22822
|
+
'800': '#cda582',
|
|
22823
|
+
'900': '#ffe6a0'
|
|
22824
|
+
},
|
|
22825
|
+
blob: {
|
|
22826
|
+
'100': 'var(--llm-color-base-400)',
|
|
22827
|
+
'200': '#d0c911',
|
|
22828
|
+
'300': 'var(--llm-color-base-100)',
|
|
22829
|
+
'400': '#054ead',
|
|
22830
|
+
'500': 'var(--llm-color-base-300)',
|
|
22831
|
+
'600': '#0ba224'
|
|
22832
|
+
},
|
|
22833
|
+
background: 'var(--llm-color-base-100)',
|
|
22834
|
+
foreground: 'var(--llm-color-neutral-100)',
|
|
22835
|
+
primary: {
|
|
22836
|
+
background: 'var(--llm-color-base-200)',
|
|
22837
|
+
foreground: 'var(--llm-color-neutral-100)' // 'var(--llm-color-base-100)'
|
|
22838
|
+
},
|
|
22839
|
+
secondary: {
|
|
22840
|
+
background: 'var(--llm-color-base-500)',
|
|
22841
|
+
foreground: 'var(--llm-color-neutral-100)'
|
|
22842
|
+
},
|
|
22843
|
+
accent: {
|
|
22844
|
+
background: 'transparent',
|
|
22845
|
+
foreground: 'var(--llm-color-base-400)'
|
|
22846
|
+
}
|
|
22847
|
+
},
|
|
22848
|
+
border: '1px solid var(--llm-color-neutral-200)',
|
|
22849
|
+
canvas: {
|
|
22850
|
+
opacity: 0.8
|
|
22851
|
+
},
|
|
22852
|
+
trigger: {
|
|
22853
|
+
size: '60px',
|
|
22854
|
+
background: 'var(--llm-color-base-200)',
|
|
22855
|
+
foreground: 'var(--llm-color-base-100)',
|
|
22856
|
+
boxShadow: '0 0 30px rgba(0, 0, 0, 0.3)'
|
|
22857
|
+
},
|
|
22858
|
+
hint: {
|
|
22859
|
+
fontFamily: 'var(--llm-font-primary)',
|
|
22860
|
+
background: 'linear-gradient(rgba(154, 154, 154, 0.2) 10%, rgba(221, 221, 221, 0.1) 80%)',
|
|
22861
|
+
foreground: 'var(--llm-color-foreground)',
|
|
22862
|
+
border: '1px solid rgba(237, 237, 237, 0.3)',
|
|
22863
|
+
borderRadius: '12px'
|
|
22864
|
+
},
|
|
22865
|
+
pill: {
|
|
22866
|
+
fontFamily: 'var(--llm-font-primary)',
|
|
22867
|
+
background: 'rgba(255, 255, 255, 0.2)',
|
|
22868
|
+
foreground: 'var(--llm-color-foreground)',
|
|
22869
|
+
border: '1px solid rgba(237, 237, 237, 0.3)',
|
|
22870
|
+
borderRadius: '5px'
|
|
22871
|
+
},
|
|
22872
|
+
input: {
|
|
22873
|
+
fontFamily: 'var(--llm-font-secondary)',
|
|
22874
|
+
background: 'var(--llm-color-neutral-100)',
|
|
22875
|
+
foreground: 'var(--llm-color-neutral-900)',
|
|
22876
|
+
accent: 'var(--llm-color-base-100)'
|
|
22877
|
+
},
|
|
22878
|
+
checkbox: {
|
|
22879
|
+
border: '2px solid var(--llm-color-neutral-100)'
|
|
22880
|
+
}
|
|
22881
|
+
};
|
|
22882
|
+
function getTheme() {
|
|
22883
|
+
let theme = {
|
|
22884
|
+
...defaultTheme
|
|
22885
|
+
};
|
|
22886
|
+
for (var _len = arguments.length, overrides = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
22887
|
+
overrides[_key] = arguments[_key];
|
|
22888
|
+
}
|
|
22889
|
+
overrides.forEach(override => {
|
|
22890
|
+
theme = deepMerge(theme, {
|
|
22891
|
+
...override
|
|
22892
|
+
});
|
|
22893
|
+
});
|
|
22894
|
+
return theme;
|
|
22895
|
+
}
|
|
22896
|
+
|
|
22897
|
+
function collectNameAndValues(object, parentKey, collection) {
|
|
22898
|
+
if (parentKey === void 0) {
|
|
22899
|
+
parentKey = '';
|
|
22900
|
+
}
|
|
22901
|
+
if (collection === void 0) {
|
|
22902
|
+
collection = {
|
|
22903
|
+
names: [],
|
|
22904
|
+
values: []
|
|
22905
|
+
};
|
|
22906
|
+
}
|
|
22907
|
+
if (object) {
|
|
22908
|
+
Object.entries(object).forEach(_ref => {
|
|
22909
|
+
let [key, value] = _ref;
|
|
22910
|
+
key = (parentKey.length ? `${parentKey}-` : '') + toKebabCase(key);
|
|
22911
|
+
if (value && typeof value === 'object') {
|
|
22912
|
+
collection = collectNameAndValues(value, key, collection);
|
|
22913
|
+
} else if (typeof value === 'string' || typeof value === 'number') {
|
|
22914
|
+
collection.names.push(key);
|
|
22915
|
+
collection.values.push(value);
|
|
22916
|
+
}
|
|
22917
|
+
});
|
|
22918
|
+
}
|
|
22919
|
+
return collection;
|
|
22920
|
+
}
|
|
22921
|
+
function getVars(theme, namespace) {
|
|
22922
|
+
if (namespace === void 0) {
|
|
22923
|
+
namespace = 'llm';
|
|
22924
|
+
}
|
|
22925
|
+
const nameAndValues = collectNameAndValues(theme);
|
|
22926
|
+
const vars = {};
|
|
22927
|
+
nameAndValues.names.forEach((key, i) => {
|
|
22928
|
+
const value = nameAndValues.values[i];
|
|
22929
|
+
vars[`--${namespace}-${key}`] = String(value);
|
|
22930
|
+
});
|
|
22931
|
+
return vars;
|
|
22932
|
+
}
|
|
22933
|
+
function createVars(vars) {
|
|
22934
|
+
if (isBrowser$1) {
|
|
22935
|
+
const style = `<style id="llm-style">
|
|
22936
|
+
/**
|
|
22937
|
+
* websolute - llm generated vars
|
|
22938
|
+
*/
|
|
22939
|
+
.llm {
|
|
22940
|
+
${Object.entries(vars).map(_ref2 => {
|
|
22941
|
+
let [k, v] = _ref2;
|
|
22942
|
+
return `
|
|
22943
|
+
${k}: ${v};`;
|
|
22944
|
+
}).join('')}
|
|
22945
|
+
}
|
|
22946
|
+
</style>`;
|
|
22947
|
+
const styleNode = document.querySelector('#llm-style');
|
|
22948
|
+
if (styleNode !== null) {
|
|
22949
|
+
styleNode.remove();
|
|
22950
|
+
}
|
|
22951
|
+
document.head.insertAdjacentHTML('beforeend', style);
|
|
22952
|
+
}
|
|
22953
|
+
}
|
|
22954
|
+
|
|
22723
22955
|
class MessageService {
|
|
22724
22956
|
decoder_ = new TextDecoder('utf-8');
|
|
22725
22957
|
constructor(options) {
|
|
@@ -22860,37 +23092,24 @@
|
|
|
22860
23092
|
response.chunks = chunksToChunkItems(decodedChunks, response);
|
|
22861
23093
|
return response;
|
|
22862
23094
|
}
|
|
23095
|
+
let lastUnparsedText = '';
|
|
22863
23096
|
function textToChunks(decodedText) {
|
|
22864
23097
|
let decodedChunks = [];
|
|
23098
|
+
let didError = false;
|
|
22865
23099
|
try {
|
|
22866
|
-
|
|
22867
|
-
let replacedText = decodedText;
|
|
22868
|
-
// replacedText = replacedText.replace(/(^,")/, '",');
|
|
23100
|
+
let replacedText = lastUnparsedText + decodedText;
|
|
22869
23101
|
replacedText = replacedText.replace(/(,$)/, '');
|
|
22870
|
-
// replacedText = replacedText.replace(/}\s{/g, '},{');
|
|
22871
|
-
/*
|
|
22872
|
-
replacedText = replacedText.split(',').map(x => {
|
|
22873
|
-
return x.replace(/^"([^{]*)"$/m, (m, g) => {
|
|
22874
|
-
return '"' + g.replace('"', '\\"') + '"';
|
|
22875
|
-
});
|
|
22876
|
-
}).join(',');
|
|
22877
|
-
*/
|
|
22878
|
-
// console.log('textToChunks.replacedText', `[${replacedText}]`);
|
|
22879
23102
|
const chunks = JSON.parse(`[${replacedText}]`);
|
|
22880
|
-
// console.log('chunks', chunks);
|
|
22881
|
-
/*
|
|
22882
|
-
decodedChunks = chunks.map(chunk => {
|
|
22883
|
-
if (typeof chunk === 'string') {
|
|
22884
|
-
chunk = chunk.replace(/\r\n/g, '<br>');
|
|
22885
|
-
}
|
|
22886
|
-
return chunk;
|
|
22887
|
-
});
|
|
22888
|
-
*/
|
|
22889
23103
|
decodedChunks = chunks;
|
|
22890
23104
|
} catch (error) {
|
|
22891
23105
|
console.log('textToChunks.error', error, decodedText);
|
|
23106
|
+
didError = true;
|
|
23107
|
+
}
|
|
23108
|
+
if (didError) {
|
|
23109
|
+
lastUnparsedText += decodedText;
|
|
23110
|
+
} else {
|
|
23111
|
+
lastUnparsedText = '';
|
|
22892
23112
|
}
|
|
22893
|
-
// console.log(decodedChunks, decodedText);
|
|
22894
23113
|
return decodedChunks;
|
|
22895
23114
|
}
|
|
22896
23115
|
function chunksToChunkItems(decodedChunks, response) {
|
|
@@ -23026,7 +23245,7 @@
|
|
|
23026
23245
|
return !hasFormRequest && importantMessages.length > 1;
|
|
23027
23246
|
}
|
|
23028
23247
|
|
|
23029
|
-
const
|
|
23248
|
+
const mockThread = {
|
|
23030
23249
|
it: [{
|
|
23031
23250
|
chunks: ['Sarò a Pesaro con la mia famiglia a giugno. Siamo tutti appassionati di arte e natura. Cosa ci consigli di fare qui?\n'],
|
|
23032
23251
|
role: 'user'
|
|
@@ -23425,8 +23644,10 @@
|
|
|
23425
23644
|
role: 'assistant'
|
|
23426
23645
|
}]
|
|
23427
23646
|
};
|
|
23647
|
+
|
|
23648
|
+
const MOCK_THREAD = mockThread;
|
|
23428
23649
|
function getMockPrompt(index, locale) {
|
|
23429
|
-
const message =
|
|
23650
|
+
const message = MOCK_THREAD[locale][index];
|
|
23430
23651
|
if (message && message.role === 'user') {
|
|
23431
23652
|
return message.chunks[0];
|
|
23432
23653
|
}
|
|
@@ -23790,14 +24011,17 @@
|
|
|
23790
24011
|
threadId,
|
|
23791
24012
|
opened,
|
|
23792
24013
|
embedded,
|
|
23793
|
-
send
|
|
24014
|
+
send,
|
|
24015
|
+
setEmbed
|
|
23794
24016
|
} = _ref;
|
|
23795
24017
|
const props = {
|
|
23796
24018
|
opened: opened != null || embedded != null ? Boolean(opened || embedded) : threadId != null ? true : false,
|
|
23797
24019
|
embedded: embedded || false,
|
|
24020
|
+
introed: false,
|
|
23798
24021
|
hidden: false,
|
|
23799
24022
|
fixed: false,
|
|
23800
24023
|
idle: true,
|
|
24024
|
+
visible: false,
|
|
23801
24025
|
direction: 0
|
|
23802
24026
|
};
|
|
23803
24027
|
let lenis_ = undefined;
|
|
@@ -23845,6 +24069,35 @@
|
|
|
23845
24069
|
handleIdleTimes();
|
|
23846
24070
|
}, 2000);
|
|
23847
24071
|
},
|
|
24072
|
+
initIntersection: element => {
|
|
24073
|
+
const handleIntersection = () => {
|
|
24074
|
+
// console.log('handleIntersection', element);
|
|
24075
|
+
if (!element) {
|
|
24076
|
+
return;
|
|
24077
|
+
}
|
|
24078
|
+
if ('IntersectionObserver' in window) {
|
|
24079
|
+
const observer = new IntersectionObserver((entries, observer) => {
|
|
24080
|
+
entries.forEach(entry => {
|
|
24081
|
+
// console.log('IntersectionObserver', entry.target, entry.isIntersecting);
|
|
24082
|
+
const state = get();
|
|
24083
|
+
state.actions.setVisible(entry.isIntersecting);
|
|
24084
|
+
if (embedded) {
|
|
24085
|
+
setEmbed(entry.target, entry.isIntersecting);
|
|
24086
|
+
}
|
|
24087
|
+
});
|
|
24088
|
+
}, {
|
|
24089
|
+
root: document,
|
|
24090
|
+
rootMargin: '50px',
|
|
24091
|
+
threshold: [0.01, 0.99]
|
|
24092
|
+
});
|
|
24093
|
+
observer.observe(element);
|
|
24094
|
+
} else {
|
|
24095
|
+
const state = get();
|
|
24096
|
+
state.actions.setVisible(true);
|
|
24097
|
+
}
|
|
24098
|
+
};
|
|
24099
|
+
handleIntersection();
|
|
24100
|
+
},
|
|
23848
24101
|
send: async (prompt, onMessage, onEnd) => {
|
|
23849
24102
|
const state = get();
|
|
23850
24103
|
autoScroll = true;
|
|
@@ -23864,6 +24117,12 @@
|
|
|
23864
24117
|
open: () => set(state => ({
|
|
23865
24118
|
opened: !state.opened
|
|
23866
24119
|
})),
|
|
24120
|
+
setIntroed: introed => set(state => ({
|
|
24121
|
+
introed
|
|
24122
|
+
})),
|
|
24123
|
+
setVisible: visible => set(state => ({
|
|
24124
|
+
visible
|
|
24125
|
+
})),
|
|
23867
24126
|
setLenis: lenis => {
|
|
23868
24127
|
if (lenis_ !== lenis) {
|
|
23869
24128
|
lenis_ = lenis;
|
|
@@ -23912,13 +24171,15 @@
|
|
|
23912
24171
|
...props
|
|
23913
24172
|
} = _ref2;
|
|
23914
24173
|
const {
|
|
23915
|
-
send
|
|
24174
|
+
send,
|
|
24175
|
+
setEmbed
|
|
23916
24176
|
} = useLlm(state => state.actions);
|
|
23917
24177
|
const storeRef = reactExports.useRef();
|
|
23918
24178
|
if (!storeRef.current) {
|
|
23919
24179
|
storeRef.current = createLlmViewStore({
|
|
23920
24180
|
...props,
|
|
23921
|
-
send
|
|
24181
|
+
send,
|
|
24182
|
+
setEmbed
|
|
23922
24183
|
});
|
|
23923
24184
|
}
|
|
23924
24185
|
return storeRef.current && /*#__PURE__*/jsxRuntimeExports.jsx(LlmViewContext.Provider, {
|
|
@@ -23937,14 +24198,19 @@
|
|
|
23937
24198
|
appKey,
|
|
23938
24199
|
apiKey,
|
|
23939
24200
|
threadId,
|
|
24201
|
+
customTheme,
|
|
23940
24202
|
decorateUrl,
|
|
23941
24203
|
endpoint,
|
|
23942
24204
|
test,
|
|
23943
24205
|
storage,
|
|
23944
24206
|
label
|
|
23945
24207
|
} = _ref;
|
|
24208
|
+
const theme = getTheme(customTheme);
|
|
24209
|
+
const vars = getVars(theme);
|
|
23946
24210
|
const props = {
|
|
23947
24211
|
hydrated: false,
|
|
24212
|
+
theme,
|
|
24213
|
+
vars,
|
|
23948
24214
|
messages: [],
|
|
23949
24215
|
prompt: '',
|
|
23950
24216
|
locale: 'en',
|
|
@@ -24058,9 +24324,14 @@
|
|
|
24058
24324
|
} : undefined;
|
|
24059
24325
|
};
|
|
24060
24326
|
const thread = decodeThread(app.thread);
|
|
24327
|
+
const theme = getTheme(app.contents.customTheme, customTheme);
|
|
24328
|
+
const vars = getVars(theme);
|
|
24329
|
+
createVars(vars);
|
|
24061
24330
|
// console.log('thread', thread);
|
|
24062
24331
|
set(() => ({
|
|
24063
24332
|
app,
|
|
24333
|
+
theme,
|
|
24334
|
+
vars,
|
|
24064
24335
|
locale,
|
|
24065
24336
|
...thread
|
|
24066
24337
|
}));
|
|
@@ -24180,6 +24451,20 @@
|
|
|
24180
24451
|
messageService = undefined;
|
|
24181
24452
|
}
|
|
24182
24453
|
},
|
|
24454
|
+
setVars: vars => set(state => ({
|
|
24455
|
+
vars: Object.assign({}, state.vars, vars)
|
|
24456
|
+
})),
|
|
24457
|
+
setEmbed: (element, active) => {
|
|
24458
|
+
const embed = get().embed;
|
|
24459
|
+
if (!active && embed !== element) {
|
|
24460
|
+
return;
|
|
24461
|
+
}
|
|
24462
|
+
set(state => {
|
|
24463
|
+
return {
|
|
24464
|
+
embed: active ? element : undefined
|
|
24465
|
+
};
|
|
24466
|
+
});
|
|
24467
|
+
},
|
|
24183
24468
|
setPrompt: prompt => set(state => ({
|
|
24184
24469
|
prompt
|
|
24185
24470
|
})),
|
|
@@ -24328,7 +24613,7 @@
|
|
|
24328
24613
|
|
|
24329
24614
|
var __assign=function(){return __assign=Object.assign||function __assign(t){for(var e,i=1,o=arguments.length;i<o;i++)for(var s in e=arguments[i])Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s]);return t},__assign.apply(this,arguments)};function clamp$1(t,e,i){return Math.max(t,Math.min(e,i))}class Animate{advance(t){if(!this.isRunning)return;let e=!1;if(this.lerp)this.value=function damp(t,e,i,o){return function lerp(t,e,i){return (1-i)*t+i*e}(t,e,1-Math.exp(-i*o))}(this.value,this.to,60*this.lerp,t),Math.round(this.value)===this.to&&(this.value=this.to,e=!0);else {this.currentTime+=t;const i=clamp$1(0,this.currentTime/this.duration,1);e=i>=1;const o=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*o;}e&&this.stop(),this.onUpdate?.(this.value,e);}stop(){this.isRunning=!1;}fromTo(t,e,{lerp:i=.1,duration:o=1,easing:s=(t=>t),onStart:n,onUpdate:r}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=o,this.easing=s,this.currentTime=0,this.isRunning=!0,n?.(),this.onUpdate=r;}}class Dimensions{constructor({wrapper:t,content:e,autoResize:i=!0,debounce:o=250}={}){this.wrapper=t,this.content=e,i&&(this.debouncedResize=function debounce(t,e){let i;return function(){let o=arguments,s=this;clearTimeout(i),i=setTimeout((function(){t.apply(s,o);}),e);}}(this.resize,o),this.wrapper===window?window.addEventListener("resize",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize();}destroy(){this.wrapperResizeObserver?.disconnect(),this.contentResizeObserver?.disconnect(),window.removeEventListener("resize",this.debouncedResize,!1);}resize=()=>{this.onWrapperResize(),this.onContentResize();};onWrapperResize=()=>{this.wrapper===window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight);};onContentResize=()=>{this.wrapper===window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth);};get limit(){return {x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={};}emit(t,...e){let i=this.events[t]||[];for(let t=0,o=i.length;t<o;t++)i[t](...e);}on(t,e){return this.events[t]?.push(e)||(this.events[t]=[e]),()=>{this.events[t]=this.events[t]?.filter((t=>e!==t));}}off(t,e){this.events[t]=this.events[t]?.filter((t=>e!==t));}destroy(){this.events={};}}const t=100/6;class VirtualScroll{constructor(t,{wheelMultiplier:e=1,touchMultiplier:i=1}){this.element=t,this.wheelMultiplier=e,this.touchMultiplier=i,this.touchStart={x:null,y:null},this.emitter=new Emitter,window.addEventListener("resize",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,{passive:!1}),this.element.addEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.addEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.addEventListener("touchend",this.onTouchEnd,{passive:!1});}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize,!1),this.element.removeEventListener("wheel",this.onWheel,{passive:!1}),this.element.removeEventListener("touchstart",this.onTouchStart,{passive:!1}),this.element.removeEventListener("touchmove",this.onTouchMove,{passive:!1}),this.element.removeEventListener("touchend",this.onTouchEnd,{passive:!1});}onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t});};onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,o=-(e-this.touchStart.x)*this.touchMultiplier,s=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:o,y:s},this.emitter.emit("scroll",{deltaX:o,deltaY:s,event:t});};onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t});};onWheel=e=>{let{deltaX:i,deltaY:o,deltaMode:s}=e;i*=1===s?t:2===s?this.windowWidth:1,o*=1===s?t:2===s?this.windowHeight:1,i*=this.wheelMultiplier,o*=this.wheelMultiplier,this.emitter.emit("scroll",{deltaX:i,deltaY:o,event:e});};onWindowResize=()=>{this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight;}}var e=function(){function Lenis(t){var e=void 0===t?{}:t,i=e.wrapper,o=void 0===i?window:i,s=e.content,n=void 0===s?document.documentElement:s,r=e.wheelEventsTarget,l=void 0===r?o:r,h=e.eventsTarget,a=void 0===h?l:h,c=e.smoothWheel,p=void 0===c||c,u=e.syncTouch,d=void 0!==u&&u,m=e.syncTouchLerp,v=void 0===m?.075:m,g=e.touchInertiaMultiplier,f=void 0===g?35:g,S=e.duration,w=e.easing,y=void 0===w?function(t){return Math.min(1,1.001-Math.pow(2,-10*t))}:w,b=e.lerp,L=void 0===b?!S&&.1:b,_=e.infinite,z=void 0!==_&&_,E=e.orientation,T=void 0===E?"vertical":E,M=e.gestureOrientation,R=void 0===M?"vertical":M,O=e.touchMultiplier,W=void 0===O?1:O,x=e.wheelMultiplier,H=void 0===x?1:x,N=e.autoResize,k=void 0===N||N,C=e.__experimental__naiveDimensions,j=void 0!==C&&C,P=this;this.__isSmooth=!1,this.__isScrolling=!1,this.__isStopped=!1,this.__isLocked=!1,this.onVirtualScroll=function(t){var e=t.deltaX,i=t.deltaY,o=t.event;if(!o.ctrlKey){var s=o.type.includes("touch"),n=o.type.includes("wheel");if(P.options.syncTouch&&s&&"touchstart"===o.type&&!P.isStopped&&!P.isLocked)P.reset();else {var r=0===e&&0===i,l="vertical"===P.options.gestureOrientation&&0===i||"horizontal"===P.options.gestureOrientation&&0===e;if(!r&&!l){var h=o.composedPath();if(!(h=h.slice(0,h.indexOf(P.rootElement))).find((function(t){var e,i,o,r,l;return (null===(e=t.hasAttribute)||void 0===e?void 0:e.call(t,"data-lenis-prevent"))||s&&(null===(i=t.hasAttribute)||void 0===i?void 0:i.call(t,"data-lenis-prevent-touch"))||n&&(null===(o=t.hasAttribute)||void 0===o?void 0:o.call(t,"data-lenis-prevent-wheel"))||(null===(r=t.classList)||void 0===r?void 0:r.contains("lenis"))&&!(null===(l=t.classList)||void 0===l?void 0:l.contains("lenis-stopped"))})))if(P.isStopped||P.isLocked)o.preventDefault();else {if(P.isSmooth=P.options.syncTouch&&s||P.options.smoothWheel&&n,!P.isSmooth)return P.isScrolling=!1,void P.animate.stop();o.preventDefault();var a=i;"both"===P.options.gestureOrientation?a=Math.abs(i)>Math.abs(e)?i:e:"horizontal"===P.options.gestureOrientation&&(a=e);var c=s&&P.options.syncTouch,p=s&&"touchend"===o.type&&Math.abs(a)>5;p&&(a=P.velocity*P.options.touchInertiaMultiplier),P.scrollTo(P.targetScroll+a,__assign({programmatic:!1},c?{lerp:p?P.options.syncTouchLerp:1}:{lerp:P.options.lerp,duration:P.options.duration,easing:P.options.easing}));}}}}},this.onNativeScroll=function(){if(!P.__preventNextScrollEvent&&!P.isScrolling){var t=P.animatedScroll;P.animatedScroll=P.targetScroll=P.actualScroll,P.velocity=0,P.direction=Math.sign(P.animatedScroll-t),P.emit();}},window.lenisVersion="1.0.45",o!==document.documentElement&&o!==document.body||(o=window),this.options={wrapper:o,content:n,wheelEventsTarget:l,eventsTarget:a,smoothWheel:p,syncTouch:d,syncTouchLerp:v,touchInertiaMultiplier:f,duration:S,easing:y,lerp:L,infinite:z,gestureOrientation:R,orientation:T,touchMultiplier:W,wheelMultiplier:H,autoResize:k,__experimental__naiveDimensions:j},this.animate=new Animate,this.emitter=new Emitter,this.dimensions=new Dimensions({wrapper:o,content:n,autoResize:k}),this.toggleClassName("lenis",!0),this.velocity=0,this.isLocked=!1,this.isStopped=!1,this.isSmooth=d||p,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll,!1),this.virtualScroll=new VirtualScroll(a,{touchMultiplier:W,wheelMultiplier:H}),this.virtualScroll.on("scroll",this.onVirtualScroll);}return Lenis.prototype.destroy=function(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.toggleClassName("lenis",!1),this.toggleClassName("lenis-smooth",!1),this.toggleClassName("lenis-scrolling",!1),this.toggleClassName("lenis-stopped",!1),this.toggleClassName("lenis-locked",!1);},Lenis.prototype.on=function(t,e){return this.emitter.on(t,e)},Lenis.prototype.off=function(t,e){return this.emitter.off(t,e)},Lenis.prototype.setScroll=function(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t;},Lenis.prototype.resize=function(){this.dimensions.resize();},Lenis.prototype.emit=function(){this.emitter.emit("scroll",this);},Lenis.prototype.reset=function(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.animate.stop();},Lenis.prototype.start=function(){this.isStopped&&(this.isStopped=!1,this.reset());},Lenis.prototype.stop=function(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset());},Lenis.prototype.raf=function(t){var e=t-(this.time||t);this.time=t,this.animate.advance(.001*e);},Lenis.prototype.scrollTo=function(t,e){var i=this,o=void 0===e?{}:e,s=o.offset,n=void 0===s?0:s,r=o.immediate,l=void 0!==r&&r,h=o.lock,a=void 0!==h&&h,c=o.duration,p=void 0===c?this.options.duration:c,u=o.easing,d=void 0===u?this.options.easing:u,m=o.lerp,v=void 0===m?!p&&this.options.lerp:m,g=o.onComplete,f=o.force,S=void 0!==f&&f,w=o.programmatic,y=void 0===w||w;if(!this.isStopped&&!this.isLocked||S){if(["top","left","start"].includes(t))t=0;else if(["bottom","right","end"].includes(t))t=this.limit;else {var b=void 0;if("string"==typeof t?b=document.querySelector(t):(null==t?void 0:t.nodeType)&&(b=t),b){if(this.options.wrapper!==window){var L=this.options.wrapper.getBoundingClientRect();n-=this.isHorizontal?L.left:L.top;}var _=b.getBoundingClientRect();t=(this.isHorizontal?_.left:_.top)+this.animatedScroll;}}if("number"==typeof t){if(t+=n,t=Math.round(t),this.options.infinite?y&&(this.targetScroll=this.animatedScroll=this.scroll):t=clamp$1(0,t,this.limit),l)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),void(null==g||g(this));if(!y){if(t===this.targetScroll)return;this.targetScroll=t;}this.animate.fromTo(this.animatedScroll,t,{duration:p,easing:d,lerp:v,onStart:function(){a&&(i.isLocked=!0),i.isScrolling=!0;},onUpdate:function(t,e){i.isScrolling=!0,i.velocity=t-i.animatedScroll,i.direction=Math.sign(i.velocity),i.animatedScroll=t,i.setScroll(i.scroll),y&&(i.targetScroll=t),e||i.emit(),e&&(i.reset(),i.emit(),null==g||g(i),i.__preventNextScrollEvent=!0,requestAnimationFrame((function(){delete i.__preventNextScrollEvent;})));}});}}},Object.defineProperty(Lenis.prototype,"rootElement",{get:function(){return this.options.wrapper===window?document.documentElement:this.options.wrapper},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"limit",{get:function(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"isHorizontal",{get:function(){return "horizontal"===this.options.orientation},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"actualScroll",{get:function(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"scroll",{get:function(){return this.options.infinite?function modulo(t,e){return (t%e+e)%e}(this.animatedScroll,this.limit):this.animatedScroll},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"progress",{get:function(){return 0===this.limit?1:this.scroll/this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"isSmooth",{get:function(){return this.__isSmooth},set:function(t){this.__isSmooth!==t&&(this.__isSmooth=t,this.toggleClassName("lenis-smooth",t));},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"isScrolling",{get:function(){return this.__isScrolling},set:function(t){this.__isScrolling!==t&&(this.__isScrolling=t,this.toggleClassName("lenis-scrolling",t));},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"isStopped",{get:function(){return this.__isStopped},set:function(t){this.__isStopped!==t&&(this.__isStopped=t,this.toggleClassName("lenis-stopped",t));},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"isLocked",{get:function(){return this.__isLocked},set:function(t){this.__isLocked!==t&&(this.__isLocked=t,this.toggleClassName("lenis-locked",t));},enumerable:!1,configurable:!0}),Object.defineProperty(Lenis.prototype,"className",{get:function(){var t="lenis";return this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),this.isSmooth&&(t+=" lenis-smooth"),t},enumerable:!1,configurable:!0}),Lenis.prototype.toggleClassName=function(t,e){this.rootElement.classList.toggle(t,e),this.emitter.emit("className change",this);},Lenis}();
|
|
24330
24615
|
|
|
24331
|
-
const p=reactExports.createContext(null),d=new class Store{constructor(r){this.listeners=[],this.state=r;}set(r){this.state=r;for(let r of this.listeners)r(this.state);}subscribe(r){return this.listeners=[...this.listeners,r],()=>{this.listeners=this.listeners.filter((e=>e!==r));}}get(){return this.state}}({});const m=reactExports.forwardRef(((o,i)=>{var{children:f,root:m=!1,options:b={},autoRaf:h=!0,rafPriority:y=0,className:v}=o,g=function __rest(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(null!=r&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(r);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(r,n[s])&&(t[n[s]]=r[n[s]]);}return t}(o,["children","root","options","autoRaf","rafPriority","className"]);const O=reactExports.useRef(null),k=reactExports.useRef(null),[N,j]=reactExports.useState(void 0),C=reactExports.useRef([]),w=reactExports.useCallback(((r,e)=>{C.current.push({callback:r,priority:e}),C.current.sort(((r,e)=>r.priority-e.priority));}),[]),S=reactExports.useCallback((r=>{C.current=C.current.filter((e=>e.callback!==r));}),[]);reactExports.useImperativeHandle(i,(()=>({wrapper:O.current,content:k.current,lenis:N})),[N]),reactExports.useEffect((()=>{const r=new e(Object.assign(Object.assign({},b),!m&&{wrapper:O.current,content:k.current}));return j(r),()=>{r.destroy(),j(void 0);}}),[m,JSON.stringify(b)]),reactExports.useEffect((()=>{if(N&&h)return a.add((r=>{null==N||N.raf(r);}),y)}),[N,h,y]),reactExports.useEffect((()=>{if(m&&N)return d.set({lenis:N,addCallback:w,removeCallback:S}),()=>d.set({})}),[m,N,w,S]);const P=reactExports.useCallback((r=>{for(let e=0;e<C.current.length;e++)C.current[e].callback(r);}),[]);reactExports.useEffect((()=>(null==N||N.on("scroll",P),()=>{null==N||N.off("scroll",P);})),[N,P]);const x=reactExports.useCallback((()=>{O.current&&(O.current.className=clsx(null==N?void 0:N.className,v));}),[N,v]);return reactExports.useEffect((()=>(x(),null==N||N.on("className change",x),()=>{null==N||N.off("className change",x);})),[N,x]),jsxRuntimeExports.jsx(p.Provider,{value:{lenis:N,addCallback:w,removeCallback:S},children:m?f:jsxRuntimeExports.jsx("div",Object.assign({ref:O,className:clsx(null==N?void 0:N.className,v)},g,{children:jsxRuntimeExports.jsx("div",{ref:k,children:f})}))})}));
|
|
24616
|
+
const p=reactExports.createContext(null),d=new class Store{constructor(r){this.listeners=[],this.state=r;}set(r){this.state=r;for(let r of this.listeners)r(this.state);}subscribe(r){return this.listeners=[...this.listeners,r],()=>{this.listeners=this.listeners.filter((e=>e!==r));}}get(){return this.state}}({});function useCurrentLenis(){const r=reactExports.useContext(p),e=function useStore(r){const[e,t]=reactExports.useState(r.get());return reactExports.useEffect((()=>r.subscribe((r=>t(r)))),[r]),e}(d);return null!=r?r:e}function useLenis(r,e=[],t=0){const{lenis:n,addCallback:s,removeCallback:o}=useCurrentLenis();return reactExports.useEffect((()=>{if(r&&s&&o&&n)return s(r,t),r(n),()=>{o(r);}}),[n,s,o,t,...e]),n}const m=reactExports.forwardRef(((o,i)=>{var{children:f,root:m=!1,options:b={},autoRaf:h=!0,rafPriority:y=0,className:v}=o,g=function __rest(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(null!=r&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(r);s<n.length;s++)e.indexOf(n[s])<0&&Object.prototype.propertyIsEnumerable.call(r,n[s])&&(t[n[s]]=r[n[s]]);}return t}(o,["children","root","options","autoRaf","rafPriority","className"]);const O=reactExports.useRef(null),k=reactExports.useRef(null),[N,j]=reactExports.useState(void 0),C=reactExports.useRef([]),w=reactExports.useCallback(((r,e)=>{C.current.push({callback:r,priority:e}),C.current.sort(((r,e)=>r.priority-e.priority));}),[]),S=reactExports.useCallback((r=>{C.current=C.current.filter((e=>e.callback!==r));}),[]);reactExports.useImperativeHandle(i,(()=>({wrapper:O.current,content:k.current,lenis:N})),[N]),reactExports.useEffect((()=>{const r=new e(Object.assign(Object.assign({},b),!m&&{wrapper:O.current,content:k.current}));return j(r),()=>{r.destroy(),j(void 0);}}),[m,JSON.stringify(b)]),reactExports.useEffect((()=>{if(N&&h)return a.add((r=>{null==N||N.raf(r);}),y)}),[N,h,y]),reactExports.useEffect((()=>{if(m&&N)return d.set({lenis:N,addCallback:w,removeCallback:S}),()=>d.set({})}),[m,N,w,S]);const P=reactExports.useCallback((r=>{for(let e=0;e<C.current.length;e++)C.current[e].callback(r);}),[]);reactExports.useEffect((()=>(null==N||N.on("scroll",P),()=>{null==N||N.off("scroll",P);})),[N,P]);const x=reactExports.useCallback((()=>{O.current&&(O.current.className=clsx(null==N?void 0:N.className,v));}),[N,v]);return reactExports.useEffect((()=>(x(),null==N||N.on("className change",x),()=>{null==N||N.off("className change",x);})),[N,x]),jsxRuntimeExports.jsx(p.Provider,{value:{lenis:N,addCallback:w,removeCallback:S},children:m?f:jsxRuntimeExports.jsx("div",Object.assign({ref:O,className:clsx(null==N?void 0:N.className,v)},g,{children:jsxRuntimeExports.jsx("div",{ref:k,children:f})}))})}));
|
|
24332
24617
|
|
|
24333
24618
|
class BaseBuffer {
|
|
24334
24619
|
drawPoints(count, offset) {
|
|
@@ -24704,6 +24989,7 @@ uniform float uBlobSize;
|
|
|
24704
24989
|
uniform float uCellSize;
|
|
24705
24990
|
uniform float uNoiseSize;
|
|
24706
24991
|
uniform float uOpacity;
|
|
24992
|
+
uniform float uScale;
|
|
24707
24993
|
uniform float uTime;
|
|
24708
24994
|
|
|
24709
24995
|
vec2 random2(vec2 st) {
|
|
@@ -24757,7 +25043,7 @@ vec3 intToColor(int color) {
|
|
|
24757
25043
|
}
|
|
24758
25044
|
|
|
24759
25045
|
void main(void) {
|
|
24760
|
-
vec2 st = vUv;
|
|
25046
|
+
vec2 st = vUv / uScale;
|
|
24761
25047
|
|
|
24762
25048
|
vec2 p1 = st + vec2(cos(uTime * 0.1), sin(uTime * 0.1));
|
|
24763
25049
|
vec3 b1 = blob(p1);
|
|
@@ -24783,7 +25069,8 @@ void main(void) {
|
|
|
24783
25069
|
|
|
24784
25070
|
color += b3 * c4;
|
|
24785
25071
|
|
|
24786
|
-
|
|
25072
|
+
// noise
|
|
25073
|
+
vec2 n = random2(st) * 0.025;
|
|
24787
25074
|
color += n.x - n.y;
|
|
24788
25075
|
|
|
24789
25076
|
gl_FragColor = vec4(color, 1.0);
|
|
@@ -24793,16 +25080,17 @@ void main(void) {
|
|
|
24793
25080
|
vertex,
|
|
24794
25081
|
fragment
|
|
24795
25082
|
};
|
|
24796
|
-
const
|
|
25083
|
+
const initShader = (canvas, _ref) => {
|
|
24797
25084
|
let {
|
|
24798
|
-
color1
|
|
24799
|
-
color2
|
|
24800
|
-
color3
|
|
24801
|
-
color4
|
|
25085
|
+
color1,
|
|
25086
|
+
color2,
|
|
25087
|
+
color3,
|
|
25088
|
+
color4,
|
|
24802
25089
|
blobSize = 0.3,
|
|
24803
25090
|
cellSize = 0.6,
|
|
24804
25091
|
noiseSize = 0.3,
|
|
24805
|
-
opacity = 0.5
|
|
25092
|
+
opacity = 0.5,
|
|
25093
|
+
scale = 1
|
|
24806
25094
|
} = _ref;
|
|
24807
25095
|
const gl = canvas.getContext('webgl');
|
|
24808
25096
|
if (!gl) {
|
|
@@ -24858,6 +25146,7 @@ void main(void) {
|
|
|
24858
25146
|
program.uCellSize(cellSize);
|
|
24859
25147
|
program.uNoiseSize(noiseSize);
|
|
24860
25148
|
program.uOpacity(opacity);
|
|
25149
|
+
program.uScale(scale);
|
|
24861
25150
|
}
|
|
24862
25151
|
program.uTime(time * 0.001);
|
|
24863
25152
|
quad.attribPointer(program);
|
|
@@ -24865,6 +25154,24 @@ void main(void) {
|
|
|
24865
25154
|
isDirty = !shouldRenderSingleFrame;
|
|
24866
25155
|
rafID = window.requestAnimationFrame(render);
|
|
24867
25156
|
};
|
|
25157
|
+
const setUniforms = uniforms => {
|
|
25158
|
+
// console.log('setUniforms', uniforms);
|
|
25159
|
+
if (!program.uColor1) {
|
|
25160
|
+
return;
|
|
25161
|
+
}
|
|
25162
|
+
if (uniforms.color1) {
|
|
25163
|
+
program.uColor1(parseInt(uniforms.color1.replace('#', ''), 16));
|
|
25164
|
+
}
|
|
25165
|
+
if (uniforms.color2) {
|
|
25166
|
+
program.uColor2(parseInt(uniforms.color2.replace('#', ''), 16));
|
|
25167
|
+
}
|
|
25168
|
+
if (uniforms.color3) {
|
|
25169
|
+
program.uColor3(parseInt(uniforms.color3.replace('#', ''), 16));
|
|
25170
|
+
}
|
|
25171
|
+
if (uniforms.color4) {
|
|
25172
|
+
program.uColor4(parseInt(uniforms.color4.replace('#', ''), 16));
|
|
25173
|
+
}
|
|
25174
|
+
};
|
|
24868
25175
|
setTimeout(render, 0);
|
|
24869
25176
|
const dispose = () => {
|
|
24870
25177
|
canRender = false;
|
|
@@ -24874,18 +25181,57 @@ void main(void) {
|
|
|
24874
25181
|
resizeObserver.disconnect();
|
|
24875
25182
|
program.dispose();
|
|
24876
25183
|
};
|
|
24877
|
-
return
|
|
25184
|
+
return {
|
|
25185
|
+
dispose,
|
|
25186
|
+
setUniforms
|
|
25187
|
+
};
|
|
24878
25188
|
};
|
|
24879
|
-
function Canvas() {
|
|
25189
|
+
function Canvas(_ref3) {
|
|
25190
|
+
let {
|
|
25191
|
+
scale = 1
|
|
25192
|
+
} = _ref3;
|
|
24880
25193
|
const ref = reactExports.useRef(null);
|
|
25194
|
+
const shaderRef = reactExports.useRef();
|
|
25195
|
+
const theme = useLlm(state => state.theme);
|
|
25196
|
+
const getColors = () => {
|
|
25197
|
+
return {
|
|
25198
|
+
color1: theme.color.base[100],
|
|
25199
|
+
color2: theme.color.base[200],
|
|
25200
|
+
color3: theme.color.base[300],
|
|
25201
|
+
color4: theme.color.base[400]
|
|
25202
|
+
};
|
|
25203
|
+
};
|
|
25204
|
+
|
|
25205
|
+
/*
|
|
25206
|
+
const vars = useLlm(state => state.vars);
|
|
25207
|
+
const getColors_ = () => {
|
|
25208
|
+
console.log(vars['--llm-color-base-100']);
|
|
25209
|
+
return {
|
|
25210
|
+
color1: vars['--llm-color-base-100'] || '#003c8c',
|
|
25211
|
+
color2: vars['--llm-color-base-200'] || '#73c3ff',
|
|
25212
|
+
color3: vars['--llm-color-base-300'] || '#96dca0',
|
|
25213
|
+
color4: vars['--llm-color-base-400'] || '#dcdc3c',
|
|
25214
|
+
}
|
|
25215
|
+
};
|
|
25216
|
+
*/
|
|
25217
|
+
|
|
24881
25218
|
reactExports.useEffect(() => {
|
|
24882
25219
|
if (isBrowser$1 && ref.current) {
|
|
24883
|
-
const
|
|
24884
|
-
|
|
25220
|
+
const wgl = initShader(ref.current, {
|
|
25221
|
+
...getColors(),
|
|
25222
|
+
scale
|
|
25223
|
+
});
|
|
25224
|
+
shaderRef.current = wgl;
|
|
25225
|
+
return () => wgl.dispose();
|
|
24885
25226
|
} else {
|
|
24886
25227
|
return undefined;
|
|
24887
25228
|
}
|
|
24888
25229
|
}, []);
|
|
25230
|
+
reactExports.useEffect(() => {
|
|
25231
|
+
if (shaderRef.current) {
|
|
25232
|
+
shaderRef.current.setUniforms(getColors());
|
|
25233
|
+
}
|
|
25234
|
+
}, [theme]);
|
|
24889
25235
|
return /*#__PURE__*/jsxRuntimeExports.jsx("canvas", {
|
|
24890
25236
|
className: "llm__canvas",
|
|
24891
25237
|
ref: ref
|
|
@@ -25200,9 +25546,9 @@ void main(void) {
|
|
|
25200
25546
|
});
|
|
25201
25547
|
};
|
|
25202
25548
|
|
|
25203
|
-
const
|
|
25549
|
+
const NewLineToBr = props => {
|
|
25204
25550
|
const lines = props.text?.split('\\n').map(function (line, n) {
|
|
25205
|
-
return n == 0 ? [line] : [/*#__PURE__*/jsxRuntimeExports.jsx("br", {}, n), line];
|
|
25551
|
+
return n == 0 ? [line] : [/*#__PURE__*/jsxRuntimeExports.jsx("br", {}, `line-${n}`), line];
|
|
25206
25552
|
});
|
|
25207
25553
|
return /*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
25208
25554
|
children: lines
|
|
@@ -25210,7 +25556,7 @@ void main(void) {
|
|
|
25210
25556
|
};
|
|
25211
25557
|
const clamp = (min, max) => Math.min(Math.max(min + (window.innerWidth - 375) / (1920 - 375) * (max - min), min), max);
|
|
25212
25558
|
|
|
25213
|
-
const
|
|
25559
|
+
const Hints = () => {
|
|
25214
25560
|
const {
|
|
25215
25561
|
width
|
|
25216
25562
|
} = useWindowSize();
|
|
@@ -25231,23 +25577,25 @@ void main(void) {
|
|
|
25231
25577
|
// console.log('QuickLinks.onEnd', response);
|
|
25232
25578
|
});
|
|
25233
25579
|
};
|
|
25234
|
-
const getCard = (item,
|
|
25580
|
+
const getCard = (item, index) => {
|
|
25235
25581
|
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
25236
|
-
className: "
|
|
25582
|
+
className: "llm__hint",
|
|
25237
25583
|
onClick: () => onClick(item),
|
|
25238
25584
|
children: [/*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
25239
|
-
className: "
|
|
25585
|
+
className: "llm__hint-title -llm-t-label-1",
|
|
25240
25586
|
children: [item.icon && /*#__PURE__*/jsxRuntimeExports.jsx("i", {
|
|
25241
25587
|
children: /*#__PURE__*/jsxRuntimeExports.jsx("img", {
|
|
25242
25588
|
src: item.icon.src || item.icon.url,
|
|
25243
25589
|
alt: item.icon.alt
|
|
25244
25590
|
})
|
|
25245
25591
|
}), item.title]
|
|
25246
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25247
|
-
className: "
|
|
25248
|
-
|
|
25592
|
+
}), item.body && /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25593
|
+
className: "llm__hint-body -llm-t-body-3",
|
|
25594
|
+
dangerouslySetInnerHTML: {
|
|
25595
|
+
__html: item.body
|
|
25596
|
+
}
|
|
25249
25597
|
})]
|
|
25250
|
-
},
|
|
25598
|
+
}, `card-${index}`);
|
|
25251
25599
|
};
|
|
25252
25600
|
const getCards = () => {
|
|
25253
25601
|
if (width < 768) {
|
|
@@ -25262,7 +25610,7 @@ void main(void) {
|
|
|
25262
25610
|
}
|
|
25263
25611
|
};
|
|
25264
25612
|
return /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25265
|
-
className: "
|
|
25613
|
+
className: "llm__hints",
|
|
25266
25614
|
children: getCards()
|
|
25267
25615
|
});
|
|
25268
25616
|
};
|
|
@@ -25288,12 +25636,12 @@ void main(void) {
|
|
|
25288
25636
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25289
25637
|
offset: "0%",
|
|
25290
25638
|
style: {
|
|
25291
|
-
stopColor: '
|
|
25639
|
+
stopColor: 'var(--llm-color-blob-100)'
|
|
25292
25640
|
}
|
|
25293
25641
|
}), /*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25294
25642
|
offset: "100%",
|
|
25295
25643
|
style: {
|
|
25296
|
-
stopColor: '
|
|
25644
|
+
stopColor: 'var(--llm-color-blob-200)'
|
|
25297
25645
|
}
|
|
25298
25646
|
})]
|
|
25299
25647
|
})
|
|
@@ -25325,12 +25673,12 @@ void main(void) {
|
|
|
25325
25673
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25326
25674
|
offset: "0%",
|
|
25327
25675
|
style: {
|
|
25328
|
-
stopColor: '
|
|
25676
|
+
stopColor: 'var(--llm-color-blob-300)'
|
|
25329
25677
|
}
|
|
25330
25678
|
}), /*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25331
25679
|
offset: "100%",
|
|
25332
25680
|
style: {
|
|
25333
|
-
stopColor: '
|
|
25681
|
+
stopColor: 'var(--llm-color-blob-400)'
|
|
25334
25682
|
}
|
|
25335
25683
|
})]
|
|
25336
25684
|
})
|
|
@@ -25362,12 +25710,12 @@ void main(void) {
|
|
|
25362
25710
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25363
25711
|
offset: "0%",
|
|
25364
25712
|
style: {
|
|
25365
|
-
stopColor: '
|
|
25713
|
+
stopColor: 'var(--llm-color-blob-500)'
|
|
25366
25714
|
}
|
|
25367
25715
|
}), /*#__PURE__*/jsxRuntimeExports.jsx("stop", {
|
|
25368
25716
|
offset: "100%",
|
|
25369
25717
|
style: {
|
|
25370
|
-
stopColor: '
|
|
25718
|
+
stopColor: 'var(--llm-color-blob-600)'
|
|
25371
25719
|
}
|
|
25372
25720
|
})]
|
|
25373
25721
|
})
|
|
@@ -25386,7 +25734,12 @@ void main(void) {
|
|
|
25386
25734
|
};
|
|
25387
25735
|
|
|
25388
25736
|
const Intro = () => {
|
|
25737
|
+
const iframeRef = reactExports.useRef(null);
|
|
25389
25738
|
const app = useLlm(state => state.app);
|
|
25739
|
+
useLlmView(state => state.introed);
|
|
25740
|
+
const {
|
|
25741
|
+
setIntroed
|
|
25742
|
+
} = useLlmView(state => state.actions);
|
|
25390
25743
|
const motionItem = {
|
|
25391
25744
|
hidden: {
|
|
25392
25745
|
y: '40px'
|
|
@@ -25421,7 +25774,67 @@ void main(void) {
|
|
|
25421
25774
|
}
|
|
25422
25775
|
}
|
|
25423
25776
|
};
|
|
25424
|
-
|
|
25777
|
+
const lenis = useLenis();
|
|
25778
|
+
reactExports.useEffect(() => {
|
|
25779
|
+
if (isBrowser$1) {
|
|
25780
|
+
const onMessage = event => {
|
|
25781
|
+
if (!event.data) {
|
|
25782
|
+
return;
|
|
25783
|
+
}
|
|
25784
|
+
const message = JSON.parse(event.data);
|
|
25785
|
+
switch (message.type) {
|
|
25786
|
+
case 'resize':
|
|
25787
|
+
break;
|
|
25788
|
+
case 'introed':
|
|
25789
|
+
// console.log('onMessage.introed');
|
|
25790
|
+
setIntroed(message.introed);
|
|
25791
|
+
break;
|
|
25792
|
+
}
|
|
25793
|
+
};
|
|
25794
|
+
window.addEventListener('message', onMessage);
|
|
25795
|
+
// console.log('onMessage');
|
|
25796
|
+
return () => window.removeEventListener('message', onMessage);
|
|
25797
|
+
}
|
|
25798
|
+
return () => {};
|
|
25799
|
+
}, [setIntroed]);
|
|
25800
|
+
|
|
25801
|
+
/*
|
|
25802
|
+
useEffect(() => {
|
|
25803
|
+
const onScroll = () => {
|
|
25804
|
+
if (iframeRef.current) {
|
|
25805
|
+
const rect = iframeRef.current.getBoundingClientRect();
|
|
25806
|
+
console.log('onScroll', rect.bottom < window.innerHeight);
|
|
25807
|
+
onIntroed(rect.bottom < window.innerHeight);
|
|
25808
|
+
}
|
|
25809
|
+
}
|
|
25810
|
+
window.addEventListener('scroll', onScroll);
|
|
25811
|
+
return () => window.removeEventListener('scroll', onScroll);
|
|
25812
|
+
}, [setIntroed]);
|
|
25813
|
+
*/
|
|
25814
|
+
|
|
25815
|
+
reactExports.useEffect(() => {
|
|
25816
|
+
const onLenisScroll = () => {
|
|
25817
|
+
if (iframeRef.current) {
|
|
25818
|
+
const rect = iframeRef.current.getBoundingClientRect();
|
|
25819
|
+
console.log('onLenisScroll', rect.bottom < window.innerHeight);
|
|
25820
|
+
setIntroed(rect.bottom < window.innerHeight);
|
|
25821
|
+
}
|
|
25822
|
+
};
|
|
25823
|
+
if (lenis) {
|
|
25824
|
+
lenis.on('scroll', onLenisScroll);
|
|
25825
|
+
return () => lenis.off('scroll', onLenisScroll);
|
|
25826
|
+
}
|
|
25827
|
+
return () => {};
|
|
25828
|
+
}, [lenis, setIntroed]);
|
|
25829
|
+
if (!app) {
|
|
25830
|
+
return;
|
|
25831
|
+
}
|
|
25832
|
+
return app.contents.customIntro ? /*#__PURE__*/jsxRuntimeExports.jsx("iframe", {
|
|
25833
|
+
ref: iframeRef,
|
|
25834
|
+
className: "llm__customIntro",
|
|
25835
|
+
src: typeof app.contents.customIntro === 'object' ? app.contents.customIntro['it'] : app.contents.customIntro,
|
|
25836
|
+
sandbox: "allow-scripts"
|
|
25837
|
+
}) : /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25425
25838
|
className: "llm__intro",
|
|
25426
25839
|
children: /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25427
25840
|
className: "llm-container",
|
|
@@ -25446,8 +25859,8 @@ void main(void) {
|
|
|
25446
25859
|
})]
|
|
25447
25860
|
}), /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
|
|
25448
25861
|
variants: motionItem,
|
|
25449
|
-
className: "llm__intro-
|
|
25450
|
-
children: /*#__PURE__*/jsxRuntimeExports.jsx(
|
|
25862
|
+
className: "llm__intro-hints llm-span-md-6 llm-span-lg-5",
|
|
25863
|
+
children: /*#__PURE__*/jsxRuntimeExports.jsx(Hints, {})
|
|
25451
25864
|
})]
|
|
25452
25865
|
})
|
|
25453
25866
|
})
|
|
@@ -25492,6 +25905,7 @@ void main(void) {
|
|
|
25492
25905
|
onInit: swiper => swiper.update(),
|
|
25493
25906
|
children: app?.contents.sampleInputTexts.map((s, j) => /*#__PURE__*/jsxRuntimeExports.jsx(SwiperSlide, {
|
|
25494
25907
|
children: /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25908
|
+
className: "llm__pill",
|
|
25495
25909
|
onClick: () => onClick(s),
|
|
25496
25910
|
children: s.sampleInputText
|
|
25497
25911
|
})
|
|
@@ -25600,85 +26014,15 @@ void main(void) {
|
|
|
25600
26014
|
});
|
|
25601
26015
|
};
|
|
25602
26016
|
|
|
25603
|
-
const defaultProps = {
|
|
25604
|
-
blur: '10px',
|
|
25605
|
-
blob1: {
|
|
25606
|
-
duration: '4s',
|
|
25607
|
-
color: 'var(--llm-color-ui-2)',
|
|
25608
|
-
transform: 'translate(400 -100) scale(2 2)'
|
|
25609
|
-
},
|
|
25610
|
-
blob2: {
|
|
25611
|
-
duration: '6s',
|
|
25612
|
-
color: 'var(--llm-color-ui-3)',
|
|
25613
|
-
transform: 'translate(-600 0) scale(2 2)'
|
|
25614
|
-
},
|
|
25615
|
-
blob3: {
|
|
25616
|
-
duration: '8s',
|
|
25617
|
-
color: 'var(--llm-color-ui-4)',
|
|
25618
|
-
transform: 'translate(-200 -600) scale(2 2)'
|
|
25619
|
-
}
|
|
25620
|
-
};
|
|
25621
|
-
const Background = props => {
|
|
25622
|
-
const blob1 = Object.assign({}, defaultProps.blob1, props.blob1);
|
|
25623
|
-
const blob2 = Object.assign({}, defaultProps.blob2, props.blob2);
|
|
25624
|
-
const blob3 = Object.assign({}, defaultProps.blob3, props.blob3);
|
|
25625
|
-
return /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
25626
|
-
className: "llm__background",
|
|
25627
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
25628
|
-
className: "llm__background-noise",
|
|
25629
|
-
style: {
|
|
25630
|
-
backgroundImage: 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGuGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjEuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjItMDYtMjZUMjM6NTA6NTIrMDM6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIyLTA2LTI2VDIzOjU2OjM4KzAzOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIyLTA2LTI2VDIzOjU2OjM4KzAzOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBkYTdiMWEyLWZhMzAtNDc3ZC05MTkzLTE1N2NlYjlhNjlhYiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOWMwMjFlNy03Y2UyLTQyMjUtOTBjMi1kNWViMjhhZTdjZWQiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxOWMwMjFlNy03Y2UyLTQyMjUtOTBjMi1kNWViMjhhZTdjZWQiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjE5YzAyMWU3LTdjZTItNDIyNS05MGMyLWQ1ZWIyOGFlN2NlZCIgc3RFdnQ6d2hlbj0iMjAyMi0wNi0yNlQyMzo1MDo1MiswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmZkMmZmNzcxLTU0YjQtNDMxZi1iMmE0LThhNjRjOTEyNTllNyIgc3RFdnQ6d2hlbj0iMjAyMi0wNi0yNlQyMzo1NjoyNiswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjBkYTdiMWEyLWZhMzAtNDc3ZC05MTkzLTE1N2NlYjlhNjlhYiIgc3RFdnQ6d2hlbj0iMjAyMi0wNi0yNlQyMzo1NjozOCswMzowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3K8pSwAA1CBJREFUeJxk/ddz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)'
|
|
25631
|
-
}
|
|
25632
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsx("div", {
|
|
25633
|
-
className: "llm__background-shade",
|
|
25634
|
-
children: /*#__PURE__*/jsxRuntimeExports.jsxs("svg", {
|
|
25635
|
-
filter: `blur(${props.blur})`,
|
|
25636
|
-
version: "1.1",
|
|
25637
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
25638
|
-
width: "100%",
|
|
25639
|
-
height: "100%",
|
|
25640
|
-
viewBox: "0 0 500 500",
|
|
25641
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx("path", {
|
|
25642
|
-
fill: blob1.color,
|
|
25643
|
-
transform: blob1.transform,
|
|
25644
|
-
children: /*#__PURE__*/jsxRuntimeExports.jsx("animate", {
|
|
25645
|
-
attributeName: "d",
|
|
25646
|
-
dur: blob1.duration,
|
|
25647
|
-
repeatCount: "indefinite",
|
|
25648
|
-
values: "M405.0078,325.44624Q400.89248,400.89248,325.44624,434.97549Q250,469.0585,165.42535,444.1039Q80.8507,419.1493,84.75627,334.57465Q88.66184,250,94.44262,175.1117Q100.2234,100.2234,175.1117,82.29749Q250,64.37159,306.73538,100.45042Q363.47075,136.52925,386.29693,193.26462Q409.12312,250,405.0078,325.44624Z;M385.47259,309.13613Q368.27225,368.27225,309.13613,425.14983Q250,482.02741,183.02911,432.9846Q116.05821,383.94179,100.85787,316.97089Q85.65753,250,111.11302,193.28426Q136.56852,136.56852,193.28426,70.4846Q250,4.40068,303.89298,73.30736Q357.78596,142.21404,380.22944,196.10702Q402.67293,250,385.47259,309.13613Z;M446.86448,329.36764Q408.73529,408.73529,329.36764,419.76576Q250,430.79624,166.60504,423.79308Q83.21008,416.78992,69.36975,333.39496Q55.52942,250,96.13341,193.3687Q136.7374,136.7374,193.3687,119.10083Q250,101.46426,313.50105,112.23108Q377.00211,122.99789,430.99789,186.49895Q484.99368,250,446.86448,329.36764Z;M449.05134,329.9003Q409.80059,409.80059,329.9003,451.15995Q250,492.5193,162.89881,458.36084Q75.79762,424.20238,65.04837,337.10119Q54.29911,250,85.74629,183.59673Q117.19347,117.19347,183.59673,88.1905Q250,59.18753,328.8549,75.73886Q407.7098,92.2902,448.00594,171.1451Q488.30208,250,449.05134,329.9003Z;M405.0078,325.44624Q400.89248,400.89248,325.44624,434.97549Q250,469.0585,165.42535,444.1039Q80.8507,419.1493,84.75627,334.57465Q88.66184,250,94.44262,175.1117Q100.2234,100.2234,175.1117,82.29749Q250,64.37159,306.73538,100.45042Q363.47075,136.52925,386.29693,193.26462Q409.12312,250,405.0078,325.44624Z"
|
|
25649
|
-
})
|
|
25650
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsx("path", {
|
|
25651
|
-
fill: blob2.color,
|
|
25652
|
-
transform: blob2.transform,
|
|
25653
|
-
children: /*#__PURE__*/jsxRuntimeExports.jsx("animate", {
|
|
25654
|
-
attributeName: "d",
|
|
25655
|
-
dur: blob2.duration,
|
|
25656
|
-
repeatCount: "indefinite",
|
|
25657
|
-
values: "M385.47259,309.13613Q368.27225,368.27225,309.13613,425.14983Q250,482.02741,183.02911,432.9846Q116.05821,383.94179,100.85787,316.97089Q85.65753,250,111.11302,193.28426Q136.56852,136.56852,193.28426,70.4846Q250,4.40068,303.89298,73.30736Q357.78596,142.21404,380.22944,196.10702Q402.67293,250,385.47259,309.13613Z;M409.06419,322.5266Q395.0532,395.0532,322.5266,445.11739Q250,495.18159,163.51944,459.07135Q77.03888,422.96112,82.39949,336.48056Q87.7601,250,115.64271,196.76266Q143.52532,143.52532,196.76266,76.83657Q250,10.14783,323.24578,56.82813Q396.49156,103.50844,409.78338,176.75422Q423.07519,250,409.06419,322.5266Z;M423.42552,332.41134Q414.82268,414.82268,332.41134,424.30554Q250,433.78841,170.96572,420.92848Q91.93144,408.06856,46.07152,329.03428Q0.21159,250,66.88003,191.77423Q133.54846,133.54846,191.77423,102.82861Q250,72.10876,305.00592,106.04846Q360.01185,139.98815,396.0201,194.99408Q432.02836,250,423.42552,332.41134Z;M408.24461,332.63257Q415.26513,415.26513,332.63257,434.71568Q250,454.16622,179.33614,422.74697Q108.67228,391.32772,65.87585,320.66386Q23.07942,250,63.27221,176.73251Q103.46501,103.46501,176.73251,63.02288Q250,22.58075,311.86507,74.4253Q373.73015,126.26985,387.47712,188.13493Q401.22409,250,408.24461,332.63257Z;M385.47259,309.13613Q368.27225,368.27225,309.13613,425.14983Q250,482.02741,183.02911,432.9846Q116.05821,383.94179,100.85787,316.97089Q85.65753,250,111.11302,193.28426Q136.56852,136.56852,193.28426,70.4846Q250,4.40068,303.89298,73.30736Q357.78596,142.21404,380.22944,196.10702Q402.67293,250,385.47259,309.13613Z"
|
|
25658
|
-
})
|
|
25659
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsx("path", {
|
|
25660
|
-
fill: blob3.color,
|
|
25661
|
-
transform: blob3.transform,
|
|
25662
|
-
children: /*#__PURE__*/jsxRuntimeExports.jsx("animate", {
|
|
25663
|
-
attributeName: "d",
|
|
25664
|
-
dur: blob3.duration,
|
|
25665
|
-
repeatCount: "indefinite",
|
|
25666
|
-
values: "M385.47259,309.13613Q368.27225,368.27225,309.13613,425.14983Q250,482.02741,183.02911,432.9846Q116.05821,383.94179,100.85787,316.97089Q85.65753,250,111.11302,193.28426Q136.56852,136.56852,193.28426,70.4846Q250,4.40068,303.89298,73.30736Q357.78596,142.21404,380.22944,196.10702Q402.67293,250,385.47259,309.13613Z;M409.06419,322.5266Q395.0532,395.0532,322.5266,445.11739Q250,495.18159,163.51944,459.07135Q77.03888,422.96112,82.39949,336.48056Q87.7601,250,115.64271,196.76266Q143.52532,143.52532,196.76266,76.83657Q250,10.14783,323.24578,56.82813Q396.49156,103.50844,409.78338,176.75422Q423.07519,250,409.06419,322.5266Z;M423.42552,332.41134Q414.82268,414.82268,332.41134,424.30554Q250,433.78841,170.96572,420.92848Q91.93144,408.06856,46.07152,329.03428Q0.21159,250,66.88003,191.77423Q133.54846,133.54846,191.77423,102.82861Q250,72.10876,305.00592,106.04846Q360.01185,139.98815,396.0201,194.99408Q432.02836,250,423.42552,332.41134Z;M408.24461,332.63257Q415.26513,415.26513,332.63257,434.71568Q250,454.16622,179.33614,422.74697Q108.67228,391.32772,65.87585,320.66386Q23.07942,250,63.27221,176.73251Q103.46501,103.46501,176.73251,63.02288Q250,22.58075,311.86507,74.4253Q373.73015,126.26985,387.47712,188.13493Q401.22409,250,408.24461,332.63257Z;M385.47259,309.13613Q368.27225,368.27225,309.13613,425.14983Q250,482.02741,183.02911,432.9846Q116.05821,383.94179,100.85787,316.97089Q85.65753,250,111.11302,193.28426Q136.56852,136.56852,193.28426,70.4846Q250,4.40068,303.89298,73.30736Q357.78596,142.21404,380.22944,196.10702Q402.67293,250,385.47259,309.13613Z"
|
|
25667
|
-
})
|
|
25668
|
-
})]
|
|
25669
|
-
})
|
|
25670
|
-
})]
|
|
25671
|
-
});
|
|
25672
|
-
};
|
|
25673
|
-
Background.defaultProps = defaultProps;
|
|
25674
|
-
|
|
25675
26017
|
const Cta = props => {
|
|
25676
|
-
const onClick =
|
|
26018
|
+
const onClick = event => {
|
|
25677
26019
|
if (typeof props.onClick === 'function') {
|
|
25678
|
-
props.onClick();
|
|
26020
|
+
props.onClick(event);
|
|
25679
26021
|
}
|
|
25680
26022
|
};
|
|
25681
|
-
const bg = props.type == 'button' || props.type == 'submit' ? /*#__PURE__*/jsxRuntimeExports.jsx(
|
|
26023
|
+
const bg = props.type == 'button' || props.type == 'submit' ? /*#__PURE__*/jsxRuntimeExports.jsx(Canvas, {
|
|
26024
|
+
scale: 4
|
|
26025
|
+
}) : '';
|
|
25682
26026
|
const icon = props.type == 'text' ? /*#__PURE__*/jsxRuntimeExports.jsx(IconLlmArrowRight, {}) : '';
|
|
25683
26027
|
const classNames = getClassNames('llm__cta', `llm__cta--${props.type}`);
|
|
25684
26028
|
return props.url ? /*#__PURE__*/jsxRuntimeExports.jsxs("a", {
|
|
@@ -25690,7 +26034,7 @@ void main(void) {
|
|
|
25690
26034
|
}), icon]
|
|
25691
26035
|
}) : /*#__PURE__*/jsxRuntimeExports.jsxs("button", {
|
|
25692
26036
|
className: classNames,
|
|
25693
|
-
onClick:
|
|
26037
|
+
onClick: onClick,
|
|
25694
26038
|
type: props.type == 'button' || props.type == 'submit' ? props.type : undefined,
|
|
25695
26039
|
children: [bg, /*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
25696
26040
|
children: props.label
|
|
@@ -25706,7 +26050,7 @@ void main(void) {
|
|
|
25706
26050
|
const {
|
|
25707
26051
|
send
|
|
25708
26052
|
} = useLlmView(state => state.actions);
|
|
25709
|
-
const onTellMeMore = async
|
|
26053
|
+
const onTellMeMore = async event => {
|
|
25710
26054
|
const prompt = `${label('llm.tellMeMoreAbout')} ${props.title}`;
|
|
25711
26055
|
await send(prompt, response => {
|
|
25712
26056
|
// console.log('Prompt.onChunk', response.chunks);
|
|
@@ -25714,8 +26058,9 @@ void main(void) {
|
|
|
25714
26058
|
// console.log('Prompt.onEnd', response);
|
|
25715
26059
|
});
|
|
25716
26060
|
};
|
|
25717
|
-
const onGoToWebsite = async
|
|
26061
|
+
const onGoToWebsite = async event => {
|
|
25718
26062
|
if (isBrowser$1) {
|
|
26063
|
+
event.preventDefault();
|
|
25719
26064
|
const url = await decorateUrl(props, props.url);
|
|
25720
26065
|
window.open(url, '_blank');
|
|
25721
26066
|
}
|
|
@@ -28494,7 +28839,7 @@ void main(void) {
|
|
|
28494
28839
|
const {
|
|
28495
28840
|
send
|
|
28496
28841
|
} = useLlmView(state => state.actions);
|
|
28497
|
-
const onTellMeMore = async
|
|
28842
|
+
const onTellMeMore = async event => {
|
|
28498
28843
|
const prompt = `${label('llm.tellMeMoreAbout')} ${props.title}`;
|
|
28499
28844
|
await send(prompt, response => {
|
|
28500
28845
|
// console.log('Prompt.onChunk', response.chunks);
|
|
@@ -28502,8 +28847,9 @@ void main(void) {
|
|
|
28502
28847
|
// console.log('Prompt.onEnd', response);
|
|
28503
28848
|
});
|
|
28504
28849
|
};
|
|
28505
|
-
const onGoToWebsite = async
|
|
28850
|
+
const onGoToWebsite = async event => {
|
|
28506
28851
|
if (isBrowser$1) {
|
|
28852
|
+
event.preventDefault();
|
|
28507
28853
|
const url = await decorateUrl(props, props.url);
|
|
28508
28854
|
window.open(url, '_blank');
|
|
28509
28855
|
}
|
|
@@ -28571,8 +28917,15 @@ void main(void) {
|
|
|
28571
28917
|
const {
|
|
28572
28918
|
decorateUrl
|
|
28573
28919
|
} = useLlm(state => state.actions);
|
|
28574
|
-
const
|
|
28920
|
+
const onBookNow = async event => {
|
|
28921
|
+
if (isBrowser$1) {
|
|
28922
|
+
event.preventDefault();
|
|
28923
|
+
window.open(props.book, '_blank');
|
|
28924
|
+
}
|
|
28925
|
+
};
|
|
28926
|
+
const onGoToWebsite = async event => {
|
|
28575
28927
|
if (isBrowser$1) {
|
|
28928
|
+
event.preventDefault();
|
|
28576
28929
|
const url = await decorateUrl(props, props.url);
|
|
28577
28930
|
window.open(url, '_blank');
|
|
28578
28931
|
}
|
|
@@ -28617,9 +28970,8 @@ void main(void) {
|
|
|
28617
28970
|
className: "llm__tripadv-ctas",
|
|
28618
28971
|
children: [props.book && /*#__PURE__*/jsxRuntimeExports.jsx(Cta, {
|
|
28619
28972
|
type: "button",
|
|
28620
|
-
|
|
28621
|
-
|
|
28622
|
-
label: label('llm.bookNow')
|
|
28973
|
+
label: label('llm.bookNow'),
|
|
28974
|
+
onClick: onBookNow
|
|
28623
28975
|
}), /*#__PURE__*/jsxRuntimeExports.jsx(Cta, {
|
|
28624
28976
|
type: "text",
|
|
28625
28977
|
label: label('llm.goToWebsite'),
|
|
@@ -28786,7 +29138,10 @@ void main(void) {
|
|
|
28786
29138
|
|
|
28787
29139
|
const Main = () => {
|
|
28788
29140
|
const lenisRef = reactExports.useRef(null);
|
|
29141
|
+
const app = useLlm(state => state.app);
|
|
28789
29142
|
const messages = useLlm(state => state.messages);
|
|
29143
|
+
const introed = useLlmView(state => state.introed);
|
|
29144
|
+
const visible = useLlmView(state => state.visible);
|
|
28790
29145
|
const embedded = useLlmView(state => state.embedded);
|
|
28791
29146
|
const {
|
|
28792
29147
|
setLenis
|
|
@@ -28833,7 +29188,7 @@ void main(void) {
|
|
|
28833
29188
|
y: 0,
|
|
28834
29189
|
transition: {
|
|
28835
29190
|
type: 'tween',
|
|
28836
|
-
delay: 1.2,
|
|
29191
|
+
delay: app?.contents.customIntro ? 0 : 1.2,
|
|
28837
29192
|
duration: .6
|
|
28838
29193
|
}
|
|
28839
29194
|
},
|
|
@@ -28845,19 +29200,20 @@ void main(void) {
|
|
|
28845
29200
|
}
|
|
28846
29201
|
}
|
|
28847
29202
|
});
|
|
29203
|
+
const shouldShowPrompt = !app?.contents.customIntro || introed;
|
|
28848
29204
|
return /*#__PURE__*/jsxRuntimeExports.jsxs(motion.div, {
|
|
28849
29205
|
variants: reveal,
|
|
28850
29206
|
initial: "hidden",
|
|
28851
29207
|
animate: "show",
|
|
28852
29208
|
exit: "exit",
|
|
28853
29209
|
className: classNames,
|
|
28854
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx(Canvas, {}), /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
|
|
29210
|
+
children: [visible && /*#__PURE__*/jsxRuntimeExports.jsx(Canvas, {}), !embedded && /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
|
|
28855
29211
|
className: "llm__top",
|
|
28856
29212
|
variants: slideIn(-1),
|
|
28857
29213
|
initial: "hidden",
|
|
28858
29214
|
animate: "show",
|
|
28859
29215
|
exit: "exit",
|
|
28860
|
-
children:
|
|
29216
|
+
children: /*#__PURE__*/jsxRuntimeExports.jsx(Header, {})
|
|
28861
29217
|
}), /*#__PURE__*/jsxRuntimeExports.jsx(m, {
|
|
28862
29218
|
ref: lenisRef,
|
|
28863
29219
|
className: "llm__scroller",
|
|
@@ -28868,7 +29224,7 @@ void main(void) {
|
|
|
28868
29224
|
className: "llm__content",
|
|
28869
29225
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx(Intro, {}), messages && messages.length > 0 && /*#__PURE__*/jsxRuntimeExports.jsx(Thread, {})]
|
|
28870
29226
|
})
|
|
28871
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
|
|
29227
|
+
}), shouldShowPrompt && /*#__PURE__*/jsxRuntimeExports.jsx(motion.div, {
|
|
28872
29228
|
className: "llm__bottom",
|
|
28873
29229
|
variants: slideIn(1),
|
|
28874
29230
|
initial: "hidden",
|
|
@@ -28881,6 +29237,7 @@ void main(void) {
|
|
|
28881
29237
|
|
|
28882
29238
|
const Trigger = () => {
|
|
28883
29239
|
const app = useLlm(state => state.app);
|
|
29240
|
+
const opened = useLlmView(state => state.opened);
|
|
28884
29241
|
const {
|
|
28885
29242
|
open
|
|
28886
29243
|
} = useLlmView(state => state.actions);
|
|
@@ -28910,20 +29267,24 @@ void main(void) {
|
|
|
28910
29267
|
children: [/*#__PURE__*/jsxRuntimeExports.jsx(Blob, {}), /*#__PURE__*/jsxRuntimeExports.jsx("span", {
|
|
28911
29268
|
children: label('llm.button')
|
|
28912
29269
|
})]
|
|
28913
|
-
}), /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
29270
|
+
}), !opened && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
28914
29271
|
className: "llm__trigger-welcome -llm-t-body-2",
|
|
28915
29272
|
children: [/*#__PURE__*/jsxRuntimeExports.jsxs(motion.div, {
|
|
28916
29273
|
exit: {
|
|
28917
29274
|
opacity: 0
|
|
28918
29275
|
},
|
|
28919
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx(
|
|
29276
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx(Canvas, {
|
|
29277
|
+
scale: 8
|
|
29278
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx(NewLineToBr, {
|
|
28920
29279
|
text: app?.contents.collapsedWelcomeText
|
|
28921
29280
|
})]
|
|
28922
29281
|
}), app?.contents.collapsedWelcomeTextHover && /*#__PURE__*/jsxRuntimeExports.jsxs(motion.div, {
|
|
28923
29282
|
exit: {
|
|
28924
29283
|
opacity: 0
|
|
28925
29284
|
},
|
|
28926
|
-
children: [/*#__PURE__*/jsxRuntimeExports.jsx(
|
|
29285
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx(Canvas, {
|
|
29286
|
+
scale: 8
|
|
29287
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx(NewLineToBr, {
|
|
28927
29288
|
text: app?.contents.collapsedWelcomeTextHover
|
|
28928
29289
|
})]
|
|
28929
29290
|
})]
|
|
@@ -28932,6 +29293,8 @@ void main(void) {
|
|
|
28932
29293
|
};
|
|
28933
29294
|
|
|
28934
29295
|
const LlmComponent = /*#__PURE__*/reactExports.forwardRef((props, ref) => {
|
|
29296
|
+
const innerRef = reactExports.useRef(null);
|
|
29297
|
+
const mounted = useMounted();
|
|
28935
29298
|
const {
|
|
28936
29299
|
locale
|
|
28937
29300
|
} = useLayout();
|
|
@@ -28939,12 +29302,15 @@ void main(void) {
|
|
|
28939
29302
|
init
|
|
28940
29303
|
} = useLlm(state => state.actions);
|
|
28941
29304
|
const app = useLlm(state => state.app);
|
|
29305
|
+
const embed = useLlm(state => state.embed);
|
|
28942
29306
|
const {
|
|
28943
29307
|
initView,
|
|
29308
|
+
initIntersection,
|
|
28944
29309
|
open
|
|
28945
29310
|
} = useLlmView(state => state.actions);
|
|
28946
29311
|
const idle = useLlmView(state => state.idle);
|
|
28947
29312
|
const opened = useLlmView(state => state.opened);
|
|
29313
|
+
const introed = useLlmView(state => state.introed);
|
|
28948
29314
|
const embedded = useLlmView(state => state.embedded);
|
|
28949
29315
|
reactExports.useImperativeHandle(ref, () => ({
|
|
28950
29316
|
open: () => {
|
|
@@ -28955,26 +29321,72 @@ void main(void) {
|
|
|
28955
29321
|
init(locale);
|
|
28956
29322
|
initView();
|
|
28957
29323
|
}, [init, locale, initView]);
|
|
29324
|
+
reactExports.useEffect(() => {
|
|
29325
|
+
if (innerRef.current) {
|
|
29326
|
+
initIntersection(innerRef.current);
|
|
29327
|
+
}
|
|
29328
|
+
}, [mounted, initIntersection, innerRef.current]);
|
|
28958
29329
|
reactExports.useEffect(() => {
|
|
28959
29330
|
if (!embedded) {
|
|
28960
29331
|
document.documentElement.style.overflow = opened ? 'hidden' : 'auto';
|
|
28961
29332
|
}
|
|
28962
29333
|
}, [opened, embedded]);
|
|
28963
|
-
|
|
29334
|
+
|
|
29335
|
+
/*
|
|
29336
|
+
useEffect(() => {
|
|
29337
|
+
if (innerRef.current) {
|
|
29338
|
+
const observer = new MutationObserver((mutations) => {
|
|
29339
|
+
const target = mutations[0].target as HTMLDivElement;
|
|
29340
|
+
const mutatedVars: Partial<LlmVars> = {};
|
|
29341
|
+
Object.entries(vars).forEach(([k, v]) => {
|
|
29342
|
+
const newValue = target.style.getPropertyValue(k);
|
|
29343
|
+
if (v !== newValue) {
|
|
29344
|
+
mutatedVars[k] = newValue;
|
|
29345
|
+
}
|
|
29346
|
+
if (
|
|
29347
|
+
k === '--llm-color-base-100' ||
|
|
29348
|
+
k === '--llm-color-base-200' ||
|
|
29349
|
+
k === '--llm-color-base-300' ||
|
|
29350
|
+
k === '--llm-color-base-400'
|
|
29351
|
+
) {
|
|
29352
|
+
console.log(k, newValue, v);
|
|
29353
|
+
}
|
|
29354
|
+
});
|
|
29355
|
+
if (Object.keys(mutatedVars).length > 0) {
|
|
29356
|
+
setVars(mutatedVars);
|
|
29357
|
+
}
|
|
29358
|
+
});
|
|
29359
|
+
observer.observe(innerRef.current, {
|
|
29360
|
+
attributes: true,
|
|
29361
|
+
attributeFilter: ['style'],
|
|
29362
|
+
});
|
|
29363
|
+
return () => observer.disconnect();
|
|
29364
|
+
} else {
|
|
29365
|
+
return () => { };
|
|
29366
|
+
}
|
|
29367
|
+
}, []);
|
|
29368
|
+
*/
|
|
29369
|
+
|
|
29370
|
+
const shouldShowTrigger = !opened && !idle && !embed || app?.contents.customIntro && !introed;
|
|
28964
29371
|
const classNames = getClassNames('llm', {
|
|
28965
29372
|
'-open': opened,
|
|
28966
29373
|
'-embedded': embedded
|
|
28967
29374
|
});
|
|
28968
29375
|
if (mounted) {
|
|
28969
29376
|
return /*#__PURE__*/jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {
|
|
28970
|
-
children: app && /*#__PURE__*/jsxRuntimeExports.
|
|
29377
|
+
children: app && /*#__PURE__*/jsxRuntimeExports.jsxs("div", {
|
|
29378
|
+
ref: innerRef,
|
|
28971
29379
|
className: classNames,
|
|
28972
29380
|
...props,
|
|
28973
|
-
children: /*#__PURE__*/jsxRuntimeExports.
|
|
29381
|
+
children: [/*#__PURE__*/jsxRuntimeExports.jsx(AnimatePresence, {
|
|
28974
29382
|
mode: "wait",
|
|
28975
29383
|
initial: false,
|
|
28976
|
-
children:
|
|
28977
|
-
})
|
|
29384
|
+
children: opened && /*#__PURE__*/jsxRuntimeExports.jsx(Main, {}, "main")
|
|
29385
|
+
}), /*#__PURE__*/jsxRuntimeExports.jsx(AnimatePresence, {
|
|
29386
|
+
mode: "wait",
|
|
29387
|
+
initial: false,
|
|
29388
|
+
children: shouldShowTrigger && /*#__PURE__*/jsxRuntimeExports.jsx(Trigger, {}, "trigger")
|
|
29389
|
+
})]
|
|
28978
29390
|
})
|
|
28979
29391
|
});
|
|
28980
29392
|
} else {
|
|
@@ -29491,8 +29903,7 @@ void main(void) {
|
|
|
29491
29903
|
filteredElements.push(childElement);
|
|
29492
29904
|
}
|
|
29493
29905
|
}
|
|
29494
|
-
|
|
29495
|
-
if (element.tagName.toLowerCase() === 'llm-embed' && !element.hasAttribute('data-llm')) {
|
|
29906
|
+
if (element.tagName && element.tagName.toLowerCase() === 'llm-embed' && !element.hasAttribute('data-llm')) {
|
|
29496
29907
|
filteredElements.push(element);
|
|
29497
29908
|
}
|
|
29498
29909
|
}
|