Version 5.0.0 beta 3

This commit is contained in:
Neo committed 2025-12-19 16:47:22 -08:00
1 parent f61b0da85d
commit e86153356a
108 files changed
+2927 -1573

No files matched your search

+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="blog">
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="blog" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.manageCategories.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -277,7 +277,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[/* CLASS LIST TEMPLATES */
<file javascript_app="blog" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[/* CLASS LIST TEMPLATES */
ips.templates.set('blog.view.addButton', "\
<button type=\"button\" class=\"ipsButton ipsButton--primary ipsHide\" data-action=\"addNew\">{{#lang}}manage_cats_new_row{{/lang}}</button>\
");
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="blog" version="5000028">
<app key="blog" version="5000029">
<word key="__app_blog" js="0">Blogs</word>
<word key="frontnavigation_blogs" js="0">Blogs</word>
<word key="__indefart_blog_entry_comment" js="0">a comment on a blog entry</word>
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": true,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"categories": {
"added": [],
"edited": [],
"removed": []
},
"settings": {
"added": [],
"edited": [
"layout_blog_view"
],
"removed": []
}
}
+11 -11
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="calendar">
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000250"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -110,7 +110,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000250"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/browse" javascript_name="ips.browse.monthView.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -229,7 +229,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000300"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.eventList.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -347,7 +347,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000300"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.nearMe.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -711,7 +711,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000300"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/overview" javascript_name="ips.overview.search.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1265,7 +1265,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.dates.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1813,7 +1813,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/venue" javascript_name="ips.venue.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1920,7 +1920,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderButton.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2003,7 +2003,7 @@ var PER_PAGE = 16;
}
});
}(jQuery, _));]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="calendar" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.reminderForm.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2113,7 +2113,7 @@ var PER_PAGE = 16;
});
}(jQuery, _));
</file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.calendar.templates.js" javascript_type="framework" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*/
@@ -2122,7 +2122,7 @@ var PER_PAGE = 16;
ips.templates.set('calendar.reminder.loading', " \
<div class='ipsLoading ipsLoading--tiny'></div>\
");]]></file>
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set("eventLoading", `
<file javascript_app="calendar" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.overview.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set("eventLoading", `
<li class='ipsData__item ipsData__item--loading'>
<div class="ipsData__image"></div>
<div class="ipsData__content">
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="calendar" version="5000028">
<app key="calendar" version="5000029">
<word key="__app_calendar" js="0">Events</word>
<word key="frontnavigation_calendar" js="0">Events</word>
<word key="__indefart_calendar_event_comment" js="0">a comment on an event</word>
+7 -6
View File
@@ -2,7 +2,7 @@
<theme name="Default" author_name="Invision Power Services, Inc" author_url="https://www.invisioncommunity.com">
<template template_group="browse" template_name="calendarDay" template_data="$calendars, $date, $events, $tomorrow, $yesterday, $today, $thisCalendar, $jump" template_location="front" template_app="calendar"><![CDATA[
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&id={$thisCalendar->_id}&y={$yesterday->year}&m={$yesterday->mon}&d={$yesterday->mday}" seoTemplate="calendar_calday" seoTitle="$thisCalendar->title_seo"}{{else}}{url="app=calendar&module=calendar&controller=view&y={$yesterday->year}&m={$yesterday->mon}&d={$yesterday->mday}" seoTemplate="calendar_day"}{{endif}}" title='{lang="cal_month_day" sprintf="$yesterday->monthName, $yesterday->mday, $yesterday->year"}' rel='prev nofollow' data-action='changeView'>
<span class='ipsPager_type'>{lang="cal_month_day_noyear" sprintf="$yesterday->monthName, $yesterday->mday"}</span>
@@ -84,11 +84,11 @@
<div class="ipsPageHeader ipsBox ipsPull" id='elCalendarsHeader'>
<div class='ipsPageHeader__row'>
<div class="ipsPageHeader__primary">
<span class="ipsTitle ipsTitle--h1">
<span class="ipsPageHeader__title">
{{if $thisCalendar and $club = $thisCalendar->club()}}
{$thisCalendar->_title}
{{else}}
<a href='#elCalendars_menu' id='elCalendars' data-ipsMenu data-ipsMenu-appendTo="#elCalendarsHeader">{{if $thisCalendar}}{$thisCalendar->_title}{{else}}{lang="all_calendars"}{{endif}} <i class='fa-solid fa-caret-down i-margin-start_icon'></i></a>
<a href='#elCalendars_menu' id='elCalendars' data-ipsMenu>{{if $thisCalendar}}{$thisCalendar->_title}{{else}}{lang="all_calendars"}{{endif}} <i class='fa-solid fa-angle-down'></i></a>
{{endif}}
</span>
</div>
@@ -96,7 +96,7 @@
{{if $thisCalendar and \IPS\Application::appIsEnabled('cloud')}}
{template="analyticsButton" app="cloud" group="analytics" params="$thisCalendar, $thisCalendar->id"}
{{endif}}
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter data-ipsMenu-appendTo="#elCalendarsHeader" class='ipsButton ipsButton--inherit'><span>{lang="subscribe_button"}</span><i class='fa-solid fa-caret-down'></i></a>
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter class='ipsButton ipsButton--inherit'><span>{lang="subscribe_button"}</span><i class='fa-solid fa-caret-down'></i></a>
<a href='#elCalendarJump' data-ipsMenu data-ipsMenu-menuID='elCalendarJump' data-ipsMenu-closeOnClick='false' class='ipsButton ipsButton--inherit'><span>{lang="jump_to"}</span><i class='fa-solid fa-caret-down'></i></a>
{{if $thisCalendar}}
<div class='ipsResponsive_hidePhone'>
@@ -122,7 +122,7 @@
{template="subscribeMenu" app="calendar" group="global" params="$thisCalendar, $downloadLinks"}
]]></template>
<template template_group="browse" template_name="calendarMonth" template_data="$calendars, $date, $events, $today, $thisCalendar, $jump, $startDates=array()" template_location="front" template_app="calendar"><![CDATA[<div>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&view=month&id={$thisCalendar->_id}&y={$date->lastMonth('year')}&m={$date->lastMonth('mon')}" seoTemplate="calendar_calmonth" seoTitle="$thisCalendar->title_seo"}{{else}}{url="app=calendar&module=calendar&controller=view&y={$date->lastMonth('year')}&m={$date->lastMonth('mon')}" seoTemplate="calendar_month"}{{endif}}" title='{lang="cal_month_title" sprintf="$date->lastMonth('monthName'), $date->lastMonth('year')"}' rel='prev nofollow' data-action='changeView'>
<span class='ipsPager_type'>{$date->lastMonth('monthName')}</span>
@@ -203,7 +203,7 @@
</div>]]></template>
<template template_group="browse" template_name="calendarWeek" template_data="$calendars, $date, $events, $nextWeek, $lastWeek, $days, $today, $thisCalendar, $jump, $startDates=array()" template_location="front" template_app="calendar"><![CDATA[
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="{{if $thisCalendar}}{url="app=calendar&module=calendar&controller=view&view=week&id={$thisCalendar->_id}&w={$lastWeek->year}-{$lastWeek->mon}-{$lastWeek->mday}" seoTemplate="calendar_calweek" seoTitle="$thisCalendar->title_seo"}{{else}}{url="app=calendar&module=calendar&controller=view&view=week&w={$lastWeek->year}-{$lastWeek->mon}-{$lastWeek->mday}" seoTemplate="calendar_week"}{{endif}}" title='{lang="cal_week_title" sprintf="$lastWeek->firstDayOfWeek('monthNameShort'), $lastWeek->firstDayOfWeek('mday'), $lastWeek->firstDayOfWeek('year'), $lastWeek->lastDayOfWeek('monthNameShort'), $lastWeek->lastDayOfWeek('mday'), $lastWeek->lastDayOfWeek('year')"}' rel='prev nofollow' data-action='changeView'>
<span class='ipsPager_type'>{lang="previous_week"}</span>
@@ -2759,6 +2759,7 @@
height: 18px;
border-radius: 5px;
margin-inline-end: 5px;
vertical-align: middle;
}
.cCalendar td {
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": true,
"themeeditor": false,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,24 @@
{
"html": {
"added": [],
"edited": [
"front\/browse\/calendarDay",
"front\/browse\/calendarHeader",
"front\/browse\/calendarMonth",
"front\/browse\/calendarWeek"
],
"removed": []
},
"css": {
"added": [],
"edited": [
"front\/calendar.css"
],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
+19 -19
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="cms">
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/blocks" javascript_name="ips.blocks.form.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/blocks" javascript_name="ips.blocks.form.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -67,7 +67,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/blocks" javascript_name="ips.blocks.navigation.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/*
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/blocks" javascript_name="ips.blocks.navigation.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/*
+--------------------------------------------------------------------------
|
| =============================================
@@ -112,7 +112,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.download.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.download.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -157,7 +157,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.form.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/databases" javascript_name="ips.databases.form.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -233,7 +233,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/external" javascript_name="ips.external.communication.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/external" javascript_name="ips.external.communication.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -368,7 +368,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/fields" javascript_name="ips.fields.form.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/fields" javascript_name="ips.fields.form.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -431,7 +431,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/media" javascript_name="ips.media.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000300"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/media" javascript_name="ips.media.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000300"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1071,7 +1071,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.embed.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000250"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.embed.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1106,7 +1106,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.form.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000250"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/pages" javascript_name="ips.pages.form.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000250"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1228,7 +1228,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.form.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.form.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1340,7 +1340,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.revisions.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="cms" javascript_location="front" javascript_path="controllers/records" javascript_name="ips.records.revisions.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1395,7 +1395,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.addForm.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.addForm.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1445,7 +1445,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.conflict.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.conflict.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1517,7 +1517,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileEditor.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileEditor.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2478,7 +2478,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileList.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.fileList.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2770,7 +2770,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2939,7 +2939,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.variablesDialog.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="cms" javascript_location="admin" javascript_path="controllers/templates" javascript_name="ips.templates.variablesDialog.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -2984,7 +2984,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.media.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set( 'templates.media.grid', "\
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.media.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set( 'templates.media.grid', "\
<ul class='ipsGrid ipsGrid--pages-media'>\
{{{contents}}}\
</ul>\
@@ -3001,7 +3001,7 @@ ips.templates.set( 'templates.media.noSearchResults', "\
{{#lang}}mediaNoResults{{/lang}}\
</div>\
");]]></file>
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.templates.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[/* TEMPLATE EDITOR TEMPLATES */
<file javascript_app="cms" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.templates.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[/* TEMPLATE EDITOR TEMPLATES */
/* TEMPLATECEPTION */
ips.templates.set('templates.editor.newTab', " \
<li data-fileid='{{fileid}}' data-location='{{location}}'>\
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="cms" version="5000028">
<app key="cms" version="5000029">
<word key="__app_cms" js="0">Pages</word>
<word key="menutab__cms" js="0">Pages</word>
<word key="menutab__cms_icon" js="0">file</word>
+2 -1
View File
@@ -595,5 +595,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -25,7 +25,6 @@ use IPS\Node\Model;
use IPS\Widget\Area;
use LogicException;
use OutOfRangeException;
use UnderflowException;
use function defined;
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
@@ -153,8 +152,18 @@ class Widgets extends EditorLocationsAbstract
$return = NULL;
foreach( Db::i()->select( '*', 'core_widget_areas' ) AS $row )
{
$areaData = json_decode( $row['tree'], TRUE );
$area = new Area( $areaData, $row['area'] );
if( $row['tree'] )
{
$area = new Area( json_decode( $row['area_tree'], true ), $row['area'] );
}
elseif( $row['widgets'] )
{
$area = Area::create( $row['area'], json_decode( $row['widgets'], true ) );
}
else
{
continue;
}
foreach( $area->getAllWidgets() AS $widget )
{
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": false,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": true
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,109 @@
<?php
/**
* @brief 5.0.0 Beta 3 Upgrade Code
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
* @package Invision Community
* @subpackage Pages
* @since 24 Oct 2024
*/
namespace IPS\cms\setup\upg_5000029;
use function array_keys;
use function array_merge;
use function defined;
use function in_array;
use function json_decode;
use function json_encode;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* 5.0.0 Beta 3 Upgrade Code
*/
class Upgrade
{
/**
* Fix an issue where Database widgets dropped into a header/sidebar/footer area in v4 cause issues in v5 as they must be in col1
*
* @return bool|array If returns TRUE, upgrader will proceed to next step. If it returns any other value, it will set this as the value of the 'extra' GET parameter and rerun this step (useful for loops)
*/
public function step1() : bool|array
{
$areas = [];
foreach( \IPS\Db::i()->select( '*', 'cms_page_widget_areas', [], 'area_page_id ASC' ) as $row )
{
$areas[ $row['area_page_id'] ][ $row['area_area'] ] = $row;
}
/* Now check to make sure that we have a col1 area and also that we don't have a database widget in header/footer/sidebar from v4 */
foreach( $areas as $pageId => $areaRows )
{
if ( ! in_array( 'col1', array_keys( $areaRows ) ) )
{
/* Insert one */
\IPS\Db::i()->insert( 'cms_page_widget_areas', [
'area_page_id' => $pageId,
'area_widgets' => '[]',
'area_area' => 'col1',
'area_orientation' => 'vertical',
'area_tree' => ''
] );
}
/* Now check for a Database widget in the wrong area */
foreach( [ 'header', 'footer', 'sidebar' ] as $protectedArea )
{
if ( in_array( $protectedArea, array_keys( $areaRows ) ) and $areaRows[ $protectedArea ]['area_widgets'] )
{
if( $widgets = json_decode( $areaRows[ $protectedArea ]['area_widgets'], true ) )
{
$needsUpdating = false;
$database = [];
$newWidgets = [];
foreach( $widgets as $widget )
{
if ( $widget['app'] === 'cms' and $widget['key'] == 'Database' )
{
/* Well, this shouldn't be here */
$database = $widget;
$needsUpdating = true;
}
else
{
$newWidgets[] = $widget;
}
}
if ( $needsUpdating )
{
/* Get any existing from the database for col1 if it exists */
if( $col1 = json_decode( $areaRows['col1']['area_widgets'], true ) )
{
$database = array_merge( [ $database ], $col1 );
}
/* Update the existing area */
\IPS\Db::i()->update( 'cms_page_widget_areas', [ 'area_widgets' => json_encode( $newWidgets ) ], [ 'area_page_id=? and area_area=?', $pageId, $protectedArea ] );
/* Move the database across */
\IPS\Db::i()->update( 'cms_page_widget_areas', [ 'area_widgets' => json_encode( [ $database ] ) ], [ 'area_page_id=? and area_area=?', $pageId, 'col1' ] );
}
}
}
}
}
return TRUE;
}
// You can create as many additional methods (step2, step3, etc.) as is necessary.
// Each step will be executed in a new HTTP request
}
@@ -866,15 +866,29 @@ class Databases extends Model implements Permissions
*/
public function get_display_settings() : array
{
return isset( $this->_data['display_settings'] ) ?
json_decode( $this->_data['display_settings'], true ) :
array(
'index' => [ 'type' => 'all', 'layout' => 'featured', 'template' => null ],
'categories' => [ 'layout' => 'table', 'template' => null ],
'listing' => [ 'layout' => 'table', 'template' => null ],
'display' => [ 'layout' => 'custom', 'template' => 'display' ],
'form' => [ 'layout' => 'custom', 'template' => 'form' ]
);
$return = [];
if( isset( $this->_data['display_settings'] ) and $this->_data['display_settings'] )
{
$return = json_decode( $this->_data['display_settings'], true );
}
$default = array(
'index' => [ 'type' => 'all', 'layout' => 'featured', 'template' => null ],
'categories' => [ 'layout' => 'table', 'template' => null ],
'listing' => [ 'layout' => 'table', 'template' => null ],
'display' => [ 'layout' => 'custom', 'template' => 'display' ],
'form' => [ 'layout' => 'custom', 'template' => 'form' ]
);;
foreach( $default as $k => $v )
{
if( !isset( $return[ $k ] ) )
{
$return[ $k ] = $v;
}
}
return $return;
}
/**
+21 -3
View File
@@ -907,10 +907,28 @@ class Fields extends CustomField implements Permissions
foreach( $files AS $file )
{
$file = File::get( static::$uploadStorageExtension, (string) $file );
$parsed[] = Theme::i()->getTemplate( 'global', 'core', 'global' )->basicUrl( $file->fullyQualifiedUrl( $file->url ) );
if( $options[ $type ]['method'] == 'simple' )
{
$fileKey = Encrypt::fromPlaintext( (string) $file )->tag();
$downloadUrl = Url::internal( 'applications/core/interface/file/cfield.php', 'none' )->setqueryString( array(
'storage' => $file->storageExtension,
'path' => $file->originalFilename,
'fileKey' => $fileKey
) );
$parsed[] = Theme::i()->getTemplate( 'global', 'cms', 'front' )->uploadDisplay( File::get( static::$uploadStorageExtension, $file ), $record, $downloadUrl, $fileKey );
}
else
{
$parsed[] = Theme::i()->getTemplate( 'global', 'core', 'global' )->basicUrl( $file->fullyQualifiedUrl( $file->url ) );
}
}
$value = implode( '', $parsed );
}
$value = implode( " ", $parsed );
}
$value = Theme::i()->getTemplate( 'records', 'cms', 'global' )->fieldDefault( $this->_title, $value );
@@ -1966,8 +1984,8 @@ class Fields extends CustomField implements Permissions
}
/* Number specific */
$form->add( new Number( 'field_number_min', $this->id and $this->extra['min'] ?? NULL, FALSE, array( 'unlimited' => '', 'unlimitedLang' => 'any' ), NULL, NULL, NULL, 'field_number_min' ) );
$form->add( new Number( 'field_number_max', $this->id and $this->extra['max'] ?? NULL, FALSE, array( 'unlimited' => '', 'unlimitedLang' => 'any' ), NULL, NULL, NULL, 'field_number_max' ) );
$form->add( new Number( 'field_number_min', ( $this->id and isset( $this->extra['min'] ) ) ? $this->extra['min'] : NULL, FALSE, array( 'unlimited' => '', 'unlimitedLang' => 'any', 'decimals' => true ), NULL, NULL, NULL, 'field_number_min' ) );
$form->add( new Number( 'field_number_max', ( $this->id and isset( $this->extra['max'] ) ) ? $this->extra['max'] : NULL, FALSE, array( 'unlimited' => '', 'unlimitedLang' => 'any', 'decimals' => true ), NULL, NULL, NULL, 'field_number_max' ) );
$form->add( new YesNo( 'field_number_decimals_on', $this->id && ( isset( $this->extra['on'] ) and $this->extra['on'] ), FALSE, array( 'togglesOn' => array( 'field_number_decimals' ) ), NULL, NULL, NULL, 'field_number_decimals_on' ) );
$form->add( new Number( 'field_number_decimals', $this->id ? ( ( isset( $this->extra['places'] ) and $this->extra['places'] ) ? $this->extra['places'] : 0 ) : 0, FALSE, array( 'max' => 6 ), NULL, NULL, NULL, 'field_number_decimals' ) );
+2 -2
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="convert">
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/convert" javascript_name="ips.convert.menu.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -45,7 +45,7 @@
}
} );
}(jQuery, _));</file>
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="convert" javascript_location="admin" javascript_path="controllers/forms" javascript_name="ips.forms.reactionmapper.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="convert" version="5000028">
<app key="convert" version="5000029">
<word key="__app_convert" js="0">Converter</word>
<word key="menu__convert_manage" js="0">Conversions</word>
<word key="menu__convert_manage_manage_start" js="0">Start New Conversion</word>
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": false,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
+55 -44
View File
@@ -848,79 +848,90 @@
<themeeditorcategory key="content"><![CDATA[{"cat_name":"Content","cat_key":"content","cat_icon":"fa-solid fa-rectangle-list"}]]></themeeditorcategory>
<themeeditorcategory key="footer"><![CDATA[{"cat_name":"Footer","cat_key":"footer","cat_icon":"fa-solid fa-grip-lines"}]]></themeeditorcategory>
<themeeditorcategory key="mobileNavigation"><![CDATA[{"cat_name":"Mobile navigation","cat_key":"mobileNavigation","cat_icon":"fa-solid fa-mobile-screen"}]]></themeeditorcategory>
<themeeditorcategory key="navigationPanel"><![CDATA[{"cat_name":"Navigation panel","cat_key":"navigationPanel","cat_icon":"fa-solid fa-table-columns"}]]></themeeditorcategory>
<themeeditorcategory key="global"><![CDATA[{"cat_name":"Global","cat_key":"global","cat_icon":"fa-solid fa-rectangle-list"}]]></themeeditorcategory>
<themeeditorcategory key="textLogo"><![CDATA[{"cat_name":"Text Logo","cat_key":"textLogo","cat_icon":"fa-solid fa-text-height","cat_parent":"logos"}]]></themeeditorcategory>
<themeeditorcategory key="imageLogoDesktop"><![CDATA[{"cat_name":"Image Logo (desktop)","cat_key":"imageLogoDesktop","cat_icon":"fa-solid fa-display","cat_parent":"logos"}]]></themeeditorcategory>
<themeeditorcategory key="imageLogoMobile"><![CDATA[{"cat_name":"Image Logo (mobile)","cat_key":"imageLogoMobile","cat_icon":"fa-solid fa-mobile-screen","cat_parent":"logos"}]]></themeeditorcategory>
<themeeditorcategory key="desktopHeader"><![CDATA[{"cat_name":"Desktop header","cat_key":"desktopHeader","cat_icon":"fa-solid fa-display","cat_parent":"header"}]]></themeeditorcategory>
<themeeditorcategory key="mobileHeader"><![CDATA[{"cat_name":"Mobile header","cat_key":"mobileHeader","cat_icon":"fa-solid fa-mobile-screen","cat_parent":"header"}]]></themeeditorcategory>
<themeeditorcategory key="body"><![CDATA[{"cat_name":"Body","cat_key":"body","cat_icon":"fa-solid fa-arrows-left-right-to-line","cat_parent":"content"}]]></themeeditorcategory>
<themeeditorcategory key="contentBoxes"><![CDATA[{"cat_name":"Content boxes","cat_key":"contentBoxes","cat_icon":"fa-solid fa-rectangle-list","cat_parent":"content"}]]></themeeditorcategory>
<themeeditorcategory key="desktopFooter"><![CDATA[{"cat_name":"Desktop footer","cat_key":"desktopFooter","cat_icon":"fa-solid fa-display","cat_parent":"footer"}]]></themeeditorcategory>
<themeeditorcategory key="body"><![CDATA[{"cat_name":"Body","cat_key":"body","cat_icon":"fa-solid fa-arrows-left-right-to-line","cat_parent":"global"}]]></themeeditorcategory>
<themeeditorcategory key="contentBoxes"><![CDATA[{"cat_name":"Content boxes","cat_key":"contentBoxes","cat_icon":"fa-solid fa-rectangle-list","cat_parent":"global"}]]></themeeditorcategory>
<themeeditorcategory key="sidebar"><![CDATA[{"cat_name":"Sidebar","cat_key":"sidebar","cat_icon":"fa-solid fa-table-list","cat_parent":"global"}]]></themeeditorcategory>
<themeeditorcategory key="avatars"><![CDATA[{"cat_name":"Avatars","cat_key":"avatars","cat_icon":"fa-solid fa-circle-user","cat_parent":"global"}]]></themeeditorcategory>
<themeeditorcategory key="buttons"><![CDATA[{"cat_name":"Buttons","cat_key":"buttons","cat_icon":"fa-solid fa-hand-pointer","cat_parent":"global"}]]></themeeditorcategory>
<themeeditorsetting key="set__i-default-scheme"><![CDATA[{"key":"set__i-default-scheme","type":"select","name":"Default color scheme","desc":"What color scheme should be shown to new users? If users have already chosen a preference, this setting won't affect them.","refresh":false,"options":[["system","System (auto)"],["light","Light"],["dark","Dark"]],"default":"system","cat":"lightDarkMode"}]]></themeeditorsetting>
<themeeditorsetting key="i-footer--co"><![CDATA[{"key":"i-footer--co","type":"color","name":"Footer text","desc":"","refresh":false,"light_default":"var(--i-base_4)","dark_default":"var(--i-base-contrast_4)","cat":"footer"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo-text"><![CDATA[{"key":"set__i-logo-text","type":"text","name":"Text Logo","desc":"The text logo is used if an image logo hasn't been uploaded.","refresh":false,"default":"{setting='board_name'}","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-width"><![CDATA[{"key":"set__i-sidebar-width","type":"range","name":"Sidebar width (px)","desc":"","refresh":false,"min":250,"max":450,"step":1,"default":"350","cat":"sidebar"}]]></themeeditorsetting>
<themeeditorsetting key="i-primary-button--co"><![CDATA[{"key":"i-primary-button--co","type":"color","name":"Primary button color","desc":"","refresh":false,"light_default":"var(--i-primary-contrast)","dark_default":"var(--i-primary-contrast)","cat":"buttons"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-icons-location"><![CDATA[{"key":"set__i-mobile-icons-location","type":"select","name":"Navigation icon location","desc":"The navigation icons provide convenient access to your navigation menu and account menu on small devices.","refresh":true,"options":[["header","Header"],["footer","Footer"]],"default":"footer","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__logo-light"><![CDATA[{"key":"set__logo-light","type":"image","name":"Logo (light theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['front']['url'] ) AND \\IPS\\Theme::i()->logo['front']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-footer--co"><![CDATA[{"key":"i-footer--co","type":"color","name":"Footer text","desc":"","refresh":false,"light_default":"var(--i-base_4)","dark_default":"var(--i-base-contrast_4)","cat":"footer"}]]></themeeditorsetting>
<themeeditorsetting key="set__mobile-logo-light"><![CDATA[{"key":"set__mobile-logo-light","type":"image","name":"Logo (light theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['mobile']['url'] ) AND \\IPS\\Theme::i()->logo['mobile']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="layout_global_view_mode"><![CDATA[{"key":"layout_global_view_mode","type":"select","name":"Page Layout","desc":"<strong>Classic<\/strong> is the traditional layout, with a horizontal header. <strong>Side Panel<\/strong> moves the logo and navigation into a vertical panel on the side of your page.","refresh":true,"options":[["default","Classic"],["side","Side panel"]],"default":"default","cat":"pageLayouts"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-font-family"><![CDATA[{"key":"set__i-font-family","type":"select","name":"Font-family","desc":"","refresh":false,"options":[["var(--i-font-family_system-ui)","System UI"],["var(--i-font-family_arial)","Arial"],["var(--i-font-family_bitter)","Bitter"],["var(--i-font-family_classical-humanist)","Classical Humanist"],["var(--i-font-family_georgia)","Georgia"],["var(--i-font-family_geometric-humanist)","Geometric Humanist"],["var(--i-font-family_helvetica)","Helvetica"],["var(--i-font-family_humanist)","Humanist"],["var(--i-font-family_instrument-sans)","Instrument Sans"],["var(--i-font-family_inter)","Inter"],["var(--i-font-family_manrope)","Manrope"],["var(--i-font-family_merriweather-sans)","Merriweather Sans"],["var(--i-font-family_monospace-code)","Monospace Code"],["var(--i-font-family_old-style)","Old Style"],["var(--i-font-family_open-sans)","Open Sans"],["var(--i-font-family_pathway-extreme)","Pathway Extreme"],["var(--i-font-family_roboto-flex)","Roboto Flex"],["var(--i-font-family_roboto-serif)","Roboto Serif"],["var(--i-font-family_roboto-slab)","Roboto Slab"],["var(--i-font-family_rounded-sans)","Rounded Sans"],["var(--i-font-family_source-sans-3)","Source Sans 3"],["var(--i-font-family_transitional)","Transitional"],["var(--i-font-family_tahoma)","Tahoma"],["var(--i-font-family_trebuchet-ms)","Trebuchet MS"],["var(--i-font-family_verdana)","Verdana"]],"default":"var(--i-font-family_system-ui)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-design-border"><![CDATA[{"key":"set__i-design-border","type":"range","name":"Border width","desc":"","refresh":false,"min":0,"max":"5","default":"1","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-layout-width"><![CDATA[{"key":"set__i-layout-width","type":"range","name":"Max-width","desc":"","refresh":false,"min":"980","max":"2500","default":"1500","cat":"body"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-header--he"><![CDATA[{"key":"set__i-sidebar-ui-header--he","type":"range","name":"Header height (desktop)","desc":"","refresh":false,"min":"40","max":"150","default":"65","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-header--he"><![CDATA[{"key":"set__i-mobile-header--he","type":"range","name":"Header height (mobile)","desc":"","refresh":false,"min":"40","max":"200","default":"70","cat":"mobileHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-icons-location"><![CDATA[{"key":"set__i-mobile-icons-location","type":"select","name":"Navigation icon location","desc":"The navigation icons provide convenient access to your navigation menu and account menu on small devices.","refresh":true,"options":[["header","Header"],["footer","Footer"]],"default":"footer","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-header--he"><![CDATA[{"key":"set__i-sidebar-ui-header--he","type":"range","name":"Header height (desktop)","desc":"","refresh":false,"min":"40","max":"150","default":"65","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-logo"><![CDATA[{"key":"set__i-position-logo","type":"text","name":"Logo","desc":"","refresh":false,"default":"4","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__logo-light"><![CDATA[{"key":"set__logo-light","type":"image","name":"Logo (light theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['front']['url'] ) AND \\IPS\\Theme::i()->logo['front']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-font-family"><![CDATA[{"key":"set__i-font-family","type":"select","name":"Font-family","desc":"","refresh":false,"options":[["var(--i-font-family_system-ui)","System UI"],["var(--i-font-family_arial)","Arial"],["var(--i-font-family_bitter)","Bitter"],["var(--i-font-family_classical-humanist)","Classical Humanist"],["var(--i-font-family_georgia)","Georgia"],["var(--i-font-family_geometric-humanist)","Geometric Humanist"],["var(--i-font-family_helvetica)","Helvetica"],["var(--i-font-family_humanist)","Humanist"],["var(--i-font-family_instrument-sans)","Instrument Sans"],["var(--i-font-family_inter)","Inter"],["var(--i-font-family_manrope)","Manrope"],["var(--i-font-family_merriweather-sans)","Merriweather Sans"],["var(--i-font-family_monospace-code)","Monospace Code"],["var(--i-font-family_old-style)","Old Style"],["var(--i-font-family_open-sans)","Open Sans"],["var(--i-font-family_pathway-extreme)","Pathway Extreme"],["var(--i-font-family_roboto-flex)","Roboto Flex"],["var(--i-font-family_roboto-serif)","Roboto Serif"],["var(--i-font-family_roboto-slab)","Roboto Slab"],["var(--i-font-family_rounded-sans)","Rounded Sans"],["var(--i-font-family_source-sans-3)","Source Sans 3"],["var(--i-font-family_transitional)","Transitional"],["var(--i-font-family_tahoma)","Tahoma"],["var(--i-font-family_trebuchet-ms)","Trebuchet MS"],["var(--i-font-family_verdana)","Verdana"]],"default":"var(--i-font-family_system-ui)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="layout_global_view_mode"><![CDATA[{"key":"layout_global_view_mode","type":"select","name":"Page Layout","desc":"<strong>Classic<\/strong> is the traditional layout, with a horizontal header. <strong>Side Panel<\/strong> moves the logo and navigation into a vertical panel on the side of your page.","refresh":true,"options":[["default","Classic"],["side","Side panel"]],"default":"default","cat":"pageLayouts"}]]></themeeditorsetting>
<themeeditorsetting key="set__mobile-logo-light"><![CDATA[{"key":"set__mobile-logo-light","type":"image","name":"Logo (light theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['mobile']['url'] ) AND \\IPS\\Theme::i()->logo['mobile']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="set__mobile-logo-dark"><![CDATA[{"key":"set__mobile-logo-dark","type":"image","name":"Logo (dark theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['mobile-dark']['url'] ) AND \\IPS\\Theme::i()->logo['mobile-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile-dark']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="set__logo-dark"><![CDATA[{"key":"set__logo-dark","type":"image","name":"Logo (dark theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['front-dark']['url'] ) AND \\IPS\\Theme::i()->logo['front-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front-dark']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-font-size"><![CDATA[{"key":"set__i-font-size","type":"range","name":"Font-size","desc":"Set the base font-size for typography. Some elements will use a smaller or larger version of this base size to maintain hierarchy.","refresh":false,"min":"12","max":"18","step":".25","default":"14","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-footer--ba-co"><![CDATA[{"key":"i-footer--ba-co","type":"color","name":"Footer background","desc":"","refresh":false,"light_default":"var(--i-base-contrast_4)","dark_default":"var(--i-base_2)","cat":"footer"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-header--he"><![CDATA[{"key":"set__i-mobile-header--he","type":"range","name":"Header height (mobile)","desc":"","refresh":false,"min":"40","max":"200","default":"70","cat":"mobileHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-change-scheme"><![CDATA[{"key":"set__i-change-scheme","type":"checkbox","name":"Display color scheme toggle?","desc":"If enabled, users can choose their own preference between Light, Dark and System.","refresh":false,"default":"1","cat":"lightDarkMode"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-footer-labels"><![CDATA[{"key":"set__i-mobile-footer-labels","type":"checkbox","name":"Show text labels in footer bar?","desc":"","refresh":false,"default":"1","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-navigation"><![CDATA[{"key":"set__i-position-navigation","type":"text","name":"Navigation","desc":"","refresh":false,"default":"5","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-design-radius"><![CDATA[{"key":"set__i-design-radius","type":"range","name":"Border radius","desc":"","refresh":false,"min":0,"max":"25","default":"6","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo-slogan"><![CDATA[{"key":"set__i-logo-slogan","type":"text","name":"Slogan","desc":"","refresh":false,"default":"","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-flip-sidebar"><![CDATA[{"key":"set__i-flip-sidebar","type":"checkbox","name":"Flip sidebar on large screens?","desc":"","refresh":false,"default":"0","cat":"body"}]]></themeeditorsetting>
<themeeditorsetting key="i-primary-button--ba-co"><![CDATA[{"key":"i-primary-button--ba-co","type":"color","name":"Primary button background","desc":"","refresh":false,"light_default":"var(--i-primary)","dark_default":"var(--i-primary)","cat":"buttons"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-footer-labels"><![CDATA[{"key":"set__i-mobile-footer-labels","type":"checkbox","name":"Show text labels in footer bar?","desc":"","refresh":false,"default":"1","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__logo-dark"><![CDATA[{"key":"set__logo-dark","type":"image","name":"Logo (dark theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['front-dark']['url'] ) AND \\IPS\\Theme::i()->logo['front-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front-dark']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-footer--ba-co"><![CDATA[{"key":"i-footer--ba-co","type":"color","name":"Footer background","desc":"","refresh":false,"light_default":"var(--i-base-contrast_4)","dark_default":"var(--i-base_2)","cat":"footer"}]]></themeeditorsetting>
<themeeditorsetting key="set__mobile-logo-dark"><![CDATA[{"key":"set__mobile-logo-dark","type":"image","name":"Logo (dark theme)","desc":"","refresh":false,"default":"{{if isset( \\IPS\\Theme::i()->logo['mobile-dark']['url'] ) AND \\IPS\\Theme::i()->logo['mobile-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile-dark']['url'] )->url;}}{$logo}{{endif}}","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-design-radius"><![CDATA[{"key":"set__i-design-radius","type":"range","name":"Border radius","desc":"","refresh":false,"min":0,"max":"25","default":"6","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-font-size"><![CDATA[{"key":"set__i-font-size","type":"range","name":"Font-size","desc":"Set the base font-size for typography. Some elements will use a smaller or larger version of this base size to maintain hierarchy.","refresh":false,"min":"12","max":"18","step":".25","default":"14","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-flip-sidebar"><![CDATA[{"key":"set__i-flip-sidebar","type":"checkbox","name":"Flip sidebar position on large screens?","desc":"","refresh":false,"default":"0","cat":"sidebar"}]]></themeeditorsetting>
<themeeditorsetting key="i-dashHeader--ba-co"><![CDATA[{"key":"i-dashHeader--ba-co","type":"color","name":"Header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-navigation"><![CDATA[{"key":"set__i-position-navigation","type":"text","name":"Navigation","desc":"","refresh":false,"default":"5","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-headerMobile--ba-co"><![CDATA[{"key":"i-headerMobile--ba-co","type":"color","name":"Header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"mobileHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-dashHeader--ba-co"><![CDATA[{"key":"i-dashHeader--ba-co","type":"color","name":"Header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-logo--he"><![CDATA[{"key":"set__i-mobile-logo--he","type":"range","name":"Height (%)","desc":"","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--he"><![CDATA[{"key":"set__i-logo--he","type":"range","name":"Maximum logo height (%)","desc":"Adjust the max-height of your desktop logo.","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-color_root"><![CDATA[{"key":"i-color_root","type":"color","name":"Text color","desc":"","refresh":false,"light_default":"var(--i-base-contrast_3)","dark_default":"var(--i-base-contrast_3)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter--ba-co"><![CDATA[{"key":"i-mobileFooter--ba-co","type":"color","name":"Footer: background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_3)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-user"><![CDATA[{"key":"set__i-position-user","type":"text","name":"User","desc":"","refresh":false,"default":"6","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-design-shadow"><![CDATA[{"key":"set__i-design-shadow","type":"range","name":"Shadow","desc":"","refresh":false,"min":0,"max":"10","default":"2","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-avatar-radius"><![CDATA[{"key":"set__i-avatar-radius","type":"checkbox","name":"Rounded avatars?","desc":"","refresh":false,"default":"1","cat":"body"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--fo-fa"><![CDATA[{"key":"set__i-logo--fo-fa","type":"select","name":"Font-family","desc":"","refresh":false,"options":[["var(--i-font-family)","Inherit"],["var(--i-font-family_system-ui)","System UI"],["var(--i-font-family_arial)","Arial"],["var(--i-font-family_bitter)","Bitter"],["var(--i-font-family_classical-humanist)","Classical Humanist"],["var(--i-font-family_georgia)","Georgia"],["var(--i-font-family_geometric-humanist)","Geometric Humanist"],["var(--i-font-family_helvetica)","Helvetica"],["var(--i-font-family_humanist)","Humanist"],["var(--i-font-family_instrument-sans)","Instrument Sans"],["var(--i-font-family_inter)","Inter"],["var(--i-font-family_manrope)","Manrope"],["var(--i-font-family_merriweather-sans)","Merriweather Sans"],["var(--i-font-family_monospace-code)","Monospace Code"],["var(--i-font-family_old-style)","Old Style"],["var(--i-font-family_open-sans)","Open Sans"],["var(--i-font-family_pathway-extreme)","Pathway Extreme"],["var(--i-font-family_roboto-flex)","Roboto Flex"],["var(--i-font-family_roboto-serif)","Roboto Serif"],["var(--i-font-family_roboto-slab)","Roboto Slab"],["var(--i-font-family_rounded-sans)","Rounded Sans"],["var(--i-font-family_source-sans-3)","Source Sans 3"],["var(--i-font-family_transitional)","Transitional"],["var(--i-font-family_tahoma)","Tahoma"],["var(--i-font-family_trebuchet-ms)","Trebuchet MS"],["var(--i-font-family_verdana)","Verdana"]],"default":"var(--i-font-family)","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-dashHeader--co"><![CDATA[{"key":"i-dashHeader--co","type":"color","name":"Header text","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base-contrast_5)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="i-headerMobile--co"><![CDATA[{"key":"i-headerMobile--co","type":"color","name":"Header text color","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base-contrast_5)","cat":"mobileHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-logo--he"><![CDATA[{"key":"set__i-sidebar-ui-logo--he","type":"range","name":"Maximum logo height (%)","desc":"Adjust the max-height of your side panel logo.","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-color_soft"><![CDATA[{"key":"i-color_soft","type":"color","name":"Text color (soft)","desc":"","refresh":false,"light_default":"var(--i-base-contrast_1)","dark_default":"var(--i-base-contrast_2)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-secondary-button--co"><![CDATA[{"key":"i-secondary-button--co","type":"color","name":"Secondary button color","desc":"","refresh":false,"light_default":"var(--i-secondary-contrast)","dark_default":"var(--i-secondary-contrast)","cat":"buttons"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--fo-fa"><![CDATA[{"key":"set__i-logo--fo-fa","type":"select","name":"Font-family","desc":"","refresh":false,"options":[["var(--i-font-family)","Inherit"],["var(--i-font-family_system-ui)","System UI"],["var(--i-font-family_arial)","Arial"],["var(--i-font-family_bitter)","Bitter"],["var(--i-font-family_classical-humanist)","Classical Humanist"],["var(--i-font-family_georgia)","Georgia"],["var(--i-font-family_geometric-humanist)","Geometric Humanist"],["var(--i-font-family_helvetica)","Helvetica"],["var(--i-font-family_humanist)","Humanist"],["var(--i-font-family_instrument-sans)","Instrument Sans"],["var(--i-font-family_inter)","Inter"],["var(--i-font-family_manrope)","Manrope"],["var(--i-font-family_merriweather-sans)","Merriweather Sans"],["var(--i-font-family_monospace-code)","Monospace Code"],["var(--i-font-family_old-style)","Old Style"],["var(--i-font-family_open-sans)","Open Sans"],["var(--i-font-family_pathway-extreme)","Pathway Extreme"],["var(--i-font-family_roboto-flex)","Roboto Flex"],["var(--i-font-family_roboto-serif)","Roboto Serif"],["var(--i-font-family_roboto-slab)","Roboto Slab"],["var(--i-font-family_rounded-sans)","Rounded Sans"],["var(--i-font-family_source-sans-3)","Source Sans 3"],["var(--i-font-family_transitional)","Transitional"],["var(--i-font-family_tahoma)","Tahoma"],["var(--i-font-family_trebuchet-ms)","Trebuchet MS"],["var(--i-font-family_verdana)","Verdana"]],"default":"var(--i-font-family)","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-user"><![CDATA[{"key":"set__i-position-user","type":"text","name":"User","desc":"","refresh":false,"default":"6","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-dashHeader--co"><![CDATA[{"key":"i-dashHeader--co","type":"color","name":"Header text","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base-contrast_5)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-avatar-radius"><![CDATA[{"key":"set__i-avatar-radius","type":"checkbox","name":"Rounded avatars?","desc":"","refresh":false,"default":"1","cat":"avatars"}]]></themeeditorsetting>
<themeeditorsetting key="i-color_root"><![CDATA[{"key":"i-color_root","type":"color","name":"Text color","desc":"","refresh":false,"light_default":"var(--i-base-contrast_3)","dark_default":"var(--i-base-contrast_3)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-logo--he"><![CDATA[{"key":"set__i-mobile-logo--he","type":"range","name":"Height (%)","desc":"","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoMobile"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-design-shadow"><![CDATA[{"key":"set__i-design-shadow","type":"range","name":"Shadow","desc":"","refresh":false,"min":0,"max":"10","default":"2","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter--ba-co"><![CDATA[{"key":"i-mobileFooter--ba-co","type":"color","name":"Footer: background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_3)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--he"><![CDATA[{"key":"set__i-logo--he","type":"range","name":"Maximum logo height (%)","desc":"Adjust the max-height of your desktop logo.","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-secondary-button--ba-co"><![CDATA[{"key":"i-secondary-button--ba-co","type":"color","name":"Secondary button background","desc":"","refresh":false,"light_default":"var(--i-secondary)","dark_default":"var(--i-secondary)","cat":"buttons"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--fo-we"><![CDATA[{"key":"set__i-logo--fo-we","type":"range","name":"Font-weight","desc":"","refresh":false,"min":"100","max":"900","default":"500","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkHover--co"><![CDATA[{"key":"i-navPanelLinkHover--co","type":"color","name":"Link color (hover)","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-color_primary)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-breadcrumb"><![CDATA[{"key":"set__i-position-breadcrumb","type":"text","name":"Breadcrumb","desc":"","refresh":false,"default":"7","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter--co"><![CDATA[{"key":"i-mobileFooter--co","type":"color","name":"Footer: text color","desc":"","refresh":false,"light_default":"var(--i-base-contrast_4)","dark_default":"var(--i-base-contrast_4)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-link-panels"><![CDATA[{"key":"set__i-link-panels","type":"checkbox","name":"Enable clickable panels?","desc":"Clickable panels increase the click size of entries inside tables and grids.","refresh":false,"default":"1","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-color_soft"><![CDATA[{"key":"i-color_soft","type":"color","name":"Text color (soft)","desc":"","refresh":false,"light_default":"var(--i-base-contrast_1)","dark_default":"var(--i-base-contrast_2)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-body--ba-co"><![CDATA[{"key":"i-body--ba-co","type":"color","name":"Body background","desc":"","refresh":false,"light_default":"var(--i-base_3)","dark_default":"var(--i-base_1)","cat":"body"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkHover--co"><![CDATA[{"key":"i-navPanelLinkHover--co","type":"color","name":"Link color (hover)","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-color_primary)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-logo--fo-we"><![CDATA[{"key":"set__i-logo--fo-we","type":"range","name":"Font-weight","desc":"","refresh":false,"min":"100","max":"900","default":"500","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-link-panels"><![CDATA[{"key":"set__i-link-panels","type":"checkbox","name":"Enable clickable panels?","desc":"Clickable panels increase the click size of entries inside tables and grids.","refresh":false,"default":"1","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-logo--he"><![CDATA[{"key":"set__i-sidebar-ui-logo--he","type":"range","name":"Maximum logo height (%)","desc":"Adjust the max-height of your side panel logo.","refresh":false,"min":10,"max":100,"step":1,"default":"70","cat":"imageLogoDesktop"}]]></themeeditorsetting>
<themeeditorsetting key="i-button--bo-ra"><![CDATA[{"key":"i-button--bo-ra","type":"range","name":"Button border-radius","desc":"","refresh":false,"min":0,"max":40,"step":1,"default":"8","cat":"buttons"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-desktop-logo--fo-si"><![CDATA[{"key":"set__i-desktop-logo--fo-si","type":"range","name":"Desktop font-size (px)","desc":"Adjust the font-size of your text logo on the desktop layout.","refresh":false,"min":"10","max":"50","default":"18","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter-active--co"><![CDATA[{"key":"i-mobileFooter-active--co","type":"color","name":"Footer: Active button text","desc":"","refresh":false,"light_default":"var(--i-primary-contrast)","dark_default":"var(--i-primary-contrast)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkActive--ba-co"><![CDATA[{"key":"i-navPanelLinkActive--ba-co","type":"color","name":"Link background (active)","desc":"","refresh":false,"light_default":"var(--i-primary)","dark_default":"var(--i-primary)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sticky-sidebar"><![CDATA[{"key":"set__i-sticky-sidebar","type":"checkbox","name":"Sticky sidebar?","desc":"","refresh":false,"default":"1","cat":"body"}]]></themeeditorsetting>
<themeeditorsetting key="i-box--ba-co"><![CDATA[{"key":"i-box--ba-co","type":"color","name":"Background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sticky-sidebar"><![CDATA[{"key":"set__i-sticky-sidebar","type":"checkbox","name":"Sticky sidebar?","desc":"","refresh":false,"default":"1","cat":"sidebar"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkActive--ba-co"><![CDATA[{"key":"i-navPanelLinkActive--ba-co","type":"color","name":"Link background (active)","desc":"","refresh":false,"light_default":"var(--i-primary)","dark_default":"var(--i-primary)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-position-search"><![CDATA[{"key":"set__i-position-search","type":"text","name":"Search","desc":"","refresh":false,"default":"9","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter-active--co"><![CDATA[{"key":"i-mobileFooter-active--co","type":"color","name":"Footer: Active button text","desc":"","refresh":false,"light_default":"var(--i-primary-contrast)","dark_default":"var(--i-primary-contrast)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="i-color_hard"><![CDATA[{"key":"i-color_hard","type":"color","name":"Text color (hard)","desc":"","refresh":false,"light_default":"var(--i-base-contrast_6)","dark_default":"var(--i-base-contrast_6)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter-active--ba-co"><![CDATA[{"key":"i-mobileFooter-active--ba-co","type":"color","name":"Footer: Active button background","desc":"","refresh":false,"light_default":"var(--i-primary)","dark_default":"var(--i-primary)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanel--ba-co"><![CDATA[{"key":"i-navPanel--ba-co","type":"color","name":"Background","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base_2)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-logo--fo-si"><![CDATA[{"key":"set__i-sidebar-ui-logo--fo-si","type":"range","name":"Desktop font-size (px)","desc":"Adjust the font-size of your text logo on the desktop sidebar layout.","refresh":false,"min":"10","max":"50","default":"20","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-box--ba-co"><![CDATA[{"key":"i-box--ba-co","type":"color","name":"Background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-header-primary--he"><![CDATA[{"key":"set__i-header-primary--he","type":"range","name":"Primary header height","desc":"","refresh":false,"min":"40","max":"400","default":"100","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-sidebar-ui-logo--fo-si"><![CDATA[{"key":"set__i-sidebar-ui-logo--fo-si","type":"range","name":"Desktop font-size (px)","desc":"Adjust the font-size of your text logo on the desktop sidebar layout.","refresh":false,"min":"10","max":"50","default":"20","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-box--bo-co"><![CDATA[{"key":"i-box--bo-co","type":"color","name":"Border color","desc":"","refresh":false,"light_default":"var(--i-base_4)","dark_default":"var(--i-base_3)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-link--co"><![CDATA[{"key":"i-link--co","type":"color","name":"Link color","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base-contrast_5)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanel--co"><![CDATA[{"key":"i-navPanel--co","type":"color","name":"Link color","desc":"","refresh":false,"light_default":"var(--i-base_3)","dark_default":"var(--i-base-contrast_3)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="i-boxHeader--ba-co"><![CDATA[{"key":"i-boxHeader--ba-co","type":"color","name":"Header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-mobileFooter-active--ba-co"><![CDATA[{"key":"i-mobileFooter-active--ba-co","type":"color","name":"Footer: Active button background","desc":"","refresh":false,"light_default":"var(--i-primary)","dark_default":"var(--i-primary)","cat":"mobileNavigation"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanel--ba-co"><![CDATA[{"key":"i-navPanel--ba-co","type":"color","name":"Background","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base_2)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-mobile-logo--fo-si"><![CDATA[{"key":"set__i-mobile-logo--fo-si","type":"range","name":"Mobile font-size (px)","desc":"Adjust the font-size of your text logo on the mobile layout.","refresh":false,"min":10,"max":50,"step":1,"default":"18","cat":"textLogo"}]]></themeeditorsetting>
<themeeditorsetting key="i-link-hover--co"><![CDATA[{"key":"i-link-hover--co","type":"color","name":"Link color (hover)","desc":"","refresh":false,"light_default":"var(--i-color_primary)","dark_default":"var(--i-color_primary)","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanel--co"><![CDATA[{"key":"i-navPanel--co","type":"color","name":"Link color","desc":"","refresh":false,"light_default":"var(--i-base_3)","dark_default":"var(--i-base-contrast_3)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-header-secondary--he"><![CDATA[{"key":"set__i-header-secondary--he","type":"range","name":"Secondary header height","desc":"","refresh":false,"min":"30","max":"150","default":"50","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkActive--co"><![CDATA[{"key":"i-navPanelLinkActive--co","type":"color","name":"Link color (active)","desc":"","refresh":false,"light_default":"var(--i-primary-contrast)","dark_default":"var(--i-primary-contrast)","cat":"sidePanel"}]]></themeeditorsetting>
<themeeditorsetting key="i-boxHeader--ba-co"><![CDATA[{"key":"i-boxHeader--ba-co","type":"color","name":"Header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-boxHeader--co"><![CDATA[{"key":"i-boxHeader--co","type":"color","name":"Header text","desc":"","refresh":false,"light_default":"var(--i-base-contrast_6)","dark_default":"var(--i-base-contrast_6)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-nav-bar-icons"><![CDATA[{"key":"set__i-nav-bar-icons","type":"checkbox","name":"Navigation icons?","desc":"Display icons next to navigation links?","refresh":false,"default":"0","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-user-content-font-size"><![CDATA[{"key":"set__i-user-content-font-size","type":"range","name":"User content font-size (%)","desc":"Increase the font-size of user submitted content, such as posts.","refresh":false,"min":100,"max":150,"step":1,"default":"110","cat":"typography"}]]></themeeditorsetting>
<themeeditorsetting key="i-navPanelLinkActive--co"><![CDATA[{"key":"i-navPanelLinkActive--co","type":"color","name":"Link color (active)","desc":"","refresh":false,"light_default":"var(--i-primary-contrast)","dark_default":"var(--i-primary-contrast)","cat":"navigationPanel"}]]></themeeditorsetting>
<themeeditorsetting key="set__i-nav-bar-icons"><![CDATA[{"key":"set__i-nav-bar-icons","type":"checkbox","name":"Navigation icons?","desc":"Display icons next to navigation links?","refresh":false,"default":"0","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-widget-header--ba-co"><![CDATA[{"key":"i-widget-header--ba-co","type":"color","name":"Widget header background","desc":"","refresh":false,"light_default":"var(--i-base_1)","dark_default":"var(--i-base_2)","cat":"contentBoxes"}]]></themeeditorsetting>
<themeeditorsetting key="i-headerTop--ba-co"><![CDATA[{"key":"i-headerTop--ba-co","type":"color","name":"Top header background","desc":"","refresh":false,"light_default":"var(--i-base-contrast_5)","dark_default":"var(--i-base_3)","cat":"desktopHeader"}]]></themeeditorsetting>
<themeeditorsetting key="i-widget-header--co"><![CDATA[{"key":"i-widget-header--co","type":"color","name":"Widget header text","desc":"","refresh":false,"light_default":"var(--i-base-contrast_6)","dark_default":"var(--i-base-contrast_6)","cat":"contentBoxes"}]]></themeeditorsetting>
+1 -1
View File
@@ -45,7 +45,7 @@
"isDynamicEntry": true
},
"src/main.jsx": {
"file": "assets/main-C7yyeubP.js",
"file": "assets/main-mf6AQnai.js",
"name": "main",
"src": "src/main.jsx",
"isEntry": true,
File diff suppressed because it is too large. Load diff
+4 -3
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="core" version="5000028">
<app key="core" version="5000029">
<word key="__app_core" js="0">System</word>
<word key="__indefart_personal_conversation" js="0">a personal conversation</word>
<word key="__indefart_personal_conversation_message" js="0">a message in a personal conversation</word>
@@ -11488,11 +11488,12 @@ In PHP8, altering overloaded method signatures within a subclass results in a fa
<word key="core_pagebuilder_wrap__columnLeft" js="1">Side Column (Left)</word>
<word key="core_pagebuilder_wrap__columnRight" js="1">Side Column (Right)</word>
<word key="core_pagebuilder_wrap__minimal" js="1">Minimal</word>
<word key="core_pagebuilder_wrap__minimal-carousel" js="1">Minimal Carousel</word>
<word key="core_pagebuilder_wrap__grid-carousel" js="1">Item Carousel</word>
<word key="core_pagebuilder_wrap__featured" js="1">Featured</word>
<word key="core_pagebuilder_wrap__featured-carousel" js="1">Featured Carousel</word>
<word key="core_pagebuilder_wrap__mini-grid" js="1">Minimal Grid</word>
<word key="core_pagebuilder_wrap__mini-grid-carousel" js="1">Minimal Carousel</word>
<word key="core_pagebuilder_wrap__mini-grid" js="1">Mini-Grid</word>
<word key="core_pagebuilder_wrap__mini-grid-carousel" js="1">Mini-Grid Carousel</word>
<word key="core_pagebuilder_wrap__table" js="1">Rows</word>
<word key="core_pagebuilder_wrap__table-carousel" js="1">Rows Carousel</word>
<word key="core_pagebuilder_wrap__wallpaper" js="1">Wallpaper</word>
+1 -1
View File
@@ -1 +1 @@
{"build":1727274854417}
{"build":1730168838633}
+311 -226
View File
@@ -11414,7 +11414,7 @@ setTimeout( function() {
{{if $item->canView() and $item->isAvailableFor('smallscreen')}}
{{$children = $item->children();}}
{{$active = $item->activeOrChildActive();}}
{{$active = $item->activeOrChildActive('smallscreen');}}
{{if $active}}
{{\IPS\core\FrontNavigation::i()->activePrimaryNavBar = $item->id;}}
{{endif}}
@@ -11850,7 +11850,7 @@ setTimeout( function() {
</li>
{{else}}
<li>
{{$active = $child->activeOrChildActive();}}
{{$active = $child->activeOrChildActive('smallscreen');}}
<a href='{$child->link()}' {{if method_exists( $child, 'target' ) AND $child->target()}}target='{$child->target()}'{{if $child->target() == '_blank'}} rel="noopener"{{endif}}{{endif}} {{if $active}}aria-current="page"{{endif}}>
<span class="ipsOffCanvas__icon">
{{if $child->getIconData()}}
@@ -20692,8 +20692,8 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
<a href="#elUserHovercard_{$member->member_id}_more_menu" id="elUserHovercard_{$member->member_id}{$rnd}_more" title='{lang="moderator_tools"}...' data-ipsTooltip data-ipsMenu data-ipsMenu-appendTo="#elUserHovercard_{$member->member_id}{$rnd}" class='i-flex_00 ipsButton ipsButton--inherit'><i class="fa-solid fa-ellipsis"></i></a>
{{endif}}
</div>
<div class='i-flex i-align-items_center'>
<div class='i-text-align_start i-flex_11'>
<div class='i-flex i-flex-wrap_wrap i-justify-content_space-between i-align-items_center'>
<div>
<div class='i-color_soft i-font-weight_500'>{lang="members_joined"}</div>
<div class='i-color_hard i-font-size_2 i-font-weight_600'>{datetime="$member->joined"}</div>
</div>
@@ -23366,41 +23366,37 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endif}}
{$table|raw}]]></template>
<template template_group="staffdirectory" template_name="layout_blocks" template_data="$users" template_location="front" template_app="core"><![CDATA[<div class='ipsGrid ipsGrid--lines ipsGrid--staff i-basis_200'>
{{foreach $users as $user}}
<div class='i-padding-block_3 i-flex i-flex-direction_column i-gap_2 i-text-align_center'>
<div class='i-flex i-justify-content_center'>
<div class='i-basis_120'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
</div>
<div>
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
{{else}}
{$user->member()->link()|raw}
{{endif}}
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id )}}
<p class='i-font-weight_500 i-color_soft i-margin-bottom_2'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
<template template_group="staffdirectory" template_name="layout_blocks" template_data="$user" template_location="front" template_app="core"><![CDATA[<div class='i-padding-block_3 i-flex i-flex-direction_column i-gap_2 i-text-align_center'>
<div class='i-flex i-justify-content_center'>
<div class='i-basis_120'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
</div>
<div>
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
</div>
<ul class='ipsList ipsList--inline i-justify-content_center i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_auto' data-ips-hook="staffInfo">
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<li><a href='#staffFull_{$user->id}' data-ipsdialog data-ipsDialog-content='#staffFull_{$user->id}' data-ipsdialog-size='medium' data-ipsdialog-title="{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}{lang="core_staff_directory_name_{$user->id}" escape="true"}{{else}}{$user->member()->name}{{endif}}: Bio"><i class="fa-regular fa-address-card i-margin-end_icon i-opacity_6"></i>Bio</a></li>
{{endif}}
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
{{endif}}
</ul>
<div id='staffFull_{$user->id}' class='ipsHide i-padding_3 i-font-size_2'>
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
</div>
{{endforeach}}
{{else}}
{$user->member()->link()|raw}
{{endif}}
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id )}}
<p class='i-font-weight_500 i-color_soft i-margin-bottom_2'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
{{endif}}
</div>
<ul class='ipsList ipsList--inline i-justify-content_center i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_auto' data-ips-hook="staffInfo">
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<li><a href='#staffFull_{$user->id}' data-ipsdialog data-ipsDialog-content='#staffFull_{$user->id}' data-ipsdialog-size='medium' data-ipsdialog-title="{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}{lang="core_staff_directory_name_{$user->id}" escape="true"}{{else}}{$user->member()->name}{{endif}}: Bio"><i class="fa-regular fa-address-card i-margin-end_icon i-opacity_6"></i>Bio</a></li>
{{endif}}
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
{{endif}}
</ul>
<div id='staffFull_{$user->id}' class='ipsHide i-padding_3 i-font-size_2'>
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
</div>]]></template>
<template template_group="staffdirectory" template_name="layout_blocks_preview" template_data="" template_location="front" template_app="core"><![CDATA[<div class='cStaffDirPreview cStaffDirPreview_blocks'>
<div class='ipsSpanGrid'>
@@ -23422,42 +23418,38 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
</div>
</div>
</div>]]></template>
<template template_group="staffdirectory" template_name="layout_full" template_data="$users" template_location="front" template_app="core"><![CDATA[<div class='ipsGrid ipsGrid--lines ipsGrid--staff-directory-full i-basis_100p'>
{{foreach $users as $user}}
<div class='i-padding_3 i-flex i-gap_3 i-align-items_center'>
<div class='i-basis_90 i-align-self_start'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
<div class='i-flex_11'>
<div class="i-flex i-flex-wrap_wrap i-gap_1">
<div class="i-flex_11">
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
{{else}}
{$user->member()->link()|raw}
{{endif}}
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id )}}
<p class='i-font-weight_600'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
<template template_group="staffdirectory" template_name="layout_full" template_data="$user" template_location="front" template_app="core"><![CDATA[<div class='i-padding_3 i-flex i-gap_3 i-align-items_center'>
<div class='i-basis_90 i-align-self_start'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
<div class='i-flex_11'>
<div class="i-flex i-flex-wrap_wrap i-gap_1">
<div class="i-flex_11">
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
</div>
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<ul class='ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500' data-ips-hook="staffInfo">
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
</ul>
{{else}}
{$user->member()->link()|raw}
{{endif}}
</div>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<div class='i-margin-top_3'>
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id )}}
<p class='i-font-weight_600'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
{{endif}}
</div>
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<ul class='ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500' data-ips-hook="staffInfo">
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
</ul>
{{endif}}
</div>
{{endforeach}}
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<div class='i-margin-top_3'>
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
{{endif}}
</div>
</div>]]></template>
<template template_group="staffdirectory" template_name="layout_full_preview" template_data="" template_location="front" template_app="core"><![CDATA[
<div class='cStaffDirPreview cStaffDirPreview_full'>
@@ -23477,39 +23469,35 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
<span class='cStaffDirPreview_text'></span>
</div>
</div>]]></template>
<template template_group="staffdirectory" template_name="layout_half" template_data="$users" template_location="front" template_app="core"><![CDATA[<div class='ipsGrid ipsGrid--lines ipsGrid--staff-directory-half i-basis_300'>
{{foreach $users as $user}}
<div class='i-padding_3 i-flex i-gap_3 i-align-items_center'>
<div class='i-basis_90'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
<div class='i-flex_11'>
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
{{else}}
{$user->member()->link()|raw}
{{endif}}
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) }}
<p class='i-font-weight_500 i-color_soft i-margin-bottom_2'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
<template template_group="staffdirectory" template_name="layout_half" template_data="$user" template_location="front" template_app="core"><![CDATA[<div class='i-padding_3 i-flex i-gap_3 i-align-items_center'>
<div class='i-basis_90'>{template="userPhoto" app="core" group="global" params="$user->member(), 'fluid'"}</div>
<div class='i-flex_11'>
<h3 class='ipsTitle ipsTitle--h4'>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}
{{if member.canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) )}}
<a href='{$user->member()->url()}'>{lang="core_staff_directory_name_{$user->id}" escape="true"}</a>
{{else}}
{lang="core_staff_directory_name_{$user->id}" escape="true"}
{{endif}}
<ul class='ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_1' data-ips-hook="staffInfo">
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<li><a href='#staffFull_{$user->id}' data-ipsdialog data-ipsDialog-content='#staffFull_{$user->id}' data-ipsdialog-size='medium' data-ipsdialog-title="{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}{lang="core_staff_directory_name_{$user->id}" escape="true"}{{else}}{$user->member()->name}{{endif}}: Bio"><i class="fa-regular fa-address-card i-margin-end_icon i-opacity_6"></i>Bio</a></li>
{{else}}
{$user->member()->link()|raw}
{{endif}}
</h3>
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) }}
<p class='i-font-weight_500 i-color_soft i-margin-bottom_2'>{lang="core_staff_directory_title_{$user->id}" escape="true"}</p>
{{endif}}
<ul class='ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_1' data-ips-hook="staffInfo">
{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id )}}
<li><a href='#staffFull_{$user->id}' data-ipsdialog data-ipsDialog-content='#staffFull_{$user->id}' data-ipsdialog-size='medium' data-ipsdialog-title="{{if $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) }}{lang="core_staff_directory_name_{$user->id}" escape="true"}{{else}}{$user->member()->name}{{endif}}: Bio"><i class="fa-regular fa-address-card i-margin-end_icon i-opacity_6"></i>Bio</a></li>
{{endif}}
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
{{endif}}
</ul>
<div id='staffFull_{$user->id}' class="i-padding_3 ipsHide">
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
</div>
{{if !member.members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) )}}
<li><a href='{url="app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}" seoTemplate="messenger_compose"}' data-ipsDialog data-ipsDialog-title='{lang="compose_new"}' data-ipsDialog-forceReload data-ipsDialog-remoteSubmit data-ipsDialog-flashMessage="{lang="message_sent"}"><i class='fa-regular fa-message i-margin-end_icon i-opacity_6'></i>{lang="message_send"}</a></li>
{{endif}}
</ul>
<div id='staffFull_{$user->id}' class="i-padding_3 ipsHide">
{template="richText" group="global" app="core" location="global" params="\IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id)"}
</div>
{{endforeach}}
</div>
</div>]]></template>
<template template_group="staffdirectory" template_name="layout_half_preview" template_data="" template_location="front" template_app="core"><![CDATA[<div class='cStaffDirPreview cStaffDirPreview_full'>
<div class='ipsSpanGrid'>
@@ -23559,7 +23547,11 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
<section class='ipsBox cStaffDirectory'>
<h2 class='ipsBox__header'>{$group->_title}</h2>
<div class='ipsBox__content'>
{template="$group->template" app="core" group="staffdirectory" location="front" params="$members"}
<div class="ipsGrid ipsGrid--lines ipsGrid--staff{{if $group->template == 'layout_full'}}-directory-full i-basis_100p{{elseif $group->template == 'layout_half'}}-directory-half i-basis_300{{else}} i-basis_200{{endif}}">
{{foreach $members as $member}}
{template="$group->template" app="core" group="staffdirectory" location="front" params="$member"}
{{endforeach}}
</div>
</div>
</section>
{{endif}}
@@ -29382,20 +29374,20 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
</nav>
{{endif}}
{{if $category->hasSettings() and $category->hasColors()}}
<editor-tabs data-tabs='{$category->key}'>
<button type='button' aria-controls='{$category->key}__settings' aria-expanded='true' data-on-click="changeTab"><i class='fa-solid fa-sliders'></i> {lang="theme_editor_panel_settings"}</button>
<button type='button' aria-controls='{$category->key}__colors' aria-expanded='false' data-on-click="changeTab"><i class='fa-solid fa-palette'></i> {lang="theme_editor_panel_colors"}</button>
<editor-tabs>
<button type='button' aria-controls='{$category->key}__settings' aria-expanded='true' data-ipscontrols><i class='fa-solid fa-sliders'></i> {lang="theme_editor_panel_settings"}</button>
<button type='button' aria-controls='{$category->key}__colors' aria-expanded='false' data-ipscontrols><i class='fa-solid fa-palette'></i> {lang="theme_editor_panel_colors"}</button>
</editor-tabs>
{{endif}}
{{if $category->hasSettings()}}
<editor-tab-content id='{$category->key}__settings' data-tabs-content='{$category->key}' aria-hidden='false'>
<editor-tab-content id='{$category->key}__settings' data-ips-hidden-group='{$category->key}'>
{{foreach $category->settings() as $setting}}
{$setting->editorHtml()|raw}
{{endforeach}}
</editor-tab-content>
{{endif}}
{{if $category->hasColors()}}
<editor-tab-content id='{$category->key}__colors' data-tabs-content='{$category->key}' aria-hidden='{{if $category->hasSettings()}}true{{else}}false{{endif}}'>
<editor-tab-content id='{$category->key}__colors' data-ips-hidden-group='{$category->key}' {{if $category->hasSettings()}}hidden{{endif}}>
{{foreach $category->colors() as $color}}
{$color->editorHtml()|raw}
{{endforeach}}
@@ -29409,10 +29401,12 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endforeach}}
{{endif}}]]></template>
<template template_group="themeeditor" template_name="settingCheckbox" template_data="$setting" template_location="front" template_app="core"><![CDATA[<theme-setting data-setting='{$setting->key}' data-type='{$setting->type}' {{if $setting->refresh}}data-setting-refresh{{endif}}>
<label for='{$setting->key}__checkbox'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<input type='text' id='{$setting->key}' name='{$setting->key}' value='{$setting->value()}' data-default='{$setting->defaultValue()}' hidden data-on-change="settingHasBeenChanged">
<input id='{$setting->key}__checkbox' type='checkbox' data-range-output='{$setting->key}' {{if $setting->value() == 1}}checked{{endif}} data-on-change="syncInputsWithPseudo">
<div class="theme-editor__align-setting">
<label for='{$setting->key}__checkbox'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<input type='text' id='{$setting->key}' name='{$setting->key}' value='{$setting->value()}' data-default='{$setting->defaultValue()}' hidden data-on-change="settingHasBeenChanged">
<input id='{$setting->key}__checkbox' type='checkbox' data-range-output='{$setting->key}' {{if $setting->value() == 1}}checked{{endif}} data-on-change="syncInputsWithPseudo">
</div>
{{if $desc = $setting->desc}}
<small>{$desc|raw}</small>
{{endif}}
@@ -29446,29 +29440,35 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endif}}
</theme-setting>]]></template>
<template template_group="themeeditor" template_name="settingRange" template_data="$setting" template_location="front" template_app="core"><![CDATA[<theme-setting data-setting='{$setting->key}' data-type='{$setting->type}' {{if $setting->refresh}}data-setting-refresh{{endif}}>
<label for='{$setting->key}__num'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<input type='number' inputmode='numeric' data-range-output='{$setting->key}' id='{$setting->key}__num' value='{$setting->value()|raw}' {{if isset( $setting->data['min'] )}}min="{$setting->data['min']}" {{endif}}{{if isset( $setting->data['max'] )}}max="{$setting->data['max']}" {{endif}}{{if isset( $setting->data['step'] )}}step="{$setting->data['step']}" {{endif}} data-on-change="syncInputsWithPseudo">
<div class="theme-editor__align-setting">
<label for='{$setting->key}__num'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<input type='number' inputmode='numeric' data-range-output='{$setting->key}' id='{$setting->key}__num' value='{$setting->value()|raw}' {{if isset( $setting->data['min'] )}}min="{$setting->data['min']}" {{endif}}{{if isset( $setting->data['max'] )}}max="{$setting->data['max']}" {{endif}}{{if isset( $setting->data['step'] )}}step="{$setting->data['step']}" {{endif}} data-on-change="syncInputsWithPseudo">
</div>
<input type='range' id='{$setting->key}' name='{$setting->key}' value='{$setting->value()|raw}' {{if isset( $setting->data['min'] )}}min="{$setting->data['min']}" {{endif}}{{if isset( $setting->data['max'] )}}max="{$setting->data['max']}" {{endif}}{{if isset( $setting->data['step'] )}}step="{$setting->data['step']}" {{endif}} data-default="{$setting->defaultValue()}" data-on-input="changingRangeInput" data-on-change="settingHasBeenChanged">
{{if $desc = $setting->desc}}
<small>{$desc|raw}</small>
{{endif}}
</theme-setting>]]></template>
<template template_group="themeeditor" template_name="settingSelect" template_data="$setting" template_location="front" template_app="core"><![CDATA[<theme-setting data-setting='{$setting->key}' data-type='{$setting->type}' {{if $setting->refresh}}data-setting-refresh{{endif}}>
<label for='{$setting->key}'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<select id='{$setting->key}' name='{$setting->key}' data-default="{$setting->defaultValue()}" data-on-change="settingHasBeenChanged">
{{foreach $setting->data['options'] as $option}}
<option value='{$option[0]}' {{if $option[0] == $setting->value()}}selected{{endif}}>{$option[1]}</option>
{{endforeach}}
</select>
<div class="theme-editor__align-setting">
<label for='{$setting->key}'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<select id='{$setting->key}' name='{$setting->key}' data-default="{$setting->defaultValue()}" data-on-change="settingHasBeenChanged">
{{foreach $setting->data['options'] as $option}}
<option value='{$option[0]}' {{if $option[0] == $setting->value()}}selected{{endif}}>{$option[1]}</option>
{{endforeach}}
</select>
</div>
{{if $desc = $setting->desc}}
<small>{$desc|raw}</small>
{{endif}}
</theme-setting>]]></template>
<template template_group="themeeditor" template_name="settingText" template_data="$setting" template_location="front" template_app="core"><![CDATA[<theme-setting data-setting='{$setting->key}' data-type='{$setting->type}' {{if $setting->refresh}}data-setting-refresh{{endif}}>
<label for='{$setting->key}'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
<div class="theme-editor__align-setting">
<label for='{$setting->key}'>{$setting->name}</label>
<button class='theme-editor__revert' type='button' data-revert='{$setting->key}' {{if $setting->value() == $setting->defaultValue()}}hidden{{endif}} data-ipstooltip title='{lang="theme_editor_revert"}' data-on-click="revertSetting"><i class="fa-solid fa-clock-rotate-left"></i><span class="ipsInvisible">{lang="theme_editor_revert"}</span></button>
</div>
<input type='text' spellcheck='false' id='{$setting->key}' name='{$setting->key}' value='{$setting->value()|raw}' enterkeyhint='done' data-default="{$setting->defaultValue()}" data-on-input="changingTextInput" data-on-change="settingHasBeenChanged">
{{if $desc = $setting->desc}}
<small>{$desc|raw}</small>
@@ -29619,11 +29619,11 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
</h2>
</div>
</header>
<editor-tabs data-tabs='swatch-color-picker'>
<button type='button' aria-controls='content__colorSelector__swatches' aria-expanded='true' data-on-click="changeTab"><i class="fa-solid fa-swatchbook"></i>{lang="theme_editor_swatches"}</button>
<button type='button' aria-controls='content__colorSelector__colorPicker' aria-expanded='false' data-on-click="changeTab"><i class="fa-solid fa-eye-dropper"></i>{lang="theme_editor_color_picker"}</button>
<editor-tabs>
<button type='button' aria-controls='content__colorSelector__swatches' aria-expanded='true' data-ipscontrols><i class="fa-solid fa-swatchbook"></i>{lang="theme_editor_swatches"}</button>
<button type='button' aria-controls='content__colorSelector__colorPicker' aria-expanded='false' data-ipscontrols><i class="fa-solid fa-eye-dropper"></i>{lang="theme_editor_color_picker"}</button>
</editor-tabs>
<editor-tab-content id='content__colorSelector__swatches' data-tabs-content='swatch-color-picker' aria-hidden='false'>
<editor-tab-content id='content__colorSelector__swatches' data-ips-hidden-group='swatch-color-picker'>
<div data-swatches>
<ul class='theme-editor__swatches' data-swatch-category='base'>
{{for $i=1; $i<=6; $i++}}
@@ -29651,7 +29651,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
</ul>
</div>
</editor-tab-content>
<editor-tab-content id='content__colorSelector__colorPicker' data-tabs-content='swatch-color-picker' aria-hidden='true'>
<editor-tab-content id='content__colorSelector__colorPicker' data-ips-hidden-group='swatch-color-picker' hidden>
<div data-color-picker>
<color-picker></color-picker>
<input type='text' id="color-picker-text" data-color-picker-text data-on-change="colorPickerTextBlur">
@@ -29889,7 +29889,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{if ( request.root and !request.noshowroot ) or ($searchable && !empty( $rows )) }}
<div class="ipsButtonBar ipsButtonBar--top">
<div class="ipsButtonBar__start i-font-size_1">
<div class="ipsButtonBar__start">
{{if ( request.root and !request.noshowroot )}}
<!-- Back to root buttons -->
<a href='{$url}' class='ipsButton ipsButton--secondary ipsButton--small'><i class="fa-solid fa-arrow-left"></i> {lang="$title"}</a>
@@ -29900,6 +29900,8 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
<a href='{$url->setQueryString( array( 'root' => $rootParent ) )}' class='ipsButton ipsButton--inherit ipsButton--small'><i class="fa-solid fa-arrow-left"></i></a>
{{endif}}
{{endif}}
{{elseif $pagination}}
{$pagination|raw}
{{endif}}
</div>
<div class="ipsButtonBar__end">
@@ -29932,7 +29934,7 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endif}}
{{endif}}
{{if $pagination}}
<div class="i-margin-top_1">
<div class="ipsButtonBar ipsButtonBar--bottom">
{$pagination|raw}
</div>
{{endif}}
@@ -30876,27 +30878,23 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
</div>]]></template>
<template template_group="widgets" template_name="topContributorRows" template_data="$results, $timeframe, $layout='table', $isCarousel=false" template_location="front" template_app="core"><![CDATA[{{if \count( $results )}}
<i-data>
<ol class="ipsData ipsData--grid cTopContributors i-basis_320">
{{$idx = 1;}}
<ol class="ipsData ipsData--mini-grid cTopContributors i-basis_320">
{{foreach $results as $memberId => $rep}}
{{$member = \IPS\Member::load( $memberId );}}
<li class='ipsData__item i-align-items_center'>
<a href="{$member->url()}" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$member->name}</span></a>
<strong class='i-color_soft'>{expression="$idx++"}</strong>
<div class="ipsData__icon">
{template="userPhoto" app="core" group="global" params="$member, 'fluid'"}
</div>
<div class='ipsData__content'>
<div class='ipsData__main'>
<div class='ipsPhotoPanel'>
{template="userPhoto" app="core" group="global" params="$member, 'fluid'"}
<div class='ipsPhotoPanel__text'>
<div class='ipsPhotoPanel__primary'>{$member->link()|raw}</div>
<div class='ipsPhotoPanel__secondary'>
{{if member.group['gbw_view_reps']}}
<a href='{url="app=core&module=members&controller=profile&id={$member->member_id}&do=reputation" seoTemplate="profile_reputation" seoTitle="$member->members_seo_name"}' title="{lang="reputation_badge_tooltip_period"}" data-ipsTooltip class='ipsRepBadge {{if $rep > 0}}ipsRepBadge--positive{{elseif $rep < 0}}ipsRepBadge--negative{{else}}ipsRepBadge_neutral{{endif}}'><i class='{{if $rep > 0}}fa-solid fa-plus-circle{{elseif $rep < 0}}fa-solid fa-minus-circle{{else}}fa-regular fa-circle{{endif}}'></i> {expression="\IPS\Member::loggedIn()->language()->formatNumber( $rep )"}</a>
{{else}}
<span title="{lang="reputation_badge_tooltip_period"}" data-ipsTooltip class='ipsRepBadge {{if $rep > 0}}ipsRepBadge--positive{{elseif $rep < 0}}ipsRepBadge--negative{{else}}ipsRepBadge_neutral{{endif}}'><i class='{{if $rep > 0}}fa-solid fa-plus-circle{{elseif $rep < 0}}fa-solid fa-minus-circle{{else}}fa-regular fa-circle{{endif}}'></i> {expression="\IPS\Member::loggedIn()->language()->formatNumber( $rep )"}</span>
{{endif}}
</div>
</div>
<div class='ipsData__title'>{$member->link()|raw}</div>
<div class='ipsData__meta'>
{{if member.group['gbw_view_reps']}}
<a href='{url="app=core&module=members&controller=profile&id={$member->member_id}&do=reputation" seoTemplate="profile_reputation" seoTitle="$member->members_seo_name"}' title="{lang="reputation_badge_tooltip_period"}" data-ipsTooltip class='ipsRepBadge {{if $rep > 0}}ipsRepBadge--positive{{elseif $rep < 0}}ipsRepBadge--negative{{else}}ipsRepBadge_neutral{{endif}}'><i class='{{if $rep > 0}}fa-solid fa-plus-circle{{elseif $rep < 0}}fa-solid fa-minus-circle{{else}}fa-regular fa-circle{{endif}}'></i> {expression="\IPS\Member::loggedIn()->language()->formatNumber( $rep )"}</a>
{{else}}
<span title="{lang="reputation_badge_tooltip_period"}" data-ipsTooltip class='ipsRepBadge {{if $rep > 0}}ipsRepBadge--positive{{elseif $rep < 0}}ipsRepBadge--negative{{else}}ipsRepBadge_neutral{{endif}}'><i class='{{if $rep > 0}}fa-solid fa-plus-circle{{elseif $rep < 0}}fa-solid fa-minus-circle{{else}}fa-regular fa-circle{{endif}}'></i> {expression="\IPS\Member::loggedIn()->language()->formatNumber( $rep )"}</span>
{{endif}}
</div>
</div>
</div>
@@ -30917,24 +30915,26 @@ data-view-tracking-data="{expression="base64_encode(json_encode( $review->getVie
{{endif}}]]></template>
<template template_group="widgets" template_name="topContributors" template_data="$topContributorsThisWeek, $limit, $layout='table', $isCarousel=false" template_location="front" template_app="core"><![CDATA[<h3 class='ipsWidget__header'>{lang="block_topContributors"}</h3>
<div class='ipsWidget__content'>
<div class='ipsTabs ipsTabs--stretch' id='elTopContributors' data-ipsTabBar data-ipsTabBar-updateURL='false' data-ipsTabBar-contentArea='#elTopContributors_content'>
{{$tabID = mt_rand();}}
<div class='ipsTabs ipsTabs--stretch' id='elTopContributors_{$tabID}' data-ipsTabBar data-ipsTabBar-updateURL='false' data-ipsTabBar-contentArea='#elTopContributors_{$tabID}_content'>
<ul role="tablist">
<li>
<a href='#ipsTabs_elTopContributors_el_topContributorsWeek_panel' id='el_topContributorsWeek' class='ipsTabs__tab ipsTabs__tab--active' role="tab" aria-selected='true'>{lang="week"}</a>
<a href='#ipsTabs_elTopContributors_el_topContributorsWeek_panel' id='el_topContributorsWeek_{$tabID}' class='ipsTabs__tab ipsTabs__tab--active' role="tab" aria-selected='true'>{lang="week"}</a>
</li>
<li>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=month&limit={$limit}"}' id='el_topContributorsMonth' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="month"}</a>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=month&limit={$limit}"}' id='el_topContributorsMonth_{$tabID}' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="month"}</a>
</li>
<li>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=year&limit={$limit}"}' id='el_topContributorsYear' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="year"}</a>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=year&limit={$limit}"}' id='el_topContributorsYear_{$tabID}' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="year"}</a>
</li>
<li>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=all&limit={$limit}"}' id='el_topContributorsAll' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="alltime"}</a>
<a href='{url="app=core&module=system&controller=ajax&do=topContributors&time=all&limit={$limit}"}' id='el_topContributorsAll_{$tabID}' class='ipsTabs__tab' role="tab" aria-selected='false'>{lang="alltime"}</a>
</li>
</ul>
{template="tabScrollers" app="core" group="global" location="global"}
</div>
<section id='elTopContributors_content' class='ipsTabs__panels'>
<div id="ipsTabs_elTopContributors_el_topContributorsWeek_panel" class='ipsTabs__panel'>
<section id='elTopContributors_{$tabID}_content' class='ipsTabs__panels'>
<div id="ipsTabs_elTopContributors_{$tabID}_el_topContributorsWeek_panel" class='ipsTabs__panel'>
{template="topContributorRows" group="widgets" app="core" params="$topContributorsThisWeek, 'week', $layout, $isCarousel"}
</div>
</section>
@@ -34557,6 +34557,12 @@ body:not( .cAdminHideMenu ) #elHideMenu [data-action="toggleOpen"] {
font-weight: inherit;
}
/* Fix alignment of "Enabled"/"Disabled" badge */
.ipsTree_toggleEnable,
.ipsTree_toggleDisable{
display: flex;
}
/* Stack styles */
.ipsTree_parent:not(.ipsTree_noToggle) {
cursor: pointer;
@@ -35823,13 +35829,16 @@ dialog:not([open]){
/* Mobile header */
--set__i-mobile-header--he: 60;
/* Side panel */
/* Navigation panel */
--set__i-sidebar-ui-header--he: 65;
/* Sidebar */
--set__i-sidebar-width: 350;
--set__i-flip-sidebar: 0;
--set__i-sticky-sidebar: 1;
/* Body */
--set__i-layout-width: 1500;
--set__i-flip-sidebar: 0;
--set__i-sticky-sidebar: 1;
--set__i-avatar-radius: 1;
/* Content boxes */
@@ -35958,6 +35967,21 @@ dialog:not([open]){
--light__i-mobileFooter-active--ba-co: var(--i-primary);
--dark__i-mobileFooter-active--ba-co: var(--i-primary);
/* Buttons */
--i-button--bo-ra: 8;
--i-button--te-tr: normal;
--light__i-primary-button--ba-co: var(--i-primary);
--dark__i-primary-button--ba-co: var(--i-primary);
--light__i-primary-button--co: var(--i-primary-contrast);
--dark__i-primary-button--co: var(--i-primary-contrast);
--light__i-secondary-button--ba-co: var(--i-secondary);
--dark__i-secondary-button--ba-co: var(--i-secondary);
--light__i-secondary-button--co: var(--i-secondary-contrast);
--dark__i-secondary-button--co: var(--i-secondary-contrast);
}
[data-ips-scheme=&quot;light&quot;]{
@@ -35992,6 +36016,10 @@ dialog:not([open]){
--i-mobileFooter--co: var(--light__i-mobileFooter--co);
--i-mobileFooter-active--co: var(--light__i-mobileFooter-active--co);
--i-mobileFooter-active--ba-co: var(--light__i-mobileFooter-active--ba-co);
--i-primary-button--ba-co: var(--light__i-primary-button--ba-co);
--i-primary-button--co: var(--light__i-primary-button--co);
--i-secondary-button--ba-co: var(--light__i-secondary-button--ba-co);
--i-secondary-button--co: var(--light__i-secondary-button--co);
}
[data-ips-scheme=&quot;dark&quot;]{
@@ -36026,6 +36054,10 @@ dialog:not([open]){
--i-mobileFooter--co: var(--dark__i-mobileFooter--co);
--i-mobileFooter-active--co: var(--dark__i-mobileFooter-active--co);
--i-mobileFooter-active--ba-co: var(--dark__i-mobileFooter-active--ba-co);
--i-primary-button--ba-co: var(--dark__i-primary-button--ba-co);
--i-primary-button--co: var(--dark__i-primary-button--co);
--i-secondary-button--ba-co: var(--dark__i-secondary-button--ba-co);
--i-secondary-button--co: var(--dark__i-secondary-button--co);
}</css>
<css css_location="global" css_app="core" css_attributes="" css_path="framework" css_name="1-3-variables.css"><![CDATA[/*
----------------
@@ -36225,7 +36257,6 @@ dialog:not([open]){
--i-button--bo-st: solid;
--i-button--bo-sh: none;
--i-button--fo-we: 600;
--i-button--bo-ra: var(--i-design-radius);
--i-button--pa-bl: .7em;
--i-button--pa-in: 1.2em;
@@ -36410,12 +36441,12 @@ dialog:not([open]){
--i-base-c-light: var(--i-base-c-dark) * var(--i-base-l); /* As lightness increases, chroma decreases */
--i-base-h: var(--light__i-base-h);
--i-base_1: oklch(calc(80% + 20% * var(--i-base-l)) calc(5% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_2: oklch(calc(77% + 22% * var(--i-base-l)) calc(5.75% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_3: oklch(calc(73% + 23% * var(--i-base-l)) calc(6.75% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_4: oklch(calc(68% + 21% * var(--i-base-l)) calc(9% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_5: oklch(calc(65% + 22% * var(--i-base-l)) calc(12.25% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_6: oklch(calc(60% + 23% * var(--i-base-l)) calc(14.25% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_1: oklch(calc(80% + 20% * var(--i-base-l)) calc(5% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_2: oklch(calc(77% + 22% * var(--i-base-l)) calc(6% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_3: oklch(calc(73% + 23% * var(--i-base-l)) calc(7% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_4: oklch(calc(68% + 21% * var(--i-base-l)) calc(9% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_5: oklch(calc(65% + 22% * var(--i-base-l)) calc(12% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base_6: oklch(calc(60% + 20% * var(--i-base-l)) calc(14% * var(--i-base-c-dark) - 5% * var(--i-base-c-light)) var(--i-base-h));
--i-base-contrast_1: oklch(calc(40% + 10% * var(--i-base-l)) calc(var(--i-base-c) * 46%) var(--i-base-h));
--i-base-contrast_2: oklch(calc(37% + 9% * var(--i-base-l)) calc(var(--i-base-c) * 46%) var(--i-base-h));
@@ -37499,7 +37530,7 @@ a:has(.ipsBadge){
border-width: var(--i-button--bo-wi);
border-style: var(--i-button--bo-st);
border-color: var(--i-button--bo-co);
border-radius: var(--i-button--bo-ra);
border-radius: calc(var(--i-button--bo-ra) * 1px);
box-shadow: var(--i-button--bo-sh);
vertical-align: baseline;
}
@@ -37651,8 +37682,8 @@ a:has(.ipsBadge){
}
.ipsButton--primary{
--i-button--ba-co: var(--i-primary);
--i-button--co: var(--i-primary-contrast);
--i-button--ba-co: var(--i-primary-button--ba-co);
--i-button--co: var(--i-primary-button--co);
}
.ipsButton--secondary{
@@ -40040,7 +40071,7 @@ i-data{
flex: 1 1 100%;
display: flex;
flex-wrap: wrap;
gap: 0 .6em;
gap: 0 .4em;
align-items: baseline;
}
@@ -40064,17 +40095,10 @@ i-data{
font-weight: 600;
}
/* Middot separated */
/* :where(.ipsData:not(.ipsData--category.ipsData--table) .ipsData__last-text:has(.ipsData__last-secondary:nth-child(2)))::after{
content: "";
} */
/* Place secondary after middot */
/* .ipsData__content .ipsData__last-secondary{
order: 3;
} */
/* Add middot between latest author and date */
.ipsData__last-text:has(> :nth-child(2))::after{
content: "\00B7";
}
:where(.ipsData__last-secondary){
font-size: 1em; /* Reset font-size for <small> elements */
@@ -40128,14 +40152,9 @@ i-data{
:is(.ipsData--table, .ipsData--minimal, .ipsData--mini-grid) [data-ips-read] .ipsData__last-primary{
color: var(--i-color_soft);
}
/* If a username exists in the meta area and if there are 0 comments, we can assume that the username in the "last" area is the original author. Lets hide it on small UI's to save space */
/* :where(.ipsData__item:has(.ipsData__meta .ipsUsername):has([data-stattype$="comments"][data-v="0"])) .ipsData__last{
display: none;
} */
/* If a username exists in the meta area and if there are more than 0 comments, we can assume that the username in the "last" area has replied to the content. Prepend a "replied icon" */
:where(.ipsData__item:has(.ipsData__meta .ipsUsername):not(:has([data-stattype*="comments"][data-v="0"]))) .ipsData__last-text::before{
:where(.ipsData__item:has(.ipsData__meta .ipsUsername):not(:has([data-stattype*="comments"][data-v="0"]))) .ipsData__last-primary::before{
content: "\f3e5";
font-family: var(--i-font-awesome);
-moz-osx-font-smoothing: grayscale;
@@ -40145,6 +40164,7 @@ i-data{
font-size: .8em;
color: var(--i-color_soft);
opacity: .7;
margin-inline-end: .5em;
}
}
@@ -40244,11 +40264,11 @@ i-data{
.ipsSubList{
display: var(--i-data--display-subforums, flex);
flex-wrap: wrap;
gap: 5px;
margin-top: 1em;
font-size: 0.9em;
font-weight: 500;
color: var(--i-color_root);
margin-inline-start: -.9em;
}
.ipsSubList a{
@@ -40257,6 +40277,7 @@ i-data{
text-decoration: none !important;
padding: .4em .9em;
border-radius: min(var(--i-design-radius), 5px);
background-color: color-mix(in srgb, currentColor 10%, transparent);
}
.ipsSubList a::before{
@@ -40286,7 +40307,7 @@ i-data{
@media (any-hover:hover){
.ipsSubList a:hover{
background-color: var(--if-light, var(--i-background_3)) var(--if-dark, color-mix(in srgb, currentColor 10%, transparent));
background-color: color-mix(in srgb, currentColor 15%, transparent);
}
}
@@ -40433,11 +40454,11 @@ i-data{
.ipsData--table .ipsData__last .ipsUserPhoto{
width: 2em;
}
.ipsData--table .ipsData__content .ipsData__last-text{
.ipsData--table .ipsData__last-text{
display: grid;
}
/* Remove comma/replied icon */
.ipsData--table .ipsData__content .ipsData__last-secondary::before{
/* Remove middot/replied icon */
.ipsData--table .ipsData__last-text::after{
display: none;
}
@@ -40506,11 +40527,11 @@ i-data{
/* Coloured titles */
@supports (color: hsl(from var(--i) h s 30%)) and (color: oklch(from red l c h)){
[data-ips-scheme="light"] .ipsData--category .ipsData__item[style*="--i-featured"] .ipsData__title,
[data-ips-scheme="light"] .ipsCategoryWithFeed__item[style*="--i-featured"] .ipsData--forum-feed-view-forum .ipsData__title{
[data-ips-scheme="light"] .ipsCategoryWithFeed__item[style*="--i-featured"] .ipsData--forumFeedViewParent .ipsData__title{
color: oklch(from var(--i-featured) min(.4, l) c h);
}
[data-ips-scheme="dark"] .ipsData--category .ipsData__item[style*="--i-featured"] .ipsData__title,
[data-ips-scheme="dark"] .ipsCategoryWithFeed__item[style*="--i-featured"] .ipsData--forum-feed-view-forum .ipsData__title{
[data-ips-scheme="dark"] .ipsCategoryWithFeed__item[style*="--i-featured"] .ipsData--forumFeedViewParent .ipsData__title{
color: oklch(from var(--i-featured) max(.85, l) c h);
}
}
@@ -40912,8 +40933,12 @@ i-data{
.ipsData--minimal .ipsData__item{
container-type: normal;
}
.ipsData--minimal .ipsData__icon{
align-self: start;
.ipsData--minimal .ipsData__title{
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
overflow: hidden;
}
.ipsData--minimal .ipsData__extra{
margin-top: .2em;
@@ -40928,10 +40953,36 @@ i-data{
}
}
.ipsData--minimal .ipsData__extra .ipsData__stats{
/* margin-inline-start: auto; */
order: 1;
}
/* Hide certain elements */
.ipsData--minimal .ipsData__fields,
.ipsData--minimal .ipsBadge--prefix,
.ipsData--minimal .ipsTags,
.ipsData .ipsRating,
.ipsData--minimal .ipsTime__long{
display: none;
}
.ipsData--minimal .ipsTime__short{
display: revert;
}
/* If placed within a widget, let the widget settings control the variables */
:where(.cWidgetContainer--isWidget) .ipsData--carousel.ipsData--minimal {
--i-data--basis: var(--i-widget--size, 300px);
}
/* Minimal carousels always have a 1px border between items */
.ipsData--carousel.ipsData--minimal {
gap: 1px;
}
.ipsData--carousel.ipsData--minimal .ipsData__item{
border-width: 0;
outline: 1px solid var(--i-background_3);
}
/*
----------------
@@ -41567,9 +41618,10 @@ a:has(.ipsContainerTitle){
margin: -1px; /* The -1px centers the button along the 2px node outline */
}
.ipsEditor__create-sibling > .ipsEditor__create-sibling-arrow {
margin-inline-start: 0.5em;
}
/* Leaving this here in case we need it. I've noticed some cases where the arrows are not centered, but this breaks the regular view */
/*.ipsEditor__create-sibling > .ipsEditor__create-sibling-arrow {*/
/* margin-inline-start: 0.5em;*/
/*}*/
.tiptap .react-renderer :is(.ipsEditor__node-options--media > .ipsEditor__toolbar-item--media-options, .ipsEditor__create-sibling, .ipsEditor__toolbar-item--escapeembed, .ipsEditor__toolbar-item--embeddimensions):not(.ipsEditor__node-options--open > *) {
display: none;
@@ -42120,6 +42172,11 @@ a:has(.ipsContainerTitle){
cursor: var(--i-drag-cursor) !important;
}
/* Firefox: Prevent videos from playing when dragging to resize */
.tiptap [data-attachment-type="video"][data-is-resizing] video{
pointer-events: none;
}
.cWidgetContainer__portal-menu [data-action='cancel'] {
background-color: var(--i-color_negative);
color: var(--i-primary-contrast);
@@ -48533,6 +48590,10 @@ a.ipsPixabayAttribution {
text-wrap: pretty;
}
.ipsPageHeader__title a{
color: inherit;
}
/* Align children inside .ipsPageHeader__title */
:where(.ipsPageHeader__title > :is(h1, h2, h3, h4, h5):not(:only-child)){
display: inline;
@@ -49665,6 +49726,7 @@ iframe[data-embedContent] {
}
.ipsEmbeddedVideo iframe {
display: block; /* This removes the empty gap caused by inline elements */
width: 100%;
height: 100%;
}
@@ -49690,6 +49752,11 @@ iframe[data-embedContent] {
position: relative;
}
/* Set an initial height of iframes before the JS assigns a more accurate one */
:where(.ipsEmbeddedOther iframe[data-controller="core.front.core.autosizeiframe"]){
height: 400px;
}
.ipsEmbeddedBrightcove {
position: relative;
display: block;
@@ -49710,7 +49777,6 @@ iframe[data-embedContent] {
.ipsEmbedded_og:not(#x) {
width: var(--i-embed-default-width);
max-width: 100%;
/*border-radius: var(--i-box--bo-ra);*/
overflow: hidden;
padding: 0;
margin: 1em 0;
@@ -51561,7 +51627,7 @@ details.ipsQuote > .ipsQuote_contents{
.ipsTabs__tab {
--i-outline-offset: -2px;
display: block;
padding: .7em 1.4em;
padding: .7em 1.3em;
border-radius: 5px;
font-weight: 600;
color: var(--i-co);
@@ -52200,7 +52266,7 @@ html .ipsTruncate_more{
/* Prevent times from wrapping, eg: Feb
22
*/
.ipsTime{
.ipsTime--short{
white-space: nowrap;
}
/* Long times by default on desktops */
@@ -53303,7 +53369,7 @@ i-navigation-menu{
}
.ipsLayout__secondary-column{
flex: 1 1 350px;
flex: 1 1 calc(var(--set__i-sidebar-width, 350) * 1px);
display: grid;
}
@@ -56075,17 +56141,9 @@ form.no_submit button[type=&quot;submit&quot;] {
}]]></css>
<css css_location="front" css_app="core" css_attributes="" css_path="styles" css_name="embeds.css">[data-role=&quot;internalEmbed&quot;] {
background: var(--i-background_1);
overflow: hidden;
/* v5 todo: Is the below still needed? */
/* iOS responsive fix */
width: 1px;
min-width: 100%;
}
html {
background: var(--i-background_1);
}
[data-role=&quot;externalEmbed&quot;]{
/*background: none !important;*/
[data-role=&quot;externalEmbed&quot;],
[data-role=&quot;internalEmbed&quot;]{
overflow: hidden;
}
@@ -56093,10 +56151,6 @@ html {
display: none;
}
.unloaded #ipsEmbedLoading {
background: var(--i-background_1);
display: grid;
@@ -56149,6 +56203,12 @@ html {
#ipsEmbed {
opacity: 0.0001;
overflow: hidden;
}
/* Ensure white background is hidden from embedded tweets while in dark mode */
#ipsEmbed .twitter-tweet{
border-radius: 15px;
overflow: hidden;
}</css>
<css css_location="front" css_app="core" css_attributes="" css_path="styles" css_name="leaderboard.css">/*
----------------
@@ -57405,8 +57465,7 @@ editor-panel header{
text-transform: uppercase;
font-weight: 600;
font-size: .9em;
border-bottom: 1px solid;
border-color: var(--panel--bo-co);
outline-offset: -2px;
}
[data-panel-nav="back"]::before{
@@ -57438,7 +57497,7 @@ editor-panel header{
padding: .6em;
display: grid;
}
.theme-editor__nav:empty{
.theme-editor__nav:not(:has(button)){
display: none;
}
@@ -57517,28 +57576,34 @@ editor-panel header{
}
theme-setting{
display: flex;
display: block;
}
theme-setting:where(:not([data-type="color"])){
flex-wrap: wrap;
gap: 5px;
padding: 30px 20px;
padding: 20px 20px;
}
theme-setting[data-type="color"]{
display: flex;
}
theme-setting[data-setting="header-drag"]{
padding: 30px 5px;
}
/* Align elements inside settings */
.theme-editor__align-setting{
display: flex;
align-items: center;
gap: 5px;
}
editor-panel label{
/* flex: 999 1 auto; */
flex: 0 1 auto;
flex: 0 0 auto;
font-weight: 600;
color: var(--panel--co_hard);
cursor: pointer;
align-self: center;
/* Restrict width of labels in range settings, to accomodate for the num input - and restrict max-width of labels when revert button is visible */
max-width: calc(100% - 7em);
}
editor-panel small{
@@ -57642,6 +57707,11 @@ editor-panel [type="range"] {
}
}
editor-panel [type="range"]:focus-visible{
--_track--op: .7;
--_thumb--sc: 1;
}
editor-panel [type="range"]::-webkit-slider-runnable-track {
background: currentColor;
opacity: var(--_track--op, .2);
@@ -57834,6 +57904,7 @@ editor-panel [type="number"]{
padding: .4em;
padding-inline-start: 0;
font-variant-numeric: tabular-nums;
font-weight: 600;
}
editor-panel [type="number"]::-webkit-outer-spin-button,
@@ -57867,14 +57938,27 @@ editor-panel select{
border-width: 0;
font-weight: 500;
font-size: .9em;
/* flex: 1 1 auto; */
flex: 1 1 100%;
flex: 0 999 auto;
field-sizing: content;
margin-inline-start: auto;
text-overflow: ellipsis;
overflow: hidden;
outline-offset: -2px;
text-align: end;
}
editor-panel select:hover{
background-color: color-mix(in srgb, var(--panel--ba-co-alt), white 5%);
}
editor-panel select:focus{
outline-width: 0;
}
editor-panel select:focus-visible{
outline: 2px solid currentColor;
}
:where([data-ips-scheme="dark"]) editor-panel select{
background-image: var(--i-select--light-arrow);
}
@@ -57910,6 +57994,7 @@ editor-panel select:hover{
position: relative;
overflow: hidden;
border-radius: 5px;
outline-offset: -6px;
}
.theme-editor__palette [data-controls*="primary"]{
@@ -58590,7 +58675,7 @@ editor-panel [data-color-picker-text]{
/* Conditional categories/settings: Some setting categories should be hidden depending on the status of other settings (ie. the Desktop Header settings shouldn't be displayed if the sidebar UI is enabled) */
.editor__form:has(#layout_global_view_mode [value="side"]:checked) :is([data-panel-nav][aria-controls="panel__desktopHeader"], [data-setting="set__i-logo--he"], [data-setting="set__i-desktop-logo--fo-si"]),
.editor__form:has(#layout_global_view_mode [value="default"]:checked) :is([data-panel-nav][aria-controls="panel__sidePanel"], [data-setting="set__i-sidebar-ui-logo--he"], [data-setting="set__i-sidebar-ui-logo--fo-si"]){
.editor__form:has(#layout_global_view_mode [value="default"]:checked) :is([data-panel-nav][aria-controls="panel__navigationPanel"], [data-setting="set__i-sidebar-ui-logo--he"], [data-setting="set__i-sidebar-ui-logo--fo-si"]){
display: none;
}
+435 -343
View File
@@ -45,6 +45,16 @@
"cat_key": "mobileNavigation",
"cat_icon": "fa-solid fa-mobile-screen"
},
"navigationPanel": {
"cat_name": "Navigation panel",
"cat_key": "navigationPanel",
"cat_icon": "fa-solid fa-table-columns"
},
"global": {
"cat_name": "Global",
"cat_key": "global",
"cat_icon": "fa-solid fa-rectangle-list"
},
"textLogo": {
"cat_name": "Text Logo",
"cat_key": "textLogo",
@@ -75,23 +85,41 @@
"cat_icon": "fa-solid fa-mobile-screen",
"cat_parent": "header"
},
"body": {
"cat_name": "Body",
"cat_key": "body",
"cat_icon": "fa-solid fa-arrows-left-right-to-line",
"cat_parent": "content"
},
"contentBoxes": {
"cat_name": "Content boxes",
"cat_key": "contentBoxes",
"cat_icon": "fa-solid fa-rectangle-list",
"cat_parent": "content"
},
"desktopFooter": {
"cat_name": "Desktop footer",
"cat_key": "desktopFooter",
"cat_icon": "fa-solid fa-display",
"cat_parent": "footer"
},
"body": {
"cat_name": "Body",
"cat_key": "body",
"cat_icon": "fa-solid fa-arrows-left-right-to-line",
"cat_parent": "global"
},
"contentBoxes": {
"cat_name": "Content boxes",
"cat_key": "contentBoxes",
"cat_icon": "fa-solid fa-rectangle-list",
"cat_parent": "global"
},
"sidebar": {
"cat_name": "Sidebar",
"cat_key": "sidebar",
"cat_icon": "fa-solid fa-table-list",
"cat_parent": "global"
},
"avatars": {
"cat_name": "Avatars",
"cat_key": "avatars",
"cat_icon": "fa-solid fa-circle-user",
"cat_parent": "global"
},
"buttons": {
"cat_name": "Buttons",
"cat_key": "buttons",
"cat_icon": "fa-solid fa-hand-pointer",
"cat_parent": "global"
}
},
"settings": {
@@ -118,16 +146,6 @@
"default": "system",
"cat": "lightDarkMode"
},
"i-footer--co": {
"key": "i-footer--co",
"type": "color",
"name": "Footer text",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_4)",
"dark_default": "var(--i-base-contrast_4)",
"cat": "footer"
},
"set__i-logo-text": {
"key": "set__i-logo-text",
"type": "text",
@@ -137,49 +155,27 @@
"default": "{setting='board_name'}",
"cat": "textLogo"
},
"set__i-design-border": {
"key": "set__i-design-border",
"set__i-sidebar-width": {
"key": "set__i-sidebar-width",
"type": "range",
"name": "Border width",
"name": "Sidebar width (px)",
"desc": "",
"refresh": false,
"min": 0,
"max": "5",
"default": "1",
"cat": "contentBoxes"
"min": 250,
"max": 450,
"step": 1,
"default": "350",
"cat": "sidebar"
},
"set__i-layout-width": {
"key": "set__i-layout-width",
"type": "range",
"name": "Max-width",
"i-primary-button--co": {
"key": "i-primary-button--co",
"type": "color",
"name": "Primary button color",
"desc": "",
"refresh": false,
"min": "980",
"max": "2500",
"default": "1500",
"cat": "body"
},
"set__i-sidebar-ui-header--he": {
"key": "set__i-sidebar-ui-header--he",
"type": "range",
"name": "Header height (desktop)",
"desc": "",
"refresh": false,
"min": "40",
"max": "150",
"default": "65",
"cat": "sidePanel"
},
"set__i-mobile-header--he": {
"key": "set__i-mobile-header--he",
"type": "range",
"name": "Header height (mobile)",
"desc": "",
"refresh": false,
"min": "40",
"max": "200",
"default": "70",
"cat": "mobileHeader"
"light_default": "var(--i-primary-contrast)",
"dark_default": "var(--i-primary-contrast)",
"cat": "buttons"
},
"set__i-mobile-icons-location": {
"key": "set__i-mobile-icons-location",
@@ -200,15 +196,6 @@
"default": "footer",
"cat": "mobileNavigation"
},
"set__i-position-logo": {
"key": "set__i-position-logo",
"type": "text",
"name": "Logo",
"desc": "",
"refresh": false,
"default": "4",
"cat": "desktopHeader"
},
"set__logo-light": {
"key": "set__logo-light",
"type": "image",
@@ -218,6 +205,44 @@
"default": "{{if isset( \\IPS\\Theme::i()->logo['front']['url'] ) AND \\IPS\\Theme::i()->logo['front']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoDesktop"
},
"i-footer--co": {
"key": "i-footer--co",
"type": "color",
"name": "Footer text",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_4)",
"dark_default": "var(--i-base-contrast_4)",
"cat": "footer"
},
"set__mobile-logo-light": {
"key": "set__mobile-logo-light",
"type": "image",
"name": "Logo (light theme)",
"desc": "",
"refresh": false,
"default": "{{if isset( \\IPS\\Theme::i()->logo['mobile']['url'] ) AND \\IPS\\Theme::i()->logo['mobile']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoMobile"
},
"layout_global_view_mode": {
"key": "layout_global_view_mode",
"type": "select",
"name": "Page Layout",
"desc": "<strong>Classic<\/strong> is the traditional layout, with a horizontal header. <strong>Side Panel<\/strong> moves the logo and navigation into a vertical panel on the side of your page.",
"refresh": true,
"options": [
[
"default",
"Classic"
],
[
"side",
"Side panel"
]
],
"default": "default",
"cat": "pageLayouts"
},
"set__i-font-family": {
"key": "set__i-font-family",
"type": "select",
@@ -329,33 +354,114 @@
"default": "var(--i-font-family_system-ui)",
"cat": "typography"
},
"layout_global_view_mode": {
"key": "layout_global_view_mode",
"type": "select",
"name": "Page Layout",
"desc": "<strong>Classic<\/strong> is the traditional layout, with a horizontal header. <strong>Side Panel<\/strong> moves the logo and navigation into a vertical panel on the side of your page.",
"refresh": true,
"options": [
[
"default",
"Classic"
],
[
"side",
"Side panel"
]
],
"default": "default",
"cat": "pageLayouts"
},
"set__mobile-logo-light": {
"key": "set__mobile-logo-light",
"type": "image",
"name": "Logo (light theme)",
"set__i-design-border": {
"key": "set__i-design-border",
"type": "range",
"name": "Border width",
"desc": "",
"refresh": false,
"default": "{{if isset( \\IPS\\Theme::i()->logo['mobile']['url'] ) AND \\IPS\\Theme::i()->logo['mobile']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoMobile"
"min": 0,
"max": "5",
"default": "1",
"cat": "contentBoxes"
},
"set__i-layout-width": {
"key": "set__i-layout-width",
"type": "range",
"name": "Max-width",
"desc": "",
"refresh": false,
"min": "980",
"max": "2500",
"default": "1500",
"cat": "body"
},
"set__i-sidebar-ui-header--he": {
"key": "set__i-sidebar-ui-header--he",
"type": "range",
"name": "Header height (desktop)",
"desc": "",
"refresh": false,
"min": "40",
"max": "150",
"default": "65",
"cat": "navigationPanel"
},
"set__i-position-logo": {
"key": "set__i-position-logo",
"type": "text",
"name": "Logo",
"desc": "",
"refresh": false,
"default": "4",
"cat": "desktopHeader"
},
"set__i-mobile-header--he": {
"key": "set__i-mobile-header--he",
"type": "range",
"name": "Header height (mobile)",
"desc": "",
"refresh": false,
"min": "40",
"max": "200",
"default": "70",
"cat": "mobileHeader"
},
"set__i-change-scheme": {
"key": "set__i-change-scheme",
"type": "checkbox",
"name": "Display color scheme toggle?",
"desc": "If enabled, users can choose their own preference between Light, Dark and System.",
"refresh": false,
"default": "1",
"cat": "lightDarkMode"
},
"set__i-logo-slogan": {
"key": "set__i-logo-slogan",
"type": "text",
"name": "Slogan",
"desc": "",
"refresh": false,
"default": "",
"cat": "textLogo"
},
"i-primary-button--ba-co": {
"key": "i-primary-button--ba-co",
"type": "color",
"name": "Primary button background",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary)",
"dark_default": "var(--i-primary)",
"cat": "buttons"
},
"set__i-mobile-footer-labels": {
"key": "set__i-mobile-footer-labels",
"type": "checkbox",
"name": "Show text labels in footer bar?",
"desc": "",
"refresh": false,
"default": "1",
"cat": "mobileNavigation"
},
"set__logo-dark": {
"key": "set__logo-dark",
"type": "image",
"name": "Logo (dark theme)",
"desc": "",
"refresh": false,
"default": "{{if isset( \\IPS\\Theme::i()->logo['front-dark']['url'] ) AND \\IPS\\Theme::i()->logo['front-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front-dark']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoDesktop"
},
"i-footer--ba-co": {
"key": "i-footer--ba-co",
"type": "color",
"name": "Footer background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_4)",
"dark_default": "var(--i-base_2)",
"cat": "footer"
},
"set__mobile-logo-dark": {
"key": "set__mobile-logo-dark",
@@ -366,14 +472,16 @@
"default": "{{if isset( \\IPS\\Theme::i()->logo['mobile-dark']['url'] ) AND \\IPS\\Theme::i()->logo['mobile-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['mobile-dark']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoMobile"
},
"set__logo-dark": {
"key": "set__logo-dark",
"type": "image",
"name": "Logo (dark theme)",
"set__i-design-radius": {
"key": "set__i-design-radius",
"type": "range",
"name": "Border radius",
"desc": "",
"refresh": false,
"default": "{{if isset( \\IPS\\Theme::i()->logo['front-dark']['url'] ) AND \\IPS\\Theme::i()->logo['front-dark']['url'] !== null }}{{$logo = \\IPS\\File::get( 'core_Theme', \\IPS\\Theme::i()->logo['front-dark']['url'] )->url;}}{$logo}{{endif}}",
"cat": "imageLogoDesktop"
"min": 0,
"max": "25",
"default": "6",
"cat": "contentBoxes"
},
"set__i-font-size": {
"key": "set__i-font-size",
@@ -387,33 +495,24 @@
"default": "14",
"cat": "typography"
},
"i-footer--ba-co": {
"key": "i-footer--ba-co",
"set__i-flip-sidebar": {
"key": "set__i-flip-sidebar",
"type": "checkbox",
"name": "Flip sidebar position on large screens?",
"desc": "",
"refresh": false,
"default": "0",
"cat": "sidebar"
},
"i-dashHeader--ba-co": {
"key": "i-dashHeader--ba-co",
"type": "color",
"name": "Footer background",
"name": "Header background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_4)",
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_2)",
"cat": "footer"
},
"set__i-change-scheme": {
"key": "set__i-change-scheme",
"type": "checkbox",
"name": "Display color scheme toggle?",
"desc": "If enabled, users can choose their own preference between Light, Dark and System.",
"refresh": false,
"default": "1",
"cat": "lightDarkMode"
},
"set__i-mobile-footer-labels": {
"key": "set__i-mobile-footer-labels",
"type": "checkbox",
"name": "Show text labels in footer bar?",
"desc": "",
"refresh": false,
"default": "1",
"cat": "mobileNavigation"
"cat": "navigationPanel"
},
"set__i-position-navigation": {
"key": "set__i-position-navigation",
@@ -424,35 +523,6 @@
"default": "5",
"cat": "desktopHeader"
},
"set__i-design-radius": {
"key": "set__i-design-radius",
"type": "range",
"name": "Border radius",
"desc": "",
"refresh": false,
"min": 0,
"max": "25",
"default": "6",
"cat": "contentBoxes"
},
"set__i-logo-slogan": {
"key": "set__i-logo-slogan",
"type": "text",
"name": "Slogan",
"desc": "",
"refresh": false,
"default": "",
"cat": "textLogo"
},
"set__i-flip-sidebar": {
"key": "set__i-flip-sidebar",
"type": "checkbox",
"name": "Flip sidebar on large screens?",
"desc": "",
"refresh": false,
"default": "0",
"cat": "body"
},
"i-headerMobile--ba-co": {
"key": "i-headerMobile--ba-co",
"type": "color",
@@ -463,88 +533,25 @@
"dark_default": "var(--i-base_2)",
"cat": "mobileHeader"
},
"i-dashHeader--ba-co": {
"key": "i-dashHeader--ba-co",
"i-headerMobile--co": {
"key": "i-headerMobile--co",
"type": "color",
"name": "Header background",
"name": "Header text color",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_2)",
"cat": "sidePanel"
"light_default": "var(--i-base-contrast_5)",
"dark_default": "var(--i-base-contrast_5)",
"cat": "mobileHeader"
},
"set__i-mobile-logo--he": {
"key": "set__i-mobile-logo--he",
"type": "range",
"name": "Height (%)",
"desc": "",
"refresh": false,
"min": 10,
"max": 100,
"step": 1,
"default": "70",
"cat": "imageLogoMobile"
},
"set__i-logo--he": {
"key": "set__i-logo--he",
"type": "range",
"name": "Maximum logo height (%)",
"desc": "Adjust the max-height of your desktop logo.",
"refresh": false,
"min": 10,
"max": 100,
"step": 1,
"default": "70",
"cat": "imageLogoDesktop"
},
"i-color_root": {
"key": "i-color_root",
"i-secondary-button--co": {
"key": "i-secondary-button--co",
"type": "color",
"name": "Text color",
"name": "Secondary button color",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_3)",
"dark_default": "var(--i-base-contrast_3)",
"cat": "typography"
},
"i-mobileFooter--ba-co": {
"key": "i-mobileFooter--ba-co",
"type": "color",
"name": "Footer: background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_3)",
"cat": "mobileNavigation"
},
"set__i-position-user": {
"key": "set__i-position-user",
"type": "text",
"name": "User",
"desc": "",
"refresh": false,
"default": "6",
"cat": "desktopHeader"
},
"set__i-design-shadow": {
"key": "set__i-design-shadow",
"type": "range",
"name": "Shadow",
"desc": "",
"refresh": false,
"min": 0,
"max": "10",
"default": "2",
"cat": "contentBoxes"
},
"set__i-avatar-radius": {
"key": "set__i-avatar-radius",
"type": "checkbox",
"name": "Rounded avatars?",
"desc": "",
"refresh": false,
"default": "1",
"cat": "body"
"light_default": "var(--i-secondary-contrast)",
"dark_default": "var(--i-secondary-contrast)",
"cat": "buttons"
},
"set__i-logo--fo-fa": {
"key": "set__i-logo--fo-fa",
@@ -661,6 +668,15 @@
"default": "var(--i-font-family)",
"cat": "textLogo"
},
"set__i-position-user": {
"key": "set__i-position-user",
"type": "text",
"name": "User",
"desc": "",
"refresh": false,
"default": "6",
"cat": "desktopHeader"
},
"i-dashHeader--co": {
"key": "i-dashHeader--co",
"type": "color",
@@ -669,23 +685,65 @@
"refresh": false,
"light_default": "var(--i-base-contrast_5)",
"dark_default": "var(--i-base-contrast_5)",
"cat": "sidePanel"
"cat": "navigationPanel"
},
"i-headerMobile--co": {
"key": "i-headerMobile--co",
"type": "color",
"name": "Header text color",
"set__i-avatar-radius": {
"key": "set__i-avatar-radius",
"type": "checkbox",
"name": "Rounded avatars?",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_5)",
"dark_default": "var(--i-base-contrast_5)",
"cat": "mobileHeader"
"default": "1",
"cat": "avatars"
},
"set__i-sidebar-ui-logo--he": {
"key": "set__i-sidebar-ui-logo--he",
"i-color_root": {
"key": "i-color_root",
"type": "color",
"name": "Text color",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_3)",
"dark_default": "var(--i-base-contrast_3)",
"cat": "typography"
},
"set__i-mobile-logo--he": {
"key": "set__i-mobile-logo--he",
"type": "range",
"name": "Height (%)",
"desc": "",
"refresh": false,
"min": 10,
"max": 100,
"step": 1,
"default": "70",
"cat": "imageLogoMobile"
},
"set__i-design-shadow": {
"key": "set__i-design-shadow",
"type": "range",
"name": "Shadow",
"desc": "",
"refresh": false,
"min": 0,
"max": "10",
"default": "2",
"cat": "contentBoxes"
},
"i-mobileFooter--ba-co": {
"key": "i-mobileFooter--ba-co",
"type": "color",
"name": "Footer: background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_3)",
"cat": "mobileNavigation"
},
"set__i-logo--he": {
"key": "set__i-logo--he",
"type": "range",
"name": "Maximum logo height (%)",
"desc": "Adjust the max-height of your side panel logo.",
"desc": "Adjust the max-height of your desktop logo.",
"refresh": false,
"min": 10,
"max": 100,
@@ -693,15 +751,36 @@
"default": "70",
"cat": "imageLogoDesktop"
},
"i-color_soft": {
"key": "i-color_soft",
"i-secondary-button--ba-co": {
"key": "i-secondary-button--ba-co",
"type": "color",
"name": "Text color (soft)",
"name": "Secondary button background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_1)",
"dark_default": "var(--i-base-contrast_2)",
"cat": "typography"
"light_default": "var(--i-secondary)",
"dark_default": "var(--i-secondary)",
"cat": "buttons"
},
"set__i-logo--fo-we": {
"key": "set__i-logo--fo-we",
"type": "range",
"name": "Font-weight",
"desc": "",
"refresh": false,
"min": "100",
"max": "900",
"default": "500",
"cat": "textLogo"
},
"i-navPanelLinkHover--co": {
"key": "i-navPanelLinkHover--co",
"type": "color",
"name": "Link color (hover)",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-color_primary)",
"cat": "navigationPanel"
},
"set__i-position-breadcrumb": {
"key": "set__i-position-breadcrumb",
@@ -722,14 +801,15 @@
"dark_default": "var(--i-base-contrast_4)",
"cat": "mobileNavigation"
},
"set__i-link-panels": {
"key": "set__i-link-panels",
"type": "checkbox",
"name": "Enable clickable panels?",
"desc": "Clickable panels increase the click size of entries inside tables and grids.",
"i-color_soft": {
"key": "i-color_soft",
"type": "color",
"name": "Text color (soft)",
"desc": "",
"refresh": false,
"default": "1",
"cat": "contentBoxes"
"light_default": "var(--i-base-contrast_1)",
"dark_default": "var(--i-base-contrast_2)",
"cat": "typography"
},
"i-body--ba-co": {
"key": "i-body--ba-co",
@@ -741,26 +821,38 @@
"dark_default": "var(--i-base_1)",
"cat": "body"
},
"i-navPanelLinkHover--co": {
"key": "i-navPanelLinkHover--co",
"type": "color",
"name": "Link color (hover)",
"desc": "",
"set__i-link-panels": {
"key": "set__i-link-panels",
"type": "checkbox",
"name": "Enable clickable panels?",
"desc": "Clickable panels increase the click size of entries inside tables and grids.",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-color_primary)",
"cat": "sidePanel"
"default": "1",
"cat": "contentBoxes"
},
"set__i-logo--fo-we": {
"key": "set__i-logo--fo-we",
"set__i-sidebar-ui-logo--he": {
"key": "set__i-sidebar-ui-logo--he",
"type": "range",
"name": "Font-weight",
"name": "Maximum logo height (%)",
"desc": "Adjust the max-height of your side panel logo.",
"refresh": false,
"min": 10,
"max": 100,
"step": 1,
"default": "70",
"cat": "imageLogoDesktop"
},
"i-button--bo-ra": {
"key": "i-button--bo-ra",
"type": "range",
"name": "Button border-radius",
"desc": "",
"refresh": false,
"min": "100",
"max": "900",
"default": "500",
"cat": "textLogo"
"min": 0,
"max": 40,
"step": 1,
"default": "8",
"cat": "buttons"
},
"set__i-desktop-logo--fo-si": {
"key": "set__i-desktop-logo--fo-si",
@@ -773,15 +865,14 @@
"default": "18",
"cat": "textLogo"
},
"i-mobileFooter-active--co": {
"key": "i-mobileFooter-active--co",
"type": "color",
"name": "Footer: Active button text",
"set__i-sticky-sidebar": {
"key": "set__i-sticky-sidebar",
"type": "checkbox",
"name": "Sticky sidebar?",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary-contrast)",
"dark_default": "var(--i-primary-contrast)",
"cat": "mobileNavigation"
"default": "1",
"cat": "sidebar"
},
"i-navPanelLinkActive--ba-co": {
"key": "i-navPanelLinkActive--ba-co",
@@ -791,26 +882,7 @@
"refresh": false,
"light_default": "var(--i-primary)",
"dark_default": "var(--i-primary)",
"cat": "sidePanel"
},
"set__i-sticky-sidebar": {
"key": "set__i-sticky-sidebar",
"type": "checkbox",
"name": "Sticky sidebar?",
"desc": "",
"refresh": false,
"default": "1",
"cat": "body"
},
"i-box--ba-co": {
"key": "i-box--ba-co",
"type": "color",
"name": "Background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_2)",
"cat": "contentBoxes"
"cat": "navigationPanel"
},
"set__i-position-search": {
"key": "set__i-position-search",
@@ -821,6 +893,16 @@
"default": "9",
"cat": "desktopHeader"
},
"i-mobileFooter-active--co": {
"key": "i-mobileFooter-active--co",
"type": "color",
"name": "Footer: Active button text",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary-contrast)",
"dark_default": "var(--i-primary-contrast)",
"cat": "mobileNavigation"
},
"i-color_hard": {
"key": "i-color_hard",
"type": "color",
@@ -831,36 +913,15 @@
"dark_default": "var(--i-base-contrast_6)",
"cat": "typography"
},
"i-mobileFooter-active--ba-co": {
"key": "i-mobileFooter-active--ba-co",
"type": "color",
"name": "Footer: Active button background",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary)",
"dark_default": "var(--i-primary)",
"cat": "mobileNavigation"
},
"i-navPanel--ba-co": {
"key": "i-navPanel--ba-co",
"i-box--ba-co": {
"key": "i-box--ba-co",
"type": "color",
"name": "Background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base-contrast_5)",
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_2)",
"cat": "sidePanel"
},
"set__i-sidebar-ui-logo--fo-si": {
"key": "set__i-sidebar-ui-logo--fo-si",
"type": "range",
"name": "Desktop font-size (px)",
"desc": "Adjust the font-size of your text logo on the desktop sidebar layout.",
"refresh": false,
"min": "10",
"max": "50",
"default": "20",
"cat": "textLogo"
"cat": "contentBoxes"
},
"set__i-header-primary--he": {
"key": "set__i-header-primary--he",
@@ -873,6 +934,17 @@
"default": "100",
"cat": "desktopHeader"
},
"set__i-sidebar-ui-logo--fo-si": {
"key": "set__i-sidebar-ui-logo--fo-si",
"type": "range",
"name": "Desktop font-size (px)",
"desc": "Adjust the font-size of your text logo on the desktop sidebar layout.",
"refresh": false,
"min": "10",
"max": "50",
"default": "20",
"cat": "textLogo"
},
"i-box--bo-co": {
"key": "i-box--bo-co",
"type": "color",
@@ -893,25 +965,25 @@
"dark_default": "var(--i-base-contrast_5)",
"cat": "typography"
},
"i-navPanel--co": {
"key": "i-navPanel--co",
"i-mobileFooter-active--ba-co": {
"key": "i-mobileFooter-active--ba-co",
"type": "color",
"name": "Link color",
"name": "Footer: Active button background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_3)",
"dark_default": "var(--i-base-contrast_3)",
"cat": "sidePanel"
"light_default": "var(--i-primary)",
"dark_default": "var(--i-primary)",
"cat": "mobileNavigation"
},
"i-boxHeader--ba-co": {
"key": "i-boxHeader--ba-co",
"i-navPanel--ba-co": {
"key": "i-navPanel--ba-co",
"type": "color",
"name": "Header background",
"name": "Background",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_1)",
"light_default": "var(--i-base-contrast_5)",
"dark_default": "var(--i-base_2)",
"cat": "contentBoxes"
"cat": "navigationPanel"
},
"set__i-mobile-logo--fo-si": {
"key": "set__i-mobile-logo--fo-si",
@@ -935,6 +1007,16 @@
"dark_default": "var(--i-color_primary)",
"cat": "typography"
},
"i-navPanel--co": {
"key": "i-navPanel--co",
"type": "color",
"name": "Link color",
"desc": "",
"refresh": false,
"light_default": "var(--i-base_3)",
"dark_default": "var(--i-base-contrast_3)",
"cat": "navigationPanel"
},
"set__i-header-secondary--he": {
"key": "set__i-header-secondary--he",
"type": "range",
@@ -946,15 +1028,15 @@
"default": "50",
"cat": "desktopHeader"
},
"i-navPanelLinkActive--co": {
"key": "i-navPanelLinkActive--co",
"i-boxHeader--ba-co": {
"key": "i-boxHeader--ba-co",
"type": "color",
"name": "Link color (active)",
"name": "Header background",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary-contrast)",
"dark_default": "var(--i-primary-contrast)",
"cat": "sidePanel"
"light_default": "var(--i-base_1)",
"dark_default": "var(--i-base_2)",
"cat": "contentBoxes"
},
"i-boxHeader--co": {
"key": "i-boxHeader--co",
@@ -966,15 +1048,6 @@
"dark_default": "var(--i-base-contrast_6)",
"cat": "contentBoxes"
},
"set__i-nav-bar-icons": {
"key": "set__i-nav-bar-icons",
"type": "checkbox",
"name": "Navigation icons?",
"desc": "Display icons next to navigation links?",
"refresh": false,
"default": "0",
"cat": "desktopHeader"
},
"set__i-user-content-font-size": {
"key": "set__i-user-content-font-size",
"type": "range",
@@ -987,6 +1060,25 @@
"default": "110",
"cat": "typography"
},
"i-navPanelLinkActive--co": {
"key": "i-navPanelLinkActive--co",
"type": "color",
"name": "Link color (active)",
"desc": "",
"refresh": false,
"light_default": "var(--i-primary-contrast)",
"dark_default": "var(--i-primary-contrast)",
"cat": "navigationPanel"
},
"set__i-nav-bar-icons": {
"key": "set__i-nav-bar-icons",
"type": "checkbox",
"name": "Navigation icons?",
"desc": "Display icons next to navigation links?",
"refresh": false,
"default": "0",
"cat": "desktopHeader"
},
"i-widget-header--ba-co": {
"key": "i-widget-header--ba-co",
"type": "color",
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -16,4 +16,4 @@
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
* Copyright 2023 Fonticons, Inc.
*/
!function(c){"use strict";var a="fas",e={prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z"]},i={prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z"]},f={prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},s={prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z"]},l={prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z"]},n={prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},o={prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},r={prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z"]},t={prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},z={prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},m={prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},H={prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12Line truncated
!function(c){"use strict";var a="fas",e={prefix:"fas",iconName:"0",icon:[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160V320c0 88.4-71.6 160-160 160S0 408.4 0 320V192zM160 96c-53 0-96 43-96 96V320c0 53 43 96 96 96s96-43 96-96V192c0-53-43-96-96-96z"]},i={prefix:"fas",iconName:"1",icon:[256,512,[],"31","M160 64c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.8 1.6l-96 64C-.5 111.2-4.4 131 5.4 145.8s29.7 18.7 44.4 8.9L96 123.8V416H32c-17.7 0-32 14.3-32 32s14.3 32 32 32h96 96c17.7 0 32-14.3 32-32s-14.3-32-32-32H160V64z"]},f={prefix:"fas",iconName:"2",icon:[320,512,[],"32","M142.9 96c-21.5 0-42.2 8.5-57.4 23.8L54.6 150.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L40.2 74.5C67.5 47.3 104.4 32 142.9 32C223 32 288 97 288 177.1c0 38.5-15.3 75.4-42.5 102.6L109.3 416H288c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L200.2 234.5c15.2-15.2 23.8-35.9 23.8-57.4c0-44.8-36.3-81.1-81.1-81.1z"]},s={prefix:"fas",iconName:"3",icon:[320,512,[],"33","M0 64C0 46.3 14.3 32 32 32H272c13.2 0 25 8.1 29.8 20.4s1.5 26.3-8.2 35.2L162.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H105.4C63 480 24.2 456 5.3 418.1l-1.9-3.8c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l1.9 3.8c8.1 16.3 24.8 26.5 42.9 26.5H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H80c-13.2 0-25-8.1-29.8-20.4s-1.5-26.3 8.2-35.2L189.7 96H32C14.3 96 0 81.7 0 64z"]},l={prefix:"fas",iconName:"4",icon:[384,512,[],"34","M189 77.6c7.5-16 .7-35.1-15.3-42.6s-35.1-.7-42.6 15.3L3 322.4c-4.7 9.9-3.9 21.5 1.9 30.8S21 368 32 368H256v80c0 17.7 14.3 32 32 32s32-14.3 32-32V368h32c17.7 0 32-14.3 32-32s-14.3-32-32-32H320V160c0-17.7-14.3-32-32-32s-32 14.3-32 32V304H82.4L189 77.6z"]},n={prefix:"fas",iconName:"5",icon:[320,512,[],"35","M32.5 58.3C35.3 43.1 48.5 32 64 32H256c17.7 0 32 14.3 32 32s-14.3 32-32 32H90.7L70.3 208H184c75.1 0 136 60.9 136 136s-60.9 136-136 136H100.5c-39.4 0-75.4-22.3-93-57.5l-4.1-8.2c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l4.1 8.2c6.8 13.6 20.6 22.1 35.8 22.1H184c39.8 0 72-32.2 72-72s-32.2-72-72-72H32c-9.5 0-18.5-4.2-24.6-11.5s-8.6-16.9-6.9-26.2l32-176z"]},o={prefix:"fas",iconName:"6",icon:[320,512,[],"36","M232.4 84.7c11.4-13.5 9.7-33.7-3.8-45.1s-33.7-9.7-45.1 3.8L38.6 214.7C14.7 242.9 1.1 278.4 .1 315.2c0 1.4-.1 2.9-.1 4.3c0 .2 0 .3 0 .5c0 88.4 71.6 160 160 160s160-71.6 160-160c0-85.5-67.1-155.4-151.5-159.8l63.9-75.6zM256 320A96 96 0 1 1 64 320a96 96 0 1 1 192 0z"]},r={prefix:"fas",iconName:"7",icon:[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32H288c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96H32C14.3 96 0 81.7 0 64z"]},t={prefix:"fas",iconName:"8",icon:[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128H144C73.3 32 16 89.3 16 160c0 34.6 13.7 66 36 89C20.5 272.3 0 309.8 0 352c0 70.7 57.3 128 128 128h64c70.7 0 128-57.3 128-128c0-42.2-20.5-79.7-52-103c22.3-23 36-54.4 36-89zM176.1 288H192c35.3 0 64 28.7 64 64s-28.7 64-64 64H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h15.9c0 0 .1 0 .1 0h32c0 0 .1 0 .1 0zm0-64c0 0 0 0 0 0H144c0 0 0 0 0 0c-35.3 0-64-28.7-64-64c0-35.3 28.7-64 64-64h32c35.3 0 64 28.7 64 64c0 35.3-28.6 64-64 64z"]},z={prefix:"fas",iconName:"9",icon:[320,512,[],"39","M64 192a96 96 0 1 0 192 0A96 96 0 1 0 64 192zm87.5 159.8C67.1 347.4 0 277.5 0 192C0 103.6 71.6 32 160 32s160 71.6 160 160c0 2.6-.1 5.3-.2 7.9c-1.7 35.7-15.2 70-38.4 97.4l-145 171.4c-11.4 13.5-31.6 15.2-45.1 3.8s-15.2-31.6-3.8-45.1l63.9-75.6z"]},m={prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M41.4 9.4C53.9-3.1 74.1-3.1 86.6 9.4L168 90.7l53.1-53.1c28.1-28.1 73.7-28.1 101.8 0L474.3 189.1c28.1 28.1 28.1 73.7 0 101.8L283.9 481.4c-37.5 37.5-98.3 37.5-135.8 0L30.6 363.9c-37.5-37.5-37.5-98.3 0-135.8L122.7 136 41.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zm176 221.3L168 181.3 75.9 273.4c-4.2 4.2-7 9.3-8.4 14.6H386.7l42.3-42.3c3.1-3.1 3.1-8.2 0-11.3L277.7 82.9c-3.1-3.1-8.2-3.1-11.3 0L213.3 136l49.4 49.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM512 512c-35.3 0-64-28.7-64-64c0-25.2 32.6-79.6 51.2-108.7c6-9.4 19.5-9.4 25.5 0C543.4 368.4 576 422.8 576 448c0 35.3-28.7 64-64 64z"]},H={prefix:"fas",iconName:"arrows-to-circle",icon:[640,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L160 114.7V96c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 4.3-.9 8.5-2.4 12.2c-1.6 3.7-3.8 7.3-6.9 10.3l-.1 .1c-3.1 3-6.6 5.3-10.3 6.9c-3.8 1.6-7.9 2.4-12.2 2.4H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h18.7L9.4 54.6C-3.1 42.1-3.1 21.9 9.4 9.4zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM114.7 352H96c-17.7 0-32-14.3-32-32s14.3-32 32-32h96 0l.1 0c8.8 0 16.7 3.6 22.5 9.3l.1 .1c3 3.1 5.3 6.6 6.9 10.3c1.6 3.8 2.4 7.9 2.4 12.2v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V397.3L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L114.7 352zM416 96c0-17.7 14.3-32 32-32s32 14.3 32 32v18.7L585.4 9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L525.3 160H544c17.7 0 32 14.3 32 32s-14.3 32-32 32H448c-8.8 0-16.8-3.6-22.6-9.3l-.1-.1c-3-3.1-5.3-6.6-6.9-10.3s-2.4-7.8-2.4-12.2l0-.1v0V96zM525.3 352L630.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12Line truncated
@@ -0,0 +1,78 @@
var v2=Object.defineProperty;var w2=(e,t,r)=>t in e?v2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Qh=(e,t,r)=>(w2(e,typeof t!="symbol"?t+"":t,r),r);const y2="modulepreload",_2=function(e){return"/"+e},qh={},S2=function(t,r,l){if(!r||r.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(r.map(s=>{if(s=_2(s),s in qh)return;qh[s]=!0;const c=s.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(!!l)for(let y=o.length-1;y>=0;y--){const w=o[y];if(w.href===s&&(!c||w.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${f}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":y2,c||(m.as="script",m.crossOrigin=""),m.href=s,document.head.appendChild(m),c)return new Promise((y,w)=>{m.addEventListener("load",y),m.addEventListener("error",()=>w(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=s,window.dispatchEvent(c),!c.defaultPrevented)throw s})};var fl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function x2(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var o0={exports:{}},ss={},u0={exports:{}},he={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var no=Symbol.for("react.element"),C2=Symbol.for("react.portal"),E2=Symbol.for("react.fragment"),k2=Symbol.for("react.strict_mode"),L2=Symbol.for("react.profiler"),R2=Symbol.for("react.provider"),I2=Symbol.for("react.context"),T2=Symbol.for("react.forward_ref"),O2=Symbol.for("react.suspense"),A2=Symbol.for("react.memo"),P2=Symbol.for("react.lazy"),Kh=Symbol.iterator;function N2(e){return e===null||typeof e!="object"?null:(e=Kh&&e[Kh]||e["@@iterator"],typeof e=="function"?e:null)}var s0={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},a0=Object.assign,c0={};function Di(e,t,r){this.props=e,this.context=t,this.refs=c0,this.updater=r||s0}Di.prototype.isReactComponent={};Di.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Di.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function f0(){}f0.prototype=Di.prototype;function mf(e,t,r){this.props=e,this.context=t,this.refs=c0,this.updater=r||s0}var vf=mf.prototype=new f0;vf.constructor=mf;a0(vf,Di.prototype);vf.isPureReactComponent=!0;var Yh=Array.isArray,d0=Object.prototype.hasOwnProperty,wf={current:null},p0={key:!0,ref:!0,__self:!0,__source:!0};function h0(e,t,r){var l,o={},s=null,c=null;if(t!=null)for(l in t.ref!==void 0&&(c=t.ref),t.key!==void 0&&(s=""+t.key),t)d0.call(t,l)&&!p0.hasOwnProperty(l)&&(o[l]=t[l]);var f=arguments.length-2;if(f===1)o.children=r;else if(1<f){for(var p=Array(f),m=0;m<f;m++)p[m]=arguments[m+2];o.children=p}if(e&&e.defaultProps)for(l in f=e.defaultProps,f)o[l]===void 0&&(o[l]=f[l]);return{$$typeof:no,type:e,key:s,ref:c,props:o,_owner:wf.current}}function M2(e,t){return{$$typeof:no,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function yf(e){return typeof e=="object"&&e!==null&&e.$$typeof===no}function B2(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(r){return t[r]})}var Zh=/\/+/g;function Ga(e,t){return typeof e=="object"&&e!==null&&e.key!=null?B2(""+e.key):t.toString(36)}function Su(e,t,r,l,o){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case no:case C2:c=!0}}if(c)return c=e,o=o(c),e=l===""?"."+Ga(c,0):l,Yh(o)?(r="",e!=null&&(r=e.replace(Zh,"$&/")+"/"),Su(o,t,r,"",function(m){return m})):o!=null&&(yf(o)&&(o=M2(o,r+(!o.key||c&&c.key===o.key?"":(""+o.key).replace(Zh,"$&/")+"/")+e)),t.push(o)),1;if(c=0,l=l===""?".":l+":",Yh(e))for(var f=0;f<e.length;f++){s=e[f];var p=l+Ga(s,f);c+=Su(s,t,r,p,o)}else if(p=N2(e),typeof p=="function")for(e=p.call(e),f=0;!(s=e.next()).done;)s=s.value,p=l+Ga(s,f++),c+=Su(s,t,r,p,o);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function nu(e,t,r){if(e==null)return e;var l=[],o=0;return Su(e,l,"","",function(s){return t.call(r,s,o++)}),l}function W2(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(r){(e._status===0||e._status===-1)&&(e._status=1,e._result=r)},function(r){(e._status===0||e._status===-1)&&(e._status=2,e._result=r)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var wt={current:null},xu={transition:null},z2={ReactCurrentDispatcher:wt,ReactCurrentBatchConfig:xu,ReactCurrentOwner:wf};he.Children={map:nu,forEach:function(e,t,r){nu(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return nu(e,function(){t++}),t},toArray:function(e){return nu(e,function(t){return t})||[]},only:function(e){if(!yf(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};he.Component=Di;he.Fragment=E2;he.Profiler=L2;he.PureComponent=mf;he.StrictMode=k2;he.Suspense=O2;he.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=z2;he.cloneElement=function(e,t,r){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var l=a0({},e.props),o=e.key,s=e.ref,c=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,c=wf.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var f=e.type.defaultProps;for(p in t)d0.call(t,p)&&!p0.hasOwnProperty(p)&&(l[p]=t[p]===void 0&&f!==void 0?f[p]:t[p])}var p=arguments.length-2;if(p===1)l.children=r;else if(1<p){f=Array(p);for(var m=0;m<p;m++)f[m]=arguments[m+2];l.children=f}return{$$typeof:no,type:e.type,key:o,ref:s,props:l,_owner:c}};he.createContext=function(e){return e={$$typeof:I2,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:R2,_conLine truncated
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var $2=X,F2=Symbol.for("react.element"),U2=Symbol.for("react.fragment"),j2=Object.prototype.hasOwnProperty,H2=$2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,V2={key:!0,ref:!0,__self:!0,__source:!0};function g0(e,t,r){var l,o={},s=null,c=null;r!==void 0&&(s=""+r),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(c=t.ref);for(l in t)j2.call(t,l)&&!V2.hasOwnProperty(l)&&(o[l]=t[l]);if(e&&e.defaultProps)for(l in t=e.defaultProps,t)o[l]===void 0&&(o[l]=t[l]);return{$$typeof:F2,type:e,key:s,ref:c,props:o,_owner:H2.current}}ss.Fragment=U2;ss.jsx=g0;ss.jsxs=g0;o0.exports=ss;var I=o0.exports,yc={},m0={exports:{}},Ft={},v0={exports:{}},w0={};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/(function(e){function t(j,q){var G=j.length;j.push(q);e:for(;0<G;){var Z=G-1>>>1,ve=j[Z];if(0<o(ve,q))j[Z]=q,j[G]=ve,G=Z;else break e}}function r(j){return j.length===0?null:j[0]}function l(j){if(j.length===0)return null;var q=j[0],G=j.pop();if(G!==q){j[0]=G;e:for(var Z=0,ve=j.length,je=ve>>>1;Z<je;){var Ee=2*(Z+1)-1,ft=j[Ee],dt=Ee+1,Tt=j[dt];if(0>o(ft,G))dt<ve&&0>o(Tt,ft)?(j[Z]=Tt,j[dt]=G,Z=dt):(j[Z]=ft,j[Ee]=G,Z=Ee);else if(dt<ve&&0>o(Tt,G))j[Z]=Tt,j[dt]=G,Z=dt;else break e}}return q}function o(j,q){var G=j.sortIndex-q.sortIndex;return G!==0?G:j.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var c=Date,f=c.now();e.unstable_now=function(){return c.now()-f}}var p=[],m=[],y=1,w=null,_=3,k=!1,A=!1,T=!1,B=typeof setTimeout=="function"?setTimeout:null,v=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function C(j){for(var q=r(m);q!==null;){if(q.callback===null)l(m);else if(q.startTime<=j)l(m),q.sortIndex=q.expirationTime,t(p,q);else break;q=r(m)}}function O(j){if(T=!1,C(j),!A)if(r(p)!==null)A=!0,it(M);else{var q=r(m);q!==null&&fe(O,q.startTime-j)}}function M(j,q){A=!1,T&&(T=!1,v(z),z=-1),k=!0;var G=_;try{for(C(q),w=r(p);w!==null&&(!(w.expirationTime>q)||j&&!ee());){var Z=w.callback;if(typeof Z=="function"){w.callback=null,_=w.priorityLevel;var ve=Z(w.expirationTime<=q);q=e.unstable_now(),typeof ve=="function"?w.callback=ve:w===r(p)&&l(p),C(q)}else l(p);w=r(p)}if(w!==null)var je=!0;else{var Ee=r(m);Ee!==null&&fe(O,Ee.startTime-q),je=!1}return je}finally{w=null,_=G,k=!1}}var F=!1,P=null,z=-1,J=5,H=-1;function ee(){return!(e.unstable_now()-H<J)}function le(){if(P!==null){var j=e.unstable_now();H=j;var q=!0;try{q=P(!0,j)}finally{q?ae():(F=!1,P=null)}}else F=!1}var ae;if(typeof S=="function")ae=function(){S(le)};else if(typeof MessageChannel<"u"){var _e=new MessageChannel,me=_e.port2;_e.port1.onmessage=le,ae=function(){me.postMessage(null)}}else ae=function(){B(le,0)};function it(j){P=j,F||(F=!0,ae())}function fe(j,q){z=B(function(){j(e.unstable_now())},q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(j){j.callback=null},e.unstable_continueExecution=function(){A||k||(A=!0,it(M))},e.unstable_forceFrameRate=function(j){0>j||125<j?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):J=0<j?Math.floor(1e3/j):5},e.unstable_getCurrentPriorityLevel=function(){return _},e.unstable_getFirstCallbackNode=function(){return r(p)},e.unstable_next=function(j){switch(_){case 1:case 2:case 3:var q=3;break;default:q=_}var G=_;_=q;try{return j()}finally{_=G}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(j,q){switch(j){case 1:case 2:case 3:case 4:case 5:break;default:j=3}var G=_;_=j;try{return q()}finally{_=G}},e.unstable_scheduleCallback=function(j,q,G){var Z=e.unstable_now();switch(typeof G=="object"&&G!==null?(G=G.delay,G=typeof G=="number"&&0<G?Z+G:Z):G=Z,j){case 1:var ve=-1;break;case 2:ve=250;break;case 5:ve=1073741823;break;case 4:ve=1e4;break;default:ve=5e3}return ve=G+ve,j={id:y++,callback:q,priorityLevel:j,startTime:G,expirationTime:ve,sortIndex:-1},G>Z?(j.sortIndex=G,t(m,j),r(p)===null&&j===r(m)&&(T?(v(z),z=-1):T=!0,fe(O,G-Z))):(j.sortIndex=ve,t(p,j),A||k||(A=!0,it(M))),j},e.unstable_shouldYield=ee,e.unstable_wrapCallback=function(j){var q=_;return function(){var G=_;_=q;try{return j.apply(this,arguments)}finally{_=G}}}})(w0);v0.exports=w0;var G2=v0.exports;/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var y0=X,$t=G2;function V(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var _0=new Set,zl={};function Qr(e,t){Ai(e,t),Ai(e+"Capture",t)}function Ai(e,t){for(zl[e]=t,e=0;e<t.length;e++)_0.add(t[e])}var Un=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_c=Object.prototype.hasOwnProperty,Q2=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Xh={},Jh={};function q2(e){return _c.call(Jh,e)?!0:_c.call(Xh,e)?!1:Q2.test(e)?Jh[e]=!0:(Xh[e]=!0,!1)}function K2(e,t,r,l){if(r!==null&&r.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return l?!1:r!==null?!r.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Y2(e,t,r,l){if(t===null||typeof t>"u"||K2(e,t,r,l))return!0;if(l)return!1;if(r!==null)switch(r.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function yt(e,t,r,l,o,s,c){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=l,this.attributeNamespace=o,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=c}var rt={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){rt[e]=new yt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];rt[t]=new yt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){rt[e]=new yt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){rt[e]=new yt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){rt[e]=new yt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){rt[e]=new yt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){rt[e]=new yt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){rt[e]=new yt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){rt[e]=new yt(e,5,!1,e.toLowerCase(),null,!1,!1)});var _f=/[\-:]([a-z])/g;function Sf(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(_f,Sf);rt[t]=new yt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(_f,Sf);rt[t]=new yt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(_f,Sf);rt[t]=new yt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){rt[e]=new yt(e,1,!1,e.toLowerCase(),null,!1,!1)});rt.xlinkHref=new yt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){rt[e]=new yt(e,1,!1,e.toLowerCase(),null,!0,!0)});function xf(e,t,r,l){var o=rt.hasOwnProperty(t)?rt[t]:null;(o!==null?o.type!==0:l||!(2<t.length)||t[0]!=="o"&&t[0]!==" Line truncated
`+Qa+e}var qa=!1;function Ka(e,t){if(!e||qa)return"";qa=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(m){var l=m}Reflect.construct(e,[],t)}else{try{t.call()}catch(m){l=m}e.call(t.prototype)}else{try{throw Error()}catch(m){l=m}e()}}catch(m){if(m&&l&&typeof m.stack=="string"){for(var o=m.stack.split(`
`),s=l.stack.split(`
`),c=o.length-1,f=s.length-1;1<=c&&0<=f&&o[c]!==s[f];)f--;for(;1<=c&&0<=f;c--,f--)if(o[c]!==s[f]){if(c!==1||f!==1)do if(c--,f--,0>f||o[c]!==s[f]){var p=`
`+o[c].replace(" at new "," at ");return e.displayName&&p.includes("<anonymous>")&&(p=p.replace("<anonymous>",e.displayName)),p}while(1<=c&&0<=f);break}}}finally{qa=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Cl(e):""}function Z2(e){switch(e.tag){case 5:return Cl(e.type);case 16:return Cl("Lazy");case 13:return Cl("Suspense");case 19:return Cl("SuspenseList");case 0:case 2:case 15:return e=Ka(e.type,!1),e;case 11:return e=Ka(e.type.render,!1),e;case 1:return e=Ka(e.type,!0),e;default:return""}}function Ec(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case hi:return"Fragment";case pi:return"Portal";case Sc:return"Profiler";case Cf:return"StrictMode";case xc:return"Suspense";case Cc:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case x0:return(e.displayName||"Context")+".Consumer";case S0:return(e._context.displayName||"Context")+".Provider";case Ef:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case kf:return t=e.displayName||null,t!==null?t:Ec(e.type)||"Memo";case rr:t=e._payload,e=e._init;try{return Ec(e(t))}catch{}}return null}function X2(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ec(t);case 8:return t===Cf?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function _r(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function E0(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function J2(e){var t=E0(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),l=""+e[t];if(!e.hasOwnProperty(t)&&typeof r<"u"&&typeof r.get=="function"&&typeof r.set=="function"){var o=r.get,s=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(c){l=""+c,s.call(this,c)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return l},setValue:function(c){l=""+c},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function iu(e){e._valueTracker||(e._valueTracker=J2(e))}function k0(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),l="";return e&&(l=E0(e)?e.checked?"true":"false":e.value),e=l,e!==r?(t.setValue(e),!0):!1}function Nu(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function kc(e,t){var r=t.checked;return We({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function eg(e,t){var r=t.defaultValue==null?"":t.defaultValue,l=t.checked!=null?t.checked:t.defaultChecked;r=_r(t.value!=null?t.value:r),e._wrapperState={initialChecked:l,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function L0(e,t){t=t.checked,t!=null&&xf(e,"checked",t,!1)}function Lc(e,t){L0(e,t);var r=_r(t.value),l=t.type;if(r!=null)l==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(l==="submit"||l==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Rc(e,t.type,r):t.hasOwnProperty("defaultValue")&&Rc(e,t.type,_r(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function tg(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var l=t.type;if(!(l!=="submit"&&l!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Rc(e,t,r){(t!=="number"||Nu(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}var El=Array.isArray;function ki(e,t,r,l){if(e=e.options,t){t={};for(var o=0;o<r.length;o++)t["$"+r[o]]=!0;for(r=0;r<e.length;r++)o=t.hasOwnProperty("$"+e[r].value),e[r].selected!==o&&(e[r].selected=o),o&&l&&(e[r].defaultSelected=!0)}else{for(r=""+_r(r),t=null,o=0;o<e.length;o++){if(e[o].value===r){e[o].selected=!0,l&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function Ic(e,t){if(t.dan Line truncated
`).replace(sk,"")}function du(e,t,r){if(t=Eg(t),Eg(e)!==t&&r)throw Error(V(425))}function Uu(){}var Uc=null,jc=null;function Hc(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Vc=typeof setTimeout=="function"?setTimeout:void 0,ak=typeof clearTimeout=="function"?clearTimeout:void 0,kg=typeof Promise=="function"?Promise:void 0,ck=typeof queueMicrotask=="function"?queueMicrotask:typeof kg<"u"?function(e){return kg.resolve(null).then(e).catch(fk)}:Vc;function fk(e){setTimeout(function(){throw e})}function uc(e,t){var r=t,l=0;do{var o=r.nextSibling;if(e.removeChild(r),o&&o.nodeType===8)if(r=o.data,r==="/$"){if(l===0){e.removeChild(o),jl(t);return}l--}else r!=="$"&&r!=="$?"&&r!=="$!"||l++;r=o}while(r);jl(t)}function pr(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Lg(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="$"||r==="$!"||r==="$?"){if(t===0)return e;t--}else r==="/$"&&t++}e=e.previousSibling}return null}var Fi=Math.random().toString(36).slice(2),xn="__reactFiber$"+Fi,ql="__reactProps$"+Fi,jn="__reactContainer$"+Fi,Gc="__reactEvents$"+Fi,dk="__reactListeners$"+Fi,pk="__reactHandles$"+Fi;function Wr(e){var t=e[xn];if(t)return t;for(var r=e.parentNode;r;){if(t=r[jn]||r[xn]){if(r=t.alternate,t.child!==null||r!==null&&r.child!==null)for(e=Lg(e);e!==null;){if(r=e[xn])return r;e=Lg(e)}return t}e=r,r=e.parentNode}return null}function lo(e){return e=e[xn]||e[jn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function wi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(V(33))}function ps(e){return e[ql]||null}var Qc=[],yi=-1;function Cr(e){return{current:e}}function Oe(e){0>yi||(e.current=Qc[yi],Qc[yi]=null,yi--)}function Re(e,t){yi++,Qc[yi]=e.current,e.current=t}var Sr={},ct=Cr(Sr),Lt=Cr(!1),Ur=Sr;function Pi(e,t){var r=e.type.contextTypes;if(!r)return Sr;var l=e.stateNode;if(l&&l.__reactInternalMemoizedUnmaskedChildContext===t)return l.__reactInternalMemoizedMaskedChildContext;var o={},s;for(s in r)o[s]=t[s];return l&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Rt(e){return e=e.childContextTypes,e!=null}function ju(){Oe(Lt),Oe(ct)}function Rg(e,t,r){if(ct.current!==Sr)throw Error(V(168));Re(ct,t),Re(Lt,r)}function hm(e,t,r){var l=e.stateNode;if(t=t.childContextTypes,typeof l.getChildContext!="function")return r;l=l.getChildContext();for(var o in l)if(!(o in t))throw Error(V(108,X2(e)||"Unknown",o));return We({},r,l)}function Hu(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Sr,Ur=ct.current,Re(ct,e),Re(Lt,Lt.current),!0}function Ig(e,t,r){var l=e.stateNode;if(!l)throw Error(V(169));r?(e=hm(e,t,Ur),l.__reactInternalMemoizedMergedChildContext=e,Oe(Lt),Oe(ct),Re(ct,e)):Oe(Lt),Re(Lt,r)}var zn=null,hs=!1,sc=!1;function gm(e){zn===null?zn=[e]:zn.push(e)}function hk(e){hs=!0,gm(e)}function Er(){if(!sc&&zn!==null){sc=!0;var e=0,t=Ce;try{var r=zn;for(Ce=1;e<r.length;e++){var l=r[e];do l=l(!0);while(l!==null)}zn=null,hs=!1}catch(o){throw zn!==null&&(zn=zn.slice(e+1)),F0(Rf,Er),o}finally{Ce=t,sc=!1}}return null}var _i=[],Si=0,Vu=null,Gu=0,Zt=[],Xt=0,jr=null,Dn=1,$n="";function Mr(e,t){_i[Si++]=Gu,_i[Si++]=Vu,Vu=e,Gu=t}function mm(e,t,r){Zt[Xt++]=Dn,Zt[Xt++]=$n,Zt[Xt++]=jr,jr=e;var l=Dn;e=$n;var o=32-hn(l)-1;l&=~(1<<o),r+=1;var s=32-hn(t)+o;if(30<s){var c=o-o%5;s=(l&(1<<c)-1).toString(32),l>>=c,o-=c,Dn=1<<32-hn(t)+o|r<<o|l,$n=s+e}else Dn=1<<s|r<<o|l,$n=e}function Wf(e){e.return!==null&&(Mr(e,1),mm(e,1,0))}function zf(e){for(;e===Vu;)Vu=_i[--Si],_i[Si]=null,Gu=_i[--Si],_i[Si]=null;for(;e===jr;)jr=Zt[--Xt],Zt[Xt]=null,$n=Zt[--Xt],Zt[Xt]=null,Dn=Zt[--Xt],Zt[Xt]=null}var Dt=null,zt=null,Pe=!1,pn=null;function vm(e,t){var r=Jt(5,null,null,0);r.elementType="DELETED",r.stateNode=t,r.return=e,t=e.deletions,t===null?(e.deletions=[r],e.flags|=16):t.push(r)}function Tg(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Dt=e,zt=pr(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Dt=e,zt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(r=jr!==null?{id:Dn,overflow:$n}:null,e.memoizedState={dehydrated:t,treeContext:r,retryLane:1073741824},r=Jt(18,null,null,0),r.stateNode=t,r.return=e,e.child=r,Dt=e,zt=null,!0):!1;default:return!1}}function qc(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Kc(e){if(Pe){var t=zt;if(t){var r=t;if(!Tg(e,t)){if(qc(e))throw Error(V(418));t=pr(r.nextSibling);var l=Dt;t&&Tg(e,t)?vm(l,r):(e.flags=e.flags&-4097|2,Pe=!1,Dt=e)}}else{if(qc(e))throw Error(V(418));e.flags=e.flags&-4097|2,Pe=!1,Dt=e}}}function Og(e){for(e=e Line truncated
Error generating stack: `+s.message+`
`+s.stack}return{value:e,source:t,stack:o,digest:null}}function pc(e,t,r){return{value:e,source:null,stack:r??null,digest:t??null}}function Jc(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Ck=typeof WeakMap=="function"?WeakMap:Map;function Gm(e,t,r){r=Fn(-1,r),r.tag=3,r.payload={element:null};var l=t.value;return r.callback=function(){bu||(bu=!0,af=l),Jc(e,t)},r}function Qm(e,t,r){r=Fn(-1,r),r.tag=3;var l=e.type.getDerivedStateFromError;if(typeof l=="function"){var o=t.value;r.payload=function(){return l(o)},r.callback=function(){Jc(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(r.callback=function(){Jc(e,t),typeof l!="function"&&(gr===null?gr=new Set([this]):gr.add(this));var c=t.stack;this.componentDidCatch(t.value,{componentStack:c!==null?c:""})}),r}function Dg(e,t,r){var l=e.pingCache;if(l===null){l=e.pingCache=new Ck;var o=new Set;l.set(t,o)}else o=l.get(t),o===void 0&&(o=new Set,l.set(t,o));o.has(r)||(o.add(r),e=zk.bind(null,e,t,r),t.then(e,e))}function $g(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function Fg(e,t,r,l,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,r.flags|=131072,r.flags&=-52805,r.tag===1&&(r.alternate===null?r.tag=17:(t=Fn(-1,1),t.tag=2,hr(r,t,1))),r.lanes|=1),e)}var Ek=Gn.ReactCurrentOwner,kt=!1;function mt(e,t,r,l){t.child=e===null?Em(t,null,r,l):Mi(t,e.child,r,l)}function Ug(e,t,r,l,o){r=r.render;var s=t.ref;return Ti(t,o),l=Kf(e,t,r,l,s,o),r=Yf(),e!==null&&!kt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vn(e,t,o)):(Pe&&r&&Wf(t),t.flags|=1,mt(e,t,l,o),t.child)}function jg(e,t,r,l,o){if(e===null){var s=r.type;return typeof s=="function"&&!ld(s)&&s.defaultProps===void 0&&r.compare===null&&r.defaultProps===void 0?(t.tag=15,t.type=s,qm(e,t,s,l,o)):(e=Pu(r.type,null,l,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&o)){var c=s.memoizedProps;if(r=r.compare,r=r!==null?r:Vl,r(c,l)&&e.ref===t.ref)return Vn(e,t,o)}return t.flags|=1,e=vr(s,l),e.ref=t.ref,e.return=t,t.child=e}function qm(e,t,r,l,o){if(e!==null){var s=e.memoizedProps;if(Vl(s,l)&&e.ref===t.ref)if(kt=!1,t.pendingProps=l=s,(e.lanes&o)!==0)e.flags&131072&&(kt=!0);else return t.lanes=e.lanes,Vn(e,t,o)}return bc(e,t,r,l,o)}function Km(e,t,r){var l=t.pendingProps,o=l.children,s=e!==null?e.memoizedState:null;if(l.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Re(Ei,Wt),Wt|=r;else{if(!(r&1073741824))return e=s!==null?s.baseLanes|r:r,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Re(Ei,Wt),Wt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},l=s!==null?s.baseLanes:r,Re(Ei,Wt),Wt|=l}else s!==null?(l=s.baseLanes|r,t.memoizedState=null):l=r,Re(Ei,Wt),Wt|=l;return mt(e,t,o,r),t.child}function Ym(e,t){var r=t.ref;(e===null&&r!==null||e!==null&&e.ref!==r)&&(t.flags|=512,t.flags|=2097152)}function bc(e,t,r,l,o){var s=Rt(r)?Ur:ct.current;return s=Pi(t,s),Ti(t,o),r=Kf(e,t,r,l,s,o),l=Yf(),e!==null&&!kt?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vn(e,t,o)):(Pe&&l&&Wf(t),t.flags|=1,mt(e,t,r,o),t.child)}function Hg(e,t,r,l,o){if(Rt(r)){var s=!0;Hu(t)}else s=!1;if(Ti(t,o),t.stateNode===null)Tu(e,t),xm(t,r,l),Xc(t,r,l,o),l=!0;else if(e===null){var c=t.stateNode,f=t.memoizedProps;c.props=f;var p=c.context,m=r.contextType;typeof m=="object"&&m!==null?m=en(m):(m=Rt(r)?Ur:ct.current,m=Pi(t,m));var y=r.getDerivedStateFromProps,w=typeof y=="function"||typeof c.getSnapshotBeforeUpdate=="function";w||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==l||p!==m)&&Mg(t,c,l,m),ir=!1;var _=t.memoizedState;c.state=_,Ku(t,l,c,o),p=t.memoizedState,f!==l||_!==p||Lt.current||ir?(typeof y=="function"&&(Zc(t,r,y,l),p=t.memoizedState),(f=ir||Ng(t,r,f,l,_,p,m))?(w||typeof c.UNSAFE_componentWillMount!="function"&&typeof c.componentWillMount!="function"||(typeof c.componentWillMount=="function"&&c.componentWillMount(),typeof c.UNSAFE_componentWillMount=="function"&&c.UNSAFE_componentWillMount()),typeof c.componentDidMount=="function"&&(t.flags|=4194308)):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=l,t.memoizedState=p),c.props=l,c.state=p,c.context=m,l=f):(typeof c.componentDidMount=="function"&&(t.flags|=4194308),l=!1)}else{c=t.stateNode,_m(e,t),f=t.memoizedProps,m=t.type===t.elementType?f:fn(t.type,f),c.props=m,w=t.pendingProps,_=c.context,p=r.contextType,typeof p=="object"&&p!==null?p=en(p):(p=Rt(r)?Ur:ct.current,p=Pi(t,p));var k=r.getDerivedStateFromProps;(y=typeof k=="function"||typeof c.getSnapshotBeforeUpdate=="function")||typeof c.UNSAFE_componentWillReceiveProps!="function"&&typeof c.componentWillReceiveProps!="function"||(f!==w||_!==p)&&Mg(t,c,l,p),ir=!1,_=t.memoizedState,c.state=_,Ku(t,l,c,o);var A=t.memoizedS Line truncated
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/rs.exports;(function(e,t){(function(){var r,l="4.17.21",o=200,s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",c="Expected a function",f="Invalid `variable` option passed into `_.template`",p="__lodash_hash_undefined__",m=500,y="__lodash_placeholder__",w=1,_=2,k=4,A=1,T=2,B=1,v=2,S=4,C=8,O=16,M=32,F=64,P=128,z=256,J=512,H=30,ee="...",le=800,ae=16,_e=1,me=2,it=3,fe=1/0,j=9007199254740991,q=17976931348623157e292,G=0/0,Z=4294967295,ve=Z-1,je=Z>>>1,Ee=[["ary",P],["bind",B],["bindKey",v],["curry",C],["curryRight",O],["flip",J],["partial",M],["partialRight",F],["rearg",z]],ft="[object Arguments]",dt="[object Array]",Tt="[object AsyncFunction]",Hi="[object Boolean]",Vi="[object Date]",Nv="[object DOMException]",co="[object Error]",fo="[object Function]",gd="[object GeneratorFunction]",nn="[object Map]",Gi="[object Number]",Mv="[object Null]",Ln="[object Object]",md="[object Promise]",Bv="[object Proxy]",Qi="[object RegExp]",rn="[object Set]",qi="[object String]",po="[object Symbol]",Wv="[object Undefined]",Ki="[object WeakMap]",zv="[object WeakSet]",Yi="[object ArrayBuffer]",Yr="[object DataView]",Es="[object Float32Array]",ks="[object Float64Array]",Ls="[object Int8Array]",Rs="[object Int16Array]",Is="[object Int32Array]",Ts="[object Uint8Array]",Os="[object Uint8ClampedArray]",As="[object Uint16Array]",Ps="[object Uint32Array]",Dv=/\b__p \+= '';/g,$v=/\b(__p \+=) '' \+/g,Fv=/(__e\(.*?\)|\b__t\)) \+\n'';/g,vd=/&(?:amp|lt|gt|quot|#39);/g,wd=/[&<>"']/g,Uv=RegExp(vd.source),jv=RegExp(wd.source),Hv=/<%-([\s\S]+?)%>/g,Vv=/<%([\s\S]+?)%>/g,yd=/<%=([\s\S]+?)%>/g,Gv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Qv=/^\w*$/,qv=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ns=/[\\^$.*+?()[\]{}|]/g,Kv=RegExp(Ns.source),Ms=/^\s+/,Yv=/\s/,Zv=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Xv=/\{\n\/\* \[wrapped with (.+)\] \*/,Jv=/,? & /,bv=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,e1=/[()=,{}\[\]\/\s]/,t1=/\\(\\)?/g,n1=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_d=/\w*$/,r1=/^[-+]0x[0-9a-f]+$/i,i1=/^0b[01]+$/i,l1=/^\[object .+?Constructor\]$/,o1=/^0o[0-7]+$/i,u1=/^(?:0|[1-9]\d*)$/,s1=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ho=/($^)/,a1=/['\n\r\u2028\u2029\\]/g,go="\\ud800-\\udfff",c1="\\u0300-\\u036f",f1="\\ufe20-\\ufe2f",d1="\\u20d0-\\u20ff",Sd=c1+f1+d1,xd="\\u2700-\\u27bf",Cd="a-z\\xdf-\\xf6\\xf8-\\xff",p1="\\xac\\xb1\\xd7\\xf7",h1="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",g1="\\u2000-\\u206f",m1=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ed="A-Z\\xc0-\\xd6\\xd8-\\xde",kd="\\ufe0e\\ufe0f",Ld=p1+h1+g1+m1,Bs="['’]",v1="["+go+"]",Rd="["+Ld+"]",mo="["+Sd+"]",Id="\\d+",w1="["+xd+"]",Td="["+Cd+"]",Od="[^"+go+Ld+Id+xd+Cd+Ed+"]",Ws="\\ud83c[\\udffb-\\udfff]",y1="(?:"+mo+"|"+Ws+")",Ad="[^"+go+"]",zs="(?:\\ud83c[\\udde6-\\uddff]){2}",Ds="[\\ud800-\\udbff][\\udc00-\\udfff]",Zr="["+Ed+"]",Pd="\\u200d",Nd="(?:"+Td+"|"+Od+")",_1="(?:"+Zr+"|"+Od+")",Md="(?:"+Bs+"(?:d|ll|m|re|s|t|ve))?",Bd="(?:"+Bs+"(?:D|LL|M|RE|S|T|VE))?",Wd=y1+"?",zd="["+kd+"]?",S1="(?:"+Pd+"(?:"+[Ad,zs,Ds].join("|")+")"+zd+Wd+")*",x1="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",C1="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Dd=zd+Wd+S1,E1="(?:"+[w1,zs,Ds].join("|")+")"+Dd,k1="(?:"+[Ad+mo+"?",mo,zs,Ds,v1].join("|")+")",L1=RegExp(Bs,"g"),R1=RegExp(mo,"g"),$s=RegExp(Ws+"(?="+Ws+")|"+k1+Dd,"g"),I1=RegExp([Zr+"?"+Td+"+"+Md+"(?="+[Rd,Zr,"$"].join("|")+")",_1+"+"+Bd+"(?="+[Rd,Zr+Nd,"$"].join("|")+")",Zr+"?"+Nd+"+"+Md,Zr+"+"+Bd,C1,x1,Id,E1].join("|"),"g"),T1=RegExp("["+Pd+go+Sd+kd+"]"),O1=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,A1=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],P1=-1,Ie={};Ie[Es]=Ie[ks]=Ie[Ls]=Ie[Rs]=Ie[Is]=Ie[Ts]=Ie[Os]=Ie[As]=Ie[Ps]=!0,Ie[ft]=Ie[dt]=Ie[Yi]=Ie[Hi]=Ie[Yr]=Ie[Vi]=Ie[co]=Ie[fo]=Ie[nn]=Ie[Gi]=Ie[Ln]=Ie[Qi]=Ie[rn]=Ie[qi]=Ie[Ki]=!1;var Le={};Le[ft]=Le[dt]=Le[Yi]=Le[Yr]=Le[Hi]=Le[Vi]=Le[Es]=Le[ks]=Le[Ls]=Le[Rs]=Le[Is]=Le[nn]=Le[Gi]=Le[Ln]=Le[Qi]=Le[rn]=Le[qi]=Le[po]=Le[Ts]=Le[Os]=Le[As]=Le[Ps]=!0,Le[co]=Le[fo]=Le[Ki]=!1;var N1={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",Line truncated
/* [wrapped with `+i+`] */
`)}function Yy(n){return oe(n)||Nr(n)||!!(up&&n&&n[up])}function Pn(n,i){var u=typeof n;return i=i??j,!!i&&(u=="number"||u!="symbol"&&u1.test(n))&&n>-1&&n%1==0&&n<i}function ht(n,i,u){if(!Ne(u))return!1;var a=typeof i;return(a=="number"?St(u)&&Pn(i,u.length):a=="string"&&i in u)?un(u[i],n):!1}function La(n,i){if(oe(n))return!1;var u=typeof n;return u=="number"||u=="symbol"||u=="boolean"||n==null||Nt(n)?!0:Qv.test(n)||!Gv.test(n)||i!=null&&n in ke(i)}function Zy(n){var i=typeof n;return i=="string"||i=="number"||i=="symbol"||i=="boolean"?n!=="__proto__":n===null}function Ra(n){var i=Go(n),u=h[i];if(typeof u!="function"||!(i in pe.prototype))return!1;if(n===u)return!0;var a=Ca(u);return!!a&&n===a[0]}function Xy(n){return!!rp&&rp in n}var Jy=So?Nn:Va;function sl(n){var i=n&&n.constructor,u=typeof i=="function"&&i.prototype||ti;return n===u}function rh(n){return n===n&&!Ne(n)}function ih(n,i){return function(u){return u==null?!1:u[n]===i&&(i!==r||n in ke(u))}}function by(n){var i=Xo(n,function(a){return u.size===m&&u.clear(),a}),u=i.cache;return i}function e_(n,i){var u=n[1],a=i[1],d=u|a,g=d<(B|v|P),x=a==P&&u==C||a==P&&u==z&&n[7].length<=i[8]||a==(P|z)&&i[7].length<=i[8]&&u==C;if(!(g||x))return n;a&B&&(n[2]=i[2],d|=u&B?0:S);var E=i[3];if(E){var R=n[3];n[3]=R?Fp(R,E,i[4]):E,n[4]=R?Yn(n[3],y):i[4]}return E=i[5],E&&(R=n[5],n[5]=R?Up(R,E,i[6]):E,n[6]=R?Yn(n[5],y):i[6]),E=i[7],E&&(n[7]=E),a&P&&(n[8]=n[8]==null?i[8]:lt(n[8],i[8])),n[9]==null&&(n[9]=i[9]),n[0]=i[0],n[1]=d,n}function t_(n){var i=[];if(n!=null)for(var u in ke(n))i.push(u);return i}function n_(n){return Co.call(n)}function lh(n,i,u){return i=Ge(i===r?n.length-1:i,0),function(){for(var a=arguments,d=-1,g=Ge(a.length-i,0),x=N(g);++d<g;)x[d]=a[i+d];d=-1;for(var E=N(i+1);++d<i;)E[d]=a[d];return E[i]=u(x),Ot(n,this,E)}}function oh(n,i){return i.length<2?n:Or(n,qt(i,0,-1))}function r_(n,i){for(var u=n.length,a=lt(i.length,u),d=_t(n);a--;){var g=i[a];n[a]=Pn(g,u)?d[g]:r}return n}function Ia(n,i){if(!(i==="constructor"&&typeof n[i]=="function")&&i!="__proto__")return n[i]}var uh=ah(Op),al=ww||function(n,i){return Je.setTimeout(n,i)},Ta=ah(Ly);function sh(n,i,u){var a=i+"";return Ta(n,Ky(a,i_(Gy(a),u)))}function ah(n){var i=0,u=0;return function(){var a=xw(),d=ae-(a-u);if(u=a,d>0){if(++i>=le)return arguments[0]}else i=0;return n.apply(r,arguments)}}function qo(n,i){var u=-1,a=n.length,d=a-1;for(i=i===r?a:i;++u<i;){var g=fa(u,d),x=n[g];n[g]=n[u],n[u]=x}return n.length=i,n}var ch=by(function(n){var i=[];return n.charCodeAt(0)===46&&i.push(""),n.replace(qv,function(u,a,d,g){i.push(d?g.replace(t1,"$1"):a||u)}),i});function yn(n){if(typeof n=="string"||Nt(n))return n;var i=n+"";return i=="0"&&1/n==-fe?"-0":i}function Pr(n){if(n!=null){try{return xo.call(n)}catch{}try{return n+""}catch{}}return""}function i_(n,i){return Ht(Ee,function(u){var a="_."+u[0];i&u[1]&&!vo(n,a)&&n.push(a)}),n.sort()}function fh(n){if(n instanceof pe)return n.clone();var i=new Gt(n.__wrapped__,n.__chain__);return i.__actions__=_t(n.__actions__),i.__index__=n.__index__,i.__values__=n.__values__,i}function l_(n,i,u){(u?ht(n,i,u):i===r)?i=1:i=Ge(ue(i),0);var a=n==null?0:n.length;if(!a||i<1)return[];for(var d=0,g=0,x=N(To(a/i));d<a;)x[g++]=qt(n,d,d+=i);return x}function o_(n){for(var i=-1,u=n==null?0:n.length,a=0,d=[];++i<u;){var g=n[i];g&&(d[a++]=g)}return d}function u_(){var n=arguments.length;if(!n)return[];for(var i=N(n-1),u=arguments[0],a=n;a--;)i[a-1]=arguments[a];return Kn(oe(u)?_t(u):[u],be(i,1))}var s_=ce(function(n,i){return $e(n)?rl(n,be(i,1,$e,!0)):[]}),a_=ce(function(n,i){var u=Kt(i);return $e(u)&&(u=r),$e(n)?rl(n,be(i,1,$e,!0),te(u,2)):[]}),c_=ce(function(n,i){var u=Kt(i);return $e(u)&&(u=r),$e(n)?rl(n,be(i,1,$e,!0),r,u):[]});function f_(n,i,u){var a=n==null?0:n.length;return a?(i=u||i===r?1:ue(i),qt(n,i<0?0:i,a)):[]}function d_(n,i,u){var a=n==null?0:n.length;return a?(i=u||i===r?1:ue(i),i=a-i,qt(n,0,i<0?0:i)):[]}function p_(n,i){return n&&n.length?$o(n,te(i,3),!0,!0):[]}function h_(n,i){return n&&n.length?$o(n,te(i,3),!0):[]}function g_(n,i,u,a){var d=n==null?0:n.length;return d?(u&&typeof u!="number"&&ht(n,i,u)&&(u=0,a=d),uy(n,i,u,a)):[]}function dh(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var d=u==null?0:ue(u);return d<0&&(d=Ge(a+d,0)),wo(n,te(i,3),d)}function ph(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var d=a-1;return u!==r&&(d=ue(u),d=u<0?Ge(a+d,0):lt(d,a-1)),wo(n,te(i,3),d,!0)}function hh(n){var i=n==null?0:n.length;return i?be(n,1):[]}function m_(n){var i=n==null?0:n.length;return i?be(n,fe):[]}function v_(n,i){var u=n==null?0:n.length;return u?(i=i===r?1:ue(i),be(n,i)):[]}function w_(n){for(var i=-1,u=n==null?0:n.length,a={};++i<u;){var d=n[i];a[d[0]]=d[1]}return a}function gh(n){return n&&n.length?n[0]:r}function y_(n,i,u){var a=n==null?0:n.length;if(!a)return-1;var d=u==null?0:ue(u);return d<0&&(d=Ge(a+d,0)),Xr(n,i,d)}function __(n){var i=n==null?0:n.length;return i?qt(n,0,-1):[]}var S_=ce(function(n){var i=Ae(n,ma);return i.length&&i[0]===n[0]?oa(i):[]}),x_=c Line truncated
`;n.replace(Q,function(re,de,ge,Mt,gt,Bt){return ge||(ge=Mt),U+=n.slice(D,Bt).replace(a1,J1),de&&(E=!0,U+=`' +
__e(`+de+`) +
'`),gt&&(R=!0,U+=`';
`+gt+`;
__p += '`),ge&&(U+=`' +
((__t = (`+ge+`)) == null ? '' : __t) +
'`),D=Bt+re.length,re}),U+=`';
`;var ne=xe.call(i,"variable")&&i.variable;if(!ne)U=`with (obj) {
`+U+`
}
`;else if(e1.test(ne))throw new ie(f);U=(R?U.replace(Dv,""):U).replace($v,"$1").replace(Fv,"$1;"),U="function("+(ne||"obj")+`) {
`+(ne?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(E?", __e = _.escape":"")+(R?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+U+`return __p
}`;var se=Hh(function(){return ye(g,b+"return "+U).apply(r,x)});if(se.source=U,Ma(se))throw se;return se}function EC(n){return Se(n).toLowerCase()}function kC(n){return Se(n).toUpperCase()}function LC(n,i,u){if(n=Se(n),n&&(u||i===r))return Jd(n);if(!n||!(i=Pt(i)))return n;var a=ln(n),d=ln(i),g=bd(a,d),x=ep(a,d)+1;return er(a,g,x).join("")}function RC(n,i,u){if(n=Se(n),n&&(u||i===r))return n.slice(0,np(n)+1);if(!n||!(i=Pt(i)))return n;var a=ln(n),d=ep(a,ln(i))+1;return er(a,0,d).join("")}function IC(n,i,u){if(n=Se(n),n&&(u||i===r))return n.replace(Ms,"");if(!n||!(i=Pt(i)))return n;var a=ln(n),d=bd(a,ln(i));return er(a,d).join("")}function TC(n,i){var u=H,a=ee;if(Ne(i)){var d="separator"in i?i.separator:d;u="length"in i?ue(i.length):u,a="omission"in i?Pt(i.omission):a}n=Se(n);var g=n.length;if(Jr(n)){var x=ln(n);g=x.length}if(u>=g)return n;var E=u-br(a);if(E<1)return a;var R=x?er(x,0,E).join(""):n.slice(0,E);if(d===r)return R+a;if(x&&(E+=R.length-E),Ba(d)){if(n.slice(E).search(d)){var D,$=R;for(d.global||(d=Xs(d.source,Se(_d.exec(d))+"g")),d.lastIndex=0;D=d.exec($);)var U=D.index;R=R.slice(0,U===r?E:U)}}else if(n.indexOf(Pt(d),E)!=E){var Q=R.lastIndexOf(d);Q>-1&&(R=R.slice(0,Q))}return R+a}function OC(n){return n=Se(n),n&&Uv.test(n)?n.replace(vd,lw):n}var AC=oi(function(n,i,u){return n+(u?" ":"")+i.toUpperCase()}),Da=Vp("toUpperCase");function jh(n,i,u){return n=Se(n),i=u?r:i,i===r?ew(n)?sw(n):G1(n):n.match(i)||[]}var Hh=ce(function(n,i){try{return Ot(n,r,i)}catch(u){return Ma(u)?u:new ie(u)}}),PC=An(function(n,i){return Ht(i,function(u){u=yn(u),Tn(n,u,Pa(n[u],n))}),n});function NC(n){var i=n==null?0:n.length,u=te();return n=i?Ae(n,function(a){if(typeof a[1]!="function")throw new Vt(c);return[u(a[0]),a[1]]}):[],ce(function(a){for(var d=-1;++d<i;){var g=n[d];if(Ot(g[0],this,a))return Ot(g[1],this,a)}})}function MC(n){return ly(Qt(n,w))}function $a(n){return function(){return n}}function BC(n,i){return n==null||n!==n?i:n}var WC=Qp(),zC=Qp(!0);function Ct(n){return n}function Fa(n){return xp(typeof n=="function"?n:Qt(n,w))}function DC(n){return Ep(Qt(n,w))}function $C(n,i){return kp(n,Qt(i,w))}var FC=ce(function(n,i){return function(u){return il(u,n,i)}}),UC=ce(function(n,i){return function(u){return il(n,u,i)}});function Ua(n,i,u){var a=Ke(i),d=Wo(i,a);u==null&&!(Ne(i)&&(d.length||!a.length))&&(u=i,i=n,n=this,d=Wo(i,Ke(i)));var g=!(Ne(u)&&"chain"in u)||!!u.chain,x=Nn(n);return Ht(d,function(E){var R=i[E];n[E]=R,x&&(n.prototype[E]=function(){var D=this.__chain__;if(g||D){var $=n(this.__wrapped__),U=$.__actions__=_t(this.__actions__);return U.push({func:R,args:arguments,thisArg:n}),$.__chain__=D,$}return R.apply(n,Kn([this.value()],arguments))})}),n}function jC(){return Je._===this&&(Je._=hw),this}function ja(){}function HC(n){return n=ue(n),ce(function(i){return Lp(i,n)})}var VC=ya(Ae),GC=ya(qd),QC=ya(Vs);function Vh(n){return La(n)?Gs(yn(n)):xy(n)}function qC(n){return function(i){return n==null?r:Or(n,i)}}var KC=Kp(),YC=Kp(!0);function Ha(){return[]}function Va(){return!1}function ZC(){return{}}function XC(){return""}function JC(){return!0}function bC(n,i){if(n=ue(n),n<1||n>j)return[];var u=Z,a=lt(n,Z);i=te(i),n-=Z;for(var d=Ks(a,i);++u<n;)i(u);return d}function e2(n){return oe(n)?Ae(n,yn):Nt(n)?[n]:_t(ch(Se(n)))}function t2(n){var i=++dw;return Se(n)+i}var n2=jo(function(n,i){return n+i},0),r2=_a("ceil"),i2=jo(function(n,i){return n/i},1),l2=_a("floor");function o2(n){return n&&n.length?Bo(n,Ct,la):r}function u2(n,i){return n&&n.length?Bo(n,te(i,2),la):r}function s2(n){return Zd(n,Ct)}function a2(n,i){return Zd(n,te(i,2))}function c2(n){return n&&n.length?Bo(n,Ct,aa):r}function f2(n,i){return n&&n.length?Bo(n,te(i,2),aa):r}var d2=jo(function(n,i){return n*i},1),p2=_a("round"),h2=jo(function(n,i){return n-i},0);function g2(n){return n&&n.length?qs(n,Ct):0}function m2(n,i){return n&&n.length?qs(n,te(i,2)):0}return h.after=DS,h.ary=Sh,h.assign=kx,h.assignIn=Bh,h.assignInWith=tu,h.assignWith=Lx,h.at=Rx,h.before=xh,h.bind=Pa,h.bindAll=PC,h.bindKey=Ch,h.castArray=ZS,h.chain=wh,h.chunk=l_,h.compact=o_,h.concat=u_,h.cond=NC,h.conforms=MC,h.constant=$a,h.countBy=gS,h.create=Ix,h.curry=Eh,h.curryRight=kh,h.debounce=Lh,h.defaults=Tx,h.defaultsDeep=Ox,h.defer=$S,h.delay=FS,h.difference=s_,h.differenceBy=a_,h.differenceWith=c_,h.drop=f_,h.dropRight=d_,h.dropRightWhile=p_,h.dropWhile=h_,h.fill=g_,h.filter=vS,h.flatMap=_S,h.flatMapDeep=SS,h.flatMapDepth=xS,h.flatten=hh,h.flattenDeep=m_,h.flattenDepth=v_,h.flip=US,h.flow=WC,h.flowRight=zC,h.fromPairs=w_,h.functions=zx,h.functionsIn=Dx,h.groupBy=CS,h.initial=__,h.intersection=S_,h.intersectionBy=x_,h.intersectionWith=C_,h.invert=Fx,h.invertBy=Ux,h.invokeMap=kS,h.iteratee=Fa,h.keyBy=LS,h.keys=Ke,h.keysIn=xt,h.map=Yo,h.mapKeys=Hx,h.mapValues=Vx,h.matches=DC,h.matchesProperty=$C,h.memoize=Xo,h.merge=Gx,h.mergeWith=Wh,h.method=FC,h.methodOf=UC,h.mixin=Ua,h.negate=Jo,h.nthArg=HC,h.omit=Qx,h.omitBy=qx,h.once=jS,h.orderBy=RS,h.over=VC,h.overArgs=HS,h.overEvery=GC,h.overSome=QC,h.pa Line truncated
`;function ur({blocks:e=[],arrows:t=[],arrowId:r,rotate:l=!1,rotateNegative:o=!1,flip:s=!1,lines:c=[],children:f=[],includeInlineStyle:p=!1,effect:m,...y}){X.useEffect(()=>m==null?void 0:m()),r=r||Math.floor(Math.random()*Math.pow(2,4*8)).toString(16),f?Symbol.iterator in f||(f=[f]):f=[],y.className||(y.className=""),y.className+=" cBuilderSvg";const w=()=>p?I.jsx("style",{children:Kk}):I.jsx(I.Fragment,{});return I.jsxs("svg",{viewBox:"0 0 100 100",...y,children:[I.jsx(w,{}),I.jsxs("defs",{children:[I.jsx("marker",{id:`arrow_${r}`,viewBox:"0 0 10 10",refX:"5",refY:"5",markerWidth:"2.5",markerHeight:"2.5",orient:"auto-start-reverse",fill:"currentColor",className:"cBuilderSvg__marker",markerUnits:"strokeWidth",children:I.jsx("path",{d:"M 0 0 L 10 5 L 0 10 Z"})}),I.jsx("clipPath",{id:`main_clip_${r}`,clipPathUnits:"userSpaceOnUse",children:I.jsx("rect",{x:5,y:5,width:90,height:90,rx:11.75})}),I.jsx("clipPath",{id:`clip1_${r}`,clipPathUnits:"userSpaceOnUse",children:I.jsx("path",{d:"M 0 0 L 25 0 L 25 100 L 0 100 Z"})}),I.jsx("clipPath",{id:`clip2_${r}`,clipPathUnits:"userSpaceOnUse",children:I.jsx("path",{d:"M72.5 0 L 97.5 0 L 97.5 100 L 72.5 100 Z"})}),I.jsx("clipPath",{id:`clip3_${r}`,clipPathUnits:"userSpaceOnUse",children:I.jsx("path",{d:"M75 25 L 80 25 A 5 5 0 0 0 85 30 L 85 80 A 5 5 0 0 0 80 85 L 30 85 A 5 5 0 0 0 25 80 L 25 75 L 70 75 A 5 5 0 0 0 75 70 Z"})}),I.jsx("clipPath",{id:`clip4_${r}`,clipPathUnits:"userSpaceOnUse",children:I.jsx("rect",{x:20,y:70,width:60,height:15,rx:5})})]}),I.jsx("g",{transform:l?void 0:`rotate(${o?"-":""}90)`,x:0,y:0,width:100,height:100,children:I.jsxs("g",{transform:l?void 0:`scale(${s?"1,-1":"1,1"})`,x:0,y:0,width:100,height:100,children:[I.jsx("rect",{width:95,height:95,x:2.5,y:2.5,rx:15,fill:"none",stroke:"none",strokeWidth:5,"data-role":"background"}),I.jsxs("g",{id:"mainarea",clipPath:`url(#main_clip_${r})`,children:[e.map((_,k)=>I.jsx("rect",{fill:"currentColor",rx:5,..._},k)),t.map(_=>I.jsx("path",{d:"M "+(_ instanceof Array?_:_.points).map(({x:k,y:A})=>`${k} ${A}`).join(" L "),rx:20,fill:"none",strokeWidth:6,stroke:"currentColor",strokeLinejoin:"round",markerStart:["both","start"].includes(_.marker)?`url(#arrow_${r})`:void 0,markerEnd:["both","end",void 0].includes(_.marker)?`url(#arrow_${r})`:void 0,className:"cBuilderSvg__arrow"},JSON.stringify(_))),c.map(_=>I.jsx("path",{d:"M "+(_ instanceof Array?_:_.points).map(({x:k,y:A})=>`${k} ${A}`).join(" L "),rx:20,fill:"none",strokeWidth:6,stroke:"currentColor",strokeLinejoin:"round",className:_.className||void 0},JSON.stringify(_))),f]}),I.jsx("rect",{width:95,height:95,x:2.5,y:2.5,rx:15,fill:"none",stroke:"currentColor",strokeWidth:5,"data-role":"outerborder"})]})})]})}function Yk({pattern:e="start",horizontal:t=!0,...r}){const o=[{width:60},{width:80},{width:40}].map((s,c)=>({...s,height:23.4,className:"cBuilderSvg__box--outlined",y:5+90*c/3+1.3+2,x:(()=>e==="end"?97.5-s.width:e==="center"?50-s.width/2:2.5)()}));return I.jsx(ur,{blocks:o,rotate:t,...r})}function cn({...e}){return e.className=[e.className||"","cBuilderSvg__image-icon"].join(" ").trim().replace(/\s+/," "),I.jsxs("svg",{...e,viewBox:"0 0 90 90",children:[I.jsx("rect",{x:0,y:0,className:"cBuilderSvg__box--secondaryColoring",width:90,height:90,rx:10,fill:"currentColor"}),I.jsx("path",{d:"M4 86 L 25 28 L 55 68 L 69 50 L 84 86Z",stroke:"currentColor",strokeWidth:"6",fill:"currentColor",strokeLinejoin:"round"}),I.jsx("circle",{r:"10",cx:"70",cy:"20",fill:"currentColor",stroke:"currentColor"})]})}const _l=[[{x:35,y:84},{x:16,y:84}],[{x:65,y:84},{x:84,y:84}]];function Zk({behavior:e="wrap",horizontal:t=!1,...r}){r.className=r.className||"",r.className+=" cBuilderSvg--wrap-icon";const l=[],o=[],s=[];let c=4,f=c,p=[57,31],m,y,w,_,k,A;switch(e){case"carousel":l.push({width:15,height:40,x:0,y:20,className:"cBuilderSvg__box--outlined"}),l.push({width:66,height:60,x:17,y:10,className:"cBuilderSvg__box--outlined"}),l.push({width:15,height:40,x:85,y:20,className:"cBuilderSvg__box--outlined"}),l.push({height:3,width:40,y:25,x:22,rx:0}),l.push({height:3,width:30,y:32,x:22,rx:0}),l.push({height:3,width:52,y:39,x:22,rx:0}),l.push({height:3,width:22,y:46,x:22,rx:0}),o.push([{x:35,y:84},{x:16,y:84}]),o.push([{x:65,y:84},{x:84,y:84}]);break;case"table":case"table-carousel":c=1.3,w=e==="table-carousel"?78:70,_=e==="table-carousel"?11:15,m=e==="table-carousel"?20:0,y=e==="table-carousel"?1:3;for(let T=0;T<y;T++)l.push({height:85/3-4-2*c,width:w,y:7.5+85*T/3+c+2+m,x:_,className:"cBuilderSvg__box--outlined"});e==="table-carousel"&&o.splice(0,0,..._l.map(T=>T.map(B=>({x:B.x,y:B.y-15}))));break;case"mini-grid":case"grid-carousel":case"mini-grid-carousel":case"grid":k=e.startsWith("mini")?3:2,y=e.startsWith("mini")?3:2,A=88,m=e==="grid-carousel"?7:0,e.startsWith("mini")&&(f=10,c=5),e==="grid-carousel"&&(y=1,k=3),e.endsWith("carousel")&&(A=e.startsWith("mini")?68:54,o.splice(o.length,0,..._l.map(T=>T.map(B=>({x:B.x,y:B.y-5}))))),e==="mini-grid"&&(m=10,A=68),e==="mini-grid-carousel Line truncated
<div
class="ipsLoading"
style="width:${ae.width}px; height:${ae.height}px; position:static !important;"
>
<div class="ipsRichText ipsWidget__content ipsWidget__padding">
${le}
</div>
</div>`)}else c.current.style.height=`${ae.height}px`,c.current.style.width=`${ae.width}px`;setTimeout(async()=>{let me;try{me=await window.ips.fetch(F.action,{data:J,method:"post",bypassRedirect:!0})}catch(it){window.Debug.error(it)}S.hide(),M.remove(),t("default"),p({}),s(me)},100)})),S.addContentProcessor(F=>{var J,H;const P=(J=M.parentElement)==null?void 0:J.getBoundingClientRect();if(P){const ee=M.parentElement;ee.style.width=P.width+"px",ee.style.height=P.height+"px";const le=(H=F.closest(".ipsDialog"))==null?void 0:H.getAttribute("id");if(le){const ae=(_e,{dialogID:me})=>{le===me&&(ee.style.width="",ee.style.height="",ee.appendChild(M),B(M),window.$(document).off("hideDialog",ae))};window.$(document).on("hideDialog",ae)}}let z=M;for(;z;){if(z.parentElement===F)return;z=z.parentElement}F.innerHTML="",F.appendChild(M),B(M,!0)}),p({element:M,configId:O,dialogRef:S})}t("editing")}}}}function eo(e){return(e instanceof Element?e:document).querySelector("[data-ipsconfigform]")}function _3(e){return!1}function S3({blockID:e,title:t,config:r,update:l,defaultConfiguration:o,blank:s,getArea:c,contentRaw:f,selectArea:p},m){const[y,w]=X.useState("default"),_=X.useRef(null),k=H=>{y==="default"&&H==="editing"&&e.startsWith("app_cms_Wysiwyg")&&(S==null||S()),w(H)};let A=!1;const{area:T}=X.useContext(Kr),{setEditing:B,editForm:v,captureHeight:S,blockUsesInlineEditing:C,toolList:O,tiptapRef:M,toolListWrap:F}=y3({blockID:e,setState:k,state:y,blockArea:T,title:t,reloadContent:z,contentRaw:f},m);X.useEffect(()=>{if(y==="default"){const H=e.split("_");(!H[3]||s)&&(A=!H[3],A&&(e+=`_${Math.random().toString(36).slice(2,9)}`),z(),k("loading"))}}),X.useEffect(()=>{var H;r&&_.current&&((H=_.current)==null?void 0:H.dataset.menuListenerSet)!=="true"&&(_.current.dataset.menuListenerSet="true",window.$(document).trigger("contentChange",[window.$(_.current.parentElement)]),_.current.addEventListener("ipsMenuOpened",async ee=>{if(await new Promise(ae=>setTimeout(ae,1)),C){await p(),J(),await B();return}let le=`${window.ips.getSetting("baseURL")}index.php?${Object.entries(so()).map(([ae,_e])=>`${encodeURIComponent(ae)}=${encodeURIComponent(_e)}`).join("&")}&do=getConfiguration&block=${encodeURIComponent(e)}&pageApp=${encodeURIComponent(document.body.dataset.pageapp)}&pageModule=${encodeURIComponent(document.body.dataset.pagemodule)}&pageController=${encodeURIComponent(document.body.dataset.pagecontroller)}&pageArea=${encodeURIComponent(T)}&area=${encodeURIComponent(T)}`;try{if(P()==="modal"){J();const ae=window.ips.ui.dialog.create({title:t,url:le,forceReload:!0,destructOnClose:!0,remoteSubmit:!0});ae.show(),document.querySelectorAll(`[id="${e}_edit_menu"]`).ipsHide();const _e=Qn.throttle(me=>{me.dialogID===ae.dialogID&&(me.stopImmediatePropagation(),me.preventDefault(),z(me.response))},200);document.addEventListener("dialogSubmission",_e,{once:!0})}else ee.menu.html(window.$("<div/>").addClass("ipsLoading").css({height:"100px"})),setTimeout(async()=>{const ae=await window.ips.fetch(le),_e=ee.menu.get(0);if(_e.id)for(const me of document.querySelectorAll(`[id="${_e.id}"]`))me!==_e&&me.remove();ee.menu.html(ae).find("form").on("submit",async me=>{var it;me.preventDefault();try{const fe=await window.ips.fetch(window.$(me.currentTarget).attr("action"),{data:window.$(me.currentTarget).serialize(),type:"post"});typeof fe=="object"||((it=fe==null?void 0:fe.toLowerCase)==null?void 0:it.call(fe))==="ok"?(await z(fe),ee.menu.trigger("closeMenu")):typeof fe=="string"&&ee.menu.html(fe)}catch(fe){window.Debug.warn(fe),window.ips.ui.alert.show({type:"alert",icon:"warn",message:window.ips.getString("sidebarConfigError"),callbacks:{}})}}),ee.menu.trigger("contentChange",[ee.menu])},10);document.body.dispatchEvent(new is(null))}catch(ae){window.Debug.warn(ae),window.ips.ui.alert("Something went wrong when loading the configuration settings")}await p()}))});function P(){var H;return((H=ji(e))==null?void 0:H.dataset.menustyle)||"none"}async function z(H){const ee={blockID:e,title:t,config:r,blank:!1,contentRaw:"Error"};(H==null?void 0:H.areaClasses)instanceof Array&&(ee.areaClasses=Array.from(new Set(H.areaClasses)));try{const le=await Tv(e,o,T,A,c().wrapBehavior);ee.contentRaw=le,ee.defaultConfiguration=void 0,l==null||l(ee),k("default")}catch(le){l==null||l(ee),k("contentLoadError"),window.Debug.log("something went wrong when loading a block's content."),window.Debug.error(le)}}function J(){document.querySelectorAll(`[id="${e}_edit_menu"]`).ipsHide()}return{reloadContent:z,state:y,setState:k,editForm:v,blockUsesInlineEditing:C,manageBlockRef:_,toolList:O,tiptapRef:M,toolListWrap:F}}function ao(e){return e.split("_").slice(0,3).join("_")}function ji(e){if(typeof e!="string")return window.Debug.warn("Could not get a block base because the id is not a string"),null;const t=ao(e);return t?document.querySelector(`[data-role="availableBlocks"] :is([data-blockID="${t}"],[data-blockID*="${t}_"])`):(window.Debug.warn(`The block id ${JSON.stringify(e)} does Line truncated
`)),await window.ips.ui.editorv5.whenLoaded();const J=document.createElement("div");J.setAttribute("hidden",""),document.body.appendChild(J);const[H,ee]=await window.ips.utils.tiptap.editorInstance(J,{...window.ips.ui.editorv5.buildConfig({}),content:z});if(await new Promise(le=>setTimeout(le)),z=H.getHTML(),H.destroy(),ee.unmount(),J.remove(),z){O={orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:"table",otherOptions:{},widgets:[{title:"WYSIWYG Editor",blockID:"app_cms_Wysiwyg",config:!0,blank:!1,contentRaw:z,defaultConfiguration:{content:z}}]};break}throw new Error(`The data from the drop event did not include ${P}, so the block could not be inserted in the widget area tree`)}const F=y.current;if(F){if(M.blockID.startsWith("app_cms_Blocks:")){const le=ji(M.blockID),ae=le==null?void 0:le.dataset.customblockid;if(!ae)throw new Error("The dropped block is a custom block but the block id is invalid");const _e=await window.ips.fetch(window.ips.getSetting("baseURL"),{method:"get",data:{app:"cms",module:"pages",controller:"builder",do:"getCustomBlockContent",id:ae}});if(typeof _e.content!="string"||typeof _e.block_key!="string"||typeof((A=_e.configuration)==null?void 0:A.blocktitle)!="string")throw new TypeError("Could not add a custom block because the server didn't return a string for it's content, blocktitle data attribute, or block key (as in the key of the custom block)");M.contentRaw=_e.content,M.defaultConfiguration={cms_widget_custom_block:_e.block_key},M.blockID=`app_cms_Blocks_${Math.round(Math.random()*Math.pow(16,8)).toString(16)}`,M.blockTitle=_e.configuration.blocktitle}const P=Lv(F,k.clientX,k.clientY),z=M.areaDetails,J={title:M.blockTitle,blockID:M.blockID,config:M.config,blank:M.blank,contentRaw:M.contentRaw||"<div class='ipsLoading'></div>"};M.defaultConfiguration&&(J.defaultConfiguration=J.configuration=M.defaultConfiguration),O=O||{orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:(z==null?void 0:z.wrapBehavior)||M.ipsWrapBehavior||((v=(B=(T=hd(M.blockID))==null?void 0:T.values())==null?void 0:B.next())==null?void 0:v.value)||"table",otherOptions:{...z==null?void 0:z.otherOptions},widgets:[J]};const H=await Ov(),ee=[];if(Number.isInteger(M==null?void 0:M.areaId)&&M.area===w&&M.pageHash===H&&ee.push(M.areaId),ee.includes(f))return;if(ao(O.widgets[0].blockID)===O.widgets[0].blockID){O.widgets[0].blockID+="_";for(let le=0;le<6;le++)O.widgets[0].blockID+=Math.round(Math.random()*16).toString(16);O.widgets[0].contentRaw=await Tv(O.widgets[0].blockID,O.widgets[0].defaultConfiguration,w,!0,O.wrapBehavior),O.widgets[0].blank=!1}if((S=y==null?void 0:y.current)!=null&&S.closest(".cWidgetContainer--carousel")&&O.wrapBehavior in Ze&&(O.wrapBehavior=Ze[O.wrapBehavior],O.widgets.length&&(O.widgets[0].blank=!0,O.widgets[0].contentRaw=`<div class="ipsLoading">${O.widgets[0].contentRaw||""}</div>`)),["before","after"].includes(P))O.orientation=e,c==null||c(O,P==="before",ee);else if(!t.length&&s.length){const le={orientation:e==="horizontal"?"vertical":"horizontal",children:[],wrapBehavior:r,otherOptions:o,widgets:s,areaId:f};l({newState:{children:P===0?[O,le]:[le,O],wrapBehavior:"wrap",widgets:[],otherOptions:{}},toRemove:ee})}else t.splice(P,0,O),l({newState:{children:t},toRemove:ee});(C=y.current)==null||C.dispatchEvent(new to({widget:O.widgets[0],area:w}))}}catch(O){window.Debug.warn(O),window.Debug.log("Could not insert the content dropped inside a widget area"),window.ips.ui.alert.show({message:"This content cannot be dropped in the page"})}document.querySelectorAll("section.cWidgetContainer:not([data-controller])").forEach(O=>{O.removeAttribute("hidden"),O.querySelectorAll(":scope > .cWidgetContainer__menu_region").forEach(M=>M.style.display="")})},onDragOver:k=>{k.preventDefault(),k.stopPropagation(),O3({ref:y,orientation:e,wrapBehavior:r,getParent:p,children:t,clientX:k.clientX,clientY:k.clientY})}}}function I3(e,t){if(e!=null&&e.classList.contains("cWidgetContainer--dragInside")){const r=e.getBoundingClientRect();let l;if(e.scrollWidth<=r.width)return!1;if(t<r.left+Math.min(r.width/10,70))l="prev";else if(t>r.right-Math.max(r.width/10,70))l="next";else return!1;if(l&&!window.ips.ui.carousel.containerAtEnd(e,l))return T3(e,l),!0}return!1}const T3=Qn.throttle((e,t)=>{e.dispatchEvent(new CustomEvent("scrollPanels",{detail:{direction:t,loop:!1}}))},1e3),O3=Qn.throttle(function({ref:e,orientation:t,wrapBehavior:r,getParent:l,children:o,clientX:s,clientY:c}){var f,p;if(e.current){if(eo(e.current.closest(".pageBuilderRoot")))return;const m=l==null?void 0:l();try{let y,w,_=e.current,k=Lv(_,s,c),A=t;if(["stack","accordion"].includes(r)&&(t="vertical"),["before","after"].includes(k)){A=t==="horizontal"?"vertical":"horizontal";const v=k;if(_=(f=e.current.parentElement)==null?void 0:f.closest(".pageBuilderRoot .cWidgetContainer"),_){let S=_.querySelectorAll(":is(:scope, :scope > .cWidgetContainer__accordionWrapper) > :is(.cWidgetContainer, .ipsWidget)");Line truncated
`+y.message,window.Debug.warn(y)}}},200);function di(e,t,r=400){var l;et.has(e)||et.set(e,new Map);for(const o of t.split(/\s+/).filter(s=>!!s)){et.get(e).has(o)&&(clearTimeout(et.get(e).get(o)),et.get(e).delete(o)),e.classList.add(o),document.querySelectorAll(`.${o}`).forEach(c=>{var f;if(c!==e){c.classList.remove(o);const p=(f=et.get(c))==null?void 0:f.get(o);p&&(clearTimeout(p),et.get(c).delete(o))}});const s=setTimeout(()=>{var f;e.classList.remove(o);const c=(f=et.get(e))==null?void 0:f.get(o);c&&(clearTimeout(c),et.get(e).delete(o),et.get(e).size||et.delete(e))},r);et.get(e).set(o,s)}(l=et.get(e))!=null&&l.size||et.delete(e)}setInterval(()=>{for(const e of et.keys())if(e.closest("body")!==document.body){for(const t of et.get(e).values())clearTimeout(t);et.delete(e)}},5e3);const et=new Map;function A3({wrapBehavior:e,widgets:t,scrollRef:r}){const l=X.useRef(null),o=e==="carousel"&&!t.length;X.useEffect(()=>{if(o&&(p(),r.current)){const y=r.current;os.set(y,p);const w=k=>{var O;const[A,T,B]=c(),v=((O=k==null?void 0:k.detail)==null?void 0:O.direction)||"next",S=v!=="prev"&&(A>=T-1||B[T-1].getBoundingClientRect().right<=y.getBoundingClientRect().right);if(v==="prev"&&A===0||v!=="prev"&&S)return;const C=y.querySelector(`[data-carousel-arrow="${v}"]`);C instanceof HTMLElement&&m({target:C})};y.addEventListener("scrollPanels",w);const _=new ResizeObserver(Qn.debounce(p,100));return _.observe(r.current),()=>{os.delete(y),y.removeEventListener("scrollPanels",w),_.disconnect()}}});function s(){var y;return(y=r.current)!=null&&y.classList.contains("cWidgetContainer--carousel")?r.current:null}function c(){var T;const y=s(),w=y==null?void 0:y.querySelectorAll(":scope > .cWidgetContainer");if(!w)throw new ReferenceError;const _=w.length;if(gf.has(y))return[parseInt(((T=l.current)==null?void 0:T.dataset.actualOffset)||"0"),_,w];const k=y.getBoundingClientRect();let A;for(A=0;A<_;A++)if(w[A].getBoundingClientRect().left>=k.left-1)return[A,_,w];return[_-1,_,w]}function f(){var k,A;const y=(k=r.current)==null?void 0:k.getBoundingClientRect(),w=(A=r.current)==null?void 0:A.querySelectorAll(":scope > .cWidgetContainer");if(!y||!(w!=null&&w.length)||w.length===1)return 1;const _=Math.abs(w[w.length-1].getBoundingClientRect().right-w[0].getBoundingClientRect().left);if(_){let T=Math.ceil(_/y.width);return w.length>2&&w[w.length-1].getBoundingClientRect().right-w[w.length-2].getBoundingClientRect().left>y.width&&T++,T}return 1}function p(){if(!l.current)return;let[y,w]=c();const _=f();y=Math.min(y,_),w=Math.min(w,_),l.current.innerText=`${y+1}/${w}`,l.current.closest(".cWidgetContainer__carousel-buttons").querySelectorAll("button").forEach(k=>w<=1?k.setAttribute("disabled",""):k.removeAttribute("disabled"))}function m(y){const w=s();if(!w)return;const _=y.target instanceof HTMLElement&&y.target.dataset.carouselArrow||"next",[k,A,T]=c();if(T.length<=1)return;const B=w.getBoundingClientRect(),v=_!=="prev"&&(k+1>=A||T[A-1].getBoundingClientRect().right<=B.right),S=(_==="prev"&&k===0?A-1:v?0:k+(_==="prev"?-1:1))%A;let C=(S===A-1?T[S].getBoundingClientRect().right:T[S].getBoundingClientRect().left)-B.left;l.current.dataset.actualOffset=`${S}`,gf.add(w),w.scrollTo({left:r.current.scrollLeft+C,behavior:"smooth"}),p()}return{indicatorRef:l,scroll:m}}const gf=new WeakSet,os=new WeakMap;function Av(e,t=!1){var r,l;if((r=e.classList)!=null&&r.contains("cWidgetContainer--carousel")&&e.querySelector(".ipsWidget__content--wrap--editing")){const o=e.querySelector(".ipsWidget__content--wrap--editing"),s=(l=window.ips.ui.editorv5.getObj(window.$(o.querySelector("[data-ipseditorv5]"))))==null?void 0:l.getInstance();t?o==null||o.dispatchEvent(new CustomEvent("ips:editorHidePanes",{detail:{instance:s},bubbles:!0,cancelable:!0})):o.dispatchEvent(new CustomEvent("ips:editorShowPanes",{detail:{instance:s},bubbles:!0,cancelable:!0}))}}function l0(e){let t=e.target;for(;t instanceof HTMLElement;){if(Av(t),os.has(t)){let r=!1;const l=e.stopPropagation;if(e.stopPropagation=(function(){r=!0,l.call(this)}).bind(e),os.get(t)(e),gf.delete(t),r)break;e.stopPropagation=l.bind(e)}t=t.parentElement}}"onscrollend"in HTMLElement.prototype?window.addEventListener("scrollend",l0,{capture:!0}):window.addEventListener("scroll",Qn.debounce(l0,200),{capture:!0});window.addEventListener("scroll",e=>{var r;let t=e.target;(r=t==null?void 0:t.classList)!=null&&r.contains("cWidgetContainer--carousel")&&Av(t,!0)},{capture:!0});function P3({widgets:e,scrollRef:t,wrapBehavior:r}){const{indicatorRef:l,scroll:o}=A3({widgets:e,scrollRef:t,wrapBehavior:r});return I.jsxs("div",{className:"cWidgetContainer__carousel-buttons","data-controller":"core.front.widgets.carouselControls",children:[I.jsx("div",{className:"cWidgetContainer__carousel-indicator",ref:l}),[["prev","left"],["next","right"]].map(([s,c])=>I.jsx("button",{onClick:o,"data-carousel-arrow":s,children:I.jsx("i",{className:`fa-solid fa-chevron-${c}`})},s))]})}function Pv({...e}){var P,z,J,H,ee,le,ae,_e,me,it,fe;const{ Line truncated
@@ -11,7 +11,7 @@
"css": [
"assets/main-51be5621.css"
],
"file": "assets/main-136dab88.js",
"file": "assets/main-6937ae1a.js",
"isEntry": true,
"src": "src/main.jsx"
}
@@ -272,6 +272,7 @@ customElements.define('theme-editor', class extends HTMLElement {
this.currentPanel.setAttribute('aria-hidden', 'false');
this.currentPanel.inert = false;
this.currentPanel.removeAttribute('data-panel-prev');
this.currentPanel.querySelector("button")?.focus();
} else {
@@ -286,6 +287,7 @@ customElements.define('theme-editor', class extends HTMLElement {
// Open the new panel
this.currentPanel.setAttribute('aria-hidden', 'false');
this.currentPanel.inert = false;
this.currentPanel.querySelector("button, input, select, textarea")?.focus();
// Set the text for the Back button
this.currentPanel.querySelector(`[data-panel-nav="back"]`).innerText = oldPanel.querySelector('[data-panel-name]')?.innerText ?? 'Back';
@@ -299,25 +301,6 @@ customElements.define('theme-editor', class extends HTMLElement {
}
}
/**
* This changes tabs (Colors/Settings)
* @param {Event} Event
* @param {HTMLElement} target
*/
changeTab(event, target){
// Find out what group this tab controls
const group = target.closest('editor-tabs').getAttribute('data-tabs');
// Remove active tab
this.querySelectorAll(`[data-tabs=${group}] button`).forEach(t => t.setAttribute('aria-expanded', 'false'));
this.querySelectorAll(`[data-tabs-content=${group}]`).forEach(c => c.setAttribute('aria-hidden', 'true'));
// Set active tab
target.setAttribute('aria-expanded', 'true');
document.getElementById(target.getAttribute('aria-controls')).setAttribute('aria-hidden', 'false');
}
/**
* Update <style id="themeVariables"> with variables
*/
@@ -817,7 +800,10 @@ customElements.define('theme-editor', class extends HTMLElement {
}
// Always open the panel with the swatch picker visible
document.querySelector('[aria-controls="content__colorSelector__swatches"]').click();
let swatchTab = document.querySelector('[aria-controls="content__colorSelector__swatches"]');
if(swatchTab.getAttribute("aria-expanded") === "false"){
swatchTab.click()
}
// Optionally hide swatches (ie. the Color Scheme creator)
if(target.getAttribute('data-color-tool') != ''){
@@ -0,0 +1,207 @@
var Wl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function om(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var yO={exports:{}},am={},CO={exports:{}},Ge={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var Eu=Symbol.for("react.element"),PU=Symbol.for("react.portal"),UU=Symbol.for("react.fragment"),FU=Symbol.for("react.strict_mode"),BU=Symbol.for("react.profiler"),GU=Symbol.for("react.provider"),YU=Symbol.for("react.context"),HU=Symbol.for("react.forward_ref"),$U=Symbol.for("react.suspense"),VU=Symbol.for("react.memo"),zU=Symbol.for("react.lazy"),$C=Symbol.iterator;function WU(e){return e===null||typeof e!="object"?null:(e=$C&&e[$C]||e["@@iterator"],typeof e=="function"?e:null)}var RO={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},NO=Object.assign,vO={};function ul(e,t,n){this.props=e,this.context=t,this.refs=vO,this.updater=n||RO}ul.prototype.isReactComponent={};ul.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ul.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function OO(){}OO.prototype=ul.prototype;function cS(e,t,n){this.props=e,this.context=t,this.refs=vO,this.updater=n||RO}var uS=cS.prototype=new OO;uS.constructor=cS;NO(uS,ul.prototype);uS.isPureReactComponent=!0;var VC=Array.isArray,AO=Object.prototype.hasOwnProperty,dS={current:null},IO={key:!0,ref:!0,__self:!0,__source:!0};function DO(e,t,n){var r,i={},o=null,a=null;if(t!=null)for(r in t.ref!==void 0&&(a=t.ref),t.key!==void 0&&(o=""+t.key),t)AO.call(t,r)&&!IO.hasOwnProperty(r)&&(i[r]=t[r]);var s=arguments.length-2;if(s===1)i.children=n;else if(1<s){for(var c=Array(s),d=0;d<s;d++)c[d]=arguments[d+2];i.children=c}if(e&&e.defaultProps)for(r in s=e.defaultProps,s)i[r]===void 0&&(i[r]=s[r]);return{$$typeof:Eu,type:e,key:o,ref:a,props:i,_owner:dS.current}}function qU(e,t){return{$$typeof:Eu,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function pS(e){return typeof e=="object"&&e!==null&&e.$$typeof===Eu}function KU(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var zC=/\/+/g;function dg(e,t){return typeof e=="object"&&e!==null&&e.key!=null?KU(""+e.key):t.toString(36)}function Ep(e,t,n,r,i){var o=typeof e;(o==="undefined"||o==="boolean")&&(e=null);var a=!1;if(e===null)a=!0;else switch(o){case"string":case"number":a=!0;break;case"object":switch(e.$$typeof){case Eu:case PU:a=!0}}if(a)return a=e,i=i(a),e=r===""?"."+dg(a,0):r,VC(i)?(n="",e!=null&&(n=e.replace(zC,"$&/")+"/"),Ep(i,t,n,"",function(d){return d})):i!=null&&(pS(i)&&(i=qU(i,n+(!i.key||a&&a.key===i.key?"":(""+i.key).replace(zC,"$&/")+"/")+e)),t.push(i)),1;if(a=0,r=r===""?".":r+":",VC(e))for(var s=0;s<e.length;s++){o=e[s];var c=r+dg(o,s);a+=Ep(o,t,n,c,i)}else if(c=WU(e),typeof c=="function")for(e=c.call(e),s=0;!(o=e.next()).done;)o=o.value,c=r+dg(o,s++),a+=Ep(o,t,n,c,i);else if(o==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return a}function Ad(e,t,n){if(e==null)return e;var r=[],i=0;return Ep(e,r,"","",function(o){return t.call(n,o,i++)}),r}function QU(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var In={current:null},hp={transition:null},XU={ReactCurrentDispatcher:In,ReactCurrentBatchConfig:hp,ReactCurrentOwner:dS};function wO(){throw Error("act(...) is not supported in production builds of React.")}Ge.Children={map:Ad,forEach:function(e,t,n){Ad(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Ad(e,function(){t++}),t},toArray:function(e){return Ad(e,function(t){return t})||[]},only:function(e){if(!pS(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};Ge.Component=ul;Ge.Fragment=UU;Ge.Profiler=BU;Ge.PureComponent=cS;Ge.StrictMode=FU;Ge.Suspense=$U;Ge.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=XU;Ge.act=wO;Ge.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var r=NO({},e.props),i=e.key,o=e.ref,a=e._owner;if(t!=null){if(t.ref!==void 0&&(o=t.ref,a=dS.current),t.key!==void 0&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)AO.call(t,c)&&!IO.hasOwnProperty(c)&&(r[c]=t[c]===void 0&&s!==void 0?s[c]:t[c])}var c=arguments.length-2;if(c===1)r.children=n;else if(1<c){s=Array(c);for(var d=0;d<c;d++)s[d]=arguments[d+2];r.children=s}return{$$typeof:Eu,type:e.type,key:i,ref:o,props:r,_owner:a}};Ge.createContext=function(e){return e={$$typeof:YU,_currentValue:e,_currentValue2:e,_threadCountLine truncated
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var jU=B,ZU=Symbol.for("react.element"),JU=Symbol.for("react.fragment"),eF=Object.prototype.hasOwnProperty,tF=jU.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,nF={key:!0,ref:!0,__self:!0,__source:!0};function xO(e,t,n){var r,i={},o=null,a=null;n!==void 0&&(o=""+n),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(a=t.ref);for(r in t)eF.call(t,r)&&!nF.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:ZU,type:e,key:o,ref:a,props:i,_owner:tF.current}}am.Fragment=JU;am.jsx=xO;am.jsxs=xO;yO.exports=am;var N=yO.exports,AE={},MO={exports:{}},ur={},LO={exports:{}},kO={};/**
* @license React
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/(function(e){function t(D,Y){var V=D.length;D.push(Y);e:for(;0<V;){var Z=V-1>>>1,oe=D[Z];if(0<i(oe,Y))D[Z]=Y,D[V]=oe,V=Z;else break e}}function n(D){return D.length===0?null:D[0]}function r(D){if(D.length===0)return null;var Y=D[0],V=D.pop();if(V!==Y){D[0]=V;e:for(var Z=0,oe=D.length,Oe=oe>>>1;Z<Oe;){var ze=2*(Z+1)-1,be=D[ze],Ce=ze+1,yt=D[Ce];if(0>i(be,V))Ce<oe&&0>i(yt,be)?(D[Z]=yt,D[Ce]=V,Z=Ce):(D[Z]=be,D[ze]=V,Z=ze);else if(Ce<oe&&0>i(yt,V))D[Z]=yt,D[Ce]=V,Z=Ce;else break e}}return Y}function i(D,Y){var V=D.sortIndex-Y.sortIndex;return V!==0?V:D.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var a=Date,s=a.now();e.unstable_now=function(){return a.now()-s}}var c=[],d=[],p=1,_=null,f=3,g=!1,E=!1,S=!1,b=typeof setTimeout=="function"?setTimeout:null,T=typeof clearTimeout=="function"?clearTimeout:null,y=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function R(D){for(var Y=n(d);Y!==null;){if(Y.callback===null)r(d);else if(Y.startTime<=D)r(d),Y.sortIndex=Y.expirationTime,t(c,Y);else break;Y=n(d)}}function O(D){if(S=!1,R(D),!E)if(n(c)!==null)E=!0,se(I);else{var Y=n(d);Y!==null&&M(O,Y.startTime-D)}}function I(D,Y){E=!1,S&&(S=!1,T($),$=-1),g=!0;var V=f;try{for(R(Y),_=n(c);_!==null&&(!(_.expirationTime>Y)||D&&!ae());){var Z=_.callback;if(typeof Z=="function"){_.callback=null,f=_.priorityLevel;var oe=Z(_.expirationTime<=Y);Y=e.unstable_now(),typeof oe=="function"?_.callback=oe:_===n(c)&&r(c),R(Y)}else r(c);_=n(c)}if(_!==null)var Oe=!0;else{var ze=n(d);ze!==null&&M(O,ze.startTime-Y),Oe=!1}return Oe}finally{_=null,f=V,g=!1}}var x=!1,k=null,$=-1,z=5,H=-1;function ae(){return!(e.unstable_now()-H<z)}function _e(){if(k!==null){var D=e.unstable_now();H=D;var Y=!0;try{Y=k(!0,D)}finally{Y?ue():(x=!1,k=null)}}else x=!1}var ue;if(typeof y=="function")ue=function(){y(_e)};else if(typeof MessageChannel<"u"){var me=new MessageChannel,he=me.port2;me.port1.onmessage=_e,ue=function(){he.postMessage(null)}}else ue=function(){b(_e,0)};function se(D){k=D,x||(x=!0,ue())}function M(D,Y){$=b(function(){D(e.unstable_now())},Y)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(D){D.callback=null},e.unstable_continueExecution=function(){E||g||(E=!0,se(I))},e.unstable_forceFrameRate=function(D){0>D||125<D?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):z=0<D?Math.floor(1e3/D):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(D){switch(f){case 1:case 2:case 3:var Y=3;break;default:Y=f}var V=f;f=Y;try{return D()}finally{f=V}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(D,Y){switch(D){case 1:case 2:case 3:case 4:case 5:break;default:D=3}var V=f;f=D;try{return Y()}finally{f=V}},e.unstable_scheduleCallback=function(D,Y,V){var Z=e.unstable_now();switch(typeof V=="object"&&V!==null?(V=V.delay,V=typeof V=="number"&&0<V?Z+V:Z):V=Z,D){case 1:var oe=-1;break;case 2:oe=250;break;case 5:oe=1073741823;break;case 4:oe=1e4;break;default:oe=5e3}return oe=V+oe,D={id:p++,callback:Y,priorityLevel:D,startTime:V,expirationTime:oe,sortIndex:-1},V>Z?(D.sortIndex=V,t(d,D),n(c)===null&&D===n(d)&&(S?(T($),$=-1):S=!0,M(O,V-Z))):(D.sortIndex=oe,t(c,D),E||g||(E=!0,se(I))),D},e.unstable_shouldYield=ae,e.unstable_wrapCallback=function(D){var Y=f;return function(){var V=f;f=Y;try{return D.apply(this,arguments)}finally{f=V}}}})(kO);LO.exports=kO;var rF=LO.exports;/**
* @license React
* react-dom.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var iF=B,cr=rF;function ee(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var PO=new Set,Mc={};function Ha(e,t){Ks(e,t),Ks(e+"Capture",t)}function Ks(e,t){for(Mc[e]=t,e=0;e<t.length;e++)PO.add(t[e])}var Fi=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),IE=Object.prototype.hasOwnProperty,oF=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,WC={},qC={};function aF(e){return IE.call(qC,e)?!0:IE.call(WC,e)?!1:oF.test(e)?qC[e]=!0:(WC[e]=!0,!1)}function sF(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function lF(e,t,n,r){if(t===null||typeof t>"u"||sF(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Dn(e,t,n,r,i,o,a){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=a}var rn={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){rn[e]=new Dn(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];rn[t]=new Dn(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){rn[e]=new Dn(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){rn[e]=new Dn(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){rn[e]=new Dn(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){rn[e]=new Dn(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){rn[e]=new Dn(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){rn[e]=new Dn(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){rn[e]=new Dn(e,5,!1,e.toLowerCase(),null,!1,!1)});var _S=/[\-:]([a-z])/g;function mS(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(_S,mS);rn[t]=new Dn(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){rn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!1,!1)});rn.xlinkHref=new Dn("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){rn[e]=new Dn(e,1,!1,e.toLowerCase(),null,!0,!0)});function fS(e,t,n,r){var i=rn.hasOwnProperty(t)?rn[t]:null;(i!==null?i.type!==0:r||!(2<t.length)||t[0]!=="o"&&t[0]!== Line truncated
`+pg+e}var _g=!1;function mg(e,t){if(!e||_g)return"";_g=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var r=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){r=d}e.call(t.prototype)}else{try{throw Error()}catch(d){r=d}e()}}catch(d){if(d&&r&&typeof d.stack=="string"){for(var i=d.stack.split(`
`),o=r.stack.split(`
`),a=i.length-1,s=o.length-1;1<=a&&0<=s&&i[a]!==o[s];)s--;for(;1<=a&&0<=s;a--,s--)if(i[a]!==o[s]){if(a!==1||s!==1)do if(a--,s--,0>s||i[a]!==o[s]){var c=`
`+i[a].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=a&&0<=s);break}}}finally{_g=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?sc(e):""}function cF(e){switch(e.tag){case 5:return sc(e.type);case 16:return sc("Lazy");case 13:return sc("Suspense");case 19:return sc("SuspenseList");case 0:case 2:case 15:return e=mg(e.type,!1),e;case 11:return e=mg(e.type.render,!1),e;case 1:return e=mg(e.type,!0),e;default:return""}}function ME(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ys:return"Fragment";case bs:return"Portal";case DE:return"Profiler";case gS:return"StrictMode";case wE:return"Suspense";case xE:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case FO:return(e.displayName||"Context")+".Consumer";case UO:return(e._context.displayName||"Context")+".Provider";case ES:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case hS:return t=e.displayName||null,t!==null?t:ME(e.type)||"Memo";case so:t=e._payload,e=e._init;try{return ME(e(t))}catch{}}return null}function uF(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ME(t);case 8:return t===gS?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Uo(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function GO(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function dF(e){var t=GO(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(a){r=""+a,o.call(this,a)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(a){r=""+a},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Dd(e){e._valueTracker||(e._valueTracker=dF(e))}function YO(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=GO(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Fp(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function LE(e,t){var n=t.checked;return bt({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function QC(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Uo(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function HO(e,t){t=t.checked,t!=null&&fS(e,"checked",t,!1)}function kE(e,t){HO(e,t);var n=Uo(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?PE(e,t.type,n):t.hasOwnProperty("defaultValue")&&PE(e,t.type,Uo(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function XC(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function PE(e,t,n){(t!=="number"||Fp(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var lc=Array.isArray;function ks(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=""+Uo(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function UE(e,t){if(t.dan Line truncated
`).replace(bB,"")}function Fd(e,t,n){if(t=SR(t),SR(e)!==t&&n)throw Error(ee(425))}function Wp(){}var XE=null,jE=null;function ZE(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var JE=typeof setTimeout=="function"?setTimeout:void 0,yB=typeof clearTimeout=="function"?clearTimeout:void 0,TR=typeof Promise=="function"?Promise:void 0,CB=typeof queueMicrotask=="function"?queueMicrotask:typeof TR<"u"?function(e){return TR.resolve(null).then(e).catch(RB)}:JE;function RB(e){setTimeout(function(){throw e})}function Og(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8)if(n=i.data,n==="/$"){if(r===0){e.removeChild(i),Fc(t);return}r--}else n!=="$"&&n!=="$?"&&n!=="$!"||r++;n=i}while(n);Fc(t)}function Io(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function bR(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var pl=Math.random().toString(36).slice(2),ci="__reactFiber$"+pl,$c="__reactProps$"+pl,Bi="__reactContainer$"+pl,eh="__reactEvents$"+pl,NB="__reactListeners$"+pl,vB="__reactHandles$"+pl;function fa(e){var t=e[ci];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Bi]||n[ci]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=bR(e);e!==null;){if(n=e[ci])return n;e=bR(e)}return t}e=n,n=e.parentNode}return null}function Tu(e){return e=e[ci]||e[Bi],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function vs(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(ee(33))}function dm(e){return e[$c]||null}var th=[],Os=-1;function Vo(e){return{current:e}}function ut(e){0>Os||(e.current=th[Os],th[Os]=null,Os--)}function it(e,t){Os++,th[Os]=e.current,e.current=t}var Fo={},dn=Vo(Fo),Vn=Vo(!1),xa=Fo;function Qs(e,t){var n=e.type.contextTypes;if(!n)return Fo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},o;for(o in n)i[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function zn(e){return e=e.childContextTypes,e!=null}function qp(){ut(Vn),ut(dn)}function yR(e,t,n){if(dn.current!==Fo)throw Error(ee(168));it(dn,t),it(Vn,n)}function DA(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(ee(108,uF(e)||"Unknown",i));return bt({},n,r)}function Kp(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Fo,xa=dn.current,it(dn,e),it(Vn,Vn.current),!0}function CR(e,t,n){var r=e.stateNode;if(!r)throw Error(ee(169));n?(e=DA(e,t,xa),r.__reactInternalMemoizedMergedChildContext=e,ut(Vn),ut(dn),it(dn,e)):ut(Vn),it(Vn,n)}var wi=null,pm=!1,Ag=!1;function wA(e){wi===null?wi=[e]:wi.push(e)}function OB(e){pm=!0,wA(e)}function zo(){if(!Ag&&wi!==null){Ag=!0;var e=0,t=Xe;try{var n=wi;for(Xe=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}wi=null,pm=!1}catch(i){throw wi!==null&&(wi=wi.slice(e+1)),nA(TS,zo),i}finally{Xe=t,Ag=!1}}return null}var As=[],Is=0,Qp=null,Xp=0,Nr=[],vr=0,Ma=null,Mi=1,Li="";function ca(e,t){As[Is++]=Xp,As[Is++]=Qp,Qp=e,Xp=t}function xA(e,t,n){Nr[vr++]=Mi,Nr[vr++]=Li,Nr[vr++]=Ma,Ma=e;var r=Mi;e=Li;var i=32-Wr(r)-1;r&=~(1<<i),n+=1;var o=32-Wr(t)+i;if(30<o){var a=i-i%5;o=(r&(1<<a)-1).toString(32),r>>=a,i-=a,Mi=1<<32-Wr(t)+i|n<<i|r,Li=o+e}else Mi=1<<o|n<<i|r,Li=e}function IS(e){e.return!==null&&(ca(e,1),xA(e,1,0))}function DS(e){for(;e===Qp;)Qp=As[--Is],As[Is]=null,Xp=As[--Is],As[Is]=null;for(;e===Ma;)Ma=Nr[--vr],Nr[vr]=null,Li=Nr[--vr],Nr[vr]=null,Mi=Nr[--vr],Nr[vr]=null}var sr=null,ir=null,gt=!1,Hr=null;function MA(e,t){var n=Or(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function RR(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,sr=e,ir=Io(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,sr=e,ir=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Ma!==null?{id:Mi,overflow:Li}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=Or(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,sr=e,ir=null,!0):!1;default:return!1}}function nh(e){return(e.mode&1)!==0&&(e.flags&128)===0}function rh(e){if(gt){var t=ir;if(t){var n=t;if(!RR(e,t)){if(nh(e))throw Error(ee(418));t=Io(n.nextSibling);var r=sr;t&&RR(e,t)?MA(r,n):(e.flags=e.flags&-4097|2,gt=!1,sr=e)}}else{if(nh(e))throw Error(ee(418));e.flags=e.flags&-4097|2,gt=!1,sr=e}}}function NR(e){ Line truncated
Error generating stack: `+o.message+`
`+o.stack}return{value:e,source:t,stack:i,digest:null}}function Mg(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function sh(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var PB=typeof WeakMap=="function"?WeakMap:Map;function aI(e,t,n){n=Pi(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){i_||(i_=!0,Eh=r),sh(e,t)},n}function sI(e,t,n){n=Pi(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){sh(e,t)}}var o=e.stateNode;return o!==null&&typeof o.componentDidCatch=="function"&&(n.callback=function(){sh(e,t),typeof r!="function"&&(wo===null?wo=new Set([this]):wo.add(this));var a=t.stack;this.componentDidCatch(t.value,{componentStack:a!==null?a:""})}),n}function MR(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new PB;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=XB.bind(null,e,t,n),t.then(e,e))}function LR(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function kR(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Pi(-1,1),t.tag=2,Do(n,t,1))),n.lanes|=1),e)}var UB=$i.ReactCurrentOwner,$n=!1;function yn(e,t,n,r){t.child=e===null?PA(t,null,n,r):js(t,e.child,n,r)}function PR(e,t,n,r,i){n=n.render;var o=t.ref;return Bs(t,i),r=YS(e,t,n,r,o,i),n=HS(),e!==null&&!$n?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Yi(e,t,i)):(gt&&n&&IS(t),t.flags|=1,yn(e,t,r,i),t.child)}function UR(e,t,n,r,i){if(e===null){var o=n.type;return typeof o=="function"&&!ZS(o)&&o.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=o,lI(e,t,o,r,i)):(e=Ap(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(o=e.child,!(e.lanes&i)){var a=o.memoizedProps;if(n=n.compare,n=n!==null?n:Gc,n(a,r)&&e.ref===t.ref)return Yi(e,t,i)}return t.flags|=1,e=Mo(o,r),e.ref=t.ref,e.return=t,t.child=e}function lI(e,t,n,r,i){if(e!==null){var o=e.memoizedProps;if(Gc(o,r)&&e.ref===t.ref)if($n=!1,t.pendingProps=r=o,(e.lanes&i)!==0)e.flags&131072&&($n=!0);else return t.lanes=e.lanes,Yi(e,t,i)}return lh(e,t,n,r,i)}function cI(e,t,n){var r=t.pendingProps,i=r.children,o=e!==null?e.memoizedState:null;if(r.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},it(xs,nr),nr|=n;else{if(!(n&1073741824))return e=o!==null?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,it(xs,nr),nr|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=o!==null?o.baseLanes:n,it(xs,nr),nr|=r}else o!==null?(r=o.baseLanes|n,t.memoizedState=null):r=n,it(xs,nr),nr|=r;return yn(e,t,i,n),t.child}function uI(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function lh(e,t,n,r,i){var o=zn(n)?xa:dn.current;return o=Qs(t,o),Bs(t,i),n=YS(e,t,n,r,o,i),r=HS(),e!==null&&!$n?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Yi(e,t,i)):(gt&&r&&IS(t),t.flags|=1,yn(e,t,n,i),t.child)}function FR(e,t,n,r,i){if(zn(n)){var o=!0;Kp(t)}else o=!1;if(Bs(t,i),t.stateNode===null)Np(e,t),oI(t,n,r),ah(t,n,r,i),r=!0;else if(e===null){var a=t.stateNode,s=t.memoizedProps;a.props=s;var c=a.context,d=n.contextType;typeof d=="object"&&d!==null?d=wr(d):(d=zn(n)?xa:dn.current,d=Qs(t,d));var p=n.getDerivedStateFromProps,_=typeof p=="function"||typeof a.getSnapshotBeforeUpdate=="function";_||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==r||c!==d)&&xR(t,a,r,d),lo=!1;var f=t.memoizedState;a.state=f,Jp(t,r,a,i),c=t.memoizedState,s!==r||f!==c||Vn.current||lo?(typeof p=="function"&&(oh(t,n,p,r),c=t.memoizedState),(s=lo||wR(t,n,s,r,f,c,d))?(_||typeof a.UNSAFE_componentWillMount!="function"&&typeof a.componentWillMount!="function"||(typeof a.componentWillMount=="function"&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount=="function"&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount=="function"&&(t.flags|=4194308)):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),a.props=r,a.state=c,a.context=d,r=s):(typeof a.componentDidMount=="function"&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,FA(e,t),s=t.memoizedProps,d=t.type===t.elementType?s:Gr(t.type,s),a.props=d,_=t.pendingProps,f=a.context,c=n.contextType,typeof c=="object"&&c!==null?c=wr(c):(c=zn(n)?xa:dn.current,c=Qs(t,c));var g=n.getDerivedStateFromProps;(p=typeof g=="function"||typeof a.getSnapshotBeforeUpdate=="function")||typeof a.UNSAFE_componentWillReceiveProps!="function"&&typeof a.componentWillReceiveProps!="function"||(s!==_||f!==c)&&xR(t,a,r,c),lo=!1,f=t.memoizedState,a.state=f,Jp(t,r,a,i);var E=t.memoizedS Line truncated
`)}}Ua.empty=new Ua(!0);class _G{constructor(t,n){this.string=t,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=t.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(t){return this.next==t&&(this.pos++||!0)}err(t){throw new SyntaxError(t+" (in content expression '"+this.string+"')")}}function HI(e){let t=[];do t.push(mG(e));while(e.eat("|"));return t.length==1?t[0]:{type:"choice",exprs:t}}function mG(e){let t=[];do t.push(fG(e));while(e.next&&e.next!=")"&&e.next!="|");return t.length==1?t[0]:{type:"seq",exprs:t}}function fG(e){let t=hG(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else if(e.eat("{"))t=gG(e,t);else break;return t}function JR(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function gG(e,t){let n=JR(e),r=n;return e.eat(",")&&(e.next!="}"?r=JR(e):r=-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function EG(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let o in n){let a=n[o];a.groups.indexOf(t)>-1&&i.push(a)}return i.length==0&&e.err("No node type or group '"+t+"' found"),i}function hG(e){if(e.eat("(")){let t=HI(e);return e.eat(")")||e.err("Missing closing paren"),t}else if(/\W/.test(e.next))e.err("Unexpected token '"+e.next+"'");else{let t=EG(e,e.next).map(n=>(e.inline==null?e.inline=n.isInline:e.inline!=n.isInline&&e.err("Mixing inline and block content"),{type:"name",value:n}));return e.pos++,t.length==1?t[0]:{type:"choice",exprs:t}}}function SG(e){let t=[[]];return i(o(e,0),n()),t;function n(){return t.push([])-1}function r(a,s,c){let d={term:c,to:s};return t[a].push(d),d}function i(a,s){a.forEach(c=>c.to=s)}function o(a,s){if(a.type=="choice")return a.exprs.reduce((c,d)=>c.concat(o(d,s)),[]);if(a.type=="seq")for(let c=0;;c++){let d=o(a.exprs[c],s);if(c==a.exprs.length-1)return d;i(d,s=n())}else if(a.type=="star"){let c=n();return r(s,c),i(o(a.expr,c),c),[r(c)]}else if(a.type=="plus"){let c=n();return i(o(a.expr,s),c),i(o(a.expr,c),c),[r(c)]}else{if(a.type=="opt")return[r(s)].concat(o(a.expr,s));if(a.type=="range"){let c=s;for(let d=0;d<a.min;d++){let p=n();i(o(a.expr,c),p),c=p}if(a.max==-1)i(o(a.expr,c),c);else for(let d=a.min;d<a.max;d++){let p=n();r(c,p),i(o(a.expr,c),p),c=p}return[r(c)]}else{if(a.type=="name")return[r(s,void 0,a.value)];throw new Error("Unknown expr type")}}}}function $I(e,t){return t-e}function eN(e,t){let n=[];return r(t),n.sort($I);function r(i){let o=e[i];if(o.length==1&&!o[0].term)return r(o[0].to);n.push(i);for(let a=0;a<o.length;a++){let{term:s,to:c}=o[a];!s&&n.indexOf(c)==-1&&r(c)}}}function TG(e){let t=Object.create(null);return n(eN(e,0));function n(r){let i=[];r.forEach(a=>{e[a].forEach(({term:s,to:c})=>{if(!s)return;let d;for(let p=0;p<i.length;p++)i[p][0]==s&&(d=i[p][1]);eN(e,c).forEach(p=>{d||i.push([s,d=[]]),d.indexOf(p)==-1&&d.push(p)})})});let o=t[r.join(",")]=new Ua(r.indexOf(e.length-1)>-1);for(let a=0;a<i.length;a++){let s=i[a][1].sort($I);o.next.push({type:i[a][0],next:t[s.join(",")]||n(s)})}return o}}function bG(e,t){for(let n=0,r=[e];n<r.length;n++){let i=r[n],o=!i.validEnd,a=[];for(let s=0;s<i.next.length;s++){let{type:c,next:d}=i.next[s];a.push(c.name),o&&!(c.isText||c.hasRequiredAttrs())&&(o=!1),r.indexOf(d)==-1&&r.push(d)}o&&t.err("Only non-generatable nodes ("+a.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function VI(e){let t=Object.create(null);for(let n in e){let r=e[n];if(!r.hasDefault)return null;t[n]=r.default}return t}function zI(e,t){let n=Object.create(null);for(let r in e){let i=t&&t[r];if(i===void 0){let o=e[r];if(o.hasDefault)i=o.default;else throw new RangeError("No value supplied for attribute "+r)}n[r]=i}return n}function WI(e,t,n,r){for(let i in t)if(!(i in e))throw new RangeError(`Unsupported attribute ${i} for ${n} of type ${i}`);for(let i in e){let o=e[i];o.validate&&o.validate(t[i])}}function qI(e){let t=Object.create(null);if(e)for(let n in e)t[n]=new CG(e[n]);return t}let tN=class KI{constructor(t,n,r){this.name=t,this.schema=n,this.spec=r,this.markSet=null,this.groups=r.group?r.group.split(" "):[],this.attrs=qI(r.attrs),this.defaultAttrs=VI(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(r.inline||t=="text"),this.isText=t=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==Ua.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let t in this.attrs)if(this.attrs[t].isRequired)return!0;return!1}compatibleContent(t){return this==t||this.contentMatch.compatible(t.contentMatch)}computeAttrs(t){return!t&&this.defaultAttrs?this.defaultAttrs:zI(this.attrs,t)}create Line truncated
`):n=n.replace(/\r?\n|\r/g," ");else if(n=n.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(n)&&this.open==this.nodes.length-1){let i=r.content[r.content.length-1],o=t.previousSibling;(!i||o&&o.nodeName=="BR"||i.isText&&/[ \t\r\n\u000c]$/.test(i.text))&&(n=n.slice(1))}n&&this.insertNode(this.parser.schema.text(n)),this.findInText(t)}else this.findInside(t)}addElement(t,n){let r=t.nodeName.toLowerCase(),i;jI.hasOwnProperty(r)&&this.parser.normalizeLists&&OG(t);let o=this.options.ruleFromNode&&this.options.ruleFromNode(t)||(i=this.parser.matchTag(t,this,n));if(o?o.ignore:vG.hasOwnProperty(r))this.findInside(t),this.ignoreFallback(t);else if(!o||o.skip||o.closeParent){o&&o.closeParent?this.open=Math.max(0,this.open-1):o&&o.skip.nodeType&&(t=o.skip);let a,s=this.top,c=this.needsBlock;if(XI.hasOwnProperty(r))s.content.length&&s.content[0].isInline&&this.open&&(this.open--,s=this.top),a=!0,s.type||(this.needsBlock=!0);else if(!t.firstChild){this.leafFallback(t);return}o&&o.skip?this.addAll(t):this.withStyleRules(t,()=>this.addAll(t)),a&&this.sync(s),this.needsBlock=c}else this.withStyleRules(t,()=>{this.addElementByRule(t,o,o.consuming===!1?i:void 0)})}leafFallback(t){t.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(t.ownerDocument.createTextNode(`
`))}ignoreFallback(t){t.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"))}readStyles(t){let n=je.none,r=je.none;if(t.length)for(let i=0;i<this.parser.matchedStyles.length;i++){let o=this.parser.matchedStyles[i],a=t.getPropertyValue(o);if(a)for(let s=void 0;;){let c=this.parser.matchStyle(o,a,this,s);if(!c)break;if(c.ignore)return null;if(c.clearMark?this.top.pendingMarks.concat(this.top.activeMarks).forEach(d=>{c.clearMark(d)&&(r=d.addToSet(r))}):n=this.parser.schema.marks[c.mark].create(c.attrs).addToSet(n),c.consuming===!1)s=c;else break}}return[n,r]}addElementByRule(t,n,r){let i,o,a;n.node?(o=this.parser.schema.nodes[n.node],o.isLeaf?this.insertNode(o.create(n.attrs))||this.leafFallback(t):i=this.enter(o,n.attrs||null,n.preserveWhitespace)):(a=this.parser.schema.marks[n.mark].create(n.attrs),this.addPendingMark(a));let s=this.top;if(o&&o.isLeaf)this.findInside(t);else if(r)this.addElement(t,r);else if(n.getContent)this.findInside(t),n.getContent(t,this.parser.schema).forEach(c=>this.insertNode(c));else{let c=t;typeof n.contentElement=="string"?c=t.querySelector(n.contentElement):typeof n.contentElement=="function"?c=n.contentElement(t):n.contentElement&&(c=n.contentElement),this.findAround(t,c,!0),this.addAll(c)}i&&this.sync(s)&&this.open--,a&&this.removePendingMark(a,s)}addAll(t,n,r){let i=n||0;for(let o=n?t.childNodes[n]:t.firstChild,a=r==null?null:t.childNodes[r];o!=a;o=o.nextSibling,++i)this.findAtPoint(t,i),this.addDOM(o);this.findAtPoint(t,i)}findPlace(t){let n,r;for(let i=this.open;i>=0;i--){let o=this.nodes[i],a=o.findWrapping(t);if(a&&(!n||n.length>a.length)&&(n=a,r=o,!a.length)||o.solid)break}if(!n)return!1;this.sync(r);for(let i=0;i<n.length;i++)this.enterInner(n[i],null,!1);return!0}insertNode(t){if(t.isInline&&this.needsBlock&&!this.top.type){let n=this.textblockFromContext();n&&this.enterInner(n)}if(this.findPlace(t)){this.closeExtra();let n=this.top;n.applyPending(t.type),n.match&&(n.match=n.match.matchType(t.type));let r=n.activeMarks;for(let i=0;i<t.marks.length;i++)(!n.type||n.type.allowsMarkType(t.marks[i].type))&&(r=t.marks[i].addToSet(r));return n.content.push(t.mark(r)),!0}return!1}enter(t,n,r){let i=this.findPlace(t.create(n));return i&&this.enterInner(t,n,!0,r),i}enterInner(t,n=null,r=!1,i){this.closeExtra();let o=this.top;o.applyPending(t),o.match=o.match&&o.match.matchType(t);let a=rN(t,i,o.options);o.options&Nc&&o.content.length==0&&(a|=Nc),this.nodes.push(new Wd(t,n,o.activeMarks,o.pendingMarks,r,null,a)),this.open++}closeExtra(t=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(t));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)}sync(t){for(let n=this.open;n>=0;n--)if(this.nodes[n]==t)return this.open=n,!0;return!1}get currentPos(){this.closeExtra();let t=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let i=r.length-1;i>=0;i--)t+=r[i].nodeSize;n&&t++}return t}findAtPoint(t,n){if(this.find)for(let r=0;r<this.find.length;r++)this.find[r].node==t&&this.find[r].offset==n&&(this.find[r].pos=this.currentPos)}findInside(t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].pos==null&&t.nodeType==1&&t.contains(this.find[n].node)&&(this.find[n].pos=this.currentPos)}findAround(t,n,r){if(t!=n&&this.find)for(let i=0;i<this.find.length;i++)this.find[i].pos==null&&t.nodeType==1&&t.contains(this.find[i].node)&&n.compareDocumentPosition(this.find[i].node)&(r?2:4)&&(this.find[i].pos=this.currentPos)}findInText(t){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==t&&(this.find[n].pos=this.currentPos-(t.nodeValue.length-this.find[n].offset))}matchesContext(t){if(t.indexOf("|")>-1)return t.split(/\s*\|\s*/).some(this.matchesContext,this);let n=t.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),o=-(r?r.depth+1:0)+(i?0:1),a=(s,c)=>{for(;s>=0;s--){let d=n[s];if(d==""){if(s==n.length-1||s==0)continue;for(;c>=o;c--)if(a(s-1,c))return!0;return!1}else{let p=c>0||c==0&&i?this.nodes[c].type:r&&c>=o?r.node(c-o).type:null;if(!p||p.name!=d&&p.groups.indexOf(d)==-1)return!1;c--}}return!0};return a(n.length-1,this.open)}textblockFromContext(){let t=this.options.context;if(t)for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}addPendingMark(t){let n=DG(t,this.top.pendingMarks);n&&this.top.stashMarks.push(n),this.top.pendingMarks=t.addToSet(this.top.pendingMarks)}removePendingMark(t,n){for(let r=this.open;r>=0;r--){let i=this.nodes[r];if(i.pendingMarks.lastIndexOf(t)>-1)i.pendingMarks=t.removeFromSet(i.pendingMarks);else{i.activeMarks=t.removeFromSet(i.activeMarks);let a=i.popFromStashMark(t);a&&i.type&&i.type.allow Line truncated
`))}})}function zG(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function WG(e,t,n,r,i){let o=e.doc.nodeAt(t);if(!o)throw new RangeError("No node at given position");n||(n=o.type);let a=n.create(r,null,i||o.marks);if(o.isLeaf)return e.replaceWith(t,t+o.nodeSize,a);if(!n.validContent(o.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Wt(t,t+o.nodeSize,t+1,t+o.nodeSize-1,new le(J.from(a),0,0),1,!0))}function Hs(e,t,n=1,r){let i=e.resolve(t),o=i.depth-n,a=r&&r[r.length-1]||i.parent;if(o<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!a.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let d=i.depth-1,p=n-2;d>o;d--,p--){let _=i.node(d),f=i.index(d);if(_.type.spec.isolating)return!1;let g=_.content.cutByIndex(f,_.childCount),E=r&&r[p+1];E&&(g=g.replaceChild(0,E.type.create(E.attrs)));let S=r&&r[p]||_;if(!_.canReplace(f+1,_.childCount)||!S.type.validContent(g))return!1}let s=i.indexAfter(o),c=r&&r[0];return i.node(o).canReplaceWith(s,s,c?c.type:i.node(o+1).type)}function qG(e,t,n=1,r){let i=e.doc.resolve(t),o=J.empty,a=J.empty;for(let s=i.depth,c=i.depth-n,d=n-1;s>c;s--,d--){o=J.from(i.node(s).copy(o));let p=r&&r[d];a=J.from(p?p.type.create(p.attrs,a):i.node(s).copy(a))}e.step(new $t(t,t,new le(o.append(a),n,n),!0))}function Wo(e,t){let n=e.resolve(t),r=n.index();return iD(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function iD(e,t){return!!(e&&t&&!e.isLeaf&&e.canAppend(t))}function Cm(e,t,n=-1){let r=e.resolve(t);for(let i=r.depth;;i--){let o,a,s=r.index(i);if(i==r.depth?(o=r.nodeBefore,a=r.nodeAfter):n>0?(o=r.node(i+1),s++,a=r.node(i).maybeChild(s)):(o=r.node(i).maybeChild(s-1),a=r.node(i+1)),o&&!o.isTextblock&&iD(o,a)&&r.node(i).canReplace(s,s+1))return t;if(i==0)break;t=n<0?r.before(i):r.after(i)}}function KG(e,t,n){let r=new $t(t-n,t+n,le.empty,!0);e.step(r)}function QG(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let o=r.index(i);if(r.node(i).canReplaceWith(o,o,n))return r.before(i+1);if(o>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let o=r.indexAfter(i);if(r.node(i).canReplaceWith(o,o,n))return r.after(i+1);if(o<r.node(i).childCount)return null}return null}function XG(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let o=0;o<n.openStart;o++)i=i.firstChild.content;for(let o=1;o<=(n.openStart==0&&n.size?2:1);o++)for(let a=r.depth;a>=0;a--){let s=a==r.depth?0:r.pos<=(r.start(a+1)+r.end(a+1))/2?-1:1,c=r.index(a)+(s>0?1:0),d=r.node(a),p=!1;if(o==1)p=d.canReplace(c,c,i);else{let _=d.contentMatchAt(c).findWrapping(i.firstChild.type);p=_&&d.canReplaceWith(c,c,_[0])}if(p)return s==0?r.pos:s<0?r.before(a+1):r.after(a+1)}return null}function Rm(e,t,n=t,r=le.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),o=e.resolve(n);return oD(i,o,r)?new $t(t,n,r):new jG(i,o,r).fit()}function oD(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}class jG{constructor(t,n,r){this.$from=t,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=J.empty;for(let i=0;i<=t.depth;i++){let o=t.node(i);this.frontier.push({type:o.type,match:o.contentMatchAt(t.indexAfter(i))})}for(let i=t.depth;i>0;i--)this.placed=J.from(t.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let d=this.findFittable();d?this.placeNodes(d):this.openMore()||this.dropNode()}let t=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(t<0?this.$to:r.doc.resolve(t));if(!i)return null;let o=this.placed,a=r.depth,s=i.depth;for(;a&&s&&o.childCount==1;)o=o.firstChild.content,a--,s--;let c=new le(o,a,s);return t>-1?new Wt(r.pos,t,this.$to.pos,this.$to.end(),c,n):c.size||r.pos!=this.$to.pos?new $t(r.pos,i.pos,c):null}findFittable(){let t=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,i=this.unplaced.openEnd;r<t;r++){let o=n.firstChild;if(n.childCount>1&&(i=0),o.type.spec.isolating&&i<=r){t=r;break}n=o.content}for(let n=1;n<=2;n++)for(let r=n==1?t:this.unplaced.openStart;r>=0;r--){let i,o=null;r?(o=Gg(this.unplaced.content,r-1).firstChild,i=o.content):i=this.unplaced.content;let a=i.firstChild;for(let s=this.depth;s>=0;s--){let{type:c,match:d}=this.frontier[s],p,_=null;if(n==1&&(a?d.matchType(a.type)||(_=d.fillBefore(J.from(a),!1)):o&&c.compatibleContent(o.type)))return{sliceDepth:r,frontierDepth:s,parent:o,inject:_};if(n==2&&a&&(p=d.findWrapping(a.type)))return{sliceDepth:r,frontierDepth:s,parent:o,wrap:p};if(o&&d.matchType(o.type))break}}}openMore(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=Gg(t,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new le(t,n+1,Math.max(r,i.size+n>=t.size-r?n+1:0)),!0)}dropNode(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=Gg(t,n);if(i.c Line truncated
`),p&&g==f.nodeValue.length)for(let E=f,S;E;E=E.parentNode){if(S=E.nextSibling){S.nodeName=="BR"&&(s=c={node:S.parentNode,offset:Jt(S)+1});break}let b=E.pmViewDesc;if(b&&b.node&&b.node.isBlock)break}}else{let E=f.childNodes[g-1];p=E&&(E.nodeName=="BR"||E.contentEditable=="false")}}if(jr&&d.focusNode&&d.focusNode!=c.node&&d.focusNode.nodeType==1){let f=d.focusNode.childNodes[d.focusOffset];f&&f.contentEditable=="false"&&(i=!0)}if(!(i||p&&vn)&&Fa(s.node,s.offset,d.anchorNode,d.anchorOffset)&&Fa(c.node,c.offset,d.focusNode,d.focusOffset))return;let _=!1;if((d.extend||t==n)&&!p){d.collapse(s.node,s.offset);try{t!=n&&d.extend(c.node,c.offset),_=!0}catch{}}if(!_){if(t>n){let g=s;s=c,c=g}let f=document.createRange();f.setEnd(c.node,c.offset),f.setStart(s.node,s.offset),d.removeAllRanges(),d.addRange(f)}}ignoreMutation(t){return!this.contentDOM&&t.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(t,n){for(let r=0,i=0;i<this.children.length;i++){let o=this.children[i],a=r+o.size;if(r==a?t<=a&&n>=r:t<a&&n>r){let s=r+o.border,c=a-o.border;if(t>=s&&n<=c){this.dirty=t==r||n==a?ha:CN,t==s&&n==c&&(o.contentLost||o.dom.parentNode!=this.contentDOM)?o.dirty=gi:o.markDirty(t-s,n-s);return}else o.dirty=o.dom==o.contentDOM&&o.dom.parentNode==this.contentDOM&&!o.children.length?ha:gi}r=a}this.dirty=ha}markParentsDirty(){let t=1;for(let n=this.parent;n;n=n.parent,t++){let r=t==1?ha:CN;n.dirty<r&&(n.dirty=r)}}get domAtom(){return!1}get ignoreForCoords(){return!1}isText(t){return!1}}class SD extends Nu{constructor(t,n,r,i){let o,a=n.type.toDOM;if(typeof a=="function"&&(a=a(r,()=>{if(!o)return i;if(o.parent)return o.parent.posBeforeChild(o)})),!n.type.spec.raw){if(a.nodeType!=1){let s=document.createElement("span");s.appendChild(a),a=s}a.contentEditable="false",a.classList.add("ProseMirror-widget")}super(t,[],a,null),this.widget=n,this.widget=n,o=this}matchesWidget(t){return this.dirty==Dr&&t.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(t){let n=this.widget.spec.stopEvent;return n?n(t):!1}ignoreMutation(t){return t.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get side(){return this.widget.type.side}}class xY extends Nu{constructor(t,n,r,i){super(t,[],n,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(t,n){return t!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(t){return{node:this.textDOM,offset:t}}ignoreMutation(t){return t.type==="characterData"&&t.target.nodeValue==t.oldValue}}class Ba extends Nu{constructor(t,n,r,i){super(t,[],r,i),this.mark=n}static create(t,n,r,i){let o=i.nodeViews[n.type.name],a=o&&o(n,i,r);return(!a||!a.dom)&&(a=Va.renderSpec(document,n.type.spec.toDOM(n,r))),new Ba(t,n,a.dom,a.contentDOM||a.dom)}parseRule(){return this.dirty&gi||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(t){return this.dirty!=gi&&this.mark.eq(t)}markDirty(t,n){if(super.markDirty(t,n),this.dirty!=Dr){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty<this.dirty&&(r.dirty=this.dirty),this.dirty=Dr}}slice(t,n,r){let i=Ba.create(this.parent,this.mark,!0,r),o=this.children,a=this.size;n<a&&(o=Mh(o,n,a,r)),t>0&&(o=Mh(o,0,t,r));for(let s=0;s<o.length;s++)o[s].parent=i;return i.children=o,i}}class ko extends Nu{constructor(t,n,r,i,o,a,s,c,d){super(t,[],o,a),this.node=n,this.outerDeco=r,this.innerDeco=i,this.nodeDOM=s}static create(t,n,r,i,o,a){let s=o.nodeViews[n.type.name],c,d=s&&s(n,o,()=>{if(!c)return a;if(c.parent)return c.parent.posBeforeChild(c)},r,i),p=d&&d.dom,_=d&&d.contentDOM;if(n.isText){if(!p)p=document.createTextNode(n.text);else if(p.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else p||({dom:p,contentDOM:_}=Va.renderSpec(document,n.type.spec.toDOM(n)));!_&&!n.isText&&p.nodeName!="BR"&&(p.hasAttribute("contenteditable")||(p.contentEditable="false"),n.type.spec.draggable&&(p.draggable=!0));let f=p;return p=CD(p,r,n),d?c=new MY(t,n,r,i,p,_||null,f,d,o,a+1):n.isText?new Om(t,n,r,i,p,f,o):new ko(t,n,r,i,p,_||null,f,o,a+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(t.preserveWhitespace="full"),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let r=this.children[n];if(this.dom.contains(r.dom.parentNode)){t.contentElement=r.dom.parentNode;break}}t.contentElement||(t.getContent=()=>J.empty)}return t}matchesNode(t,n,r){return this.dirty==Dr&&t.eq(this.node)&&xh(n,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(t,n){let r=this.node.inlineContent,i=n,o=t.composing?this.localCom Line truncated
`);return{dom:c,text:f,slice:t}}function ID(e,t,n,r,i){let o=i.parent.type.spec.code,a,s;if(!n&&!t)return null;let c=t&&(r||o||!n);if(c){if(e.someProp("transformPastedText",f=>{t=f(t,o||r,e)}),o)return t?new le(J.from(e.state.schema.text(t.replace(/\r\n?/g,`
`))),0,0):le.empty;let _=e.someProp("clipboardTextParser",f=>f(t,i,r,e));if(_)s=_;else{let f=i.marks(),{schema:g}=e.state,E=Va.fromSchema(g);a=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(S=>{let b=a.appendChild(document.createElement("p"));S&&b.appendChild(E.serializeNode(g.text(S,f)))})}}else e.someProp("transformPastedHTML",_=>{n=_(n,e)}),a=JY(n),Ru&&eH(a);let d=a&&a.querySelector("[data-pm-slice]"),p=d&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(d.getAttribute("data-pm-slice")||"");if(p&&p[3])for(let _=+p[3];_>0;_--){let f=a.firstChild;for(;f&&f.nodeType!=1;)f=f.nextSibling;if(!f)break;a=f}if(s||(s=(e.someProp("clipboardParser")||e.someProp("domParser")||rT.fromSchema(e.state.schema)).parseSlice(a,{preserveWhitespace:!!(c||p),context:i,ruleFromNode(f){return f.nodeName=="BR"&&!f.nextSibling&&f.parentNode&&!jY.test(f.parentNode.nodeName)?{ignore:!0}:null}})),p)s=tH(PN(s,+p[1],+p[2]),p[4]);else if(s=le.maxOpen(ZY(s.content,i),!0),s.openStart||s.openEnd){let _=0,f=0;for(let g=s.content.firstChild;_<s.openStart&&!g.type.spec.isolating;_++,g=g.firstChild);for(let g=s.content.lastChild;f<s.openEnd&&!g.type.spec.isolating;f++,g=g.lastChild);s=PN(s,_,f)}return e.someProp("transformPasted",_=>{s=_(s,e)}),s}const jY=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function ZY(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let i=t.node(n).contentMatchAt(t.index(n)),o,a=[];if(e.forEach(s=>{if(!a)return;let c=i.findWrapping(s.type),d;if(!c)return a=null;if(d=a.length&&o.length&&wD(c,o,s,a[a.length-1],0))a[a.length-1]=d;else{a.length&&(a[a.length-1]=xD(a[a.length-1],o.length));let p=DD(s,c);a.push(p),i=i.matchType(p.type),o=c}}),a)return J.from(a)}return e}function DD(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,J.from(e));return e}function wD(e,t,n,r,i){if(i<e.length&&i<t.length&&e[i]==t[i]){let o=wD(e,t,n,r.lastChild,i+1);if(o)return r.copy(r.content.replaceChild(r.childCount-1,o));if(r.contentMatchAt(r.childCount).matchType(i==e.length-1?n.type:e[i+1]))return r.copy(r.content.append(J.from(DD(n,e,i+1))))}}function xD(e,t){if(t==0)return e;let n=e.content.replaceChild(e.childCount-1,xD(e.lastChild,t-1)),r=e.contentMatchAt(e.childCount).fillBefore(J.empty,!0);return e.copy(n.append(r))}function Ph(e,t,n,r,i,o){let a=t<0?e.firstChild:e.lastChild,s=a.content;return e.childCount>1&&(o=0),i<r-1&&(s=Ph(s,t,n,r,i+1,o)),i>=n&&(s=t<0?a.contentMatchAt(0).fillBefore(s,o<=i).append(s):s.append(a.contentMatchAt(a.childCount).fillBefore(J.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,a.copy(s))}function PN(e,t,n){return t<e.openStart&&(e=new le(Ph(e.content,-1,t,e.openStart,0,e.openEnd),t,e.openEnd)),n<e.openEnd&&(e=new le(Ph(e.content,1,n,e.openEnd,0,0),e.openStart,n)),e}const MD={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let UN=null;function LD(){return UN||(UN=document.implementation.createHTMLDocument("title"))}function JY(e){let t=/^(\s*<meta [^>]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=LD().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(e),i;if((i=r&&MD[r[1].toLowerCase()])&&(e=i.map(o=>"<"+o+">").join("")+e+i.map(o=>"</"+o+">").reverse().join("")),n.innerHTML=e,i)for(let o=0;o<i.length;o++)n=n.querySelector(i[o])||n;return n}function eH(e){let t=e.querySelectorAll(Rn?"span:not([class]):not([style])":"span.Apple-converted-space");for(let n=0;n<t.length;n++){let r=t[n];r.childNodes.length==1&&r.textContent==" "&&r.parentNode&&r.parentNode.replaceChild(e.ownerDocument.createTextNode(" "),r)}}function tH(e,t){if(!e.size)return e;let n=e.content.firstChild.type.schema,r;try{r=JSON.parse(t)}catch{return e}let{content:i,openStart:o,openEnd:a}=e;for(let s=r.length-2;s>=0;s-=2){let c=n.nodes[r[s]];if(!c||c.hasRequiredAttrs())break;i=J.from(c.create(r[s+1],i)),o++,a++}return new le(i,o,a)}const On={},An={},nH={touchstart:!0,touchmove:!0};class rH{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastAndroidDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function iH(e){for(let t in On){let n=On[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=r=>{aH(e,r)&&!uT(e,r)&&(e.editable||!(r.type in An))&&n(e,r)},nH[t]?{passive:!0}:void 0)}vn&&e.dom.addEventListener("input",()=>null),Uh(e)}function To(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function oH(e){e.domObserver.stop();for(let t in e.input.event Line truncated
`).scrollIntoView()),!0)};function KD(e){for(let t=0;t<e.edgeCount;t++){let{type:n}=e.edge(t);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}const a2=(e,t)=>{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),o=n.indexAfter(-1),a=KD(i.contentMatchAt(o));if(!a||!i.canReplaceWith(o,o,a))return!1;if(t){let s=n.after(),c=e.tr.replaceWith(s,s,a.createAndFill());c.setSelection(He.near(c.doc.resolve(s),1)),t(c.scrollIntoView())}return!0},s2=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof Kr||r.parent.inlineContent||i.parent.inlineContent)return!1;let o=KD(i.parent.contentMatchAt(i.indexAfter()));if(!o||!o.isTextblock)return!1;if(t){let a=(!r.parentOffset&&i.index()<i.parent.childCount?r:i).pos,s=e.tr.insert(a,o.createAndFill());s.setSelection(Ie.create(s.doc,a+1)),t(s.scrollIntoView())}return!0},l2=(e,t)=>{let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let o=n.before();if(Hs(e.doc,o))return t&&t(e.tr.split(o).scrollIntoView()),!0}let r=n.blockRange(),i=r&&_l(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},c2=(e,t)=>{let{$from:n,to:r}=e.selection,i,o=n.sharedDepth(r);return o==0?!1:(i=n.before(o),t&&t(e.tr.setSelection(Te.create(e.doc,i))),!0)};function u2(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(o-1,o)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(o,o+1)||!(i.isTextblock||Wo(e.doc,t.pos))?!1:(n&&n(e.tr.clearIncompatible(t.pos,r.type,r.contentMatchAt(r.childCount)).join(t.pos).scrollIntoView()),!0)}function QD(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o,a;if(r.type.spec.isolating||i.type.spec.isolating)return!1;if(u2(e,t,n))return!0;let s=t.parent.canReplace(t.index(),t.index()+1);if(s&&(o=(a=r.contentMatchAt(r.childCount)).findWrapping(i.type))&&a.matchType(o[0]||i.type).validEnd){if(n){let _=t.pos+i.nodeSize,f=J.empty;for(let S=o.length-1;S>=0;S--)f=J.from(o[S].create(null,f));f=J.from(r.copy(f));let g=e.tr.step(new Wt(t.pos-1,_,t.pos,_,new le(f,1,0),o.length,!0)),E=_+2*o.length;Wo(g.doc,E)&&g.join(E),n(g.scrollIntoView())}return!0}let c=He.findFrom(t,1),d=c&&c.$from.blockRange(c.$to),p=d&&_l(d);if(p!=null&&p>=t.depth)return n&&n(e.tr.lift(d,p).scrollIntoView()),!0;if(s&&il(i,"start",!0)&&il(r,"end")){let _=r,f=[];for(;f.push(_),!_.isTextblock;)_=_.lastChild;let g=i,E=1;for(;!g.isTextblock;g=g.firstChild)E++;if(_.canReplace(_.childCount,_.childCount,g.content)){if(n){let S=J.empty;for(let T=f.length-1;T>=0;T--)S=J.from(f[T].copy(S));let b=e.tr.step(new Wt(t.pos-f.length,t.pos+i.nodeSize,t.pos+E,t.pos+i.nodeSize-E,new le(S,f.length,0),0,!0));n(b.scrollIntoView())}return!0}}return!1}function XD(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,o=i.depth;for(;i.node(o).isInline;){if(!o)return!1;o--}return i.node(o).isTextblock?(n&&n(t.tr.setSelection(Ie.create(t.doc,e<0?i.start(o):i.end(o)))),!0):!1}}const d2=XD(-1),p2=XD(1);function _2(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,a=i.blockRange(o),s=a&&oT(a,e,t);return s?(r&&r(n.tr.wrap(a,s).scrollIntoView()),!0):!1}}function QN(e,t=null){return function(n,r){let i=!1;for(let o=0;o<n.selection.ranges.length&&!i;o++){let{$from:{pos:a},$to:{pos:s}}=n.selection.ranges[o];n.doc.nodesBetween(a,s,(c,d)=>{if(i)return!1;if(!(!c.isTextblock||c.hasMarkup(e,t)))if(c.type==e)i=!0;else{let p=n.doc.resolve(d),_=p.index();i=p.parent.canReplaceWith(_,_+1,e)}})}if(!i)return!1;if(r){let o=n.tr;for(let a=0;a<n.selection.ranges.length;a++){let{$from:{pos:s},$to:{pos:c}}=n.selection.ranges[a];o.setBlockType(s,c,e,t)}r(o.scrollIntoView())}return!0}}typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform&&os.platform()=="darwin";function m2(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,a=i.blockRange(o),s=!1,c=a;if(!a)return!1;if(a.depth>=2&&i.node(a.depth-1).type.compatibleContent(e)&&a.startIndex==0){if(i.index(a.depth-1)==0)return!1;let p=n.doc.resolve(a.start-2);c=new d_(p,p,a.depth),a.endIndex<a.parent.childCount&&(a=new d_(i,n.doc.resolve(o.end(a.depth)),a.depth)),s=!0}let d=oT(c,e,t,a);return d?(r&&r(f2(n.tr,a,d,s,e).scrollIntoView()),!0):!1}}function f2(e,t,n,r,i){let o=J.empty;for(let p=n.length-1;p>=0;p--)o=J.from(n[p].type.create(n[p].attrs,o));e.step(new Wt(t.start-(r?2:0),t.end,t.start,t.end,new le(o,0,0),n.length,!0));let a=0;for(let p=0;p<n.length;p++)n[p].type==i&&(a=p+1);let s=n.length-a,c=t.start+n.length-(r?2:0),d=t.parent;for(let p=t.startIndex,_=t.endIndex,f=!0;p<_;p++,f=!1)!f&&Hs(e.doc,c,s)&&(e.split(c,s),c+=2*s),c+=d.child(p).nodeSize;return e}function g2(e){return function(t,n){let{$from:r,$to:i}=t.selection,o=r.blockRange(i,a=>a.childCount>0&&a.firstChild.type==e);return o?n?r.node(o.depth-1).type==e?E2(t,n,e,o):h2(t,n,o):!0:!1}}function E2(e,t,n,r){let i=e.tr,o=r.end,a=r.$to.end(r.depth);o<a&&(i. Line truncated
`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function O2(e){return typeof e=="number"}class A2{constructor(t){this.find=t.find,this.handler=t.handler}}const I2=(e,t,n)=>{if(ET(t))return[...e.matchAll(t)];const r=t(e,n);return r?r.map(i=>{const o=[i.text];return o.index=i.index,o.input=e,o.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),o.push(i.replaceWith)),o}):[]};function D2(e){const{editor:t,state:n,from:r,to:i,rule:o,pasteEvent:a,dropEvent:s}=e,{commands:c,chain:d,can:p}=new Dm({editor:t,state:n}),_=[];return n.doc.nodesBetween(r,i,(g,E)=>{if(!g.isTextblock||g.type.spec.code)return;const S=Math.max(r,E),b=Math.min(i,E+g.content.size),T=g.textBetween(S-E,b-E,void 0,"");I2(T,o.find,a).forEach(R=>{if(R.index===void 0)return;const O=S+R.index+1,I=O+R[0].length,x={from:n.tr.mapping.map(O),to:n.tr.mapping.map(I)},k=o.handler({state:n,range:x,match:R,commands:c,chain:d,can:p,pasteEvent:a,dropEvent:s});_.push(k)})}),_.every(g=>g!==null)}const w2=e=>{var t;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)===null||t===void 0||t.setData("text/html",e),n};function x2(e){const{editor:t,rules:n}=e;let r=null,i=!1,o=!1,a=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,s=typeof DragEvent<"u"?new DragEvent("drop"):null;const c=({state:p,from:_,to:f,rule:g,pasteEvt:E})=>{const S=p.tr,b=Im({state:p,transaction:S});if(!(!D2({editor:t,state:b,from:Math.max(_-1,0),to:f.b-1,rule:g,pasteEvent:E,dropEvent:s})||!S.steps.length))return s=typeof DragEvent<"u"?new DragEvent("drop"):null,a=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,S};return n.map(p=>new pt({view(_){const f=g=>{var E;r=!((E=_.dom.parentElement)===null||E===void 0)&&E.contains(g.target)?_.dom.parentElement:null};return window.addEventListener("dragstart",f),{destroy(){window.removeEventListener("dragstart",f)}}},props:{handleDOMEvents:{drop:(_,f)=>(o=r===_.dom.parentElement,s=f,!1),paste:(_,f)=>{var g;const E=(g=f.clipboardData)===null||g===void 0?void 0:g.getData("text/html");return a=f,i=!!(E!=null&&E.includes("data-pm-slice")),!1}}},appendTransaction:(_,f,g)=>{const E=_[0],S=E.getMeta("uiEvent")==="paste"&&!i,b=E.getMeta("uiEvent")==="drop"&&!o,T=E.getMeta("applyPasteRules"),y=!!T;if(!S&&!b&&!y)return;if(y){const{from:I,text:x}=T,k=I+x.length,$=w2(x);return c({rule:p,state:g,from:I,to:{b:k},pasteEvt:$})}const R=f.doc.content.findDiffStart(g.doc.content),O=f.doc.content.findDiffEnd(g.doc.content);if(!(!O2(R)||!O||R===O.b))return c({rule:p,state:g,from:R,to:O,pasteEvt:a})}}))}function M2(e){const t=e.filter((n,r)=>e.indexOf(n)!==r);return[...new Set(t)]}class Ls{constructor(t,n){this.splittableMarks=[],this.editor=n,this.extensions=Ls.resolve(t),this.schema=C2(this.extensions,n),this.setupExtensions()}static resolve(t){const n=Ls.sort(Ls.flatten(t)),r=M2(n.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),n}static flatten(t){return t.map(n=>{const r={name:n.name,options:n.options,storage:n.storage},i=fe(n,"addExtensions",r);return i?[n,...this.flatten(i())]:n}).flat(10)}static sort(t){return t.sort((r,i)=>{const o=fe(r,"priority")||100,a=fe(i,"priority")||100;return o>a?-1:o<a?1:0})}get commands(){return this.extensions.reduce((t,n)=>{const r={name:n.name,options:n.options,storage:n.storage,editor:this.editor,type:jg(n.name,this.schema)},i=fe(n,"addCommands",r);return i?{...t,...i()}:t},{})}get plugins(){const{editor:t}=this,n=Ls.sort([...this.extensions].reverse()),r=[],i=[],o=n.map(a=>{const s={name:a.name,options:a.options,storage:a.storage,editor:t,type:jg(a.name,this.schema)},c=[],d=fe(a,"addKeyboardShortcuts",s);let p={};if(a.type==="mark"&&fe(a,"exitable",s)&&(p.ArrowRight=()=>Ft.handleExit({editor:t,mark:a})),d){const S=Object.fromEntries(Object.entries(d()).map(([b,T])=>[b,()=>T({editor:t})]));p={...p,...S}}const _=qH(p);c.push(_);const f=fe(a,"addInputRules",s);ZN(a,t.options.enableInputRules)&&f&&r.push(...f());const g=fe(a,"addPasteRules",s);ZN(a,t.options.enablePasteRules)&&g&&i.push(...g());const E=fe(a,"addProseMirrorPlugins",s);if(E){const S=E();c.push(...S)}return c}).flat();return[v2({editor:t,rules:r}),...x2({editor:t,rules:i}),...o]}get attributes(){return jD(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:n}=wm(this.extensions);return Object.fromEntries(n.filter(r=>!!fe(r,"addNodeView")).map(r=>{const i=this.attributes.filter(c=>c.type===r.name),o={name:r.name,options:r.options,storage:r.storage,editor:t,type:Kt(r.name,this.schema)},a=fe(r,"addNodeView",o);if(!a)return[];const s=(c,d,p,_)=>{const f=Fh(c,i);return a()({editor:t,node:c,getPos:p,decorations:_,HTMLAttributes:f,extension:r})};return[r.name,s]}))}setupExtensions(){this.extensions.forEach(t=>{var n;this.editor.extensionStorage[t.name]=t.storage;const r={name:t.name, Line truncated
`,textSerializers:a={}}=n||{};let s="";return e.nodesBetween(r,i,(c,d,p,_)=>{var f;c.isBlock&&d>r&&(s+=o);const g=a==null?void 0:a[c.type.name];if(g)return p&&(s+=g({node:c,pos:d,parent:p,index:_,range:t})),!1;c.isText&&(s+=(f=c==null?void 0:c.text)===null||f===void 0?void 0:f.slice(Math.max(r,d)-d,i-d))}),s}function ew(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}const k2=vt.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new pt({key:new at("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,{ranges:o}=i,a=Math.min(...o.map(p=>p.$from.pos)),s=Math.max(...o.map(p=>p.$to.pos)),c=ew(n);return JD(r,{from:a,to:s},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:c})}}})]}}),P2=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window==null?void 0:window.getSelection())===null||n===void 0||n.removeAllRanges())}),!0),U2=(e=!1)=>({commands:t})=>t.setContent("",e),F2=()=>({state:e,tr:t,dispatch:n})=>{const{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:o,$to:a})=>{e.doc.nodesBetween(o.pos,a.pos,(s,c)=>{if(s.type.isText)return;const{doc:d,mapping:p}=t,_=d.resolve(p.map(c)),f=d.resolve(p.map(c+s.nodeSize)),g=_.blockRange(f);if(!g)return;const E=_l(g);if(s.type.isTextblock){const{defaultType:S}=_.parent.contentMatchAt(_.index());t.setNodeMarkup(g.start,S)}(E||E===0)&&t.lift(g,E)})}),!0},B2=e=>t=>e(t),G2=()=>({state:e,dispatch:t})=>s2(e,t),Y2=(e,t)=>({editor:n,tr:r})=>{const{state:i}=n,o=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);const a=r.mapping.map(t);return r.insert(a,o.content),r.setSelection(new Ie(r.doc.resolve(a-1))),!0},H2=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;const i=e.selection.$anchor;for(let o=i.depth;o>0;o-=1)if(i.node(o).type===r.type){if(t){const s=i.before(o),c=i.after(o);e.delete(s,c).scrollIntoView()}return!0}return!1},$2=e=>({tr:t,state:n,dispatch:r})=>{const i=Kt(e,n.schema),o=t.selection.$anchor;for(let a=o.depth;a>0;a-=1)if(o.node(a).type===i){if(r){const c=o.before(a),d=o.after(a);t.delete(c,d).scrollIntoView()}return!0}return!1},V2=e=>({tr:t,dispatch:n})=>{const{from:r,to:i}=e;return n&&t.delete(r,i),!0},z2=()=>({state:e,dispatch:t})=>QH(e,t),W2=()=>({commands:e})=>e.keyboardShortcut("Enter"),q2=()=>({state:e,dispatch:t})=>a2(e,t);function T_(e,t,n={strict:!0}){const r=Object.keys(t);return r.length?r.every(i=>n.strict?t[i]===e[i]:ET(t[i])?t[i].test(e[i]):t[i]===e[i]):!0}function Bh(e,t,n={}){return e.find(r=>r.type===t&&T_(r.attrs,n))}function K2(e,t,n={}){return!!Bh(e,t,n)}function hT(e,t,n={}){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if(e.parentOffset===r.offset&&r.offset!==0&&(r=e.parent.childBefore(e.parentOffset)),!r.node)return;const i=Bh([...r.node.marks],t,n);if(!i)return;let o=r.index,a=e.start()+r.offset,s=o+1,c=a+r.node.nodeSize;for(Bh([...r.node.marks],t,n);o>0&&i.isInSet(e.parent.child(o-1).marks);)o-=1,a-=e.parent.child(o).nodeSize;for(;s<e.parent.childCount&&K2([...e.parent.child(s).marks],t,n);)c+=e.parent.child(s).nodeSize,s+=1;return{from:a,to:c}}function Ko(e,t){if(typeof e=="string"){if(!t.marks[e])throw Error(`There is no mark type named '${e}'. Maybe you forgot to add the extension?`);return t.marks[e]}return e}const Q2=(e,t={})=>({tr:n,state:r,dispatch:i})=>{const o=Ko(e,r.schema),{doc:a,selection:s}=n,{$from:c,from:d,to:p}=s;if(i){const _=hT(c,o,t);if(_&&_.from<=d&&_.to>=p){const f=Ie.create(a,_.from,_.to);n.setSelection(f)}}return!0},X2=e=>t=>{const n=typeof e=="function"?e(t):e;for(let r=0;r<n.length;r+=1)if(n[r](t))return!0;return!1};function tw(e){return e instanceof Ie}function bo(e=0,t=0,n=0){return Math.min(Math.max(e,t),n)}function nw(e,t=null){if(!t)return null;const n=He.atStart(e),r=He.atEnd(e);if(t==="start"||t===!0)return n;if(t==="end")return r;const i=n.from,o=r.to;return t==="all"?Ie.create(e,bo(0,i,o),bo(e.content.size,i,o)):Ie.create(e,bo(t,i,o),bo(t,i,o))}function Mm(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}const j2=(e=null,t={})=>({editor:n,view:r,tr:i,dispatch:o})=>{t={scrollIntoView:!0,...t};const a=()=>{Mm()&&r.dom.focus(),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t!=null&&t.scrollIntoView&&n.commands.scrollIntoView())})};if(r.hasFocus()&&e===null||e===!1)return!0;if(o&&e===null&&!tw(n.state.selection))return a(),!0;const s=nw(i.doc,e)||n.state.selection,c=n.state.selection.eq(s);return o&&(c||i.setSelection(s),c&&i.storedMarks&&i.setStoredMarks(i.storedMarks),a()),!0},Z2=(e,t)=>n=>e.every((r,i)=>t(r,{...n,index:i})),J2=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t Line truncated
position: relative;
}
.ProseMirror {
word-wrap: break-word;
white-space: pre-wrap;
white-space: break-spaces;
-webkit-font-variant-ligatures: none;
font-variant-ligatures: none;
font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
}
.ProseMirror [contenteditable="false"] {
white-space: normal;
}
.ProseMirror [contenteditable="false"] [contenteditable="true"] {
white-space: pre-wrap;
}
.ProseMirror pre {
white-space: pre-wrap;
}
img.ProseMirror-separator {
display: inline !important;
border: none !important;
margin: 0 !important;
width: 1px !important;
height: 1px !important;
}
.ProseMirror-gapcursor {
display: none;
pointer-events: none;
position: absolute;
margin: 0;
}
.ProseMirror-gapcursor:after {
content: "";
display: block;
position: absolute;
top: -2px;
width: 20px;
border-top: 1px solid black;
animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
}
@keyframes ProseMirror-cursor-blink {
to {
visibility: hidden;
}
}
.ProseMirror-hideselection *::selection {
background: transparent;
}
.ProseMirror-hideselection *::-moz-selection {
background: transparent;
}
.ProseMirror-hideselection * {
caret-color: transparent;
}
.ProseMirror-focused .ProseMirror-gapcursor {
display: block;
}
.tippy-box[data-animation=fade][data-state=hidden] {
opacity: 0
}`;function uV(e,t,n){const r=document.querySelector("style[data-tiptap-style]");if(r!==null)return r;const i=document.createElement("style");return t&&i.setAttribute("nonce",t),i.setAttribute("data-tiptap-style",""),i.innerHTML=e,document.getElementsByTagName("head")[0].appendChild(i),i}let dV=class extends T2{constructor(t={}){super(),this.isFocused=!1,this.extensionStorage={},this.options={element:document.createElement("div"),content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:n})=>{throw n}},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("contentError",this.options.onContentError),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),window.setTimeout(()=>{this.isDestroyed||(this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}))},0)}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&document&&(this.css=uV(cV,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.view||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,n=!0){this.setOptions({editable:t}),n&&this.emit("update",{editor:this,transaction:this.state.tr})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(t,n){const r=ZD(n)?n(t,[...this.state.plugins]):[...this.state.plugins,t],i=this.state.reconfigure({plugins:r});this.view.updateState(i)}unregisterPlugin(t){if(this.isDestroyed)return;const n=typeof t=="string"?`${t}$`:t.key,r=this.state.reconfigure({plugins:this.state.plugins.filter(i=>!i.key.startsWith(n))});this.view.updateState(r)}createExtensionManager(){var t,n;const i=[...this.options.enableCoreExtensions?[oV,k2.configure({blockSeparator:(n=(t=this.options.coreExtensionOptions)===null||t===void 0?void 0:t.clipboardTextSerializer)===null||n===void 0?void 0:n.blockSeparator}),iV,aV,sV,lV]:[],...this.options.extensions].filter(o=>["extension","node","mark"].includes(o==null?void 0:o.type));this.extensionManager=new Ls(i,this)}createCommandManager(){this.commandManager=new Dm({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createView(){let t;try{t=Gh(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(o){if(!(o instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(o.message))throw o;this.emit("contentError",{editor:this,error:o,disableCollaboration:()=>{this.options.extensions=this.options.extensions.filter(a=>a.name!=="collaboration"),this.createExtensionManager()}}),t=Gh(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}const n=nw(t,this.options.autofocus);this.view=new FH(this.options.element,{...this.options.editorProps,dispatchTransaction:this.dispatchTransaction.bind(this),state:Ms.create({doc:t,selection:n||void 0})});const r=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(r),this.createNodeViews(),this.prependClass();const i=this.view.dom;i.editor=this}createNodeViews(){this.view.setProps({nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`tiptap ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const n=this.capturedTransaction;return this.capturedTransaction=null,n}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(a=>{var s;return(s=this.capturedTransaction)===null||s===void 0?void 0:s.step(a)});return}const n=this.state.apply(t),r=!this.state.selection.eq(n.selection);this.view.updateState(n),this.emit("transaction",{editor:this,transaction:t}),r&&this.emit("selectionUpdate",{editor:this,transaction:t});const i=t.getMeta("focus"),o=t.getMeta("blur");i&&this.emit("focus",{ed Line truncated
`,textSerializers:r={}}=t||{};return D$(this.state.doc,{blockSeparator:n,textSerializers:{...ew(this.schema),...r}})}get isEmpty(){return P$(this.state.doc)}getCharacterCount(){return console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.'),this.state.doc.content.size-2}destroy(){this.emit("destroy"),this.view&&this.view.destroy(),this.removeAllListeners()}get isDestroyed(){var t;return!(!((t=this.view)===null||t===void 0)&&t.docView)}$node(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelector(t,n))||null}$nodes(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelectorAll(t,n))||null}$pos(t){const n=this.state.doc.resolve(t);return new _a(n,this)}get $doc(){return this.$pos(0)}};function Ga(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=Be(e.getAttributes,void 0,r);if(i===!1||i===null)return null;const{tr:o}=t,a=r[r.length-1],s=r[0];if(a){const c=s.search(/\S/),d=n.from+s.indexOf(a),p=d+a.length;if(yT(n.from,n.to,t.doc).filter(g=>g.mark.type.excluded.find(S=>S===e.type&&S!==g.mark.type)).filter(g=>g.to>d).length)return null;p<n.to&&o.delete(p,n.to),d>n.from&&o.delete(n.from+c,d);const f=n.from+c+a.length;o.addMark(n.from+c,f,e.type.create(i||{})),o.removeStoredMark(e.type)}}})}function ow(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=Be(e.getAttributes,void 0,r)||{},{tr:o}=t,a=n.from;let s=n.to;const c=e.type.create(i);if(r[1]){const d=r[0].lastIndexOf(r[1]);let p=a+d;p>s?p=s:s=p+r[1].length;const _=r[0][r[0].length-1];o.insertText(_,a+r[0].length-1),o.replaceWith(p,s,c)}else if(r[0]){const d=e.type.isInline?a:a-1;o.insert(d,e.type.create(i)).delete(o.mapping.map(a),o.mapping.map(s))}o.scrollIntoView()}})}function $h(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{const i=t.doc.resolve(n.from),o=Be(e.getAttributes,void 0,r)||{};if(!i.node(-1).canReplaceWith(i.index(-1),i.indexAfter(-1),e.type))return null;t.tr.delete(n.from,n.to).setBlockType(n.from,n.from,e.type,o)}})}function Ot(e){return new vu({find:e.find,handler:({state:t,range:n,match:r})=>{let i=e.replace,o=n.from;const a=n.to;if(r[1]){const s=r[0].lastIndexOf(r[1]);i+=r[0].slice(s+r[1].length),o+=s;const c=o-a;c>0&&(i=r[0].slice(s-c,s)+i,o=a)}t.tr.insertText(i,o,a)}})}function ru(e){return new vu({find:e.find,handler:({state:t,range:n,match:r,chain:i})=>{const o=Be(e.getAttributes,void 0,r)||{},a=t.tr.delete(n.from,n.to),c=a.doc.resolve(n.from).blockRange(),d=c&&oT(c,e.type,o);if(!d)return null;if(a.wrap(c,d),e.keepMarks&&e.editor){const{selection:_,storedMarks:f}=t,{splittableMarks:g}=e.editor.extensionManager,E=f||_.$to.parentOffset&&_.$from.marks();if(E){const S=E.filter(b=>g.includes(b.type.name));a.ensureMarks(S)}}if(e.keepAttributes){const _=e.type.name==="bulletList"||e.type.name==="orderedList"?"listItem":"taskList";i().updateAttributes(_,o).run()}const p=a.doc.resolve(n.from-1).nodeBefore;p&&p.type===e.type&&Wo(a.doc,n.from-1)&&(!e.joinPredicate||e.joinPredicate(r,p))&&a.join(n.from-1)}})}class Ft{constructor(t={}){this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=Be(fe(this,"addOptions",{name:this.name}))),this.storage=Be(fe(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(t={}){return new Ft(t)}configure(t={}){const n=this.extend({...this.config,addOptions(){var r;return xm(((r=this.parent)===null||r===void 0?void 0:r.call(this))||{},t)}});return n.name=this.name,n.parent=this.parent,n}extend(t={}){const n=new Ft(t);return n.parent=this,this.child=n,n.name=t.name?t.name:n.parent.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=Be(fe(n,"addOptions",{name:n.name})),n.storage=Be(fe(n,"addStorage",{name:n.name,options:n.options})),n}static handleExit({editor:t,mark:n}){const{tr:r}=t.state,i=t.state.selection.$from;if(i.pos===i.end()){const a=i.marks();if(!!!a.find(d=>(d==null?void 0:d.type.name)===n.name))return!1;const c=a.find(d=>(d==null?void 0:d.type.name)===n.name);return c&&r.removeStoredMark(c),r.insertText(" ",i.pos),t.view.dispatch(r),!0}return!1}}class dt{constructor(t={}){this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHLine truncated
* @license React
* use-sync-external-store-shim.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var rv;function TV(){if(rv)return rE;rv=1;var e=ct;function t(_,f){return _===f&&(_!==0||1/_===1/f)||_!==_&&f!==f}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,i=e.useEffect,o=e.useLayoutEffect,a=e.useDebugValue;function s(_,f){var g=f(),E=r({inst:{value:g,getSnapshot:f}}),S=E[0].inst,b=E[1];return o(function(){S.value=g,S.getSnapshot=f,c(S)&&b({inst:S})},[_,g,f]),i(function(){return c(S)&&b({inst:S}),_(function(){c(S)&&b({inst:S})})},[_]),a(g),g}function c(_){var f=_.getSnapshot;_=_.value;try{var g=f();return!n(_,g)}catch{return!0}}function d(_,f){return f()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?d:s;return rE.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,rE}var iv;function bV(){return iv||(iv=1,nE.exports=TV()),nE.exports}/**
* @license React
* use-sync-external-store-shim/with-selector.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var ov;function yV(){if(ov)return tE;ov=1;var e=ct,t=bV();function n(d,p){return d===p&&(d!==0||1/d===1/p)||d!==d&&p!==p}var r=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,o=e.useRef,a=e.useEffect,s=e.useMemo,c=e.useDebugValue;return tE.useSyncExternalStoreWithSelector=function(d,p,_,f,g){var E=o(null);if(E.current===null){var S={hasValue:!1,value:null};E.current=S}else S=E.current;E=s(function(){function T(x){if(!y){if(y=!0,R=x,x=f(x),g!==void 0&&S.hasValue){var k=S.value;if(g(k,x))return O=k}return O=x}if(k=O,r(R,x))return k;var $=f(x);return g!==void 0&&g(k,$)?k:(R=x,O=$)}var y=!1,R,O,I=_===void 0?null:_;return[function(){return T(p())},I===null?void 0:function(){return T(I())}]},[p,_,f,g]);var b=i(d,E[0],E[1]);return a(function(){S.hasValue=!0,S.value=b},[b]),c(b),b},tE}aw.exports=yV();var CV=aw.exports;function RV(e){let t=0,n=0,r={editor:e,transactionNumber:0},i=e;const o=new Set;return{getSnapshot(){return t===n||(n=t,r={editor:i,transactionNumber:t}),r},getServerSnapshot(){return{editor:null,transactionNumber:0}},subscribe(s){return o.add(s),()=>{o.delete(s)}},watch(s){if(i=s,i){const c=()=>{t+=1,o.forEach(p=>p())},d=i;return d.on("transaction",c),()=>{d.off("transaction",c)}}}}}function NV(e){const[t]=B.useState(()=>RV(e.editor)),n=CV.useSyncExternalStoreWithSelector(t.subscribe,t.getSnapshot,t.getServerSnapshot,e.selector,e.equalityFn);return B.useEffect(()=>t.watch(e.editor),[e.editor]),B.useDebugValue(n),n}const vV=!1,Vh=typeof window>"u",OV=Vh||!!(typeof window<"u"&&window.next);function AV(e={},t=[]){const n=B.useRef(!1),[r,i]=B.useState(()=>{if(e.immediatelyRender===void 0)return Vh||OV?null:new eE(e);if(e.immediatelyRender&&Vh&&vV)throw new Error("Tiptap Error: SSR has been detected, and `immediatelyRender` has been set to `true` this is an unsupported configuration that may result in errors, explicitly set `immediatelyRender` to `false` to avoid hydration mismatches.");return e.immediatelyRender?new eE(e):null});B.useDebugValue(r),B.useEffect(()=>{let k=r;k?k.setOptions(e):(k=new eE(e),i(k))},t);const{onBeforeCreate:o,onBlur:a,onCreate:s,onDestroy:c,onFocus:d,onSelectionUpdate:p,onTransaction:_,onUpdate:f,onContentError:g}=e,E=B.useRef(o),S=B.useRef(a),b=B.useRef(s),T=B.useRef(c),y=B.useRef(d),R=B.useRef(p),O=B.useRef(_),I=B.useRef(f),x=B.useRef(g);return B.useEffect(()=>{r&&(o&&(r.off("beforeCreate",E.current),r.on("beforeCreate",o),E.current=o),a&&(r.off("blur",S.current),r.on("blur",a),S.current=a),s&&(r.off("create",b.current),r.on("create",s),b.current=s),c&&(r.off("destroy",T.current),r.on("destroy",c),T.current=c),d&&(r.off("focus",y.current),r.on("focus",d),y.current=d),p&&(r.off("selectionUpdate",R.current),r.on("selectionUpdate",p),R.current=p),_&&(r.off("transaction",O.current),r.on("transaction",_),O.current=_),f&&(r.off("update",I.current),r.on("update",f),I.current=f),g&&(r.off("contentError",x.current),r.on("contentError",g),x.current=g))},[o,a,s,c,d,p,_,f,g,r]),B.useEffect(()=>(n.current=!0,()=>{n.current=!1,r&&setTimeout(()=>{!n.current&&!r.isDestroyed&&r.destroy()})}),[]),NV({editor:r,selector:({transactionNumber:k})=>e.shouldRerenderOnTransaction===!1?null:e.immediatelyRender&&k===0?0:k+1}),r}const Ue=B.createContext({editor:null}),IV=Ue.Consumer;function DV({children:e,slotAfter:t,slotBefore:n,...r}){const i=AV(r);return i?ct.createElement(Ue.Provider,{value:{editor:i}},n,ct.createElement(IV,null,({editor:o})=>ct.createElement(SV,{editor:o})),e,t):null}const sw=B.createContext({onDragStart:void 0}),lw=()=>B.useContext(sw),CT=e=>{const t=e.as||"div",{nodeViewContentRef:n}=lw();return ct.createElement(t,{...e,ref:n,"data-node-view-content":"",style:{whiteSpace:"pre-wrap",...e.style}})},ml=ct.forwardRef((e,t)=>{const{onDragStart:n}=lw(),r=e.as||"div";return ct.createElement(r,{...e,ref:t,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...e.style}})});function wV(e){return!!(typeof e=="function"&&e.prototype&&e.prototype.isReactComponent)}function xV(e){var t;return typeof e=="object"&&((t=e.$$typeof)===null||t===void 0?void 0:t.toString())==="Symbol(react.forward_ref)"}class cw{constructor(t,{editor:n,props:r={},as:i="div",className:o="",attrs:a}){this.ref=null,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=t,this.editor=n,this.props=r,this.element=document.createElement(i),this.element.classList.add("react-renderer"),o&&this.element.classList.add(...o.split(" ")),a&&Object.keys(a).forEach(s=>{this.element.setAttribute(s,a[s])}),this.render()}render(){var t,n;const r=this.component,i=this.props;(wV(r)||xV(r))&&(i.ref=o=>{this.ref=o}),this.reactElement=ct.createElement(r,{...i}),(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.setRenderer(this.id,this)}updateProps(t={}){this.props={...this.props,...t},this.render()}destroy(){var t,n;(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.removeRenderer(this.id)}}class MV extends _V{mount(Line truncated
* @license
* Lodash <https://lodash.com/>
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
* Released under MIT license <https://lodash.com/license>
* Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
*/y_.exports;(function(e,t){(function(){var n,r="4.17.21",i=200,o="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",s="Invalid `variable` option passed into `_.template`",c="__lodash_hash_undefined__",d=500,p="__lodash_placeholder__",_=1,f=2,g=4,E=1,S=2,b=1,T=2,y=4,R=8,O=16,I=32,x=64,k=128,$=256,z=512,H=30,ae="...",_e=800,ue=16,me=1,he=2,se=3,M=1/0,D=9007199254740991,Y=17976931348623157e292,V=NaN,Z=4294967295,oe=Z-1,Oe=Z>>>1,ze=[["ary",k],["bind",b],["bindKey",T],["curry",R],["curryRight",O],["flip",z],["partial",I],["partialRight",x],["rearg",$]],be="[object Arguments]",Ce="[object Array]",yt="[object AsyncFunction]",ge="[object Boolean]",we="[object Date]",xn="[object DOMException]",mn="[object Error]",Mn="[object Function]",et="[object GeneratorFunction]",Ze="[object Map]",fn="[object Number]",_t="[object Null]",Ln="[object Object]",Mr="[object Promise]",te="[object Proxy]",pr="[object RegExp]",ve="[object Set]",Se="[object String]",gn="[object Symbol]",Bt="[object Undefined]",kn="[object WeakMap]",Zr="[object WeakSet]",G="[object ArrayBuffer]",K="[object DataView]",ne="[object Float32Array]",pe="[object Float64Array]",Pe="[object Int8Array]",mt="[object Int16Array]",Vi="[object Int32Array]",zi="[object Uint8Array]",Du="[object Uint8ClampedArray]",wu="[object Uint16Array]",xu="[object Uint32Array]",JT=/\b__p \+= '';/g,eb=/\b(__p \+=) '' \+/g,tb=/(__e\(.*?\)|\b__t\)) \+\n'';/g,$m=/&(?:amp|lt|gt|quot|#39);/g,Vm=/[&<>"']/g,nb=RegExp($m.source),rb=RegExp(Vm.source),ib=/<%-([\s\S]+?)%>/g,ob=/<%([\s\S]+?)%>/g,zm=/<%=([\s\S]+?)%>/g,ab=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,sb=/^\w*$/,lb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Mu=/[\\^$.*+?()[\]{}|]/g,cb=RegExp(Mu.source),Lu=/^\s+/,ub=/\s/,db=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pb=/\{\n\/\* \[wrapped with (.+)\] \*/,_b=/,? & /,mb=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,fb=/[()=,{}\[\]\/\s]/,gb=/\\(\\)?/g,Eb=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wm=/\w*$/,hb=/^[-+]0x[0-9a-f]+$/i,Sb=/^0b[01]+$/i,Tb=/^\[object .+?Constructor\]$/,bb=/^0o[0-7]+$/i,yb=/^(?:0|[1-9]\d*)$/,Cb=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Tl=/($^)/,Rb=/['\n\r\u2028\u2029\\]/g,bl="\\ud800-\\udfff",Nb="\\u0300-\\u036f",vb="\\ufe20-\\ufe2f",Ob="\\u20d0-\\u20ff",qm=Nb+vb+Ob,Km="\\u2700-\\u27bf",Qm="a-z\\xdf-\\xf6\\xf8-\\xff",Ab="\\xac\\xb1\\xd7\\xf7",Ib="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Db="\\u2000-\\u206f",wb=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Xm="A-Z\\xc0-\\xd6\\xd8-\\xde",jm="\\ufe0e\\ufe0f",Zm=Ab+Ib+Db+wb,ku="['’]",xb="["+bl+"]",Jm="["+Zm+"]",yl="["+qm+"]",ef="\\d+",Mb="["+Km+"]",tf="["+Qm+"]",nf="[^"+bl+Zm+ef+Km+Qm+Xm+"]",Cl="\\ud83c[\\udffb-\\udfff]",rf="(?:"+yl+"|"+Cl+")",Pu="[^"+bl+"]",Rl="(?:\\ud83c[\\udde6-\\uddff]){2}",Nl="[\\ud800-\\udbff][\\udc00-\\udfff]",Wi="["+Xm+"]",Uu="\\u200d",vl="(?:"+tf+"|"+nf+")",Fu="(?:"+Wi+"|"+nf+")",Ol="(?:"+ku+"(?:d|ll|m|re|s|t|ve))?",Bu="(?:"+ku+"(?:D|LL|M|RE|S|T|VE))?",Gu=rf+"?",Al="["+jm+"]?",Qa="(?:"+Uu+"(?:"+[Pu,Rl,Nl].join("|")+")"+Al+Gu+")*",Il="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Yu="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Dl=Al+Gu+Qa,Hu="(?:"+[Mb,Rl,Nl].join("|")+")"+Dl,Lb="(?:"+[Pu+yl+"?",yl,Rl,Nl,xb].join("|")+")",kb=RegExp(ku,"g"),Wx=RegExp(yl,"g"),of=RegExp(Cl+"(?="+Cl+")|"+Lb+Dl,"g"),qx=RegExp([Wi+"?"+tf+"+"+Ol+"(?="+[Jm,Wi,"$"].join("|")+")",Fu+"+"+Bu+"(?="+[Jm,Wi+vl,"$"].join("|")+")",Wi+"?"+vl+"+"+Ol,Wi+"+"+Bu,Yu,Il,ef,Hu].join("|"),"g"),Kx=RegExp("["+Uu+bl+qm+jm+"]"),Qx=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Xx=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],jx=-1,st={};st[ne]=st[pe]=st[Pe]=st[mt]=st[Vi]=st[zi]=st[Du]=st[wu]=st[xu]=!0,st[be]=st[Ce]=st[G]=st[ge]=st[K]=st[we]=st[mn]=st[Mn]=st[Ze]=st[fn]=st[Ln]=st[pr]=st[ve]=st[Se]=st[kn]=!1;var tt={};tt[be]=tt[Ce]=tt[G]=tt[K]=tt[ge]=tt[we]=tt[ne]=tt[pe]=tt[Pe]=tt[mt]=tt[Vi]=tt[Ze]=tt[fn]=tt[Ln]=tt[pr]=tt[ve]=tt[Se]=tt[gn]=tt[zi]=tt[Du]=tt[wu]=tt[xu]=!0,tt[mn]=tt[Mn]=tt[kn]=!1;var Zx={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",Line truncated
/* [wrapped with `+u+`] */
`)}function mk(l){return De(l)||ra(l)||!!(iy&&l&&l[iy])}function yi(l,u){var m=typeof l;return u=u??D,!!u&&(m=="number"||m!="symbol"&&yb.test(l))&&l>-1&&l%1==0&&l<u}function hn(l,u,m){if(!Et(m))return!1;var h=typeof u;return(h=="number"?Un(m)&&yi(u,m.length):h=="string"&&u in m)?Pr(m[u],l):!1}function Wf(l,u){if(De(l))return!1;var m=typeof l;return m=="number"||m=="symbol"||m=="boolean"||l==null||Jn(l)?!0:sb.test(l)||!ab.test(l)||u!=null&&l in Je(u)}function fk(l){var u=typeof l;return u=="string"||u=="number"||u=="symbol"||u=="boolean"?l!=="__proto__":l===null}function qf(l){var u=Ed(l),m=v[u];if(typeof m!="function"||!(u in Ye.prototype))return!1;if(l===m)return!0;var h=$f(m);return!!h&&l===h[0]}function gk(l){return!!ey&&ey in l}var Ek=qu?Ci:ug;function $l(l){var u=l&&l.constructor,m=typeof u=="function"&&u.prototype||es;return l===m}function eC(l){return l===l&&!Et(l)}function tC(l,u){return function(m){return m==null?!1:m[l]===u&&(u!==n||l in Je(m))}}function hk(l){var u=Cd(l,function(h){return m.size===d&&m.clear(),h}),m=u.cache;return u}function Sk(l,u){var m=l[1],h=u[1],C=m|h,A=C<(b|T|k),w=h==k&&m==R||h==k&&m==$&&l[7].length<=u[8]||h==(k|$)&&u[7].length<=u[8]&&m==R;if(!(A||w))return l;h&b&&(l[2]=u[2],C|=m&b?0:y);var L=u[3];if(L){var F=l[3];l[3]=F?Uy(F,L,u[4]):L,l[4]=F?Qi(l[3],p):u[4]}return L=u[5],L&&(F=l[5],l[5]=F?Fy(F,L,u[6]):L,l[6]=F?Qi(l[5],p):u[6]),L=u[7],L&&(l[7]=L),h&k&&(l[8]=l[8]==null?u[8]:on(l[8],u[8])),l[9]==null&&(l[9]=u[9]),l[0]=u[0],l[1]=C,l}function Tk(l){var u=[];if(l!=null)for(var m in Je(l))u.push(m);return u}function bk(l){return Qu.call(l)}function nC(l,u,m){return u=kt(u===n?l.length-1:u,0),function(){for(var h=arguments,C=-1,A=kt(h.length-u,0),w=W(A);++C<A;)w[C]=h[u+C];C=-1;for(var L=W(u+1);++C<u;)L[C]=h[C];return L[u]=m(w),Xn(l,this,L)}}function rC(l,u){return u.length<2?l:ea(l,hr(u,0,-1))}function yk(l,u){for(var m=l.length,h=on(u.length,m),C=Pn(l);h--;){var A=u[h];l[h]=yi(A,m)?C[A]:n}return l}function Kf(l,u){if(!(u==="constructor"&&typeof l[u]=="function")&&u!="__proto__")return l[u]}var iC=aC(Oy),Vl=UM||function(l,u){return Qt.setTimeout(l,u)},Qf=aC(zL);function oC(l,u,m){var h=u+"";return Qf(l,_k(h,Ck(uk(h),m)))}function aC(l){var u=0,m=0;return function(){var h=YM(),C=ue-(h-m);if(m=h,C>0){if(++u>=_e)return arguments[0]}else u=0;return l.apply(n,arguments)}}function Sd(l,u){var m=-1,h=l.length,C=h-1;for(u=u===n?h:u;++m<u;){var A=wf(m,C),w=l[A];l[A]=l[m],l[m]=w}return l.length=u,l}var sC=hk(function(l){var u=[];return l.charCodeAt(0)===46&&u.push(""),l.replace(lb,function(m,h,C,A){u.push(C?A.replace(gb,"$1"):h||m)}),u});function ti(l){if(typeof l=="string"||Jn(l))return l;var u=l+"";return u=="0"&&1/l==-M?"-0":u}function na(l){if(l!=null){try{return Ku.call(l)}catch{}try{return l+""}catch{}}return""}function Ck(l,u){return mr(ze,function(m){var h="_."+m[0];u&m[1]&&!$u(l,h)&&l.push(h)}),l.sort()}function lC(l){if(l instanceof Ye)return l.clone();var u=new gr(l.__wrapped__,l.__chain__);return u.__actions__=Pn(l.__actions__),u.__index__=l.__index__,u.__values__=l.__values__,u}function Rk(l,u,m){(m?hn(l,u,m):u===n)?u=1:u=kt(xe(u),0);var h=l==null?0:l.length;if(!h||u<1)return[];for(var C=0,A=0,w=W(td(h/u));C<h;)w[A++]=hr(l,C,C+=u);return w}function Nk(l){for(var u=-1,m=l==null?0:l.length,h=0,C=[];++u<m;){var A=l[u];A&&(C[h++]=A)}return C}function vk(){var l=arguments.length;if(!l)return[];for(var u=W(l-1),m=arguments[0],h=l;h--;)u[h-1]=arguments[h];return Ki(De(m)?Pn(m):[m],Xt(u,1))}var Ok=ke(function(l,u){return At(l)?Fl(l,Xt(u,1,At,!0)):[]}),Ak=ke(function(l,u){var m=Sr(u);return At(m)&&(m=n),At(l)?Fl(l,Xt(u,1,At,!0),ye(m,2)):[]}),Ik=ke(function(l,u){var m=Sr(u);return At(m)&&(m=n),At(l)?Fl(l,Xt(u,1,At,!0),n,m):[]});function Dk(l,u,m){var h=l==null?0:l.length;return h?(u=m||u===n?1:xe(u),hr(l,u<0?0:u,h)):[]}function wk(l,u,m){var h=l==null?0:l.length;return h?(u=m||u===n?1:xe(u),u=h-u,hr(l,0,u<0?0:u)):[]}function xk(l,u){return l&&l.length?dd(l,ye(u,3),!0,!0):[]}function Mk(l,u){return l&&l.length?dd(l,ye(u,3),!0):[]}function Lk(l,u,m,h){var C=l==null?0:l.length;return C?(m&&typeof m!="number"&&hn(l,u,m)&&(m=0,h=C),vL(l,u,m,h)):[]}function cC(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=m==null?0:xe(m);return C<0&&(C=kt(h+C,0)),Vu(l,ye(u,3),C)}function uC(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=h-1;return m!==n&&(C=xe(m),C=m<0?kt(h+C,0):on(C,h-1)),Vu(l,ye(u,3),C,!0)}function dC(l){var u=l==null?0:l.length;return u?Xt(l,1):[]}function kk(l){var u=l==null?0:l.length;return u?Xt(l,M):[]}function Pk(l,u){var m=l==null?0:l.length;return m?(u=u===n?1:xe(u),Xt(l,u)):[]}function Uk(l){for(var u=-1,m=l==null?0:l.length,h={};++u<m;){var C=l[u];h[C[0]]=C[1]}return h}function pC(l){return l&&l.length?l[0]:n}function Fk(l,u,m){var h=l==null?0:l.length;if(!h)return-1;var C=m==null?0:xe(m);return C<0&&(C=kt(h+C,0)),Xa(l,u,C)}function Bk(l){var u=l==null?0:l.length;return u?hr(l,0,-1):[]}var Gk=ke(function(l){var u=ft(l,Pf);return u.length&&u[0]===l[0]?vf(u):[]}),Yk=ke( Line truncated
`;l.replace(ie,function(Ne,Fe,$e,er,Sn,tr){return $e||($e=er),j+=l.slice(Q,tr).replace(Rb,EM),Fe&&(L=!0,j+=`' +
__e(`+Fe+`) +
'`),Sn&&(F=!0,j+=`';
`+Sn+`;
__p += '`),$e&&(j+=`' +
((__t = (`+$e+`)) == null ? '' : __t) +
'`),Q=tr+Ne.length,Ne}),j+=`';
`;var Re=Qe.call(u,"variable")&&u.variable;if(!Re)j=`with (obj) {
`+j+`
}
`;else if(fb.test(Re))throw new Ae(s);j=(F?j.replace(JT,""):j).replace(eb,"$1").replace(tb,"$1;"),j="function("+(Re||"obj")+`) {
`+(Re?"":`obj || (obj = {});
`)+"var __t, __p = ''"+(L?", __e = _.escape":"")+(F?`, __j = Array.prototype.join;
function print() { __p += __j.call(arguments, '') }
`:`;
`)+j+`return __p
}`;var Me=GC(function(){return qe(A,Ee+"return "+j).apply(n,w)});if(Me.source=j,eg(Me))throw Me;return Me}function $1(l){return Ke(l).toLowerCase()}function V1(l){return Ke(l).toUpperCase()}function z1(l,u,m){if(l=Ke(l),l&&(m||u===n))return Qb(l);if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=Lr(u),A=Xb(h,C),w=jb(h,C)+1;return eo(h,A,w).join("")}function W1(l,u,m){if(l=Ke(l),l&&(m||u===n))return l.slice(0,Jb(l)+1);if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=jb(h,Lr(u))+1;return eo(h,0,C).join("")}function q1(l,u,m){if(l=Ke(l),l&&(m||u===n))return l.replace(Lu,"");if(!l||!(u=Zn(u)))return l;var h=Lr(l),C=Xb(h,Lr(u));return eo(h,C).join("")}function K1(l,u){var m=H,h=ae;if(Et(u)){var C="separator"in u?u.separator:C;m="length"in u?xe(u.length):m,h="omission"in u?Zn(u.omission):h}l=Ke(l);var A=l.length;if(ja(l)){var w=Lr(l);A=w.length}if(m>=A)return l;var L=m-Za(h);if(L<1)return h;var F=w?eo(w,0,L).join(""):l.slice(0,L);if(C===n)return F+h;if(w&&(L+=F.length-L),tg(C)){if(l.slice(L).search(C)){var Q,X=F;for(C.global||(C=Ef(C.source,Ke(Wm.exec(C))+"g")),C.lastIndex=0;Q=C.exec(X);)var j=Q.index;F=F.slice(0,j===n?L:j)}}else if(l.indexOf(Zn(C),L)!=L){var ie=F.lastIndexOf(C);ie>-1&&(F=F.slice(0,ie))}return F+h}function Q1(l){return l=Ke(l),l&&nb.test(l)?l.replace($m,RM):l}var X1=as(function(l,u,m){return l+(m?" ":"")+u.toUpperCase()}),ig=Yy("toUpperCase");function BC(l,u,m){return l=Ke(l),u=m?n:u,u===n?SM(l)?OM(l):uM(l):l.match(u)||[]}var GC=ke(function(l,u){try{return Xn(l,n,u)}catch(m){return eg(m)?m:new Ae(m)}}),j1=bi(function(l,u){return mr(u,function(m){m=ti(m),Si(l,m,Zf(l[m],l))}),l});function Z1(l){var u=l==null?0:l.length,m=ye();return l=u?ft(l,function(h){if(typeof h[1]!="function")throw new fr(a);return[m(h[0]),h[1]]}):[],ke(function(h){for(var C=-1;++C<u;){var A=l[C];if(Xn(A[0],this,h))return Xn(A[1],this,h)}})}function J1(l){return RL(Er(l,_))}function og(l){return function(){return l}}function eU(l,u){return l==null||l!==l?u:l}var tU=$y(),nU=$y(!0);function Bn(l){return l}function ag(l){return Sy(typeof l=="function"?l:Er(l,_))}function rU(l){return by(Er(l,_))}function iU(l,u){return yy(l,Er(u,_))}var oU=ke(function(l,u){return function(m){return Bl(m,l,u)}}),aU=ke(function(l,u){return function(m){return Bl(l,m,u)}});function sg(l,u,m){var h=Gt(u),C=ld(u,h);m==null&&!(Et(u)&&(C.length||!h.length))&&(m=u,u=l,l=this,C=ld(u,Gt(u)));var A=!(Et(m)&&"chain"in m)||!!m.chain,w=Ci(l);return mr(C,function(L){var F=u[L];l[L]=F,w&&(l.prototype[L]=function(){var Q=this.__chain__;if(A||Q){var X=l(this.__wrapped__),j=X.__actions__=Pn(this.__actions__);return j.push({func:F,args:arguments,thisArg:l}),X.__chain__=Q,X}return F.apply(l,Ki([this.value()],arguments))})}),l}function sU(){return Qt._===this&&(Qt._=MM),this}function lg(){}function lU(l){return l=xe(l),ke(function(u){return Cy(u,l)})}var cU=Bf(ft),uU=Bf(Vb),dU=Bf(uf);function YC(l){return Wf(l)?df(ti(l)):YL(l)}function pU(l){return function(u){return l==null?n:ea(l,u)}}var _U=zy(),mU=zy(!0);function cg(){return[]}function ug(){return!1}function fU(){return{}}function gU(){return""}function EU(){return!0}function hU(l,u){if(l=xe(l),l<1||l>D)return[];var m=Z,h=on(l,Z);u=ye(u),l-=Z;for(var C=mf(h,u);++m<l;)u(m);return C}function SU(l){return De(l)?ft(l,ti):Jn(l)?[l]:Pn(sC(Ke(l)))}function TU(l){var u=++wM;return Ke(l)+u}var bU=md(function(l,u){return l+u},0),yU=Gf("ceil"),CU=md(function(l,u){return l/u},1),RU=Gf("floor");function NU(l){return l&&l.length?sd(l,Bn,Nf):n}function vU(l,u){return l&&l.length?sd(l,ye(u,2),Nf):n}function OU(l){return qb(l,Bn)}function AU(l,u){return qb(l,ye(u,2))}function IU(l){return l&&l.length?sd(l,Bn,If):n}function DU(l,u){return l&&l.length?sd(l,ye(u,2),If):n}var wU=md(function(l,u){return l*u},1),xU=Gf("round"),MU=md(function(l,u){return l-u},0);function LU(l){return l&&l.length?_f(l,Bn):0}function kU(l,u){return l&&l.length?_f(l,ye(u,2)):0}return v.after=r0,v.ary=hC,v.assign=V0,v.assignIn=xC,v.assignInWith=Od,v.assignWith=z0,v.at=W0,v.before=SC,v.bind=Zf,v.bindAll=j1,v.bindKey=TC,v.castArray=f0,v.chain=fC,v.chunk=Rk,v.compact=Nk,v.concat=vk,v.cond=Z1,v.conforms=J1,v.constant=og,v.countBy=LP,v.create=q0,v.curry=bC,v.curryRight=yC,v.debounce=CC,v.defaults=K0,v.defaultsDeep=Q0,v.defer=i0,v.delay=o0,v.difference=Ok,v.differenceBy=Ak,v.differenceWith=Ik,v.drop=Dk,v.dropRight=wk,v.dropRightWhile=xk,v.dropWhile=Mk,v.fill=Lk,v.filter=PP,v.flatMap=BP,v.flatMapDeep=GP,v.flatMapDepth=YP,v.flatten=dC,v.flattenDeep=kk,v.flattenDepth=Pk,v.flip=a0,v.flow=tU,v.flowRight=nU,v.fromPairs=Uk,v.functions=n1,v.functionsIn=r1,v.groupBy=HP,v.initial=Bk,v.intersection=Gk,v.intersectionBy=Yk,v.intersectionWith=Hk,v.invert=o1,v.invertBy=a1,v.invokeMap=VP,v.iteratee=ag,v.keyBy=zP,v.keys=Gt,v.keysIn=Fn,v.map=bd,v.mapKeys=l1,v.mapValues=c1,v.matches=rU,v.matchesProperty=iU,v.memoize=Cd,v.merge=u1,v.mergeWith=MC,v.method=oU,v.methodOf=aU,v.mixin=sg,v.negate=Rd,v.nthArg=lU,v.omit=d1,v.omitBy=p1,v.once=s0,v.orderBy=WP,v.over=cU,v.overArgs=l0,v.overEvery=uU,v.overSome=dU, Line truncated
`);return!o||!a?!1:e.chain().command(({tr:s})=>(s.delete(r.pos-2,r.pos),!0)).exitCode().run()},ArrowDown:({editor:e})=>{if(!this.options.exitOnArrowDown)return!1;const{state:t}=e,{selection:n,doc:r}=t,{$from:i,empty:o}=n;if(!o||i.parent.type!==this.type||!(i.parentOffset===i.parent.nodeSize-2))return!1;const s=i.after();return s===void 0||r.nodeAt(s)?!1:e.commands.exitCode()}}},addInputRules(){return[$h({find:KV,type:this.type,getAttributes:e=>({language:e[1]})}),$h({find:QV,type:this.type,getAttributes:e=>({language:e[1]})})]},addProseMirrorPlugins(){return[new pt({key:new at("codeBlockVSCodeHandler"),props:{handlePaste:(e,t)=>{if(!t.clipboardData||this.editor.isActive(this.type.name))return!1;const n=t.clipboardData.getData("text/plain"),r=t.clipboardData.getData("vscode-editor-data"),i=r?JSON.parse(r):void 0,o=i==null?void 0:i.mode;if(!n||!o)return!1;const{tr:a,schema:s}=e.state,c=s.text(n.replace(/\r\n?/g,`
`));return a.replaceSelectionWith(this.type.create({language:o},c)),a.selection.$from.parent.type!==this.type&&a.setSelection(Ie.near(a.doc.resolve(Math.max(0,a.selection.from-2)))),a.setMeta("paste",!0),e.dispatch(a),!0}}})]}});function jV(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function gw(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&gw(n)}),e}let fv=class{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Ew(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function yo(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const ZV="</span>",gv=e=>!!e.scope,JV=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};let ez=class{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=Ew(t)}openNode(t){if(!gv(t))return;const n=JV(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){gv(t)&&(this.buffer+=ZV)}value(){return this.buffer}span(t){this.buffer+=`<span class="${t}">`}};const Ev=(e={})=>{const t={children:[]};return Object.assign(t,e),t};let tz=class hw{constructor(){this.rootNode=Ev(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=Ev({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{hw._collapse(n)}))}},nz=class extends tz{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new ez(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function iu(e){return e?typeof e=="string"?e:e.source:null}function Sw(e){return Wa("(?=",e,")")}function rz(e){return Wa("(?:",e,")*")}function iz(e){return Wa("(?:",e,")?")}function Wa(...e){return e.map(n=>iu(n)).join("")}function oz(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function RT(...e){return"("+(oz(e).capture?"":"?:")+e.map(r=>iu(r)).join("|")+")"}function Tw(e){return new RegExp(e.toString()+"|").exec("").length-1}function az(e,t){const n=e&&e.exec(t);return n&&n.index===0}const sz=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function NT(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let o=iu(r),a="";for(;o.length>0;){const s=sz.exec(o);if(!s){a+=o;break}a+=o.substring(0,s.index),o=o.substring(s.index+s[0].length),s[0][0]==="\\"&&s[1]?a+="\\"+String(Number(s[1])+i):(a+=s[0],s[0]==="("&&n++)}return a}).map(r=>`(${r})`).join(t)}const lz=/\b\B/,bw="[a-zA-Z]\\w*",vT="[a-zA-Z_]\\w*",yw="\\b\\d+(\\.\\d+)?",Cw="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Rw="\\b(0b[01]+)",cz="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",uz=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=Wa(t,/.*\b/,e.binary,/\b.*/)),yo({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},ou={begin:"\\\\[\\s\\S]",relevance:0},dz={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ou]},pz={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ou]},_z={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Fm=function(e,t,n={}){const r=yo({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=RT("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:Wa(/[ ] Line truncated
https://github.com/highlightjs/highlight.js/issues/2277`),Z=M,V=D),Y===void 0&&(Y=!0);const oe={code:V,language:Z};he("before:highlight",oe);const Oe=oe.result?oe.result:_(oe.language,oe.code,Y);return Oe.code=oe.code,he("after:highlight",Oe),Oe}function _(M,D,Y,V){const Z=Object.create(null);function oe(G,K){return G.keywords[K]}function Oe(){if(!te.keywords){ve.addText(Se);return}let G=0;te.keywordPatternRe.lastIndex=0;let K=te.keywordPatternRe.exec(Se),ne="";for(;K;){ne+=Se.substring(G,K.index);const pe=_t.case_insensitive?K[0].toLowerCase():K[0],Pe=oe(te,pe);if(Pe){const[mt,Vi]=Pe;if(ve.addText(ne),ne="",Z[pe]=(Z[pe]||0)+1,Z[pe]<=Vz&&(gn+=Vi),mt.startsWith("_"))ne+=K[0];else{const zi=_t.classNameAliases[mt]||mt;Ce(K[0],zi)}}else ne+=K[0];G=te.keywordPatternRe.lastIndex,K=te.keywordPatternRe.exec(Se)}ne+=Se.substring(G),ve.addText(ne)}function ze(){if(Se==="")return;let G=null;if(typeof te.subLanguage=="string"){if(!t[te.subLanguage]){ve.addText(Se);return}G=_(te.subLanguage,Se,!0,pr[te.subLanguage]),pr[te.subLanguage]=G._top}else G=g(Se,te.subLanguage.length?te.subLanguage:null);te.relevance>0&&(gn+=G.relevance),ve.__addSublanguage(G._emitter,G.language)}function be(){te.subLanguage!=null?ze():Oe(),Se=""}function Ce(G,K){G!==""&&(ve.startScope(K),ve.addText(G),ve.endScope())}function yt(G,K){let ne=1;const pe=K.length-1;for(;ne<=pe;){if(!G._emit[ne]){ne++;continue}const Pe=_t.classNameAliases[G[ne]]||G[ne],mt=K[ne];Pe?Ce(mt,Pe):(Se=mt,Oe(),Se=""),ne++}}function ge(G,K){return G.scope&&typeof G.scope=="string"&&ve.openNode(_t.classNameAliases[G.scope]||G.scope),G.beginScope&&(G.beginScope._wrap?(Ce(Se,_t.classNameAliases[G.beginScope._wrap]||G.beginScope._wrap),Se=""):G.beginScope._multi&&(yt(G.beginScope,K),Se="")),te=Object.create(G,{parent:{value:te}}),te}function we(G,K,ne){let pe=az(G.endRe,ne);if(pe){if(G["on:end"]){const Pe=new fv(G);G["on:end"](K,Pe),Pe.isMatchIgnored&&(pe=!1)}if(pe){for(;G.endsParent&&G.parent;)G=G.parent;return G}}if(G.endsWithParent)return we(G.parent,K,ne)}function xn(G){return te.matcher.regexIndex===0?(Se+=G[0],1):(Zr=!0,0)}function mn(G){const K=G[0],ne=G.rule,pe=new fv(ne),Pe=[ne.__beforeBegin,ne["on:begin"]];for(const mt of Pe)if(mt&&(mt(G,pe),pe.isMatchIgnored))return xn(K);return ne.skip?Se+=K:(ne.excludeBegin&&(Se+=K),be(),!ne.returnBegin&&!ne.excludeBegin&&(Se=K)),ge(ne,G),ne.returnBegin?0:K.length}function Mn(G){const K=G[0],ne=D.substring(G.index),pe=we(te,G,ne);if(!pe)return bv;const Pe=te;te.endScope&&te.endScope._wrap?(be(),Ce(K,te.endScope._wrap)):te.endScope&&te.endScope._multi?(be(),yt(te.endScope,G)):Pe.skip?Se+=K:(Pe.returnEnd||Pe.excludeEnd||(Se+=K),be(),Pe.excludeEnd&&(Se=K));do te.scope&&ve.closeNode(),!te.skip&&!te.subLanguage&&(gn+=te.relevance),te=te.parent;while(te!==pe.parent);return pe.starts&&ge(pe.starts,G),Pe.returnEnd?0:K.length}function et(){const G=[];for(let K=te;K!==_t;K=K.parent)K.scope&&G.unshift(K.scope);G.forEach(K=>ve.openNode(K))}let Ze={};function fn(G,K){const ne=K&&K[0];if(Se+=G,ne==null)return be(),0;if(Ze.type==="begin"&&K.type==="end"&&Ze.index===K.index&&ne===""){if(Se+=D.slice(K.index,K.index+1),!i){const pe=new Error(`0 width match regex (${M})`);throw pe.languageName=M,pe.badRule=Ze.rule,pe}return 1}if(Ze=K,K.type==="begin")return mn(K);if(K.type==="illegal"&&!Y){const pe=new Error('Illegal lexeme "'+ne+'" for mode "'+(te.scope||"<unnamed>")+'"');throw pe.mode=te,pe}else if(K.type==="end"){const pe=Mn(K);if(pe!==bv)return pe}if(K.type==="illegal"&&ne==="")return 1;if(kn>1e5&&kn>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Se+=ne,ne.length}const _t=z(M);if(!_t)throw Ia(o.replace("{}",M)),new Error('Unknown language: "'+M+'"');const Ln=Gz(_t);let Mr="",te=V||Ln;const pr={},ve=new s.__emitter(s);et();let Se="",gn=0,Bt=0,kn=0,Zr=!1;try{if(_t.__emitTokens)_t.__emitTokens(D,ve);else{for(te.matcher.considerAll();;){kn++,Zr?Zr=!1:te.matcher.considerAll(),te.matcher.lastIndex=Bt;const G=te.matcher.exec(D);if(!G)break;const K=D.substring(Bt,G.index),ne=fn(K,G);Bt=G.index+ne}fn(D.substring(Bt))}return ve.finalize(),Mr=ve.toHTML(),{language:M,value:Mr,relevance:gn,illegal:!1,_emitter:ve,_top:te}}catch(G){if(G.message&&G.message.includes("Illegal"))return{language:M,value:aE(D),illegal:!0,relevance:0,_illegalBy:{message:G.message,index:Bt,context:D.slice(Bt-100,Bt+100),mode:G.mode,resultSoFar:Mr},_emitter:ve};if(i)return{language:M,value:aE(D),illegal:!1,relevance:0,errorRaised:G,_emitter:ve,_top:te};throw G}}function f(M){const D={value:aE(M),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return D._emitter.addText(M),D}function g(M,D){D=D||s.languages||Object.keys(t);const Y=f(M),V=D.filter(z).filter(ae).map(be=>_(be,M,!1));V.unshift(Y);const Z=V.sort((be,Ce)=>{if(be.relevance!==Ce.relevance)return Ce.relevance-be.relevance;if(be.language&&Ce.language){if(z(be.language).supersetOf===Ce.language)return 1;if(z(Ce.language).supersetOf===be.language)return-1}return 0}),[oe,Oe]=Z, Line truncated
]*;`,relevance:0},{begin:"[vp][0-9]+"}]}}function MK(e){const t="[a-z][a-zA-Z0-9_]*",n={className:"string",begin:"\\$.{1}"},r={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:["self","super","nil","true","false","thisContext"],contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:t+":",relevance:0},e.C_NUMBER_MODE,r,n,{begin:"\\|[ ]*"+t+"([ ]+"+t+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+t}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,n,e.C_NUMBER_MODE,r]}]}}function LK(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}function kK(e){const t={className:"variable",begin:/\b_+[a-zA-Z]\w*/},n={className:"title",begin:/[a-zA-Z][a-zA-Z_0-9]*_fnc_[a-zA-Z_0-9]+/},r={className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]},{begin:"'",end:"'",contains:[{begin:"''",relevance:0}]}]},i=["break","breakWith","breakOut","breakTo","case","catch","continue","continueWith","default","do","else","exit","exitWith","for","forEach","from","if","local","private","switch","step","then","throw","to","try","waitUntil","while","with"],o=["blufor","civilian","configNull","controlNull","displayNull","diaryRecordNull","east","endl","false","grpNull","independent","lineBreak","locationNull","nil","objNull","opfor","pi","resistance","scriptNull","sideAmbientLife","sideEmpty","sideEnemy","sideFriendly","sideLogic","sideUnknown","taskNull","teamMemberNull","true","west"],a=["abs","accTime","acos","action","actionIDs","actionKeys","actionKeysEx","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","actionParams","activateAddons","activatedAddons","activateKey","activeTitleEffectParams","add3DENConnection","add3DENEventHandler","add3DENLayer","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addBinocularItem","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addForce","addForceGeneratorRTD","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addonFiles","addOwnedMine","addPlayerScores","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addTorque","addUniform","addUserActionEventHandler","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponItem","addWeaponPool","addWeaponTurret","addWeaponWithAttachmentsCargo","addWeaponWithAttachmentsCargoGlobal","admin","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityCurveRTD","airDensityRTD","airplaneThrottle","airportSide","AISFinishHeal","alive","all3DENEntities","allActiveTitleEffects","allAddonsInfo","allAirports","allControls","allCurators","allCutLayers","allDead","allDeadMen","allDiaryRecords","allDiarySubjects","allDisplays","allEnv3DSoundSources","allGroups","allLODs","allMapMarkers","allMines","allMissionObjects","allObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowedService","allowFileOperations","allowFleeing","allowGetIn","allowService","allowSprint","allPlayers","allSimpleObjects","allSites","allTurrets","allUnits","allUnitsUAV","allUsers","allVariables","ambientTemperature","ammo","ammoOnPylon","and","animate","animateBay","animateDoor","animatePylon","animateSouLine truncated
]*?"'`},{begin:`"[^\r
"]*"`}]},{className:"built_in",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\()"}]},e.COMMENT("^[ ]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}function FK(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:["HEADER","ENDSEC","DATA"]},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}const BK=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),GK=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],YK=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],HK=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],$K=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],VK=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","backgrou Line truncated
(multipart)?`,end:`\\]
`},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}function qK(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\\[()]/},{begin:/\(/,end:/\)/,contains:[{begin:/\\[()]/},"self"]}],relevance:10},{className:"keyword",begin:/\$[_a-zA-Z0-9]+(?=\()/},{className:"variable",begin:/%[_a-zA-Z0-9:]+%/},{className:"symbol",begin:/\\[\\nt$%,()]/},{className:"symbol",begin:/\\u[a-fA-F0-9]{4}/}]}}function KK(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}function QK(e){const t=e.regex,n=/[a-zA-Z_][a-zA-Z0-9_]*/,r={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:["after","append","apply","array","auto_execok","auto_import","auto_load","auto_mkindex","auto_mkindex_old","auto_qualify","auto_reset","bgerror","binary","break","catch","cd","chan","clock","close","concat","continue","dde","dict","encoding","eof","error","eval","exec","exit","expr","fblocked","fconfigure","fcopy","file","fileevent","filename","flush","for","foreach","format","gets","glob","global","history","http","if","incr","info","interp","join","lappend|10","lassign|10","lindex|10","linsert|10","list","llength|10","load","lrange|10","lrepeat|10","lreplace|10","lreverse|10","lsearch|10","lset|10","lsort|10","mathfunc","mathop","memory","msgcat","namespace","open","package","parray","pid","pkg::create","pkg_mkIndex","platform","platform::shell","proc","puts","pwd","read","refchan","regexp","registry","regsub|10","rename","return","safe","scan","seek","set","socket","source","split","string","subst","switch","tcl_endOfWord","tcl_findLibrary","tcl_startOfNextWord","tcl_startOfPreviousWord","tcl_wordBreakAfter","tcl_wordBreakBefore","tcltest","tclvars","tell","time","tm","trace","unknown","unload","unset","update","uplevel","upvar","variable","vwait","while"],contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:t.concat(/\$/,t.optional(/::/),n,"(::",n,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[r]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r]}}function XK(e){const t=["bool","byte","i16","i32","i64","double","string","binary"];return{name:"Thrift",keywords:{keyword:["namespace","const","typedef","struct","enum","service","exception","void","oneway","set","list","map","required","optional"],type:t,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",keywords:{type:[...t,"set","list","map"]},end:">",contains:["self"]}]}}function jK(e){const t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"symbol",begin:":[^\\]]+"},r={className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},i={className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]};return{name:"TP",keywords:{keyword:["ABORT","ACC","ADJUST","AND","AP_LD","BREAK","CALL","CNT","COL","CONDITION","CONFIG","DA","DB","DIV","DETECT","ELSE","END","ENDFOR","ERR_NUM","ERROR_PROG","FINE","FOR","GP","GUARD","INC","IF","JMP","LINEAR_MAX_SPEED","LOCK","MOD","MONITOR","OFFSET","Offset","OR","OVERRIDE","PAUSE","PREG","PTH","RT_LD","RUN","SELECT","SKIP","Skip","TA","TB","TO","TOOL_OFFSET","Tool_Offset","UF","UT","UFRAME_NUM","UTOOL_NUM","UNLOCK","WAIT","X","Y","Z","W","P","R","STRLEN","SUBSTR","FINDSTR","VOFFSET","PROG","ATTR","MN","POS"],literal:["ON","OFF","max_speed","LPOS","JPOS","ENABLE","DISABLE","START","STOP","RESET"]},contains:[r,i,{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT Line truncated
`},d]}}const P3=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}),U3=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],F3=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],kw=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],Pw=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],B3=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","fon Line truncated
]`,g={scope:"string",variants:[d,c,p,_]},E={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},S=["false","null","true"],b=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],T=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],R={keyword:b,literal:(ue=>{const me=[];return ue.forEach(he=>{me.push(he),he.toLowerCase()===he?me.push(he.toUpperCase()):me.push(he.toLowerCase())}),me})(S),built_in:T},O=ue=>ue.map(me=>me.replace(/\|\d+$/,"")),I={variants:[{match:[/new/,t.concat(f,"+"),t.concat("(?!",O(T).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},x=t.concat(r,"\\b(?!\\()"),k={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),x],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),x],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},$={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},z={relevance:0,begin:/\(/,end:/\)/,keywords:R,contains:[$,o,k,e.C_BLOCK_COMMENT_MODE,g,E,I]},H={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",O(b).join("\\b|"),"|",O(T).join("\\b|"),"\\b)"),r,t.concat(f,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[z]};z.contains.push(H);const ae=[$,k,e.C_BLOCK_COMMENT_MODE,g,E,I],_e={begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:S,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:S,keyword:["new","array"]},contains:["self",...ae]},...ae,{scope:"meta",match:i}]};return{case_insensitive:!1,keywords:R,contains:[_e,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},o,H,k,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},I,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:R,contains:["self",o,k,e.C_BLOCK_COMMENT_MODE,g,E]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trai Line truncated
https://github.com/highlightjs/highlight.js/issues/2277`),Z=M,V=D),Y===void 0&&(Y=!0);const oe={code:V,language:Z};he("before:highlight",oe);const Oe=oe.result?oe.result:_(oe.language,oe.code,Y);return Oe.code=oe.code,he("after:highlight",Oe),Oe}function _(M,D,Y,V){const Z=Object.create(null);function oe(G,K){return G.keywords[K]}function Oe(){if(!te.keywords){ve.addText(Se);return}let G=0;te.keywordPatternRe.lastIndex=0;let K=te.keywordPatternRe.exec(Se),ne="";for(;K;){ne+=Se.substring(G,K.index);const pe=_t.case_insensitive?K[0].toLowerCase():K[0],Pe=oe(te,pe);if(Pe){const[mt,Vi]=Pe;if(ve.addText(ne),ne="",Z[pe]=(Z[pe]||0)+1,Z[pe]<=f4&&(gn+=Vi),mt.startsWith("_"))ne+=K[0];else{const zi=_t.classNameAliases[mt]||mt;Ce(K[0],zi)}}else ne+=K[0];G=te.keywordPatternRe.lastIndex,K=te.keywordPatternRe.exec(Se)}ne+=Se.substring(G),ve.addText(ne)}function ze(){if(Se==="")return;let G=null;if(typeof te.subLanguage=="string"){if(!t[te.subLanguage]){ve.addText(Se);return}G=_(te.subLanguage,Se,!0,pr[te.subLanguage]),pr[te.subLanguage]=G._top}else G=g(Se,te.subLanguage.length?te.subLanguage:null);te.relevance>0&&(gn+=G.relevance),ve.__addSublanguage(G._emitter,G.language)}function be(){te.subLanguage!=null?ze():Oe(),Se=""}function Ce(G,K){G!==""&&(ve.startScope(K),ve.addText(G),ve.endScope())}function yt(G,K){let ne=1;const pe=K.length-1;for(;ne<=pe;){if(!G._emit[ne]){ne++;continue}const Pe=_t.classNameAliases[G[ne]]||G[ne],mt=K[ne];Pe?Ce(mt,Pe):(Se=mt,Oe(),Se=""),ne++}}function ge(G,K){return G.scope&&typeof G.scope=="string"&&ve.openNode(_t.classNameAliases[G.scope]||G.scope),G.beginScope&&(G.beginScope._wrap?(Ce(Se,_t.classNameAliases[G.beginScope._wrap]||G.beginScope._wrap),Se=""):G.beginScope._multi&&(yt(G.beginScope,K),Se="")),te=Object.create(G,{parent:{value:te}}),te}function we(G,K,ne){let pe=wQ(G.endRe,ne);if(pe){if(G["on:end"]){const Pe=new Iv(G);G["on:end"](K,Pe),Pe.isMatchIgnored&&(pe=!1)}if(pe){for(;G.endsParent&&G.parent;)G=G.parent;return G}}if(G.endsWithParent)return we(G.parent,K,ne)}function xn(G){return te.matcher.regexIndex===0?(Se+=G[0],1):(Zr=!0,0)}function mn(G){const K=G[0],ne=G.rule,pe=new Iv(ne),Pe=[ne.__beforeBegin,ne["on:begin"]];for(const mt of Pe)if(mt&&(mt(G,pe),pe.isMatchIgnored))return xn(K);return ne.skip?Se+=K:(ne.excludeBegin&&(Se+=K),be(),!ne.returnBegin&&!ne.excludeBegin&&(Se=K)),ge(ne,G),ne.returnBegin?0:K.length}function Mn(G){const K=G[0],ne=D.substring(G.index),pe=we(te,G,ne);if(!pe)return kv;const Pe=te;te.endScope&&te.endScope._wrap?(be(),Ce(K,te.endScope._wrap)):te.endScope&&te.endScope._multi?(be(),yt(te.endScope,G)):Pe.skip?Se+=K:(Pe.returnEnd||Pe.excludeEnd||(Se+=K),be(),Pe.excludeEnd&&(Se=K));do te.scope&&ve.closeNode(),!te.skip&&!te.subLanguage&&(gn+=te.relevance),te=te.parent;while(te!==pe.parent);return pe.starts&&ge(pe.starts,G),Pe.returnEnd?0:K.length}function et(){const G=[];for(let K=te;K!==_t;K=K.parent)K.scope&&G.unshift(K.scope);G.forEach(K=>ve.openNode(K))}let Ze={};function fn(G,K){const ne=K&&K[0];if(Se+=G,ne==null)return be(),0;if(Ze.type==="begin"&&K.type==="end"&&Ze.index===K.index&&ne===""){if(Se+=D.slice(K.index,K.index+1),!i){const pe=new Error(`0 width match regex (${M})`);throw pe.languageName=M,pe.badRule=Ze.rule,pe}return 1}if(Ze=K,K.type==="begin")return mn(K);if(K.type==="illegal"&&!Y){const pe=new Error('Illegal lexeme "'+ne+'" for mode "'+(te.scope||"<unnamed>")+'"');throw pe.mode=te,pe}else if(K.type==="end"){const pe=Mn(K);if(pe!==kv)return pe}if(K.type==="illegal"&&ne==="")return 1;if(kn>1e5&&kn>K.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Se+=ne,ne.length}const _t=z(M);if(!_t)throw Da(o.replace("{}",M)),new Error('Unknown language: "'+M+'"');const Ln=d4(_t);let Mr="",te=V||Ln;const pr={},ve=new s.__emitter(s);et();let Se="",gn=0,Bt=0,kn=0,Zr=!1;try{if(_t.__emitTokens)_t.__emitTokens(D,ve);else{for(te.matcher.considerAll();;){kn++,Zr?Zr=!1:te.matcher.considerAll(),te.matcher.lastIndex=Bt;const G=te.matcher.exec(D);if(!G)break;const K=D.substring(Bt,G.index),ne=fn(K,G);Bt=G.index+ne}fn(D.substring(Bt))}return ve.finalize(),Mr=ve.toHTML(),{language:M,value:Mr,relevance:gn,illegal:!1,_emitter:ve,_top:te}}catch(G){if(G.message&&G.message.includes("Illegal"))return{language:M,value:dE(D),illegal:!0,relevance:0,_illegalBy:{message:G.message,index:Bt,context:D.slice(Bt-100,Bt+100),mode:G.mode,resultSoFar:Mr},_emitter:ve};if(i)return{language:M,value:dE(D),illegal:!1,relevance:0,errorRaised:G,_emitter:ve,_top:te};throw G}}function f(M){const D={value:dE(M),illegal:!1,relevance:0,_top:a,_emitter:new s.__emitter(s)};return D._emitter.addText(M),D}function g(M,D){D=D||s.languages||Object.keys(t);const Y=f(M),V=D.filter(z).filter(ae).map(be=>_(be,M,!1));V.unshift(Y);const Z=V.sort((be,Ce)=>{if(be.relevance!==Ce.relevance)return Ce.relevance-be.relevance;if(be.language&&Ce.language){if(z(be.language).supersetOf===Ce.language)return 1;if(z(Ce.language).supersetOf===be.language)return-1}return 0}),[oe,Oe]=Z, Line truncated
`);return!r||!i?!1:!!e.chain().command(({tr:o})=>(o.delete(t.pos-2,t.pos),!0)).exitCode().run()}function I4(){if(this.options.codeMode)return!1;const{empty:e,$anchor:t}=this.editor.state.selection,n=t.pos===1;return!e||t.parent.type.name!==this.name?!1:n||!t.parent.textContent.length?!!this.editor.commands.clearNodes():!1}function D4({editor:e}){const t=e.state.selection.$from.parent.textContent.slice(0,e.state.selection.$from.parentOffset);return(t==null?void 0:t.split(`
`))||[]}const MT=["arduino","bash","c","cpp","csharp","css","diff","go","graphql","ini","java","javascript","json","kotlin","less","lua","makefile","markdown","objectivec","perl","php","php-template","plaintext","python","python-repl","r","ruby","rust","scss","shell","sql","swift","typescript","vbnet","wasm","xml","yaml","ipsphtml","ipscss"],w4=dt.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:e}){return["li",We(this.options.HTMLAttributes,e),0]},addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),cu=w4.extend({parseHTML(){return[{tag:"li",getAttrs:e=>{var t;if(((t=e.childNodes)==null?void 0:t.length)>1){const n=document.createElement("div");n.innerHTML=e.innerHTML,e.innerHTML="",e.appendChild(n)}return null}}]}});function Vt(e,t="",n=!0){const r=i=>{t&&(i.message=t+": "+i.message),window.Debug[n?"warn":"error"](i)};try{const i=e();return i instanceof Promise?new Promise(o=>{i.catch(r).finally(()=>o(!1))}):!0}catch(i){return r(i),!1}}const Kn=OT.extend({addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this)}},addAttributes(){var e;return{language:{default:this.options.defaultLanguage||((e=this.options.allowedLanguages)==null?void 0:e[0])||"plaintext",parseHTML:t=>{var r,i;const n=(r=(()=>{if(t.hasAttribute("language"))return t.getAttribute("language");for(const o of t.classList)if(o.match(/^language-([a-z0-9\-_]+)$/i))return o.match(/^language-([a-z0-9\-_]+)$/i)[1];for(const o of t.querySelectorAll("code")){if(o.hasAttribute("language"))return o.getAttribute("language");for(const a of o.classList)if(a.match(/^language-([a-z0-9\-_]+)$/i))return a.match(/^language-([a-z0-9\-_]+)$/i)[1]}})())==null?void 0:r.toLowerCase();return this.options.codeMode&&(!n||!MT.includes(n)||n!==this.options.defaultLanguage&&this.options.allowedLanguages&&!this.options.allowedLanguages.includes(n))?this.options.defaultLanguage||((i=this.options.allowedLanguages)==null?void 0:i[0])||"plaintext":n}}}},addOptions(){var e;return{...(e=this.parent)==null?void 0:e.call(this),codeMode:!1,allowedLanguages:null}},renderHTML({HTMLAttributes:e}){var n;const t=this.options.codeMode?this.editor.options.lastLang||((n=this.editor.options.allowedLanguages)==null?void 0:n[0])||"plaintext":e.language;return["pre",{spellcheck:"false",class:`${this.options.codeMode?"":"ipsCode "}language-${t}`,"data-language":sl[t]||t},["code",{},0]]},onUpdate({editor:e}){this.options.codeMode&&e.options.lastLang&&e.options.lastLang!==e.getAttributes(this).language&&e.chain().setCodeBlock({language:e.options.lastLang}).run()},addKeyboardShortcuts(){const e=this.editor;return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{var o;if(!e.state.selection.empty||((o=e.state.selection.$from.parent)==null?void 0:o.type.name)!==this.name)return!1;if(I4.call(this))return!0;if(!this.options.codeMode&&(!e.state.selection.$from.parent.attrs.language||["plaintext","bash","shell","zsh","sh"].includes(e.state.selection.$from.parent.attrs.language)))return!1;const n=e.state.selection.$from.parent.textContent.slice(0,e.state.selection.$from.parentOffset),r=e.state.selection.$from.parent.textContent.slice(e.state.selection.$from.parentOffset);if(n&&r){for(const a in Ht)if(n.endsWith(a)&&r.startsWith(Ht[a]))return e.chain().deleteRange({from:e.state.selection.from-a.length,to:e.state.selection.from+Ht[a].length}).setTextSelection(e.state.selection.from-a.length).focus().run()}const i=n.match(/(\t)[^\n]*(\n\t+)$/);return i?e.chain().deleteRange({from:e.state.selection.from-i[2].length,to:e.state.selection.from}).setTextSelection(e.state.selection.from-i[2].length).focus().run():!1},Enter:({editor:t})=>{var y,R,O,I,x,k,$,z,H,ae,_e;if(A4.call(this,{editor:t}))return!0;const{$from:r}=t.state.selection,{parent:i}=r;if(!t.state.selection.empty||(i==null?void 0:i.type.name)!==this.name||!this.options.codeMode&&(!i.attrs.language||["plaintext","bash","shell","zsh","sh"].includes(i.attrs.language)))return!1;const o=D4({editor:t});if(!o.length)return!1;const a=o[o.length-1],s=o[o.length-2];let c=((R=(y=a.match(/^\t*/))==null?void 0:y[0])==null?void 0:R.length)||0,d=!1;const p=i.attrs.language,_=["ipsphtml","xml","html","xhtml","html5"].includes(p),f=["ipscss","css","scss","sass","less"].includes(p),g=["plaintext","rtf","markdown","md","bbcode"].includes(p),E=_?/(<[^>/]*>)$/:/([{[(.:]|->)$/,S=_?/(<\/[^/>]*>)$/:/^\s*([}\])]+[,;]?)$/;let b=!1;if(!_&&!f&&!g&&a.match(/^\s+(\.|->)?[a-z0-9_-]/i))if(a.match(/^\s+(\.|->)/))b=!0,c--;else{let ue=1;for(;ue<o.length&&((x=(I=(O=o[o.length-1-ue])==null?void 0:O.match(/^\t*/))==null?void 0:I[0])==null?void 0:x.length)<=c;)ue++;(k=o[o.length-ue])!=null&&k.match(/(\.|->)\s*$/)&&(b=!0,c--)}let T=!1 Line truncated
`+" ".repeat(c);d?(ue-=a.length,he=a.replace(/^\t/,"")+he):T&&(me=`
`+(c>1?" ".repeat(c-1):""),he+=me);let se=this.editor.chain().insertContentAt({from:ue,to:t.state.selection.from},{type:"text",text:he});return me&&(se=se.setTextSelection(t.state.selection.from+he.length-me.length)),se.focus().run()}return!1},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown||this.options.codeMode)return!1;const{state:n}=t,{selection:r,doc:i}=n,{$from:o,empty:a}=r;if(!a||o.parent.type!==this.type||!(o.parentOffset===o.parent.nodeSize-2))return!1;const c=o.after();return c===void 0||i.nodeAt(c)?!1:!!t.commands.exitCode()},ArrowUp:x4.bind(this),Tab:op.bind(this,!1,{editor:e}),"Shift-Tab":op.bind(this,!0,{editor:e}),"Alt-Tab":op.bind(this,!1,{editor:e},!0),"Shift-Alt-Tab":op.bind(this,!0,{editor:e},!0)}},addProseMirrorPlugins(){var t;const e={};for(const n in Ht)e[Ht[n]]=n;return[...((t=this.parent)==null?void 0:t.call(this))||[],new pt({key:new at("ipsCodeModeSyntaxHelpers"),props:{handleKeyDown:(n,r)=>{var o;if(!(r instanceof KeyboardEvent)||r.metaKey||r.altKey)return;const i=this.editor;if(((o=r.key)==null?void 0:o.toLowerCase())in Ht)return r.key.toLowerCase()in e&&Pv({editor:i,opener:r.key.toLowerCase()})?!0:!!M4({editor:i,char:r.key.toLowerCase()});if(r.key.toLowerCase()in e)return!!Pv({editor:i,opener:e[r.key.toLowerCase()]})}}})]}});function x4({editor:e}){if(e.options.codeMode)return!1;const{$from:t,empty:n}=e.state.selection;if(t.nodeBefore||!n||t.parent.type!==this.type)return!1;let r=0,i;for(const a of[...t.path].reverse()){if(!Number.isInteger(a)&&(r++,r===2))break;i=a}return!r||!Number.isInteger(i)||i!==0||!(t.parentOffset===0)?!1:(e.chain().insertContentAt(t.before(),"<p>&nbsp;</p>",{updateSelection:!0}).run(),!0)}function op(e=!1,{editor:t=null},n=!1){var r,i,o,a;if((!t.state.selection.empty||e)&&t.isActive(this.name)&&(t.options.codeMode||[...t.state.selection.$from.path].reverse()[3]===[...t.state.selection.$to.path].reverse()[3]))return t.state.selection.empty&&e&&t.state.selection.$from.parentOffset===0||Vt(()=>{t.chain().command(({tr:s,chain:c})=>{var d,p,_,f;try{const{from:g,to:E}=t.state.selection,S=[...t.state.selection.$from.path].reverse()[3]+1;let b=g;if(b>[...t.state.selection.$from.path].reverse()[3]){for(;b>[...t.state.selection.$from.path].reverse()[3]&&!((d=s.doc.slice(b-1,b--).content.content[0])!=null&&d.textContent.startsWith(`
`)););b++}const T=((p=s.doc.slice(b,E).content.content[0])==null?void 0:p.textContent)||"",y=g-b,R=T.split(`
`),O=R.map(k=>e?k.replace(/^\t/,""):" "+k).join(`
`);let I=!1;try{e&&R.length>1&&R[R.length-1].match(/^\t/)&&((f=(_=s.doc.slice(E,E+1))==null?void 0:_.content.content[0])==null?void 0:f.textContent)===" "&&(I=!0)}catch{}s.insertText(O,b,E);const x={from:b+y,to:b+O.length};e&&T.startsWith(" ")?x.from--:e||x.from++,I&&x.to++,S>x.from&&(x.from=S),c().setTextSelection(x).focus().run()}catch{}return!0}).run()},"Something went wrong when modifying indents in a codeblock selection"),!0;if(!n&&t.isActive(cu.name))return!1;if(t.state.selection.empty){if(e){if(t.state.selection.$from.parentOffset>0){const s=t.state.doc.slice(t.state.selection.from-1,t.state.selection.from);if(((i=(r=s==null?void 0:s.content)==null?void 0:r.content[0])==null?void 0:i.textContent)===" "){const{from:c}=t.state.selection;return t.chain().command(({tr:d})=>(d.deleteRange(c-1,c),!0)).setTextSelection({from:c-1,to:c-1}).run(),!0}}if(t.state.selection.$from.parentOffset<t.state.selection.$from.parent.nodeSize-2){const s=t.state.doc.slice(t.state.selection.from,t.state.selection.from+1);if(((a=(o=s==null?void 0:s.content)==null?void 0:o.content[0])==null?void 0:a.textContent)===" "){const{from:c}=t.state.selection;return t.chain().command(({tr:d})=>(d.deleteRange(c,c+1),!0)).setTextSelection({from:c,to:c}).run(),!0}}}}else return!0;return t.chain().insertContent(" ").focus().run(),!0}function M4({editor:e,char:t}){var _,f,g;if(!(t in Ht))return!1;const{$from:n,$to:r}=e.state.selection,i=n.parent,o=r.parent;if(((_=i==null?void 0:i.type)==null?void 0:_.name)!==OT.name||i!==o)return!1;if(e.state.selection.empty)return e.chain().insertContent(`${t}${Ht[t]}`).setTextSelection(e.state.selection.from+t.length).focus().run();const a=i.textContent;let s=a.slice(n.parentOffset,r.parentOffset);if(!s)return!1;if(['"',"'","`"].includes(t)){const E=new RegExp(`(^|[^\\\\])\\${t}`,"g");s=s.replaceAll(E,`$1\\${t}`).replaceAll(/\n/g,"\\n")}let c="",d=0;if(s.match(/\n/)){const S=a.slice(0,n.parentOffset).split(`
`).pop(),b=a.slice(r.parentOffset).split(`
`).shift();let T=Math.max(0,((g=(f=S.match(/^\t*/))==null?void 0:f[0])==null?void 0:g.length)+1);S.match(/^\t*$/)&&b.match(/^\t+$/)&&(T+=b.match(/^\t+$/)[0].length),b.match(/^\s*$/)&&(s=s.replace(/^\s*?\n\s*(.?)/,"$1")),d=T+1;const y=" ".repeat(T),R=new RegExp(`\\n\\t{0,${T?T-1:0}}`,"g");if(s=s.replaceAll(R,`
${y}`),s=`${t}
${y}${s}
${y?y.slice(0,y.length-1):""}${Ht[t]}`,r.parentOffset<a.length)try{const O=a.slice(r.parentOffset,r.parentOffset+1);O!=null&&O.match(/\n/)||(c=`
`+(y?y.slice(0,y.length-1):""),s+=c)}catch{}}else s=`${t}${s}${Ht[t]}`;const p={from:e.state.selection.from+t.length+d,to:e.state.selection.from+s.length-Ht[t].length-c.length-(d?d-1:0)};return e.chain().insertContentAt({from:e.state.selection.from,to:e.state.selection.to},{type:"text",text:s}).setTextSelection(p).focus().run()}function Pv({editor:e,opener:t}){var o;if(!(t in Ht)||!e.state.selection.empty)return!1;const{$from:n}=e.state.selection,r=n.parent;if((r==null?void 0:r.type.name)!==OT.name)return!1;const i=(o=n.parent)==null?void 0:o.textContent;if(n.parentOffset<1||n.parentOffset>=i.length)return!1;try{const a=n.parentOffset;let s=i==null?void 0:i.slice(a,a+Ht[t].length);if(!s)return;if(s.startsWith(Ht[t]))return a>0&&['"',"'","`"].includes(t)&&(i==null?void 0:i[a-1])==="\\"?e.chain().insertContent({type:"text",text:Ht[t]}).focus().run():e.chain().setTextSelection(e.state.selection.from+Ht[t].length).focus().run()}catch{return!1}return!1}const Ht={"{":"}","[":"]","(":")","'":"'",'"':'"',"`":"`"},ic={};function dx(e,t,n=[]){var r;if(!((r=ic[e])!=null&&r.to)){let i=!1;if(e===t)i=[e];else if(e in Ro){const o=[e];if(t in Ro[e])o.push(t);else{let a;n=[...n,...o];for(const s in Ro[e])if(!(n.includes(s)||s===e)&&Ro[s]){const c=dx(s,t,n);Array.isArray(c)&&(!a||a.length>c.length)&&(a=c)}Array.isArray(a)&&o.splice(1,0,...a)}o.length&&o[o.length-1]===t&&(i=o)}e in ic||(ic[e]={}),ic[e][t]=i}return ic[e][t]}function L4(e,t,n){const r=dx(e,t);if(!Array.isArray(r))throw new RangeError(`Cannot convert ${e} to ${t} because there is not a known conversion pathway`);r.length===1&&e===pn.name&&n.chain().toggleHeading({level:n.level||1});for(let i=0;i<r.length-1;i++){const o=Ro[r[i]][r[i+1]](n);if(o!==void 0&&!o)throw new Error(`Could not convert ${r[i]} to ${r[i+1]}`)}return!0}function LT(e){const t=[...e.state.selection.$from.path].reverse()[2],n=t==null?void 0:t.type.name;return n===pn.name?[n,{level:t.attrs.level||1}]:[n||"",{}]}function Mp(e){var n;if(e[0]===pn.name)return`Heading ${((n=e[1])==null?void 0:n.level)||""}`;const t=e[0]in Zh?e[0]:Nt.name;return Zh[t]}function k4(e){if(e in Uv)return[Uv[e],{}];const t=Mp([pn.name,{}]);if(e.startsWith(t)){const n=parseInt(e.replace("Heading","").trim())||1;return[pn.name,{level:n}]}return[Nt.name,{}]}const Zh={[Hi.name]:"Ordered List",[Yo.name]:"Bullet List",[Kn.name]:"Code Block",[Nt.name]:"Paragraph"},Uv=Object.fromEntries([...Object.entries(Zh)].map(e=>e.reverse()));function P4(e){for(let t of pn.options.levels)if(e.isActive(pn.name,{level:t}))return{level:t};return null}function px(e){const t=LT(e);return t[0]in Ro?U4(...t).filter(n=>{var r,i;return(n[0]!==pn.name||!((r=e.options.restrictions)!=null&&r.has("heading")))&&!(n[0]===pn.name&&n[1].level===1&&((i=e.options.restrictions)!=null&&i.has("heading_1")))}):[]}const oc={};function U4(e,t={}){const n=JSON.stringify({name:e,attributes:t});if(!(n in oc)){const r=_x(e);oc[n]=[];for(const i of r)if(i===pn.name)for(let o=1;o<=6;o++)oc[n].push([pn.name,{level:o}]);else oc[n].push([i,{}])}return oc[n]}function _x(e,t){if(t=t||new Set,t.add(e),e in Ro)for(const n in Ro[e])t.has(n)||_x(n,t);return t}const Ro={[Nt.name]:{[Kn.name]:({chain:e})=>e().setCodeBlock(),[pn.name]:({chain:e,level:t=1})=>e().setHeading({level:t})},[Kn.name]:{[Nt.name]:({chain:e})=>e().toggleCodeBlock()},[pn.name]:{[Nt.name]:({chain:e,editor:t,level:n})=>{var r;return n=n||((r=P4(t))==null?void 0:r.level),n?e().toggleHeading({level:n}):!1}}};function F4({...e}){const{editor:t}=B.useContext(Ue),n=LT(t);return e.dropdownOptions=e.dropdownOptions||{},e.dropdownOptions.className=e.dropdownOptions.className||"",e.dropdownOptions.className=[...e.dropdownOptions.className.split(/\s+/),"ipsRichText"].join(" "),N.jsx(za,{current:N.jsx(N.Fragment,{children:N.jsx("i",{className:"fa-solid fa-paragraph"})}),currentValue:Mp(n),blank:N.jsx(Fv,{block:[Nt.title,{}]}),items:px(t).map(r=>[Mp(r),N.jsx(Fv,{block:r},Mp(r))]),onChange:r=>{const i=k4(r);t.chain().command(o=>L4(n[0],i[0],{...i[1]||{},...o})).focus().run()},...e,dropdownOptions:{...e.dropdownOptions,location:"se"}})}function Fv({block:e,style:t=!0}){if(e[0]===pn.name){const n=`h${e[1].level}`;return t?N.jsxs(n,{children:["Heading ",e[1].level]}):N.jsxs(N.Fragment,{children:["Heading ",e[1].level]})}return e[0]===Kn.name?t?N.jsx("code",{children:"Code Block"}):N.jsx(N.Fragment,{children:"Code Block"}):N.jsx(N.Fragment,{children:"Paragraph"})}const uu=Ft.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(e){return e!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:e}){return["sub",We(this.options.HTMLAttributes,e),0]},addCommands(){return{setSubscript:()=>({commands:e})=>e.setMark(this.name),toggleSubscript:()=>({commands:e})=>e.toggleMark(this.name),unsetSubscript:()=>({commands:e})=>e.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),du=Ft.create({name:"superscript",addOptionsLine truncated
`,q4="️",K4="‍";let sp=null,lp=null;function Q4(e){e===void 0&&(e=[]);const t={};Hn.groups=t;const n=new Hn;sp==null&&(sp=$v(Y4)),lp==null&&(lp=$v(H4)),re(n,"'",H_),re(n,"{",Ic),re(n,"}",Dc),re(n,"[",O_),re(n,"]",A_),re(n,"(",I_),re(n,")",D_),re(n,"<",w_),re(n,">",x_),re(n,"(",M_),re(n,")",L_),re(n,"「",k_),re(n,"」",P_),re(n,"『",U_),re(n,"』",F_),re(n,"<",B_),re(n,">",G_),re(n,"&",Y_),re(n,"*",$_),re(n,"@",uo),re(n,"`",z_),re(n,"^",W_),re(n,":",go),re(n,",",UT),re(n,"$",q_),re(n,".",oi),re(n,"=",K_),re(n,"!",FT),re(n,"-",ai),re(n,"%",Q_),re(n,"|",X_),re(n,"+",j_),re(n,"#",Z_),re(n,"?",J_),re(n,'"',BT),re(n,"/",si),re(n,";",GT),re(n,"~",wc),re(n,"_",em),re(n,"\\",V_);const r=br(n,mE,kT,{[Jh]:!0});br(r,mE,r);const i=br(n,fs,Ai,{[eS]:!0});br(i,fs,i);const o=br(n,pE,rS,{[tS]:!0});br(o,fs),br(o,pE,o);const a=br(n,Yv,fx,{[Bv]:!0});re(n,Hv,PT,{[Bv]:!0}),re(a,Hv),br(a,Yv,a);const s=br(n,_E,gx,{[mx]:!0});br(s,_E,s),re(s,q4,s);const c=re(s,K4);br(c,_E,s);const d=[[fs,i]],p=[[fs,null],[pE,o]];for(let _=0;_<sp.length;_++)ro(n,sp[_],iS,Ai,d);for(let _=0;_<lp.length;_++)ro(n,lp[_],oS,rS,p);Ta(iS,{tld:!0,ascii:!0},t),Ta(oS,{utld:!0,alpha:!0},t),ro(n,"file",kp,Ai,d),ro(n,"mailto",kp,Ai,d),ro(n,"http",Ts,Ai,d),ro(n,"https",Ts,Ai,d),ro(n,"ftp",Ts,Ai,d),ro(n,"ftps",Ts,Ai,d),Ta(kp,{scheme:!0,ascii:!0},t),Ta(Ts,{slashscheme:!0,ascii:!0},t),e=e.sort((_,f)=>_[0]>f[0]?1:-1);for(let _=0;_<e.length;_++){const f=e[_][0],E=e[_][1]?{[$4]:!0}:{[V4]:!0};f.indexOf("-")>=0?E[nS]=!0:fs.test(f)?mE.test(f)?E[Lp]=!0:E[eS]=!0:E[Jh]=!0,Gv(n,f,f,E)}return Gv(n,"localhost",pu,{ascii:!0}),n.jd=new Hn(tm),{start:n,tokens:Ya({groups:t},Ex)}}function X4(e,t){const n=j4(t.replace(/[A-Z]/g,s=>s.toLowerCase())),r=n.length,i=[];let o=0,a=0;for(;a<r;){let s=e,c=null,d=0,p=null,_=-1,f=-1;for(;a<r&&(c=s.go(n[a]));)s=c,s.accepts()?(_=0,f=0,p=s):_>=0&&(_+=n[a].length,f++),d+=n[a].length,o+=n[a].length,a++;o-=_,a-=f,d-=_,i.push({t:p.t,v:t.slice(o-d,o),s:o-d,e:o})}return i}function j4(e){const t=[],n=e.length;let r=0;for(;r<n;){let i=e.charCodeAt(r),o,a=i<55296||i>56319||r+1===n||(o=e.charCodeAt(r+1))<56320||o>57343?e[r]:e.slice(r,r+2);t.push(a),r+=a.length}return t}function ro(e,t,n,r,i){let o;const a=t.length;for(let s=0;s<a-1;s++){const c=t[s];e.j[c]?o=e.j[c]:(o=new Hn(r),o.jr=i.slice(),e.j[c]=o),e=o}return o=new Hn(n),o.jr=i.slice(),e.j[t[a-1]]=o,o}function $v(e){const t=[],n=[];let r=0,i="0123456789";for(;r<e.length;){let o=0;for(;i.indexOf(e[r+o])>=0;)o++;if(o>0){t.push(n.join(""));for(let a=parseInt(e.substring(r,r+o),10);a>0;a--)n.pop();r+=o}else n.push(e[r]),r++}return t}const ll={defaultProtocol:"http",events:null,format:Vv,formatHref:Vv,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function Gm(e,t){t===void 0&&(t=null);let n=Ya({},ll);e&&(n=Ya(n,e instanceof Gm?e.o:e));const r=n.ignoreTags,i=[];for(let o=0;o<r.length;o++)i.push(r[o].toUpperCase());this.o=n,t&&(this.defaultRender=t),this.ignoreTags=i}Gm.prototype={o:ll,ignoreTags:[],defaultRender(e){return e},check(e){return this.get("validate",e.toString(),e)},get(e,t,n){const r=t!=null;let i=this.o[e];return i&&(typeof i=="object"?(i=n.t in i?i[n.t]:ll[e],typeof i=="function"&&r&&(i=i(t,n))):typeof i=="function"&&r&&(i=i(t,n.t,n)),i)},getObj(e,t,n){let r=this.o[e];return typeof r=="function"&&t!=null&&(r=r(t,n.t,n)),r},render(e){const t=e.render(this);return(this.get("render",null,e)||this.defaultRender)(t,e.t,e)}};function Vv(e){return e}var Z4=Object.freeze({__proto__:null,defaults:ll,Options:Gm,assign:Ya});function hx(e,t){this.t="token",this.v=e,this.tk=t}hx.prototype={isLink:!1,toString(){return this.v},toHref(e){return this.toString()},toFormattedString(e){const t=this.toString(),n=e.get("truncate",t,this),r=e.get("format",t,this);return n&&r.length>n?r.substring(0,n)+"…":r},toFormattedHref(e){return e.get("formatHref",this.toHref(e.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(e){return e===void 0&&(e=ll.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(e),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(e){return{type:this.t,value:this.toFormattedString(e),isLink:this.isLink,href:this.toFormattedHref(e),start:this.startIndex(),end:this.endIndex()}},validate(e){return e.get("validate",this.toString(),this)},render(e){const t=this,n=this.toHref(e.get("defaultProtocol")),r=e.get("formatHref",n,this),i=e.get("tagName",n,t),o=this.toFormattedString(e),a={},s=e.get("className",n,t),c=e.get("target",n,t),d=e.get("rel",n,t),p=e.getObj("attributes",n,t),_=e.getObj("events",n,t);return a.href=r,s&&(a.class=s),c&&(a.target=c),d&&(a.rel=d),p&&Ya(a,p),{tagName:i,attributes:a,content:o,eventListeners:_}}};function Ym(e,t){class n extends hx{constructor(i,o){super(i,o),this.t=e}}for(const r in t)n.prototype[r]=t[r];return n.t=e,n}const zv=Ym("email",{isLink:!0,toHref(){return"mailto:Line truncated
1. Must only contain digits, lowercase ASCII letters or "-"
2. Cannot start or end with "-"
3. "-" cannot repeat`);ht.customSchemes.push([e,t])}function o5(){ht.scanner=Q4(ht.customSchemes);for(let e=0;e<ht.tokenQueue.length;e++)ht.tokenQueue[e][1]({scanner:ht.scanner});ht.parser=e5(ht.scanner.tokens);for(let e=0;e<ht.pluginQueue.length;e++)ht.pluginQueue[e][1]({scanner:ht.scanner,parser:ht.parser});ht.initialized=!0}function Sx(e){return ht.initialized||o5(),t5(ht.parser.start,e,X4(ht.scanner.start,e))}function YT(e,t,n){if(t===void 0&&(t=null),n===void 0&&(n=null),t&&typeof t=="object"){if(n)throw Error(`linkifyjs: Invalid link type ${t}; must be a string`);n=t,t=null}const r=new Gm(n),i=Sx(e),o=[];for(let a=0;a<i.length;a++){const s=i[a];s.isLink&&(!t||s.t===t)&&r.check(s)&&o.push(s.toFormattedObject(r))}return o}function a5(e){return e.length===1?e[0].isLink:e.length===3&&e[1].isLink?["()","[]"].includes(e[0].value+e[2].value):!1}function s5(e){return new pt({key:new at("autolink"),appendTransaction:(t,n,r)=>{const i=t.some(d=>d.docChanged)&&!n.doc.eq(r.doc),o=t.some(d=>d.getMeta("preventAutolink"));if(!i||o)return;const{tr:a}=r,s=v$(n.doc,[...t]);if(L$(s).forEach(({newRange:d})=>{const p=A$(r.doc,d,g=>g.isTextblock);let _,f;if(p.length>1?(_=p[0],f=r.doc.textBetween(_.pos,_.pos+_.node.nodeSize,void 0," ")):p.length&&r.doc.textBetween(d.from,d.to," "," ").endsWith(" ")&&(_=p[0],f=r.doc.textBetween(_.pos,d.to,void 0," ")),_&&f){const g=f.split(" ").filter(T=>T!=="");if(g.length<=0)return!1;const E=g[g.length-1],S=_.pos+f.lastIndexOf(E);if(!E)return!1;const b=Sx(E).map(T=>T.toObject(e.defaultProtocol));if(!a5(b))return!1;b.filter(T=>T.isLink).map(T=>({...T,from:S+T.start+1,to:S+T.end+1})).filter(T=>r.schema.marks.code?!r.doc.rangeHasMark(T.from,T.to,r.schema.marks.code):!0).filter(T=>e.validate(T.value)).forEach(T=>{yT(T.from,T.to,r.doc).some(y=>y.mark.type===e.type)||a.addMark(T.from,T.to,e.type.create({href:T.href}))})}}),!!a.steps.length)return a}})}function l5(e){return new pt({key:new at("handleClickLink"),props:{handleClick:(t,n,r)=>{var i,o;if(r.button!==0)return!1;let a=r.target;const s=[];for(;a.nodeName!=="DIV";)s.push(a),a=a.parentNode;if(!s.find(f=>f.nodeName==="A"))return!1;const c=bT(t.state,e.type.name),d=r.target,p=(i=d==null?void 0:d.href)!==null&&i!==void 0?i:c.href,_=(o=d==null?void 0:d.target)!==null&&o!==void 0?o:c.target;return d&&p?(window.open(p,_),!0):!1}}})}function c5(e){return new pt({key:new at("handlePasteLink"),props:{handlePaste:(t,n,r)=>{const{state:i}=t,{selection:o}=i,{empty:a}=o;if(a)return!1;let s="";r.content.forEach(d=>{s+=d.textContent});const c=YT(s,{defaultProtocol:e.defaultProtocol}).find(d=>d.isLink&&d.value===s);return!s||!c?!1:(e.editor.commands.setMark(e.type,{href:c.href}),!0)}}})}const u5=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g,d5=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i;function Kv(e){return!e||e.replace(u5,"").match(d5)}const ac=Ft.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.protocols.forEach(e=>{if(typeof e=="string"){qv(e);return}qv(e.scheme,e.optionalSlashes)})},onDestroy(){i5()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},validate:e=>!!e}},addAttributes(){return{href:{default:null},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:e=>{const t=e.getAttribute("href");return!t||!Kv(t)?!1:{href:t}}}]},renderHTML({HTMLAttributes:e}){return Kv(e.href)?["a",We(this.options.HTMLAttributes,e),0]:["a",We(this.options.HTMLAttributes,{...e,href:""}),0]},addCommands(){return{setLink:e=>({chain:t})=>t().setMark(this.name,e).setMeta("preventAutolink",!0).run(),toggleLink:e=>({chain:t})=>t().toggleMark(this.name,e,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run(),unsetLink:()=>({chain:e})=>e().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[Go({find:e=>{const t=[];if(e){const{validate:n}=this.options,r=YT(e).filter(i=>i.isLink&&n(i.value));r.length&&r.forEach(i=>t.push({text:i.value,data:{href:i.href},index:i.start}))}return t},type:this.type,getAttributes:e=>{var t;return{href:(t=e.data)===null||t===void 0?void 0:t.href}}})]},addProseMirrorPlugins(){const e=[];return this.options.autolink&&e.push(s5({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:this.options.validate})),this.options.openOnClick&&e.push(l5({type:this.type})),this.options.linkOnPaste&&e.push(c5({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type})),e}}),Qr=dt.create({name:"text",group:"inline"}),nt=ac.extend({addAttributes(){var e;return{...(e=this.parent)==null?void 0:e.call(this),tempid:{default:null}}},addKeyboardShortcuts(){var t;const e=n=>({ Line truncated
`},addCommands(){return{setHardBreak:()=>({commands:e,chain:t,state:n,editor:r})=>e.first([()=>e.exitCode(),()=>e.command(()=>{const{selection:i,storedMarks:o}=n;if(i.$from.parent.type.spec.isolating)return!1;const{keepMarks:a}=this.options,{splittableMarks:s}=r.extensionManager,c=o||i.$to.parentOffset&&i.$from.marks();return t().insertContent({type:this.name}).command(({tr:d,dispatch:p})=>{if(p&&c&&a){const _=c.filter(f=>s.includes(f.type.name));d.ensureMarks(_)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),Pp=dt.create({name:"doc",topNode:!0,content:"block+"}),Bx=vt.create({name:"ipsAutosave",addCommands(){return{clearAutosave:()=>({editor:e,chain:t})=>(e.options.autoSaveKey&&(window.ips.utils.db.remove("editorSave",e.options.autoSaveKey),t().hideMessage("autosave").run()),!0)}},onUpdate(){this.storage.updateCallback()},onCreate(){var e,t;if(this.storage.updateCallback=lr.debounce(()=>{var n;(n=this.editor)!=null&&n.options.autoSaveKey&&(this.editor.getHTML().trim()&&this.editor.getHTML()!=="<p></p>"?window.ips.utils.db.set("editorSave",this.editor.options.autoSaveKey,{content:this.editor.getHTML(),time:Math.round(Date.now()/1e3)}):this.editor.commands.clearAutosave(),this.editor.commands.hideMessage("autosave"))},500),(e=this.editor)!=null&&e.options.autoSaveKey){const n=window.ips.utils.db.get("editorSave",this.editor.options.autoSaveKey);if((t=n==null?void 0:n.content)!=null&&t.trim()&&(!n.time||Date.now()/1e3-86400*3<parseInt(n.time))){const r=new DOMParser().parseFromString(n.content,"text/html");if(!(r.body.innerText.trim().length||r.body.querySelector("iframe,img,video,audio,a,embed,.ipsEmoji,.ipsEmbeddedVideo,.ipsEmbeddedBrightcove,.ipsEmbeddedOther,.ipsEmbeddedPhoto")))return;this.storage.initial=this.editor.getHTML(),this.editor.chain().setContent(n.content).command(({tr:i,chain:o})=>(!i.docChanged||Gx(i.doc)?o().undo().hideMessage("autosave").run():o().showMessage("autosave").focus().run(),!0)).run()}}},addStorage(){return{initial:"",updateCallback:()=>{}}}});function Gx(e){var t,n,r;return e.textContent==="<p></p>"?!0:!((t=e.textContent)!=null&&t.trim().length||![Pp.name,Nt.name,Qr.name,gu.name].includes(e.type.name)||(r=(n=e.content)==null?void 0:n.content)!=null&&r.length&&!e.content.content.some(i=>!Gx(i)))}function A9(){const{editor:e}=B.useContext(Ue);return N.jsxs(N.Fragment,{children:["The content was restored from an automatically saved draft. Click to ",N.jsx("button",{className:"ipsEditor__autosave-clear",onClick:()=>e.chain().clearAutosave().setContent(e.storage[Bx.name].initial||"").focus().run(),children:"clear draft."})]})}function I9({positions:e="",href:t}){const{editor:n}=B.useContext(Ue),r=()=>{if(!e.length){n.commands.hideMessage("autoembed");return}let i=n.chain();for(const o of e)i=i.command(({tr:a,chain:s})=>s().insertContentAt({from:Math.max(0,a.mapping.map(o[0])),to:Math.min(a.doc.nodeSize-2,a.mapping.map(o[1]))},`<a href="${encodeURI(t)}" >${o[2]}</a>`));i.hideMessage("autoembed").focus().run()};return N.jsxs(N.Fragment,{children:["A URL was inserted as embedded content. Click to ",N.jsx("button",{className:"ipsEditor__autosave-clear",onClick:r,children:"insert as link"})," instead."]})}function lO({name:e}){const{editor:t}=B.useContext(Ue);return N.jsxs("div",{className:`ipsEditor__global-message ipsEditor__global-message--${e}`,children:[N.jsxs("div",{className:"ipsEditor__global-message-content",children:[N.jsx("i",{className:"fa-solid fa-circle-info"}),"  ",N.jsx(D9,{name:e})]}),N.jsx("button",{className:"ipsEditor__global-message-close",onClick:()=>t==null?void 0:t.commands.hideMessage(e),children:N.jsx("i",{className:"fa-solid fa-times-circle"})})]})}function D9({name:e}){const{messages:t}=B.useContext(lS),n=t.get(e);switch(e){case"autosave":return N.jsx(A9,{});case"autoembed":return N.jsx(I9,{...n});default:return typeof n=="string"&&n?N.jsx("span",{"data-ipseditorcustommessage":"true",dangerouslySetInnerHTML:{__html:n}}):N.jsx(N.Fragment,{children:"This is a global message!"})}}const lS=B.createContext({messages:new Map,addMessage(e,t=""){this.messages.set(e,t)},removeMessage(e){this.messages.has(e)&&this.messages.delete(e)}});function w9({children:e}){var c;const[t,n]=B.useState(()=>new Map),[r,i]=B.useState(!1),{editor:o}=B.useContext(Ue),a=B.useMemo(()=>({messages:t,addMessage:(d,p="")=>{if(!t.has(d)||t.get(d)!==p){t.set(d,p);const _=new Map;for(const[f,g]of t.entries())_.set(f,g);n(_)}},removeMessage:d=>{if(t.has(d)){t.delete(d);const p=new Map;for(const[_,f]of t.entries())p.set(_,f);n(p)}},onVisibilityChange(d=!1){d!==r&&i(d)},visible:r}),[t,n,r,i]);if(B.useEffect(()=>{!o.options.codeMode&&!o.options.simpleRichText&&o.can().registerMessageInterface(a)&&(o==null||o.commands.registerMessageInterface(a))},[a,o]),o.options.codeMode||o.options.simpleRichText)return N.jsx(N.Fragment,{children:e});const s=[...t.keys()];return o.options.messagesCLine truncated
`+t.message,window.Debug.error(t),gp=null}).finally(()=>{for(const t of EO)t(gp),EO.delete(t);e(gp)})})}const h6=vt.create({name:"ipsMessages",addCommands(){let e={_messages:new Map,addMessage(n,r=""){this._messages.set(n,r)},removeMessage(n){this._messages.delete(n)},get messages(){return this._messages},onVisibilityChange(n){t=n}},t=!1;return{showMessage:(n,r="")=>()=>{e==null||e.addMessage(n,r)},hideMessage:n=>()=>{e==null||e.removeMessage(n)},registerMessageInterface:n=>()=>{var i,o,a;if(Object.is(n,e))return!1;let r=!1;for(const s in n)if(!Object.is(n[s],e[s])){r=!0;break}if(!r)return!1;if(e.messages instanceof Map)for(const s of e.messages.keys())(o=(i=n==null?void 0:n.messages)==null?void 0:i.has)!=null&&o.call(i,s)&&n.messages.get(s)===e.messages.get(s)||n.addMessage(s,e.messages.get(s));(!("visible"in n)||n.visible!==t)&&((a=n.onVisibilityChange)==null||a.call(n,t)),e=n},fireVisibilityChange:n=>()=>{var r;t=!!n,(r=e==null?void 0:e.onVisibilityChange)==null||r.call(e,t)}}}}),S6=({key:e,editor:t,onPaste:n,onDrop:r,allowedMimeTypes:i})=>new pt({key:e||new at("fileHandler"),props:{handleDrop(o,a){var s;if(!r||!(!((s=a.dataTransfer)===null||s===void 0)&&s.files.length))return!1;const c=o.posAtCoords({left:a.clientX,top:a.clientY});let d=Array.from(a.dataTransfer.files);return i&&(d=d.filter(p=>i.includes(p.type))),d.length!==0&&(a.preventDefault(),a.stopPropagation(),r(t,d,(c==null?void 0:c.pos)||0),!0)},handlePaste(o,a){var s;if(!n||!(!((s=a.clipboardData)===null||s===void 0)&&s.files.length))return!1;let c=Array.from(a.clipboardData.files);const d=a.clipboardData.getData("text/html");return i&&(c=c.filter(p=>i.includes(p.type))),c.length!==0&&(a.preventDefault(),a.stopPropagation(),n(t,c,d),!(d.length>0))}}}),T6=vt.create({name:"fileHandler",addOptions:()=>({onPaste:void 0,onDrop:void 0,allowedMimeTypes:void 0}),addProseMirrorPlugins(){return[S6({key:new at(this.name),editor:this.editor,allowedMimeTypes:this.options.allowedMimeTypes,onDrop:this.options.onDrop,onPaste:this.options.onPaste})]}});function b6({mimeTypes:e,handler:t}){let n;Array.isArray(e)&&(n=new Set(e.map(i=>i.toLowerCase())));const r=i=>{const o=i instanceof DragEvent?i.dataTransfer:i.clipboardData;if(o.files.length){const a=[];for(const s of o.files)(!n||n.has(s.type.toLowerCase()))&&a.push(s);if(a.length)return t(a),!0}};return new pt({key:new at("ipsDataTransferFixer"),props:{handlePaste:(i,o)=>r(o),handleDrop:(i,o)=>r(o)}})}const y6=T6.extend({addCommands(){var e;return{...(e=this.parent)==null?void 0:e.call(this),injectAttachments:t=>({editor:n,chain:r})=>{var o;let i=r();for(const a of t){const s=Math.round(Math.random()*Math.pow(10,8));let c=!1;i=i.insertContent({type:ot.name,attrs:{attachmentType:"file",attachmentSrc:"",attachmentLink:"",fileId:s,attachmentTitle:"Uploading Attachment..."}}),(o=C6(n.options.postkey))==null||o.dispatchEvent(new R6({file:a,data:{ready:d=>{if(c)return;c=!0;const p=HT(n.$doc,s);p.length&&n.commands.command(({tr:_,chain:f})=>{let g=f();for(const{to:E,from:S}of p)g=g.insertContentAt({from:_.mapping.map(S),to:_.mapping.map(E)},d,{parseOptions:{preserveWhitespace:!1}});return!0})},error:d=>{c||(c=!0,d instanceof Error&&(d.message=`File upload failed:
${d.message}`,window.Debug.warn(d),n.commands.showMessage("file-attach","Couldn't insert one or more files pasted or dropped in the editor.")),n.commands.removeAttachment(s))}}}))}return i.run(),!0}}},addProseMirrorPlugins(){var e;return[b6({mimeTypes:this.options.allowedMimeTypes,handler:t=>this.options.onPaste(this.editor,t)}),...((e=this.parent)==null?void 0:e.call(this))||[]]}}).configure({onPaste(e,t){return e.commands.injectAttachments(t),!0},onDrop(e,t){return e.commands.injectAttachments(t),!0}});function C6(e){return!e||typeof e!="string"?null:document.querySelector(`[data-ipsuploader-postkey="${e}"]`)}class R6 extends Event{constructor(t){super("injectFile"),this.data=t}}const N6=["name","group","isInline","isBlock","isText","selectable","exitable","atom","addOptions","addKeyboardShortcuts","addAttributes","addGlobalAttributes","renderHTML","parseHTML","onCreate","onUpdate","onBeforeCreate","onFocus","onBlur","onBeforeCreate","onSelectionUpdate","onDestroy","onTransaction","priority","defaultOptions","addInputRules","marks","addNodeView","whitespace","defining","isolating","renderText"];function v6(e,t){var s,c,d;if(!e.ipsPlugins){e.ipsPlugins={buttons:{},extensions:[],nodes:[],marks:[]};return}e.ipsPlugins.buttons={},Array.isArray((s=e.ipsPlugins)==null?void 0:s.extensions)?a(e.ipsPlugins.extensions,vt):e.ipsPlugins.extensions=[],Array.isArray((c=e.ipsPlugins)==null?void 0:c.nodes)?a(e.ipsPlugins.nodes,dt):e.ipsPlugins.nodes=[],Array.isArray((d=e.ipsPlugins)==null?void 0:d.marks)?a(e.ipsPlugins.marks,Ft):e.ipsPlugins.marks=[],e.ipsPlugins.nestedToolbars={},e.pluginButtonKeys=new Set;const n=new Set(e.tools.toolbar);for(const p in e.ipsPlugins.buttons)for(const{before:_,after:f}of e.ipsPlugins.buttons[p].locations){let g,E=!1;if(typeof f=="string"&&f in oO){const S=oO[f];e.ipsPlugins.nestedToolbars[S]=e.ipsPlugins.nestedToolbars[S]||[...cl[S]],e.ipsPlugins.nestedToolbars[S].push(`custom:${p}`),E=!0}else if(typeof f=="string"&&n.has(f))g=e.tools.toolbar.indexOf(f)+1;else if(typeof _=="string"&&n.has(_))g=e.tools.toolbar.indexOf(_);else if(!_&&!f||_===null||f===null)g=e.tools.toolbar.length;else continue;e.pluginButtonKeys.add(`custom:${p}`),E||(n.add(`custom:${p}`),e.tools.toolbar.splice(g,0,`custom:${p}`))}function r(p){for(const _ of p.attributes)["class","style","id","src","title","rel","alt"].includes(_.name.toLowerCase())||p.removeAttribute(_.name);for(const _ of p.querySelectorAll(":scope > *"))r(_)}function i(p,_){var f;if(p.addButtons instanceof Function){const g=p.addButtons.bind(_)();if(typeof g!="object")throw new TypeError;const E=new DOMParser;for(const S in g){let{html:b,command:T,locations:y,element:R,isActive:O,isAvailable:I}=g[S];if(typeof b!="string"&&!(R instanceof HTMLElement)||!(T instanceof Function)||!Array.isArray(y))throw new TypeError;O!==void 0&&typeof O!="boolean"&&!(O instanceof Function)&&(window.Debug.warn(`Expected isActive to be a boolean or a Function, got a ${typeof O}. Casting to boolean.`),O=!!O),I!==void 0&&typeof I!="boolean"&&!(I instanceof Function)&&(window.Debug.warn(`Expected isAvailable to be a boolean or a Function, got a ${typeof I}. Casting to boolean.`),I=!!I);const x=[];for(const H of y)if(H===null)x.push({after:null,before:void 0});else if(typeof H=="object"){if(![void 0,null].includes(H.before)&&typeof H.before!="string"||![void 0,null].includes(H.after)&&typeof H.after!="string")throw new TypeError;x.push({after:H.after,before:H.before})}else typeof H=="string"?x.push({after:H,before:void 0}):x.push({after:void 0,before:void 0});y=x;const k=["script","link","style","pre","code","iframe","object","embed","noscript","video"];if(R instanceof Element)R.querySelectorAll(k.join(",")).forEach(H=>H.remove());else{const H=E.parseFromString(b,"text/html");if(!(H instanceof Document))throw new RangeError("The html passed in for the button is not readable");if(H.querySelectorAll(k.join(",")).forEach(ae=>ae.remove()),!(((f=H==null?void 0:H.body)==null?void 0:f.firstElementChild)instanceof HTMLElement)||!H.body.firstElementChild.innerHTML.length)throw new RangeError("The html passed in for the button is not readable");R=H.body.firstElementChild}if(r(R),k.includes(R.tagName.toLowerCase()))throw new RangeError(`The element of type ${R.tagName} cannot be used as a toolbar button`);const $=R.cloneNode(!0),z=`${p.name}_${S}`;e.ipsPlugins.buttons[z]={get element(){return $},set element(H){throw new Error("Cannot update the element of an ipsPlugin button!")},get command(){return T.bind(_)},set command(H){throw new Error("Cannot update the command of an ipsPlugin button!")},get isActive(){return O instanceof Function?O.bind(_):O},set isActive(H){throw new Error("Cannot update the isActive property of an ipsPlugin button!")},get isAvailable(){return I instanceof Function?I.bind(_):I},set isAvailable(H){throw new Error("Cannot update the isAvailable property of an ipsPlugin button!")},get locations(){return y},set locations(H){throw new Error("Cannot update properties Line truncated
${g.message}`,window.Debug.warn(g)}}}const OE=vt.create({name:"ipsHomeEnd",addKeyboardShortcuts(){return{Home:({editor:e})=>(Vt(()=>{var i,o,a;const{$from:t}=e.state.selection,n=t.pos-t.parentOffset;let r=t.pos;for(;r>n;){const s=e.state.doc.slice(r-1,r);if(((i=s.content.content[0])==null?void 0:i.textContent)===`
`||((a=(o=s.content.content[0])==null?void 0:o.type)==null?void 0:a.name)===gu.name)break;r--}e.chain().setTextSelection(r).focus().run()},"Something went wrong handling the 'Home' key press"),!0),End:({editor:e})=>(Vt(()=>{var i,o,a;const{$to:t}=e.state.selection,n=[...t.path].reverse()[3]+t.parent.nodeSize-1;let r=t.pos;for(;r<n;){const s=e.state.doc.slice(r,r+1);if(((i=s.content.content[0])==null?void 0:i.textContent)===`
`||((a=(o=s.content.content[0])==null?void 0:o.type)==null?void 0:a.name)===gu.name)break;r++}e.chain().setTextSelection(r).focus().run()},"Something went wrong handling the 'End' key press"),!0)}}}),O6=vt.create({name:"IPSSimpleRichText",addProseMirrorPlugins(){return[new pt({key:new at("ipsSimpleRichTextPlugin"),filterTransaction:e=>!(this.editor.options.lengthFunction instanceof Function&&typeof this.editor.options.maxLength=="number"&&this.editor.options.lengthFunction(TT(e.doc.content,this.editor.schema))>this.editor.options.maxLength),appendTransaction:(e,t,n)=>{const r=[];let i;const{from:o,to:a}=n.selection;n.doc.descendants((c,d)=>{var p,_;if(typeof c.textContent=="string"&&!c.textContent&&!c.isInline){const f=n.doc.resolve(d),g=A6(f,n.doc),E=I6(f,n.doc);if([o,a].some(S=>g.pos<S&&E.pos>S)){if(i===void 0&&e.some(S=>{var b;return(b=S.steps)==null?void 0:b.length})){let S=1,b=c;for(;(_=(p=b.content)==null?void 0:p.content)!=null&&_.length;)S++,b=b.content.content[0];i=S+d}return!1}return r.push([d,d+c.nodeSize]),!1}if(c.isInline||!c.content.content.length)return!1});const{tr:s}=n;for(const[c,d]of r.reverse())s.delete(c,d);if(i!==void 0){const c=Ie.atStart(n.doc).from,d=Ie.atEnd(n.doc).to,p=Ie.create(n.doc,bo(i,c,d));o===p.from&&o===a||s.setSelection(p)}return s}})]},addKeyboardShortcuts(){return{Enter:({editor:e})=>{const t=e.view.dom.closest("form");if(t){let n=t.querySelector('button:is([type="submit"], :not([type]))');n||(n=document.createElement("button"),n.setAttribute("type","button"),n.setAttribute("hidden",""),t.appendChild(n),setTimeout(()=>n.documentElement===document.documentElement&&n.remove(),200)),n.click()}return!0},"Shift-Enter":({editor:e})=>(e.isActive(cu.name)?e.commands.splitListItem(cu.name):e.commands.splitBlock(),!1)}},onCreate(){this.editor.view.dom.addEventListener("clear",e=>{var t;this.editor.commands.setContent(((t=e.detail)==null?void 0:t.content)||"")})}});function A6(e,t){var r,i;const n=[...e.path].reverse();for(;n.length>=3;){if(n[1]>0){let o=n[2].content.content[n[1]-1],a=0;for(;o;)o=(i=(r=o.content)==null?void 0:r.content)!=null&&i.length?o.content.content[o.content.content.length-1]:null,a++;return t.resolve(e.pos-a)}n.splice(0,3)}return t.resolve(0)}function I6(e,t){var r,i;const n=[...e.path].reverse();for(;n.length>=3;){if(n[1]<n[2].content.content.length-1){let o=n[2].content.content[n[1]+1],a=0;for(;o;)a++,o=(i=(r=o.content)==null?void 0:r.content)==null?void 0:i[0];return t.resolve(e.pos+n[2].content.content[n[1]].nodeSize+a)}n.splice(0,3)}return t.resolve(t.nodeSize-2)}const D6=e=>Ot({find:/--$/,replace:e??"—"}),w6=e=>Ot({find:/\.\.\.$/,replace:e??"…"}),x6=e=>Ot({find:/(?:^|[\s{[(<'"\u2018\u201C])(")$/,replace:e??"“"}),M6=e=>Ot({find:/"$/,replace:e??"”"}),L6=e=>Ot({find:/(?:^|[\s{[(<'"\u2018\u201C])(')$/,replace:e??"‘"}),k6=e=>Ot({find:/'$/,replace:e??"’"}),P6=e=>Ot({find:/<-$/,replace:e??"←"}),U6=e=>Ot({find:/->$/,replace:e??"→"}),F6=e=>Ot({find:/\(c\)$/,replace:e??"©"}),B6=e=>Ot({find:/\(tm\)$/,replace:e??"™"}),G6=e=>Ot({find:/\(sm\)$/,replace:e??"℠"}),Y6=e=>Ot({find:/\(r\)$/,replace:e??"®"}),H6=e=>Ot({find:/(?:^|\s)(1\/2)\s$/,replace:e??"½"}),$6=e=>Ot({find:/\+\/-$/,replace:e??"±"}),V6=e=>Ot({find:/!=$/,replace:e??"≠"}),z6=e=>Ot({find:/<<$/,replace:e??"«"}),W6=e=>Ot({find:/>>$/,replace:e??"»"}),q6=e=>Ot({find:/\d+\s?([*x])\s?\d+$/,replace:e??"×"}),K6=e=>Ot({find:/\^2$/,replace:e??"²"}),Q6=e=>Ot({find:/\^3$/,replace:e??"³"}),X6=e=>Ot({find:/(?:^|\s)(1\/4)\s$/,replace:e??"¼"}),j6=e=>Ot({find:/(?:^|\s)(3\/4)\s$/,replace:e??"¾"}),Z6=vt.create({name:"typography",addOptions(){return{closeDoubleQuote:"”",closeSingleQuote:"’",copyright:"©",ellipsis:"…",emDash:"—",laquo:"«",leftArrow:"←",multiplication:"×",notEqual:"≠",oneHalf:"½",oneQuarter:"¼",openDoubleQuote:"“",openSingleQuote:"‘",plusMinus:"±",raquo:"»",registeredTrademark:"®",rightArrow:"→",servicemark:"℠",superscriptThree:"³",superscriptTwo:"²",threeQuarters:"¾",trademark:"™"}},addInputRules(){const e=[];return this.options.emDash!==!1&&e.push(D6(this.options.emDash)),this.options.ellipsis!==!1&&e.push(w6(this.options.ellipsis)),this.options.openDoubleQuote!==!1&&e.push(x6(this.options.openDoubleQuote)),this.options.closeDoubleQuote!==!1&&e.push(M6(this.options.closeDoubleQuote)),this.options.openSingleQuote!==!1&&e.push(L6(this.options.openSingleQuote)),this.options.closeSingleQuote!==!1&&e.push(k6(this.options.closeSingleQuote)),this.options.leftArrow!==!1&&e.push(P6(this.options.leftArrow)),this.options.rightArrow!==!1&&e.push(U6(this.options.rightArrow)),this.options.copyright!==!1&&e.push(F6(this.options.copyright)),this.options.trademark!==!1&&e.push(B6(this.options.trademark)),this.options.servicemark!==!1&&e.push(G6(this.options.servicemark)),this.options.registeredTrademark!==!1&&e.push(Y6(this.options.registeredTrademark)),this.options.oneHalf!==!1&&e.push(H6(this.options.oneHalf)),this.options.plusMinus!==!1&&e.push($6(this.options Line truncated
`}}),Fx,J6].filter(T=>!!T);return window.navigator.platform==="MacIntel"&&t.push(OE),e.autoSaveKey&&t.push(Bx),e.postkey&&(t.push(y6),t.push(ot.configure({externalImages:!((f=e.restrictions)!=null&&f.has("external_image")),externalVideos:!((g=e.restrictions)!=null&&g.has("external_video")),float:!((E=e.restrictions)!=null&&E.has("float"))}))),(S=e.restrictions)!=null&&S.has("heading")||t.push(pn.configure({levels:(b=e.restrictions)!=null&&b.has("heading_1")?[2,3,4,5,6]:[1,2,3,4,5,6]})),t}async function hO(e,t){var n,r;if(e.pluginButtonKeys=new Set,e.simpleRichText?(delete e.codeMode,e.tools={toolbar:[...Ux]},e.react&&BV(e.react)):await O4(),e.restrictions&&Symbol.iterator in e.restrictions?e.restrictions=new Set(e.restrictions):delete e.restrictions,e.jQuery=e.jQuery||window.jQuery,e.editorProps={attributes:{class:e.codeMode?"":"ipsRichText"}},e.itemStates={},e.extensions=eX(e),!(e.messagesContainer instanceof Element)&&((n=t==null?void 0:t.closest(".ipsEditor"))!=null&&n.querySelector('[data-role="editor-messages-container"]'))&&(e.messagesContainer=(r=t==null?void 0:t.closest(".ipsEditor"))==null?void 0:r.querySelector('[data-role="editor-messages-container"]')),e.codeMode)return e.tools={toolbar:["codelanguage"]},e;if(e.simpleRichText||v6(e,e.extensions),e.stockrepliesenabled){const i=await qT();Object.keys(i).length?window.Debug.log("Loaded stock replies"):(e.stockrepliesenabled=!1,window.Debug.log("No stock replies, disabling the button"))}if(!e.codeMode){for(const i in e.tools)e.tools[i]=e.tools[i].filter(o=>o==="giphy"&&!e.giphyenabled||o==="stockreply"&&!e.stockrepliesenabled?!1:!(e.hidebuttons instanceof Array&&e.hidebuttons.includes(o)));e.parseOptions=e.parseOptions||{},e.parseOptions.preserveWhitespace=!1}return e.tools.toolbar&&e.tools.toolbar[0]!=="block"&&(e.tools.toolbar=["block",...e.tools.toolbar.filter(i=>i!=="block")]),e}let SO=!1;function tX(){if(!SO){for(const e of["click","focus","keydown","keyup"])document.addEventListener(e,t=>{var n,r,i;(r=(n=t.target)==null?void 0:n.closest)!=null&&r.call(n,".ipsEditor__toolbar-item--unavailable")&&(t.preventDefault(),t.stopPropagation(),(i=t.stopImmediatePropagation)==null||i.call(t))},{capture:!0});SO=!0}}setTimeout(()=>window.ips.createModule("ips.utils.tiptap",()=>{const e={tools:{toolbar:["block","insert","bold","italic","underline","size","color","link","icon","stockreply","giphy","clear","format"]},allowedIframeDomains:window.ips.getSetting("allowedIframeDomains")||[],restrictions:new Set};return document.dispatchEvent(new CustomEvent("ipsTiptapLoaded")),{editorInstance(t,n={}){const r=AE.createRoot(t);return tX(),new Promise(i=>{hO({...e,...n},t).then(o=>{r.render(N.jsx(ct.StrictMode,{children:N.jsx(x9,{resolve:a=>{i([a,r]),a.options.name&&setTimeout(()=>a.options.jQuery(a.view.dom.closest("[data-ipseditorv5]")).trigger("editorWidgetInitialized",{id:a.options.name}))},config:o})}))})})},allCodeLanguages:sl,async decorateSimpleRichTextConfig(t){return t.simpleRichText=!0,await hO(t)}}}));
@@ -45,7 +45,7 @@
"isDynamicEntry": true
},
"src/main.jsx": {
"file": "assets/main-C7yyeubP.js",
"file": "assets/main-mf6AQnai.js",
"name": "main",
"src": "src/main.jsx",
"isEntry": true,
@@ -155,15 +155,15 @@ class themeeditor extends Controller
$table->parsers = [
'setting_name' => function( $val, $row )
{
return Member::loggedIn()->language()->addToStack( Setting::$titleLangPrefix . $row['setting_id'] );
return Member::loggedIn()->language()->addToStack( Setting::$titleLangPrefix . $row['setting_key'] );
},
'setting_type' => function( $val )
{
return Member::loggedIn()->language()->addToStack( 'themeeditor_setting_type__' . $val );
},
'setting_category_id' => function( $val )
'setting_category_id' => function( $val, $row )
{
return Member::loggedIn()->language()->addToStack( Category::$titleLangPrefix . $val );
return Setting::constructFromData( $row )->parent()->_title;
}
];
@@ -205,7 +205,7 @@ class themeeditor extends Controller
$table->parsers = [
'cat_name' => function( $val, $row )
{
return "<i class='" . Category::constructFromData( $row )->icon() ."'></i> " . Member::loggedIn()->language()->addToStack( Category::$titleLangPrefix . $row['cat_id'] );
return "<i class='" . Category::constructFromData( $row )->icon() ."'></i> " . Member::loggedIn()->language()->addToStack( Category::$titleLangPrefix . $row['cat_key'] );
}
];
@@ -552,7 +552,7 @@ class themes extends Controller
{
$category->save();
}
Lang::saveCustom( 'core', 'themeeditor_cat_' . $category->id, $xml->readString() );
Lang::saveCustom( 'core', 'themeeditor_cat_' . $category->key, $xml->readString() );
break;
case 'icon':
@@ -626,7 +626,7 @@ class themes extends Controller
{
$setting->save();
}
Lang::saveCustom( 'core', 'themeeditor_var_' . $setting->id, $xml->readString() );
Lang::saveCustom( 'core', 'themeeditor_var_' . $setting->key, $xml->readString() );
break;
case 'desc':
@@ -637,7 +637,7 @@ class themes extends Controller
{
$setting->save();
}
Lang::saveCustom( 'core', 'themeeditor_var_' . $setting->id . '_desc', $description );
Lang::saveCustom( 'core', 'themeeditor_var_' . $setting->key . '_desc', $description );
}
break;
@@ -1088,7 +1088,7 @@ class themes extends Controller
}
$xml->startElement( 'name' );
$xml->text( $lang->get( 'themeeditor_cat_' . $cat['cat_id'] ) );
$xml->text( $lang->get( 'themeeditor_cat_' . $cat['cat_key'] ) );
$xml->endElement();
$xml->startElement( 'icon' );
@@ -1132,13 +1132,13 @@ class themes extends Controller
}
$xml->startElement( 'name' );
$xml->text( $lang->get( 'themeeditor_var_' . $setting['setting_id'] ) );
$xml->text( $lang->get( 'themeeditor_var_' . $setting['setting_key'] ) );
$xml->endElement();
if( $lang->checkKeyExists( 'themeeditor_var_' . $setting['setting_id'] . '_desc' ) )
if( $lang->checkKeyExists( 'themeeditor_var_' . $setting['setting_key'] . '_desc' ) )
{
$xml->startElement( 'desc' );
$xml->writeCdata( $lang->get( 'themeeditor_var_' . $setting['setting_id'] . '_desc' ) );
$xml->writeCdata( $lang->get( 'themeeditor_var_' . $setting['setting_key'] . '_desc' ) );
$xml->endElement();
}
@@ -131,7 +131,7 @@ class themeeditor extends Controller
'link' => $this->url->setQueryString( array( 'do' => 'categoryForm', 'parent' => $category->id ) )
];
}
elseif( $category->hasSettings() or $category->hasColors() or !$category->hasContents() )
if( $category->hasSettings() or $category->hasColors() or !$category->hasContents() )
{
$buttons['add'] = array(
'icon' => 'plus-circle',
@@ -67,6 +67,34 @@ class tags extends Controller
parent::execute();
}
/**
* @return int|null
*/
public function _getRootsPerPage(): ?int
{
return 100;
}
/**
* Get Root Rows
*
* @return array
*/
public function _getRoots(): array
{
$args = func_get_args(); // We actually send [ start, limit ] to this method
$nodeClass = $this->nodeClass;
$rows = array();
$start = $args[0][0] ?? 0;
$limit = $args[0][1] ?? $this->_getRootsPerPage();
foreach( $nodeClass::roots( NULL, NULL, [], [ $start, $limit ] ) as $node )
{
$rows[ $node->_id ] = $this->_getRow($node);
}
return $rows;
}
/**
* Manage
*
@@ -764,7 +764,6 @@ class languages extends Controller
// This appears inside a dialog. The following instructs the dialog to handle the download via JS rather than using a native form download. This allows the dialog to close when done.
$filename = $lang->title . " {$lang->version}.xml";
$form->attributes['data-form-is-download'] = '';
$form->attributes['data-form-download-name'] = "testing to see if this works " . $filename;
$form->add( new Text( 'language_export_author_name', $lang->author_name, false ) );
$form->add( new FormUrl( 'language_export_author_url', $lang->author_url, false ) );
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": true,
"theme": true,
"themeeditor": true,
"javascript": true,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": true,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"files": {
"added": [],
"edited": [
"global\/framework\/common\/ui\/ips.ui.editorv5.js"
],
"removed": []
},
"orders": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,17 @@
{
"normal": {
"added": [],
"edited": [],
"removed": []
},
"js": {
"added": [
"core_pagebuilder_wrap__minimal-carousel"
],
"edited": [
"core_pagebuilder_wrap__mini-grid",
"core_pagebuilder_wrap__mini-grid-carousel"
],
"removed": []
}
}
@@ -0,0 +1,49 @@
{
"html": {
"added": [],
"edited": [
"front\/global\/mobileFooterBar",
"front\/global\/mobileNavigationChildren",
"front\/profile\/hovercard",
"front\/staffdirectory\/layout_blocks",
"front\/staffdirectory\/layout_full",
"front\/staffdirectory\/layout_half",
"front\/staffdirectory\/template",
"front\/themeeditor\/editorPanel",
"front\/themeeditor\/settingCheckbox",
"front\/themeeditor\/settingRange",
"front\/themeeditor\/settingSelect",
"front\/themeeditor\/settingText",
"front\/themeeditor\/themeEditorTemplate",
"admin\/trees\/template",
"front\/widgets\/topContributorRows",
"front\/widgets\/topContributors"
],
"removed": []
},
"css": {
"added": [],
"edited": [
"admin\/core\/trees.css",
"global\/framework\/1-2-settings.css",
"global\/framework\/1-3-variables.css",
"global\/framework\/1-4-colors.css",
"global\/framework\/3-buttons.css",
"global\/framework\/3-data-tables.css",
"global\/framework\/3-editor.css",
"global\/framework\/3-page-header.css",
"global\/framework\/3-post-content.css",
"global\/framework\/3-tabs.css",
"global\/framework\/3-typography.css",
"global\/framework\/4-layout.css",
"front\/styles\/embeds.css",
"front\/styles\/theme_editor.css"
],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,142 @@
{
"categories": {
"added": [
"navigationPanel",
"global",
"sidebar",
"avatars",
"buttons"
],
"edited": [
"lightDarkMode",
"logos",
"pageLayouts",
"typography",
"header",
"sidePanel",
"content",
"footer",
"mobileNavigation",
"navigationPanel",
"global",
"textLogo",
"imageLogoDesktop",
"imageLogoMobile",
"desktopHeader",
"mobileHeader",
"desktopFooter",
"body",
"contentBoxes",
"sidebar",
"avatars",
"buttons",
"body",
"contentBoxes"
],
"removed": []
},
"settings": {
"added": [
"set__i-sidebar-width",
"i-primary-button--co",
"i-primary-button--ba-co",
"i-secondary-button--co",
"i-secondary-button--ba-co",
"i-button--bo-ra"
],
"edited": [
"set__i-default-scheme",
"set__i-logo-text",
"set__i-sidebar-width",
"i-primary-button--co",
"set__i-mobile-icons-location",
"set__logo-light",
"i-footer--co",
"set__mobile-logo-light",
"layout_global_view_mode",
"set__i-font-family",
"set__i-design-border",
"set__i-layout-width",
"set__i-sidebar-ui-header--he",
"set__i-position-logo",
"set__i-mobile-header--he",
"set__i-change-scheme",
"set__i-logo-slogan",
"i-primary-button--ba-co",
"set__i-mobile-footer-labels",
"set__logo-dark",
"i-footer--ba-co",
"set__mobile-logo-dark",
"set__i-design-radius",
"set__i-font-size",
"set__i-flip-sidebar",
"i-dashHeader--ba-co",
"set__i-position-navigation",
"i-headerMobile--ba-co",
"i-headerMobile--co",
"i-secondary-button--co",
"set__i-logo--fo-fa",
"set__i-position-user",
"i-dashHeader--co",
"set__i-avatar-radius",
"i-color_root",
"set__i-mobile-logo--he",
"set__i-design-shadow",
"i-mobileFooter--ba-co",
"set__i-logo--he",
"i-secondary-button--ba-co",
"set__i-logo--fo-we",
"i-navPanelLinkHover--co",
"set__i-position-breadcrumb",
"i-mobileFooter--co",
"i-color_soft",
"i-body--ba-co",
"set__i-link-panels",
"set__i-sidebar-ui-logo--he",
"i-button--bo-ra",
"set__i-desktop-logo--fo-si",
"set__i-sticky-sidebar",
"i-navPanelLinkActive--ba-co",
"set__i-position-search",
"i-mobileFooter-active--co",
"i-color_hard",
"i-box--ba-co",
"set__i-header-primary--he",
"set__i-sidebar-ui-logo--fo-si",
"i-box--bo-co",
"i-link--co",
"i-mobileFooter-active--ba-co",
"i-navPanel--ba-co",
"set__i-mobile-logo--fo-si",
"i-link-hover--co",
"i-navPanel--co",
"set__i-header-secondary--he",
"i-boxHeader--ba-co",
"i-boxHeader--co",
"set__i-user-content-font-size",
"i-navPanelLinkActive--co",
"set__i-nav-bar-icons",
"i-widget-header--ba-co",
"i-headerTop--ba-co",
"i-widget-header--co",
"i-headerTop--co",
"i-headerPrimary--ba-co",
"i-headerPrimary--co",
"i-headerSecondary--ba-co",
"i-headerSecondary--co",
"set__i-header-top--he",
"set__i-sidebar-ui-header--he",
"set__i-flip-sidebar",
"i-dashHeader--ba-co",
"i-dashHeader--co",
"set__i-avatar-radius",
"i-navPanelLinkHover--co",
"set__i-sticky-sidebar",
"i-navPanelLinkActive--ba-co",
"i-navPanel--ba-co",
"i-navPanel--co",
"i-navPanelLinkActive--co"
],
"removed": []
}
}
@@ -234,7 +234,7 @@ class Feature extends ActiveRecord
public function get_ourPicksTitle() : string
{
$settings = $this->form_data;
return isset( $settings['internal']['title'] ) ? $settings['internal']['title'] : $this->objectTitle;
return ( isset( $settings['internal']['title'] ) and ! empty( $settings['internal']['title'] ) ) ? $settings['internal']['title'] : $this->objectTitle;
}
/**
@@ -203,7 +203,14 @@ class FrontNavigation
'config' => '[]',
'position' => $position++,
'parent' => NULL,
'permissions' => NULL,
'permissions' => '*',
'icon' => json_encode( [ [
'key' => 'bars-staggered:fas',
'type' => 'fa',
'raw' => '<i class="fa-solid fa-bars-staggered"></i>',
'title' => 'bars-staggered',
'html' => '\r\n<!-- theme_core_global_global_icon --><span class="ipsIcon ipsIcon--fa" data-label="bars-staggered" aria-hidden="true"><i class="fa-solid fa-bars-staggered"></i></span>'
] ] )
) );
Lang::saveCustom( 'core', "menu_item_1", Member::loggedIn()->language()->get('default_menu_item_1') );
@@ -215,7 +222,14 @@ class FrontNavigation
'config' => '[]',
'position' => $position++,
'parent' => NULL,
'permissions' => NULL,
'permissions' => '*',
'icon' => json_encode( [ [
'key' => 'newspaper:far',
'type' => 'fa',
'raw' => '<i class="fa-regular fa-newspaper"></i>',
'title' => 'newspaper',
'html' => '\r\n<!-- theme_core_global_global_icon --><span class="ipsIcon ipsIcon--fa" data-label="newspaper (regular)" aria-hidden="true"><i class="fa-regular fa-newspaper"></i></span>'
] ] )
) );
Lang::saveCustom( 'core', "menu_item_2", Member::loggedIn()->language()->get('default_menu_item_2') );
@@ -292,6 +306,7 @@ class FrontNavigation
'parent' => (int) $parent,
'permissions' => NULL,
'is_menu_child' => $isMenuChild,
'icon' => $config['icon'] ?? null
) );
if ( isset( $config['title'] ) )
@@ -17,6 +17,7 @@ use IPS\core\FrontNavigation;
use IPS\Http\Url;
use IPS\Member;
use IPS\Request;
use IPS\Theme;
use function defined;
use function in_array;
use function is_array;
@@ -290,20 +291,27 @@ abstract class FrontNavigationAbstract
}
/**
* Is this item, or any of it's child items, active?
* Is this item, or any of its child items, active?
*
* @param string|null $menuType header|sidebar|smallscreen
* @return bool
*/
public function activeOrChildActive() : bool
public function activeOrChildActive( ?string $menuType=null ) : bool
{
if ( $this->active() )
if( $menuType === null )
{
$menuType = ( Theme::i()->getLayoutValue( 'global_view_mode' ) == 'side' ) ? 'sidebar' : 'header';
}
if ( $this->isAvailableFor( $menuType ) and $this->active() )
{
return TRUE;
}
foreach ( $this->subItems() as $item )
{
if ( $item->active() )
/* @var FrontNavigationAbstract $item */
if ( $item->isAvailableFor( $menuType ) and $item->active() )
{
return TRUE;
}
+9 -9
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="downloads">
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/downloads" javascript_name="ips.downloads.browse.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200">/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/downloads" javascript_name="ips.downloads.browse.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -59,7 +59,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/pending" javascript_name="ips.pending.buttons.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000250">/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/pending" javascript_name="ips.pending.buttons.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000250">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -87,7 +87,7 @@
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="downloads" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -140,7 +140,7 @@
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.linkedScreenshots.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.linkedScreenshots.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -212,7 +212,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -657,7 +657,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.changeLog.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.changeLog.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -779,7 +779,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.download.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.download.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -907,7 +907,7 @@
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.subscribe.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="downloads" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.subscribe.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -970,7 +970,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="downloads" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[/* VIEW TEMPLATES */
<file javascript_app="downloads" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[/* VIEW TEMPLATES */
ips.templates.set('downloads.submit.screenshot', " \
<div class='ipsUploader__row ipsUploader__row--image ipsAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-filesize='{{sizeRaw}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-fileType='image'>\
<div class='ipsUploader__rowPreview' data-role='preview'>\
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="downloads" version="5000028">
<app key="downloads" version="5000029">
<word key="__app_downloads" js="0">Downloads</word>
<word key="frontnavigation_downloads" js="0">Downloads</word>
<word key="__indefart_downloads_file_comment" js="0">a comment on a file</word>
+2 -1
View File
@@ -276,5 +276,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": true,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"categories": {
"added": [],
"edited": [],
"removed": []
},
"settings": {
"added": [],
"edited": [
"layout_downloads_categories"
],
"removed": []
}
}
-5
View File
@@ -31,11 +31,6 @@
{$email->parseTextForEmail( $topic->content(), $email->language, ( \IPS\Settings::i()->email_truncate ? 150 : NULL ) )|raw}
</div>
<p style="font-family: 'Helvetica Neue', helvetica, sans-serif; margin: 0; font-size: 13px;">
{{if $topic->container()->forum_allow_rating}}
{{foreach range( 1, 5 ) as $i}}{{if $i <= $topic->averageRating()}}<img src='{resource="email/rating_on.png" location="interface" app="core"}' width='14' height='13' style='vertical-align: middle; margin-right: 2px'>{{elseif ( $i - 0.5 ) <= $topic->averageRating()}}<img src='{resource="email/rating_half.png" location="interface" app="core"}' width='14' height='13' style='vertical-align: middle; margin-right: 2px'>{{else}}<img src='{resource="email/rating_off.png" location="interface" app="core"}' width='14' height='13' style='vertical-align: middle; margin-right: 2px'>{{endif}}{{endforeach}}
&nbsp;&nbsp;&nbsp;&nbsp;
{{endif}}
<strong>
<img src='{resource="email/comment.png" location="interface" app="core"}' width='13' height='12' style='vertical-align: middle'>&nbsp;
{$email->language->addToStack("replies_number", FALSE, array( 'pluralize' => array( ( $topic->posts ) ? $topic->posts - 1 : 0 ) ) )}
+10 -10
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="forums">
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.flow.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.flow.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -272,7 +272,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumList.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumList.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -340,7 +340,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumPage.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.forumPage.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -397,7 +397,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.hovercard.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/forum" javascript_name="ips.forum.hovercard.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -447,7 +447,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.archiveRules.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.archiveRules.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -512,7 +512,7 @@
});
}(jQuery, _));
]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.activity.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.activity.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -544,7 +544,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.answers.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.answers.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -684,7 +684,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.reply.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.reply.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -713,7 +713,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.solved.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050"><![CDATA[/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.solved.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -751,7 +751,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.view.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="forums" javascript_location="front" javascript_path="controllers/topic" javascript_name="ips.topic.view.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="forums" version="5000028">
<app key="forums" version="5000029">
<word key="__app_forums" js="0">Forums</word>
<word key="frontnavigation_forums" js="0">Forums</word>
<word key="__indefart_post" js="0">a post in a topic</word>
+55 -36
View File
@@ -1486,10 +1486,10 @@
<template template_group="index" template_name="forumSummaryRow" template_data="$forum, $isSubForum=FALSE" template_location="front" template_app="forums"><![CDATA[{{if $forum->can('view')}}
{{$lastPosts = $forum->lastPost(5);}}
{{$club = $forum->club();}}
<section class="{$forum->ui( 'css' )} ipsCategoryWithFeed__item" data-forumID="{$forum->_id}" data-type='{{if $forum->redirect_on}}redirect{{elseif $forum->password}}password{{else}}forum{{endif}}' {{if \IPS\forums\Topic::containerUnread( $forum ) && !$forum->redirect_on}}data-ips-unread{{else}}data-ips-read{{endif}} {$forum->ui( 'dataAttributes' )} {{if $forum->feature_color}}style='--i-featured:{$forum->feature_color}'{{endif}}>
<section class="{$forum->ui( 'css' )} ipsCategoryWithFeed__item" data-forumID="{$forum->_id}" data-type='{{if $forum->redirect_on}}redirect{{elseif $forum->password}}password{{else}}forum{{endif}}' {$forum->ui( 'dataAttributes' )} {{if $forum->feature_color}}style='--i-featured:{$forum->feature_color}'{{endif}}>
<i-data class='ipsCategoryWithFeed__meta'>
<div class="ipsData ipsData--grid ipsData--forum-feed-view-forum">
<div class="ipsData__item">
<div class="ipsData ipsData--grid ipsData--forumFeedViewParent">
<div class="ipsData__item" {{if \IPS\forums\Topic::containerUnread( $forum ) && !$forum->redirect_on}}data-ips-unread{{else}}data-ips-read{{endif}}>
<a {{if $forum->password && !$forum->loggedInMemberHasPasswordAccess()}}href="{$forum->url()->setQueryString( 'passForm', '1' )}" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="forum_requires_password" sprintf="$forum->_title"}'{{else}}href="{$forum->url()}"{{endif}} class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{{if $forum->password && !$forum->loggedInMemberHasPasswordAccess()}}{$forum->_title}{{elseif $club}}{lang="club_node" sprintf="$club->name, $forum->_title"}{{else}}{$forum->_title}{{endif}}</span></a>
<a {{if $forum->password && !$forum->loggedInMemberHasPasswordAccess()}}href="{$forum->url()->setQueryString( 'passForm', '1' )}" data-ipsDialog data-ipsDialog-size='narrow' data-ipsDialog-title='{lang="forum_requires_password" sprintf="$forum->_title"}'{{else}}href="{$forum->url()}"{{endif}} class='ipsData__image'>
{{if $club and ! $forum->card_image}}
@@ -1586,7 +1586,7 @@
{{if !$forum->redirect_on}}
{{if $lastPosts and count( $lastPosts )}}
<i-data>
<ul data-ips-hook="latestPoster" class='ipsData ipsData--table ipsData--forum-feed-view'>
<ul data-ips-hook="latestPoster" class='ipsData ipsData--table ipsData--forumFeedView'>
{{foreach $lastPosts as $lastPost}}
<li class='ipsData__item'>
<a href="{{if member.member_id}}{$lastPost['topic_url']->setQueryString( 'do', 'getNewComment' )}{{else}}{$lastPost['topic_url']}{{endif}}" class="ipsLinkPanel" aria-hidden="true" tabindex="-1"><span>{$lastPost['topic_title']}</span></a>
@@ -1597,22 +1597,34 @@
<a href="{{if member.member_id}}{$lastPost['topic_url']->setQueryString( 'do', 'getNewComment' )}{{else}}{$lastPost['topic_url']}{{endif}}" title='{$lastPost['topic_title']}'>{$lastPost['topic_title']}</a>
</h4>
<small class="ipsData__meta">
{{if $lastPost['last_poster_anon']}}
{lang="byline_nodate" htmlsprintf="$lastPost['author']->link( NULL, NULL, TRUE )"},
{{else}}
{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"},
{{endif}}
{{if $lastPost['topic_title']}}
<a href='{{if member.member_id}}{$lastPost['topic_url']->setQueryString( 'do', 'getLastComment' )}{{else}}{$lastPost['topic_url']}{{endif}}' title='{lang="get_last_post"}'>{datetime="$lastPost['date']"}</a>
{{else}}
{datetime="$lastPost['date']"}
{{endif}}
{{if $lastPost['posts'] > 0}}
&middot;
{lang="num_comments" pluralize="$lastPost['posts']"}
{{endif}}
</small>
</div>
<div class="ipsData__extra">
<ul class="ipsData__stats">
<li data-statType='comments' data-v="{$lastPost['posts']}">
<span class='ipsData__stats-label'>{lang="num_comments" pluralize="$lastPost['posts']"}</span>
</li>
</ul>
<div class="ipsData__last">
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
{{if $lastPost['last_poster_anon']}}
{lang="byline_nodate" htmlsprintf="$lastPost['author']->link( NULL, NULL, TRUE )"}
{{else}}
{lang="byline_nodate" htmlsprintf="$lastPost['author']->link()"}
{{endif}}
</div>
<div class="ipsData__last-secondary">
{{if $lastPost['topic_title']}}
<a href='{{if member.member_id}}{$lastPost['topic_url']->setQueryString( 'do', 'getLastComment' )}{{else}}{$lastPost['topic_url']}{{endif}}' title='{lang="get_last_post"}'>{datetime="$lastPost['date']"}</a>
{{else}}
{datetime="$lastPost['date']"}
{{endif}}
</div>
</div>
</div>
</div>
</div>
</li>
{{endforeach}}
@@ -3834,16 +3846,11 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
border-top: 6px solid var(--i-featured, var(--i-background_6));
}
.ipsData--forum-feed-view-forum{
.ipsData--forumFeedViewParent{
grid-template-columns: 1fr;
}
/* Since we don't show read/unread status for this topic list, ensure that all titles are the same weight */
.ipsData--forum-feed-view .ipsData__title{
font-weight: 500 !important;
}
.ipsData--forum-feed-view-forum .ipsData__stats{
.ipsData--forumFeedViewParent .ipsData__stats{
font-weight: 550;
color: var(--i-color_root);
}
@@ -3860,12 +3867,12 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
border-inline-end: 1px solid var(--i-background_4);
}
.ipsData--forum-feed-view-forum{
.ipsData--forumFeedViewParent{
height: 100%;
}
/* Prepare the list for the following 2 changes */
.ipsData--forum-feed-view{
.ipsData--forumFeedView{
--i-data--padding: 1.1em;
--i-data--cell-spacing: 1em;
--i-data--icon-width: 30px;
@@ -3880,26 +3887,26 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
@container ipsCategoryWithFeed (max-width: 650px) {
/* Forum name and meta */
.ipsData.ipsData--forum-feed-view-forum{
.ipsData.ipsData--forumFeedViewParent{
--i-data--padding: 1.2em;
--i-data--icon-ratio: 1;
}
.ipsData--forum-feed-view-forum .ipsData__item{
.ipsData--forumFeedViewParent .ipsData__item{
flex-direction: row;
align-items: start;
}
.ipsData--forum-feed-view-forum .ipsData__image{
.ipsData--forumFeedViewParent .ipsData__image{
flex: 0 0 clamp(60px, 17vw, 120px);
margin: 0;
}
/* Scrollable topic list */
.ipsData--forum-feed-view {
.ipsData--forumFeedView {
--i-data--gap: 1.2em;
padding: 1em var(--i-data--gap);
display: flex;
gap: 1em;
gap: 1px;
overflow: auto;
scroll-snap-type: x mandatory;
scroll-padding: var(--i-data--gap);
@@ -3907,16 +3914,28 @@ data-first-page="{{if isset( request.page ) and request.page > 1}}false{{else}}t
scrollbar-color: color-mix(in srgb, var(--i-co) 20%, transparent) transparent;
}
.ipsData--forum-feed-view .ipsData__item{
.ipsData--forumFeedView .ipsData__item{
flex: 0 0 min(80vw, 400px);
border-radius: min(var(--i-design-radius), 8px);
border-width: 0;
background: var(--i-background_2);
scroll-snap-align: start;
outline: 1px solid var(--i-background_4);
}
.ipsData--forum-feed-view .ipsData__icon{
.ipsData--forumFeedView .ipsData__item:first-child{
border-start-start-radius: min(var(--i-design-radius), 6px);
border-end-start-radius: min(var(--i-design-radius), 6px);
}
.ipsData--forumFeedView .ipsData__item:last-child{
border-start-end-radius: min(var(--i-design-radius), 6px);
border-end-end-radius: min(var(--i-design-radius), 6px);
}
.ipsData--forumFeedView .ipsData__icon{
align-self: center;
}
.ipsData--forumFeedView .ipsData__title{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
+2 -1
View File
@@ -276,5 +276,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -125,7 +125,7 @@ class Solved extends OverviewStatisticsAbstract
$where = array( array( Db::i()->in( 'forum_id', explode( ',', Request::i()->nodes ) ) ) );
}
$where[] = array( 'type=?', 'solved' );
//$where[] = array( 'type=?', 'solved' );
$where[] = array( Db::i()->in( 'forum_id', iterator_to_array( Db::i()->select( 'id', 'forums_forums', '(' . Db::i()->bitwiseWhere( Forum::$bitOptions['forums_bitoptions'], 'bw_enable_answers' ) . ') OR ( ' . Db::i()->bitwiseWhere( Forum::$bitOptions['forums_bitoptions'], 'bw_solved_set_by_moderator' ) . ' )' ) ) ) );
if( Request::i()->nodes )
@@ -141,7 +141,12 @@ class Solved extends OverviewStatisticsAbstract
{
case 'percentagesolved':
$total = Db::i()->select( 'COUNT(*)', 'forums_topics', $this->_modifyWhereClause( $where ) )->first();
$solved = Db::i()->select( 'COUNT(*)', 'forums_topics', array_merge( $this->_modifyWhereClause( $where ), array( array( 'core_solved_index.id IS NOT NULL' ) ) ) )->join( 'core_solved_index', "core_solved_index.app='forums' AND core_solved_index.item_id=forums_topics.tid")->first();
$solvedWhere = $this->_modifyWhereClause( $where );
$solvedWhere[] = [ 'core_solved_index.id is not null' ];
$solvedWhere[] = [ 'type=?', 'solved' ];
$solved = Db::i()->select( 'COUNT(*)', 'forums_topics', $solvedWhere )->join( 'core_solved_index', "core_solved_index.app='forums' AND core_solved_index.item_id=forums_topics.tid")->first();
$value = $total ? round( $solved / $total * 100, 2 ) : 0;
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": true,
"themeeditor": true,
"javascript": false,
"emailTemplates": true,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,7 @@
{
"added": [],
"edited": [
"digests__item"
],
"removed": []
}
@@ -0,0 +1,21 @@
{
"html": {
"added": [],
"edited": [
"front\/index\/forumSummaryRow"
],
"removed": []
},
"css": {
"added": [],
"edited": [
"front\/forums.css"
],
"removed": []
},
"resources": {
"added": [],
"edited": [],
"removed": []
}
}
@@ -0,0 +1,17 @@
{
"categories": {
"added": [],
"edited": [],
"removed": []
},
"settings": {
"added": [],
"edited": [
"layout_forums_forum",
"layout_forums_topic",
"layout_forums_post",
"layout_forum_topic_view_firstpost"
],
"removed": []
}
}
+12 -12
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="gallery">
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/global" javascript_name="ips.global.nsfw.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200">;( function($, _, undefined){
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/global" javascript_name="ips.global.nsfw.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200">;( function($, _, undefined){
&quot;use strict&quot;;
ips.controller.register('gallery.front.global.nsfw', {
@@ -20,7 +20,7 @@
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000050">/**
<file javascript_app="gallery" javascript_location="admin" javascript_path="controllers/settings" javascript_name="ips.settings.settings.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000050">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -77,7 +77,7 @@
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.chooseCategory.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.chooseCategory.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -244,7 +244,7 @@
});
}(jQuery, _));
]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.existingAlbums.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.existingAlbums.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -280,7 +280,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.uploadImages.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.uploadImages.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -411,7 +411,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.wrapper.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/submit" javascript_name="ips.submit.wrapper.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1166,7 +1166,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.image.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.image.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1308,7 +1308,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.note.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.note.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1768,7 +1768,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.notes.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="gallery" javascript_location="front" javascript_path="controllers/view" javascript_name="ips.view.notes.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1851,8 +1851,8 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.browse.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050">// Empty</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.submit.imageItem', " \
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.browse.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050">// Empty</file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.submit.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.submit.imageItem', " \
<div class='ipsAttach ipsImageAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-isImage='1'>\
<ul class='ipsImageAttach_controls'>\
<li data-role='insert' {{#insertable}}style='display: none'{{/insertable}}><a href='#' data-action='insertFile' class='ipsAttach_selection' data-ipsTooltip title='{{#lang}}insertIntoPost{{/lang}}'><i class='fa-solid fa-plus'></i></a></li>\
@@ -1879,7 +1879,7 @@
ips.templates.set('gallery.submit.imageItemWrapper', " \
<div class='cGallerySubmit_fileList'>{{{content}}}</div>\
");]]></file>
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.notes.wrapper', " \
<file javascript_app="gallery" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.view.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set('gallery.notes.wrapper', " \
<div class='cGalleryNote' data-controller='gallery.front.view.note' data-noteID='{{id}}' data-note=\"{{note}}\" {{#editable}}data-editable{{/editable}} data-posLeft='{{left}}' data-posTop='{{top}}' data-dimWidth='{{width}}' data-dimHeight='{{height}}'>\
<div class='cGalleryNote_border'></div>\
<div class='cGalleryNote_note' style='display: none'>\
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="gallery" version="5000028">
<app key="gallery" version="5000029">
<word key="__app_gallery" js="0">Gallery</word>
<word key="frontnavigation_gallery" js="0">Gallery</word>
<word key="gallery_title" js="0">Gallery</word>
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": false,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
+7
View File
@@ -440,6 +440,13 @@ class Application extends SystemApplication
'app' => 'core',
'key' => 'Menu',
'title' => Member::loggedIn()->language()->get( 'module__nexus_store' ),
'icon' => json_encode( [ [
'key' => 'cart-shopping:fas',
'type' => 'fa',
'raw' => '<i class="fa-solid fa-cart-shopping"></i>',
'title' => 'cart-shopping',
'html' => '\r\n<!-- theme_core_global_global_icon --><span class="ipsIcon ipsIcon--fa" data-label="cart-shopping" aria-hidden="true"><i class="fa-solid fa-cart-shopping"></i></span>'
] ] ),
'children' => array(
array( 'key' => 'Store' ),
array( 'key' => 'Gifts' ),
+19 -19
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<javascript app="nexus">
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.register.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -34,7 +34,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/checkout" javascript_name="ips.checkout.review.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -91,7 +91,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/forms" javascript_name="ips.forms.businessAddressVat.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/forms" javascript_name="ips.forms.businessAddressVat.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -130,7 +130,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripe.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -471,7 +471,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripepaymentrequest.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/gateways" javascript_name="ips.gateways.stripepaymentrequest.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200">/**
* IPS Community Suite 4
* (c) 2017 Invision Power Services - http://www.invisionpower.com
*
@@ -552,7 +552,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="global" javascript_path="controllers/misc" javascript_name="ips.misc.print.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -574,7 +574,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/notifications" javascript_name="ips.notifications.pendingTransactions.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000100">/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/notifications" javascript_name="ips.notifications.pendingTransactions.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000100">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -654,7 +654,7 @@
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productoptions.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -709,7 +709,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150"><![CDATA[/**
<file javascript_app="nexus" javascript_location="admin" javascript_path="controllers/store" javascript_name="ips.store.productselector.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -769,7 +769,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.cartReview.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -869,7 +869,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.category.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.category.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -977,7 +977,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.currencySelect.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1020,7 +1020,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.giftCard.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1108,7 +1108,7 @@
}
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.packagePage.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1385,7 +1385,7 @@
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000200"><![CDATA[/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/store" javascript_name="ips.store.register.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000200"><![CDATA[/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1534,7 +1534,7 @@
},
});
}(jQuery, _));]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/subscriptions" javascript_name="ips.subscriptions.main.js" javascript_type="controller" javascript_version="5000028" javascript_position="1000150">/**
<file javascript_app="nexus" javascript_location="front" javascript_path="controllers/subscriptions" javascript_name="ips.subscriptions.main.js" javascript_type="controller" javascript_version="5000029" javascript_position="1000150">/**
* Invision Community
* (c) Invision Power Services, Inc. - https://www.invisioncommunity.com
*
@@ -1572,7 +1572,7 @@
}
});
}(jQuery, _));</file>
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.store.images', `
<file javascript_app="nexus" javascript_location="admin" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.store.images', `
<div class='ipsUploader__row ipsUploader__row--image ipsAttach {{#done}}ipsAttach_done{{/done}}' id='{{id}}' data-role='file' data-fileid='{{id}}' data-fullsizeurl='{{imagesrc}}' data-thumbnailurl='{{thumbnail}}' data-fileType='image'>
<div class='ipsUploader__rowPreview' data-role='preview'>
{{#thumb}}
@@ -1605,12 +1605,12 @@
ips.templates.set('nexus.store.imagesWrapper', `
<div class='ipsUploader__container ipsUploader__container--images'>{{{content}}}</div>
`);]]></file>
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<file javascript_app="nexus" javascript_location="front" javascript_path="templates" javascript_name="ips.templates.store.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.store.productImage', " \
<a href='{{fullURL}}' data-fullURL='{{fullURL}}' class='cNexusProduct_primaryImage' data-ipsLightbox data-ipsLightbox-group='product' style='background-image:url({{thumbURL}})'>\
<img src='{{thumbURL}}' alt=''>\
</a>\
");]]></file>
<file javascript_app="nexus" javascript_location="global" javascript_path="templates" javascript_name="ips.templates.gateways.js" javascript_type="template" javascript_version="5000028" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.gateway.vaultAccount', " \
<file javascript_app="nexus" javascript_location="global" javascript_path="templates" javascript_name="ips.templates.gateways.js" javascript_type="template" javascript_version="5000029" javascript_position="1000050"><![CDATA[ips.templates.set('nexus.gateway.vaultAccount', " \
<li>\
<input type='radio' name='{{fieldName}}[stored]' value='{{value}}' id='{{fieldName}}_stored{{random}}' data-control='toggle' data-toggles='{{fieldName}}_existing' class='ipsInput ipsInput--toggle'>\
<div class='ipsFieldList__content'>\
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<language>
<app key="nexus" version="5000028">
<app key="nexus" version="5000029">
<word key="__app_nexus" js="0">Commerce</word>
<word key="menutab__nexus" js="0">Commerce</word>
<word key="menutab__nexus_icon" js="0">usd</word>
+2 -1
View File
@@ -277,5 +277,6 @@
"5000025": "5.0.0 Alpha 16",
"5000026": "5.0.0 Beta 1",
"5000027": "5.0.0 Beta 2",
"5000028": "5.0.0 Beta 2"
"5000028": "5.0.0 Beta 2",
"5000029": "5.0.0 Beta 3"
}
@@ -304,7 +304,7 @@ class subscriptions extends Controller
}
$options['cancel'] = Url::internal( "app=nexus&module=subscriptions&controller=subscriptions" );
Output::i()->output = Theme::i()->getTemplate( 'global', 'core' )->decision( 'subscription_delete_blurb', $options );
Output::i()->output = Theme::i()->getTemplate( 'global', 'core', 'global' )->decision( 'subscription_delete_blurb', $options );
return;
}
@@ -519,7 +519,7 @@ class subscriptions extends Controller
existing purchases unnecessarily */
if ( !empty( $changes ) AND $purchases )
{
Output::i()->output = Theme::i()->getTemplate( 'global', 'core' )->decision( 'product_change_blurb', array(
Output::i()->output = Theme::i()->getTemplate( 'global', 'core', 'global' )->decision( 'product_change_blurb', array(
'product_change_blurb_existing' => Url::internal( "app=nexus&module=subscriptions&controller=subscriptions&do=updateExisting&id={$new->_id}" )->setQueryString( 'changes', json_encode( $changes ) )->csrf(),
'product_change_blurb_new' => $this->url->setQueryString( array( 'root' => ( $new->parent() ? $new->parent()->_id : '' ) ) ),
) );
@@ -677,7 +677,7 @@ class subscriptions extends Controller
) )->csrf();
}
Output::i()->output = Theme::i()->getTemplate( 'global', 'core' )->decision( 'change_renew_ba_blurb', $options );
Output::i()->output = Theme::i()->getTemplate( 'global', 'core', 'global' )->decision( 'change_renew_ba_blurb', $options );
return;
}
}
@@ -0,0 +1,22 @@
{
"id": 5000029,
"name": "5.0.0 Beta 3",
"steps": {
"queries": false,
"lang": false,
"theme": false,
"themeeditor": true,
"javascript": false,
"emailTemplates": false,
"acpSearchKeywords": false,
"settings": false,
"tasks": false,
"modules": false,
"widgets": false,
"customOptions": false,
"customRoutines": false
},
"forceMainUpgrader": false,
"forceManualDownloadNoCiC": false,
"forceManualDownloadCiC": false
}
@@ -0,0 +1,14 @@
{
"categories": {
"added": [],
"edited": [],
"removed": []
},
"settings": {
"added": [],
"edited": [
"layout_store_view"
],
"removed": []
}
}
@@ -746,9 +746,10 @@ class Package extends Model
return new Money( $priceOfThisPackage - $priceOfExistingPackage, $currency );
case 2:
if ( !$purchase->renewals )
/* If there are no renewals, we charge full price no matter what */
if ( !$purchase->renewals and !$purchase->expire )
{
return new Money( 0, $currency );
return new Money( $priceOfThisPackage, $currency );
}
if ( !$renewalOptionsOnNewPackage )
{
@@ -757,11 +758,11 @@ class Package extends Model
/* What is the closest renewal option on the new package? We'll use that one */
$renewalOptionsInDays = array();
$term = ( new RenewalTerm( new Money( $renewalOptionsOnNewPackage['cost'][ $currency ]['amount'], $currency ), new DateInterval( 'P' . $renewalOptionsOnNewPackage['term'] . mb_strtoupper( $renewalOptionsOnNewPackage['unit'] ) ), $purchase->renewals->tax ) );
$term = ( new RenewalTerm( new Money( $renewalOptionsOnNewPackage['cost'][ $currency ]['amount'], $currency ), new DateInterval( 'P' . $renewalOptionsOnNewPackage['term'] . mb_strtoupper( $renewalOptionsOnNewPackage['unit'] ) ), $purchase->renewals?->tax ) );
$renewalOptionsInDays[ $term->days() ] = $term;
$closestRenewalOption = null;
$numberOfDaysInCurrentRenewalTerm = $purchase->renewals->days();
$numberOfDaysInCurrentRenewalTerm = $purchase->renewals ? $purchase->renewals->days() : ( $purchase->expire ? $purchase->start->diff( $purchase->expire )->days : 0 );
foreach ( $renewalOptionsInDays as $days => $term )
{
if ( $closestRenewalOption === null or abs( $numberOfDaysInCurrentRenewalTerm - $closestRenewalOption ) > abs( $days - $numberOfDaysInCurrentRenewalTerm ) )
@@ -770,6 +771,7 @@ class Package extends Model
}
}
$renewalTermToUse = $renewalOptionsInDays[ $closestRenewalOption ];
$numberOfDaysInCurrentRenewalTerm = new Number( (string) round( $numberOfDaysInCurrentRenewalTerm ) );
/* If the purchase is not active, it is the full cost */
@@ -779,22 +781,49 @@ class Package extends Model
}
/* Current Period Start Date */
$startOfCurrentPeriod = $purchase->expire->sub( $purchase->renewals->interval );
if( $purchase->expire instanceof DateTime and $purchase->renewals )
{
$startOfCurrentPeriod = $purchase->expire->sub( $purchase->renewals->interval );
}
else
{
/* If the purchase does not expire, we have to do some fun logic here */
$timeSincePurchase = $purchase->start->diff( DateTime::create() );
$daysUsedSincePurchase = new Number( (string)DateTime::intervalToDays( $timeSincePurchase ) );
/* If we used less than a full renewal period, then set the start to the purchase date */
if( $daysUsedSincePurchase->compare( $numberOfDaysInCurrentRenewalTerm ) <= 0 )
{
$startOfCurrentPeriod = $purchase->start;
}
else
{
/* Otherwise loop through all the used intervals */
$start = clone $purchase->start;
while( $daysUsedSincePurchase->compare( $numberOfDaysInCurrentRenewalTerm ) > 0 )
{
$start = $start->add( $purchase->renewals->interval );
$timeSincePurchase = $start->diff( DateTime::create() );
$daysUsedSincePurchase = new Number( (string)DateTime::intervalToDays( $timeSincePurchase ) );
}
$startOfCurrentPeriod = $start;
}
}
/* DateInterval of time between subscription start and now */
$timeSinceStartOfCurrentPeriod = $startOfCurrentPeriod->diff( DateTime::create() );
$numberOfDaysInCurrentRenewalTerm = new Number( (string) round( $numberOfDaysInCurrentRenewalTerm ) );
/* Count Days in Period */
$daysUsedInPeriod = new Number( (string)DateTime::intervalToDays( $timeSinceStartOfCurrentPeriod ) );
$daysRemainingInPeriod = new Number( (string) $numberOfDaysInCurrentRenewalTerm->subtract( $daysUsedInPeriod ) );
/* Currency Worth of value used in current sub */
$valueUsedOfSubscription = $purchase->renewals->cost->amount->divide( $numberOfDaysInCurrentRenewalTerm )->multiply( $daysUsedInPeriod );
$valueUsedOfSubscription = $purchase->renewals ? $purchase->renewals->cost->amount->divide( $numberOfDaysInCurrentRenewalTerm )->multiply( $daysUsedInPeriod ) : new Money( new Number( '0' ), $currency );
/* If there are no days left, charge the full amount */
if ( !$daysRemainingInPeriod->isGreaterThanZero() )
{
return new Money( new Number('0'), $currency );
return new Money( $priceOfThisPackage, $currency );
}
elseif( $priceOfExistingPackage > $priceOfThisPackage )
{
@@ -804,7 +833,21 @@ class Package extends Model
}
else
{
return new Money( $renewalTermToUse->cost->amount->subtract( $valueUsedOfSubscription ), $currency );
/* If we have renewals, then we have a valid value to use */
if( $purchase->renewals )
{
return new Money( $renewalTermToUse->cost->amount->subtract( $valueUsedOfSubscription ), $currency );
}
else
{
/* Otherwise we have to calculate the cost based on how much time is left */
$cost = new Money( $renewalTermToUse->costPerDay()->amount->multiply( $daysRemainingInPeriod ), $currency );
if( $cost->amount->compare( new Number( $priceOfThisPackage ) ) == 1 )
{
$cost = new Money( $priceOfThisPackage, $currency );
}
return $cost;
}
}
}
+2 -2
View File
@@ -141,7 +141,7 @@ class IPS
}
else
{
$uniqueKey = mb_substr( md5( 'b1c84133' . '$Rev: 3023$'), 10, 10 );
$uniqueKey = mb_substr( md5( '4ee4d7c1' . '$Rev: 3023$'), 10, 10 );
}
$staticKey = null;
@@ -484,7 +484,7 @@ class IPS
// CACHEBUST_KEY to be a "for reals, will change every release" one. DO NOT set a value
// for it in constants.php
'SUITE_UNIQUE_KEY' => $uniqueKey,
'CACHEBUST_KEY' => mb_substr( md5( 'b1c84133' . '$Rev: 3023$'), 10, 10 ),
'CACHEBUST_KEY' => mb_substr( md5( '4ee4d7c1' . '$Rev: 3023$'), 10, 10 ),
// Thumbnail size
// This needs to be hardcoded rather than configurable because it's the smallest size that
+1 -1
View File
@@ -1 +1 @@
.cCalendar{width:100%;table-layout:fixed;}@media (min-width:767px){.cCalendar{width:calc(100% + 2px);margin:-1px;margin-top:0;}}.cCalendar th{background:var(--i-background_4);border:1px solid var(--i-background_5);padding:.8em;font-weight:500;}.cCalendarIcon{display:inline-block;width:18px;height:18px;border-radius:5px;margin-inline-end:5px;}.cCalendar td{width:14.285%;min-height:100px;border:1px solid var(--i-background_4);vertical-align:top;padding:.5em;}.cCalendar td > div{height:100%;min-height:100px;position:relative;}.cCalendar td.cCalendar_nonDate{background:var(--i-background_2);}.cCalendar td.cCalendar_today{background:var(--i-background_dark);color:var(--i-color_background-dark-contrast);}.cCalendar_dayNumber{color:inherit;font-size:1.1em;font-weight:600;display:inline-block;}.cCalendar_miniAddEvent{padding:.2em .4em;background:var(--i-background_4);color:inherit;display:inline-block;border-radius:5px;opacity:0;transition:0.2s all ease-in-out;margin-inline-start:.5em;}.cCalendar td:hover .cCalendar_miniAddEvent{opacity:.5;}.cCalendar td .cCalendar_miniAddEvent:hover{opacity:1;}.cCalendar_today .cCalendar_miniAddEvent{background:none;}a.cEvents_event, .cEvents_event a, .cEvents_event.cEvents_empty span{display:block;line-height:28px;height:28px;font-size:var(--i-font-size_-1);padding:0 1em;color:#fff;border-radius:20px;white-space:nowrap;overflow:hidden;background:var(--i-background_dark);}a.cEvents_style_blank, .cEvents_style_blank a, .cCalendarIcon.cEvents_style_blank{background-color:transparent;border:1px solid var(--i-background_5);}a.cEvents_event.cEvents_eventSmall, .cEvents_event.cEvents_eventSmall a, .cEvents_event.cEvents_eventSmall.cEvents_empty span{font-size:var(--i-font-size_-2);display:inline-block;}.cEvents_time{font-size:max(10px, .7em);text-transform:uppercase;opacity:0.7;}.cEvents_event.cEvents_empty span{background:transparent;}.cEvents_single .cEvents_event a{border-radius:20px;}.cEvents_ranged .cEvents_event a{border-radius:0;}.cEvents_ranged .cEvents_event:not(.cEvents_first) a{margin-inline-start:-7px;padding-inline-start:8px;}.cEvents_ranged .cEvents_event:not(.cEvents_last) a{margin-inline-end:-8px;}.cEvents_ranged .cEvents_event.cEvents_first a{border-start-start-radius:20px;border-end-start-radius:20px;}.cEvents_ranged .cEvents_event.cEvents_last a{border-start-end-radius:20px;border-end-end-radius:20px;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a, tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a span{font-size:0;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a img{display:none;}.cEvents__sidebarOnlineLogo{display:flex;align-items:center;justify-content:center;color:var(--i-color_soft);}.cEvents__sidebarOnlineLogo svg{height:.8em;width:auto;margin:0 .4em;}.cCalendarBlock_map{text-align:center;margin:1em auto;}.cCalendar_shortInput{width:auto;}.cCalendarSubmit_field{display:inline-block;position:relative;}.cCalendarSubmit_field input{padding-inline-start:35px !important;}.cCalendarSubmit_field i[class*=" fa-"]{position:absolute;color:var(--i-color_soft);top:50%;inset-inline-start:1em;transform:translateY(-50%);font-size:1em;opacity:.5;pointer-events:none;}#event_remind_me [type="number"]{max-width:60px;}.eventStreamDate .cCalendarEmbed_calendar{background:var(--i-background_2);}.eventStreamDate .ipsCalendarDate{width:80px;}.cEvents__overview-header{display:grid;gap:var(--i-sp_block);}@media (min-width:767px){.cEvents__overview-header:has(.cEvents__overview-featured){grid-template-columns:1fr max(340px, 30%);}}.ipsData--events-featured{--i-data--max:1;--i-data--gap:0px;--i-data--radius:0 0 var(--i-box--bo-ra) var(--i-box--bo-ra);--i-data--desc-truncate:2;--i-data--display-desc:initial;}.ipsData--events-featured .ipsData__content{padding-inline-start:6em;}.ipsData--events-featured .ipsCalendarDate{width:3.3em;position:absolute;top:6em;inset-inline-start:1.5em;}[data-ips-scheme="light"] .ipsData--events-featured .ipsCalendarDate__date{color:hsl(0 0% 30%);}.cEvents__search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1em;}.cEvents__search > *{flex:1 1 100%;}.cEvents__search__field--date{flex-basis:280px;}.cEvents__search__field--date input{max-width:none;}.cEvents__search__label{color:var(--i-color_hard);font-size:11px;text-transform:uppercase;display:block;font-weight:500;margin-bottom:0.4em;}.cEvents__search__searchWrap :is([type="text"], [type="search"]){flex:1 1 auto;}@media (max-width:767px){.ipsEventSearch__searchLocation span{display:none;}}.ipsEventSearch .ipsField_loading{background-image:url('"../resources/core_cf5a1e7fc191338071d07df134b620d0_tiny_loading@2x.gif"') !important;background-size:14px 14px;background-repeat:no-repeat;background-position:right 5px center;}.cEvents__searchMap{height:350px;background:var(--i-background_3);}.cEvents__searchMap--loading > *{display:none;}.ipsData--eventLine truncated
.cCalendar{width:100%;table-layout:fixed;}@media (min-width:767px){.cCalendar{width:calc(100% + 2px);margin:-1px;margin-top:0;}}.cCalendar th{background:var(--i-background_4);border:1px solid var(--i-background_5);padding:.8em;font-weight:500;}.cCalendarIcon{display:inline-block;width:18px;height:18px;border-radius:5px;margin-inline-end:5px;vertical-align:middle;}.cCalendar td{width:14.285%;min-height:100px;border:1px solid var(--i-background_4);vertical-align:top;padding:.5em;}.cCalendar td > div{height:100%;min-height:100px;position:relative;}.cCalendar td.cCalendar_nonDate{background:var(--i-background_2);}.cCalendar td.cCalendar_today{background:var(--i-background_dark);color:var(--i-color_background-dark-contrast);}.cCalendar_dayNumber{color:inherit;font-size:1.1em;font-weight:600;display:inline-block;}.cCalendar_miniAddEvent{padding:.2em .4em;background:var(--i-background_4);color:inherit;display:inline-block;border-radius:5px;opacity:0;transition:0.2s all ease-in-out;margin-inline-start:.5em;}.cCalendar td:hover .cCalendar_miniAddEvent{opacity:.5;}.cCalendar td .cCalendar_miniAddEvent:hover{opacity:1;}.cCalendar_today .cCalendar_miniAddEvent{background:none;}a.cEvents_event, .cEvents_event a, .cEvents_event.cEvents_empty span{display:block;line-height:28px;height:28px;font-size:var(--i-font-size_-1);padding:0 1em;color:#fff;border-radius:20px;white-space:nowrap;overflow:hidden;background:var(--i-background_dark);}a.cEvents_style_blank, .cEvents_style_blank a, .cCalendarIcon.cEvents_style_blank{background-color:transparent;border:1px solid var(--i-background_5);}a.cEvents_event.cEvents_eventSmall, .cEvents_event.cEvents_eventSmall a, .cEvents_event.cEvents_eventSmall.cEvents_empty span{font-size:var(--i-font-size_-2);display:inline-block;}.cEvents_time{font-size:max(10px, .7em);text-transform:uppercase;opacity:0.7;}.cEvents_event.cEvents_empty span{background:transparent;}.cEvents_single .cEvents_event a{border-radius:20px;}.cEvents_ranged .cEvents_event a{border-radius:0;}.cEvents_ranged .cEvents_event:not(.cEvents_first) a{margin-inline-start:-7px;padding-inline-start:8px;}.cEvents_ranged .cEvents_event:not(.cEvents_last) a{margin-inline-end:-8px;}.cEvents_ranged .cEvents_event.cEvents_first a{border-start-start-radius:20px;border-end-start-radius:20px;}.cEvents_ranged .cEvents_event.cEvents_last a{border-start-end-radius:20px;border-end-end-radius:20px;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a, tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a span{font-size:0;}tr td:not(:first-child):not(.cCalendar_firstDay) .cEvents_ranged .cEvents_event:not(.cEvents_first) a img{display:none;}.cEvents__sidebarOnlineLogo{display:flex;align-items:center;justify-content:center;color:var(--i-color_soft);}.cEvents__sidebarOnlineLogo svg{height:.8em;width:auto;margin:0 .4em;}.cCalendarBlock_map{text-align:center;margin:1em auto;}.cCalendar_shortInput{width:auto;}.cCalendarSubmit_field{display:inline-block;position:relative;}.cCalendarSubmit_field input{padding-inline-start:35px !important;}.cCalendarSubmit_field i[class*=" fa-"]{position:absolute;color:var(--i-color_soft);top:50%;inset-inline-start:1em;transform:translateY(-50%);font-size:1em;opacity:.5;pointer-events:none;}#event_remind_me [type="number"]{max-width:60px;}.eventStreamDate .cCalendarEmbed_calendar{background:var(--i-background_2);}.eventStreamDate .ipsCalendarDate{width:80px;}.cEvents__overview-header{display:grid;gap:var(--i-sp_block);}@media (min-width:767px){.cEvents__overview-header:has(.cEvents__overview-featured){grid-template-columns:1fr max(340px, 30%);}}.ipsData--events-featured{--i-data--max:1;--i-data--gap:0px;--i-data--radius:0 0 var(--i-box--bo-ra) var(--i-box--bo-ra);--i-data--desc-truncate:2;--i-data--display-desc:initial;}.ipsData--events-featured .ipsData__content{padding-inline-start:6em;}.ipsData--events-featured .ipsCalendarDate{width:3.3em;position:absolute;top:6em;inset-inline-start:1.5em;}[data-ips-scheme="light"] .ipsData--events-featured .ipsCalendarDate__date{color:hsl(0 0% 30%);}.cEvents__search{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1em;}.cEvents__search > *{flex:1 1 100%;}.cEvents__search__field--date{flex-basis:280px;}.cEvents__search__field--date input{max-width:none;}.cEvents__search__label{color:var(--i-color_hard);font-size:11px;text-transform:uppercase;display:block;font-weight:500;margin-bottom:0.4em;}.cEvents__search__searchWrap :is([type="text"], [type="search"]){flex:1 1 auto;}@media (max-width:767px){.ipsEventSearch__searchLocation span{display:none;}}.ipsEventSearch .ipsField_loading{background-image:url('"../resources/core_cf5a1e7fc191338071d07df134b620d0_tiny_loading@2x.gif"') !important;background-size:14px 14px;background-repeat:no-repeat;background-position:right 5px center;}.cEvents__searchMap{height:350px;background:var(--i-background_3);}.cEvents__searchMap--loading > *{displayLine truncated
+1 -1
View File
@@ -1 +1 @@
.ipsControlStrip{display:flex;gap:4px;position:relative;z-index:1;}.ipsControlStrip > *{flex:1 1 auto;}.ipsControlStrip a{display:flex;align-items:center;justify-content:center;color:inherit;font-size:14px;min-width:2.4em;min-height:2.4em;border-radius:5px;}.ipsControlStrip_disabled{background:transparent;pointer-events:none;}.ipsControlStrip_disabled .ipsControlStrip_icon{opacity:.5;}:where(.ipsTree_row:hover .ipsControlStrip a){background:var(--i-background_3);}@media (hover:none){.ipsControlStrip a:not(:hover){background:var(--i-background_3);}}.ipsControlStrip a:hover{color:var(--i-primary-contrast);background:var(--i-primary);}:where(.ipsControlStrip:not(.ipsControlStrip_showText) .ipsControlStrip_item){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.ipsControlStrip_showText a{width:auto;padding:0 .7em;}.ipsControlStrip_item:where(:not(.ipsMenu *)){font-size:.9em;margin-inline-start:.6em;font-weight:600;}.ipsWidthHeight{background:#fff;border:1px dashed #000;margin-bottom:10px;}[dir="rtl"] .ipsWidthHeight{display:none;}.ui-icon-gripsmall-diagonal-se{background:url('../resources/core_84c1e40ea0e759e3f1505eb1788ddf3c_resizable.png');}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;}.ui-resizable-se{cursor:nwse-resize;width:12px;height:12px;right:0px;bottom:0px;}[data-ips-scheme="light"] .ipsFieldRow_searchResult{background-color:#f4e5c4;border-color:#ebc46f;color:#7a5206;}[data-ips-scheme="dark"] .ipsFieldRow_searchResult{background-color:#534531;border-color:#786743;color:#f8e5d4;}[data-controller="ips.core.badgepreview"] svg{width:180px;}@media (min-width:1100px){.ipsBadgePicker--form{display:grid;grid-template-columns:180px 1fr 1fr 1fr;}:where(.ipsBadgePicker--form > li){grid-column:1/-1;}.ipsFieldRow--badge-creator-preview .ipsFieldRow__content{position:sticky;top:90px;}.ipsFieldRow--badge-creator{grid-column:auto;align-content:start !important;}.ipsFieldRow--badge-creator:not(.ipsHide, [hidden]){display:grid !important;grid-template-columns:1fr !important;}.ipsFieldRow--badge-creator .ipsFieldRow__label{text-align:start !important;display:flex !important;}.ipsFieldRow--badge-creator .ipsFieldRow__required{flex:0 0 auto !important;}.ipsFieldRow--badge-creator .sp-colorize{max-width:none;}.ipsFieldRow--badge-creator-preview:not([hidden], .ipsHide, #x){grid-column:1/2;grid-row-end:span 5;display:block !important;}.ipsFieldRow--badge-creator-icon{grid-column:3/5;}[data-controller="ips.core.badgepreview"] svg, .ipsFieldRow--badge-creator .sp-colorize-container{width:100%;}.ipsFieldRow--badge-creator [data-controller="core.admin.core.nodeCopySetting"]{display:none;}}.acpFormTabContent .ipsBox{border-width:0;border-radius:0;}:root{--i-layout-gutter:15px;}svg[style*="hidden"] rect[fill="#ffffff"], svg[style*="hidden"] path[fill="#ffffff"]{fill:var(--i-background_1);}svg[style*="hidden"] rect[fill="#edf0f5"]{fill:var(--i-background_1);}svg[style*="hidden"] text[fill="#444444"]{fill:var(--i-color_soft);}svg[style*="hidden"] text[fill="#222222"]{fill:var(--i-color_hard);}svg[style*="hidden"] text[fill="#000000"]{fill:var(--i-color_hard);}svg[style*="hidden"] rect[width="1"], svg[style*="hidden"] rect[height="1"]{fill:var(--i-background_3);}#elLogo{height:62px;display:flex;align-items:center;justify-content:center;}#elLogo img{width:30px;}#acpAppList .ipsNotification{top:3px;inset-inline-end:3px;}#acpAppList .acpAppList__sub .ipsNotification{position:static;margin-inline-start:1em;}#acpAppList #elHideMenu{width:16px;height:32px;line-height:32px;position:fixed;bottom:0;z-index:6000;background:var(--i-background_1);border-radius:5px 0 0 0;}#acpAppList #elHideMenu a{color:inherit !important;}body.cAdminDevModeOn #acpAppList #elHideMenu{bottom:60px;}#acpAppList #elHideMenu{inset-inline-start:54px;inset-inline-start:calc(60px - 16px);}#acpAppList #elHideMenu a{padding:0 !important;height:100% !important;}.acpSearch{background:var(--i-background_3);color:var(--i-color_root);border-radius:6px;flex:1 1 100%;display:flex;align-items:center;height:41px;margin-inline-end:10px;}.acpSearch:focus-within{background:var(--i-background_1);outline:2px solid var(--i-primary);outline-offset:-1px;}.acpSearch .fa-magnifying-glass{margin:0 1em;opacity:.6;}#acpSearchKeyword{border:0;background:transparent;max-width:100%;padding:.75em 0;color:inherit;box-shadow:none;flex:1 1 100%;outline:none;}#acpSearchKeyword::-webkit-input-placeholder{color:var(--i-color_soft);opacity:1;}#acpSearchKeyword::placeholder{color:var(--i-color_soft);opacity:1;}#elAdminControls{display:flex;align-items:center;flex:0 0 auto;font-size:13px;font-weight:600;margin-inline-start:auto;}#elAdminControls a{color:inherit;display:flex;align-items:center;gap:.5em;padding:0 15px;border-radius:4px;min-height:40px;}#elAdminControls a:hover{background:var(--i-background_3);}#elAdminControls .acpHighlightLink_wrap{--i-co:129, 46%;color:hslLine truncated
.ipsControlStrip{display:flex;gap:4px;position:relative;z-index:1;}.ipsControlStrip > *{flex:1 1 auto;}.ipsControlStrip a{display:flex;align-items:center;justify-content:center;color:inherit;font-size:14px;min-width:2.4em;min-height:2.4em;border-radius:5px;}.ipsControlStrip_disabled{background:transparent;pointer-events:none;}.ipsControlStrip_disabled .ipsControlStrip_icon{opacity:.5;}:where(.ipsTree_row:hover .ipsControlStrip a){background:var(--i-background_3);}@media (hover:none){.ipsControlStrip a:not(:hover){background:var(--i-background_3);}}.ipsControlStrip a:hover{color:var(--i-primary-contrast);background:var(--i-primary);}:where(.ipsControlStrip:not(.ipsControlStrip_showText) .ipsControlStrip_item){border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px;}.ipsControlStrip_showText a{width:auto;padding:0 .7em;}.ipsControlStrip_item:where(:not(.ipsMenu *)){font-size:.9em;margin-inline-start:.6em;font-weight:600;}.ipsWidthHeight{background:#fff;border:1px dashed #000;margin-bottom:10px;}[dir="rtl"] .ipsWidthHeight{display:none;}.ui-icon-gripsmall-diagonal-se{background:url('../resources/core_84c1e40ea0e759e3f1505eb1788ddf3c_resizable.png');}.ui-resizable{position:relative;}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;}.ui-resizable-se{cursor:nwse-resize;width:12px;height:12px;right:0px;bottom:0px;}[data-ips-scheme="light"] .ipsFieldRow_searchResult{background-color:#f4e5c4;border-color:#ebc46f;color:#7a5206;}[data-ips-scheme="dark"] .ipsFieldRow_searchResult{background-color:#534531;border-color:#786743;color:#f8e5d4;}[data-controller="ips.core.badgepreview"] svg{width:180px;}@media (min-width:1100px){.ipsBadgePicker--form{display:grid;grid-template-columns:180px 1fr 1fr 1fr;}:where(.ipsBadgePicker--form > li){grid-column:1/-1;}.ipsFieldRow--badge-creator-preview .ipsFieldRow__content{position:sticky;top:90px;}.ipsFieldRow--badge-creator{grid-column:auto;align-content:start !important;}.ipsFieldRow--badge-creator:not(.ipsHide, [hidden]){display:grid !important;grid-template-columns:1fr !important;}.ipsFieldRow--badge-creator .ipsFieldRow__label{text-align:start !important;display:flex !important;}.ipsFieldRow--badge-creator .ipsFieldRow__required{flex:0 0 auto !important;}.ipsFieldRow--badge-creator .sp-colorize{max-width:none;}.ipsFieldRow--badge-creator-preview:not([hidden], .ipsHide, #x){grid-column:1/2;grid-row-end:span 5;display:block !important;}.ipsFieldRow--badge-creator-icon{grid-column:3/5;}[data-controller="ips.core.badgepreview"] svg, .ipsFieldRow--badge-creator .sp-colorize-container{width:100%;}.ipsFieldRow--badge-creator [data-controller="core.admin.core.nodeCopySetting"]{display:none;}}.acpFormTabContent .ipsBox{border-width:0;border-radius:0;}:root{--i-layout-gutter:15px;}svg[style*="hidden"] rect[fill="#ffffff"], svg[style*="hidden"] path[fill="#ffffff"]{fill:var(--i-background_1);}svg[style*="hidden"] rect[fill="#edf0f5"]{fill:var(--i-background_1);}svg[style*="hidden"] text[fill="#444444"]{fill:var(--i-color_soft);}svg[style*="hidden"] text[fill="#222222"]{fill:var(--i-color_hard);}svg[style*="hidden"] text[fill="#000000"]{fill:var(--i-color_hard);}svg[style*="hidden"] rect[width="1"], svg[style*="hidden"] rect[height="1"]{fill:var(--i-background_3);}#elLogo{height:62px;display:flex;align-items:center;justify-content:center;}#elLogo img{width:30px;}#acpAppList .ipsNotification{top:3px;inset-inline-end:3px;}#acpAppList .acpAppList__sub .ipsNotification{position:static;margin-inline-start:1em;}#acpAppList #elHideMenu{width:16px;height:32px;line-height:32px;position:fixed;bottom:0;z-index:6000;background:var(--i-background_1);border-radius:5px 0 0 0;}#acpAppList #elHideMenu a{color:inherit !important;}body.cAdminDevModeOn #acpAppList #elHideMenu{bottom:60px;}#acpAppList #elHideMenu{inset-inline-start:54px;inset-inline-start:calc(60px - 16px);}#acpAppList #elHideMenu a{padding:0 !important;height:100% !important;}.acpSearch{background:var(--i-background_3);color:var(--i-color_root);border-radius:6px;flex:1 1 100%;display:flex;align-items:center;height:41px;margin-inline-end:10px;}.acpSearch:focus-within{background:var(--i-background_1);outline:2px solid var(--i-primary);outline-offset:-1px;}.acpSearch .fa-magnifying-glass{margin:0 1em;opacity:.6;}#acpSearchKeyword{border:0;background:transparent;max-width:100%;padding:.75em 0;color:inherit;box-shadow:none;flex:1 1 100%;outline:none;}#acpSearchKeyword::-webkit-input-placeholder{color:var(--i-color_soft);opacity:1;}#acpSearchKeyword::placeholder{color:var(--i-color_soft);opacity:1;}#elAdminControls{display:flex;align-items:center;flex:0 0 auto;font-size:13px;font-weight:600;margin-inline-start:auto;}#elAdminControls a{color:inherit;display:flex;align-items:center;gap:.5em;padding:0 15px;border-radius:4px;min-height:40px;}#elAdminControls a:hover{background:var(--i-background_3);}#elAdminControls .acpHighlightLink_wrap{--i-co:129, 46%;color:hslLine truncated
+1 -1
View File
@@ -1 +1 @@
[data-role="internalEmbed"]{background:var(--i-background_1);overflow:hidden;width:1px;min-width:100%;}html{background:var(--i-background_1);}[data-role="externalEmbed"]{overflow:hidden;}#ipsEmbedLoading{display:none;}.unloaded #ipsEmbedLoading{background:var(--i-background_1);display:grid;grid-template-columns:42px 1fr;grid-template-rows:42px 1fr;gap:20px;padding:20px;position:fixed;inset:0;}@keyframes dummy_anim{0%, 100%{opacity:.5}50%{opacity:1}}#ipsEmbedLoading::before, #ipsEmbedLoading::after, #ipsEmbedLoading span::before, #ipsEmbedLoading span::after{display:block;content:'';background:var(--i-background_5);border-radius:6px;animation:dummy_anim 2s infinite;}#ipsEmbedLoading::before{width:100%;aspect-ratio:1;border-radius:50%;}#ipsEmbedLoading span{display:grid;gap:.5em;}#ipsEmbedLoading span::before{width:80%;}#ipsEmbedLoading span::after{width:60%;}#ipsEmbedLoading::after{grid-column:span 2;}#ipsEmbed{opacity:0.0001;overflow:hidden;}
[data-role="internalEmbed"]{background:var(--i-background_1);}[data-role="externalEmbed"], [data-role="internalEmbed"]{overflow:hidden;}#ipsEmbedLoading{display:none;}.unloaded #ipsEmbedLoading{background:var(--i-background_1);display:grid;grid-template-columns:42px 1fr;grid-template-rows:42px 1fr;gap:20px;padding:20px;position:fixed;inset:0;}@keyframes dummy_anim{0%, 100%{opacity:.5}50%{opacity:1}}#ipsEmbedLoading::before, #ipsEmbedLoading::after, #ipsEmbedLoading span::before, #ipsEmbedLoading span::after{display:block;content:'';background:var(--i-background_5);border-radius:6px;animation:dummy_anim 2s infinite;}#ipsEmbedLoading::before{width:100%;aspect-ratio:1;border-radius:50%;}#ipsEmbedLoading span{display:grid;gap:.5em;}#ipsEmbedLoading span::before{width:80%;}#ipsEmbedLoading span::after{width:60%;}#ipsEmbedLoading::after{grid-column:span 2;}#ipsEmbed{opacity:0.0001;overflow:hidden;}#ipsEmbed .twitter-tweet{border-radius:15px;overflow:hidden;}
@@ -1 +1 @@
body{overflow:hidden;}[data-ips-scheme="light"] theme-editor{--panel--ba-co:hsl(220 20% 100%);--panel--ba-co-alt:hsl(220 20% 96%);--panel--ba-co-active:hsl(220 20% 88%);--panel--co:hsl(220 20% 30%);--panel--co_soft:hsl(220 20% 50%);--panel--co_hard:hsl(220 20% 0%);--panel--bo-co:hsl(220 20% 80%);--vte-tooltip:hsl(220 20% 20%);}[data-ips-scheme="dark"] theme-editor{--panel--ba-co:hsl(220 10% 12%);--panel--ba-co-alt:hsl(220 10% 23%);--panel--ba-co-active:hsl(220 10% 30%);--panel--co:hsl(220 10% 70%);--panel--co_soft:hsl(220 10% 50%);--panel--co_hard:hsl(220 10% 90%);--panel--bo-co:hsl(220 10% 30%);--vte-tooltip:hsl(220 10% 40%);}theme-editor{display:grid;grid-template-columns:1fr clamp(370px, 18vw, 450px);position:fixed;top:0;left:0;width:100%;height:100%;font-weight:normal;}theme-editor::-webkit-scrollbar{display:none;}theme-editor button{touch-action:manipulation;}theme-editor .i-color_soft{color:var(--panel--co_soft);}theme-editor .i-color_hard{color:var(--panel--co_hard);}live-preview{background:oklch(32% calc(clamp(0, 100 - var(--i-base-c), 1) * 5%) var(--i-base-h));display:flex;justify-content:center;align-items:center;position:relative;}live-preview iframe{width:100%;height:100%;max-width:100vw;max-height:100vh;transition:.5s;background:var(--panel--ba-co);}:is([data-workspace-size="small"], [data-workspace-size="medium"]) live-preview iframe{max-width:1180px;max-height:820px;height:calc(100vh - 20px);width:calc(100% - 20px);border-radius:10px;}[data-workspace-size="small"] live-preview iframe{max-width:393px;max-height:760px;}theme-editor[data-loading] live-preview::after{content:'';width:50px;height:50px;border-radius:50%;border:5px solid hsl(0 0% 100% / .4);border-top-color:#fff;animation:iframeLoad .6s linear infinite;position:absolute;margin:auto;}@keyframes iframeLoad{100%{transform:rotate(360deg);}}theme-editor[data-loading] live-preview iframe{opacity:0;}.editor__form{display:grid;grid-template-columns:auto 1fr;background:var(--panel--ba-co);color:var(--panel--co);box-shadow:hsl(0 0% 0% / .08) calc(var(--i-lang-dir) * -2px) 0px 0px;font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:14px;line-height:1.5;position:relative;}editor-panels{display:grid;grid-template-rows:1fr auto;grid-template-areas:'panel' 'footer';overflow:hidden;height:100%;}editor-buttons{border:0px solid var(--panel--bo-co);border-inline-end-width:1px;padding:6px;display:flex;flex-direction:column;}editor-buttons div{display:grid;gap:6px;flex:0 0 auto;}@media (min-width:701px){editor-buttons div:not(:last-of-type){margin-bottom:2em;padding-bottom:2em;border-bottom:1px solid var(--panel--bo-co);}}editor-buttons :is(a, button){position:relative;width:42px;height:42px;display:flex;align-items:center;justify-content:center;gap:.8em;border-radius:4px;color:inherit;}@media (any-hover:hover){editor-buttons :where(:is(a, button):hover){background-color:var(--panel--ba-co-alt);}}editor-buttons [data-active]{background-color:var(--panel--ba-co-active);}editor-buttons [type="submit"]{background:#46c371;color:#fff;}.editor-buttons__tooltip{position:absolute;inset-inline-end:calc(100% + 10px);top:50%;background:var(--vte-tooltip);color:#fff;padding:.4em 1em;border-radius:4px;white-space:nowrap;pointer-events:none;font-weight:bold;font-size:12px;transform:translateY(-50%);transition:.1s;}.editor-buttons__tooltip::after{content:'';border:5px solid transparent;border-inline-start-color:var(--vte-tooltip);position:absolute;inset-inline-start:100%;top:50%;transform:translateY(-50%);}editor-buttons :is(a, button):not(:hover) .editor-buttons__tooltip{transform:translateY(-50%) translateX(calc(-20px * var(--i-lang-dir)));opacity:0;}@media(hover:none){.editor-buttons__tooltip{display:none;}}editor-buttons [data-active] :is(.fa-lightbulb, .fa-moon){font-weight:900;}.editor-buttons__text{font-weight:600;}editor-panel{grid-area:panel;--panel-direction:1;display:flex;flex-direction:column;transition-property:opacity, transform;transition-duration:.3s;background-color:var(--panel--ba-co);}[data-panel-prev]{--panel-direction:-1;}editor-panel[aria-hidden="true"]{opacity:0;pointer-events:none;transform:translateX(calc(30% * var(--panel-direction)));}editor-panel[aria-hidden="false"]{z-index:1;}editor-panel > *{flex:0 0 auto;}editor-panel header{padding:clamp(1.2em, 5vw, 2em);}editor-panel header :is(h1, h2, h3, h4){font-weight:600;color:var(--panel--co_hard);font-size:1.4em;line-height:1.2;}editor-panel header p{font-weight:500;color:var(--panel--co_soft);margin-top:.4em;}[data-panel-nav="back"]{color:var(--panel--co);padding:1.4em;text-transform:uppercase;font-weight:600;font-size:.9em;border-bottom:1px solid;border-color:var(--panel--bo-co);}[data-panel-nav="back"]::before{content:'\2190';margin-inline-end:.5em;transition:transform .3s;display:inline-block;}[dir="rtl"] [data-panel-nav="back"]::before{transform:scaleXLine truncated
body{overflow:hidden;}[data-ips-scheme="light"] theme-editor{--panel--ba-co:hsl(220 20% 100%);--panel--ba-co-alt:hsl(220 20% 96%);--panel--ba-co-active:hsl(220 20% 88%);--panel--co:hsl(220 20% 30%);--panel--co_soft:hsl(220 20% 50%);--panel--co_hard:hsl(220 20% 0%);--panel--bo-co:hsl(220 20% 80%);--vte-tooltip:hsl(220 20% 20%);}[data-ips-scheme="dark"] theme-editor{--panel--ba-co:hsl(220 10% 12%);--panel--ba-co-alt:hsl(220 10% 23%);--panel--ba-co-active:hsl(220 10% 30%);--panel--co:hsl(220 10% 70%);--panel--co_soft:hsl(220 10% 50%);--panel--co_hard:hsl(220 10% 90%);--panel--bo-co:hsl(220 10% 30%);--vte-tooltip:hsl(220 10% 40%);}theme-editor{display:grid;grid-template-columns:1fr clamp(370px, 18vw, 450px);position:fixed;top:0;left:0;width:100%;height:100%;font-weight:normal;}theme-editor::-webkit-scrollbar{display:none;}theme-editor button{touch-action:manipulation;}theme-editor .i-color_soft{color:var(--panel--co_soft);}theme-editor .i-color_hard{color:var(--panel--co_hard);}live-preview{background:oklch(32% calc(clamp(0, 100 - var(--i-base-c), 1) * 5%) var(--i-base-h));display:flex;justify-content:center;align-items:center;position:relative;}live-preview iframe{width:100%;height:100%;max-width:100vw;max-height:100vh;transition:.5s;background:var(--panel--ba-co);}:is([data-workspace-size="small"], [data-workspace-size="medium"]) live-preview iframe{max-width:1180px;max-height:820px;height:calc(100vh - 20px);width:calc(100% - 20px);border-radius:10px;}[data-workspace-size="small"] live-preview iframe{max-width:393px;max-height:760px;}theme-editor[data-loading] live-preview::after{content:'';width:50px;height:50px;border-radius:50%;border:5px solid hsl(0 0% 100% / .4);border-top-color:#fff;animation:iframeLoad .6s linear infinite;position:absolute;margin:auto;}@keyframes iframeLoad{100%{transform:rotate(360deg);}}theme-editor[data-loading] live-preview iframe{opacity:0;}.editor__form{display:grid;grid-template-columns:auto 1fr;background:var(--panel--ba-co);color:var(--panel--co);box-shadow:hsl(0 0% 0% / .08) calc(var(--i-lang-dir) * -2px) 0px 0px;font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";font-size:14px;line-height:1.5;position:relative;}editor-panels{display:grid;grid-template-rows:1fr auto;grid-template-areas:'panel' 'footer';overflow:hidden;height:100%;}editor-buttons{border:0px solid var(--panel--bo-co);border-inline-end-width:1px;padding:6px;display:flex;flex-direction:column;}editor-buttons div{display:grid;gap:6px;flex:0 0 auto;}@media (min-width:701px){editor-buttons div:not(:last-of-type){margin-bottom:2em;padding-bottom:2em;border-bottom:1px solid var(--panel--bo-co);}}editor-buttons :is(a, button){position:relative;width:42px;height:42px;display:flex;align-items:center;justify-content:center;gap:.8em;border-radius:4px;color:inherit;}@media (any-hover:hover){editor-buttons :where(:is(a, button):hover){background-color:var(--panel--ba-co-alt);}}editor-buttons [data-active]{background-color:var(--panel--ba-co-active);}editor-buttons [type="submit"]{background:#46c371;color:#fff;}.editor-buttons__tooltip{position:absolute;inset-inline-end:calc(100% + 10px);top:50%;background:var(--vte-tooltip);color:#fff;padding:.4em 1em;border-radius:4px;white-space:nowrap;pointer-events:none;font-weight:bold;font-size:12px;transform:translateY(-50%);transition:.1s;}.editor-buttons__tooltip::after{content:'';border:5px solid transparent;border-inline-start-color:var(--vte-tooltip);position:absolute;inset-inline-start:100%;top:50%;transform:translateY(-50%);}editor-buttons :is(a, button):not(:hover) .editor-buttons__tooltip{transform:translateY(-50%) translateX(calc(-20px * var(--i-lang-dir)));opacity:0;}@media(hover:none){.editor-buttons__tooltip{display:none;}}editor-buttons [data-active] :is(.fa-lightbulb, .fa-moon){font-weight:900;}.editor-buttons__text{font-weight:600;}editor-panel{grid-area:panel;--panel-direction:1;display:flex;flex-direction:column;transition-property:opacity, transform;transition-duration:.3s;background-color:var(--panel--ba-co);}[data-panel-prev]{--panel-direction:-1;}editor-panel[aria-hidden="true"]{opacity:0;pointer-events:none;transform:translateX(calc(30% * var(--panel-direction)));}editor-panel[aria-hidden="false"]{z-index:1;}editor-panel > *{flex:0 0 auto;}editor-panel header{padding:clamp(1.2em, 5vw, 2em);}editor-panel header :is(h1, h2, h3, h4){font-weight:600;color:var(--panel--co_hard);font-size:1.4em;line-height:1.2;}editor-panel header p{font-weight:500;color:var(--panel--co_soft);margin-top:.4em;}[data-panel-nav="back"]{color:var(--panel--co);padding:1.4em;text-transform:uppercase;font-weight:600;font-size:.9em;outline-offset:-2px;}[data-panel-nav="back"]::before{content:'\2190';margin-inline-end:.5em;transition:transform .3s;display:inline-block;}[dir="rtl"] [data-panel-nav="back"]::before{transform:scaleX(-1);}@media (any-hover:hover){[dir="Line truncated
@@ -1 +1 @@
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-layout-width:1500;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-co:var(--i-base_2);--light_Line truncated
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-sidebar-width:350;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-layout-width:1500;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-Line truncated
+1 -1
View File
@@ -1 +1 @@
.ipsData--forum-grid{}.ipsData--forum-grid .ipsData__stats + .ipsData__last{padding-top:1em;}.ipsCategoryWithFeed{container:ipsCategoryWithFeed / inline-size;}.ipsCategoryWithFeed__item{border-top:6px solid var(--i-featured, var(--i-background_6));}.ipsData--forum-feed-view-forum{grid-template-columns:1fr;}.ipsData--forum-feed-view .ipsData__title{font-weight:500 !important;}.ipsData--forum-feed-view-forum .ipsData__stats{font-weight:550;color:var(--i-color_root);}@container ipsCategoryWithFeed (min-width:650.1px){.ipsCategoryWithFeed__item{display:grid;grid-template-columns:clamp(280px, 33%, 350px) 1fr;}.ipsCategoryWithFeed__meta{border-inline-end:1px solid var(--i-background_4);}.ipsData--forum-feed-view-forum{height:100%;}.ipsData--forum-feed-view{--i-data--padding:1.1em;--i-data--cell-spacing:1em;--i-data--icon-width:30px;height:100%;display:flex;flex-direction:column;}}@container ipsCategoryWithFeed (max-width:650px){.ipsData.ipsData--forum-feed-view-forum{--i-data--padding:1.2em;--i-data--icon-ratio:1;}.ipsData--forum-feed-view-forum .ipsData__item{flex-direction:row;align-items:start;}.ipsData--forum-feed-view-forum .ipsData__image{flex:0 0 clamp(60px, 17vw, 120px);margin:0;}.ipsData--forum-feed-view{--i-data--gap:1.2em;padding:1em var(--i-data--gap);display:flex;gap:1em;overflow:auto;scroll-snap-type:x mandatory;scroll-padding:var(--i-data--gap);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--i-co) 20%, transparent) transparent;}.ipsData--forum-feed-view .ipsData__item{flex:0 0 min(80vw, 400px);border-radius:min(var(--i-design-radius), 8px);border-width:0;background:var(--i-background_2);scroll-snap-align:start;}.ipsData--forum-feed-view .ipsData__icon{align-self:center;}}.cTopicHovercard .cTopicHovercard_container{height:200px;overflow:auto;}.ipsData--snippet-topic-list .ipsReactOverview--reactions a{display:block;}.ipsData--snippet-topic-list .ipsReactOverview--reactions img{height:1.3em;display:block;}.ipsData--snippet-topic-list .ipsReactOverview--points{display:flex;align-items:center;}.ipsData--snippet-topic-list .ipsReactOverview--points p{margin-inline-start:.6em;}.ipsData__item--snippet .ipsReactOverview--none{display:none;}.cForumMiniList_wrapper{padding:.5em;font-weight:500;}.cForumMiniList :where(a){display:flex;align-items:center;gap:.6em;padding:.5em 1em;color:var(--i-color_root);border-radius:var(--i-design-radius);}:where(.cForumMiniList a:hover){background-color:var(--i-background_2);}.cForumMiniList__selected{background-color:var(--i-background_3);}.cForumMiniList [data-ips-unread]{color:var(--i-color_hard);font-weight:700;}.cForumMiniList [data-category] > a{font-size:1.3em;font-weight:600;}.cForumMiniList [data-category]:not(:first-child){margin-top:1em;}.cForumMiniList .cForumMiniList .cForumMiniList{margin-inline-start:1.5em;}.cForumMiniList__count{font-size:.85em;flex:0 0 auto;color:var(--i-color_soft);margin-inline-start:auto;}.cForumMiniList .cForumMiniList__blob{background:var(--i-featured, var(--i-background_6));color:#fff;flex:0 0 auto;font-size:16px;width:1em;height:1em;border-radius:5px;display:inline-grid;place-items:center;transform:scale(.5);transition:.2s;}.cForumMiniList .cForumMiniList__blob [class*="fa-"]{display:none;font-size:.6em;}.cForumMiniList .cForumMiniList__selected > .cForumMiniList__blob{opacity:1;transform:scale(1);}.cForumMiniList .cForumMiniList__selected > .cForumMiniList__blob [class*="fa-"]{display:block;}.cForumMiniList [data-ips-read] > .cForumMiniList__blob{background-color:var(--i-background_6);}@media screen and (max-width:979px){.cForumMiniList_wrapper{display:none;}.ipsDialog #elFluidFormFilters{border:0;}.ipsDialog .cForumMiniList_wrapper, .cForumMiniList{display:block !important;}}
.ipsData--forum-grid{}.ipsData--forum-grid .ipsData__stats + .ipsData__last{padding-top:1em;}.ipsCategoryWithFeed{container:ipsCategoryWithFeed / inline-size;}.ipsCategoryWithFeed__item{border-top:6px solid var(--i-featured, var(--i-background_6));}.ipsData--forumFeedViewParent{grid-template-columns:1fr;}.ipsData--forumFeedViewParent .ipsData__stats{font-weight:550;color:var(--i-color_root);}@container ipsCategoryWithFeed (min-width:650.1px){.ipsCategoryWithFeed__item{display:grid;grid-template-columns:clamp(280px, 33%, 350px) 1fr;}.ipsCategoryWithFeed__meta{border-inline-end:1px solid var(--i-background_4);}.ipsData--forumFeedViewParent{height:100%;}.ipsData--forumFeedView{--i-data--padding:1.1em;--i-data--cell-spacing:1em;--i-data--icon-width:30px;height:100%;display:flex;flex-direction:column;}}@container ipsCategoryWithFeed (max-width:650px){.ipsData.ipsData--forumFeedViewParent{--i-data--padding:1.2em;--i-data--icon-ratio:1;}.ipsData--forumFeedViewParent .ipsData__item{flex-direction:row;align-items:start;}.ipsData--forumFeedViewParent .ipsData__image{flex:0 0 clamp(60px, 17vw, 120px);margin:0;}.ipsData--forumFeedView{--i-data--gap:1.2em;padding:1em var(--i-data--gap);display:flex;gap:1px;overflow:auto;scroll-snap-type:x mandatory;scroll-padding:var(--i-data--gap);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--i-co) 20%, transparent) transparent;}.ipsData--forumFeedView .ipsData__item{flex:0 0 min(80vw, 400px);border-width:0;scroll-snap-align:start;outline:1px solid var(--i-background_4);}.ipsData--forumFeedView .ipsData__item:first-child{border-start-start-radius:min(var(--i-design-radius), 6px);border-end-start-radius:min(var(--i-design-radius), 6px);}.ipsData--forumFeedView .ipsData__item:last-child{border-start-end-radius:min(var(--i-design-radius), 6px);border-end-end-radius:min(var(--i-design-radius), 6px);}.ipsData--forumFeedView .ipsData__icon{align-self:center;}.ipsData--forumFeedView .ipsData__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}}.cTopicHovercard .cTopicHovercard_container{height:200px;overflow:auto;}.ipsData--snippet-topic-list .ipsReactOverview--reactions a{display:block;}.ipsData--snippet-topic-list .ipsReactOverview--reactions img{height:1.3em;display:block;}.ipsData--snippet-topic-list .ipsReactOverview--points{display:flex;align-items:center;}.ipsData--snippet-topic-list .ipsReactOverview--points p{margin-inline-start:.6em;}.ipsData__item--snippet .ipsReactOverview--none{display:none;}.cForumMiniList_wrapper{padding:.5em;font-weight:500;}.cForumMiniList :where(a){display:flex;align-items:center;gap:.6em;padding:.5em 1em;color:var(--i-color_root);border-radius:var(--i-design-radius);}:where(.cForumMiniList a:hover){background-color:var(--i-background_2);}.cForumMiniList__selected{background-color:var(--i-background_3);}.cForumMiniList [data-ips-unread]{color:var(--i-color_hard);font-weight:700;}.cForumMiniList [data-category] > a{font-size:1.3em;font-weight:600;}.cForumMiniList [data-category]:not(:first-child){margin-top:1em;}.cForumMiniList .cForumMiniList .cForumMiniList{margin-inline-start:1.5em;}.cForumMiniList__count{font-size:.85em;flex:0 0 auto;color:var(--i-color_soft);margin-inline-start:auto;}.cForumMiniList .cForumMiniList__blob{background:var(--i-featured, var(--i-background_6));color:#fff;flex:0 0 auto;font-size:16px;width:1em;height:1em;border-radius:5px;display:inline-grid;place-items:center;transform:scale(.5);transition:.2s;}.cForumMiniList .cForumMiniList__blob [class*="fa-"]{display:none;font-size:.6em;}.cForumMiniList .cForumMiniList__selected > .cForumMiniList__blob{opacity:1;transform:scale(1);}.cForumMiniList .cForumMiniList__selected > .cForumMiniList__blob [class*="fa-"]{display:block;}.cForumMiniList [data-ips-read] > .cForumMiniList__blob{background-color:var(--i-background_6);}@media screen and (max-width:979px){.cForumMiniList_wrapper{display:none;}.ipsDialog #elFluidFormFilters{border:0;}.ipsDialog .cForumMiniList_wrapper, .cForumMiniList{display:block !important;}}
+1 -2
View File
@@ -697,8 +697,7 @@ setTimeout(()=>fillTextarea())
setTimeout(()=>{try{$(elem).get(0).dispatchEvent(new CustomEvent("ips:editorAfterInit",{bubbles:true,cancelable:false,detail:{elem:$(elem).get(0),textArea,content:textArea.innerText,options:config,instance}}));}catch(e){e.meessage="Something went wrong dispatching ips:editorAfterInit event on the page:\n"+e.message;Debug.error(e);}
fillTextarea();},100)}
const onTransaction=config.onTransaction;config.onTransaction=_.debounce(function(...args){instance=instance||args[0]?.editor;fillTextarea();try{onTransaction?.call?.(this,...args);}catch(e){e.message="Something went wrong in an onTransaction call to the editor"+e.message;Debug.error(e);}},200,{leading:false,trailing:true});const onUpdate=config.onUpdate;config.onUpdate=function(...args){try{onUpdate?.call?.(this,...args);}catch(e){e.message="Failed to run the onUpdate event listener:\n"+e.message;Debug.error(e);}
instance=instance||args[0]?.editor;console.log(instance,instance.getJSON())
config.onTransaction?.cancel();setTimeout(()=>{let canceled=false;const event=new CustomEvent('ips:editorUpdated',{bubbles:true,cancelable:true,detail:{elem:$(elem).get(0),textArea,instance,}});throttledComposeEvent();const origStopProp=event.stopPropagation;const origStopImmProp=event.stopImmediatePropagation;event.stopPropagation=(function(){canceled=true;origStopProp();}).bind(event)
instance=instance||args[0]?.editor;config.onTransaction?.cancel();setTimeout(()=>{let canceled=false;const event=new CustomEvent('ips:editorUpdated',{bubbles:true,cancelable:true,detail:{elem:$(elem).get(0),textArea,instance,}});throttledComposeEvent();const origStopProp=event.stopPropagation;const origStopImmProp=event.stopImmediatePropagation;event.stopPropagation=(function(){canceled=true;origStopProp();}).bind(event)
event.stopImmediatePropagation=(function(){canceled=true;origStopImmProp();}).bind(event);$(elem).get(0).dispatchEvent(event)
if(canceled){return;}
fillTextarea()})}
+7 -7
View File
@@ -7,7 +7,7 @@ class class_calendar_front_browse extends \IPS\Theme\Template
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
IPSCONTENT;
@@ -325,7 +325,7 @@ $return .= <<<IPSCONTENT
<div class="ipsPageHeader ipsBox ipsPull" id='elCalendarsHeader'>
<div class='ipsPageHeader__row'>
<div class="ipsPageHeader__primary">
<span class="ipsTitle ipsTitle--h1">
<span class="ipsPageHeader__title">
IPSCONTENT;
@@ -343,7 +343,7 @@ IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<a href='#elCalendars_menu' id='elCalendars' data-ipsMenu data-ipsMenu-appendTo="#elCalendarsHeader">
<a href='#elCalendars_menu' id='elCalendars' data-ipsMenu>
IPSCONTENT;
if ( $thisCalendar ):
@@ -367,7 +367,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<i class='fa-solid fa-caret-down i-margin-start_icon'></i></a>
<i class='fa-solid fa-angle-down'></i></a>
IPSCONTENT;
@@ -395,7 +395,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter data-ipsMenu-appendTo="#elCalendarsHeader" class='ipsButton ipsButton--inherit'><span>
<a href='#elCalendarSettings_menu' id='elCalendarSettings' data-ipsMenu data-ipsMenu-alignCenter class='ipsButton ipsButton--inherit'><span>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'subscribe_button', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -516,7 +516,7 @@ IPSCONTENT;
$return .= <<<IPSCONTENT
<div>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
IPSCONTENT;
@@ -1026,7 +1026,7 @@ IPSCONTENT;
<div class=''>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-position_sticky-top i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager cCalendarNav i-padding-block_2 i-padding-inline_3 i-background_2 i-border-start-start-radius_box i-border-start-end-radius_box'>
<div class='ipsPager_prev'>
<a href="
IPSCONTENT;
+9 -2
View File
@@ -665,7 +665,7 @@ if ( ( \IPS\Widget\Request::i()->root and !\IPS\Widget\Request::i()->noshowroot
$return .= <<<IPSCONTENT
<div class="ipsButtonBar ipsButtonBar--top">
<div class="ipsButtonBar__start i-font-size_1">
<div class="ipsButtonBar__start">
IPSCONTENT;
@@ -728,6 +728,13 @@ endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
elseif ( $pagination ):
$return .= <<<IPSCONTENT
{$pagination}
IPSCONTENT;
endif;
@@ -876,7 +883,7 @@ IPSCONTENT;
if ( $pagination ):
$return .= <<<IPSCONTENT
<div class="i-margin-top_1">
<div class="ipsButtonBar ipsButtonBar--bottom">
{$pagination}
</div>
+2 -2
View File
@@ -12333,7 +12333,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$active = $item->activeOrChildActive();
$active = $item->activeOrChildActive('smallscreen');
$return .= <<<IPSCONTENT
@@ -13777,7 +13777,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$active = $child->activeOrChildActive();
$active = $child->activeOrChildActive('smallscreen');
$return .= <<<IPSCONTENT
<a href='
+2 -2
View File
@@ -576,8 +576,8 @@ endif;
$return .= <<<IPSCONTENT
</div>
<div class="i-flex i-align-items_center">
<div class="i-text-align_start i-flex_11">
<div class="i-flex i-flex-wrap_wrap i-justify-content_space-between i-align-items_center">
<div>
<div class="i-color_soft i-font-weight_500">
IPSCONTENT;
+289 -297
View File
@@ -1,41 +1,34 @@
<?php
namespace IPS\Theme;
class class_core_front_staffdirectory extends \IPS\Theme\Template
{ function layout_blocks( $users ) {
{ function layout_blocks( $user ) {
$return = '';
$return .= <<<IPSCONTENT
<div class="ipsGrid ipsGrid--lines ipsGrid--staff i-basis_200">
IPSCONTENT;
foreach ( $users as $user ):
$return .= <<<IPSCONTENT
<div class="i-padding-block_3 i-flex i-flex-direction_column i-gap_2 i-text-align_center">
<div class="i-flex i-justify-content_center">
<div class="i-basis_120">
<div class="i-padding-block_3 i-flex i-flex-direction_column i-gap_2 i-text-align_center">
<div class="i-flex i-justify-content_center">
<div class="i-basis_120">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $user->member(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
</div>
<div>
<h3 class="ipsTitle ipsTitle--h4">
</div>
<div>
<h3 class="ipsTitle ipsTitle--h4">
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) ) ):
$return .= <<<IPSCONTENT
<a href="
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->member()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -45,75 +38,75 @@ IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
{$user->member()->link()}
{$user->member()->link()}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
</h3>
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) ):
$return .= <<<IPSCONTENT
<p class="i-font-weight_500 i-color_soft i-margin-bottom_2">
<p class="i-font-weight_500 i-color_soft i-margin-bottom_2">
IPSCONTENT;
$val = "core_staff_directory_title_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:before", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:before", [ $user ] );
$return .= <<<IPSCONTENT
<ul class="ipsList ipsList--inline i-justify-content_center i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_auto" data-ips-hook="staffInfo">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:inside-start", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:inside-start", [ $user ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id ) ):
$return .= <<<IPSCONTENT
<li><a href="#staffFull_
<li><a href="#staffFull_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -146,19 +139,19 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
: Bio"><i class="fa-regular fa-address-card i-margin-end_icon i-opacity_6"></i>Bio</a></li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !\IPS\Member::loggedIn()->members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
$return .= <<<IPSCONTENT
<li><a href="
<li><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}", null, "messenger_compose", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -179,42 +172,35 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:inside-end", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:inside-end", [ $user ] );
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:after", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_blocks", "staffInfo:after", [ $user ] );
$return .= <<<IPSCONTENT
<div id="staffFull_
<div id="staffFull_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="ipsHide i-padding_3 i-font-size_2">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( \IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id) );
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
@@ -250,236 +236,19 @@ IPSCONTENT;
return $return;
}
function layout_full( $users ) {
function layout_full( $user ) {
$return = '';
$return .= <<<IPSCONTENT
<div class="ipsGrid ipsGrid--lines ipsGrid--staff-directory-full i-basis_100p">
IPSCONTENT;
foreach ( $users as $user ):
$return .= <<<IPSCONTENT
<div class="i-padding_3 i-flex i-gap_3 i-align-items_center">
<div class="i-basis_90 i-align-self_start">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $user->member(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
<div class="i-flex_11">
<div class="i-flex i-flex-wrap_wrap i-gap_1">
<div class="i-flex_11">
<h3 class="ipsTitle ipsTitle--h4">
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) ) ):
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->member()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
{$user->member()->link()}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) ):
$return .= <<<IPSCONTENT
<p class="i-font-weight_600">
IPSCONTENT;
$val = "core_staff_directory_title_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( !\IPS\Member::loggedIn()->members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:before", [ $users ] );
$return .= <<<IPSCONTENT
<ul class="ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500" data-ips-hook="staffInfo">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:inside-start", [ $users ] );
$return .= <<<IPSCONTENT
<li><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}", null, "messenger_compose", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-ipsdialog data-ipsdialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'compose_new', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" data-ipsdialog-forcereload data-ipsdialog-remotesubmit data-ipsdialog-flashmessage="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_sent', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
"><i class="fa-regular fa-message i-margin-end_icon i-opacity_6"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:inside-end", [ $users ] );
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:after", [ $users ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id ) ):
$return .= <<<IPSCONTENT
<div class="i-margin-top_3">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( \IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
return $return;
}
function layout_full_preview( ) {
$return = '';
$return .= <<<IPSCONTENT
<div class='cStaffDirPreview cStaffDirPreview_full'>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
</div>
IPSCONTENT;
return $return;
}
function layout_half( $users ) {
$return = '';
$return .= <<<IPSCONTENT
<div class="ipsGrid ipsGrid--lines ipsGrid--staff-directory-half i-basis_300">
IPSCONTENT;
foreach ( $users as $user ):
$return .= <<<IPSCONTENT
<div class="i-padding_3 i-flex i-gap_3 i-align-items_center">
<div class="i-basis_90">
<div class="i-padding_3 i-flex i-gap_3 i-align-items_center">
<div class="i-basis_90 i-align-self_start">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $user->member(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
<div class="i-flex_11">
<div class="i-flex i-flex-wrap_wrap i-gap_1">
<div class="i-flex_11">
<h3 class="ipsTitle ipsTitle--h4">
@@ -539,10 +308,10 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) ):
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) ):
$return .= <<<IPSCONTENT
<p class="i-font-weight_500 i-color_soft i-margin-bottom_2">
<p class="i-font-weight_600">
IPSCONTENT;
$val = "core_staff_directory_title_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
@@ -554,24 +323,220 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( !\IPS\Member::loggedIn()->members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:before", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:before", [ $user ] );
$return .= <<<IPSCONTENT
<ul class="ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_1" data-ips-hook="staffInfo">
<ul class="ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500" data-ips-hook="staffInfo">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:inside-start", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:inside-start", [ $user ] );
$return .= <<<IPSCONTENT
<li><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}", null, "messenger_compose", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
" data-ipsdialog data-ipsdialog-title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'compose_new', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
" data-ipsdialog-forcereload data-ipsdialog-remotesubmit data-ipsdialog-flashmessage="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_sent', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
"><i class="fa-regular fa-message i-margin-end_icon i-opacity_6"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:inside-end", [ $user ] );
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_full", "staffInfo:after", [ $user ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id ) ):
$return .= <<<IPSCONTENT
<li><a href="#staffFull_
<div class="i-margin-top_3">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( \IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id) );
$return .= <<<IPSCONTENT
</div>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
return $return;
}
function layout_full_preview( ) {
$return = '';
$return .= <<<IPSCONTENT
<div class='cStaffDirPreview cStaffDirPreview_full'>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
<div class='cStaffDirPreview_block cStaffDirPreview_row'>
<span class='cStaffDirPreview_photo'></span><br>
<span class='cStaffDirPreview_title'></span>
<span class='cStaffDirPreview_text'></span>
</div>
</div>
IPSCONTENT;
return $return;
}
function layout_half( $user ) {
$return = '';
$return .= <<<IPSCONTENT
<div class="i-padding_3 i-flex i-gap_3 i-align-items_center">
<div class="i-basis_90">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $user->member(), 'fluid' );
$return .= <<<IPSCONTENT
</div>
<div class="i-flex_11">
<h3 class="ipsTitle ipsTitle--h4">
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_name_" . $user->id ) ):
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'members' ) ) ):
$return .= <<<IPSCONTENT
<a href="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->member()->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = "core_staff_directory_name_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
{$user->member()->link()}
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</h3>
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_title_" . $user->id ) ):
$return .= <<<IPSCONTENT
<p class="i-font-weight_500 i-color_soft i-margin-bottom_2">
IPSCONTENT;
$val = "core_staff_directory_title_{$user->id}"; $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( $val, ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'escape' => TRUE ) );
$return .= <<<IPSCONTENT
</p>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:before", [ $user ] );
$return .= <<<IPSCONTENT
<ul class="ipsList ipsList--inline i-gap_3 i-color_soft i-link-color_inherit i-font-weight_500 i-margin-top_1" data-ips-hook="staffInfo">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:inside-start", [ $user ] );
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $user->id AND \IPS\Member::loggedIn()->language()->checkKeyExists( "core_staff_directory_bio_" . $user->id ) ):
$return .= <<<IPSCONTENT
<li><a href="#staffFull_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -610,13 +575,13 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( !\IPS\Member::loggedIn()->members_disable_pm AND !$user->member()->members_disable_pm AND \IPS\Member::loggedIn()->member_id AND \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'messaging' ) ) ):
$return .= <<<IPSCONTENT
<li><a href="
<li><a href="
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=messaging&controller=messenger&do=compose&to={$user->member()->member_id}", null, "messenger_compose", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -637,43 +602,36 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'message_send', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</a></li>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:inside-end", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:inside-end", [ $user ] );
$return .= <<<IPSCONTENT
</ul>
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:after", [ $users ] );
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "core/front/staffdirectory/layout_half", "staffInfo:after", [ $user ] );
$return .= <<<IPSCONTENT
<div id="staffFull_
<div id="staffFull_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $user->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" class="i-padding_3 ipsHide">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->richText( \IPS\Member::loggedIn()->language()->addToStack('core_staff_directory_bio_' . $user->id) );
$return .= <<<IPSCONTENT
</div>
</div>
</div>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</div>
IPSCONTENT;
@@ -850,12 +808,46 @@ $return .= \IPS\Theme\Template::htmlspecialchars( $group->_title, ENT_QUOTES | E
$return .= <<<IPSCONTENT
</h2>
<div class="ipsBox__content">
<div class="ipsGrid ipsGrid--lines ipsGrid--staff
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "staffdirectory", "core", 'front' )->{$group->template}( $members );
if ( $group->template == 'layout_full' ):
$return .= <<<IPSCONTENT
-directory-full i-basis_100p
IPSCONTENT;
elseif ( $group->template == 'layout_half' ):
$return .= <<<IPSCONTENT
-directory-half i-basis_300
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
i-basis_200
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
">
IPSCONTENT;
foreach ( $members as $member ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "staffdirectory", "core", 'front' )->{$group->template}( $member );
$return .= <<<IPSCONTENT
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</div>
</div>
</section>
+38 -39
View File
@@ -81,16 +81,12 @@ IPSCONTENT;
if ( $category->hasSettings() and $category->hasColors() ):
$return .= <<<IPSCONTENT
<editor-tabs data-tabs='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
'>
<editor-tabs>
<button type='button' aria-controls='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
__settings' aria-expanded='true' data-on-click="changeTab"><i class='fa-solid fa-sliders'></i>
__settings' aria-expanded='true' data-ipscontrols><i class='fa-solid fa-sliders'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_panel_settings', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -100,7 +96,7 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
__colors' aria-expanded='false' data-on-click="changeTab"><i class='fa-solid fa-palette'></i>
__colors' aria-expanded='false' data-ipscontrols><i class='fa-solid fa-palette'></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_panel_colors', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -123,11 +119,11 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
__settings' data-tabs-content='
__settings' data-ips-hidden-group='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' aria-hidden='false'>
'>
IPSCONTENT;
@@ -158,26 +154,21 @@ $return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
__colors' data-tabs-content='
__colors' data-ips-hidden-group='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $category->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' aria-hidden='
'
IPSCONTENT;
if ( $category->hasSettings() ):
$return .= <<<IPSCONTENT
true
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
false
hidden
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
'>
>
IPSCONTENT;
@@ -253,7 +244,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='
<div class="theme-editor__align-setting">
<label for='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -262,7 +254,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</label>
<button class='theme-editor__revert' type='button' data-revert='
<button class='theme-editor__revert' type='button' data-revert='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -287,7 +279,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span></button>
<input type='text' id='
<input type='text' id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -304,7 +296,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->defaultValue(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' hidden data-on-change="settingHasBeenChanged">
<input id='
<input id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -323,6 +315,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
data-on-change="syncInputsWithPseudo">
</div>
IPSCONTENT;
@@ -639,7 +632,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='
<div class="theme-editor__align-setting">
<label for='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -648,7 +642,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</label>
<button class='theme-editor__revert' type='button' data-revert='
<button class='theme-editor__revert' type='button' data-revert='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -673,7 +667,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span></button>
<input type='number' inputmode='numeric' data-range-output='
<input type='number' inputmode='numeric' data-range-output='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -724,6 +718,7 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
data-on-change="syncInputsWithPseudo">
</div>
<input type='range' id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -821,7 +816,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='
<div class="theme-editor__align-setting">
<label for='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -830,7 +826,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</label>
<button class='theme-editor__revert' type='button' data-revert='
<button class='theme-editor__revert' type='button' data-revert='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -855,7 +851,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span></button>
<select id='
<select id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -868,13 +864,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->defaultValue(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
" data-on-change="settingHasBeenChanged">
IPSCONTENT;
foreach ( $setting->data['options'] as $option ):
$return .= <<<IPSCONTENT
<option value='
<option value='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $option[0], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -893,13 +889,14 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $option[1], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</option>
IPSCONTENT;
endforeach;
$return .= <<<IPSCONTENT
</select>
</select>
</div>
IPSCONTENT;
@@ -942,7 +939,8 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<label for='
<div class="theme-editor__align-setting">
<label for='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -951,7 +949,7 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</label>
<button class='theme-editor__revert' type='button' data-revert='
<button class='theme-editor__revert' type='button' data-revert='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -976,6 +974,7 @@ IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_revert', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</span></button>
</div>
<input type='text' spellcheck='false' id='
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $setting->key, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
@@ -1444,21 +1443,21 @@ $return .= <<<IPSCONTENT
</h2>
</div>
</header>
<editor-tabs data-tabs='swatch-color-picker'>
<button type='button' aria-controls='content__colorSelector__swatches' aria-expanded='true' data-on-click="changeTab"><i class="fa-solid fa-swatchbook"></i>
<editor-tabs>
<button type='button' aria-controls='content__colorSelector__swatches' aria-expanded='true' data-ipscontrols><i class="fa-solid fa-swatchbook"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_swatches', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
<button type='button' aria-controls='content__colorSelector__colorPicker' aria-expanded='false' data-on-click="changeTab"><i class="fa-solid fa-eye-dropper"></i>
<button type='button' aria-controls='content__colorSelector__colorPicker' aria-expanded='false' data-ipscontrols><i class="fa-solid fa-eye-dropper"></i>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'theme_editor_color_picker', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
$return .= <<<IPSCONTENT
</button>
</editor-tabs>
<editor-tab-content id='content__colorSelector__swatches' data-tabs-content='swatch-color-picker' aria-hidden='false'>
<editor-tab-content id='content__colorSelector__swatches' data-ips-hidden-group='swatch-color-picker'>
<div data-swatches>
<ul class='theme-editor__swatches' data-swatch-category='base'>
@@ -1590,7 +1589,7 @@ $return .= <<<IPSCONTENT
</ul>
</div>
</editor-tab-content>
<editor-tab-content id='content__colorSelector__colorPicker' data-tabs-content='swatch-color-picker' aria-hidden='true'>
<editor-tab-content id='content__colorSelector__colorPicker' data-ips-hidden-group='swatch-color-picker' hidden>
<div data-color-picker>
<color-picker></color-picker>
<input type='text' id="color-picker-text" data-color-picker-text data-on-change="colorPickerTextBlur">
+64 -34
View File
@@ -4660,13 +4660,7 @@ if ( \count( $results ) ):
$return .= <<<IPSCONTENT
<i-data>
<ol class="ipsData ipsData--grid cTopContributors i-basis_320">
IPSCONTENT;
$idx = 1;
$return .= <<<IPSCONTENT
<ol class="ipsData ipsData--mini-grid cTopContributors i-basis_320">
IPSCONTENT;
@@ -4689,31 +4683,25 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $member->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span></a>
<strong class='i-color_soft'>
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $idx++, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</strong>
<div class='ipsData__content'>
<div class='ipsData__main'>
<div class='ipsPhotoPanel'>
<div class="ipsData__icon">
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $member, 'fluid' );
$return .= <<<IPSCONTENT
<div class='ipsPhotoPanel__text'>
<div class='ipsPhotoPanel__primary'>{$member->link()}</div>
<div class='ipsPhotoPanel__secondary'>
</div>
<div class='ipsData__content'>
<div class='ipsData__main'>
<div class='ipsData__title'>{$member->link()}</div>
<div class='ipsData__meta'>
IPSCONTENT;
if ( \IPS\Member::loggedIn()->group['gbw_view_reps'] ):
$return .= <<<IPSCONTENT
<a href='
<a href='
IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=members&controller=profile&id={$member->member_id}&do=reputation", null, "profile_reputation", array( $member->members_seo_name ), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
@@ -4769,13 +4757,13 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Member::loggedIn()->language()->formatNumber( $rep ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
<span title="
<span title="
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'reputation_badge_tooltip_period', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4826,14 +4814,12 @@ IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( \IPS\Member::loggedIn()->language()->formatNumber( $rep ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
</span>
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
</div>
</div>
</div>
</div>
@@ -4913,10 +4899,28 @@ $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'b
$return .= <<<IPSCONTENT
</h3>
<div class='ipsWidget__content'>
<div class='ipsTabs ipsTabs--stretch' id='elTopContributors' data-ipsTabBar data-ipsTabBar-updateURL='false' data-ipsTabBar-contentArea='#elTopContributors_content'>
IPSCONTENT;
$tabID = mt_rand();
$return .= <<<IPSCONTENT
<div class='ipsTabs ipsTabs--stretch' id='elTopContributors_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' data-ipsTabBar data-ipsTabBar-updateURL='false' data-ipsTabBar-contentArea='#elTopContributors_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_content'>
<ul role="tablist">
<li>
<a href='#ipsTabs_elTopContributors_el_topContributorsWeek_panel' id='el_topContributorsWeek' class='ipsTabs__tab ipsTabs__tab--active' role="tab" aria-selected='true'>
<a href='#ipsTabs_elTopContributors_el_topContributorsWeek_panel' id='el_topContributorsWeek_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsTabs__tab ipsTabs__tab--active' role="tab" aria-selected='true'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'week', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4929,7 +4933,11 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=ajax&do=topContributors&time=month&limit={$limit}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' id='el_topContributorsMonth' class='ipsTabs__tab' role="tab" aria-selected='false'>
' id='el_topContributorsMonth_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsTabs__tab' role="tab" aria-selected='false'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'month', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4942,7 +4950,11 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=ajax&do=topContributors&time=year&limit={$limit}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' id='el_topContributorsYear' class='ipsTabs__tab' role="tab" aria-selected='false'>
' id='el_topContributorsYear_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsTabs__tab' role="tab" aria-selected='false'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'year', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4955,7 +4967,11 @@ IPSCONTENT;
$return .= htmlspecialchars( \IPS\Http\Url::internal( "app=core&module=system&controller=ajax&do=topContributors&time=all&limit={$limit}", null, "", array(), 0 ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', TRUE );
$return .= <<<IPSCONTENT
' id='el_topContributorsAll' class='ipsTabs__tab' role="tab" aria-selected='false'>
' id='el_topContributorsAll_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
' class='ipsTabs__tab' role="tab" aria-selected='false'>
IPSCONTENT;
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'alltime', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
@@ -4963,9 +4979,23 @@ $return .= <<<IPSCONTENT
</a>
</li>
</ul>
IPSCONTENT;
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'global' )->tabScrollers( );
$return .= <<<IPSCONTENT
</div>
<section id='elTopContributors_content' class='ipsTabs__panels'>
<div id="ipsTabs_elTopContributors_el_topContributorsWeek_panel" class='ipsTabs__panel'>
<section id='elTopContributors_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_content' class='ipsTabs__panels'>
<div id="ipsTabs_elTopContributors_
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $tabID, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
_el_topContributorsWeek_panel" class='ipsTabs__panel'>
IPSCONTENT;
+55 -49
View File
@@ -1704,21 +1704,6 @@ IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
"
IPSCONTENT;
if ( \IPS\forums\Topic::containerUnread( $forum ) && !$forum->redirect_on ):
$return .= <<<IPSCONTENT
data-ips-unread
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
data-ips-read
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $forum->ui( 'dataAttributes' ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
@@ -1738,8 +1723,23 @@ endif;
$return .= <<<IPSCONTENT
>
<i-data class="ipsCategoryWithFeed__meta">
<div class="ipsData ipsData--grid ipsData--forum-feed-view-forum">
<div class="ipsData__item">
<div class="ipsData ipsData--grid ipsData--forumFeedViewParent">
<div class="ipsData__item"
IPSCONTENT;
if ( \IPS\forums\Topic::containerUnread( $forum ) && !$forum->redirect_on ):
$return .= <<<IPSCONTENT
data-ips-unread
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
data-ips-read
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
>
<a
IPSCONTENT;
@@ -2303,7 +2303,7 @@ IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/index/forumSummaryRow", "latestPoster:before", [ $forum,$isSubForum ] );
$return .= <<<IPSCONTENT
<ul data-ips-hook="latestPoster" class="ipsData ipsData--table ipsData--forum-feed-view">
<ul data-ips-hook="latestPoster" class="ipsData ipsData--table ipsData--forumFeedView">
IPSCONTENT;
$return .= \IPS\Theme\CustomTemplate::getCustomTemplatesForHookPoint( "forums/front/index/forumSummaryRow", "latestPoster:inside-start", [ $forum,$isSubForum ] );
@@ -2388,42 +2388,65 @@ $return .= <<<IPSCONTENT
</h4>
<small class="ipsData__meta">
</small>
</div>
<div class="ipsData__extra">
<ul class="ipsData__stats">
<li data-stattype="comments" data-v="
IPSCONTENT;
$return .= \IPS\Theme\Template::htmlspecialchars( $lastPost['posts'], ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
$return .= <<<IPSCONTENT
">
<span class="ipsData__stats-label">
IPSCONTENT;
$pluralize = array( $lastPost['posts'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
</span>
</li>
</ul>
<div class="ipsData__last">
<div class="ipsData__last-text">
<div class="ipsData__last-primary">
IPSCONTENT;
if ( $lastPost['last_poster_anon'] ):
$return .= <<<IPSCONTENT
IPSCONTENT;
$htmlsprintf = array($lastPost['author']->link( NULL, NULL, TRUE )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_nodate', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
,
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$htmlsprintf = array($lastPost['author']->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_nodate', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
$return .= <<<IPSCONTENT
,
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</div>
<div class="ipsData__last-secondary">
IPSCONTENT;
if ( $lastPost['topic_title'] ):
$return .= <<<IPSCONTENT
<a href="
<a href="
IPSCONTENT;
if ( \IPS\Member::loggedIn()->member_id ):
@@ -2457,44 +2480,27 @@ IPSCONTENT;
$val = ( $lastPost['date'] instanceof \IPS\DateTime ) ? $lastPost['date'] : \IPS\DateTime::ts( $lastPost['date'] );$return .= $val->html();
$return .= <<<IPSCONTENT
</a>
IPSCONTENT;
else:
$return .= <<<IPSCONTENT
IPSCONTENT;
$val = ( $lastPost['date'] instanceof \IPS\DateTime ) ? $lastPost['date'] : \IPS\DateTime::ts( $lastPost['date'] );$return .= $val->html();
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
IPSCONTENT;
if ( $lastPost['posts'] > 0 ):
$return .= <<<IPSCONTENT
·
IPSCONTENT;
$pluralize = array( $lastPost['posts'] ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_comments', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
$return .= <<<IPSCONTENT
IPSCONTENT;
endif;
$return .= <<<IPSCONTENT
</small>
</div>
</div>
</div>
</div>
</div>
</li>
+3 -3
View File
@@ -4127,7 +4127,7 @@ EOF;
{
$mapping[ $row['cat_id'] ] = $row['cat_key'];
$categoryData = [
'cat_name' => $lang->get( 'themeeditor_cat_' . $row['cat_id'] ),
'cat_name' => $lang->get( 'themeeditor_cat_' . $row['cat_key'] ),
'cat_key' => $row['cat_key'],
'cat_icon' => Category::constructFromData( $row )->icon()
];
@@ -4168,8 +4168,8 @@ EOF;
$settingData = [
'key' => $row['setting_key'],
'type' => $row['setting_type'],
'name' => $lang->get( 'themeeditor_var_' . $row['setting_id'] ),
'desc' => ( $lang->checkKeyExists( 'themeeditor_var_' . $row['setting_id'] . '_desc' ) ? $lang->get( 'themeeditor_var_' . $row['setting_id'] . '_desc' ) : '' ),
'name' => $lang->get( 'themeeditor_var_' . $row['setting_key'] ),
'desc' => ( $lang->checkKeyExists( 'themeeditor_var_' . $row['setting_key'] . '_desc' ) ? $lang->get( 'themeeditor_var_' . $row['setting_key'] . '_desc' ) : '' ),
'refresh' => (bool) $row['setting_refresh']
];
+3 -3
View File
@@ -438,7 +438,7 @@ abstract class Comment extends Content
}
}
if ( IPS::classUsesTrait( $this, 'IPS\Content\Hideable' ) and ( !$this->hidden() or $item->approvedButHidden() ) )
if ( !IPS::classUsesTrait( $this, 'IPS\Content\Hideable' ) or ( !$this->hidden() or $item->approvedButHidden() ) )
{
if ( isset( $item::$databaseColumnMap['last_comment'] ) )
{
@@ -468,14 +468,14 @@ abstract class Comment extends Content
$item->save();
if ( !$item->hidden() and ! $item->approvedButHidden() and $item->containerWrapper() and $item->container()->_comments !== NULL and ( !IPS::classUsesTrait( $item, 'IPS\Content\FuturePublishing' ) OR !$item->isFutureDate() ) )
if ( ( !IPS::classUsesTrait( $item, Hideable::class ) or ( !$item->hidden() and ! $item->approvedButHidden() ) ) and $item->containerWrapper() and $item->container()->_comments !== NULL and ( !IPS::classUsesTrait( $item, 'IPS\Content\FuturePublishing' ) OR !$item->isFutureDate() ) )
{
$item->container()->_comments = ( $item->container()->_comments + 1 );
$item->container()->setLastComment( $this, $item );
$item->container()->save();
}
}
else
elseif( IPS::classUsesTrait( $this, Hideable::class ) )
{
$item->save();
+8 -2
View File
@@ -1435,12 +1435,18 @@ abstract class Content extends ActiveRecord
/**
* Get quote and mention notifications
*
* @param string $content The content
* @param string|null $content The content
* @return array array( 'quotes' => array( ... member IDs ... ), 'mentions' => array( ... member IDs ... ), 'embeds' => array( ... member IDs ... ) )
*/
protected static function _getQuoteAndMentionIdsFromContent( string $content ): array
protected static function _getQuoteAndMentionIdsFromContent( ?string $content ): array
{
$return = array( 'quotes' => array(), 'mentions' => array(), 'embeds' => array() );
/* If we have no content, don't bother with this */
if( empty( $content ) )
{
return $return;
}
$document = new DOMDocument( '1.0', 'UTF-8' );
if ( @$document->loadHTML( DOMDocument::wrapHtml( '<div>' . $content . '</div>' ) ) !== FALSE )
+5
View File
@@ -99,6 +99,11 @@ class Tag extends Model
*/
public static ?string $databaseColumnEnabledDisabled = 'enabled';
/**
* @brief [Node] Order Database Column
*/
public static ?string $databaseColumnOrder = 'text_seo';
/**
* @brief Cover Photo Storage Extension
*/
+5 -4
View File
@@ -84,7 +84,7 @@ class Number extends FormAbstract
{
/* Specify there's a value if the unlimited element contains a value */
$unlimitedName = "{$name}_unlimited";
if( isset( $options['unlimited'] ) and $options['unlimited'] !== NULL and isset( Request::i()->$unlimitedName ) )
if( isset( $options['unlimited'] ) and isset( Request::i()->$unlimitedName ) )
{
Request::i()->$name = $options['unlimited'];
}
@@ -231,12 +231,13 @@ class Number extends FormAbstract
{
throw new InvalidArgumentException( 'form_number_bad' );
}
if ( $this->options['min'] !== NULL and (int) $this->value < $this->options['min'] )
$valueToCheck = ( isset( $this->options['decimals'] ) and $this->options['decimals'] ) ? floatval( $this->value ) : (int) $this->value;
if ( $this->options['min'] !== NULL and $valueToCheck < $this->options['min'] )
{
throw new LengthException( Member::loggedIn()->language()->addToStack('form_number_min', FALSE, array( 'sprintf' => array( $this->options['min'] ) ) ) );
}
if ( $this->options['max'] !== NULL and (int) $this->value > $this->options['max'] )
if ( $this->options['max'] !== NULL and $valueToCheck > $this->options['max'] )
{
throw new LengthException( Member::loggedIn()->language()->addToStack('form_number_max', FALSE, array( 'sprintf' => array( $this->options['max'] ) ) ) );
}
+1 -1
View File
@@ -316,7 +316,7 @@ class Facebook extends OAuth2
$photoVars = explode( ':', $member->group['g_photo_max_vars'] );
$response = $this->_authorizedRequest( "{$link['token_identifier']}/picture?width={$photoVars[1]}&redirect=false", $link['token_access_token'], NULL, 'get' );
if ( !$response['data']['is_silhouette'] )
if ( !$response['data']['is_silhouette'] and isset( $response['data']['url'] ) and $response['data']['url'] )
{
return Url::external( $response['data']['url'] );
}
+1 -1
View File
@@ -130,7 +130,7 @@ class Login
/**
* Get methods
*
* @return array
* @return array<Handler>
*/
public static function methods(): array
{
Loaded 100 of 108 files, more files were not shown because too many files have changed in this diff. Show more