@duskmoon-dev/core 1.19.0 → 1.19.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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @duskmoon-dev/core v1.19.0
2
+ * @duskmoon-dev/core v1.19.1
3
3
  * Built-in DuskMoonUI themes
4
4
  * https://github.com/duskmoon-dev/duskmoonui
5
5
  * @license MIT
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @duskmoon-dev/core v1.19.0
3
- * @duskmoon-dev/css-art v1.19.0
2
+ * @duskmoon-dev/core v1.19.1
3
+ * @duskmoon-dev/css-art v1.19.1
4
4
  * Complete standalone DuskMoonUI styles
5
5
  * https://github.com/duskmoon-dev/duskmoonui
6
6
  * @license MIT
@@ -2972,6 +2972,65 @@ html {
2972
2972
  gap: 0.25rem;
2973
2973
  }
2974
2974
 
2975
+ /* Native floating menu. Keep closed popovers hidden despite the base flex layout. */
2976
+ .menu[popover] {
2977
+ display: none;
2978
+ position: absolute;
2979
+ inset: auto;
2980
+ margin: 0.5rem;
2981
+ min-width: 12rem;
2982
+ max-width: calc(100vw - 1rem);
2983
+ max-height: calc(100dvh - 1rem);
2984
+ overflow: auto;
2985
+ color: var(--color-on-surface);
2986
+ background-color: var(--color-surface-container);
2987
+ border: 1px solid var(--color-outline-variant);
2988
+ border-radius: var(--radius-md);
2989
+ box-shadow: var(--shadow-lg);
2990
+ position-area: bottom;
2991
+ position-try-fallbacks: flip-block, flip-inline, flip-block flip-inline;
2992
+ opacity: 0;
2993
+ transform: scale(0.95);
2994
+ transition:
2995
+ opacity 150ms ease-out,
2996
+ transform 150ms ease-out,
2997
+ overlay 150ms ease-out allow-discrete,
2998
+ display 150ms ease-out allow-discrete;
2999
+ }
3000
+
3001
+ .menu[popover]:popover-open {
3002
+ display: flex;
3003
+ opacity: 1;
3004
+ transform: scale(1);
3005
+ }
3006
+
3007
+ @starting-style {
3008
+ .menu[popover]:popover-open {
3009
+ opacity: 0;
3010
+ transform: scale(0.95);
3011
+ }
3012
+ }
3013
+
3014
+ .menu[popover]::backdrop {
3015
+ background-color: transparent;
3016
+ }
3017
+
3018
+ .menu-top[popover] {
3019
+ position-area: top;
3020
+ }
3021
+
3022
+ .menu-bottom[popover] {
3023
+ position-area: bottom;
3024
+ }
3025
+
3026
+ .menu-left[popover] {
3027
+ position-area: left;
3028
+ }
3029
+
3030
+ .menu-right[popover] {
3031
+ position-area: right;
3032
+ }
3033
+
2975
3034
  .menu li {
2976
3035
  display: flex;
2977
3036
  flex-shrink: 0;
@@ -3650,6 +3709,10 @@ html {
3650
3709
 
3651
3710
  /* Reduce Motion */
3652
3711
  @media (prefers-reduced-motion: reduce) {
3712
+ .menu li > a,
3713
+ .menu li > button,
3714
+ .menu-item,
3715
+ .menu[popover],
3653
3716
  .pagination-item,
3654
3717
  .pagination-prev,
3655
3718
  .pagination-next {
@@ -17516,6 +17579,26 @@ html {
17516
17579
  visibility: visible;
17517
17580
  }
17518
17581
 
17582
+ /* Native surfaces keep the browser's closed state and reset UA dialog/popover geometry. */
17583
+ :where(.drawer[popover], dialog.drawer) {
17584
+ inset: auto;
17585
+ margin: 0;
17586
+ width: auto;
17587
+ height: auto;
17588
+ padding: 0;
17589
+ border: 0;
17590
+ color: var(--color-on-surface);
17591
+ max-width: none;
17592
+ max-height: none;
17593
+ overflow: auto;
17594
+ box-sizing: border-box;
17595
+ }
17596
+
17597
+ .drawer[popover]:not(:popover-open),
17598
+ dialog.drawer:not([open]) {
17599
+ display: none;
17600
+ }
17601
+
17519
17602
  /* Base Drawer */
17520
17603
  .drawer {
17521
17604
  position: fixed;
@@ -17854,8 +17937,65 @@ html {
17854
17937
  border-radius: 0;
17855
17938
  }
17856
17939
 
17940
+ /* Native state overrides legacy transforms without requiring class toggles. */
17941
+ .drawer[popover],
17942
+ dialog.drawer {
17943
+ transition: transform 300ms ease-out, opacity 300ms ease-out,
17944
+ display 300ms allow-discrete, overlay 300ms allow-discrete;
17945
+ opacity: 0;
17946
+ }
17947
+
17948
+ .drawer[popover]:popover-open,
17949
+ dialog.drawer[open] {
17950
+ display: flex;
17951
+ transform: translate(0, 0);
17952
+ opacity: 1;
17953
+ }
17954
+
17955
+ dialog.drawer::backdrop {
17956
+ background-color: color-mix(in srgb, var(--color-scrim) 50%, transparent);
17957
+ opacity: 0;
17958
+ transition: opacity 300ms ease-out, display 300ms allow-discrete,
17959
+ overlay 300ms allow-discrete;
17960
+ }
17961
+
17962
+ dialog.drawer[open]::backdrop {
17963
+ opacity: 1;
17964
+ }
17965
+
17966
+ @starting-style {
17967
+ .drawer[popover]:popover-open,
17968
+ dialog.drawer[open],
17969
+ dialog.drawer[open]::backdrop {
17970
+ opacity: 0;
17971
+ }
17972
+
17973
+ .drawer-left[popover]:popover-open,
17974
+ dialog.drawer-left[open] {
17975
+ transform: translateX(-100%);
17976
+ }
17977
+
17978
+ .drawer-right[popover]:popover-open,
17979
+ dialog.drawer-right[open] {
17980
+ transform: translateX(100%);
17981
+ }
17982
+
17983
+ .drawer-top[popover]:popover-open,
17984
+ dialog.drawer-top[open] {
17985
+ transform: translateY(-100%);
17986
+ }
17987
+
17988
+ .drawer-bottom[popover]:popover-open,
17989
+ dialog.drawer-bottom[open] {
17990
+ transform: translateY(100%);
17991
+ }
17992
+ }
17993
+
17857
17994
  /* Reduce Motion */
17858
17995
  @media (prefers-reduced-motion: reduce) {
17996
+ .drawer[popover],
17997
+ dialog.drawer,
17998
+ dialog.drawer::backdrop,
17859
17999
  .drawer,
17860
18000
  .drawer-backdrop,
17861
18001
  .drawer-close,
@@ -18718,6 +18858,26 @@ html {
18718
18858
  visibility: visible;
18719
18859
  }
18720
18860
 
18861
+ /* Native surfaces keep the browser's closed state and reset UA dialog/popover geometry. */
18862
+ :where(.bottomsheet[popover], dialog.bottomsheet) {
18863
+ inset: auto;
18864
+ margin: 0;
18865
+ width: auto;
18866
+ height: auto;
18867
+ padding: 0;
18868
+ border: 0;
18869
+ color: var(--color-on-surface);
18870
+ max-width: none;
18871
+ max-height: none;
18872
+ overflow: auto;
18873
+ box-sizing: border-box;
18874
+ }
18875
+
18876
+ .bottomsheet[popover]:not(:popover-open),
18877
+ dialog.bottomsheet:not([open]) {
18878
+ display: none;
18879
+ }
18880
+
18721
18881
  /* Base Bottom Sheet */
18722
18882
  .bottomsheet {
18723
18883
  position: fixed;
@@ -19019,8 +19179,57 @@ html {
19019
19179
  }
19020
19180
  }
19021
19181
 
19182
+ /* Native state overrides legacy transforms without requiring class toggles. */
19183
+ .bottomsheet[popover],
19184
+ dialog.bottomsheet {
19185
+ transition: transform 300ms ease-out, opacity 300ms ease-out,
19186
+ display 300ms allow-discrete, overlay 300ms allow-discrete;
19187
+ opacity: 0;
19188
+ }
19189
+
19190
+ .bottomsheet[popover]:popover-open,
19191
+ dialog.bottomsheet[open] {
19192
+ display: flex;
19193
+ transform: translate(0, 0);
19194
+ opacity: 1;
19195
+ }
19196
+
19197
+ dialog.bottomsheet::backdrop {
19198
+ background-color: color-mix(in srgb, var(--color-scrim) 50%, transparent);
19199
+ opacity: 0;
19200
+ transition: opacity 300ms ease-out, display 300ms allow-discrete,
19201
+ overlay 300ms allow-discrete;
19202
+ }
19203
+
19204
+ dialog.bottomsheet[open]::backdrop {
19205
+ opacity: 1;
19206
+ }
19207
+
19208
+ @starting-style {
19209
+ .bottomsheet[popover]:popover-open,
19210
+ dialog.bottomsheet[open],
19211
+ dialog.bottomsheet[open]::backdrop {
19212
+ opacity: 0;
19213
+ }
19214
+
19215
+ .bottomsheet[popover]:popover-open,
19216
+ dialog.bottomsheet[open] {
19217
+ transform: translateY(100%);
19218
+ }
19219
+
19220
+ @media (min-width: 768px) {
19221
+ .bottomsheet-responsive[popover]:popover-open,
19222
+ dialog.bottomsheet-responsive[open] {
19223
+ transform: translateX(100%);
19224
+ }
19225
+ }
19226
+ }
19227
+
19022
19228
  /* Reduce Motion */
19023
19229
  @media (prefers-reduced-motion: reduce) {
19230
+ .bottomsheet[popover],
19231
+ dialog.bottomsheet,
19232
+ dialog.bottomsheet::backdrop,
19024
19233
  .bottomsheet,
19025
19234
  .bottomsheet-backdrop,
19026
19235
  .bottomsheet-close,