|
212 | 212 | background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 100%); |
213 | 213 | pointer-events: none; |
214 | 214 | } |
| 215 | + |
| 216 | + /* Responsive Styles */ |
| 217 | + @media (max-width: 599px) { |
| 218 | + .stat-item { |
| 219 | + padding: 10px 12px; |
| 220 | + } |
| 221 | + |
| 222 | + .stat-label { |
| 223 | + font-size: 0.65rem; |
| 224 | + } |
| 225 | + |
| 226 | + .stat-value { |
| 227 | + font-size: 1.2rem; |
| 228 | + } |
| 229 | + |
| 230 | + .qr-wrapper { |
| 231 | + padding: 12px; |
| 232 | + } |
| 233 | + |
| 234 | + .qr-image { |
| 235 | + width: 200px; |
| 236 | + height: 200px; |
| 237 | + } |
| 238 | + |
| 239 | + .switch-card { |
| 240 | + padding: 10px; |
| 241 | + } |
| 242 | + |
| 243 | + /* Hide Currency, Timezone, Hours columns on mobile */ |
| 244 | + .q-table th:nth-child(3), |
| 245 | + .q-table td:nth-child(3), |
| 246 | + .q-table th:nth-child(4), |
| 247 | + .q-table td:nth-child(4), |
| 248 | + .q-table th:nth-child(5), |
| 249 | + .q-table td:nth-child(5) { |
| 250 | + display: none !important; |
| 251 | + } |
| 252 | + |
| 253 | + .info-banner-wrapper { |
| 254 | + height: 100px; |
| 255 | + } |
| 256 | + } |
| 257 | + |
| 258 | + @media (max-width: 400px) { |
| 259 | + .stat-value { |
| 260 | + font-size: 1rem; |
| 261 | + } |
| 262 | + |
| 263 | + .qr-image { |
| 264 | + width: 160px; |
| 265 | + height: 160px; |
| 266 | + } |
| 267 | + } |
215 | 268 | </style> |
216 | 269 | {% endblock %} |
217 | 270 |
|
|
235 | 288 | borderless |
236 | 289 | dense |
237 | 290 | filled |
238 | | - style="min-width: 200px;" |
| 291 | + style="min-width: 180px;" |
239 | 292 | @update:model-value="onWalletChange" |
240 | 293 | > |
241 | 294 | <template v-slot:prepend> |
|
277 | 330 |
|
278 | 331 | <!-- Stats Cards --> |
279 | 332 | <div class="row q-col-gutter-sm q-mb-md"> |
280 | | - <div class="col-4"> |
| 333 | + <div class="col-12 col-sm-4"> |
281 | 334 | <q-card class="stat-card custom_border" flat> |
282 | 335 | <div class="row items-center stat-item"> |
283 | 336 | <div class="col"> |
|
297 | 350 | </div> |
298 | 351 | </q-card> |
299 | 352 | </div> |
300 | | - <div class="col-4"> |
| 353 | + <div class="col-12 col-sm-4"> |
301 | 354 | <q-card class="stat-card custom_border" flat> |
302 | 355 | <div class="row items-center stat-item"> |
303 | 356 | <div class="col"> |
|
317 | 370 | </div> |
318 | 371 | </q-card> |
319 | 372 | </div> |
320 | | - <div class="col-4"> |
| 373 | + <div class="col-12 col-sm-4"> |
321 | 374 | <q-card class="stat-card custom_border" flat> |
322 | 375 | <div class="row items-center stat-item"> |
323 | 376 | <div class="col"> |
|
359 | 412 | <div class="row items-center q-px-md q-pt-md q-pb-sm"> |
360 | 413 | <div class="col"> |
361 | 414 | <div class="text-subtitle1 text-weight-medium">Timed Devices</div> |
362 | | - <div class="text-caption text-grey">Manage your bitcoinSwitch devices</div> |
| 415 | + <div class="text-caption text-grey gt-xs">Manage your bitcoinSwitch devices</div> |
363 | 416 | </div> |
364 | 417 | <div class="col-auto row items-center q-gutter-x-sm"> |
365 | 418 | <q-input |
|
369 | 422 | debounce="300" |
370 | 423 | placeholder="Search..." |
371 | 424 | class="search-input" |
372 | | - style="width: 160px;" |
| 425 | + style="width: 140px;" |
373 | 426 | > |
374 | 427 | <template v-slot:prepend> |
375 | 428 | <q-icon name="search" size="16px" color="grey-6"></q-icon> |
376 | 429 | </template> |
377 | 430 | </q-input> |
378 | | - <q-btn flat round size="sm" @click="exportCSV"> |
| 431 | + <q-btn flat round size="sm" @click="exportCSV" class="gt-xs"> |
379 | 432 | <q-icon size="18px"> |
380 | 433 | <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24"> |
381 | 434 | <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" |
|
385 | 438 | <q-tooltip>Export CSV</q-tooltip> |
386 | 439 | </q-btn> |
387 | 440 | <q-btn unelevated color="primary" size="sm" class="avatar_style" @click="openDeviceDialog()" no-caps> |
388 | | - <q-icon name="add" size="18px" class="q-mr-xs"></q-icon> |
389 | | - New Device |
| 441 | + <q-icon name="add" size="18px"></q-icon> |
| 442 | + <span class="q-ml-xs gt-xs">New Device</span> |
390 | 443 | </q-btn> |
391 | 444 | </div> |
392 | 445 | </div> |
|
455 | 508 | hide-bottom |
456 | 509 | > |
457 | 510 | <template v-slot:body-cell-id="props"> |
458 | | - <q-td :props="props"> |
| 511 | + <q-td :props="props" class="hide-on-mobile"> |
459 | 512 | <div class="row items-center no-wrap"> |
460 | 513 | <code class="text-caption text-grey-7" style="font-size: 0.7rem;">{% raw %}{{ props.row.id.substring(0, 8) }}...{% endraw %}</code> |
461 | 514 | <q-btn flat dense round size="xs" color="grey-6" class="q-ml-xs" @click="copyText(props.row.id, 'Device ID copied!')"> |
|
597 | 650 | <p class="text-body2 text-grey-7 q-mb-sm" style="line-height: 1.5;"> |
598 | 651 | Bring your physical devices to life with Bitcoin Lightning payments. |
599 | 652 | </p> |
600 | | - <p class="text-caption text-grey-6 q-mb-none" style="line-height: 1.5;"> |
| 653 | + <p class="text-caption text-grey-6" style="line-height: 1.5;"> |
601 | 654 | DeviceTimer extends the bitcoinSwitch ecosystem with powerful time-based controls. |
602 | 655 | Set operating hours, enforce cooldown periods, and limit daily usage. |
603 | 656 | Perfect for animal feeders, arcade machines, vending machines, and any IoT device. |
604 | 657 | </p> |
| 658 | + <q-btn |
| 659 | + unelevated |
| 660 | + color="orange-8" |
| 661 | + text-color="white" |
| 662 | + size="sm" |
| 663 | + class="full-width avatar_style q-mt-md" |
| 664 | + no-caps |
| 665 | + href="https://bitcoinswitch.lnbits.com" |
| 666 | + target="_blank" |
| 667 | + > |
| 668 | + <q-icon size="16px" class="q-mr-sm"> |
| 669 | + <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"> |
| 670 | + <g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"> |
| 671 | + <path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 9l5-5l5 5M12 4v12"/> |
| 672 | + </g> |
| 673 | + </svg> |
| 674 | + </q-icon> |
| 675 | + Flash Firmware (Web Flasher) |
| 676 | + </q-btn> |
| 677 | + <div class="text-center text-caption text-grey-5 q-mt-xs" style="font-size: 0.6rem;"> |
| 678 | + Requires Chrome or Edge browser |
| 679 | + </div> |
605 | 680 | </q-card-section> |
606 | 681 |
|
607 | 682 | <!-- Features --> |
|
774 | 849 | ></q-select> |
775 | 850 |
|
776 | 851 | <div class="row q-col-gutter-sm"> |
777 | | - <div class="col-6"> |
| 852 | + <div class="col-12 col-sm-6"> |
778 | 853 | <q-select |
779 | 854 | v-model="deviceDialog.data.currency" |
780 | 855 | :options="currencies" |
|
783 | 858 | label="Currency" |
784 | 859 | ></q-select> |
785 | 860 | </div> |
786 | | - <div class="col-6"> |
| 861 | + <div class="col-12 col-sm-6"> |
787 | 862 | <q-select |
788 | 863 | v-model="deviceDialog.data.timezone" |
789 | 864 | :options="timezones" |
|
0 commit comments