@chromvoid/uikit 0.1.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.
Files changed (246) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +96 -0
  3. package/dist/components/cv-accordion-item.d.ts +69 -0
  4. package/dist/components/cv-accordion-item.js +176 -0
  5. package/dist/components/cv-accordion.d.ts +79 -0
  6. package/dist/components/cv-accordion.js +310 -0
  7. package/dist/components/cv-alert-dialog.d.ts +86 -0
  8. package/dist/components/cv-alert-dialog.js +393 -0
  9. package/dist/components/cv-alert.d.ts +48 -0
  10. package/dist/components/cv-alert.js +156 -0
  11. package/dist/components/cv-badge.d.ts +56 -0
  12. package/dist/components/cv-badge.js +280 -0
  13. package/dist/components/cv-breadcrumb-item.d.ts +35 -0
  14. package/dist/components/cv-breadcrumb-item.js +64 -0
  15. package/dist/components/cv-breadcrumb.d.ts +39 -0
  16. package/dist/components/cv-breadcrumb.js +160 -0
  17. package/dist/components/cv-button.d.ts +83 -0
  18. package/dist/components/cv-button.js +541 -0
  19. package/dist/components/cv-callout.d.ts +32 -0
  20. package/dist/components/cv-callout.js +221 -0
  21. package/dist/components/cv-card.d.ts +48 -0
  22. package/dist/components/cv-card.js +269 -0
  23. package/dist/components/cv-carousel-slide.d.ts +25 -0
  24. package/dist/components/cv-carousel-slide.js +51 -0
  25. package/dist/components/cv-carousel.d.ts +96 -0
  26. package/dist/components/cv-carousel.js +457 -0
  27. package/dist/components/cv-checkbox.d.ts +84 -0
  28. package/dist/components/cv-checkbox.js +274 -0
  29. package/dist/components/cv-combobox-group.d.ts +15 -0
  30. package/dist/components/cv-combobox-group.js +34 -0
  31. package/dist/components/cv-combobox-option.d.ts +30 -0
  32. package/dist/components/cv-combobox-option.js +66 -0
  33. package/dist/components/cv-combobox.d.ts +135 -0
  34. package/dist/components/cv-combobox.js +834 -0
  35. package/dist/components/cv-command-item.d.ts +30 -0
  36. package/dist/components/cv-command-item.js +68 -0
  37. package/dist/components/cv-command-palette.d.ts +105 -0
  38. package/dist/components/cv-command-palette.js +578 -0
  39. package/dist/components/cv-context-menu.d.ts +98 -0
  40. package/dist/components/cv-context-menu.js +515 -0
  41. package/dist/components/cv-copy-button.d.ts +61 -0
  42. package/dist/components/cv-copy-button.js +318 -0
  43. package/dist/components/cv-date-picker.d.ts +161 -0
  44. package/dist/components/cv-date-picker.js +803 -0
  45. package/dist/components/cv-dialog.d.ts +89 -0
  46. package/dist/components/cv-dialog.js +459 -0
  47. package/dist/components/cv-disclosure.d.ts +57 -0
  48. package/dist/components/cv-disclosure.js +241 -0
  49. package/dist/components/cv-drawer.d.ts +102 -0
  50. package/dist/components/cv-drawer.js +595 -0
  51. package/dist/components/cv-feed-article.d.ts +26 -0
  52. package/dist/components/cv-feed-article.js +52 -0
  53. package/dist/components/cv-feed.d.ts +62 -0
  54. package/dist/components/cv-feed.js +310 -0
  55. package/dist/components/cv-grid-cell.d.ts +30 -0
  56. package/dist/components/cv-grid-cell.js +57 -0
  57. package/dist/components/cv-grid-column.d.ts +30 -0
  58. package/dist/components/cv-grid-column.js +43 -0
  59. package/dist/components/cv-grid-row.d.ts +30 -0
  60. package/dist/components/cv-grid-row.js +42 -0
  61. package/dist/components/cv-grid.d.ts +119 -0
  62. package/dist/components/cv-grid.js +567 -0
  63. package/dist/components/cv-icon.d.ts +57 -0
  64. package/dist/components/cv-icon.js +352 -0
  65. package/dist/components/cv-input.d.ts +127 -0
  66. package/dist/components/cv-input.js +482 -0
  67. package/dist/components/cv-landmark.d.ts +32 -0
  68. package/dist/components/cv-landmark.js +62 -0
  69. package/dist/components/cv-link.d.ts +22 -0
  70. package/dist/components/cv-link.js +99 -0
  71. package/dist/components/cv-listbox-group.d.ts +15 -0
  72. package/dist/components/cv-listbox-group.js +42 -0
  73. package/dist/components/cv-listbox.d.ts +81 -0
  74. package/dist/components/cv-listbox.js +388 -0
  75. package/dist/components/cv-menu-button.d.ts +118 -0
  76. package/dist/components/cv-menu-button.js +822 -0
  77. package/dist/components/cv-menu-group.d.ts +20 -0
  78. package/dist/components/cv-menu-group.js +48 -0
  79. package/dist/components/cv-menu-item.d.ts +52 -0
  80. package/dist/components/cv-menu-item.js +105 -0
  81. package/dist/components/cv-menu.d.ts +62 -0
  82. package/dist/components/cv-menu.js +414 -0
  83. package/dist/components/cv-meter.d.ts +66 -0
  84. package/dist/components/cv-meter.js +154 -0
  85. package/dist/components/cv-number.d.ts +139 -0
  86. package/dist/components/cv-number.js +553 -0
  87. package/dist/components/cv-option.d.ts +30 -0
  88. package/dist/components/cv-option.js +84 -0
  89. package/dist/components/cv-popover.d.ts +87 -0
  90. package/dist/components/cv-popover.js +373 -0
  91. package/dist/components/cv-progress-ring.d.ts +45 -0
  92. package/dist/components/cv-progress-ring.js +169 -0
  93. package/dist/components/cv-progress.d.ts +45 -0
  94. package/dist/components/cv-progress.js +148 -0
  95. package/dist/components/cv-radio-group.d.ts +79 -0
  96. package/dist/components/cv-radio-group.js +398 -0
  97. package/dist/components/cv-radio.d.ts +36 -0
  98. package/dist/components/cv-radio.js +123 -0
  99. package/dist/components/cv-select-group.d.ts +15 -0
  100. package/dist/components/cv-select-group.js +44 -0
  101. package/dist/components/cv-select-option.d.ts +30 -0
  102. package/dist/components/cv-select-option.js +66 -0
  103. package/dist/components/cv-select.d.ts +128 -0
  104. package/dist/components/cv-select.js +666 -0
  105. package/dist/components/cv-sidebar-item.d.ts +26 -0
  106. package/dist/components/cv-sidebar-item.js +142 -0
  107. package/dist/components/cv-sidebar.d.ts +171 -0
  108. package/dist/components/cv-sidebar.js +767 -0
  109. package/dist/components/cv-slider-multi-thumb.d.ts +73 -0
  110. package/dist/components/cv-slider-multi-thumb.js +374 -0
  111. package/dist/components/cv-slider.d.ts +84 -0
  112. package/dist/components/cv-slider.js +328 -0
  113. package/dist/components/cv-spinbutton.d.ts +121 -0
  114. package/dist/components/cv-spinbutton.js +486 -0
  115. package/dist/components/cv-spinner.d.ts +18 -0
  116. package/dist/components/cv-spinner.js +95 -0
  117. package/dist/components/cv-switch.d.ts +81 -0
  118. package/dist/components/cv-switch.js +285 -0
  119. package/dist/components/cv-tab-panel.d.ts +20 -0
  120. package/dist/components/cv-tab-panel.js +37 -0
  121. package/dist/components/cv-tab.d.ts +40 -0
  122. package/dist/components/cv-tab.js +132 -0
  123. package/dist/components/cv-table-cell.d.ts +31 -0
  124. package/dist/components/cv-table-cell.js +49 -0
  125. package/dist/components/cv-table-column.d.ts +37 -0
  126. package/dist/components/cv-table-column.js +63 -0
  127. package/dist/components/cv-table-row.d.ts +30 -0
  128. package/dist/components/cv-table-row.js +45 -0
  129. package/dist/components/cv-table.d.ts +147 -0
  130. package/dist/components/cv-table.js +607 -0
  131. package/dist/components/cv-tabs.d.ts +70 -0
  132. package/dist/components/cv-tabs.js +524 -0
  133. package/dist/components/cv-textarea.d.ts +108 -0
  134. package/dist/components/cv-textarea.js +328 -0
  135. package/dist/components/cv-toast-region.d.ts +39 -0
  136. package/dist/components/cv-toast-region.js +162 -0
  137. package/dist/components/cv-toast.d.ts +67 -0
  138. package/dist/components/cv-toast.js +315 -0
  139. package/dist/components/cv-toolbar-item.d.ts +25 -0
  140. package/dist/components/cv-toolbar-item.js +72 -0
  141. package/dist/components/cv-toolbar-separator.d.ts +25 -0
  142. package/dist/components/cv-toolbar-separator.js +45 -0
  143. package/dist/components/cv-toolbar.d.ts +63 -0
  144. package/dist/components/cv-toolbar.js +295 -0
  145. package/dist/components/cv-tooltip.d.ts +83 -0
  146. package/dist/components/cv-tooltip.js +455 -0
  147. package/dist/components/cv-treegrid-cell.d.ts +30 -0
  148. package/dist/components/cv-treegrid-cell.js +57 -0
  149. package/dist/components/cv-treegrid-column.d.ts +37 -0
  150. package/dist/components/cv-treegrid-column.js +53 -0
  151. package/dist/components/cv-treegrid-row.d.ts +55 -0
  152. package/dist/components/cv-treegrid-row.js +90 -0
  153. package/dist/components/cv-treegrid.d.ts +96 -0
  154. package/dist/components/cv-treegrid.js +632 -0
  155. package/dist/components/cv-treeitem.d.ts +58 -0
  156. package/dist/components/cv-treeitem.js +144 -0
  157. package/dist/components/cv-treeview.d.ts +70 -0
  158. package/dist/components/cv-treeview.js +396 -0
  159. package/dist/components/cv-window-splitter.d.ts +79 -0
  160. package/dist/components/cv-window-splitter.js +316 -0
  161. package/dist/components/index.d.ts +94 -0
  162. package/dist/components/index.js +79 -0
  163. package/dist/dialog/create-dialog-controller.d.ts +31 -0
  164. package/dist/dialog/create-dialog-controller.js +320 -0
  165. package/dist/dialog/index.d.ts +2 -0
  166. package/dist/dialog/index.js +1 -0
  167. package/dist/form-associated/FormAssociatedReatomElement.d.ts +25 -0
  168. package/dist/form-associated/FormAssociatedReatomElement.js +70 -0
  169. package/dist/form-associated/withFormAssociated.d.ts +5 -0
  170. package/dist/form-associated/withFormAssociated.js +1 -0
  171. package/dist/index.d.ts +10 -0
  172. package/dist/index.js +9 -0
  173. package/dist/reatom-lit/ReatomLitElement.d.ts +27 -0
  174. package/dist/reatom-lit/ReatomLitElement.js +118 -0
  175. package/dist/reatom-lit/html.d.ts +4 -0
  176. package/dist/reatom-lit/html.js +10 -0
  177. package/dist/reatom-lit/index.d.ts +4 -0
  178. package/dist/reatom-lit/index.js +4 -0
  179. package/dist/reatom-lit/watch.d.ts +15 -0
  180. package/dist/reatom-lit/watch.js +40 -0
  181. package/dist/reatom-lit/withReatomElement.d.ts +4 -0
  182. package/dist/reatom-lit/withReatomElement.js +57 -0
  183. package/dist/register.d.ts +1 -0
  184. package/dist/register.js +84 -0
  185. package/dist/styles/component-styles.d.ts +4 -0
  186. package/dist/styles/component-styles.js +78 -0
  187. package/dist/theme/cv-theme-provider.d.ts +32 -0
  188. package/dist/theme/cv-theme-provider.js +110 -0
  189. package/dist/theme/index.d.ts +4 -0
  190. package/dist/theme/index.js +2 -0
  191. package/dist/theme/theme-engine.d.ts +4 -0
  192. package/dist/theme/theme-engine.js +67 -0
  193. package/dist/theme/tokens.css +265 -0
  194. package/dist/theme/types.d.ts +7 -0
  195. package/dist/theme/types.js +1 -0
  196. package/dist/toast/create-toast-controller.d.ts +12 -0
  197. package/dist/toast/create-toast-controller.js +12 -0
  198. package/dist/toast/index.d.ts +2 -0
  199. package/dist/toast/index.js +1 -0
  200. package/package.json +146 -0
  201. package/specs/_template.md +110 -0
  202. package/specs/components/accordion.md +207 -0
  203. package/specs/components/alert.md +83 -0
  204. package/specs/components/badge.md +183 -0
  205. package/specs/components/breadcrumb.md +152 -0
  206. package/specs/components/button.md +227 -0
  207. package/specs/components/callout.md +153 -0
  208. package/specs/components/card.md +192 -0
  209. package/specs/components/carousel.md +232 -0
  210. package/specs/components/checkbox.md +141 -0
  211. package/specs/components/combobox.md +427 -0
  212. package/specs/components/context-menu.md +375 -0
  213. package/specs/components/copy-button.md +236 -0
  214. package/specs/components/date-picker.md +290 -0
  215. package/specs/components/dialog.md +184 -0
  216. package/specs/components/disclosure.md +151 -0
  217. package/specs/components/drawer.md +216 -0
  218. package/specs/components/feed.md +266 -0
  219. package/specs/components/grid.md +423 -0
  220. package/specs/components/input.md +237 -0
  221. package/specs/components/landmark.md +92 -0
  222. package/specs/components/link.md +117 -0
  223. package/specs/components/listbox.md +327 -0
  224. package/specs/components/menu.md +508 -0
  225. package/specs/components/meter.md +148 -0
  226. package/specs/components/number.md +268 -0
  227. package/specs/components/option.md +167 -0
  228. package/specs/components/popover.md +207 -0
  229. package/specs/components/progress-ring.md +134 -0
  230. package/specs/components/progress.md +110 -0
  231. package/specs/components/radio.md +208 -0
  232. package/specs/components/select.md +305 -0
  233. package/specs/components/sidebar.md +204 -0
  234. package/specs/components/spinbutton.md +157 -0
  235. package/specs/components/spinner.md +83 -0
  236. package/specs/components/switch.md +145 -0
  237. package/specs/components/table.md +372 -0
  238. package/specs/components/tabs.md +242 -0
  239. package/specs/components/textarea.md +166 -0
  240. package/specs/components/theme.md +364 -0
  241. package/specs/components/toast.md +198 -0
  242. package/specs/components/toolbar.md +258 -0
  243. package/specs/components/tooltip.md +152 -0
  244. package/specs/components/treegrid.md +363 -0
  245. package/specs/components/treeview.md +263 -0
  246. package/specs/components/window-splitter.md +225 -0
@@ -0,0 +1,241 @@
1
+ import { createDisclosure } from '@chromvoid/headless-ui/disclosure';
2
+ import { css, html, nothing } from 'lit';
3
+ import { ReatomLitElement } from '../reatom-lit/ReatomLitElement.js';
4
+ let cvDisclosureNonce = 0;
5
+ export class CVDisclosure extends ReatomLitElement {
6
+ static elementName = 'cv-disclosure';
7
+ static get properties() {
8
+ return {
9
+ open: { type: Boolean, reflect: true },
10
+ disabled: { type: Boolean, reflect: true },
11
+ name: { type: String, reflect: true },
12
+ };
13
+ }
14
+ idBase = `cv-disclosure-${++cvDisclosureNonce}`;
15
+ model;
16
+ /**
17
+ * When true, events are suppressed. Used to distinguish programmatic
18
+ * state changes (property sets, show/hide) from user interaction.
19
+ */
20
+ suppressEvents = false;
21
+ constructor() {
22
+ super();
23
+ this.open = false;
24
+ this.disabled = false;
25
+ this.name = '';
26
+ this.model = this.createModel();
27
+ }
28
+ static styles = [
29
+ css `
30
+ :host {
31
+ display: block;
32
+ --cv-disclosure-duration: var(--cv-duration-fast, 120ms);
33
+ --cv-disclosure-easing: var(--cv-easing-standard, ease);
34
+ }
35
+
36
+ [part='base'] {
37
+ display: grid;
38
+ gap: var(--cv-space-2, 8px);
39
+ }
40
+
41
+ [part='trigger'] {
42
+ display: inline-flex;
43
+ align-items: center;
44
+ justify-content: space-between;
45
+ min-block-size: 36px;
46
+ padding: 0 var(--cv-space-3, 12px);
47
+ border-radius: var(--cv-radius-sm, 6px);
48
+ border: 1px solid var(--cv-color-border, #2a3245);
49
+ background: var(--cv-color-surface, #141923);
50
+ color: var(--cv-color-text, #e8ecf6);
51
+ cursor: pointer;
52
+ }
53
+
54
+ [part='trigger']:focus-visible {
55
+ outline: 2px solid var(--cv-color-primary, #65d7ff);
56
+ outline-offset: 1px;
57
+ }
58
+
59
+ [part='trigger-icon'] {
60
+ inline-size: 16px;
61
+ block-size: 16px;
62
+ display: inline-flex;
63
+ align-items: center;
64
+ justify-content: center;
65
+ color: var(--cv-color-text-muted, #9aa6bf);
66
+ transition: transform var(--cv-disclosure-duration) var(--cv-disclosure-easing);
67
+ }
68
+
69
+ :host([open]) [part='trigger-icon'] {
70
+ transform: rotate(90deg);
71
+ }
72
+
73
+ [part='panel'] {
74
+ padding: var(--cv-space-3, 12px);
75
+ border-radius: var(--cv-radius-sm, 6px);
76
+ border: 1px solid var(--cv-color-border, #2a3245);
77
+ background: var(--cv-color-surface-elevated, #1d2432);
78
+ color: var(--cv-color-text, #e8ecf6);
79
+ }
80
+
81
+ [part='panel'][hidden] {
82
+ display: none;
83
+ }
84
+
85
+ :host([disabled]) [part='trigger'] {
86
+ cursor: not-allowed;
87
+ opacity: 0.55;
88
+ }
89
+ `,
90
+ ];
91
+ static define() {
92
+ if (!customElements.get(this.elementName)) {
93
+ customElements.define(this.elementName, this);
94
+ }
95
+ }
96
+ disconnectedCallback() {
97
+ super.disconnectedCallback();
98
+ this.model.actions.destroy();
99
+ }
100
+ willUpdate(changedProperties) {
101
+ super.willUpdate(changedProperties);
102
+ if (changedProperties.has('disabled')) {
103
+ this.model.actions.setDisabled(this.disabled);
104
+ }
105
+ if (changedProperties.has('name')) {
106
+ this.model.actions.setName(this.name || null);
107
+ }
108
+ if (changedProperties.has('open') && this.model.state.isOpen() !== this.open) {
109
+ this.suppressEvents = true;
110
+ // Temporarily clear disabled so the headless action is not rejected.
111
+ // Programmatic property changes must always be honored.
112
+ const wasDisabled = this.model.state.isDisabled();
113
+ if (wasDisabled)
114
+ this.model.actions.setDisabled(false);
115
+ if (this.open) {
116
+ this.model.actions.open();
117
+ }
118
+ else {
119
+ this.model.actions.close();
120
+ }
121
+ if (wasDisabled)
122
+ this.model.actions.setDisabled(true);
123
+ // Sync back from headless
124
+ this.open = this.model.state.isOpen();
125
+ this.suppressEvents = false;
126
+ }
127
+ }
128
+ createModel() {
129
+ return createDisclosure({
130
+ idBase: this.idBase,
131
+ isOpen: this.open,
132
+ isDisabled: this.disabled,
133
+ name: this.name || undefined,
134
+ });
135
+ }
136
+ dispatchInput(detail) {
137
+ this.dispatchEvent(new CustomEvent('cv-input', {
138
+ detail,
139
+ bubbles: true,
140
+ composed: true,
141
+ }));
142
+ }
143
+ dispatchChange(detail) {
144
+ this.dispatchEvent(new CustomEvent('cv-change', {
145
+ detail,
146
+ bubbles: true,
147
+ composed: true,
148
+ }));
149
+ }
150
+ /**
151
+ * Sync host `open` property from headless state after a user interaction.
152
+ * Fires input/change events only when suppressEvents is false and state actually changed.
153
+ */
154
+ syncFromModel(previousOpen) {
155
+ const nextOpen = this.model.state.isOpen();
156
+ this.open = nextOpen;
157
+ if (this.suppressEvents)
158
+ return;
159
+ if (previousOpen === nextOpen)
160
+ return;
161
+ const detail = { open: nextOpen };
162
+ this.dispatchInput(detail);
163
+ this.dispatchChange(detail);
164
+ }
165
+ /**
166
+ * Sync all grouped disclosures that may have been closed by headless group logic.
167
+ * Scans sibling cv-disclosure elements sharing the same name and updates their open property.
168
+ */
169
+ syncGroupedSiblings() {
170
+ if (!this.name)
171
+ return;
172
+ const siblings = document.querySelectorAll(`cv-disclosure[name="${this.name}"]`);
173
+ for (const sibling of siblings) {
174
+ if (sibling === this)
175
+ continue;
176
+ const headlessOpen = sibling.model.state.isOpen();
177
+ if (sibling.open !== headlessOpen) {
178
+ sibling.open = headlessOpen;
179
+ }
180
+ }
181
+ }
182
+ // --- Imperative API ---
183
+ /** Opens the panel programmatically without firing events. */
184
+ show() {
185
+ this.suppressEvents = true;
186
+ this.model.actions.open();
187
+ this.open = this.model.state.isOpen();
188
+ this.suppressEvents = false;
189
+ }
190
+ /** Closes the panel programmatically without firing events. */
191
+ hide() {
192
+ this.suppressEvents = true;
193
+ this.model.actions.close();
194
+ this.open = this.model.state.isOpen();
195
+ this.suppressEvents = false;
196
+ }
197
+ // --- Event handlers (user interaction) ---
198
+ handleTriggerClick() {
199
+ const previousOpen = this.model.state.isOpen();
200
+ this.model.contracts.getTriggerProps().onClick();
201
+ this.syncFromModel(previousOpen);
202
+ this.syncGroupedSiblings();
203
+ }
204
+ handleTriggerKeyDown(event) {
205
+ const previousOpen = this.model.state.isOpen();
206
+ this.model.contracts.getTriggerProps().onKeyDown(event);
207
+ this.syncFromModel(previousOpen);
208
+ this.syncGroupedSiblings();
209
+ }
210
+ render() {
211
+ const triggerProps = this.model.contracts.getTriggerProps();
212
+ const panelProps = this.model.contracts.getPanelProps();
213
+ return html `
214
+ <div part="base">
215
+ <div
216
+ id=${triggerProps.id}
217
+ role=${triggerProps.role}
218
+ tabindex=${triggerProps.tabindex}
219
+ aria-expanded=${triggerProps['aria-expanded']}
220
+ aria-controls=${triggerProps['aria-controls']}
221
+ aria-disabled=${triggerProps['aria-disabled'] ?? nothing}
222
+ part="trigger"
223
+ @click=${this.handleTriggerClick}
224
+ @keydown=${this.handleTriggerKeyDown}
225
+ >
226
+ <slot name="trigger"></slot>
227
+ <span part="trigger-icon" aria-hidden="true">&#x25B6;</span>
228
+ </div>
229
+
230
+ <div
231
+ id=${panelProps.id}
232
+ aria-labelledby=${panelProps['aria-labelledby']}
233
+ ?hidden=${panelProps.hidden}
234
+ part="panel"
235
+ >
236
+ <slot></slot>
237
+ </div>
238
+ </div>
239
+ `;
240
+ }
241
+ }
@@ -0,0 +1,102 @@
1
+ import type { PropertyValues } from 'lit';
2
+ import { ReatomLitElement } from '../reatom-lit/ReatomLitElement.js';
3
+ export interface CVDrawerEventDetail {
4
+ open: boolean;
5
+ }
6
+ export declare class CVDrawer extends ReatomLitElement {
7
+ static elementName: string;
8
+ static get properties(): {
9
+ open: {
10
+ type: BooleanConstructor;
11
+ reflect: boolean;
12
+ };
13
+ modal: {
14
+ type: BooleanConstructor;
15
+ reflect: boolean;
16
+ };
17
+ placement: {
18
+ type: StringConstructor;
19
+ reflect: boolean;
20
+ };
21
+ type: {
22
+ type: StringConstructor;
23
+ reflect: boolean;
24
+ };
25
+ closeOnEscape: {
26
+ type: BooleanConstructor;
27
+ attribute: string;
28
+ reflect: boolean;
29
+ };
30
+ closeOnOutsidePointer: {
31
+ type: BooleanConstructor;
32
+ attribute: string;
33
+ reflect: boolean;
34
+ };
35
+ closeOnOutsideFocus: {
36
+ type: BooleanConstructor;
37
+ attribute: string;
38
+ reflect: boolean;
39
+ };
40
+ initialFocusId: {
41
+ type: StringConstructor;
42
+ attribute: string;
43
+ };
44
+ noHeader: {
45
+ type: BooleanConstructor;
46
+ attribute: string;
47
+ reflect: boolean;
48
+ };
49
+ };
50
+ open: boolean;
51
+ modal: boolean;
52
+ placement: 'start' | 'end' | 'top' | 'bottom';
53
+ type: 'dialog' | 'alertdialog';
54
+ closeOnEscape: boolean;
55
+ closeOnOutsidePointer: boolean;
56
+ closeOnOutsideFocus: boolean;
57
+ initialFocusId: string;
58
+ noHeader: boolean;
59
+ private readonly idBase;
60
+ private model;
61
+ private lockScrollApplied;
62
+ private previousBodyOverflow;
63
+ private suppressLifecycleFromUpdate;
64
+ private lifecycleToken;
65
+ private overlayVisible;
66
+ private renderState;
67
+ private openAnimationFrame;
68
+ private closeAnimationTimeout;
69
+ private shouldAnimatePresence;
70
+ constructor();
71
+ static styles: import("lit").CSSResult[];
72
+ static define(): void;
73
+ connectedCallback(): void;
74
+ disconnectedCallback(): void;
75
+ willUpdate(changedProperties: PropertyValues): void;
76
+ updated(changedProperties: PropertyValues): void;
77
+ private clearAnimationQueue;
78
+ private startOpenAnimation;
79
+ private startCloseAnimation;
80
+ private syncRenderedState;
81
+ private getTransitionDuration;
82
+ private readTransitionDuration;
83
+ private parseTimeValues;
84
+ private createModel;
85
+ private captureState;
86
+ private dispatchInput;
87
+ private dispatchChange;
88
+ private dispatchLifecycleEvent;
89
+ private dispatchLifecycleTransition;
90
+ private applyInteractionResult;
91
+ private syncOutsideFocusListener;
92
+ private syncScrollLock;
93
+ private releaseScrollLock;
94
+ private focusInitialTarget;
95
+ private handleDocumentFocusIn;
96
+ private handleTriggerClick;
97
+ private handleTriggerKeyDown;
98
+ private handleOverlayPointerDown;
99
+ private handlePanelKeyDown;
100
+ private handleHeaderCloseClick;
101
+ protected render(): import("lit").TemplateResult<1>;
102
+ }