Skip to content

Commit f09ebed

Browse files
committed
buttons get htmx attrs now
1 parent 8463bf8 commit f09ebed

File tree

6 files changed

+168
-30
lines changed

6 files changed

+168
-30
lines changed

BaseApp/logs/views.log

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,11 @@
176176
get_tailwind_info
177177
2024-06-02T11:08:55.562640-0400 -- DEBUG -- get_tailwind_info -- line 36
178178
get_tailwind_info
179+
2024-06-03T12:57:42.847945-0400 -- DEBUG -- get_blog_post_list -- line 36
180+
page_number=1, search_query=''
181+
2024-06-03T12:58:52.420807-0400 -- DEBUG -- get_tailwind_info -- line 36
182+
get_tailwind_info
183+
2024-06-03T13:05:46.074455-0400 -- DEBUG -- get_blog_post_list -- line 36
184+
page_number=1, search_query=''
185+
2024-06-03T13:05:53.168057-0400 -- DEBUG -- get_tailwind_info -- line 36
186+
get_tailwind_info

BaseApp/static/BaseApp/button_handlers.mjs

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,28 @@
11
import { initialActiveStrategies } from "./strategies.mjs";
2-
// Strategies for initial active button
3-
// ( first, last, none, random, 0-100, etc. )
2+
import { HtmxHandler } from "./htmx_handlers.mjs";
3+
4+
const DEBUG = true;
45
export class ToggledButtonGroup {
5-
constructor(groupId, activeClass = "active", initialActive = "none") {
6-
this.groupId = groupId;
7-
this.container = document.getElementById(`${groupId}-button-group`);
6+
constructor(config) {
7+
this.groupId = config.groupId;
8+
this.container = document.getElementById(`${this.groupId}-button-group`);
89
this.buttons = this.container
910
? this.container.querySelectorAll("button")
10-
: []; // Get buttons inside
11-
this.activeClass = activeClass;
11+
: [];
12+
this.activeClass = config.activeClass || "active";
13+
this.initialActive = config.initialActive || "none";
14+
this.htmxHandlers = {};
1215
// ERROR CHECKING
1316
if (!this.container) {
1417
console.error(
1518
`Error: Button group container with ID "${groupId}-button-group" not found. Make sure the HTML element exists with the correct ID.`
1619
);
1720
return; // Exit constructor since we can't proceed without a container.
1821
}
19-
this.initialActive = initialActive;
20-
21-
this.htmxHandlers = {};
22-
2322
this.setInitialActiveButton();
24-
23+
if (DEBUG) {
24+
console.log(`htmxHandlers = ${JSON.stringify(this.htmxHandlers)}`);
25+
}
2526
this.init();
2627
}
2728

@@ -50,13 +51,22 @@ export class ToggledButtonGroup {
5051

5152
setInitialActiveButton() {
5253
const strategy = initialActiveStrategies[this.initialActive];
54+
// DEBUG
55+
if (DEBUG) {
56+
console.log(`Initial active button strategy: ${strategy}`);
57+
}
5358
// ERROR CHECKING
5459
if (!strategy) {
5560
console.error(
5661
`Error: Invalid initial_active option "${this.initialActive}".`
5762
);
5863
return;
5964
}
65+
// Set initial active button
66+
const initialButton = strategy(this.buttons, this.initialActive);
67+
if (initialButton) {
68+
this.setActiveButton(initialButton);
69+
}
6070
this.setupHTMXHandlers();
6171
}
6272

@@ -91,20 +101,20 @@ export class ToggledButtonGroup {
91101
let hasHxAttribute = false;
92102
const buttonText = button.textContent.trim() || `button-${index}`;
93103
for (const attr of button.attributes) {
94-
console.log(`Button ${button.id} has attribute ${attr.name}`);
95104
if (attr.name.startsWith("hx-")) {
105+
const new_HTMXHandler = new HtmxHandler(button);
96106
hasHxAttribute = true;
97-
this.htmxHandlers[index]["name"] = buttonText;
98-
this.htmxHandlers[index][attr.name] = attr.value;
107+
this.htmxHandlers[index] = new_HTMXHandler;
99108
}
100109
}
101-
102-
if (hasHxAttribute) {
103-
console.log(`Found button with hx- attribute: ${button.id}`);
104-
console.log(this.htmxHandlers[index]); // Log using the key
105-
}
106110
});
107111
}
112+
triggerHtmxEvent(button) {
113+
const handler = this.htmxHandlers[button.textContent.trim()];
114+
if (handler) {
115+
handler.triggerHtmxRequest(); // Call the triggerHtmxRequest method on the appropriate handler
116+
}
117+
}
108118
}
109119

110120
ToggledButtonGroup.initAll = function (groupFilter = "") {
@@ -142,10 +152,12 @@ ToggledButtonGroup.initAll = function (groupFilter = "") {
142152
// Initialize all button groups
143153
document.querySelectorAll(selector).forEach((group) => {
144154
console.log(`Initializing ToggledButtonGroup with ID "${group.id}"`);
145-
const groupId = group.id.replace("-button-group", "");
146-
const activeClass = group.dataset.activeClass || "active";
147-
const initialActive = group.dataset.initialActive || "none";
155+
const config = {
156+
groupId: group.id.replace("-button-group", ""),
157+
activeClass: group.dataset.activeClass || "active",
158+
initialActive: group.dataset.initialActive || "none",
159+
};
148160
// Create new class instance
149-
new ToggledButtonGroup(groupId, activeClass, initialActive);
161+
new ToggledButtonGroup(config);
150162
});
151163
};
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export class HtmxHandler {
2+
constructor(button) {
3+
this.button = button;
4+
this.htmxAttributes = {};
5+
this.extractHtmxAttributes();
6+
}
7+
8+
extractHtmxAttributes() {
9+
for (const attr of this.button.attributes) {
10+
if (attr.name.startsWith("hx-")) {
11+
this.htmxAttributes[attr.name] = attr.value;
12+
}
13+
}
14+
}
15+
16+
triggerHtmxRequest() {
17+
// You can add the logic for triggering HTMX requests here,
18+
// based on the extracted attributes (e.g., using htmx.ajax())
19+
// For now, let's just log the attributes:
20+
console.log(
21+
`Triggering HTMX request for ${this.button.id} with attributes:`,
22+
this.htmxAttributes
23+
);
24+
}
25+
}

BaseApp/templates/BaseApp/home/sections/tech_info.html

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
{% load static %}
2-
<div hx-get="{% url 'BaseApp:django-info' %}"
3-
hx-target="#home-tech-info-output"
4-
hx-swap="innerHTML"
5-
hx-trigger="load"
6-
class="hidden"></div>
72
<div class="bg-black/10 text-center bg-gradient-to-b from-black/20 from-0% via-blue-300/5 via-5% to-black/20 to-50%">
83
<span class="text-sm text-white/30">Click to learn more about technologies used on this website</span>
94
<div id="tech-info-button-group"
105
data-active-class="bg-black/50 hover:bg-black/50 font-bold text-white border-b-4 border-white/20"
11-
data-initial-active="first"
6+
data-initial-active="1"
127
class="flex gap-4 p-2 px-6 w-full justify-evenly">
138
<button id="django-info-button"
149
hx-get="{% url 'BaseApp:django-info' %}"

BaseApp/templatetags/logs/menu_tags.log

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9552,3 +9552,93 @@
95529552
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
95539553
2024-06-02T11:22:09.249684-0400 -- DEBUG -- top_navbar_buttons -- line 17
95549554
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9555+
2024-06-03T12:57:03.689455-0400 -- DEBUG -- top_navbar_buttons -- line 17
9556+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9557+
2024-06-03T12:57:07.778001-0400 -- DEBUG -- top_navbar_buttons -- line 17
9558+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9559+
2024-06-03T12:57:42.719114-0400 -- DEBUG -- top_navbar_buttons -- line 17
9560+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9561+
2024-06-03T12:57:43.516809-0400 -- DEBUG -- top_navbar_buttons -- line 17
9562+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9563+
2024-06-03T12:57:54.512777-0400 -- DEBUG -- top_navbar_buttons -- line 17
9564+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9565+
2024-06-03T12:57:59.115258-0400 -- DEBUG -- top_navbar_buttons -- line 17
9566+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9567+
2024-06-03T12:58:01.945165-0400 -- DEBUG -- top_navbar_buttons -- line 17
9568+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9569+
2024-06-03T12:58:04.435174-0400 -- DEBUG -- top_navbar_buttons -- line 17
9570+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9571+
2024-06-03T12:58:49.532261-0400 -- DEBUG -- top_navbar_buttons -- line 17
9572+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9573+
2024-06-03T12:58:53.446193-0400 -- DEBUG -- top_navbar_buttons -- line 17
9574+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9575+
2024-06-03T12:59:33.524375-0400 -- DEBUG -- top_navbar_buttons -- line 17
9576+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9577+
2024-06-03T13:00:01.343271-0400 -- DEBUG -- top_navbar_buttons -- line 17
9578+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9579+
2024-06-03T13:00:36.640451-0400 -- DEBUG -- top_navbar_buttons -- line 17
9580+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9581+
2024-06-03T13:00:50.177921-0400 -- DEBUG -- top_navbar_buttons -- line 17
9582+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9583+
2024-06-03T13:01:00.226333-0400 -- DEBUG -- top_navbar_buttons -- line 17
9584+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9585+
2024-06-03T13:01:38.087941-0400 -- DEBUG -- top_navbar_buttons -- line 17
9586+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9587+
2024-06-03T13:01:44.923020-0400 -- DEBUG -- top_navbar_buttons -- line 17
9588+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9589+
2024-06-03T13:01:55.094011-0400 -- DEBUG -- top_navbar_buttons -- line 17
9590+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9591+
2024-06-03T13:02:34.620173-0400 -- DEBUG -- top_navbar_buttons -- line 17
9592+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9593+
2024-06-03T13:02:47.950474-0400 -- DEBUG -- top_navbar_buttons -- line 17
9594+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9595+
2024-06-03T13:03:09.461108-0400 -- DEBUG -- top_navbar_buttons -- line 17
9596+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9597+
2024-06-03T13:03:14.243890-0400 -- DEBUG -- top_navbar_buttons -- line 17
9598+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9599+
2024-06-03T13:05:39.933393-0400 -- DEBUG -- top_navbar_buttons -- line 17
9600+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9601+
2024-06-03T13:05:45.907404-0400 -- DEBUG -- top_navbar_buttons -- line 17
9602+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9603+
2024-06-03T13:05:47.385187-0400 -- DEBUG -- top_navbar_buttons -- line 17
9604+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9605+
2024-06-03T13:05:54.872176-0400 -- DEBUG -- top_navbar_buttons -- line 17
9606+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9607+
2024-06-03T13:06:04.507325-0400 -- DEBUG -- top_navbar_buttons -- line 17
9608+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9609+
2024-06-03T13:06:14.648216-0400 -- DEBUG -- top_navbar_buttons -- line 17
9610+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9611+
2024-06-03T13:06:18.349479-0400 -- DEBUG -- top_navbar_buttons -- line 17
9612+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9613+
2024-06-03T13:06:20.742408-0400 -- DEBUG -- top_navbar_buttons -- line 17
9614+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9615+
2024-06-03T13:07:30.752108-0400 -- DEBUG -- top_navbar_buttons -- line 17
9616+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9617+
2024-06-03T13:11:03.491261-0400 -- DEBUG -- top_navbar_buttons -- line 17
9618+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9619+
2024-06-03T13:11:49.304537-0400 -- DEBUG -- top_navbar_buttons -- line 17
9620+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9621+
2024-06-03T13:16:18.952746-0400 -- DEBUG -- top_navbar_buttons -- line 17
9622+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9623+
2024-06-03T13:17:43.485625-0400 -- DEBUG -- top_navbar_buttons -- line 17
9624+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9625+
2024-06-03T13:18:42.435500-0400 -- DEBUG -- top_navbar_buttons -- line 17
9626+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9627+
2024-06-03T13:19:50.976419-0400 -- DEBUG -- top_navbar_buttons -- line 17
9628+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9629+
2024-06-03T13:20:09.127364-0400 -- DEBUG -- top_navbar_buttons -- line 17
9630+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9631+
2024-06-03T13:20:16.532009-0400 -- DEBUG -- top_navbar_buttons -- line 17
9632+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9633+
2024-06-03T13:21:31.709854-0400 -- DEBUG -- top_navbar_buttons -- line 17
9634+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9635+
2024-06-03T13:23:04.449131-0400 -- DEBUG -- top_navbar_buttons -- line 17
9636+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9637+
2024-06-03T13:23:24.955008-0400 -- DEBUG -- top_navbar_buttons -- line 17
9638+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9639+
2024-06-03T13:24:51.363896-0400 -- DEBUG -- top_navbar_buttons -- line 17
9640+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9641+
2024-06-03T13:25:03.445002-0400 -- DEBUG -- top_navbar_buttons -- line 17
9642+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}
9643+
2024-06-03T13:26:56.186111-0400 -- DEBUG -- top_navbar_buttons -- line 17
9644+
navbar_items: {'Documentation': [Blog (/blog/), Home (/base/home/), Home (/base/home/)], 'Components': [User Interface (/base/ui-elements/), Home (/base/home/)], 'Tools': [Home (/base/home/)]}

BlogApp/logs/views.log

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2200,3 +2200,11 @@
22002200
get_tailwind_info
22012201
2024-06-02T11:08:55.562640-0400 -- DEBUG -- get_tailwind_info -- line 36
22022202
get_tailwind_info
2203+
2024-06-03T12:57:42.847945-0400 -- DEBUG -- get_blog_post_list -- line 36
2204+
page_number=1, search_query=''
2205+
2024-06-03T12:58:52.420807-0400 -- DEBUG -- get_tailwind_info -- line 36
2206+
get_tailwind_info
2207+
2024-06-03T13:05:46.074455-0400 -- DEBUG -- get_blog_post_list -- line 36
2208+
page_number=1, search_query=''
2209+
2024-06-03T13:05:53.168057-0400 -- DEBUG -- get_tailwind_info -- line 36
2210+
get_tailwind_info

0 commit comments

Comments
 (0)