@kritzel/editor 0.4.31 → 0.4.32

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 (195) hide show
  1. package/LICENSE.md +50 -50
  2. package/README.md +5 -5
  3. package/dist/cjs/{index-B92VHWr4.js → index-q_Tg9KUw.js} +12 -0
  4. package/dist/cjs/kritzel-active-users_46.cjs.entry.js +981 -322
  5. package/dist/cjs/kritzel-brush-style.cjs.entry.js +2 -2
  6. package/dist/cjs/kritzel-editor.cjs.js +2 -2
  7. package/dist/cjs/loader.cjs.js +2 -2
  8. package/dist/collection/components/kritzel-active-users/kritzel-active-users.css +65 -65
  9. package/dist/collection/components/kritzel-avatar/kritzel-avatar.css +58 -58
  10. package/dist/collection/components/kritzel-avatar/kritzel-avatar.js +3 -3
  11. package/dist/collection/components/kritzel-back-to-content/kritzel-back-to-content.css +42 -42
  12. package/dist/collection/components/kritzel-back-to-content/kritzel-back-to-content.js +1 -1
  13. package/dist/collection/components/kritzel-brush-style/kritzel-brush-style.css +42 -42
  14. package/dist/collection/components/kritzel-brush-style/kritzel-brush-style.js +3 -3
  15. package/dist/collection/components/kritzel-button/kritzel-button.css +73 -73
  16. package/dist/collection/components/kritzel-button/kritzel-button.js +2 -2
  17. package/dist/collection/components/kritzel-color/kritzel-color.css +24 -24
  18. package/dist/collection/components/kritzel-color/kritzel-color.js +2 -2
  19. package/dist/collection/components/kritzel-color-palette/kritzel-color-palette.css +46 -46
  20. package/dist/collection/components/kritzel-color-palette/kritzel-color-palette.js +1 -1
  21. package/dist/collection/components/kritzel-context-menu/kritzel-context-menu.css +113 -112
  22. package/dist/collection/components/kritzel-context-menu/kritzel-context-menu.js +1 -1
  23. package/dist/collection/components/kritzel-current-user/kritzel-current-user.css +11 -11
  24. package/dist/collection/components/kritzel-current-user/kritzel-current-user.js +1 -1
  25. package/dist/collection/components/kritzel-current-user-dialog/kritzel-current-user-dialog.css +39 -39
  26. package/dist/collection/components/kritzel-current-user-dialog/kritzel-current-user-dialog.js +1 -1
  27. package/dist/collection/components/kritzel-dialog/kritzel-dialog.css +209 -209
  28. package/dist/collection/components/kritzel-dropdown/kritzel-dropdown.css +190 -190
  29. package/dist/collection/components/kritzel-dropdown/kritzel-dropdown.js +2 -2
  30. package/dist/collection/components/kritzel-editor/kritzel-editor.css +160 -160
  31. package/dist/collection/components/kritzel-editor/kritzel-editor.js +72 -46
  32. package/dist/collection/components/kritzel-export/kritzel-export.css +89 -89
  33. package/dist/collection/components/kritzel-export/kritzel-export.js +1 -1
  34. package/dist/collection/components/kritzel-font/kritzel-font.css +10 -10
  35. package/dist/collection/components/kritzel-font/kritzel-font.js +1 -1
  36. package/dist/collection/components/kritzel-font-family/kritzel-font-family.css +48 -48
  37. package/dist/collection/components/kritzel-font-family/kritzel-font-family.js +2 -2
  38. package/dist/collection/components/kritzel-font-size/kritzel-font-size.css +30 -30
  39. package/dist/collection/components/kritzel-font-size/kritzel-font-size.js +1 -1
  40. package/dist/collection/components/kritzel-input/kritzel-input.css +69 -69
  41. package/dist/collection/components/kritzel-input/kritzel-input.js +1 -1
  42. package/dist/collection/components/kritzel-line-endings/kritzel-line-endings.css +60 -60
  43. package/dist/collection/components/kritzel-line-endings/kritzel-line-endings.js +3 -3
  44. package/dist/collection/components/kritzel-loading-overlay/kritzel-loading-overlay.css +54 -54
  45. package/dist/collection/components/kritzel-loading-overlay/kritzel-loading-overlay.js +1 -1
  46. package/dist/collection/components/kritzel-login-dialog/kritzel-login-dialog.css +98 -98
  47. package/dist/collection/components/kritzel-login-dialog/kritzel-login-dialog.js +1 -1
  48. package/dist/collection/components/kritzel-master-detail/kritzel-master-detail.css +190 -190
  49. package/dist/collection/components/kritzel-master-detail/kritzel-master-detail.js +3 -3
  50. package/dist/collection/components/kritzel-menu/kritzel-menu.css +35 -34
  51. package/dist/collection/components/kritzel-menu/kritzel-menu.js +1 -1
  52. package/dist/collection/components/kritzel-menu-item/kritzel-menu-item.css +166 -166
  53. package/dist/collection/components/kritzel-menu-item/kritzel-menu-item.js +3 -3
  54. package/dist/collection/components/kritzel-more-menu/kritzel-more-menu.css +58 -58
  55. package/dist/collection/components/kritzel-more-menu/kritzel-more-menu.js +4 -4
  56. package/dist/collection/components/kritzel-notification-card/kritzel-notification-card.css +101 -101
  57. package/dist/collection/components/kritzel-numeric-input/kritzel-numeric-input.css +102 -102
  58. package/dist/collection/components/kritzel-numeric-input/kritzel-numeric-input.js +1 -1
  59. package/dist/collection/components/kritzel-opacity-slider/kritzel-opacity-slider.css +85 -85
  60. package/dist/collection/components/kritzel-opacity-slider/kritzel-opacity-slider.js +1 -1
  61. package/dist/collection/components/kritzel-pill-tabs/kritzel-pill-tabs.css +68 -68
  62. package/dist/collection/components/kritzel-pill-tabs/kritzel-pill-tabs.js +2 -2
  63. package/dist/collection/components/kritzel-portal/kritzel-portal.js +1 -1
  64. package/dist/collection/components/kritzel-settings/kritzel-settings.css +137 -137
  65. package/dist/collection/components/kritzel-settings/kritzel-settings.js +1 -1
  66. package/dist/collection/components/kritzel-shape-fill/kritzel-shape-fill.css +47 -47
  67. package/dist/collection/components/kritzel-shape-fill/kritzel-shape-fill.js +4 -4
  68. package/dist/collection/components/kritzel-share-dialog/kritzel-share-dialog.css +150 -150
  69. package/dist/collection/components/kritzel-share-dialog/kritzel-share-dialog.js +2 -2
  70. package/dist/collection/components/kritzel-slide-toggle/kritzel-slide-toggle.css +48 -48
  71. package/dist/collection/components/kritzel-slide-toggle/kritzel-slide-toggle.js +1 -1
  72. package/dist/collection/components/kritzel-split-button/kritzel-split-button.css +78 -78
  73. package/dist/collection/components/kritzel-split-button/kritzel-split-button.js +3 -3
  74. package/dist/collection/components/kritzel-stroke-size/kritzel-stroke-size.css +37 -37
  75. package/dist/collection/components/kritzel-stroke-size/kritzel-stroke-size.js +1 -1
  76. package/dist/collection/components/kritzel-tool-config/kritzel-tool-config.css +38 -38
  77. package/dist/collection/components/kritzel-tool-config/kritzel-tool-config.js +1 -1
  78. package/dist/collection/components/kritzel-toolbar/kritzel-toolbar.css +347 -347
  79. package/dist/collection/components/kritzel-toolbar/kritzel-toolbar.js +12 -16
  80. package/dist/collection/components/kritzel-tooltip/kritzel-tooltip.css +18 -18
  81. package/dist/collection/components/kritzel-tooltip/kritzel-tooltip.js +2 -2
  82. package/dist/collection/components/kritzel-utility-panel/kritzel-utility-panel.css +45 -45
  83. package/dist/collection/components/kritzel-utility-panel/kritzel-utility-panel.js +1 -1
  84. package/dist/collection/components/kritzel-workspace-manager/kritzel-workspace-manager.css +16 -16
  85. package/dist/collection/components/kritzel-workspace-manager/kritzel-workspace-manager.js +1 -1
  86. package/dist/collection/components/kritzel-zoom-panel/kritzel-zoom-panel.css +72 -72
  87. package/dist/collection/components/kritzel-zoom-panel/kritzel-zoom-panel.js +1 -1
  88. package/dist/components/index.js +1 -1
  89. package/dist/components/kritzel-active-users.js +1 -1
  90. package/dist/components/kritzel-avatar.js +1 -1
  91. package/dist/components/kritzel-awareness-cursors.js +1 -1
  92. package/dist/components/kritzel-back-to-content.js +1 -1
  93. package/dist/components/kritzel-brush-style.js +4 -4
  94. package/dist/components/kritzel-button.js +1 -1
  95. package/dist/components/kritzel-color-palette.js +1 -1
  96. package/dist/components/kritzel-color.js +1 -1
  97. package/dist/components/kritzel-context-menu.js +1 -1
  98. package/dist/components/kritzel-current-user-dialog.js +1 -1
  99. package/dist/components/kritzel-current-user.js +1 -1
  100. package/dist/components/kritzel-cursor-trail.js +1 -1
  101. package/dist/components/kritzel-dialog.js +1 -1
  102. package/dist/components/kritzel-dropdown.js +1 -1
  103. package/dist/components/kritzel-editor.js +108 -81
  104. package/dist/components/kritzel-engine.js +1 -1
  105. package/dist/components/kritzel-export.js +1 -1
  106. package/dist/components/kritzel-font-family.js +1 -1
  107. package/dist/components/kritzel-font-size.js +1 -1
  108. package/dist/components/kritzel-font.js +1 -1
  109. package/dist/components/kritzel-icon.js +1 -1
  110. package/dist/components/kritzel-input.js +1 -1
  111. package/dist/components/kritzel-line-endings.js +1 -1
  112. package/dist/components/kritzel-loading-overlay.js +1 -1
  113. package/dist/components/kritzel-login-dialog.js +1 -1
  114. package/dist/components/kritzel-master-detail.js +1 -1
  115. package/dist/components/kritzel-menu-item.js +1 -1
  116. package/dist/components/kritzel-menu.js +1 -1
  117. package/dist/components/kritzel-more-menu.js +1 -1
  118. package/dist/components/kritzel-notification-card.js +1 -1
  119. package/dist/components/kritzel-numeric-input.js +1 -1
  120. package/dist/components/kritzel-opacity-slider.js +1 -1
  121. package/dist/components/kritzel-pill-tabs.js +1 -1
  122. package/dist/components/kritzel-portal.js +1 -1
  123. package/dist/components/kritzel-settings.js +1 -1
  124. package/dist/components/kritzel-shape-fill.js +1 -1
  125. package/dist/components/kritzel-share-dialog.js +1 -1
  126. package/dist/components/kritzel-slide-toggle.js +1 -1
  127. package/dist/components/kritzel-split-button.js +1 -1
  128. package/dist/components/kritzel-stroke-size.js +1 -1
  129. package/dist/components/kritzel-tool-config.js +1 -1
  130. package/dist/components/kritzel-toolbar.js +1 -1
  131. package/dist/components/kritzel-tooltip.js +1 -1
  132. package/dist/components/kritzel-utility-panel.js +1 -1
  133. package/dist/components/kritzel-watermark.js +1 -1
  134. package/dist/components/kritzel-workspace-manager.js +1 -1
  135. package/dist/components/kritzel-zoom-panel.js +1 -1
  136. package/dist/components/{p-B_gT0lCn.js → p-5tEZmBli.js} +3 -3
  137. package/dist/components/{p-B6UJztrf.js → p-B6U2JNDq.js} +4 -4
  138. package/dist/components/{p-DXuf225S.js → p-BK5rE1rd.js} +3 -3
  139. package/dist/components/{p-BZ_KnHdR.js → p-BbXTqI4t.js} +7 -7
  140. package/dist/components/{p-McY5wZ0h.js → p-BhVCoiyK.js} +2 -2
  141. package/dist/components/{p-SLnqczCS.js → p-BowLPDbq.js} +3 -3
  142. package/dist/components/{p-hQwVRh0t.js → p-BuwiCK1I.js} +7 -7
  143. package/dist/components/{p-CoNexfpB.js → p-C01XOYLF.js} +3 -3
  144. package/dist/components/{p-ClfOtiNp.js → p-C5Hw8Wv3.js} +3 -3
  145. package/dist/components/{p-CmjXRLdr.js → p-C5fgp5y4.js} +7 -7
  146. package/dist/components/{p-BfMlwIcG.js → p-CHelQjUo.js} +3 -3
  147. package/dist/components/{p-B5xYV1o3.js → p-CIm1iROq.js} +2 -2
  148. package/dist/components/{p-BjFrt1q0.js → p-COGlcEiV.js} +3 -3
  149. package/dist/components/{p-4-qLegHb.js → p-COaLQ4Z-.js} +4 -4
  150. package/dist/components/{p-CVxGF4bJ.js → p-CPfTzGnn.js} +5 -5
  151. package/dist/components/p-CViWMGoM.js +55 -0
  152. package/dist/components/{p-Blq9a1ni.js → p-CY3fGZlt.js} +6 -6
  153. package/dist/components/{p-Cy_cLtOP.js → p-CdwD9F0m.js} +18 -14
  154. package/dist/components/{p-GbCxpbQ6.js → p-CgCVe3_P.js} +3 -3
  155. package/dist/components/{p-DZsSiMnA.js → p-CiSc7ASZ.js} +722 -129
  156. package/dist/components/{p-DVv8ChhE.js → p-D0lYLWkj.js} +4 -4
  157. package/dist/components/{p-QEue33R5.js → p-D1sxfQVN.js} +3 -3
  158. package/dist/components/{p-BvG3JO85.js → p-D53Q7EDf.js} +3 -3
  159. package/dist/components/{p-CzUeIini.js → p-D5OzFEtr.js} +13 -13
  160. package/dist/components/{p-B3Tqoyl9.js → p-DAr69onU.js} +3 -3
  161. package/dist/components/{p-h_uh_Njf.js → p-DE6S-FN0.js} +3 -3
  162. package/dist/components/p-DSi2HiZW.js +214 -0
  163. package/dist/components/{p-Ckqh1tqY.js → p-DX4FbgMi.js} +27 -31
  164. package/dist/components/{p-CwBxnzYu.js → p-DYNFqwX4.js} +3 -3
  165. package/dist/components/{p-Cp4e4oTE.js → p-DZ0S2l6Z.js} +2 -2
  166. package/dist/components/{p-BrGJIoGK.js → p-DZ4rAt6k.js} +3 -3
  167. package/dist/components/{p-BDjRSoAc.js → p-Ddk64LEI.js} +2 -2
  168. package/dist/components/{p-DJxgPPfs.js → p-DoNH4OhF.js} +3 -3
  169. package/dist/components/{p-D0tPTPkR.js → p-Dtm4CEHf.js} +3 -3
  170. package/dist/components/{p-BN8VWPlq.js → p-Dwg30A00.js} +7 -7
  171. package/dist/components/{p-DXZBWJBt.js → p-DxHrSwYy.js} +4 -4
  172. package/dist/components/{p-CvaxFYS0.js → p-EpqroVCx.js} +8 -8
  173. package/dist/components/{p-R1D8Sr0l.js → p-Fzi_dVqn.js} +3 -3
  174. package/dist/components/{p-CS3YZVYE.js → p-Qk844WR4.js} +2 -2
  175. package/dist/components/{p-peZjvnkK.js → p-g6VqjbL_.js} +2 -2
  176. package/dist/components/{p-DyRJFg4w.js → p-hKGrOeEa.js} +2 -2
  177. package/dist/components/{p-5qkOM1RJ.js → p-l1BZ4pYI.js} +12 -1
  178. package/dist/components/{p-CrIEmItB.js → p-p2H4pOpF.js} +5 -5
  179. package/dist/components/{p-DqOC_Yck.js → p-pWWRmEe8.js} +6 -6
  180. package/dist/components/{p-Ds0uNtwQ.js → p-piYX2tVg.js} +4 -4
  181. package/dist/components/{p-kOINnzaR.js → p-xPpMDzPX.js} +7 -7
  182. package/dist/esm/{index-OjbYJz-P.js → index-2x7dfLlM.js} +12 -1
  183. package/dist/esm/kritzel-active-users_46.entry.js +981 -322
  184. package/dist/esm/kritzel-brush-style.entry.js +2 -2
  185. package/dist/esm/kritzel-editor.js +3 -3
  186. package/dist/esm/loader.js +3 -3
  187. package/dist/kritzel-editor/kritzel-editor.esm.js +3 -3
  188. package/dist/kritzel-editor/{p-501047d8.entry.js → p-285cdc18.entry.js} +2 -2
  189. package/dist/kritzel-editor/{p-OjbYJz-P.js → p-2x7dfLlM.js} +12 -1
  190. package/dist/kritzel-editor/{p-60319edb.entry.js → p-d5439a4f.entry.js} +981 -322
  191. package/dist/types/components/kritzel-editor/kritzel-editor.d.ts +9 -2
  192. package/dist/types/components.d.ts +15 -15
  193. package/package.json +3 -3
  194. package/dist/components/p-BGmTmdLe.js +0 -167
  195. package/dist/components/p-DOJCDPVD.js +0 -55
@@ -1,209 +1,209 @@
1
- :host {
2
- display: contents;
3
- }
4
-
5
- .dialog-content {
6
- text-align: start;
7
- line-height: normal;
8
- }
9
-
10
- .backdrop {
11
- position: fixed;
12
- top: 0;
13
- left: 0;
14
- right: 0;
15
- bottom: 0;
16
- z-index: 10002;
17
- display: flex;
18
- align-items: center;
19
- justify-content: center;
20
- background-color: var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));
21
- opacity: 1;
22
- transition: opacity 150ms ease-out;
23
- }
24
-
25
- .backdrop.is-animating {
26
- opacity: 0;
27
- }
28
-
29
- .dialog-content {
30
- position: relative;
31
- display: flex;
32
- flex-direction: column;
33
- background-color: var(--kritzel-dialog-background-color, #ffffff);
34
- border-radius: var(--kritzel-dialog-border-radius, 12px);
35
- box-shadow: var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));
36
- border: var(--kritzel-dialog-border, 1px solid #ebebeb);
37
- max-height: var(--kritzel-dialog-max-height, 90vh);
38
- max-width: var(--kritzel-dialog-max-width, 90vw);
39
- overflow: hidden;
40
- transform: scale(1);
41
- opacity: 1;
42
- transition:
43
- transform 200ms ease-out,
44
- opacity 200ms ease-out;
45
- font-family: var(--kritzel-dialog-font-family, sans-serif);
46
- }
47
-
48
- .dialog-content.is-animating {
49
- transform: scale(0.95);
50
- opacity: 0;
51
- }
52
-
53
- /* Size variants */
54
- .dialog-content.size-small {
55
- width: var(--kritzel-dialog-width-small, 320px);
56
- height: var(--kritzel-dialog-height-small, auto);
57
- }
58
-
59
- .dialog-content.size-medium {
60
- width: var(--kritzel-dialog-width-medium, 480px);
61
- height: var(--kritzel-dialog-height-medium, auto);
62
- }
63
-
64
- .dialog-content.size-large {
65
- width: var(--kritzel-dialog-width-large, 640px);
66
- height: var(--kritzel-dialog-height-large, auto);
67
- }
68
-
69
- .dialog-content.size-fullscreen {
70
- width: 100vw;
71
- height: 100vh;
72
- height: 100dvh;
73
- max-width: 100vw;
74
- max-height: 100vh;
75
- max-height: 100dvh;
76
- border-radius: 0;
77
- }
78
-
79
- /*
80
- * Contained-mobile: when the wrapping container itself is mobile-sized, the
81
- * dialog fills the container fully (mirrors the viewport fullscreen-on-mobile
82
- * behavior). The actual sizing is set inline by JS based on the container
83
- * rect; here we just remove decorations and ensure body flex layout.
84
- */
85
- .backdrop.contained-fullscreen {
86
- background-color: transparent;
87
- }
88
-
89
- .dialog-content.contained-fullscreen {
90
- border-radius: 0;
91
- }
92
-
93
- .dialog-content.contained-fullscreen .dialog-body {
94
- display: flex;
95
- flex-direction: column;
96
- }
97
-
98
- .dialog-content.contained-fullscreen .dialog-body ::slotted(*) {
99
- flex: 1;
100
- min-height: 0;
101
- }
102
-
103
- /* Responsive: auto fullscreen on mobile when enabled (portrait) */
104
- @media (max-width: 576px),
105
- (max-height: 576px) and (orientation: landscape) {
106
- .backdrop:has(.fullscreen-on-mobile) {
107
- background-color: transparent;
108
- }
109
-
110
- .dialog-content.fullscreen-on-mobile {
111
- width: 100vw;
112
- height: 100vh;
113
- height: 100dvh;
114
- max-width: 100vw;
115
- max-height: 100vh;
116
- max-height: 100dvh;
117
- border-radius: 0;
118
- }
119
-
120
- .dialog-content.fullscreen-on-mobile .dialog-body {
121
- display: flex;
122
- flex-direction: column;
123
- }
124
-
125
- .dialog-content.fullscreen-on-mobile .dialog-body ::slotted(*) {
126
- flex: 1;
127
- min-height: 0;
128
- }
129
- }
130
-
131
- .dialog-header {
132
- display: flex;
133
- align-items: center;
134
- justify-content: space-between;
135
- padding: var(--kritzel-dialog-header-padding, 16px 20px);
136
- border-bottom: var(--kritzel-dialog-header-border, 1px solid #ebebeb);
137
- gap: 12px;
138
- }
139
-
140
- .dialog-title {
141
- margin: 0;
142
- font-size: var(--kritzel-dialog-title-font-size, 18px);
143
- font-weight: var(--kritzel-dialog-title-font-weight, 600);
144
- color: var(--kritzel-dialog-title-color, #1a1a1a);
145
- flex: 1;
146
- overflow: hidden;
147
- text-overflow: ellipsis;
148
- white-space: nowrap;
149
- }
150
-
151
- .close-button {
152
- display: flex;
153
- align-items: center;
154
- justify-content: center;
155
- width: 32px;
156
- height: 32px;
157
- padding: 0;
158
- border: none;
159
- border-radius: var(--kritzel-dialog-close-button-border-radius, 6px);
160
- background-color: var(--kritzel-dialog-close-button-background, transparent);
161
- color: var(--kritzel-dialog-close-button-color, #666666);
162
- cursor: var(--kritzel-global-pointer-cursor, pointer);
163
- transition:
164
- background-color 150ms ease,
165
- color 150ms ease;
166
- flex-shrink: 0;
167
- -webkit-tap-highlight-color: transparent;
168
- }
169
-
170
- .close-button:hover {
171
- background-color: var(--kritzel-dialog-close-button-hover-background, #f5f5f5);
172
- color: var(--kritzel-dialog-close-button-hover-color, #1a1a1a);
173
- }
174
-
175
- .close-button:active {
176
- background-color: var(--kritzel-dialog-close-button-active-background, #ebebeb);
177
- }
178
-
179
- .close-button:focus-visible {
180
- outline: revert;
181
- outline-offset: revert;
182
- }
183
-
184
- .dialog-body {
185
- padding: var(--kritzel-dialog-body-padding, 20px);
186
- overflow-y: auto;
187
- flex: 1;
188
- min-height: 0;
189
- scrollbar-color: var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;
190
- scrollbar-width: thin;
191
- }
192
-
193
- .dialog-footer {
194
- display: flex;
195
- align-items: center;
196
- justify-content: flex-end;
197
- gap: var(--kritzel-dialog-footer-gap, 8px);
198
- padding: var(--kritzel-dialog-footer-padding, 16px 20px);
199
- border-top: var(--kritzel-dialog-footer-border, 1px solid #ebebeb);
200
- }
201
-
202
- /* Slotted content styling hints */
203
- ::slotted([slot='header']) {
204
- flex: 1;
205
- }
206
-
207
- ::slotted([slot='footer']) {
208
- display: contents;
209
- }
1
+ :host {
2
+ display: contents;
3
+ }
4
+
5
+ .dialog-content {
6
+ text-align: start;
7
+ line-height: normal;
8
+ }
9
+
10
+ .backdrop {
11
+ position: fixed;
12
+ top: 0;
13
+ left: 0;
14
+ right: 0;
15
+ bottom: 0;
16
+ z-index: 10002;
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ background-color: var(--kritzel-dialog-backdrop-color, rgba(0, 0, 0, 0.5));
21
+ opacity: 1;
22
+ transition: opacity 150ms ease-out;
23
+ }
24
+
25
+ .backdrop.is-animating {
26
+ opacity: 0;
27
+ }
28
+
29
+ .dialog-content {
30
+ position: relative;
31
+ display: flex;
32
+ flex-direction: column;
33
+ background-color: var(--kritzel-dialog-background-color, #ffffff);
34
+ border-radius: var(--kritzel-dialog-border-radius, 12px);
35
+ box-shadow: var(--kritzel-dialog-box-shadow, 0 4px 20px rgba(0, 0, 0, 0.15));
36
+ border: var(--kritzel-dialog-border, 1px solid #ebebeb);
37
+ max-height: var(--kritzel-dialog-max-height, 90vh);
38
+ max-width: var(--kritzel-dialog-max-width, 90vw);
39
+ overflow: hidden;
40
+ transform: scale(1);
41
+ opacity: 1;
42
+ transition:
43
+ transform 200ms ease-out,
44
+ opacity 200ms ease-out;
45
+ font-family: var(--kritzel-dialog-font-family, var(--kritzel-global-font-family, sans-serif));
46
+ }
47
+
48
+ .dialog-content.is-animating {
49
+ transform: scale(0.95);
50
+ opacity: 0;
51
+ }
52
+
53
+ /* Size variants */
54
+ .dialog-content.size-small {
55
+ width: var(--kritzel-dialog-width-small, 320px);
56
+ height: var(--kritzel-dialog-height-small, auto);
57
+ }
58
+
59
+ .dialog-content.size-medium {
60
+ width: var(--kritzel-dialog-width-medium, 480px);
61
+ height: var(--kritzel-dialog-height-medium, auto);
62
+ }
63
+
64
+ .dialog-content.size-large {
65
+ width: var(--kritzel-dialog-width-large, 640px);
66
+ height: var(--kritzel-dialog-height-large, auto);
67
+ }
68
+
69
+ .dialog-content.size-fullscreen {
70
+ width: 100vw;
71
+ height: 100vh;
72
+ height: 100dvh;
73
+ max-width: 100vw;
74
+ max-height: 100vh;
75
+ max-height: 100dvh;
76
+ border-radius: 0;
77
+ }
78
+
79
+ /*
80
+ * Contained-mobile: when the wrapping container itself is mobile-sized, the
81
+ * dialog fills the container fully (mirrors the viewport fullscreen-on-mobile
82
+ * behavior). The actual sizing is set inline by JS based on the container
83
+ * rect; here we just remove decorations and ensure body flex layout.
84
+ */
85
+ .backdrop.contained-fullscreen {
86
+ background-color: transparent;
87
+ }
88
+
89
+ .dialog-content.contained-fullscreen {
90
+ border-radius: 0;
91
+ }
92
+
93
+ .dialog-content.contained-fullscreen .dialog-body {
94
+ display: flex;
95
+ flex-direction: column;
96
+ }
97
+
98
+ .dialog-content.contained-fullscreen .dialog-body ::slotted(*) {
99
+ flex: 1;
100
+ min-height: 0;
101
+ }
102
+
103
+ /* Responsive: auto fullscreen on mobile when enabled (portrait) */
104
+ @media (max-width: 576px),
105
+ (max-height: 576px) and (orientation: landscape) {
106
+ .backdrop:has(.fullscreen-on-mobile) {
107
+ background-color: transparent;
108
+ }
109
+
110
+ .dialog-content.fullscreen-on-mobile {
111
+ width: 100vw;
112
+ height: 100vh;
113
+ height: 100dvh;
114
+ max-width: 100vw;
115
+ max-height: 100vh;
116
+ max-height: 100dvh;
117
+ border-radius: 0;
118
+ }
119
+
120
+ .dialog-content.fullscreen-on-mobile .dialog-body {
121
+ display: flex;
122
+ flex-direction: column;
123
+ }
124
+
125
+ .dialog-content.fullscreen-on-mobile .dialog-body ::slotted(*) {
126
+ flex: 1;
127
+ min-height: 0;
128
+ }
129
+ }
130
+
131
+ .dialog-header {
132
+ display: flex;
133
+ align-items: center;
134
+ justify-content: space-between;
135
+ padding: var(--kritzel-dialog-header-padding, 16px 20px);
136
+ border-bottom: var(--kritzel-dialog-header-border, 1px solid #ebebeb);
137
+ gap: 12px;
138
+ }
139
+
140
+ .dialog-title {
141
+ margin: 0;
142
+ font-size: var(--kritzel-dialog-title-font-size, 18px);
143
+ font-weight: var(--kritzel-dialog-title-font-weight, 600);
144
+ color: var(--kritzel-dialog-title-color, #1a1a1a);
145
+ flex: 1;
146
+ overflow: hidden;
147
+ text-overflow: ellipsis;
148
+ white-space: nowrap;
149
+ }
150
+
151
+ .close-button {
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ width: 32px;
156
+ height: 32px;
157
+ padding: 0;
158
+ border: none;
159
+ border-radius: var(--kritzel-dialog-close-button-border-radius, 6px);
160
+ background-color: var(--kritzel-dialog-close-button-background, transparent);
161
+ color: var(--kritzel-dialog-close-button-color, #666666);
162
+ cursor: var(--kritzel-global-pointer-cursor, pointer);
163
+ transition:
164
+ background-color 150ms ease,
165
+ color 150ms ease;
166
+ flex-shrink: 0;
167
+ -webkit-tap-highlight-color: transparent;
168
+ }
169
+
170
+ .close-button:hover {
171
+ background-color: var(--kritzel-dialog-close-button-hover-background, #f5f5f5);
172
+ color: var(--kritzel-dialog-close-button-hover-color, #1a1a1a);
173
+ }
174
+
175
+ .close-button:active {
176
+ background-color: var(--kritzel-dialog-close-button-active-background, #ebebeb);
177
+ }
178
+
179
+ .close-button:focus-visible {
180
+ outline: revert;
181
+ outline-offset: revert;
182
+ }
183
+
184
+ .dialog-body {
185
+ padding: var(--kritzel-dialog-body-padding, 20px);
186
+ overflow-y: auto;
187
+ flex: 1;
188
+ min-height: 0;
189
+ scrollbar-color: var(--kritzel-global-scrollbar-thumb-color, #ebebeb) transparent;
190
+ scrollbar-width: thin;
191
+ }
192
+
193
+ .dialog-footer {
194
+ display: flex;
195
+ align-items: center;
196
+ justify-content: flex-end;
197
+ gap: var(--kritzel-dialog-footer-gap, 8px);
198
+ padding: var(--kritzel-dialog-footer-padding, 16px 20px);
199
+ border-top: var(--kritzel-dialog-footer-border, 1px solid #ebebeb);
200
+ }
201
+
202
+ /* Slotted content styling hints */
203
+ ::slotted([slot='header']) {
204
+ flex: 1;
205
+ }
206
+
207
+ ::slotted([slot='footer']) {
208
+ display: contents;
209
+ }