@pathscale/ui 0.0.120 → 0.0.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/language-switcher/LanguageSwitcher.d.ts +31 -0
- package/dist/components/language-switcher/createI18n.d.ts +102 -0
- package/dist/components/language-switcher/index.d.ts +3 -0
- package/dist/components/live-chat/LiveChatBubble.d.ts +38 -0
- package/dist/components/live-chat/LiveChatPanel.d.ts +54 -0
- package/dist/components/live-chat/index.d.ts +5 -0
- package/dist/components/live-chat/types.d.ts +13 -0
- package/dist/components/theme-color-picker/ThemeColorPicker.d.ts +23 -0
- package/dist/components/theme-color-picker/hueShift.d.ts +14 -0
- package/dist/components/theme-color-picker/index.d.ts +3 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1152 -7
- package/dist/styles/icons/generated-icons.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9397,7 +9397,7 @@ const DropdownDetails = Object.assign(Details, {
|
|
|
9397
9397
|
Toggle: DropdownToggle_Summary
|
|
9398
9398
|
});
|
|
9399
9399
|
var DropdownItem_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<li role=menuitem>"), DropdownItem_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<a>"), DropdownItem_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<button>");
|
|
9400
|
-
const
|
|
9400
|
+
const DropdownItem = (props)=>{
|
|
9401
9401
|
const dropdownContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(DropdownContext);
|
|
9402
9402
|
const defaultProps = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.mergeProps)({
|
|
9403
9403
|
closeOnClick: true
|
|
@@ -9439,7 +9439,7 @@ const DropdownItem_DropdownItem = (props)=>{
|
|
|
9439
9439
|
return _el$;
|
|
9440
9440
|
})();
|
|
9441
9441
|
};
|
|
9442
|
-
const
|
|
9442
|
+
const dropdown_DropdownItem = DropdownItem;
|
|
9443
9443
|
var DropdownMenu_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<ul>");
|
|
9444
9444
|
const DropdownMenu = (props)=>{
|
|
9445
9445
|
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
@@ -9641,7 +9641,7 @@ const dropdown_Dropdown = Object.assign(Dropdown, {
|
|
|
9641
9641
|
Details: DropdownDetails,
|
|
9642
9642
|
Toggle: dropdown_DropdownToggle,
|
|
9643
9643
|
Menu: dropdown_DropdownMenu,
|
|
9644
|
-
Item:
|
|
9644
|
+
Item: dropdown_DropdownItem
|
|
9645
9645
|
});
|
|
9646
9646
|
const dropdown = dropdown_Dropdown;
|
|
9647
9647
|
var FileInput_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<input>");
|
|
@@ -11255,6 +11255,572 @@ const Link = (props)=>{
|
|
|
11255
11255
|
})();
|
|
11256
11256
|
};
|
|
11257
11257
|
const link_Link = Link;
|
|
11258
|
+
var LiveChatPanel_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z">'), LiveChatPanel_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<h3 class="font-semibold text-lg">'), LiveChatPanel_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div><div class="flex-shrink-0 bg-primary text-primary-content px-4 py-4 flex items-center justify-between"><button class="hover:bg-primary-focus rounded-lg p-1 transition-colors"><svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M6 18L18 6M6 6l12 12"></path></svg></button></div><div class="flex-1 overflow-y-auto px-4 py-4 space-y-4"></div><div class="flex-shrink-0 border-t border-base-300 bg-base-100 p-3">'), LiveChatPanel_tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>"), LiveChatPanel_tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div><p class="text-sm leading-relaxed whitespace-pre-wrap break-words">'), _tmpl$6 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<span class="text-xs text-base-content/50 mt-1 px-1">'), _tmpl$7 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<span class="w-4 h-4 border-2 border-primary-content/30 border-t-primary-content rounded-full animate-spin inline-block">');
|
|
11259
|
+
const getMockMessages = ()=>{
|
|
11260
|
+
const salesMessages = [
|
|
11261
|
+
{
|
|
11262
|
+
messageId: "sales-1",
|
|
11263
|
+
content: "Hi! I'm interested in your product. Can you tell me more?",
|
|
11264
|
+
sender: "user",
|
|
11265
|
+
timestamp: Date.now() - 3600000
|
|
11266
|
+
},
|
|
11267
|
+
{
|
|
11268
|
+
messageId: "sales-2",
|
|
11269
|
+
content: "Hello! Thanks for your interest. We offer flexible pricing plans starting at $49/month. Would you like to schedule a demo?",
|
|
11270
|
+
sender: "agent",
|
|
11271
|
+
timestamp: Date.now() - 3500000
|
|
11272
|
+
},
|
|
11273
|
+
{
|
|
11274
|
+
messageId: "sales-3",
|
|
11275
|
+
content: "That sounds great! What features are included in the basic plan?",
|
|
11276
|
+
sender: "user",
|
|
11277
|
+
timestamp: Date.now() - 3400000
|
|
11278
|
+
}
|
|
11279
|
+
];
|
|
11280
|
+
const supportMessages = [
|
|
11281
|
+
{
|
|
11282
|
+
messageId: "support-1",
|
|
11283
|
+
content: "I'm having trouble connecting. It keeps showing 'Connection Failed'.",
|
|
11284
|
+
sender: "user",
|
|
11285
|
+
timestamp: Date.now() - 7200000
|
|
11286
|
+
},
|
|
11287
|
+
{
|
|
11288
|
+
messageId: "support-2",
|
|
11289
|
+
content: "I'm sorry to hear that. Let me help you troubleshoot. Can you tell me which browser you're using?",
|
|
11290
|
+
sender: "agent",
|
|
11291
|
+
timestamp: Date.now() - 7100000
|
|
11292
|
+
},
|
|
11293
|
+
{
|
|
11294
|
+
messageId: "support-3",
|
|
11295
|
+
content: "I'm using Chrome version 121 on Windows 11",
|
|
11296
|
+
sender: "user",
|
|
11297
|
+
timestamp: Date.now() - 7000000
|
|
11298
|
+
},
|
|
11299
|
+
{
|
|
11300
|
+
messageId: "support-4",
|
|
11301
|
+
content: "Thanks for that info. Let's try clearing your browser cache first. Can you go to Settings > Privacy and security > Clear browsing data?",
|
|
11302
|
+
sender: "agent",
|
|
11303
|
+
timestamp: Date.now() - 6900000
|
|
11304
|
+
}
|
|
11305
|
+
];
|
|
11306
|
+
return [
|
|
11307
|
+
...salesMessages,
|
|
11308
|
+
...supportMessages
|
|
11309
|
+
].sort((a, b)=>a.timestamp - b.timestamp);
|
|
11310
|
+
};
|
|
11311
|
+
const formatTime = (timestamp)=>new Intl.DateTimeFormat("en-US", {
|
|
11312
|
+
hour: "numeric",
|
|
11313
|
+
minute: "2-digit",
|
|
11314
|
+
hour12: true
|
|
11315
|
+
}).format(new Date(timestamp));
|
|
11316
|
+
const LiveChatPanel_LiveChatPanel = (props)=>{
|
|
11317
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
11318
|
+
"onClose",
|
|
11319
|
+
"title",
|
|
11320
|
+
"placeholder",
|
|
11321
|
+
"closeLabel",
|
|
11322
|
+
"sendLabel",
|
|
11323
|
+
"emptyMessage",
|
|
11324
|
+
"mockMode",
|
|
11325
|
+
"messages",
|
|
11326
|
+
"onSendMessage",
|
|
11327
|
+
"isSending",
|
|
11328
|
+
"class",
|
|
11329
|
+
"className",
|
|
11330
|
+
"style"
|
|
11331
|
+
]);
|
|
11332
|
+
const [internalMessages, setInternalMessages] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)([]);
|
|
11333
|
+
const [inputValue, setInputValue] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)("");
|
|
11334
|
+
const [sending, setSending] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
11335
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
11336
|
+
if (local.mockMode) setInternalMessages(getMockMessages());
|
|
11337
|
+
else if (local.messages) setInternalMessages(local.messages);
|
|
11338
|
+
});
|
|
11339
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
11340
|
+
if (!local.mockMode && local.messages) setInternalMessages(local.messages);
|
|
11341
|
+
});
|
|
11342
|
+
const isSending = ()=>local.isSending ?? sending();
|
|
11343
|
+
const handleSend = async ()=>{
|
|
11344
|
+
const content = inputValue().trim();
|
|
11345
|
+
if (!content || isSending()) return;
|
|
11346
|
+
if (local.mockMode) {
|
|
11347
|
+
const userMessage = {
|
|
11348
|
+
messageId: `user-${Date.now()}`,
|
|
11349
|
+
content,
|
|
11350
|
+
sender: "user",
|
|
11351
|
+
timestamp: Date.now()
|
|
11352
|
+
};
|
|
11353
|
+
setInternalMessages((prev)=>[
|
|
11354
|
+
...prev,
|
|
11355
|
+
userMessage
|
|
11356
|
+
]);
|
|
11357
|
+
setInputValue("");
|
|
11358
|
+
setTimeout(()=>{
|
|
11359
|
+
const agentMessage = {
|
|
11360
|
+
messageId: `agent-${Date.now()}`,
|
|
11361
|
+
content: "Thanks for your message! This is a demo response.",
|
|
11362
|
+
sender: "agent",
|
|
11363
|
+
timestamp: Date.now()
|
|
11364
|
+
};
|
|
11365
|
+
setInternalMessages((prev)=>[
|
|
11366
|
+
...prev,
|
|
11367
|
+
agentMessage
|
|
11368
|
+
]);
|
|
11369
|
+
}, 1000);
|
|
11370
|
+
} else if (local.onSendMessage) {
|
|
11371
|
+
setSending(true);
|
|
11372
|
+
try {
|
|
11373
|
+
const response = await local.onSendMessage({
|
|
11374
|
+
message: content
|
|
11375
|
+
});
|
|
11376
|
+
const userMessage = {
|
|
11377
|
+
messageId: response.messageId,
|
|
11378
|
+
content,
|
|
11379
|
+
sender: "user",
|
|
11380
|
+
timestamp: response.timestamp
|
|
11381
|
+
};
|
|
11382
|
+
setInternalMessages((prev)=>[
|
|
11383
|
+
...prev,
|
|
11384
|
+
userMessage
|
|
11385
|
+
]);
|
|
11386
|
+
setInputValue("");
|
|
11387
|
+
} catch (error) {
|
|
11388
|
+
console.error("[LiveChatPanel] Failed to send message:", error);
|
|
11389
|
+
} finally{
|
|
11390
|
+
setSending(false);
|
|
11391
|
+
}
|
|
11392
|
+
}
|
|
11393
|
+
};
|
|
11394
|
+
const handleKeyPress = (e)=>{
|
|
11395
|
+
if ("Enter" === e.key && !e.shiftKey) {
|
|
11396
|
+
e.preventDefault();
|
|
11397
|
+
handleSend();
|
|
11398
|
+
}
|
|
11399
|
+
};
|
|
11400
|
+
const classes = ()=>twMerge(`fixed inset-0
|
|
11401
|
+
sm:inset-auto
|
|
11402
|
+
sm:bottom-20 sm:right-4
|
|
11403
|
+
md:bottom-24 md:right-6
|
|
11404
|
+
z-51
|
|
11405
|
+
w-full h-full
|
|
11406
|
+
sm:w-96 md:w-[400px]
|
|
11407
|
+
sm:h-[70vh]
|
|
11408
|
+
md:h-[75vh]
|
|
11409
|
+
lg:h-[80vh]
|
|
11410
|
+
sm:max-h-[800px]
|
|
11411
|
+
sm:min-h-[420px]
|
|
11412
|
+
bg-base-100
|
|
11413
|
+
sm:rounded-2xl
|
|
11414
|
+
shadow-2xl
|
|
11415
|
+
flex flex-col
|
|
11416
|
+
overflow-hidden`, clsx(local.class, local.className));
|
|
11417
|
+
return (()=>{
|
|
11418
|
+
var _el$ = LiveChatPanel_tmpl$3(), _el$2 = _el$.firstChild, _el$5 = _el$2.firstChild, _el$6 = _el$2.nextSibling, _el$7 = _el$6.nextSibling;
|
|
11419
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
11420
|
+
get ["class"] () {
|
|
11421
|
+
return classes();
|
|
11422
|
+
},
|
|
11423
|
+
get style () {
|
|
11424
|
+
return local.style;
|
|
11425
|
+
}
|
|
11426
|
+
}), false, true);
|
|
11427
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(flex_Flex, {
|
|
11428
|
+
align: "center",
|
|
11429
|
+
gap: "sm",
|
|
11430
|
+
get children () {
|
|
11431
|
+
return [
|
|
11432
|
+
LiveChatPanel_tmpl$(),
|
|
11433
|
+
(()=>{
|
|
11434
|
+
var _el$4 = LiveChatPanel_tmpl$2();
|
|
11435
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$4, ()=>local.title ?? "Chat with us");
|
|
11436
|
+
return _el$4;
|
|
11437
|
+
})()
|
|
11438
|
+
];
|
|
11439
|
+
}
|
|
11440
|
+
}), _el$5);
|
|
11441
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.addEventListener)(_el$5, "click", local.onClose, true);
|
|
11442
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$6, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
|
|
11443
|
+
get each () {
|
|
11444
|
+
return internalMessages();
|
|
11445
|
+
},
|
|
11446
|
+
children: (message)=>{
|
|
11447
|
+
const isUser = "user" === message.sender;
|
|
11448
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(flex_Flex, {
|
|
11449
|
+
direction: isUser ? "row-reverse" : "row",
|
|
11450
|
+
gap: "sm",
|
|
11451
|
+
class: "w-full",
|
|
11452
|
+
get children () {
|
|
11453
|
+
return [
|
|
11454
|
+
(()=>{
|
|
11455
|
+
var _el$8 = LiveChatPanel_tmpl$4();
|
|
11456
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$8, `flex-shrink-0 w-8 h-8 rounded-full flex items-center justify-center text-xs font-semibold ${isUser ? "bg-primary text-primary-content" : "bg-base-300 text-base-content"}`);
|
|
11457
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$8, isUser ? "U" : "A");
|
|
11458
|
+
return _el$8;
|
|
11459
|
+
})(),
|
|
11460
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(flex_Flex, {
|
|
11461
|
+
direction: "col",
|
|
11462
|
+
align: isUser ? "end" : "start",
|
|
11463
|
+
class: "max-w-[75%]",
|
|
11464
|
+
get children () {
|
|
11465
|
+
return [
|
|
11466
|
+
(()=>{
|
|
11467
|
+
var _el$9 = LiveChatPanel_tmpl$5(), _el$0 = _el$9.firstChild;
|
|
11468
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$9, `px-3 py-2 rounded-2xl ${isUser ? "bg-primary text-primary-content rounded-tr-sm" : "bg-base-200 text-base-content rounded-tl-sm"}`);
|
|
11469
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$0, ()=>message.content);
|
|
11470
|
+
return _el$9;
|
|
11471
|
+
})(),
|
|
11472
|
+
(()=>{
|
|
11473
|
+
var _el$1 = _tmpl$6();
|
|
11474
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$1, ()=>formatTime(message.timestamp));
|
|
11475
|
+
return _el$1;
|
|
11476
|
+
})()
|
|
11477
|
+
];
|
|
11478
|
+
}
|
|
11479
|
+
})
|
|
11480
|
+
];
|
|
11481
|
+
}
|
|
11482
|
+
});
|
|
11483
|
+
}
|
|
11484
|
+
}), null);
|
|
11485
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$6, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11486
|
+
get when () {
|
|
11487
|
+
return 0 === internalMessages().length;
|
|
11488
|
+
},
|
|
11489
|
+
get children () {
|
|
11490
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(flex_Flex, {
|
|
11491
|
+
justify: "center",
|
|
11492
|
+
align: "center",
|
|
11493
|
+
class: "h-full text-base-content/50 text-sm",
|
|
11494
|
+
get children () {
|
|
11495
|
+
return local.emptyMessage ?? "No messages yet. Start a conversation!";
|
|
11496
|
+
}
|
|
11497
|
+
});
|
|
11498
|
+
}
|
|
11499
|
+
}), null);
|
|
11500
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$7, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(flex_Flex, {
|
|
11501
|
+
gap: "sm",
|
|
11502
|
+
get children () {
|
|
11503
|
+
return [
|
|
11504
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(input, {
|
|
11505
|
+
type: "text",
|
|
11506
|
+
get value () {
|
|
11507
|
+
return inputValue();
|
|
11508
|
+
},
|
|
11509
|
+
onInput: (e)=>setInputValue(e.currentTarget.value),
|
|
11510
|
+
onKeyPress: handleKeyPress,
|
|
11511
|
+
get placeholder () {
|
|
11512
|
+
return local.placeholder ?? "Message support...";
|
|
11513
|
+
},
|
|
11514
|
+
get disabled () {
|
|
11515
|
+
return isSending();
|
|
11516
|
+
},
|
|
11517
|
+
class: "flex-1 px-3 py-2 bg-base-200 border border-base-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary disabled:opacity-50 disabled:cursor-not-allowed transition-all"
|
|
11518
|
+
}),
|
|
11519
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(button_Button, {
|
|
11520
|
+
onClick: handleSend,
|
|
11521
|
+
get disabled () {
|
|
11522
|
+
return !inputValue().trim() || isSending();
|
|
11523
|
+
},
|
|
11524
|
+
class: "px-4 py-2",
|
|
11525
|
+
color: "primary",
|
|
11526
|
+
get children () {
|
|
11527
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11528
|
+
get when () {
|
|
11529
|
+
return !isSending();
|
|
11530
|
+
},
|
|
11531
|
+
get fallback () {
|
|
11532
|
+
return _tmpl$7();
|
|
11533
|
+
},
|
|
11534
|
+
get children () {
|
|
11535
|
+
return local.sendLabel ?? "Send";
|
|
11536
|
+
}
|
|
11537
|
+
});
|
|
11538
|
+
}
|
|
11539
|
+
})
|
|
11540
|
+
];
|
|
11541
|
+
}
|
|
11542
|
+
}));
|
|
11543
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$5, "aria-label", local.closeLabel ?? "Close chat"));
|
|
11544
|
+
return _el$;
|
|
11545
|
+
})();
|
|
11546
|
+
};
|
|
11547
|
+
const LiveChatPanel = LiveChatPanel_LiveChatPanel;
|
|
11548
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.delegateEvents)([
|
|
11549
|
+
"click"
|
|
11550
|
+
]);
|
|
11551
|
+
var LiveChatBubble_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<span class="absolute -top-1 -right-1 w-5 h-5 bg-error text-error-content text-xs font-bold rounded-full flex items-center justify-center animate-pulse">'), LiveChatBubble_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<button><span class="pointer-events-none absolute inset-0 rounded-full bg-primary animate-ping opacity-20 group-hover:opacity-0 transition-opacity">'), LiveChatBubble_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5 sm:w-6 sm:h-6"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z">'), LiveChatBubble_tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<svg xmlns=http://www.w3.org/2000/svg class="w-5 h-5 sm:w-6 sm:h-6"fill=none viewBox="0 0 24 24"stroke=currentColor><path stroke-linecap=round stroke-linejoin=round stroke-width=2 d="M6 18L18 6M6 6l12 12">');
|
|
11552
|
+
const LiveChatBubble = (props)=>{
|
|
11553
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
11554
|
+
"position",
|
|
11555
|
+
"aria-label",
|
|
11556
|
+
"unreadCount",
|
|
11557
|
+
"panelProps",
|
|
11558
|
+
"onOpen",
|
|
11559
|
+
"onClose",
|
|
11560
|
+
"children",
|
|
11561
|
+
"class",
|
|
11562
|
+
"className",
|
|
11563
|
+
"style"
|
|
11564
|
+
]);
|
|
11565
|
+
const [isOpen, setIsOpen] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
11566
|
+
const [internalUnread, setInternalUnread] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(local.unreadCount ?? 0);
|
|
11567
|
+
const unreadCount = ()=>local.unreadCount ?? internalUnread();
|
|
11568
|
+
const toggleChat = ()=>{
|
|
11569
|
+
const newState = !isOpen();
|
|
11570
|
+
setIsOpen(newState);
|
|
11571
|
+
if (newState) {
|
|
11572
|
+
setInternalUnread(0);
|
|
11573
|
+
local.onOpen?.();
|
|
11574
|
+
} else local.onClose?.();
|
|
11575
|
+
};
|
|
11576
|
+
const handleClose = ()=>{
|
|
11577
|
+
setIsOpen(false);
|
|
11578
|
+
local.onClose?.();
|
|
11579
|
+
};
|
|
11580
|
+
const positionClasses = ()=>{
|
|
11581
|
+
const pos = local.position ?? "bottom-right";
|
|
11582
|
+
return "bottom-left" === pos ? "left-4" : "right-4";
|
|
11583
|
+
};
|
|
11584
|
+
const buttonClasses = ()=>twMerge("fixed bottom-5 z-50 w-12 h-12 sm:w-14 sm:h-14 bg-primary text-primary-content rounded-full shadow-lg hover:shadow-xl active:scale-95 transition-all duration-200 flex items-center justify-center group", positionClasses(), clsx(local.class, local.className));
|
|
11585
|
+
return [
|
|
11586
|
+
(()=>{
|
|
11587
|
+
var _el$ = LiveChatBubble_tmpl$2(), _el$3 = _el$.firstChild;
|
|
11588
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.spread)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
11589
|
+
onClick: toggleChat,
|
|
11590
|
+
get ["class"] () {
|
|
11591
|
+
return buttonClasses();
|
|
11592
|
+
},
|
|
11593
|
+
get style () {
|
|
11594
|
+
return local.style;
|
|
11595
|
+
},
|
|
11596
|
+
get ["aria-label"] () {
|
|
11597
|
+
return local["aria-label"] ?? "Open chat";
|
|
11598
|
+
}
|
|
11599
|
+
}), false, true);
|
|
11600
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, ()=>local.children ?? (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11601
|
+
get when () {
|
|
11602
|
+
return !isOpen();
|
|
11603
|
+
},
|
|
11604
|
+
get fallback () {
|
|
11605
|
+
return LiveChatBubble_tmpl$4();
|
|
11606
|
+
},
|
|
11607
|
+
get children () {
|
|
11608
|
+
return LiveChatBubble_tmpl$3();
|
|
11609
|
+
}
|
|
11610
|
+
}), _el$3);
|
|
11611
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11612
|
+
get when () {
|
|
11613
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>unreadCount() > 0)() && !isOpen();
|
|
11614
|
+
},
|
|
11615
|
+
get children () {
|
|
11616
|
+
var _el$2 = LiveChatBubble_tmpl$();
|
|
11617
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (()=>{
|
|
11618
|
+
var _c$ = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.memo)(()=>unreadCount() > 9);
|
|
11619
|
+
return ()=>_c$() ? "9+" : unreadCount();
|
|
11620
|
+
})());
|
|
11621
|
+
return _el$2;
|
|
11622
|
+
}
|
|
11623
|
+
}), _el$3);
|
|
11624
|
+
return _el$;
|
|
11625
|
+
})(),
|
|
11626
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11627
|
+
get when () {
|
|
11628
|
+
return isOpen();
|
|
11629
|
+
},
|
|
11630
|
+
get children () {
|
|
11631
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(LiveChatPanel, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(()=>local.panelProps ?? {}, {
|
|
11632
|
+
onClose: handleClose
|
|
11633
|
+
}));
|
|
11634
|
+
}
|
|
11635
|
+
})
|
|
11636
|
+
];
|
|
11637
|
+
};
|
|
11638
|
+
const live_chat_LiveChatBubble = LiveChatBubble;
|
|
11639
|
+
var LanguageSwitcher_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<span>");
|
|
11640
|
+
const LanguageSwitcher = (props)=>{
|
|
11641
|
+
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
11642
|
+
"i18n",
|
|
11643
|
+
"class",
|
|
11644
|
+
"className",
|
|
11645
|
+
"style",
|
|
11646
|
+
"aria-label",
|
|
11647
|
+
"currentLanguageLabel",
|
|
11648
|
+
"optionsLabel",
|
|
11649
|
+
"loadingLabel",
|
|
11650
|
+
"onLanguageChange"
|
|
11651
|
+
]);
|
|
11652
|
+
const currentLanguageName = ()=>local.i18n.languageNames[local.i18n.locale];
|
|
11653
|
+
const isSelected = (lang)=>local.i18n.locale === lang;
|
|
11654
|
+
const handleSelect = async (lang)=>{
|
|
11655
|
+
await local.i18n.setLocale(lang);
|
|
11656
|
+
local.onLanguageChange?.(lang);
|
|
11657
|
+
};
|
|
11658
|
+
const classes = ()=>twMerge("min-w-28", clsx(local.class, local.className));
|
|
11659
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(dropdown, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.mergeProps)(others, {
|
|
11660
|
+
get ["class"] () {
|
|
11661
|
+
return classes();
|
|
11662
|
+
},
|
|
11663
|
+
get style () {
|
|
11664
|
+
return local.style;
|
|
11665
|
+
},
|
|
11666
|
+
role: void 0,
|
|
11667
|
+
get ["aria-label"] () {
|
|
11668
|
+
return local["aria-label"] ?? "Language selector";
|
|
11669
|
+
},
|
|
11670
|
+
"aria-haspopup": "menu",
|
|
11671
|
+
get children () {
|
|
11672
|
+
return [
|
|
11673
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(dropdown.Toggle, {
|
|
11674
|
+
class: "bg-base-100 border border-base-300 rounded px-3 py-2 flex gap-2 justify-between items-center",
|
|
11675
|
+
get ["aria-label"] () {
|
|
11676
|
+
return `${local.currentLanguageLabel ?? "Current language"}: ${currentLanguageName()}`;
|
|
11677
|
+
},
|
|
11678
|
+
get children () {
|
|
11679
|
+
return [
|
|
11680
|
+
(()=>{
|
|
11681
|
+
var _el$ = LanguageSwitcher_tmpl$();
|
|
11682
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, currentLanguageName);
|
|
11683
|
+
return _el$;
|
|
11684
|
+
})(),
|
|
11685
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
11686
|
+
get when () {
|
|
11687
|
+
return !local.i18n.isLoading;
|
|
11688
|
+
},
|
|
11689
|
+
get fallback () {
|
|
11690
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(icon_Icon, {
|
|
11691
|
+
name: "icon-[mdi--loading]",
|
|
11692
|
+
class: "animate-spin",
|
|
11693
|
+
width: 16,
|
|
11694
|
+
height: 16,
|
|
11695
|
+
get ["aria-label"] () {
|
|
11696
|
+
return local.loadingLabel ?? "Loading language";
|
|
11697
|
+
}
|
|
11698
|
+
});
|
|
11699
|
+
},
|
|
11700
|
+
get children () {
|
|
11701
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(icon_Icon, {
|
|
11702
|
+
name: "icon-[mdi--chevron-down]",
|
|
11703
|
+
width: 16,
|
|
11704
|
+
height: 16,
|
|
11705
|
+
"aria-hidden": "true"
|
|
11706
|
+
});
|
|
11707
|
+
}
|
|
11708
|
+
})
|
|
11709
|
+
];
|
|
11710
|
+
}
|
|
11711
|
+
}),
|
|
11712
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(dropdown.Menu, {
|
|
11713
|
+
class: "w-full",
|
|
11714
|
+
get ["aria-label"] () {
|
|
11715
|
+
return local.optionsLabel ?? "Language options";
|
|
11716
|
+
},
|
|
11717
|
+
get children () {
|
|
11718
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.For, {
|
|
11719
|
+
get each () {
|
|
11720
|
+
return local.i18n.languages;
|
|
11721
|
+
},
|
|
11722
|
+
children: (lang)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(dropdown.Item, {
|
|
11723
|
+
onClick: ()=>handleSelect(lang.code),
|
|
11724
|
+
get ["class"] () {
|
|
11725
|
+
return isSelected(lang.code) ? "bg-base-200" : "";
|
|
11726
|
+
},
|
|
11727
|
+
get ["aria-current"] () {
|
|
11728
|
+
return isSelected(lang.code) ? "true" : void 0;
|
|
11729
|
+
},
|
|
11730
|
+
get children () {
|
|
11731
|
+
return lang.name;
|
|
11732
|
+
}
|
|
11733
|
+
})
|
|
11734
|
+
});
|
|
11735
|
+
}
|
|
11736
|
+
})
|
|
11737
|
+
];
|
|
11738
|
+
}
|
|
11739
|
+
}));
|
|
11740
|
+
};
|
|
11741
|
+
const language_switcher_LanguageSwitcher = LanguageSwitcher;
|
|
11742
|
+
function getNestedValue(obj, path) {
|
|
11743
|
+
const keys = path.split(".");
|
|
11744
|
+
let value = obj;
|
|
11745
|
+
for (const key of keys){
|
|
11746
|
+
value = value?.[key];
|
|
11747
|
+
if (void 0 === value) return path;
|
|
11748
|
+
}
|
|
11749
|
+
return "string" == typeof value ? value : path;
|
|
11750
|
+
}
|
|
11751
|
+
function createI18n(options) {
|
|
11752
|
+
const { languages, defaultLanguage = languages[0]?.code ?? "en", storageKey, loadTranslations, initialTranslations = {} } = options;
|
|
11753
|
+
const supportedCodes = languages.map((l)=>l.code);
|
|
11754
|
+
const languageNames = languages.reduce((acc, lang)=>({
|
|
11755
|
+
...acc,
|
|
11756
|
+
[lang.code]: lang.name
|
|
11757
|
+
}), {});
|
|
11758
|
+
const [localeSignal, setLocaleSignal] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(defaultLanguage);
|
|
11759
|
+
const [translations, setTranslations] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(initialTranslations);
|
|
11760
|
+
const [isLoadingSignal, setIsLoading] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
11761
|
+
const t = (key)=>getNestedValue(translations(), key);
|
|
11762
|
+
const setLocale = async (lang)=>{
|
|
11763
|
+
if (!supportedCodes.includes(lang)) lang = defaultLanguage;
|
|
11764
|
+
if (lang === localeSignal() && Object.keys(translations()).length > 0) return;
|
|
11765
|
+
setIsLoading(true);
|
|
11766
|
+
try {
|
|
11767
|
+
const minDelay = new Promise((resolve)=>setTimeout(resolve, 100));
|
|
11768
|
+
let data;
|
|
11769
|
+
await minDelay;
|
|
11770
|
+
data = lang === defaultLanguage && Object.keys(initialTranslations).length > 0 ? initialTranslations : loadTranslations ? await loadTranslations(lang) : initialTranslations;
|
|
11771
|
+
setTranslations(data);
|
|
11772
|
+
setLocaleSignal(lang);
|
|
11773
|
+
if ("undefined" != typeof window) localStorage.setItem(storageKey, lang);
|
|
11774
|
+
} finally{
|
|
11775
|
+
setIsLoading(false);
|
|
11776
|
+
}
|
|
11777
|
+
};
|
|
11778
|
+
const init = async ()=>{
|
|
11779
|
+
if ("undefined" == typeof window) return;
|
|
11780
|
+
const urlParams = new URLSearchParams(globalThis.location.search);
|
|
11781
|
+
const urlLang = urlParams.get("lang");
|
|
11782
|
+
const saved = localStorage.getItem(storageKey);
|
|
11783
|
+
const browserLang = navigator.language.split("-")[0];
|
|
11784
|
+
let detected;
|
|
11785
|
+
if (urlLang && supportedCodes.includes(urlLang)) {
|
|
11786
|
+
detected = urlLang;
|
|
11787
|
+
urlParams.delete("lang");
|
|
11788
|
+
const newUrl = urlParams.toString() ? `${globalThis.location.pathname}?${urlParams.toString()}` : globalThis.location.pathname;
|
|
11789
|
+
globalThis.history.replaceState({}, "", newUrl);
|
|
11790
|
+
} else detected = saved && supportedCodes.includes(saved) ? saved : supportedCodes.includes(browserLang) ? browserLang : defaultLanguage;
|
|
11791
|
+
await setLocale(detected);
|
|
11792
|
+
};
|
|
11793
|
+
return {
|
|
11794
|
+
get locale () {
|
|
11795
|
+
return localeSignal();
|
|
11796
|
+
},
|
|
11797
|
+
get isLoading () {
|
|
11798
|
+
return isLoadingSignal();
|
|
11799
|
+
},
|
|
11800
|
+
t,
|
|
11801
|
+
setLocale,
|
|
11802
|
+
init,
|
|
11803
|
+
languages,
|
|
11804
|
+
languageNames,
|
|
11805
|
+
supportedCodes
|
|
11806
|
+
};
|
|
11807
|
+
}
|
|
11808
|
+
const I18nContext = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createContext)();
|
|
11809
|
+
function useI18n() {
|
|
11810
|
+
const context = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.useContext)(I18nContext);
|
|
11811
|
+
if (!context) throw new Error("useI18n must be used within an I18nProvider");
|
|
11812
|
+
return context.i18n;
|
|
11813
|
+
}
|
|
11814
|
+
const I18nProvider = (props)=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(I18nContext.Provider, {
|
|
11815
|
+
get value () {
|
|
11816
|
+
return {
|
|
11817
|
+
i18n: props.i18n
|
|
11818
|
+
};
|
|
11819
|
+
},
|
|
11820
|
+
get children () {
|
|
11821
|
+
return props.children;
|
|
11822
|
+
}
|
|
11823
|
+
});
|
|
11258
11824
|
var Mask_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<img>");
|
|
11259
11825
|
function maskClassName({ className, variant } = {}) {
|
|
11260
11826
|
return twMerge("mask", className, clsx({
|
|
@@ -13107,7 +13673,7 @@ const steps_Steps = Object.assign(Steps, {
|
|
|
13107
13673
|
Step: steps_Step
|
|
13108
13674
|
});
|
|
13109
13675
|
const steps = steps_Steps;
|
|
13110
|
-
var SvgBackground_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><ellipse></svg>", false, true, false), SvgBackground_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle></svg>", false, true, false), SvgBackground_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=0 cy=0 r=100 opacity=0.7></svg>", false, true, false), SvgBackground_tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=400 cy=0 r=120></svg>", false, true, false), SvgBackground_tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=0 cy=400 r=100 opacity=0.7></svg>", false, true, false),
|
|
13676
|
+
var SvgBackground_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><ellipse></svg>", false, true, false), SvgBackground_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle></svg>", false, true, false), SvgBackground_tmpl$3 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=0 cy=0 r=100 opacity=0.7></svg>", false, true, false), SvgBackground_tmpl$4 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=400 cy=0 r=120></svg>", false, true, false), SvgBackground_tmpl$5 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=0 cy=400 r=100 opacity=0.7></svg>", false, true, false), SvgBackground_tmpl$6 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=400 cy=400 r=120></svg>", false, true, false), SvgBackground_tmpl$7 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=0 cy=200 r=70 opacity=0.6></svg>", false, true, false), _tmpl$8 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=200 cy=0 r=100></svg>", false, true, false), _tmpl$9 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=400 cy=200 r=100></svg>", false, true, false), _tmpl$0 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<svg><circle cx=200 cy=400 r=100></svg>", false, true, false), _tmpl$1 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div><div><svg viewBox="0 0 400 400"xmlns=http://www.w3.org/2000/svg><rect width=400 height=400></rect></svg></div><canvas></canvas><div class="relative z-10 h-full w-full">'), _tmpl$10 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div class="absolute inset-0 z-5">');
|
|
13111
13677
|
function SvgBackground_hexToRgb(hex) {
|
|
13112
13678
|
hex = hex.replace(/^#/, "");
|
|
13113
13679
|
const bigint = Number.parseInt(hex, 16);
|
|
@@ -13267,12 +13833,12 @@ function SvgBackground(props) {
|
|
|
13267
13833
|
return _el$6;
|
|
13268
13834
|
})(),
|
|
13269
13835
|
(()=>{
|
|
13270
|
-
var _el$7 =
|
|
13836
|
+
var _el$7 = SvgBackground_tmpl$6();
|
|
13271
13837
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$7, "fill", colorEnd);
|
|
13272
13838
|
return _el$7;
|
|
13273
13839
|
})(),
|
|
13274
13840
|
(()=>{
|
|
13275
|
-
var _el$8 =
|
|
13841
|
+
var _el$8 = SvgBackground_tmpl$7();
|
|
13276
13842
|
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)(()=>(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.setAttribute)(_el$8, "fill", getIntermediateColor(0.65)));
|
|
13277
13843
|
return _el$8;
|
|
13278
13844
|
})(),
|
|
@@ -15008,6 +15574,585 @@ const Textarea = (props)=>{
|
|
|
15008
15574
|
})();
|
|
15009
15575
|
};
|
|
15010
15576
|
const textarea_Textarea = Textarea;
|
|
15577
|
+
let cspAllowsInlineStyles = null;
|
|
15578
|
+
const checkCspAllowsInlineStyles = ()=>{
|
|
15579
|
+
if (null !== cspAllowsInlineStyles) return cspAllowsInlineStyles;
|
|
15580
|
+
if ("undefined" == typeof window) return true;
|
|
15581
|
+
try {
|
|
15582
|
+
const testEl = document.createElement("div");
|
|
15583
|
+
testEl.style.setProperty("--csp-test", "1");
|
|
15584
|
+
document.body.appendChild(testEl);
|
|
15585
|
+
const computed = getComputedStyle(testEl).getPropertyValue("--csp-test");
|
|
15586
|
+
document.body.removeChild(testEl);
|
|
15587
|
+
cspAllowsInlineStyles = "1" === computed;
|
|
15588
|
+
} catch {
|
|
15589
|
+
cspAllowsInlineStyles = false;
|
|
15590
|
+
}
|
|
15591
|
+
if (!cspAllowsInlineStyles) console.info("[hueShift] CSP blocks inline styles - hue customization disabled");
|
|
15592
|
+
return cspAllowsInlineStyles;
|
|
15593
|
+
};
|
|
15594
|
+
const MIN_CHROMA_SCALE = 0.3;
|
|
15595
|
+
function hslHueToOklchHue(hslHue) {
|
|
15596
|
+
const h = (hslHue % 360 + 360) % 360;
|
|
15597
|
+
const controlPoints = [
|
|
15598
|
+
[
|
|
15599
|
+
0,
|
|
15600
|
+
29
|
|
15601
|
+
],
|
|
15602
|
+
[
|
|
15603
|
+
30,
|
|
15604
|
+
55
|
|
15605
|
+
],
|
|
15606
|
+
[
|
|
15607
|
+
60,
|
|
15608
|
+
100
|
|
15609
|
+
],
|
|
15610
|
+
[
|
|
15611
|
+
120,
|
|
15612
|
+
145
|
|
15613
|
+
],
|
|
15614
|
+
[
|
|
15615
|
+
180,
|
|
15616
|
+
195
|
|
15617
|
+
],
|
|
15618
|
+
[
|
|
15619
|
+
240,
|
|
15620
|
+
265
|
|
15621
|
+
],
|
|
15622
|
+
[
|
|
15623
|
+
300,
|
|
15624
|
+
330
|
|
15625
|
+
],
|
|
15626
|
+
[
|
|
15627
|
+
360,
|
|
15628
|
+
389
|
|
15629
|
+
]
|
|
15630
|
+
];
|
|
15631
|
+
for(let i = 0; i < controlPoints.length - 1; i++){
|
|
15632
|
+
const [h1, o1] = controlPoints[i];
|
|
15633
|
+
const [h2, o2] = controlPoints[i + 1];
|
|
15634
|
+
if (h >= h1 && h <= h2) {
|
|
15635
|
+
const t = (h - h1) / (h2 - h1);
|
|
15636
|
+
const oklchHue = o1 + t * (o2 - o1);
|
|
15637
|
+
return (oklchHue % 360 + 360) % 360;
|
|
15638
|
+
}
|
|
15639
|
+
}
|
|
15640
|
+
return h;
|
|
15641
|
+
}
|
|
15642
|
+
const PRIMARY_SETTINGS = {
|
|
15643
|
+
light: {
|
|
15644
|
+
"--color-primary": {
|
|
15645
|
+
l: 45,
|
|
15646
|
+
c: 0.2
|
|
15647
|
+
},
|
|
15648
|
+
"--color-primary-content": {
|
|
15649
|
+
l: 98,
|
|
15650
|
+
c: 0.02
|
|
15651
|
+
}
|
|
15652
|
+
},
|
|
15653
|
+
dark: {
|
|
15654
|
+
"--color-primary": {
|
|
15655
|
+
l: 58,
|
|
15656
|
+
c: 0.233
|
|
15657
|
+
},
|
|
15658
|
+
"--color-primary-content": {
|
|
15659
|
+
l: 96,
|
|
15660
|
+
c: 0.018
|
|
15661
|
+
}
|
|
15662
|
+
}
|
|
15663
|
+
};
|
|
15664
|
+
const HARMONY_OFFSETS = {
|
|
15665
|
+
secondary: 108,
|
|
15666
|
+
accent: -94
|
|
15667
|
+
};
|
|
15668
|
+
const HARMONY_SETTINGS = {
|
|
15669
|
+
light: {
|
|
15670
|
+
"--color-secondary": {
|
|
15671
|
+
l: 68,
|
|
15672
|
+
c: 0.162
|
|
15673
|
+
},
|
|
15674
|
+
"--color-secondary-content": {
|
|
15675
|
+
l: 98,
|
|
15676
|
+
c: 0.026
|
|
15677
|
+
},
|
|
15678
|
+
"--color-accent": {
|
|
15679
|
+
l: 60,
|
|
15680
|
+
c: 0.118
|
|
15681
|
+
},
|
|
15682
|
+
"--color-accent-content": {
|
|
15683
|
+
l: 98,
|
|
15684
|
+
c: 0.014
|
|
15685
|
+
}
|
|
15686
|
+
},
|
|
15687
|
+
dark: {
|
|
15688
|
+
"--color-secondary": {
|
|
15689
|
+
l: 63,
|
|
15690
|
+
c: 0.237
|
|
15691
|
+
},
|
|
15692
|
+
"--color-secondary-content": {
|
|
15693
|
+
l: 97,
|
|
15694
|
+
c: 0.013
|
|
15695
|
+
},
|
|
15696
|
+
"--color-accent": {
|
|
15697
|
+
l: 70,
|
|
15698
|
+
c: 0.14
|
|
15699
|
+
},
|
|
15700
|
+
"--color-accent-content": {
|
|
15701
|
+
l: 98,
|
|
15702
|
+
c: 0.014
|
|
15703
|
+
}
|
|
15704
|
+
}
|
|
15705
|
+
};
|
|
15706
|
+
const SEMANTIC_BASE_HUES = {
|
|
15707
|
+
success: 140,
|
|
15708
|
+
warning: 55,
|
|
15709
|
+
error: 10,
|
|
15710
|
+
info: 220
|
|
15711
|
+
};
|
|
15712
|
+
const SEMANTIC_TINT_FACTOR = 0.12;
|
|
15713
|
+
const SEMANTIC_SETTINGS = {
|
|
15714
|
+
light: {
|
|
15715
|
+
"--color-success": {
|
|
15716
|
+
l: 72,
|
|
15717
|
+
c: 0.219
|
|
15718
|
+
},
|
|
15719
|
+
"--color-success-content": {
|
|
15720
|
+
l: 98,
|
|
15721
|
+
c: 0.018
|
|
15722
|
+
},
|
|
15723
|
+
"--color-warning": {
|
|
15724
|
+
l: 70,
|
|
15725
|
+
c: 0.213
|
|
15726
|
+
},
|
|
15727
|
+
"--color-warning-content": {
|
|
15728
|
+
l: 98,
|
|
15729
|
+
c: 0.016
|
|
15730
|
+
},
|
|
15731
|
+
"--color-error": {
|
|
15732
|
+
l: 65,
|
|
15733
|
+
c: 0.241
|
|
15734
|
+
},
|
|
15735
|
+
"--color-error-content": {
|
|
15736
|
+
l: 97,
|
|
15737
|
+
c: 0.014
|
|
15738
|
+
},
|
|
15739
|
+
"--color-info": {
|
|
15740
|
+
l: 68,
|
|
15741
|
+
c: 0.169
|
|
15742
|
+
},
|
|
15743
|
+
"--color-info-content": {
|
|
15744
|
+
l: 97,
|
|
15745
|
+
c: 0.013
|
|
15746
|
+
}
|
|
15747
|
+
},
|
|
15748
|
+
dark: {
|
|
15749
|
+
"--color-success": {
|
|
15750
|
+
l: 76,
|
|
15751
|
+
c: 0.233
|
|
15752
|
+
},
|
|
15753
|
+
"--color-success-content": {
|
|
15754
|
+
l: 98,
|
|
15755
|
+
c: 0.031
|
|
15756
|
+
},
|
|
15757
|
+
"--color-warning": {
|
|
15758
|
+
l: 79,
|
|
15759
|
+
c: 0.184
|
|
15760
|
+
},
|
|
15761
|
+
"--color-warning-content": {
|
|
15762
|
+
l: 98,
|
|
15763
|
+
c: 0.026
|
|
15764
|
+
},
|
|
15765
|
+
"--color-error": {
|
|
15766
|
+
l: 64,
|
|
15767
|
+
c: 0.246
|
|
15768
|
+
},
|
|
15769
|
+
"--color-error-content": {
|
|
15770
|
+
l: 96,
|
|
15771
|
+
c: 0.015
|
|
15772
|
+
},
|
|
15773
|
+
"--color-info": {
|
|
15774
|
+
l: 71,
|
|
15775
|
+
c: 0.143
|
|
15776
|
+
},
|
|
15777
|
+
"--color-info-content": {
|
|
15778
|
+
l: 98,
|
|
15779
|
+
c: 0.019
|
|
15780
|
+
}
|
|
15781
|
+
}
|
|
15782
|
+
};
|
|
15783
|
+
const BASE_COLORS = {
|
|
15784
|
+
light: {
|
|
15785
|
+
"--color-base-100": {
|
|
15786
|
+
l: 98,
|
|
15787
|
+
c: 0.001,
|
|
15788
|
+
h: 106.423
|
|
15789
|
+
},
|
|
15790
|
+
"--color-base-200": {
|
|
15791
|
+
l: 97,
|
|
15792
|
+
c: 0.001,
|
|
15793
|
+
h: 106.424
|
|
15794
|
+
},
|
|
15795
|
+
"--color-base-300": {
|
|
15796
|
+
l: 92,
|
|
15797
|
+
c: 0.003,
|
|
15798
|
+
h: 48.717
|
|
15799
|
+
}
|
|
15800
|
+
},
|
|
15801
|
+
dark: {
|
|
15802
|
+
"--color-base-100": {
|
|
15803
|
+
l: 13,
|
|
15804
|
+
c: 0.028,
|
|
15805
|
+
h: 261.692
|
|
15806
|
+
},
|
|
15807
|
+
"--color-base-200": {
|
|
15808
|
+
l: 21,
|
|
15809
|
+
c: 0.034,
|
|
15810
|
+
h: 264.665
|
|
15811
|
+
},
|
|
15812
|
+
"--color-base-300": {
|
|
15813
|
+
l: 27,
|
|
15814
|
+
c: 0.033,
|
|
15815
|
+
h: 256.848
|
|
15816
|
+
}
|
|
15817
|
+
}
|
|
15818
|
+
};
|
|
15819
|
+
const BASE_CHROMA_BOOST = 0.025;
|
|
15820
|
+
const GRADIENT_COLORS = {
|
|
15821
|
+
light: {
|
|
15822
|
+
"--gradient-start": {
|
|
15823
|
+
h: 347,
|
|
15824
|
+
s: 47,
|
|
15825
|
+
l: 93
|
|
15826
|
+
},
|
|
15827
|
+
"--gradient-end": {
|
|
15828
|
+
h: 199,
|
|
15829
|
+
s: 45,
|
|
15830
|
+
l: 93
|
|
15831
|
+
}
|
|
15832
|
+
},
|
|
15833
|
+
dark: {
|
|
15834
|
+
"--gradient-start": {
|
|
15835
|
+
h: 261,
|
|
15836
|
+
s: 38,
|
|
15837
|
+
l: 15
|
|
15838
|
+
},
|
|
15839
|
+
"--gradient-end": {
|
|
15840
|
+
h: 220,
|
|
15841
|
+
s: 54,
|
|
15842
|
+
l: 8
|
|
15843
|
+
}
|
|
15844
|
+
}
|
|
15845
|
+
};
|
|
15846
|
+
function toOklch(l, c, h) {
|
|
15847
|
+
const normalizedH = (h % 360 + 360) % 360;
|
|
15848
|
+
return `oklch(${l}% ${c} ${normalizedH})`;
|
|
15849
|
+
}
|
|
15850
|
+
function hslToHex(h, s, l) {
|
|
15851
|
+
const normalizedH = (h % 360 + 360) % 360;
|
|
15852
|
+
const sNorm = s / 100;
|
|
15853
|
+
const lNorm = l / 100;
|
|
15854
|
+
const c = (1 - Math.abs(2 * lNorm - 1)) * sNorm;
|
|
15855
|
+
const x = c * (1 - Math.abs(normalizedH / 60 % 2 - 1));
|
|
15856
|
+
const m = lNorm - c / 2;
|
|
15857
|
+
let r = 0, g = 0, b = 0;
|
|
15858
|
+
if (normalizedH < 60) {
|
|
15859
|
+
r = c;
|
|
15860
|
+
g = x;
|
|
15861
|
+
b = 0;
|
|
15862
|
+
} else if (normalizedH < 120) {
|
|
15863
|
+
r = x;
|
|
15864
|
+
g = c;
|
|
15865
|
+
b = 0;
|
|
15866
|
+
} else if (normalizedH < 180) {
|
|
15867
|
+
r = 0;
|
|
15868
|
+
g = c;
|
|
15869
|
+
b = x;
|
|
15870
|
+
} else if (normalizedH < 240) {
|
|
15871
|
+
r = 0;
|
|
15872
|
+
g = x;
|
|
15873
|
+
b = c;
|
|
15874
|
+
} else if (normalizedH < 300) {
|
|
15875
|
+
r = x;
|
|
15876
|
+
g = 0;
|
|
15877
|
+
b = c;
|
|
15878
|
+
} else {
|
|
15879
|
+
r = c;
|
|
15880
|
+
g = 0;
|
|
15881
|
+
b = x;
|
|
15882
|
+
}
|
|
15883
|
+
const toHex = (n)=>{
|
|
15884
|
+
const hex = Math.round((n + m) * 255).toString(16);
|
|
15885
|
+
return 1 === hex.length ? "0" + hex : hex;
|
|
15886
|
+
};
|
|
15887
|
+
return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
|
|
15888
|
+
}
|
|
15889
|
+
function getTintedHue(baseHue, targetHue) {
|
|
15890
|
+
let diff = targetHue - baseHue;
|
|
15891
|
+
if (diff > 180) diff -= 360;
|
|
15892
|
+
if (diff < -180) diff += 360;
|
|
15893
|
+
return baseHue + diff * SEMANTIC_TINT_FACTOR;
|
|
15894
|
+
}
|
|
15895
|
+
function getResolvedTheme() {
|
|
15896
|
+
const dataTheme = document.documentElement.getAttribute("data-theme");
|
|
15897
|
+
if ("dark" === dataTheme) return "dark";
|
|
15898
|
+
if ("light" === dataTheme) return "light";
|
|
15899
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
15900
|
+
}
|
|
15901
|
+
function applyHueShift(targetHue, saturation = 100) {
|
|
15902
|
+
if (!checkCspAllowsInlineStyles()) return;
|
|
15903
|
+
const root = document.documentElement;
|
|
15904
|
+
const oklchHue = hslHueToOklchHue(targetHue);
|
|
15905
|
+
const chromaScale = MIN_CHROMA_SCALE + saturation / 100 * (1 - MIN_CHROMA_SCALE);
|
|
15906
|
+
const resolvedTheme = getResolvedTheme();
|
|
15907
|
+
const primarySettings = PRIMARY_SETTINGS[resolvedTheme];
|
|
15908
|
+
for (const [varName, settings] of Object.entries(primarySettings)){
|
|
15909
|
+
const scaledChroma = settings.c * chromaScale;
|
|
15910
|
+
root.style.setProperty(varName, toOklch(settings.l, scaledChroma, oklchHue));
|
|
15911
|
+
}
|
|
15912
|
+
const harmonySettings = HARMONY_SETTINGS[resolvedTheme];
|
|
15913
|
+
for (const [varName, settings] of Object.entries(harmonySettings)){
|
|
15914
|
+
let hue = oklchHue;
|
|
15915
|
+
if (varName.includes("secondary")) hue = oklchHue + HARMONY_OFFSETS.secondary;
|
|
15916
|
+
else if (varName.includes("accent")) hue = oklchHue + HARMONY_OFFSETS.accent;
|
|
15917
|
+
const scaledChroma = settings.c * chromaScale;
|
|
15918
|
+
root.style.setProperty(varName, toOklch(settings.l, scaledChroma, hue));
|
|
15919
|
+
}
|
|
15920
|
+
const semanticSettings = SEMANTIC_SETTINGS[resolvedTheme];
|
|
15921
|
+
for (const [varName, settings] of Object.entries(semanticSettings)){
|
|
15922
|
+
let baseHue = 0;
|
|
15923
|
+
if (varName.includes("success")) baseHue = SEMANTIC_BASE_HUES.success;
|
|
15924
|
+
else if (varName.includes("warning")) baseHue = SEMANTIC_BASE_HUES.warning;
|
|
15925
|
+
else if (varName.includes("error")) baseHue = SEMANTIC_BASE_HUES.error;
|
|
15926
|
+
else if (varName.includes("info")) baseHue = SEMANTIC_BASE_HUES.info;
|
|
15927
|
+
const tintedHue = getTintedHue(baseHue, oklchHue);
|
|
15928
|
+
const semanticChromaScale = MIN_CHROMA_SCALE + (1 - MIN_CHROMA_SCALE) * Math.sqrt(saturation / 100);
|
|
15929
|
+
const scaledChroma = settings.c * semanticChromaScale;
|
|
15930
|
+
root.style.setProperty(varName, toOklch(settings.l, scaledChroma, tintedHue));
|
|
15931
|
+
}
|
|
15932
|
+
const gradients = GRADIENT_COLORS[resolvedTheme];
|
|
15933
|
+
for (const [varName, color] of Object.entries(gradients)){
|
|
15934
|
+
const scaledSat = color.s * (saturation / 100);
|
|
15935
|
+
const shifted = hslToHex(targetHue + (varName.includes("end") ? 40 : 0), scaledSat, color.l);
|
|
15936
|
+
root.style.setProperty(varName, shifted);
|
|
15937
|
+
}
|
|
15938
|
+
const baseColors = BASE_COLORS[resolvedTheme];
|
|
15939
|
+
for (const [varName, color] of Object.entries(baseColors)){
|
|
15940
|
+
const baseChroma = Math.max(color.c, BASE_CHROMA_BOOST);
|
|
15941
|
+
const scaledChroma = baseChroma * chromaScale;
|
|
15942
|
+
const shifted = toOklch(color.l, scaledChroma, oklchHue);
|
|
15943
|
+
root.style.setProperty(varName, shifted);
|
|
15944
|
+
}
|
|
15945
|
+
}
|
|
15946
|
+
function resetHueShift() {
|
|
15947
|
+
if (!checkCspAllowsInlineStyles()) return;
|
|
15948
|
+
const root = document.documentElement;
|
|
15949
|
+
for (const varName of Object.keys(PRIMARY_SETTINGS.light))root.style.removeProperty(varName);
|
|
15950
|
+
for (const varName of Object.keys(HARMONY_SETTINGS.light))root.style.removeProperty(varName);
|
|
15951
|
+
for (const varName of Object.keys(SEMANTIC_SETTINGS.light))root.style.removeProperty(varName);
|
|
15952
|
+
for (const varName of Object.keys(GRADIENT_COLORS.light))root.style.removeProperty(varName);
|
|
15953
|
+
for (const varName of Object.keys(BASE_COLORS.light))root.style.removeProperty(varName);
|
|
15954
|
+
}
|
|
15955
|
+
function createHueShiftStore(storagePrefix) {
|
|
15956
|
+
const STORAGE_KEY = `${storagePrefix}_hue_shift`;
|
|
15957
|
+
const STORAGE_KEY_SAT = `${storagePrefix}_hue_saturation`;
|
|
15958
|
+
const getInitialHueShift = ()=>{
|
|
15959
|
+
if ("undefined" == typeof window) return null;
|
|
15960
|
+
const saved = localStorage.getItem(STORAGE_KEY);
|
|
15961
|
+
if (null !== saved) {
|
|
15962
|
+
const parsed = parseFloat(saved);
|
|
15963
|
+
if (!isNaN(parsed)) return parsed;
|
|
15964
|
+
}
|
|
15965
|
+
return null;
|
|
15966
|
+
};
|
|
15967
|
+
const getInitialSaturation = ()=>{
|
|
15968
|
+
if ("undefined" == typeof window) return 100;
|
|
15969
|
+
const saved = localStorage.getItem(STORAGE_KEY_SAT);
|
|
15970
|
+
if (null !== saved) {
|
|
15971
|
+
const parsed = parseFloat(saved);
|
|
15972
|
+
if (!isNaN(parsed)) return parsed;
|
|
15973
|
+
}
|
|
15974
|
+
return 100;
|
|
15975
|
+
};
|
|
15976
|
+
const [hueShift, setHueShiftInternal] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(getInitialHueShift());
|
|
15977
|
+
const [hueSaturation, setHueSaturationInternal] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(getInitialSaturation());
|
|
15978
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
15979
|
+
const shift = hueShift();
|
|
15980
|
+
const sat = hueSaturation();
|
|
15981
|
+
if ("undefined" == typeof window) return;
|
|
15982
|
+
if (null === shift) {
|
|
15983
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
15984
|
+
localStorage.removeItem(STORAGE_KEY_SAT);
|
|
15985
|
+
resetHueShift();
|
|
15986
|
+
} else {
|
|
15987
|
+
localStorage.setItem(STORAGE_KEY, String(shift));
|
|
15988
|
+
localStorage.setItem(STORAGE_KEY_SAT, String(sat));
|
|
15989
|
+
applyHueShift(shift, sat);
|
|
15990
|
+
}
|
|
15991
|
+
});
|
|
15992
|
+
if ("undefined" != typeof window) {
|
|
15993
|
+
const observer = new MutationObserver((mutations)=>{
|
|
15994
|
+
for (const mutation of mutations)if ("attributes" === mutation.type && "data-theme" === mutation.attributeName) {
|
|
15995
|
+
const shift = hueShift();
|
|
15996
|
+
const sat = hueSaturation();
|
|
15997
|
+
if (null !== shift) requestAnimationFrame(()=>applyHueShift(shift, sat));
|
|
15998
|
+
}
|
|
15999
|
+
});
|
|
16000
|
+
observer.observe(document.documentElement, {
|
|
16001
|
+
attributes: true,
|
|
16002
|
+
attributeFilter: [
|
|
16003
|
+
"data-theme"
|
|
16004
|
+
]
|
|
16005
|
+
});
|
|
16006
|
+
}
|
|
16007
|
+
const setHueShift = (hue, saturation = 100)=>{
|
|
16008
|
+
setHueShiftInternal(hue);
|
|
16009
|
+
setHueSaturationInternal(saturation);
|
|
16010
|
+
};
|
|
16011
|
+
return {
|
|
16012
|
+
hueShift,
|
|
16013
|
+
hueSaturation,
|
|
16014
|
+
setHueShift,
|
|
16015
|
+
isAvailable: ()=>checkCspAllowsInlineStyles()
|
|
16016
|
+
};
|
|
16017
|
+
}
|
|
16018
|
+
let defaultStore = null;
|
|
16019
|
+
function getDefaultHueShiftStore() {
|
|
16020
|
+
if (!defaultStore) defaultStore = createHueShiftStore("theme");
|
|
16021
|
+
return defaultStore;
|
|
16022
|
+
}
|
|
16023
|
+
var ThemeColorPicker_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)('<div class="absolute right-0 mt-2 p-4 bg-base-100 rounded-lg shadow-xl border border-base-300 z-50">'), ThemeColorPicker_tmpl$2 = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<div>");
|
|
16024
|
+
function hueToColorValue(hue, sat) {
|
|
16025
|
+
const h = hue ?? 0;
|
|
16026
|
+
const s = null === hue ? 0 : sat;
|
|
16027
|
+
return {
|
|
16028
|
+
rgb: {
|
|
16029
|
+
r: 255,
|
|
16030
|
+
g: 255,
|
|
16031
|
+
b: 255,
|
|
16032
|
+
a: 1
|
|
16033
|
+
},
|
|
16034
|
+
hsl: {
|
|
16035
|
+
h,
|
|
16036
|
+
s,
|
|
16037
|
+
l: 50,
|
|
16038
|
+
a: 1
|
|
16039
|
+
},
|
|
16040
|
+
hex: "#ffffff"
|
|
16041
|
+
};
|
|
16042
|
+
}
|
|
16043
|
+
const ThemeColorPicker_ThemeColorPicker = (props)=>{
|
|
16044
|
+
const [isOpen, setIsOpen] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(false);
|
|
16045
|
+
const [featureAvailable, setFeatureAvailable] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createSignal)(true);
|
|
16046
|
+
let containerRef;
|
|
16047
|
+
const store = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>createHueShiftStore(props.storagePrefix ?? "theme"));
|
|
16048
|
+
const colorValue = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createMemo)(()=>hueToColorValue(store().hueShift(), store().hueSaturation()));
|
|
16049
|
+
const handleColorChange = (color)=>{
|
|
16050
|
+
const hue = color.hsl.h;
|
|
16051
|
+
const saturation = color.hsl.s;
|
|
16052
|
+
if (saturation < 10 && color.hsl.l > 90) {
|
|
16053
|
+
store().setHueShift(null);
|
|
16054
|
+
props.onColorChange?.(null, 100);
|
|
16055
|
+
} else {
|
|
16056
|
+
store().setHueShift(hue, saturation);
|
|
16057
|
+
props.onColorChange?.(hue, saturation);
|
|
16058
|
+
}
|
|
16059
|
+
};
|
|
16060
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
16061
|
+
if (!isOpen()) return;
|
|
16062
|
+
const handleClickOutside = (e)=>{
|
|
16063
|
+
if (containerRef && !containerRef.contains(e.target)) setIsOpen(false);
|
|
16064
|
+
};
|
|
16065
|
+
const timer = setTimeout(()=>{
|
|
16066
|
+
document.addEventListener("click", handleClickOutside);
|
|
16067
|
+
}, 0);
|
|
16068
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>{
|
|
16069
|
+
clearTimeout(timer);
|
|
16070
|
+
document.removeEventListener("click", handleClickOutside);
|
|
16071
|
+
});
|
|
16072
|
+
});
|
|
16073
|
+
const handleKeyDown = (e)=>{
|
|
16074
|
+
if ("Escape" === e.key && isOpen()) setIsOpen(false);
|
|
16075
|
+
};
|
|
16076
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.createEffect)(()=>{
|
|
16077
|
+
const timer = setTimeout(()=>{
|
|
16078
|
+
setFeatureAvailable(store().isAvailable());
|
|
16079
|
+
}, 0);
|
|
16080
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.onCleanup)(()=>clearTimeout(timer));
|
|
16081
|
+
});
|
|
16082
|
+
const contextValue = ()=>({
|
|
16083
|
+
color: colorValue,
|
|
16084
|
+
format: ()=>"hsl",
|
|
16085
|
+
disabled: ()=>false,
|
|
16086
|
+
onChange: handleColorChange,
|
|
16087
|
+
onFormatChange: ()=>{}
|
|
16088
|
+
});
|
|
16089
|
+
const classes = ()=>twMerge("relative", clsx(props.class, props.className));
|
|
16090
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
16091
|
+
get when () {
|
|
16092
|
+
return featureAvailable();
|
|
16093
|
+
},
|
|
16094
|
+
get children () {
|
|
16095
|
+
var _el$ = ThemeColorPicker_tmpl$2();
|
|
16096
|
+
_el$.$$keydown = handleKeyDown;
|
|
16097
|
+
var _ref$ = containerRef;
|
|
16098
|
+
"function" == typeof _ref$ ? (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.use)(_ref$, _el$) : containerRef = _el$;
|
|
16099
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(button_Button, {
|
|
16100
|
+
type: "button",
|
|
16101
|
+
size: "sm",
|
|
16102
|
+
onClick: ()=>setIsOpen(!isOpen()),
|
|
16103
|
+
get ["aria-label"] () {
|
|
16104
|
+
return props["aria-label"] ?? "Change theme color";
|
|
16105
|
+
},
|
|
16106
|
+
get ["aria-expanded"] () {
|
|
16107
|
+
return isOpen();
|
|
16108
|
+
},
|
|
16109
|
+
get children () {
|
|
16110
|
+
return props.children ?? (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(icon_Icon, {
|
|
16111
|
+
name: "icon-[mdi--palette]",
|
|
16112
|
+
width: 16,
|
|
16113
|
+
height: 16,
|
|
16114
|
+
get ["class"] () {
|
|
16115
|
+
return null !== store().hueShift() ? "text-primary" : void 0;
|
|
16116
|
+
}
|
|
16117
|
+
});
|
|
16118
|
+
}
|
|
16119
|
+
}), null);
|
|
16120
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(__WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.Show, {
|
|
16121
|
+
get when () {
|
|
16122
|
+
return isOpen();
|
|
16123
|
+
},
|
|
16124
|
+
get children () {
|
|
16125
|
+
var _el$2 = ThemeColorPicker_tmpl$();
|
|
16126
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.insert)(_el$2, (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(ColorPickerContext.Provider, {
|
|
16127
|
+
get value () {
|
|
16128
|
+
return contextValue();
|
|
16129
|
+
},
|
|
16130
|
+
get children () {
|
|
16131
|
+
return (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.createComponent)(colorpicker_ColorWheelFlower, {
|
|
16132
|
+
class: "color-wheel-custom"
|
|
16133
|
+
});
|
|
16134
|
+
}
|
|
16135
|
+
}));
|
|
16136
|
+
return _el$2;
|
|
16137
|
+
}
|
|
16138
|
+
}), null);
|
|
16139
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.effect)((_p$)=>{
|
|
16140
|
+
var _v$ = classes(), _v$2 = props.style;
|
|
16141
|
+
_v$ !== _p$.e && (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.className)(_el$, _p$.e = _v$);
|
|
16142
|
+
_p$.t = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.style)(_el$, _v$2, _p$.t);
|
|
16143
|
+
return _p$;
|
|
16144
|
+
}, {
|
|
16145
|
+
e: void 0,
|
|
16146
|
+
t: void 0
|
|
16147
|
+
});
|
|
16148
|
+
return _el$;
|
|
16149
|
+
}
|
|
16150
|
+
});
|
|
16151
|
+
};
|
|
16152
|
+
const ThemeColorPicker = ThemeColorPicker_ThemeColorPicker;
|
|
16153
|
+
(0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.delegateEvents)([
|
|
16154
|
+
"keydown"
|
|
16155
|
+
]);
|
|
15011
16156
|
var Timeline_tmpl$ = /*#__PURE__*/ (0, __WEBPACK_EXTERNAL_MODULE_solid_js_web_35d951b7__.template)("<ul>");
|
|
15012
16157
|
const Timeline_Timeline = (props)=>{
|
|
15013
16158
|
const [local, others] = (0, __WEBPACK_EXTERNAL_MODULE_solid_js_aeefcc6d__.splitProps)(props, [
|
|
@@ -15654,4 +16799,4 @@ const createRouteTransitionResolver = (options)=>{
|
|
|
15654
16799
|
return fallback ?? noMotion;
|
|
15655
16800
|
};
|
|
15656
16801
|
};
|
|
15657
|
-
export { accordion_Accordion as Accordion, alert_Alert as Alert, AlphaSlider, artboard_Artboard as Artboard, avatar as Avatar, background_Background as Background, Badge, bottom_sheet_BottomSheet as BottomSheet, Breadcrumbs, breadcrumbs_BreadcrumbsItem as BreadcrumbsItem, browsermockup_BrowserMockup as BrowserMockup, button_Button as Button, Calendar, card_Card as Card, carousel_Carousel as Carousel, chatbubble_ChatBubble as ChatBubble, checkbox_Checkbox as Checkbox, codemockup_CodeMockup as CodeMockup, CodeMockupLine, collapse_Collapse as Collapse, CollapseContent, CollapseDetails, CollapseTitle, colorpicker_ColorInput as ColorInput, colorpicker_ColorPicker as ColorPicker, ColorPickerContext, ColorPickerFlowerSelector, colorpicker_ColorPickerGradientSelector as ColorPickerGradientSelector, ColorPickerWheelSelector, colorpicker_ColorPreview as ColorPreview, colorpicker_ColorSwatches as ColorSwatches, ColorWheel, colorpicker_ColorWheelFlower as ColorWheelFlower, connectionstatus_ConnectionStatus as ConnectionStatus, CopyButton, countdown_Countdown as Countdown, diff_Diff as Diff, divider as Divider, dock as Dock, Drawer, dropdown as Dropdown, EnhancedTable, FileInput, flex_Flex as Flex, footer_Footer as Footer, form_Form as Form, Grid, hero_Hero as Hero, colorpicker_HueSlider as HueSlider, icon_Icon as Icon, immersive_landing_ImmersiveLanding as ImmersiveLanding, ImmersiveLandingContext, indicator_Indicator as Indicator, input as Input, join_Join as Join, kbd_Kbd as Kbd, LightnessSlider, link_Link as Link, loading_Loading as Loading, mask as Mask, menu_Menu as Menu, modal_Modal as Modal, MotionDiv, navbar_Navbar as Navbar, pagination_Pagination as Pagination, phonemockup_PhoneMockup as PhoneMockup, Progress, props_table_PropsTable as PropsTable, radialprogress_RadialProgress as RadialProgress, radio_Radio as Radio, range_Range as Range, Rating, colorpicker_SaturationBrightness as SaturationBrightness, select_Select as Select, showcase_ShowcaseBlock as ShowcaseBlock, ShowcaseSection, sidenav_Sidenav as Sidenav, sidenav_SidenavButton as SidenavButton, sidenav_SidenavGroup as SidenavGroup, sidenav_SidenavItem as SidenavItem, sidenav_SidenavLink as SidenavLink, sidenav_SidenavMenu as SidenavMenu, skeleton_Skeleton as Skeleton, Stack, stat_card_StatCard as StatCard, stats_Stats as Stats, status_Status as Status, steps as Steps, streaming_table_StreamingTable as StreamingTable, Summary, SvgBackground, Swap, table_Table as Table, tabs_Tabs as Tabs, textarea_Textarea as Textarea, Timeline, timeline_TimelineEnd as TimelineEnd, timeline_TimelineItem as TimelineItem, timeline_TimelineMiddle as TimelineMiddle, timeline_TimelineStart as TimelineStart, toast_Toast as Toast, ToastContainer, ToastStack_ToastStack as ToastStack, toggle_Toggle as Toggle, tooltip_Tooltip as Tooltip, windowmockup_WindowMockup as WindowMockup, createMotionPresets, createMotionSystem, createPopmotionDriver, createRouteTransitionResolver, createStreamingTableStore, connectionstatus_ConnectionStatus as default, defaultMotionTokens, enablePopmotion, getMotionDriver, presets_getPreset as getPreset, immediateDriver, mergeMotionTokens, motionDistances, motionDurations, motionEasings, motionPresets, noMotion, prefersReducedMotion, presets_registerPreset as registerPreset, resolveEase, presets_resolvePreset as resolvePreset, routeTransition, runMotion, setMotionDriver, toastStore, useColorPickerContext, useDesktop, useFormValidation, useImmersiveLanding, useImmersiveLandingContext };
|
|
16802
|
+
export { accordion_Accordion as Accordion, alert_Alert as Alert, AlphaSlider, artboard_Artboard as Artboard, avatar as Avatar, background_Background as Background, Badge, bottom_sheet_BottomSheet as BottomSheet, Breadcrumbs, breadcrumbs_BreadcrumbsItem as BreadcrumbsItem, browsermockup_BrowserMockup as BrowserMockup, button_Button as Button, Calendar, card_Card as Card, carousel_Carousel as Carousel, chatbubble_ChatBubble as ChatBubble, checkbox_Checkbox as Checkbox, codemockup_CodeMockup as CodeMockup, CodeMockupLine, collapse_Collapse as Collapse, CollapseContent, CollapseDetails, CollapseTitle, colorpicker_ColorInput as ColorInput, colorpicker_ColorPicker as ColorPicker, ColorPickerContext, ColorPickerFlowerSelector, colorpicker_ColorPickerGradientSelector as ColorPickerGradientSelector, ColorPickerWheelSelector, colorpicker_ColorPreview as ColorPreview, colorpicker_ColorSwatches as ColorSwatches, ColorWheel, colorpicker_ColorWheelFlower as ColorWheelFlower, connectionstatus_ConnectionStatus as ConnectionStatus, CopyButton, countdown_Countdown as Countdown, diff_Diff as Diff, divider as Divider, dock as Dock, Drawer, dropdown as Dropdown, EnhancedTable, FileInput, flex_Flex as Flex, footer_Footer as Footer, form_Form as Form, Grid, hero_Hero as Hero, colorpicker_HueSlider as HueSlider, I18nContext, I18nProvider, icon_Icon as Icon, immersive_landing_ImmersiveLanding as ImmersiveLanding, ImmersiveLandingContext, indicator_Indicator as Indicator, input as Input, join_Join as Join, kbd_Kbd as Kbd, language_switcher_LanguageSwitcher as LanguageSwitcher, LightnessSlider, link_Link as Link, live_chat_LiveChatBubble as LiveChatBubble, LiveChatPanel, loading_Loading as Loading, mask as Mask, menu_Menu as Menu, modal_Modal as Modal, MotionDiv, navbar_Navbar as Navbar, pagination_Pagination as Pagination, phonemockup_PhoneMockup as PhoneMockup, Progress, props_table_PropsTable as PropsTable, radialprogress_RadialProgress as RadialProgress, radio_Radio as Radio, range_Range as Range, Rating, colorpicker_SaturationBrightness as SaturationBrightness, select_Select as Select, showcase_ShowcaseBlock as ShowcaseBlock, ShowcaseSection, sidenav_Sidenav as Sidenav, sidenav_SidenavButton as SidenavButton, sidenav_SidenavGroup as SidenavGroup, sidenav_SidenavItem as SidenavItem, sidenav_SidenavLink as SidenavLink, sidenav_SidenavMenu as SidenavMenu, skeleton_Skeleton as Skeleton, Stack, stat_card_StatCard as StatCard, stats_Stats as Stats, status_Status as Status, steps as Steps, streaming_table_StreamingTable as StreamingTable, Summary, SvgBackground, Swap, table_Table as Table, tabs_Tabs as Tabs, textarea_Textarea as Textarea, ThemeColorPicker, Timeline, timeline_TimelineEnd as TimelineEnd, timeline_TimelineItem as TimelineItem, timeline_TimelineMiddle as TimelineMiddle, timeline_TimelineStart as TimelineStart, toast_Toast as Toast, ToastContainer, ToastStack_ToastStack as ToastStack, toggle_Toggle as Toggle, tooltip_Tooltip as Tooltip, windowmockup_WindowMockup as WindowMockup, createHueShiftStore, createI18n, createMotionPresets, createMotionSystem, createPopmotionDriver, createRouteTransitionResolver, createStreamingTableStore, connectionstatus_ConnectionStatus as default, defaultMotionTokens, enablePopmotion, getDefaultHueShiftStore, getMotionDriver, presets_getPreset as getPreset, immediateDriver, mergeMotionTokens, motionDistances, motionDurations, motionEasings, motionPresets, noMotion, prefersReducedMotion, presets_registerPreset as registerPreset, resetHueShift, resolveEase, presets_resolvePreset as resolvePreset, routeTransition, runMotion, setMotionDriver, toastStore, useColorPickerContext, useDesktop, useFormValidation, useI18n, useImmersiveLanding, useImmersiveLandingContext };
|