@hxdhxd/harmony-flow-ui 0.2.0 → 0.3.0

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.
package/dist/index.css CHANGED
@@ -2415,6 +2415,201 @@
2415
2415
  box-shadow: -8px 0 0 -6px var(--hf-color-primary);
2416
2416
  font-weight: 700;
2417
2417
  }
2418
+ .hf-back-to-top {
2419
+ align-items: center;
2420
+ background: var(--hf-color-primary);
2421
+ border: 1px solid color-mix(in srgb, white 32%, var(--hf-color-primary));
2422
+ border-radius: var(--hf-radius-control);
2423
+ bottom: 24px;
2424
+ color: white;
2425
+ cursor: pointer;
2426
+ display: flex;
2427
+ font: inherit;
2428
+ font-size: 13px;
2429
+ font-weight: 700;
2430
+ gap: 7px;
2431
+ opacity: 0;
2432
+ padding: 10px 13px;
2433
+ pointer-events: none;
2434
+ position: fixed;
2435
+ right: 24px;
2436
+ transform: translateY(8px);
2437
+ transition: opacity var(--hf-motion-duration), transform var(--hf-motion-duration);
2438
+ z-index: 850;
2439
+ }
2440
+ .hf-back-to-top--visible {
2441
+ opacity: 1;
2442
+ pointer-events: auto;
2443
+ transform: translateY(0);
2444
+ }
2445
+ .hf-back-to-top:focus-visible {
2446
+ outline: 2px solid color-mix(in srgb, var(--hf-color-primary) 42%, transparent);
2447
+ outline-offset: 3px;
2448
+ }
2449
+ .hf-hierarchical-sidebar {
2450
+ background: var(--hf-color-surface);
2451
+ border: 1px solid var(--hf-color-border);
2452
+ border-radius: var(--hf-radius-panel);
2453
+ padding: 12px;
2454
+ width: min(280px, 100%);
2455
+ }
2456
+ .hf-hierarchical-sidebar__title,
2457
+ .hf-long-page-navigation__title {
2458
+ color: var(--hf-color-text);
2459
+ font-size: 13px;
2460
+ font-weight: 750;
2461
+ padding: 8px 10px 10px;
2462
+ }
2463
+ .hf-hierarchical-sidebar__list {
2464
+ display: grid;
2465
+ gap: 3px;
2466
+ list-style: none;
2467
+ margin: 0;
2468
+ padding: 0;
2469
+ }
2470
+ .hf-hierarchical-sidebar__list[data-level]:not([data-level="0"]) {
2471
+ border-left: 1px solid var(--hf-color-border);
2472
+ margin: 3px 0 5px 14px;
2473
+ padding-left: 9px;
2474
+ }
2475
+ .hf-hierarchical-sidebar__list a,
2476
+ .hf-hierarchical-sidebar__group {
2477
+ align-items: center;
2478
+ background: transparent;
2479
+ border: 0;
2480
+ border-radius: var(--hf-radius-control);
2481
+ color: var(--hf-color-text-muted);
2482
+ cursor: pointer;
2483
+ display: grid;
2484
+ font: inherit;
2485
+ font-size: 13px;
2486
+ gap: 8px;
2487
+ grid-template-columns: auto 1fr auto;
2488
+ min-height: 38px;
2489
+ padding: 7px 9px;
2490
+ text-align: left;
2491
+ text-decoration: none;
2492
+ width: 100%;
2493
+ }
2494
+ .hf-hierarchical-sidebar__list a:hover,
2495
+ .hf-hierarchical-sidebar__list a[aria-current],
2496
+ .hf-hierarchical-sidebar__group:hover {
2497
+ background: color-mix(in srgb, var(--hf-color-primary) 9%, transparent);
2498
+ color: var(--hf-color-primary);
2499
+ }
2500
+ .hf-hierarchical-sidebar__chevron {
2501
+ transition: transform var(--hf-motion-duration);
2502
+ }
2503
+ .hf-hierarchical-sidebar__group[aria-expanded=true] .hf-hierarchical-sidebar__chevron {
2504
+ transform: rotate(90deg);
2505
+ }
2506
+ .hf-long-page-navigation {
2507
+ background: var(--hf-color-surface);
2508
+ border: 1px solid var(--hf-color-border);
2509
+ border-radius: var(--hf-radius-panel);
2510
+ display: grid;
2511
+ gap: 8px;
2512
+ padding: 12px;
2513
+ width: min(250px, 100%);
2514
+ }
2515
+ .hf-long-page-navigation .hf-reading-progress {
2516
+ position: static;
2517
+ }
2518
+ .hf-long-page-navigation .hf-reading-progress__track {
2519
+ border-radius: 3px;
2520
+ height: 4px;
2521
+ }
2522
+ .hf-long-page-navigation .hf-back-to-top {
2523
+ justify-content: center;
2524
+ margin-top: 4px;
2525
+ position: static;
2526
+ width: 100%;
2527
+ }
2528
+ .hf-bottom-navigation {
2529
+ background: color-mix(in srgb, var(--hf-color-surface) 96%, transparent);
2530
+ border-top: 1px solid var(--hf-color-border);
2531
+ bottom: 0;
2532
+ display: grid;
2533
+ grid-auto-columns: 1fr;
2534
+ grid-auto-flow: column;
2535
+ left: 0;
2536
+ padding: 7px max(10px, env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
2537
+ position: sticky;
2538
+ right: 0;
2539
+ z-index: 40;
2540
+ }
2541
+ .hf-bottom-navigation a {
2542
+ align-items: center;
2543
+ color: var(--hf-color-text-muted);
2544
+ display: grid;
2545
+ font-size: 11px;
2546
+ gap: 3px;
2547
+ justify-items: center;
2548
+ min-height: 44px;
2549
+ padding: 4px 6px;
2550
+ text-decoration: none;
2551
+ }
2552
+ .hf-bottom-navigation a[aria-current],
2553
+ .hf-bottom-navigation a:hover {
2554
+ color: var(--hf-color-primary);
2555
+ font-weight: 700;
2556
+ }
2557
+ .hf-bottom-navigation__icon {
2558
+ font-size: 18px;
2559
+ line-height: 1;
2560
+ }
2561
+ .hf-pull-to-refresh {
2562
+ min-height: 0;
2563
+ overflow: auto;
2564
+ overscroll-behavior-y: contain;
2565
+ position: relative;
2566
+ touch-action: pan-x pan-up;
2567
+ }
2568
+ .hf-pull-to-refresh__indicator {
2569
+ align-items: center;
2570
+ display: flex;
2571
+ height: max(40px, var(--hf-pull-distance));
2572
+ justify-content: center;
2573
+ left: 0;
2574
+ position: absolute;
2575
+ right: 0;
2576
+ top: 0;
2577
+ }
2578
+ .hf-pull-to-refresh__indicator button {
2579
+ background: transparent;
2580
+ border: 0;
2581
+ color: var(--hf-color-primary);
2582
+ cursor: pointer;
2583
+ font: inherit;
2584
+ font-size: 12px;
2585
+ font-weight: 700;
2586
+ min-height: 34px;
2587
+ }
2588
+ .hf-pull-to-refresh__content {
2589
+ padding-top: 40px;
2590
+ transition: transform var(--hf-motion-duration);
2591
+ }
2592
+ .hf-pull-to-refresh--dragging .hf-pull-to-refresh__content {
2593
+ transition: none;
2594
+ }
2595
+ .hf-mobile-content-navigation {
2596
+ background: var(--hf-color-background);
2597
+ display: grid;
2598
+ grid-template-rows: minmax(0, 1fr) auto;
2599
+ min-height: 320px;
2600
+ overflow: hidden;
2601
+ }
2602
+ .hf-mobile-content-navigation__body,
2603
+ .hf-mobile-content-navigation__body > .hf-pull-to-refresh {
2604
+ min-height: 0;
2605
+ overflow: auto;
2606
+ }
2607
+ .hf-mobile-content-navigation--refreshable .hf-mobile-content-navigation__body {
2608
+ overflow: hidden;
2609
+ }
2610
+ .hf-mobile-content-navigation--refreshable .hf-pull-to-refresh {
2611
+ height: 100%;
2612
+ }
2418
2613
  .hf-shrink-nav {
2419
2614
  border-radius: 0;
2420
2615
  border-width: 0 0 1px;
@@ -2473,6 +2668,10 @@
2473
2668
  .hf-shrink-nav__items {
2474
2669
  display: none;
2475
2670
  }
2671
+ .hf-back-to-top {
2672
+ bottom: 16px;
2673
+ right: 16px;
2674
+ }
2476
2675
  }
2477
2676
  @media (prefers-reduced-motion: reduce) {
2478
2677
  .hf-mobile-nav__panel,
@@ -2482,7 +2681,10 @@
2482
2681
  animation: none;
2483
2682
  }
2484
2683
  .hf-sidebar__collapse .hf-icon,
2485
- .hf-menu__chevron {
2684
+ .hf-menu__chevron,
2685
+ .hf-hierarchical-sidebar__chevron,
2686
+ .hf-back-to-top,
2687
+ .hf-pull-to-refresh__content {
2486
2688
  transition: none;
2487
2689
  }
2488
2690
  }
@@ -4259,44 +4461,6 @@
4259
4461
  padding: 36px !important;
4260
4462
  text-align: center !important;
4261
4463
  }
4262
- .hf-tree ul {
4263
- list-style: none;
4264
- margin: 0;
4265
- padding: 0;
4266
- }
4267
- .hf-tree li > div {
4268
- align-items: center;
4269
- border-radius: 9px;
4270
- display: flex;
4271
- min-height: 36px;
4272
- }
4273
- .hf-tree li > div:hover,
4274
- .hf-tree li > div.is-selected {
4275
- background: #edf6ff;
4276
- }
4277
- .hf-tree li > div > span:first-child,
4278
- .hf-tree li > div > button:first-child {
4279
- background: transparent;
4280
- border: 0;
4281
- color: var(--hf-color-text-muted);
4282
- display: grid;
4283
- height: 28px;
4284
- padding: 0;
4285
- place-items: center;
4286
- width: 28px;
4287
- }
4288
- .hf-tree li > div > button:last-child {
4289
- background: transparent;
4290
- border: 0;
4291
- color: var(--hf-color-text);
4292
- flex: 1;
4293
- padding: 8px;
4294
- text-align: left;
4295
- }
4296
- .hf-tree li > div.is-selected > button:last-child {
4297
- color: var(--hf-color-primary);
4298
- font-weight: 650;
4299
- }
4300
4464
  .hf-steps {
4301
4465
  display: flex;
4302
4466
  list-style: none;
@@ -4532,7 +4696,7 @@
4532
4696
  background: var(--hf-color-surface);
4533
4697
  color: var(--hf-color-text);
4534
4698
  }
4535
- .hf-theme--dark :is(.hf-dropdown__menu button:hover, .hf-command__list button[aria-selected=true], .hf-tree li > div:hover, .hf-tree li > div.is-selected, .hf-tree-select > div button:hover) {
4699
+ .hf-theme--dark :is(.hf-dropdown__menu button:hover, .hf-command__list button[aria-selected=true], .hf-tree-select > div button:hover) {
4536
4700
  background: #22364d;
4537
4701
  }
4538
4702
  .hf-theme--high-contrast :is(button, input, select, textarea) {
@@ -7085,6 +7249,131 @@
7085
7249
  color: var(--hf-color-text);
7086
7250
  }
7087
7251
 
7252
+ /* src/data-display/tree.css */
7253
+ .hf-tree {
7254
+ min-width: 0;
7255
+ color: var(--hf-color-text);
7256
+ font-size: 14px;
7257
+ }
7258
+ .hf-tree ul {
7259
+ list-style: none;
7260
+ margin: 0;
7261
+ padding: 0;
7262
+ }
7263
+ .hf-tree li {
7264
+ outline: none;
7265
+ }
7266
+ .hf-tree .hf-tree__row {
7267
+ position: relative;
7268
+ display: flex;
7269
+ align-items: center;
7270
+ gap: 6px;
7271
+ min-height: 36px;
7272
+ padding: 2px 10px 2px calc(var(--hf-tree-depth) * 20px + 6px);
7273
+ border: 1px solid transparent;
7274
+ border-radius: var(--hf-radius-control);
7275
+ cursor: pointer;
7276
+ transition: background var(--hf-motion-duration);
7277
+ }
7278
+ .hf-tree .hf-tree__row:hover {
7279
+ background: var(--hf-color-background);
7280
+ }
7281
+ .hf-tree .hf-tree__row.is-selected {
7282
+ background: color-mix(in srgb, var(--hf-color-primary) 10%, var(--hf-color-surface));
7283
+ color: var(--hf-color-primary);
7284
+ }
7285
+ .hf-tree__row.is-selected::after {
7286
+ content: "";
7287
+ position: absolute;
7288
+ inset: 8px auto 8px 0;
7289
+ width: 3px;
7290
+ border-radius: 2px;
7291
+ background: var(--hf-color-primary);
7292
+ }
7293
+ .hf-tree li:focus-visible > .hf-tree__row {
7294
+ outline: 2px solid var(--hf-color-primary);
7295
+ outline-offset: -2px;
7296
+ }
7297
+ .hf-tree [aria-disabled=true] > .hf-tree__row {
7298
+ opacity: .45;
7299
+ cursor: not-allowed;
7300
+ }
7301
+ .hf-tree [aria-disabled=true] > .hf-tree__row:hover {
7302
+ background: transparent;
7303
+ }
7304
+ .hf-tree__toggle,
7305
+ .hf-tree__spacer {
7306
+ flex: 0 0 22px;
7307
+ width: 22px;
7308
+ height: 28px;
7309
+ }
7310
+ .hf-tree__toggle {
7311
+ display: grid;
7312
+ place-items: center;
7313
+ padding: 0;
7314
+ border: 0;
7315
+ border-radius: var(--hf-radius-control);
7316
+ background: transparent;
7317
+ color: var(--hf-color-text-muted);
7318
+ cursor: pointer;
7319
+ }
7320
+ .hf-tree__toggle:hover:not(:disabled) {
7321
+ background: color-mix(in srgb, var(--hf-color-primary) 12%, transparent);
7322
+ }
7323
+ .hf-tree__toggle:disabled {
7324
+ cursor: not-allowed;
7325
+ }
7326
+ .hf-tree__toggle svg {
7327
+ transform: rotate(-90deg);
7328
+ transition: transform var(--hf-motion-duration);
7329
+ }
7330
+ .hf-tree__toggle svg.is-open {
7331
+ transform: rotate(0);
7332
+ }
7333
+ .hf-tree__icon {
7334
+ display: flex;
7335
+ flex: 0 0 18px;
7336
+ color: var(--hf-color-text-muted);
7337
+ }
7338
+ .hf-tree__icon.is-folder {
7339
+ color: var(--hf-color-primary);
7340
+ }
7341
+ .hf-tree__label {
7342
+ min-width: 0;
7343
+ flex: 1;
7344
+ overflow-wrap: anywhere;
7345
+ line-height: 1.6;
7346
+ padding: 4px 0;
7347
+ }
7348
+ .hf-tree__row.is-selected .hf-tree__label {
7349
+ font-weight: 650;
7350
+ }
7351
+ .hf-tree__guides {
7352
+ display: none;
7353
+ position: absolute;
7354
+ inset: 0 auto 0 16px;
7355
+ pointer-events: none;
7356
+ }
7357
+ .hf-tree--lines .hf-tree__guides {
7358
+ display: flex;
7359
+ }
7360
+ .hf-tree__guides i {
7361
+ width: 20px;
7362
+ border-left: 1px solid var(--hf-color-border);
7363
+ box-sizing: border-box;
7364
+ }
7365
+ .hf-tree__empty {
7366
+ padding: 28px 16px;
7367
+ text-align: center;
7368
+ color: var(--hf-color-text-muted);
7369
+ }
7370
+ @media (prefers-reduced-motion: reduce) {
7371
+ .hf-tree .hf-tree__row,
7372
+ .hf-tree__toggle svg {
7373
+ transition: none;
7374
+ }
7375
+ }
7376
+
7088
7377
  /* src/essentials.css */
7089
7378
 
7090
7379
  /* src/scheduling.css */
@@ -7436,4 +7725,124 @@
7436
7725
  min-height: 1.5em;
7437
7726
  color: var(--hf-color-text-muted);
7438
7727
  }
7728
+
7729
+ /* src/task-progress.css */
7730
+ .hf-task-progress {
7731
+ min-width: 0;
7732
+ padding: 20px;
7733
+ border: 1px solid var(--hf-color-border);
7734
+ border-radius: var(--hf-radius-panel);
7735
+ background: var(--hf-color-surface);
7736
+ color: var(--hf-color-text);
7737
+ }
7738
+ .hf-task-progress__header {
7739
+ display: flex;
7740
+ align-items: flex-start;
7741
+ justify-content: space-between;
7742
+ gap: 16px;
7743
+ }
7744
+ .hf-task-progress__header h3,
7745
+ .hf-task-progress__header p {
7746
+ margin: 0;
7747
+ }
7748
+ .hf-task-progress__header p {
7749
+ margin-top: 4px;
7750
+ color: var(--hf-color-text-muted);
7751
+ font-size: 13px;
7752
+ overflow-wrap: anywhere;
7753
+ }
7754
+ .hf-task-progress__header > strong {
7755
+ color: var(--hf-color-primary);
7756
+ font-variant-numeric: tabular-nums;
7757
+ }
7758
+ .hf-task-progress__track {
7759
+ height: 6px;
7760
+ margin: 16px 0 20px;
7761
+ overflow: hidden;
7762
+ border-radius: var(--hf-radius-control);
7763
+ background: var(--hf-color-background);
7764
+ }
7765
+ .hf-task-progress__track span {
7766
+ display: block;
7767
+ width: 0;
7768
+ height: 100%;
7769
+ border-radius: inherit;
7770
+ background: var(--hf-color-primary);
7771
+ transition: width .24s ease;
7772
+ }
7773
+ .hf-task-progress__stages {
7774
+ display: grid;
7775
+ gap: 12px;
7776
+ margin: 0;
7777
+ padding: 0;
7778
+ list-style: none;
7779
+ }
7780
+ .hf-task-progress__stages li {
7781
+ display: grid;
7782
+ grid-template-columns: 28px minmax(0, 1fr);
7783
+ gap: 10px;
7784
+ align-items: start;
7785
+ color: var(--hf-color-text-muted);
7786
+ }
7787
+ .hf-task-progress__stages li[data-status=active] {
7788
+ color: var(--hf-color-text);
7789
+ }
7790
+ .hf-task-progress__stages li[data-status=complete] {
7791
+ color: var(--hf-color-success);
7792
+ }
7793
+ .hf-task-progress__stages li[data-status=error] {
7794
+ color: var(--hf-color-danger);
7795
+ }
7796
+ .hf-task-progress__marker {
7797
+ display: grid;
7798
+ place-items: center;
7799
+ width: 26px;
7800
+ height: 26px;
7801
+ border: 1px solid currentColor;
7802
+ border-radius: var(--hf-radius-control);
7803
+ font-size: 12px;
7804
+ font-weight: 700;
7805
+ }
7806
+ .hf-task-progress__stages strong {
7807
+ display: block;
7808
+ color: currentColor;
7809
+ }
7810
+ .hf-task-progress__stages p {
7811
+ margin: 2px 0 0;
7812
+ color: var(--hf-color-text-muted);
7813
+ font-size: 13px;
7814
+ overflow-wrap: anywhere;
7815
+ }
7816
+ .hf-task-progress__error {
7817
+ margin: 16px 0 0;
7818
+ color: var(--hf-color-danger);
7819
+ }
7820
+ .hf-task-progress__result {
7821
+ margin-top: 16px;
7822
+ padding: 14px;
7823
+ border-radius: var(--hf-radius-control);
7824
+ background: var(--hf-color-background);
7825
+ }
7826
+ .hf-task-progress__actions {
7827
+ display: flex;
7828
+ flex-wrap: wrap;
7829
+ gap: 8px;
7830
+ margin-top: 18px;
7831
+ }
7832
+ @media (prefers-reduced-motion: reduce) {
7833
+ .hf-task-progress__track span {
7834
+ transition: none;
7835
+ }
7836
+ }
7837
+ @media (max-width: 480px) {
7838
+ .hf-task-progress {
7839
+ padding: 16px;
7840
+ }
7841
+ .hf-task-progress__header {
7842
+ gap: 8px;
7843
+ }
7844
+ .hf-task-progress__actions .hf-button {
7845
+ width: 100%;
7846
+ }
7847
+ }
7439
7848
  /*# sourceMappingURL=index.css.map */