@pubinfo-pr/core 0.222.4 → 0.224.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/{AppSetting-BWVulLPM.js → AppSetting-7jlhUzze.js} +40 -40
  2. package/dist/{HCheckList-Bb4GvZ2_.js → HCheckList-cPBgATmv.js} +1 -1
  3. package/dist/HSlideover-DVQDc9q6.js +3151 -0
  4. package/dist/{HToggle-Bnr5k93p.js → HToggle-Ce_2-yhZ.js} +2 -2
  5. package/dist/PreferencesContent-BAIH81yS.js +701 -0
  6. package/dist/{SettingBreadcrumb-DKCK6V-n.js → SettingBreadcrumb-O9-PhAFT.js} +7 -6
  7. package/dist/{SettingCopyright-C5Pc0I1w.js → SettingCopyright-DIKsWTuf.js} +4 -4
  8. package/dist/{SettingEnableTransition-D2FDj0oR.js → SettingEnableTransition-61O7W00b.js} +6 -6
  9. package/dist/{SettingHome-1Y1rYeQb.js → SettingHome-Sv65TPH8.js} +6 -6
  10. package/dist/{SettingMenu-DWtNX8Ti.js → SettingMenu-BvwJOUZV.js} +9 -8
  11. package/dist/{SettingMode-CZV84QeW.js → SettingMode-B8H_eQc8.js} +5 -5
  12. package/dist/{SettingNavSearch-CrMpbXFg.js → SettingNavSearch-BHsmYBA7.js} +5 -5
  13. package/dist/{SettingOther-D6gGuQJw.js → SettingOther-CyyNnaDX.js} +6 -6
  14. package/dist/{SettingPage-DuN13bXO.js → SettingPage-B82lW41P.js} +3 -3
  15. package/dist/{SettingTabbar-BhJxcU35.js → SettingTabbar-Bky2xvH-.js} +11 -10
  16. package/dist/{SettingThemes-BjkWfY1C.js → SettingThemes-CkdzS1xt.js} +13 -12
  17. package/dist/{SettingToolbar-BYOxXAXL.js → SettingToolbar-CD4qns1J.js} +5 -5
  18. package/dist/{SettingTopbar-CxKsnIRK.js → SettingTopbar-1shjoe3s.js} +9 -8
  19. package/dist/{SettingWidthMode-dM88qSol.js → SettingWidthMode-DlG6lXjA.js} +6 -6
  20. package/dist/auth-BLGKOyc5.js +4432 -0
  21. package/dist/built-in/layout-component/index.d.ts +2 -6
  22. package/dist/{change-organization-BXl4ZC7j.js → change-organization-hsqeSzDu.js} +25 -25
  23. package/dist/{change-password-P4SGdvdU.js → change-password-EtccCDRX.js} +74 -65
  24. package/dist/chunk-CD4vhpVs.js +18 -0
  25. package/dist/components-DFNyaAb9.js +5238 -0
  26. package/dist/{core-D2ocBD0r.js → core-DJIGzMMM.js} +51 -57
  27. package/dist/dist-7OjQvlya.js +468 -0
  28. package/dist/form-C3VHofnN.js +2768 -0
  29. package/dist/index.js +8391 -2411
  30. package/dist/modal-Bl5xHbxa.js +43824 -0
  31. package/dist/{not-found-C-1699o2.js → not-found-BCjngLzt.js} +5 -4
  32. package/dist/{not-permission-CZGJzlSF.js → not-permission-C26vTMvf.js} +5 -4
  33. package/dist/profile-BVXIFuBG.js +19269 -0
  34. package/dist/{question-line-B4oDBb2H.js → question-line-BG__Ycfv.js} +2 -2
  35. package/dist/{right-BTHgfOSp.js → right-BxBlFUwj.js} +4 -4
  36. package/dist/style.css +1 -1
  37. package/dist/tree-select-B8cTcGLa.js +12497 -0
  38. package/dist/watchDiff-CPZFtaOC.js +655 -0
  39. package/package.json +7 -7
  40. package/src/built-in/authentication/pages/change-organization/index.vue +5 -22
  41. package/src/built-in/authentication/pages/change-password/index.vue +3 -30
  42. package/src/built-in/layout-component/Layout.vue +30 -81
  43. package/src/built-in/layout-component/components/Copyright/index.vue +3 -29
  44. package/src/built-in/layout-component/components/Header/HeaderFullMenu/More.vue +6 -17
  45. package/src/built-in/layout-component/components/Header/HeaderFullMenu/NotCursor.vue +7 -18
  46. package/src/built-in/layout-component/components/Header/index.vue +22 -119
  47. package/src/built-in/layout-component/components/Logo/index.vue +1 -4
  48. package/src/built-in/layout-component/components/Menu/item.vue +6 -29
  49. package/src/built-in/layout-component/components/SettingBar/AppSetting.vue +13 -33
  50. package/src/built-in/layout-component/components/SettingBar/components/DayNightToggle.vue +25 -113
  51. package/src/built-in/layout-component/components/SettingBar/components/SettingEnableTransition.vue +4 -57
  52. package/src/built-in/layout-component/components/SettingBar/components/SettingMode.vue +20 -123
  53. package/src/built-in/layout-component/components/SettingBar/components/SettingThemes.vue +25 -102
  54. package/src/built-in/layout-component/components/SettingBar/components/SettingWidthMode.vue +16 -100
  55. package/src/built-in/layout-component/components/SettingBar/index.vue +10 -64
  56. package/src/built-in/layout-component/components/Sidebar/MainSidebar.vue +22 -76
  57. package/src/built-in/layout-component/components/Sidebar/SubSidebar.vue +10 -16
  58. package/src/built-in/layout-component/components/Tools/Breadcrumb/index.vue +2 -2
  59. package/src/built-in/layout-component/components/Tools/DarkModeToggle.vue +4 -26
  60. package/src/built-in/layout-component/components/Tools/Preferences/PreferencesContent.vue +51 -404
  61. package/src/built-in/layout-component/components/Topbar/Tabbar/MoreAction.vue +13 -68
  62. package/src/built-in/layout-component/components/Topbar/Tabbar/index.vue +49 -177
  63. package/src/built-in/layout-component/components/Topbar/Toolbar/Favorites.vue +2 -2
  64. package/src/built-in/layout-component/components/Topbar/Toolbar/index.vue +12 -45
  65. package/src/built-in/layout-component/components/ui/HToggle.vue +9 -55
  66. package/src/built-in/layout-component/index.ts +2 -4
  67. package/src/features/components/PassStrengthValidator/index.vue +10 -36
  68. package/src/features/components/PassStrengthValidator/rule.vue +4 -17
  69. package/dist/HSlideover-DoCRa4dK.js +0 -152
  70. package/dist/HeaderFullMenu--AOcAS-6.js +0 -251
  71. package/dist/HeaderThinMenu-CRPVfGgM.js +0 -438
  72. package/dist/PreferencesContent-DW9HAzpr.js +0 -486
  73. package/dist/auth-DILNNEQ8.js +0 -1230
  74. package/dist/components-C9kcavB4.js +0 -2768
  75. package/dist/core-CKIhF3Vi.js +0 -270
  76. package/dist/profile-B3Q7hRgl.js +0 -123
  77. /package/dist/{HButton-BPbXqVbA.js → HButton-Dt6qGhhR.js} +0 -0
  78. /package/dist/{HDivider-BSENlYnI.js → HDivider-BwvBr5OE.js} +0 -0
  79. /package/dist/{HInput-DbvnkEO7.js → HInput-KJ5nFBpF.js} +0 -0
  80. /package/dist/{HTooltip-tCnNrJUE.js → HTooltip-DjAU-Evn.js} +0 -0
  81. /package/dist/{_plugin-vue_export-helper-BBf_fmJ_.js → _plugin-vue_export-helper-sUTDUeGO.js} +0 -0
  82. /package/dist/{engine-oniguruma-Bl7ZtyDI.js → engine-oniguruma-CaNXwGSv.js} +0 -0
  83. /package/dist/{json-BuUwnwNo.js → json-Bu_Zprin.js} +0 -0
  84. /package/dist/{reload-DWTXo9r2.js → reload-DHx5Vwus.js} +0 -0
  85. /package/dist/{useContext-mDF2-tXy.js → useContext-DLtu9F7E.js} +0 -0
  86. /package/dist/{vitesse-dark-j0hKJETh.js → vitesse-dark-CTe40QT_.js} +0 -0
  87. /package/dist/{vitesse-light-BfgKNo3X.js → vitesse-light-BWXC_WeB.js} +0 -0
  88. /package/dist/{wasm-tXaxAgz9.js → wasm-2zDVqo-C.js} +0 -0
@@ -220,39 +220,20 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
220
220
 
221
221
  <style>
222
222
  .tabbar-dropdown .quick-button {
223
- display: flex;
224
- align-items: center;
225
- justify-content: space-between;
226
- padding-top: 15px;
227
- padding-bottom: 0.625rem; /* 10px */
228
- padding-left: 15px;
229
- padding-right: 15px;
223
+ --at-apply: flex items-center justify-between pt-[15px] pb-2.5 px-[15px];
230
224
  }
231
225
 
232
226
  .tabbar-dropdown .quick-button .button {
233
- display: flex;
234
- align-items: center;
235
- justify-content: center;
236
- cursor: pointer;
237
- background-color: var(--g-bg);
238
- transition-duration: 0.3s;
239
- width: 2rem; /* 32px */
240
- height: 2rem; /* 32px */
241
- transition-property: color, background-color, border-color,
242
- text-decoration-color, fill, stroke;
243
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
244
- transition-duration: 150ms;
245
- border-radius: 5px;
246
- outline: none;
247
- border-width: 0px;
227
+ --at-apply: flex items-center justify-center w-8 h-8 cursor-pointer bg-[--g-bg]
228
+ transition-[colors] duration-[0.3s] rounded-[5px] border-0 [outline:none];
248
229
  }
249
230
 
250
231
  .tabbar-dropdown .quick-button .button:hover:not(:disabled) {
251
- color: rgb(var(--ui-primary));
232
+ --at-apply: text-ui-primary;
252
233
  }
253
234
 
254
235
  .tabbar-dropdown .quick-button .button:disabled {
255
- cursor: not-allowed;
236
+ --at-apply: cursor-not-allowed;
256
237
  }
257
238
 
258
239
  .tabbar-dropdown .quick-button .button i {
@@ -260,11 +241,7 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
260
241
  }
261
242
 
262
243
  .tabbar-dropdown .tabs {
263
- width: 200px;
264
- padding-top: 0;
265
- padding-bottom: 0.625rem; /* 10px */
266
- padding-left: 0;
267
- padding-right: 0;
244
+ --at-apply: w-200px pt-0 pb-2.5 px-0;
268
245
  }
269
246
 
270
247
  .tabbar-dropdown .tabs:not(.dragging) .tab:hover:not(.actived) {
@@ -272,22 +249,11 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
272
249
  }
273
250
 
274
251
  .tabbar-dropdown .tabs:not(.dragging) .tab:hover .action-icon {
275
- opacity: 1;
252
+ --at-apply: op-100;
276
253
  }
277
254
 
278
255
  .tabbar-dropdown .tabs .tab {
279
- position: relative;
280
- height: 30px;
281
- background-color: var(--g-container-bg);
282
- margin-left: 15px;
283
- margin-right: 15px;
284
- margin-top: 0;
285
- margin-bottom: 0;
286
- padding-left: 5px;
287
- padding-right: 5px;
288
- padding-top: 0;
289
- padding-bottom: 0;
290
- border-radius: 5px;
256
+ --at-apply: relative h-[30px] bg-[--g-container-bg] mx-[15px] my-0 px-[5px] py-0 rounded-[5px];
291
257
  width: calc(100% - 30px);
292
258
  transition: background-color 0.3s;
293
259
  }
@@ -297,7 +263,7 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
297
263
  }
298
264
 
299
265
  .tabbar-dropdown .tabs .tab.ghost {
300
- opacity: 0;
266
+ --at-apply: op-0;
301
267
  }
302
268
 
303
269
  .tabbar-dropdown .tabs .tab:hover .title {
@@ -312,17 +278,8 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
312
278
  }
313
279
 
314
280
  .tabbar-dropdown .tabs .tab .title {
315
- position: relative;
316
- display: flex;
317
- gap: 5px;
318
- align-items: center;
319
- height: 100%;
320
- overflow: hidden;
321
- font-size: 0.875rem; /* 14px */
322
- line-height: 1.25rem; /* 20px */
323
- white-space: nowrap;
324
- cursor: pointer;
325
- opacity: 0.7;
281
+ --at-apply: relative flex gap-[5px] items-center
282
+ h-full overflow-hidden text-sm whitespace-nowrap cursor-pointer opacity-70;
326
283
 
327
284
  mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
328
285
  transition: all 0.3s;
@@ -338,20 +295,8 @@ function getSafeIconColor(options: ResolvedIconOptions): string | undefined {
338
295
  }
339
296
 
340
297
  .tabbar-dropdown .tabs .tab .action-icon {
341
- position: absolute;
342
- z-index: 10;
343
- width: 1.5em;
344
- height: 1.5em;
345
- color: var(--g-tabbar-tab-color);
346
- opacity: 0;
347
- transition-property: all;
348
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
349
- transition-duration: 150ms;
350
- transition-duration: 0.3s;
351
- border-radius: 50%;
352
- top: 50%;
353
- font-size: 8px;
354
- margin-top: -0.375rem;
298
+ --at-apply: absolute z-10 w-[1.5em] h-[1.5em] text-[8px] text-[--g-tabbar-tab-color]
299
+ opacity-0 transition-all duration-[0.3s] -mt-1.5 rounded-[50%] top-2/4;
355
300
  inset-inline-end: 6px;
356
301
  pointer-events: all;
357
302
  }
@@ -430,96 +430,54 @@ onUnmounted(() => {
430
430
 
431
431
  <style>
432
432
  .tabbar-contextmenu .mx-context-menu {
433
- & {
434
- position: fixed;
435
- --un-ring-width: 1px;
436
- --un-ring-offset-shadow: var(--un-ring-inset) 0 0 0
437
- var(--un-ring-offset-width) var(--un-ring-offset-color);
438
- --un-ring-shadow: var(--un-ring-inset) 0 0 0
439
- calc(var(--un-ring-width) + var(--un-ring-offset-width))
440
- var(--un-ring-color);
441
- box-shadow: var(--un-ring-offset-shadow), var(--un-ring-shadow),
442
- var(--un-shadow);
443
- --un-ring-opacity: 1;
444
- --un-ring-color: rgb(231 229 228 / var(--un-ring-opacity)) /* #e7e5e4 */;
445
- --un-shadow: var(--un-shadow-inset) 0 25px 50px -12px var(--un-shadow-color, rgb(0
446
- 0 0 / 0.25));
447
- box-shadow: var(--un-ring-offset-shadow), var(--un-ring-shadow),
448
- var(--un-shadow);
449
- background-color: var(--g-container-bg) /* var(--g-container-bg) */;
450
- }
451
- .dark & {
452
- --un-ring-opacity: 1;
453
- --un-ring-color: rgb(68 64 60 / var(--un-ring-opacity)) /* #44403c */;
454
- }
433
+ --at-apply: fixed ring-1 ring-stone-2 dark-ring-stone-7 shadow-2xl bg-[--g-container-bg];
455
434
  }
456
435
 
457
436
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item {
458
- transition-property: background-color;
459
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
460
- transition-duration: 150ms;
437
+ --at-apply: transition-background-color;
438
+
461
439
  }
462
440
 
463
441
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item:not(.disabled):hover {
464
- & {
465
- cursor: pointer;
466
- --un-bg-opacity: 1;
467
- background-color: rgb(245 245 244 / var(--un-bg-opacity)) /* #f5f5f4 */;
468
- }
469
- .dark & {
470
- --un-bg-opacity: 1;
471
- background-color: rgb(28 25 23 / var(--un-bg-opacity)) /* #1c1917 */;
472
- }
442
+ --at-apply: cursor-pointer bg-stone-1 dark:bg-stone-9;
473
443
  }
474
444
 
475
445
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item span {
476
- color: initial;
446
+ --at-apply: text-initial;
477
447
  }
478
448
 
479
449
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item .icon {
480
- color: initial;
450
+ --at-apply: text-initial;
481
451
  }
482
452
 
483
453
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item.disabled span,
484
454
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-items .mx-context-menu-item.disabled .icon {
485
- opacity: 0.25;
455
+ --at-apply: op-25;
486
456
  }
487
457
 
488
458
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-item-sperator {
489
- background-color: var(--g-container-bg) /* var(--g-container-bg) */;
459
+ --at-apply: bg-[--g-container-bg];
490
460
  }
491
461
 
492
462
  .tabbar-contextmenu .mx-context-menu .mx-context-menu-item-sperator::after {
493
- --un-bg-opacity: 1;
494
- background-color: rgb(231 229 228 / var(--un-bg-opacity)) /* #e7e5e4 */;
495
- }
496
-
497
- .dark .tabbar-contextmenu .mx-context-menu .mx-context-menu-item-sperator::after {
498
- --un-bg-opacity: 1;
499
- background-color: rgb(68 64 60 / var(--un-bg-opacity)) /* #44403c */;
463
+ --at-apply: bg-stone-2 dark-bg-stone-7;;
500
464
  }
501
465
  </style>
502
466
 
503
467
  <style scoped>
504
468
  .tabbar-container {
505
- position: relative;
506
- height: var(--g-tabbar-height);
507
- background-color: var(--g-bg) /* var(--g-bg) */;
469
+ --at-apply: relative h-[--g-tabbar-height] bg-[--g-bg];
508
470
  transition: background-color 0.3s;
509
471
  }
510
472
 
511
473
  .tabs {
512
- position: absolute;
513
- right: 0;
514
- left: 0;
515
- overflow-y: hidden;
516
- white-space: nowrap;
474
+ --at-apply: absolute right-0 left-0 overflow-y-hidden whitespace-nowrap;
517
475
  padding-inline-end: 50px;
518
476
  scrollbar-width: none;
519
477
  }
520
478
 
521
479
  .tabs::-webkit-scrollbar {
522
- display: none;
480
+ --at-apply: hidden;
523
481
  }
524
482
 
525
483
  .tabs.tabs-ontop {
@@ -528,30 +486,27 @@ onUnmounted(() => {
528
486
  }
529
487
 
530
488
  .tab-container {
531
- display: inline-block;
489
+ --at-apply: inline-block;
532
490
  }
533
491
 
534
492
  .tab-container::after {
535
- position: absolute;
536
- bottom: 0;
537
- z-index: 10;
538
- content: "";
493
+ --at-apply: absolute bottom-0 z-10 content-empty;
539
494
  inset-inline-start: v-bind(activePseudoTabStart);
540
495
  width: v-bind(activePseudoTabWidth);
541
496
  transition: width 0.3s, inset-inline-start 0.3s;
542
497
  }
543
498
 
544
499
  .tab-container:not(.dragging) .tab:not(.actived):hover {
545
- z-index: 3;
500
+ --at-apply: z-3;
546
501
  }
547
502
 
548
503
  .tab-container:not(.dragging) .tab:not(.actived):hover::before,
549
504
  .tab-container:not(.dragging) .tab:not(.actived):hover::after {
550
- content: none;
505
+ --at-apply: content-none;
551
506
  }
552
507
 
553
508
  .tab-container:not(.dragging) .tab:not(.actived):hover + .tab .tab-dividers::before {
554
- opacity: 0;
509
+ --at-apply: op-0;
555
510
  }
556
511
 
557
512
  .tab-container:not(.dragging) .tab:not(.actived):hover .tab-content .title,
@@ -564,34 +519,27 @@ onUnmounted(() => {
564
519
  }
565
520
 
566
521
  .tab {
567
- position: relative;
568
- display: inline-block;
569
- cursor: pointer;
570
- pointer-events: none;
571
- height: var(--g-tabbar-height);
572
- min-width: var(--g-tabbar-tab-min-width);
573
- max-width: var(--g-tabbar-tab-max-width);
574
- vertical-align: bottom;
575
- font-size: 14px;
522
+ --at-apply: relative inline-block text-14px cursor-pointer pointer-events-none
523
+ min-w-[--g-tabbar-tab-min-width] max-w-[--g-tabbar-tab-max-width] h-[--g-tabbar-height]
524
+ align-bottom;
576
525
  line-height: calc(var(--g-tabbar-height) - 2px);
577
526
  }
578
527
 
579
528
  .tab * {
580
- -webkit-user-select: none;
581
- user-select: none;
529
+ --at-apply: select-none;
582
530
  }
583
531
 
584
532
  .tab.actived {
585
- z-index: 5;
533
+ --at-apply: z-5;
586
534
  }
587
535
 
588
536
  .tab.actived::before,
589
537
  .tab.actived::after {
590
- content: none;
538
+ --at-apply: content-none;
591
539
  }
592
540
 
593
541
  .tab.actived + .tab .tab-dividers::before {
594
- opacity: 0;
542
+ --at-apply: op-0;
595
543
  }
596
544
 
597
545
  .tab.actived .tab-content .title,
@@ -608,62 +556,34 @@ onUnmounted(() => {
608
556
  }
609
557
 
610
558
  .tab-dividers {
611
- position: absolute;
612
- z-index: 0;
613
- height: 0.875rem; /* 14px */
614
- transform: translateY(-50%);
615
- top: 50%;
559
+ --at-apply: absolute z-0 h-3.5 -translate-y-2/4 top-2/4;
616
560
  inset-inline: -1px;
617
561
  }
618
562
 
619
563
  .tab-dividers::before {
620
- position: absolute;
621
- display: block;
622
- width: 1px;
623
- content: "";
624
- opacity: 1;
625
- top: 0;
626
- bottom: 0;
627
- background-color: var(--g-tabbar-dividers-bg);
564
+ --at-apply: absolute block w-px content-empty opacity-100 inset-y-0
565
+ bg-[--g-tabbar-dividers-bg];
628
566
 
629
567
  inset-inline-start: 1px;
630
568
  transition: opacity 0.2s ease, background-color 0.3s;
631
569
  }
632
570
 
633
571
  .tab:first-child .tab-dividers::before {
634
- opacity: 0;
572
+ --at-apply: op-0;
635
573
  }
636
574
 
637
575
  .tab-background {
638
- position: absolute;
639
- z-index: 0;
640
- width: 100%;
641
- height: 100%;
642
- pointer-events: none;
643
- left: 0;
644
- top: 0;
576
+ --at-apply: absolute z-0 w-full h-full pointer-events-none left-0 top-0;
645
577
  transition: opacity 0.3s, background-color 0.3s;
646
578
  }
647
579
 
648
580
  .tab-content {
649
- display: flex;
650
- width: 100%;
651
- height: 100%;
581
+ --at-apply: flex size-full;
652
582
  pointer-events: all;
653
583
  }
654
584
 
655
585
  .tab-content .title {
656
- display: flex;
657
- flex: 1 1 0%;
658
- gap: 5px;
659
- align-items: center;
660
- height: 100%;
661
- overflow: hidden;
662
- white-space: nowrap;
663
- padding-left: 0.625rem; /* 10px */
664
- padding-right: 0.625rem; /* 10px */
665
- padding-top: 0;
666
- padding-bottom: 0;
586
+ --at-apply: flex flex-1 gap-[5px] items-center h-full overflow-hidden whitespace-nowrap px-2.5 py-0;
667
587
  margin-inline-end: 10px;
668
588
  color: var(--g-tabbar-tab-color);
669
589
  mask-image: linear-gradient(to right, #000 calc(100% - 20px), transparent);
@@ -683,19 +603,8 @@ onUnmounted(() => {
683
603
  }
684
604
 
685
605
  .tab-content .action-icon {
686
- position: absolute;
687
- z-index: 10;
688
- display: flex;
689
- align-items: center;
690
- justify-content: center;
691
- transform: translateY(-50%);
692
- border-radius: 50%;
693
- top: 50%;
694
- width: 1.5em;
695
- height: 1.5em;
696
- color: var(--g-tabbar-tab-color);
697
- font-size: 0.75rem; /* 12px */
698
- line-height: 1rem; /* 16px */
606
+ --at-apply: absolute z-10 flex items-center justify-center w-[1.5em] h-[1.5em]
607
+ text-xs text-[--g-tabbar-tab-color] -translate-y-2/4 rounded-[50%] top-2/4;
699
608
  inset-inline-end: 0.5em;
700
609
  }
701
610
 
@@ -705,33 +614,19 @@ onUnmounted(() => {
705
614
  }
706
615
 
707
616
  .tab-content .hotkey-number {
708
- position: absolute;
709
- z-index: 10;
710
- display: flex;
711
- align-items: center;
712
- justify-content: center;
713
- width: 1.5em;
714
- height: 1.5em;
715
- font-size: 0.75rem; /* 12px */
716
- line-height: 1rem; /* 16px */
717
- transform: translateY(-50%);
718
- border-radius: 50%;
719
- top: 50%;
720
- color: var(--g-tabbar-tab-color);
721
- background-color: var(--g-bg);
722
- right: 0.5em;
617
+ --at-apply: absolute z-10 flex items-center justify-center w-[1.5em] h-[1.5em]
618
+ text-xs -translate-y-2/4 rounded-[50%] right-[0.5em] top-2/4
619
+ text-[--g-tabbar-tab-color] bg-[--g-bg];
723
620
  box-shadow: 0 0 0 1px var(--g-border-color);
724
621
  }
725
622
 
726
623
  .tab-content .drag-handle {
727
- position: absolute;
728
- inset: 0;
729
- z-index: 9;
624
+ --at-apply: absolute inset-0 z-9;
730
625
  }
731
626
 
732
627
  /* Fashion 风格样式 */
733
628
  .tabs.tabs-fashion {
734
- bottom: 0;
629
+ --at-apply: bottom-0;
735
630
  }
736
631
 
737
632
  .tabs.tabs-fashion .tab-container:not(.dragging) .tab:not(.actived):hover .tab-background::before,
@@ -759,12 +654,7 @@ onUnmounted(() => {
759
654
 
760
655
  .tabs.tabs-fashion .tab-background::before,
761
656
  .tabs.tabs-fashion .tab-background::after {
762
- position: absolute;
763
- bottom: 0;
764
- width: 1.25rem; /* 20px */
765
- height: 1.25rem; /* 20px */
766
- content: "";
767
- border-radius: 9999px;
657
+ --at-apply: absolute bottom-0 size-5 content-empty rounded-full;
768
658
  box-shadow: 0 0 0 20px transparent;
769
659
  transition: box-shadow 0.3s;
770
660
  }
@@ -786,64 +676,46 @@ onUnmounted(() => {
786
676
 
787
677
  /* Card 风格样式 */
788
678
  .tabs.tabs-card .tab {
789
- margin-left: 5px;
790
- margin-right: 0;
791
- margin-top: 5px;
792
- margin-bottom: 5px;
679
+ --at-apply: ml-[5px] mr-0 my-[5px];
793
680
  height: calc(var(--g-tabbar-height) - 10px);
794
681
  }
795
682
 
796
683
  .tabs.tabs-card .tab .tab-dividers {
797
- display: none;
684
+ --at-apply: hidden;
798
685
  }
799
686
 
800
687
  .tabs.tabs-card .tab-background {
801
- border-radius: 5px;
688
+ --at-apply: rounded-5px;
802
689
  }
803
690
 
804
691
  /* Square 风格样式 */
805
692
  .tabs.tabs-square .tab-container::after {
806
- background-color: rgb(var(--ui-primary));
807
- height: 0.125rem; /* 2px */
693
+ --at-apply: bg-ui-primary h-0.5;
808
694
  }
809
695
 
810
696
  .tabs.tabs-square .tab-container:has(> .tab.tab-ontop)::after {
811
- top: 0;
812
- bottom: unset;
697
+ --at-apply: top-0 bottom-unset;
813
698
  }
814
699
 
815
700
  .tabs.tabs-square .tab-container:has(> .tab.tab-ontop) .tab .tab-background {
816
- top: 0;
817
- bottom: unset;
701
+ --at-apply: top-0 bottom-unset;
818
702
  }
819
703
 
820
704
  .tabs.tabs-square .tab:not(.actived):hover .tab-background {
821
- height: 100%;
705
+ --at-apply: h-full;
822
706
  }
823
707
 
824
708
  .tabs.tabs-square .tab .tab-background {
825
- top: unset;
826
- bottom: 0;
827
- height: 0;
828
- background-color: var(--g-tabbar-tab-hover-bg);
709
+ --at-apply: top-unset bottom-0 h-0 bg-[--g-tabbar-tab-hover-bg];
829
710
  transition: height 0.3s;
830
711
  }
831
712
 
832
713
  .tabs.tabs-square .tab.actived .tab-background {
833
- height: 100%;
834
- background-color: var(--g-container-bg);
714
+ --at-apply: h-full bg-[--g-container-bg];
835
715
  }
836
716
 
837
717
  .more-action {
838
- position: absolute;
839
- z-index: 10;
840
- display: flex;
841
- align-items: center;
842
- justify-content: center;
843
- width: 50px;
844
- height: 100%;
845
- right: 0;
846
- top: 0;
718
+ --at-apply: absolute z-10 flex items-center justify-center w-[50px] h-full right-0 top-0;
847
719
  background-image: linear-gradient(to right, transparent, var(--g-bg));
848
720
  }
849
721
 
@@ -122,11 +122,11 @@ watch(favoritesContainerRef, (newSortableContainer) => {
122
122
 
123
123
  <style scoped>
124
124
  :deep([data-overlayscrollbars-viewport]) {
125
- overscroll-behavior: contain;
125
+ --at-apply: overscroll-contain;
126
126
  }
127
127
 
128
128
  .draggable-ghost {
129
- opacity: 0;
129
+ --at-apply: op-0;
130
130
  }
131
131
 
132
132
  .name {
@@ -262,75 +262,42 @@ function onSelect(node: RouteRecordRaw, index: number) {
262
262
 
263
263
  <style scoped>
264
264
  .toolbar-container {
265
- display: flex;
266
- align-items: center;
267
- justify-content: space-between;
268
- background-color: var(--g-container-bg);
269
- transition-duration: 0.3s;
270
- height: var(--g-toolbar-height);
271
- transition-property: background-color;
272
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
273
- transition-duration: 150ms;
265
+ --at-apply: flex items-center justify-between h-[--g-toolbar-height]
266
+ bg-[--g-container-bg] transition-[background-color] duration-[0.3s];
274
267
  }
275
268
 
276
269
  .left-box {
277
- display: flex;
278
- align-items: center;
279
- overflow: hidden;
280
- padding-left: 0.625rem; /* 10px */
281
- padding-right: 50px;
270
+ --at-apply: flex items-center overflow-hidden pl-2.5 pr-[50px];
282
271
  mask-image: linear-gradient(90deg, #000 0%, #000 calc(100% - 50px), transparent);
283
272
  }
284
273
 
285
274
  .breadcrumb {
286
- padding-left: 10px;
287
- white-space: normal;
275
+ --at-apply: pl-10px whitespace-normal;
288
276
  }
289
277
 
290
278
  .breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .text {
291
- & {
292
- background-color: rgb(0 0 0 / 0.05) /* #000 */;
293
- padding-left: 1rem; /* 16px */
294
- padding-right: 1rem; /* 16px */
295
- padding-top: 0.375rem; /* 6px */
296
- padding-bottom: 0.375rem; /* 6px */
297
- background-color: rgb(231 229 228 / 0.8) /* #e7e5e4 */;
298
- clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
299
- }
300
- .dark & {
301
- background-color: rgb(41 37 36 / 0.8) /* #292524 */;
302
- }
279
+ --at-apply: bg-black/5 px-4 py-1.5 bg-stone-2/80 dark:bg-stone-8/80;
280
+ clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%);
303
281
  }
304
282
 
305
283
  .breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .text.is-link:hover {
306
- & {
307
- background-color: #e7e5e4;
308
- }
309
- .dark & {
310
- background-color: #292524;
311
- }
284
+ --at-apply: bg-stone-2 dark:bg-stone-8;
312
285
  }
313
286
 
314
287
  .breadcrumb.breadcrumb-modern :deep(.breadcrumb-item):first-child .text {
315
- padding-left: 0.75rem; /* 12px */
288
+ --at-apply: pl-3;
316
289
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%);
317
290
  border-radius: 6px 0 0 6px;
318
291
  }
319
292
 
320
293
  .breadcrumb.breadcrumb-modern :deep(.breadcrumb-item):last-child:not(:first-child) .text {
321
- & {
322
- background-color: #e7e5e4;
323
- padding-left: 0.75rem; /* 12px */
324
- clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
325
- border-radius: 0 6px 6px 0;
326
- }
327
- .dark & {
328
- background-color: #292524;
329
- }
294
+ --at-apply: bg-stone-2 dark:bg-stone-8 pl-3;
295
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%);
296
+ border-radius: 0 6px 6px 0;
330
297
  }
331
298
 
332
299
  .breadcrumb.breadcrumb-modern :deep(.breadcrumb-item) .separator {
333
- display: none;
300
+ --at-apply: hidden;
334
301
  }
335
302
 
336
303
  /* 面包屑动画 */