@co0ontty/wand 1.43.0 → 1.43.2

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.
@@ -15678,110 +15678,219 @@
15678
15678
  font-weight: 700;
15679
15679
  }
15680
15680
 
15681
- .qc-drag-wrap {
15681
+ /* ================================================================
15682
+ Quick-Git magnetic dock
15683
+ Layout: [ free field with Commit/Tag/Push chips ] [ ▶ pad ]
15684
+ - Selected chips snap into one cluster (always Commit → Tag → Push).
15685
+ - Unselected chips rest on a lower tray row.
15686
+ - Drag a chip onto the cluster to add it, away to remove it, tap to toggle.
15687
+ - Fling any chip into the ▶ pad (or tap it) to fire compose(selected).
15688
+ Commit is always included. Empty message / tag → auto-generated on submit.
15689
+ ================================================================ */
15690
+ .qc-dock-wrap {
15691
+ display: flex;
15692
+ flex-direction: column;
15693
+ gap: 8px;
15682
15694
  padding-top: 2px;
15683
15695
  }
15684
- .qc-drag-track {
15685
- --qc-progress: 0%;
15686
- --qc-knob-x: 0px;
15696
+ .qc-dock-wrap[data-disabled="1"] { opacity: 0.55; pointer-events: none; }
15697
+
15698
+ /* Busy panel (replaces the dock while a request is in flight) */
15699
+ .qc-dock-busy {
15700
+ display: inline-flex;
15701
+ align-items: center;
15702
+ gap: 8px;
15703
+ align-self: flex-start;
15704
+ padding: 10px 14px;
15705
+ border-radius: 12px;
15706
+ background: rgba(197, 101, 61, 0.10);
15707
+ border: 1px solid rgba(197, 101, 61, 0.20);
15708
+ color: var(--accent);
15709
+ font-size: 0.82rem;
15710
+ font-weight: 700;
15711
+ }
15712
+ .qc-dock-busy-dot {
15713
+ width: 8px;
15714
+ height: 8px;
15715
+ border-radius: 50%;
15716
+ background: var(--accent);
15717
+ animation: qc-dock-busy-pulse 1.2s ease-in-out infinite;
15718
+ }
15719
+ @keyframes qc-dock-busy-pulse {
15720
+ 0%, 100% { opacity: 0.4; transform: scale(0.85); }
15721
+ 50% { opacity: 1; transform: scale(1.15); }
15722
+ }
15723
+
15724
+ /* Stage = free-drag field on the left + launch pad on the right.
15725
+ --qc-tone follows the composed action so the whole stage echoes the combo color. */
15726
+ .qc-dock-stage {
15727
+ --qc-tone: var(--accent);
15728
+ --qc-tone-soft: rgba(197, 101, 61, 0.20);
15729
+ display: grid;
15730
+ grid-template-columns: minmax(0, 1fr) 96px;
15731
+ gap: 10px;
15732
+ height: 150px;
15733
+ padding: 8px;
15734
+ border-radius: 16px;
15735
+ border: 1px solid rgba(125, 91, 57, 0.16);
15736
+ background:
15737
+ radial-gradient(120% 120% at 30% 30%, rgba(255, 255, 255, 0.55), rgba(255, 245, 235, 0.16)),
15738
+ linear-gradient(180deg, rgba(255, 255, 255, 0.46), rgba(255, 245, 235, 0.22));
15739
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 3px rgba(89, 58, 32, 0.05);
15740
+ user-select: none;
15741
+ }
15742
+ .qc-dock-stage[data-action="commit-tag"] { --qc-tone: #4a6fa5; --qc-tone-soft: rgba(74, 111, 165, 0.22); }
15743
+ .qc-dock-stage[data-action="commit-push"] { --qc-tone: #4f7a58; --qc-tone-soft: rgba(79, 122, 88, 0.22); }
15744
+ .qc-dock-stage[data-action="commit-tag-push"] { --qc-tone: #7c5aa8; --qc-tone-soft: rgba(124, 90, 168, 0.24); }
15745
+
15746
+ .qc-dock-field {
15687
15747
  position: relative;
15688
- min-height: 58px;
15689
- padding: 7px;
15690
- border-radius: 8px;
15691
- border: 1px solid rgba(125, 91, 57, 0.14);
15692
- background: rgba(255, 255, 255, 0.52);
15693
- overflow: hidden;
15748
+ min-width: 0;
15749
+ border-radius: 12px;
15750
+ background: repeating-linear-gradient(45deg, rgba(125, 91, 57, 0.035) 0 8px, transparent 8px 16px);
15694
15751
  touch-action: none;
15695
- user-select: none;
15752
+ overflow: hidden;
15696
15753
  }
15697
- .qc-drag-progress {
15754
+
15755
+ /* Cluster backdrop — the tray that selected chips snap onto. JS sizes/positions it. */
15756
+ .qc-dock-cluster {
15698
15757
  position: absolute;
15699
- inset: 0 auto 0 0;
15700
- width: calc(var(--qc-progress) + 78px);
15701
- max-width: 100%;
15702
- background: linear-gradient(90deg, rgba(197, 101, 61, 0.18), rgba(60, 130, 200, 0.18));
15703
- transition: width 0.16s ease;
15758
+ left: 0;
15759
+ top: 0;
15760
+ border-radius: 14px;
15761
+ background: color-mix(in srgb, var(--qc-tone) 10%, transparent);
15762
+ border: 1.5px dashed color-mix(in srgb, var(--qc-tone) 38%, transparent);
15763
+ box-shadow: 0 4px 14px var(--qc-tone-soft);
15704
15764
  pointer-events: none;
15765
+ z-index: 0;
15766
+ opacity: 0;
15767
+ transition: transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
15768
+ width 0.22s cubic-bezier(0.22, 1, 0.36, 1),
15769
+ height 0.22s cubic-bezier(0.22, 1, 0.36, 1),
15770
+ opacity 0.18s ease, background 0.2s ease, border-color 0.2s ease;
15705
15771
  }
15706
- .qc-drag-track.is-dragging .qc-drag-progress {
15707
- transition: none;
15708
- }
15709
- .qc-drag-stages {
15772
+ /* Only visible while two or more chips are travelling together. */
15773
+ .qc-dock-cluster.is-active { opacity: 1; }
15774
+
15775
+ /* Chips — absolutely positioned; JS sets transform. */
15776
+ .qc-chip {
15710
15777
  position: absolute;
15711
- inset: 7px 10px;
15712
- display: grid;
15713
- grid-template-columns: repeat(3, 1fr);
15778
+ left: 0;
15779
+ top: 0;
15780
+ display: inline-flex;
15714
15781
  align-items: center;
15715
- pointer-events: none;
15782
+ gap: 7px;
15783
+ height: 38px;
15784
+ padding: 0 14px;
15785
+ border: 1px solid rgba(125, 91, 57, 0.22);
15786
+ border-radius: 999px;
15787
+ background: rgba(255, 255, 255, 0.92);
15788
+ color: var(--text-secondary);
15789
+ font-family: var(--font-sans);
15790
+ font-size: 0.82rem;
15791
+ font-weight: 700;
15792
+ letter-spacing: 0.01em;
15793
+ white-space: nowrap;
15794
+ cursor: grab;
15795
+ touch-action: none;
15796
+ box-shadow: 0 2px 6px rgba(89, 58, 32, 0.08);
15797
+ z-index: 2;
15798
+ transition: box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
15716
15799
  }
15717
- .qc-drag-stage {
15718
- position: relative;
15719
- z-index: 1;
15720
- justify-self: center;
15721
- font-size: 0.7rem;
15722
- font-weight: 800;
15723
- color: var(--text-muted);
15724
- letter-spacing: 0.03em;
15725
- text-transform: uppercase;
15800
+ /* Only animate position while settling, so live drag stays glued to the pointer. */
15801
+ .qc-chip.qc-chip--anim {
15802
+ transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
15803
+ box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
15726
15804
  }
15727
- .qc-drag-stage::before {
15728
- content: "";
15729
- display: block;
15730
- width: 7px;
15731
- height: 7px;
15732
- margin: 0 auto 5px;
15733
- border-radius: 50%;
15734
- background: rgba(125, 91, 57, 0.22);
15735
- box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.75);
15805
+ .qc-chip.is-grabbing {
15806
+ cursor: grabbing;
15807
+ z-index: 5;
15808
+ box-shadow: 0 12px 26px rgba(89, 58, 32, 0.22);
15736
15809
  }
15737
- .qc-drag-stage.is-passed {
15738
- color: var(--accent);
15810
+ .qc-chip:disabled { cursor: not-allowed; }
15811
+ .qc-chip:not(:disabled):hover { border-color: var(--qc-tone); }
15812
+
15813
+ .qc-chip-dot {
15814
+ width: 9px;
15815
+ height: 9px;
15816
+ border-radius: 50%;
15817
+ background: rgba(125, 91, 57, 0.30);
15818
+ box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.6);
15819
+ transition: background 0.18s ease, transform 0.18s ease;
15739
15820
  }
15740
- .qc-drag-stage.is-passed::before {
15741
- background: var(--accent);
15821
+ .qc-chip--commit .qc-chip-dot { background: var(--accent); }
15822
+ .qc-chip--tag .qc-chip-dot { background: #4a6fa5; }
15823
+ .qc-chip--push .qc-chip-dot { background: #4f7a58; }
15824
+
15825
+ /* Each chip carries its own identity tint at rest. */
15826
+ .qc-chip--commit { border-color: color-mix(in srgb, var(--accent) 30%, rgba(125, 91, 57, 0.2)); }
15827
+ .qc-chip--tag { border-color: color-mix(in srgb, #4a6fa5 30%, rgba(125, 91, 57, 0.2)); }
15828
+ .qc-chip--push { border-color: color-mix(in srgb, #4f7a58 30%, rgba(125, 91, 57, 0.2)); }
15829
+
15830
+ /* Grabbed or magnetically attached → lifts and lights up in its own color. */
15831
+ .qc-chip.is-grabbing, .qc-chip.is-attached {
15832
+ color: var(--text-primary);
15833
+ box-shadow: 0 12px 26px var(--qc-tone-soft);
15834
+ z-index: 5;
15742
15835
  }
15743
- .qc-drag-action {
15744
- position: absolute;
15745
- left: 7px;
15746
- top: 7px;
15747
- z-index: 2;
15748
- width: 42%;
15749
- min-width: 132px;
15750
- max-width: 220px;
15751
- height: 44px;
15752
- border: 0;
15753
- border-radius: 8px;
15754
- background: var(--accent);
15755
- color: white;
15756
- font-family: var(--font-sans);
15757
- font-size: 0.84rem;
15758
- font-weight: 800;
15759
- display: inline-flex;
15836
+ .qc-chip.is-grabbing .qc-chip-dot, .qc-chip.is-attached .qc-chip-dot { transform: scale(1.1); }
15837
+ .qc-chip--commit.is-grabbing, .qc-chip--commit.is-attached { background: linear-gradient(180deg, #fff, color-mix(in srgb, var(--accent) 16%, #fff)); border-color: color-mix(in srgb, var(--accent) 46%, transparent); }
15838
+ .qc-chip--tag.is-grabbing, .qc-chip--tag.is-attached { background: linear-gradient(180deg, #fff, color-mix(in srgb, #4a6fa5 16%, #fff)); border-color: color-mix(in srgb, #4a6fa5 46%, transparent); }
15839
+ .qc-chip--push.is-grabbing, .qc-chip--push.is-attached { background: linear-gradient(180deg, #fff, color-mix(in srgb, #4f7a58 16%, #fff)); border-color: color-mix(in srgb, #4f7a58 46%, transparent); }
15840
+
15841
+ /* Launch pad — drop target on the right; also tappable. */
15842
+ .qc-dock-launch {
15843
+ display: flex;
15844
+ flex-direction: column;
15760
15845
  align-items: center;
15761
15846
  justify-content: center;
15762
- gap: 8px;
15763
- cursor: grab;
15764
- box-shadow: 0 8px 22px rgba(197, 101, 61, 0.26);
15765
- transform: translateX(var(--qc-knob-x));
15766
- transition: transform 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
15847
+ gap: 4px;
15848
+ border-radius: 14px;
15849
+ border: 1.5px dashed rgba(125, 91, 57, 0.32);
15850
+ background: rgba(255, 255, 255, 0.4);
15851
+ color: var(--text-muted);
15852
+ cursor: pointer;
15767
15853
  touch-action: none;
15854
+ transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease,
15855
+ transform 0.2s ease, box-shadow 0.2s ease;
15768
15856
  }
15769
- .qc-drag-track.is-dragging .qc-drag-action {
15770
- cursor: grabbing;
15771
- transition: background 0.16s ease, box-shadow 0.16s ease;
15857
+ .qc-dock-launch:not(:disabled):hover {
15858
+ border-color: var(--qc-tone);
15859
+ color: var(--qc-tone);
15860
+ background: color-mix(in srgb, var(--qc-tone) 8%, rgba(255, 255, 255, 0.5));
15772
15861
  }
15773
- .qc-drag-track[data-action="commit-tag"] .qc-drag-action {
15774
- background: rgba(96, 110, 185, 0.96);
15775
- box-shadow: 0 8px 22px rgba(96, 110, 185, 0.24);
15862
+ .qc-dock-launch:disabled { cursor: not-allowed; }
15863
+ .qc-dock-launch-arrow { display: inline-flex; transition: transform 0.2s ease; }
15864
+ .qc-dock-launch-label {
15865
+ font-size: 0.72rem;
15866
+ font-weight: 800;
15867
+ letter-spacing: 0.04em;
15776
15868
  }
15777
- .qc-drag-track[data-action="commit-tag-push"] .qc-drag-action {
15778
- background: rgba(40, 130, 88, 0.96);
15779
- box-shadow: 0 8px 22px rgba(40, 130, 88, 0.24);
15869
+ /* Hot = a chip is hovering over the pad; release to fire. */
15870
+ .qc-dock-stage[data-hot="1"] .qc-dock-launch {
15871
+ border-style: solid;
15872
+ border-color: var(--qc-tone);
15873
+ background: var(--qc-tone);
15874
+ color: #fff;
15875
+ transform: scale(1.04);
15876
+ box-shadow: 0 8px 22px var(--qc-tone-soft), 0 0 0 5px color-mix(in srgb, var(--qc-tone) 18%, transparent);
15780
15877
  }
15781
- .qc-drag-action:disabled {
15782
- opacity: 0.55;
15783
- cursor: not-allowed;
15784
- box-shadow: none;
15878
+ .qc-dock-stage[data-hot="1"] .qc-dock-launch-arrow { transform: translateX(3px); }
15879
+
15880
+ .qc-dock-hint {
15881
+ min-height: 1em;
15882
+ font-size: 0.7rem;
15883
+ color: var(--text-muted);
15884
+ text-align: center;
15885
+ letter-spacing: 0.02em;
15886
+ opacity: 0.8;
15887
+ }
15888
+
15889
+ @media (prefers-reduced-motion: reduce) {
15890
+ .qc-chip, .qc-chip--anim, .qc-dock-cluster, .qc-dock-launch, .qc-dock-busy-dot {
15891
+ animation: none !important;
15892
+ transition: none !important;
15893
+ }
15785
15894
  }
15786
15895
 
15787
15896
  @media (max-width: 720px) {
@@ -15800,10 +15909,17 @@
15800
15909
  grid-template-columns: 1fr 18px 1fr;
15801
15910
  gap: 6px;
15802
15911
  }
15803
- .qc-drag-action {
15804
- width: 48%;
15805
- min-width: 118px;
15912
+ .qc-dock-stage {
15913
+ height: 160px;
15914
+ grid-template-columns: minmax(0, 1fr) 82px;
15915
+ gap: 8px;
15916
+ }
15917
+ .qc-chip {
15918
+ height: 36px;
15919
+ padding: 0 12px;
15920
+ font-size: 0.8rem;
15806
15921
  }
15922
+ .qc-dock-launch-label { font-size: 0.68rem; }
15807
15923
  }
15808
15924
 
15809
15925
  /* ============================================================ */
@@ -1,4 +1,4 @@
1
- export declare const EMBEDDED_WEB_ASSET_VERSION = "427bbfce9c57";
1
+ export declare const EMBEDDED_WEB_ASSET_VERSION = "88a2b1bfc9fa";
2
2
  export declare const EMBEDDED_WEB_ASSETS: {
3
3
  readonly scriptsJs: string;
4
4
  readonly stylesCss: string;