Makes the entire form work but it just looks janky
This commit is contained in:
@@ -13,6 +13,31 @@
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.htmx-settling .fade-in-settle {
|
||||
opacity: 0.0 !important;
|
||||
}
|
||||
|
||||
.htmx-settling.fade-in-settle {
|
||||
opacity: 0.0 !important;
|
||||
}
|
||||
|
||||
.fade-in-settle {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
|
||||
.htmx-settling .slide-up-settle {
|
||||
@apply translate-y-5 !important;
|
||||
}
|
||||
|
||||
.htmx-settling.slide-up-settle {
|
||||
@apply translate-y-5 !important;
|
||||
}
|
||||
|
||||
.slide-up-settle {
|
||||
@apply translate-y-0;
|
||||
}
|
||||
|
||||
.htmx-added .slide-up {
|
||||
@apply translate-y-5 !important;
|
||||
}
|
||||
@@ -87,6 +112,20 @@
|
||||
@apply bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500 dark:bg-gray-700 p-1 !important;
|
||||
}
|
||||
|
||||
.choices:focus-within .choices__inner {
|
||||
@apply ring-blue-500 border-blue-500 dark:ring-blue-500 dark:border-blue-500 !important;
|
||||
outline: 2px solid transparent !important;
|
||||
outline-offset: 2px;
|
||||
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
|
||||
--tw-ring-offset-width: 0px;
|
||||
--tw-ring-offset-color: #fff;
|
||||
--tw-ring-color: #007dbb;
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
||||
border-color: #007dbb;
|
||||
}
|
||||
|
||||
.choices__inner .choices__input {
|
||||
@apply m-0 bg-gray-50 dark:bg-gray-700 dark:text-white !important;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,108 @@ htmx.defineExtension('disable-submit', {
|
||||
}
|
||||
})
|
||||
|
||||
htmx.defineExtension('rename-params', {
|
||||
onEvent: function(name , evt) {
|
||||
if (name === "htmx:configRequest") {
|
||||
var normal = evt.detail.elt.getAttribute("hx-rename-params");
|
||||
if (normal) {
|
||||
normal = JSON.parse(normal);
|
||||
for (const [key, value] of Object.entries(normal)) {
|
||||
console.log(evt.detail.parameters)
|
||||
evt.detail.parameters[value] = evt.detail.parameters[key];
|
||||
delete evt.detail.parameters[key];
|
||||
}
|
||||
}
|
||||
var exclusive = evt.detail.elt.getAttribute("hx-rename-params-ex");
|
||||
if (exclusive) {
|
||||
exclusive = JSON.parse(exclusive);
|
||||
var params = {};
|
||||
for (const [key, value] of Object.entries(exclusive)) {
|
||||
var v = evt.detail.parameters[key]
|
||||
if (v) {
|
||||
params[value] = v;
|
||||
}
|
||||
}
|
||||
evt.detail.parameters = params;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
htmx.defineExtension('reactive-trigger', {
|
||||
|
||||
onEvent: function(name , evt) {
|
||||
if (name === "htmx:beforeProcessNode") {
|
||||
var element = evt.detail.elt;
|
||||
var reactiveTrigger = element.getAttribute("hx-reactive-trigger");
|
||||
if (reactiveTrigger) {
|
||||
reactiveTrigger = JSON.parse(reactiveTrigger);
|
||||
var reactiveSource = element.getAttribute("hx-reactive-source");
|
||||
reactiveSource = reactiveSource ? document.querySelector(reactiveSource) : element.closest("form");
|
||||
|
||||
// var triggerString = Object.keys(reactiveTrigger).map(k => "change from:#" + reactiveSource.getAttribute("id") + " [name=\"" + k + "\"]").join(", ");
|
||||
var triggerString = reactiveTrigger.map(k => "change from:" + "[name=\"" + k + "\"]").join(", ");
|
||||
element.setAttribute("hx-trigger", triggerString);
|
||||
}
|
||||
} else if (name=="htmx:configRequest") {
|
||||
var element = evt.detail.elt;
|
||||
var reactiveTrigger = element.getAttribute("hx-reactive-trigger");
|
||||
if (reactiveTrigger) {
|
||||
reactiveTrigger = JSON.parse(reactiveTrigger);
|
||||
var reactiveSource = element.getAttribute("hx-reactive-source");
|
||||
reactiveSource = reactiveSource ? document.querySelector(reactiveSource) : element.closest("form");
|
||||
for (key of reactiveTrigger) {
|
||||
console.log( reactiveSource.querySelector(`[name="${key}"]`).value)
|
||||
evt.detail.parameters[key] = reactiveSource.querySelector(`[name="${key}"]`).value || "";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function deepEqual(obj1, obj2) {
|
||||
if (obj1 === obj2) {
|
||||
return true; // Check for equality
|
||||
}
|
||||
|
||||
if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 === null || obj2 === null) {
|
||||
return false; // Check if both are objects
|
||||
}
|
||||
|
||||
const keys1 = Object.keys(obj1);
|
||||
const keys2 = Object.keys(obj2);
|
||||
|
||||
if (keys1.length !== keys2.length) {
|
||||
return false; // Check if they have the same number of properties
|
||||
}
|
||||
|
||||
for (const key of keys1) {
|
||||
if (!keys2.includes(key) || !deepEqual(obj1[key], obj2[key])) {
|
||||
return false; // Recursively compare properties
|
||||
}
|
||||
}
|
||||
|
||||
return true; // Objects are deeply equal
|
||||
}
|
||||
|
||||
htmx.defineExtension('trigger-filter', {
|
||||
|
||||
onEvent: function(name , evt) {
|
||||
if (name=="htmx:beforeRequest") {
|
||||
var element = evt.detail.elt;
|
||||
console.log("HEREEE", element.lastParams, evt.detail.requestConfig.parameters)
|
||||
if (!deepEqual(element.lastParams, evt.detail.requestConfig.parameters)) {
|
||||
element.lastParams = evt.detail.requestConfig.parameters;
|
||||
} else {
|
||||
console.log("unchanged")
|
||||
evt.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
initDatepicker = function(elem) {
|
||||
elem.dp = new Datepicker(elem, {format: "mm/dd/yyyy", autohide: true});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1208,6 +1208,10 @@ input:checked + .toggle-bg {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.mr-1 {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.mr-10 {
|
||||
margin-right: 2.5rem;
|
||||
}
|
||||
@@ -1248,10 +1252,6 @@ input:checked + .toggle-bg {
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
|
||||
.mr-1 {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block;
|
||||
}
|
||||
@@ -1352,6 +1352,10 @@ input:checked + .toggle-bg {
|
||||
width: 4rem;
|
||||
}
|
||||
|
||||
.w-24 {
|
||||
width: 6rem;
|
||||
}
|
||||
|
||||
.w-3 {
|
||||
width: 0.75rem;
|
||||
}
|
||||
@@ -1392,18 +1396,22 @@ input:checked + .toggle-bg {
|
||||
width: 2rem;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.w-96 {
|
||||
width: 24rem;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.max-w-2xl {
|
||||
max-width: 42rem;
|
||||
}
|
||||
|
||||
.max-w-4xl {
|
||||
max-width: 56rem;
|
||||
}
|
||||
|
||||
.max-w-lg {
|
||||
max-width: 32rem;
|
||||
}
|
||||
@@ -1420,10 +1428,6 @@ input:checked + .toggle-bg {
|
||||
max-width: 1024px;
|
||||
}
|
||||
|
||||
.max-w-4xl {
|
||||
max-width: 56rem;
|
||||
}
|
||||
|
||||
.flex-1 {
|
||||
flex: 1 1 0%;
|
||||
}
|
||||
@@ -1440,14 +1444,6 @@ input:checked + .toggle-bg {
|
||||
flex-shrink: 1;
|
||||
}
|
||||
|
||||
.shrink-0 {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.grow-0 {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.basis-1\/4 {
|
||||
flex-basis: 25%;
|
||||
}
|
||||
@@ -1546,10 +1542,6 @@ input:checked + .toggle-bg {
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.grid-cols-2 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-cols-3 {
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
}
|
||||
@@ -1638,10 +1630,6 @@ input:checked + .toggle-bg {
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.gap-3 {
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.gap-x-4 {
|
||||
-moz-column-gap: 1rem;
|
||||
column-gap: 1rem;
|
||||
@@ -1707,12 +1695,6 @@ input:checked + .toggle-bg {
|
||||
margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
|
||||
}
|
||||
|
||||
.space-x-3 > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-space-x-reverse: 0;
|
||||
margin-right: calc(0.75rem * var(--tw-space-x-reverse));
|
||||
margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
|
||||
}
|
||||
|
||||
.divide-y > :not([hidden]) ~ :not([hidden]) {
|
||||
--tw-divide-y-reverse: 0;
|
||||
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
||||
@@ -2441,6 +2423,33 @@ input:checked + .toggle-bg {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.htmx-settling .fade-in-settle {
|
||||
opacity: 0.0 !important;
|
||||
}
|
||||
|
||||
.htmx-settling.fade-in-settle {
|
||||
opacity: 0.0 !important;
|
||||
}
|
||||
|
||||
.fade-in-settle {
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.htmx-settling .slide-up-settle {
|
||||
--tw-translate-y: 1.25rem !important;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
|
||||
}
|
||||
|
||||
.htmx-settling.slide-up-settle {
|
||||
--tw-translate-y: 1.25rem !important;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
|
||||
}
|
||||
|
||||
.slide-up-settle {
|
||||
--tw-translate-y: 0px;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
||||
}
|
||||
|
||||
.htmx-added .slide-up {
|
||||
--tw-translate-y: 1.25rem !important;
|
||||
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) !important;
|
||||
@@ -2588,6 +2597,33 @@ input:checked + .toggle-bg {
|
||||
--tw-ring-color: rgb(0 156 234 / var(--tw-ring-opacity)) !important;
|
||||
}
|
||||
|
||||
.choices:focus-within .choices__inner {
|
||||
--tw-border-opacity: 1 !important;
|
||||
border-color: rgb(0 156 234 / var(--tw-border-opacity)) !important;
|
||||
--tw-ring-opacity: 1 !important;
|
||||
--tw-ring-color: rgb(0 156 234 / var(--tw-ring-opacity)) !important;
|
||||
}
|
||||
|
||||
:is(.dark .choices:focus-within .choices__inner) {
|
||||
--tw-border-opacity: 1 !important;
|
||||
border-color: rgb(0 156 234 / var(--tw-border-opacity)) !important;
|
||||
--tw-ring-opacity: 1 !important;
|
||||
--tw-ring-color: rgb(0 156 234 / var(--tw-ring-opacity)) !important;
|
||||
}
|
||||
|
||||
.choices:focus-within .choices__inner {
|
||||
outline: 2px solid transparent !important;
|
||||
outline-offset: 2px;
|
||||
--tw-ring-inset: var(--tw-empty,/*!*/ /*!*/);
|
||||
--tw-ring-offset-width: 0px;
|
||||
--tw-ring-offset-color: #fff;
|
||||
--tw-ring-color: #007dbb;
|
||||
--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
|
||||
--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
||||
border-color: #007dbb;
|
||||
}
|
||||
|
||||
.choices__inner .choices__input {
|
||||
margin: 0px !important;
|
||||
--tw-bg-opacity: 1 !important;
|
||||
|
||||
Reference in New Issue
Block a user