handler-playable-sdk 0.3.42 → 0.3.44

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.
@@ -163,6 +163,27 @@
163
163
  background: var(--ui-bg);
164
164
  }
165
165
 
166
+ /* Scene Tools Container - Dynamically positioned relative to game preview */
167
+ #scene-tools-container {
168
+ position: absolute;
169
+ /* left, top, and transform will be set dynamically by JavaScript */
170
+ z-index: 60;
171
+ pointer-events: auto;
172
+ transition: left var(--ui-duration-fast) var(--ui-ease),
173
+ top var(--ui-duration-fast) var(--ui-ease);
174
+ }
175
+
176
+ /* Nudge Panel Container - Dynamically positioned relative to game preview */
177
+ #nudge-panel-container {
178
+ position: absolute;
179
+ /* left, top, and transform will be set dynamically by JavaScript */
180
+ z-index: 60;
181
+ pointer-events: auto;
182
+ transition: left var(--ui-duration-fast) var(--ui-ease),
183
+ top var(--ui-duration-fast) var(--ui-ease);
184
+ }
185
+
186
+
166
187
  .preview-container {
167
188
  width: 100%;
168
189
  height: 100%;
@@ -3817,6 +3838,29 @@
3817
3838
  }
3818
3839
 
3819
3840
 
3841
+ /* ========== 08-breadcrumbs.css ========== */
3842
+ /* Breadcrumbs */
3843
+ .scene-breadcrumbs {
3844
+ display: flex;
3845
+ align-items: center;
3846
+ gap: 6px;
3847
+ padding: 8px 14px;
3848
+ background: var(--ui-surface-2);
3849
+ border-bottom: 1px solid var(--ui-border);
3850
+ font-size: 11px;
3851
+ color: var(--ui-muted);
3852
+ }
3853
+
3854
+ .breadcrumb-item {
3855
+ font-weight: var(--font-weight-medium);
3856
+ color: var(--ui-text);
3857
+ }
3858
+
3859
+ .breadcrumb-separator {
3860
+ color: var(--ui-muted);
3861
+ font-size: 12px;
3862
+ }
3863
+
3820
3864
  /* ========== 08-inspector.css ========== */
3821
3865
  /* 08 Inspector */
3822
3866
  /* Auto-generated from preview.css */
@@ -4619,6 +4663,183 @@
4619
4663
 
4620
4664
 
4621
4665
 
4666
+ /* ========== 13-nudge-panel.css ========== */
4667
+ /* Nudge Panel - Dynamically positioned relative to game preview */
4668
+ .nudge-panel {
4669
+ position: absolute;
4670
+ /* left, top, and transform will be set dynamically by JavaScript */
4671
+ width: 180px;
4672
+ background: var(--ui-surface);
4673
+ border: 1px solid var(--ui-border);
4674
+ border-radius: 14px;
4675
+ box-shadow: var(--ui-shadow);
4676
+ z-index: 60;
4677
+ pointer-events: auto;
4678
+ transition: left var(--ui-duration-fast) var(--ui-ease),
4679
+ top var(--ui-duration-fast) var(--ui-ease),
4680
+ opacity var(--ui-duration-fast) var(--ui-ease);
4681
+ }
4682
+
4683
+ .nudge-panel.hidden {
4684
+ opacity: 0;
4685
+ pointer-events: none;
4686
+ }
4687
+
4688
+ .nudge-panel-header {
4689
+ padding: 10px 12px;
4690
+ background: var(--ui-bg-2);
4691
+ border-bottom: 1px solid var(--ui-border);
4692
+ border-radius: 14px 14px 0 0;
4693
+ }
4694
+
4695
+ .nudge-panel-title {
4696
+ font-size: 11px;
4697
+ font-weight: var(--font-weight-semibold);
4698
+ color: var(--ui-text);
4699
+ letter-spacing: 0.4px;
4700
+ text-transform: uppercase;
4701
+ }
4702
+
4703
+ .nudge-panel-body {
4704
+ padding: 12px;
4705
+ display: flex;
4706
+ flex-direction: column;
4707
+ gap: 14px;
4708
+ }
4709
+
4710
+ .nudge-section {
4711
+ display: flex;
4712
+ flex-direction: column;
4713
+ gap: 8px;
4714
+ }
4715
+
4716
+ .nudge-section-label {
4717
+ font-size: 11px;
4718
+ font-weight: var(--font-weight-medium);
4719
+ color: var(--ui-muted);
4720
+ text-transform: uppercase;
4721
+ letter-spacing: 0.3px;
4722
+ }
4723
+
4724
+ .nudge-step-input {
4725
+ background: var(--ui-bg);
4726
+ border: 1px solid var(--ui-border);
4727
+ border-radius: 6px;
4728
+ padding: 6px 8px;
4729
+ font-size: 12px;
4730
+ color: var(--ui-text);
4731
+ font-family: var(--font-primary);
4732
+ width: 100%;
4733
+ }
4734
+
4735
+ .nudge-step-input:focus {
4736
+ outline: none;
4737
+ border-color: var(--ui-terracotta);
4738
+ box-shadow: 0 0 0 2px rgba(227, 138, 90, 0.2);
4739
+ }
4740
+
4741
+ /* Nudge arrow grid */
4742
+ .nudge-arrow-grid {
4743
+ display: grid;
4744
+ grid-template-columns: repeat(3, 1fr);
4745
+ grid-template-rows: repeat(2, 1fr);
4746
+ gap: 4px;
4747
+ }
4748
+
4749
+ .nudge-arrow-btn {
4750
+ background: var(--ui-surface);
4751
+ border: 1px solid var(--ui-border);
4752
+ border-radius: 8px;
4753
+ padding: 8px;
4754
+ cursor: pointer;
4755
+ transition: all var(--ui-duration-fast) var(--ui-ease);
4756
+ color: var(--ui-text);
4757
+ display: flex;
4758
+ align-items: center;
4759
+ justify-content: center;
4760
+ }
4761
+
4762
+ .nudge-arrow-btn svg {
4763
+ width: 16px;
4764
+ height: 16px;
4765
+ stroke-width: var(--ui-icon-stroke);
4766
+ }
4767
+
4768
+ .nudge-arrow-btn:hover {
4769
+ background: var(--ui-terracotta);
4770
+ border-color: var(--ui-terracotta);
4771
+ color: var(--ui-text-white);
4772
+ transform: translateY(-1px);
4773
+ }
4774
+
4775
+ .nudge-arrow-btn:active {
4776
+ transform: translateY(0);
4777
+ background: var(--ui-terracotta-active);
4778
+ }
4779
+
4780
+ .nudge-arrow-btn[data-nudge="up"] {
4781
+ grid-column: 2;
4782
+ grid-row: 1;
4783
+ }
4784
+
4785
+ .nudge-arrow-btn[data-nudge="left"] {
4786
+ grid-column: 1;
4787
+ grid-row: 2;
4788
+ }
4789
+
4790
+ .nudge-arrow-btn[data-nudge="down"] {
4791
+ grid-column: 2;
4792
+ grid-row: 2;
4793
+ }
4794
+
4795
+ .nudge-arrow-btn[data-nudge="right"] {
4796
+ grid-column: 3;
4797
+ grid-row: 2;
4798
+ }
4799
+
4800
+ /* Scale controls */
4801
+ .nudge-scale-controls {
4802
+ display: flex;
4803
+ flex-direction: column;
4804
+ gap: 6px;
4805
+ }
4806
+
4807
+ .nudge-scale-btn {
4808
+ background: var(--ui-surface);
4809
+ border: 1px solid var(--ui-border);
4810
+ border-radius: 8px;
4811
+ padding: 8px 10px;
4812
+ cursor: pointer;
4813
+ transition: all var(--ui-duration-fast) var(--ui-ease);
4814
+ color: var(--ui-text);
4815
+ display: flex;
4816
+ align-items: center;
4817
+ gap: 6px;
4818
+ font-size: 11px;
4819
+ font-weight: var(--font-weight-medium);
4820
+ }
4821
+
4822
+ .nudge-scale-btn svg {
4823
+ width: 14px;
4824
+ height: 14px;
4825
+ stroke-width: var(--ui-icon-stroke);
4826
+ }
4827
+
4828
+ .nudge-scale-btn:hover {
4829
+ background: var(--ui-terracotta);
4830
+ border-color: var(--ui-terracotta);
4831
+ color: var(--ui-text-white);
4832
+ }
4833
+
4834
+ .nudge-scale-btn:active {
4835
+ background: var(--ui-terracotta-active);
4836
+ }
4837
+
4838
+ /* Hide nudge panel in compare mode */
4839
+ .preview-shell.compare-mode .nudge-panel {
4840
+ display: none;
4841
+ }
4842
+
4622
4843
  /* ========== 99-misc.css ========== */
4623
4844
  /* 99 Misc */
4624
4845
  /* Auto-generated from preview.css */