@excom/content-drawer 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 (43) hide show
  1. package/.rush/temp/chunked-rush-logs/content-drawer.apply-exports.chunks.jsonl +1 -0
  2. package/.rush/temp/chunked-rush-logs/content-drawer.build_docs.chunks.jsonl +1 -0
  3. package/.rush/temp/chunked-rush-logs/content-drawer.build_package-metas.chunks.jsonl +1 -0
  4. package/.rush/temp/operation/apply-exports/all.log +1 -0
  5. package/.rush/temp/operation/apply-exports/log-chunks.jsonl +1 -0
  6. package/.rush/temp/operation/apply-exports/state.json +3 -0
  7. package/.rush/temp/operation/build_docs/all.log +1 -0
  8. package/.rush/temp/operation/build_docs/log-chunks.jsonl +1 -0
  9. package/.rush/temp/operation/build_docs/state.json +3 -0
  10. package/.rush/temp/operation/build_package-metas/all.log +1 -0
  11. package/.rush/temp/operation/build_package-metas/log-chunks.jsonl +1 -0
  12. package/.rush/temp/operation/build_package-metas/state.json +3 -0
  13. package/.rush/temp/shrinkwrap-deps.json +3 -0
  14. package/config/rig.json +5 -0
  15. package/content-drawer.ts +205 -0
  16. package/index.css +5 -0
  17. package/index.ts +17 -0
  18. package/package.json +44 -0
  19. package/rush-logs/content-drawer.apply-exports.cache.log +1 -0
  20. package/rush-logs/content-drawer.apply-exports.log +1 -0
  21. package/rush-logs/content-drawer.build_docs.cache.log +1 -0
  22. package/rush-logs/content-drawer.build_docs.log +1 -0
  23. package/rush-logs/content-drawer.build_package-metas.cache.log +1 -0
  24. package/rush-logs/content-drawer.build_package-metas.log +1 -0
  25. package/src/content-drawer.css +344 -0
  26. package/support/custom-elements.json +360 -0
  27. package/support/demos/disappear.html +8 -0
  28. package/support/demos/dismiss.html +16 -0
  29. package/support/demos/from-side.html +9 -0
  30. package/support/demos/simple.html +12 -0
  31. package/support/demos/singleton.html +16 -0
  32. package/support/demos/stages.html +18 -0
  33. package/support/dist-docs/content-drawer.md +252 -0
  34. package/support/docs/README.md +69 -0
  35. package/support/package-meta.json +299 -0
  36. package/support/tests/content-drawer.test.ts +388 -0
  37. package/support/tests/disappear.view.test.ts +32 -0
  38. package/support/tests/dismiss.view.test.ts +61 -0
  39. package/support/tests/from-side.view.test.ts +32 -0
  40. package/support/tests/simple.view.test.ts +40 -0
  41. package/support/tests/singleton.view.test.ts +35 -0
  42. package/support/tests/stages.view.test.ts +39 -0
  43. package/tsconfig.json +5 -0
@@ -0,0 +1,299 @@
1
+ {
2
+ "shortName": "content-drawer",
3
+ "package": {
4
+ "name": "@excom/content-drawer",
5
+ "version": "0.1.0",
6
+ "description": "<content-drawer> custom element",
7
+ "peerDependencies": {},
8
+ "excom": {
9
+ "packageType": "kit-element"
10
+ }
11
+ },
12
+ "demos": {
13
+ "disappear": "<section>\n <button type=\"button\" command=\"--open\" commandfor=\"demo-drawer-disappear\">\n Show success\n </button>\n <content-drawer id=\"demo-drawer-disappear\" class=\"absolute\" disappear-after=\"2\">\n <h2>Saved!</h2>\n </content-drawer>\n</section>\n",
14
+ "dismiss": "<section>\n <quark-sheet>\n :scope {\n content-drawer[is-open] dismiss-watcher { is-active: \"\"; }\n content-drawer:not([is-open]) dismiss-watcher { is-active: none; }\n }\n </quark-sheet>\n <button type=\"button\" command=\"--open\" commandfor=\"demo-drawer-dismiss\">\n Open drawer\n </button>\n <content-drawer id=\"demo-drawer-dismiss\" class=\"absolute\">\n <dismiss-watcher watch-escape watch-outside-click command-name=\"--close\"></dismiss-watcher>\n <nav>Menu</nav>\n </content-drawer>\n <event-handler class=\"tag-backdrop\" role=\"presentation\" target-ref=\"content-drawer:has(+ :scope)\" command-name=\"--close\"></event-handler>\n</section>\n",
15
+ "from-side": "<section>\n <button type=\"button\" command=\"--toggle\" commandfor=\"demo-drawer-side\">\n Toggle drawer\n </button>\n <content-drawer id=\"demo-drawer-side\" class=\"absolute\" from-side=\"left\">\n <nav>Menu</nav>\n </content-drawer>\n <event-handler class=\"tag-backdrop\" role=\"presentation\" target-ref=\"content-drawer:has(+ :scope)\" command-name=\"--close\"></event-handler>\n</section>\n",
16
+ "simple": "<section>\n <button type=\"button\" command=\"--toggle\" commandfor=\"demo-drawer-simple\">\n Toggle sheet\n </button>\n <content-drawer id=\"demo-drawer-simple\" class=\"absolute\">\n <header>\n <button type=\"button\" rel=\"prev\" command=\"--close\" commandfor=\"demo-drawer-simple\" aria-label=\"Close\"></button>\n <h2>Sheet open</h2>\n </header>\n </content-drawer>\n <event-handler class=\"tag-backdrop\" role=\"presentation\" target-ref=\"content-drawer:has(+ :scope)\" command-name=\"--close\"></event-handler>\n</section>\n",
17
+ "singleton": "<section>\n <button type=\"button\" command=\"--open\" commandfor=\"drawer-a\">Open A</button>\n <button type=\"button\" command=\"--open\" commandfor=\"drawer-b\">Open B</button>\n <content-drawer id=\"drawer-a\" class=\"absolute\" singleton-name=\"demo\">\n <header>\n <button type=\"button\" rel=\"prev\" command=\"--close\" commandfor=\"drawer-a\" aria-label=\"Close\"></button>\n <h2>Drawer A</h2>\n </header>\n </content-drawer>\n <content-drawer id=\"drawer-b\" class=\"absolute\" singleton-name=\"demo\">\n <header>\n <button type=\"button\" rel=\"prev\" command=\"--close\" commandfor=\"drawer-b\" aria-label=\"Close\"></button>\n <h2>Drawer B</h2>\n </header>\n </content-drawer>\n</section>\n",
18
+ "stages": "<section>\n <button type=\"button\" command=\"--open\" commandfor=\"demo-drawer-stages\" data-open-stage=\"0\">\n Full (100%)\n </button>\n <button type=\"button\" command=\"--open\" commandfor=\"demo-drawer-stages\" data-open-stage=\"1\">\n Half (50%)\n </button>\n <button type=\"button\" command=\"--open\" commandfor=\"demo-drawer-stages\" data-open-stage=\"2\">\n Peek (25%)\n </button>\n <content-drawer id=\"demo-drawer-stages\" class=\"absolute\">\n <header>\n <button type=\"button\" rel=\"prev\" command=\"--close\" commandfor=\"demo-drawer-stages\" aria-label=\"Close\"></button>\n <h2>Open stages</h2>\n </header>\n <p>Full / half / peek via <code>data-open-stage</code> on the button.</p>\n </content-drawer>\n</section>\n"
19
+ },
20
+ "readme": "<h1 id=\"md-content-drawer\">content-drawer</h1>\n<p>Slide-in drawers and sheets for nav menus, filters, confirmations, and side panels — any edge, with peek stages.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Any edge</strong> Bottom (default), top, left, or right via <code>from-side</code></li>\n<li><strong>Peek stages</strong> Full, half, or peek via <code>open-stage</code></li>\n<li><strong>Command-driven</strong> <code>--open</code> / <code>--close</code> / <code>--toggle</code> from any <code>&lt;button command commandfor&gt;</code></li>\n<li><strong>Dismissal</strong> Outside click + Escape via <code>&lt;dismiss-watcher&gt;</code></li>\n<li><strong>Backdrop</strong> Valence.css dimmer — sibling <code>[role=&quot;presentation&quot;]</code> / <code>.tag-backdrop</code></li>\n<li><strong>Auto-dismiss</strong> <code>disappear-after</code> for toast-style confirmations</li>\n<li><strong>Singleton groups</strong> One open drawer per <code>singleton-name</code></li>\n<li><strong>Layout modes</strong> Viewport sheet (default, <code>position: fixed</code>), <code>.absolute</code> (inside its parent), <code>.relative</code>, or <code>.sticky</code></li>\n<li><strong>Scrubbable</strong> Wrap in <spa-a route-href=\"/nucleus/packages/gesture-handler\" role=\"link\"><code>gesture-handler</code></spa-a>: the sheet follows the finger via <code>is-scrubbing</code> + <code>--content-drawer-open-progress</code></li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put content inside <code>&lt;content-drawer&gt;</code> and invoke <code>--open</code>, <code>--close</code>, or <code>--toggle</code> on it — a native <code>&lt;button command commandfor&gt;</code>, or <code>&lt;event-handler command-name target-ref&gt;</code> when the invoker is not a button. Its parent automatically becomes <code>position: relative; overflow: hidden</code>, so give the parent a real size along the drawer&#39;s axis.</p>\n<include-content data-language=\"html\"><template>&lt;button type=\"button\" command=\"--toggle\" commandfor=\"sheet\"&gt;Toggle sheet&lt;/button&gt;\n&lt;content-drawer id=\"sheet\" class=\"absolute\"&gt;\n &lt;h2&gt;Saved!&lt;/h2&gt;\n&lt;/content-drawer&gt;\n&lt;event-handler class=\"tag-backdrop\" role=\"presentation\" target-ref=\"content-drawer:has(+ :scope)\" command-name=\"--close\"&gt;&lt;/event-handler&gt;</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-peek-stages\">Peek stages</h4>\n<p><code>--open</code> with <code>data-open-stage</code> on the button sets the stage — <code>0</code> full, <code>1</code> half, <code>2</code> peek. The exact heights of each stage are configurable through CSS variables.</p>\n<p><include-content data-demo=\"stages\"></include-content></p>\n<h4 id=\"md-dismissal\">Dismissal</h4>\n<p><code>&lt;dismiss-watcher command-name=&quot;--close&quot;&gt;</code> as the drawer&#39;s first child closes it on outside click or Escape / back gesture; the sheet gates its <code>is-active</code> on <code>content-drawer[is-open]</code> (with the inverse rule). Open with <code>--open</code>, not <code>--toggle</code> — an outside <code>mouseup</code> on the button closes first, the <code>click</code> then re-opens. Immediate next sibling <code>[role=&quot;presentation&quot;]</code> / <code>.tag-backdrop</code> is the Valence.css modal dimmer; <code>&lt;event-handler command-name=&quot;--close&quot;&gt;</code> on that node closes on click.</p>\n<p><include-content data-demo=\"dismiss\"></include-content></p>\n<h4 id=\"md-side-drawer\">Side drawer</h4>\n<p><code>from-side</code> slides from left / right / top instead of the default bottom.</p>\n<p><include-content data-demo=\"from-side\"></include-content></p>\n<h4 id=\"md-auto-dismiss\">Auto-dismiss</h4>\n<p><code>disappear-after</code> closes the drawer after N seconds — useful for success toasts.</p>\n<p><include-content data-demo=\"disappear\"></include-content></p>\n<h4 id=\"md-singleton-group\">Singleton group</h4>\n<p>Drawers sharing <code>singleton-name</code> — opening one closes the other.</p>\n<p><include-content data-demo=\"singleton\"></include-content></p>\n",
21
+ "docs": {
22
+ "readme": "<h1 id=\"md-content-drawer\">content-drawer</h1>\n<p>Slide-in drawers and sheets for nav menus, filters, confirmations, and side panels — any edge, with peek stages.</p>\n<p><include-content data-demo=\"simple\"></include-content></p>\n<h2 id=\"md-features\">Features</h2>\n<ul>\n<li><strong>Any edge</strong> Bottom (default), top, left, or right via <code>from-side</code></li>\n<li><strong>Peek stages</strong> Full, half, or peek via <code>open-stage</code></li>\n<li><strong>Command-driven</strong> <code>--open</code> / <code>--close</code> / <code>--toggle</code> from any <code>&lt;button command commandfor&gt;</code></li>\n<li><strong>Dismissal</strong> Outside click + Escape via <code>&lt;dismiss-watcher&gt;</code></li>\n<li><strong>Backdrop</strong> Valence.css dimmer — sibling <code>[role=&quot;presentation&quot;]</code> / <code>.tag-backdrop</code></li>\n<li><strong>Auto-dismiss</strong> <code>disappear-after</code> for toast-style confirmations</li>\n<li><strong>Singleton groups</strong> One open drawer per <code>singleton-name</code></li>\n<li><strong>Layout modes</strong> Viewport sheet (default, <code>position: fixed</code>), <code>.absolute</code> (inside its parent), <code>.relative</code>, or <code>.sticky</code></li>\n<li><strong>Scrubbable</strong> Wrap in <spa-a route-href=\"/nucleus/packages/gesture-handler\" role=\"link\"><code>gesture-handler</code></spa-a>: the sheet follows the finger via <code>is-scrubbing</code> + <code>--content-drawer-open-progress</code></li>\n</ul>\n<h2 id=\"md-installation\">Installation</h2>\n<p><include-content is-active template-ref=\"/views/install-section/install-section.html\"></include-content></p>\n<h2 id=\"md-usage\">Usage</h2>\n<p>Put content inside <code>&lt;content-drawer&gt;</code> and invoke <code>--open</code>, <code>--close</code>, or <code>--toggle</code> on it — a native <code>&lt;button command commandfor&gt;</code>, or <code>&lt;event-handler command-name target-ref&gt;</code> when the invoker is not a button. Its parent automatically becomes <code>position: relative; overflow: hidden</code>, so give the parent a real size along the drawer&#39;s axis.</p>\n<include-content data-language=\"html\"><template>&lt;button type=\"button\" command=\"--toggle\" commandfor=\"sheet\"&gt;Toggle sheet&lt;/button&gt;\n&lt;content-drawer id=\"sheet\" class=\"absolute\"&gt;\n &lt;h2&gt;Saved!&lt;/h2&gt;\n&lt;/content-drawer&gt;\n&lt;event-handler class=\"tag-backdrop\" role=\"presentation\" target-ref=\"content-drawer:has(+ :scope)\" command-name=\"--close\"&gt;&lt;/event-handler&gt;</template></include-content>\n<h3 id=\"md-api-reference\">API Reference</h3>\n<p><include-content is-active template-ref=\"/views/api-reference/api-reference.html\"></include-content></p>\n<h3 id=\"md-examples\">Examples</h3>\n<h4 id=\"md-peek-stages\">Peek stages</h4>\n<p><code>--open</code> with <code>data-open-stage</code> on the button sets the stage — <code>0</code> full, <code>1</code> half, <code>2</code> peek. The exact heights of each stage are configurable through CSS variables.</p>\n<p><include-content data-demo=\"stages\"></include-content></p>\n<h4 id=\"md-dismissal\">Dismissal</h4>\n<p><code>&lt;dismiss-watcher command-name=&quot;--close&quot;&gt;</code> as the drawer&#39;s first child closes it on outside click or Escape / back gesture; the sheet gates its <code>is-active</code> on <code>content-drawer[is-open]</code> (with the inverse rule). Open with <code>--open</code>, not <code>--toggle</code> — an outside <code>mouseup</code> on the button closes first, the <code>click</code> then re-opens. Immediate next sibling <code>[role=&quot;presentation&quot;]</code> / <code>.tag-backdrop</code> is the Valence.css modal dimmer; <code>&lt;event-handler command-name=&quot;--close&quot;&gt;</code> on that node closes on click.</p>\n<p><include-content data-demo=\"dismiss\"></include-content></p>\n<h4 id=\"md-side-drawer\">Side drawer</h4>\n<p><code>from-side</code> slides from left / right / top instead of the default bottom.</p>\n<p><include-content data-demo=\"from-side\"></include-content></p>\n<h4 id=\"md-auto-dismiss\">Auto-dismiss</h4>\n<p><code>disappear-after</code> closes the drawer after N seconds — useful for success toasts.</p>\n<p><include-content data-demo=\"disappear\"></include-content></p>\n<h4 id=\"md-singleton-group\">Singleton group</h4>\n<p>Drawers sharing <code>singleton-name</code> — opening one closes the other.</p>\n<p><include-content data-demo=\"singleton\"></include-content></p>\n"
23
+ },
24
+ "installation": {
25
+ "name": "@excom/content-drawer",
26
+ "shortName": "content-drawer",
27
+ "version": "0.1.0",
28
+ "description": "<content-drawer> custom element",
29
+ "packageType": "kit-element",
30
+ "cdn": "<script src=\"https://unpkg.com/@excom/kit-utils/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/neutron/dist/index.umd.min.js\"></script>\n<script src=\"https://unpkg.com/@excom/content-drawer@0.1.0/dist/index.umd.min.js\"></script>\n<link rel=\"stylesheet\" href=\"https://unpkg.com/@excom/content-drawer@0.1.0/dist/index.css\">",
31
+ "install": {
32
+ "npm": "npm install @excom/content-drawer"
33
+ },
34
+ "imports": {
35
+ "js": "import \"@excom/content-drawer\";",
36
+ "css": "@import \"@excom/content-drawer\";",
37
+ "html": "<!-- import path to `node_modules` will depend on your build setup -->\n<script type=\"module\" src=\"/node_modules/@excom/content-drawer\"></script>\n<link rel=\"stylesheet\" href=\"/node_modules/@excom/content-drawer\">"
38
+ },
39
+ "peerDependencies": []
40
+ },
41
+ "elementApis": [
42
+ {
43
+ "tag": "content-drawer",
44
+ "summary": "Slide-in drawer / sheet — bottom, top, left, or right, with peek stages.",
45
+ "kind": "class",
46
+ "attributes": [
47
+ {
48
+ "name": "disappear-after",
49
+ "type": "number",
50
+ "description": "Auto-close after this many seconds once opened — toast-style / transient confirmations.",
51
+ "fieldName": "disappearAfter",
52
+ "surface": "option"
53
+ },
54
+ {
55
+ "name": "from-side",
56
+ "type": "string",
57
+ "description": "Edge the drawer slides from.",
58
+ "fieldName": "fromSide",
59
+ "surface": "option",
60
+ "default": "\"bottom\"",
61
+ "values": "\"bottom\" | \"top\" | \"left\" | \"right\""
62
+ },
63
+ {
64
+ "name": "singleton-name",
65
+ "type": "string",
66
+ "description": "Shared group name. Opening one drawer closes others with the same name (singleton coordination).",
67
+ "fieldName": "singletonName",
68
+ "surface": "option"
69
+ },
70
+ {
71
+ "name": "is-open",
72
+ "type": "boolean",
73
+ "description": "Open state. Toggle directly, or through the <code>--open</code> / <code>--close</code> / <code>--toggle</code> commands. For Escape / outside-click dismissal pair with <code>&lt;dismiss-watcher command-name=&quot;--close&quot;&gt;</code>.",
74
+ "fieldName": "isOpen",
75
+ "surface": "hybrid"
76
+ },
77
+ {
78
+ "name": "open-stage",
79
+ "type": "number",
80
+ "description": "How far the drawer opens: <code>0</code> full, <code>1</code> half, <code>2</code> peek. Unset = full. Set statically, or per open through <code>data-open-stage</code> on the <code>--open</code> / <code>--toggle</code> invoker.",
81
+ "fieldName": "openStage",
82
+ "surface": "hybrid",
83
+ "values": "\"0\" | \"1\" | \"2\""
84
+ }
85
+ ],
86
+ "events": [
87
+ {
88
+ "name": "content-drawer-closed",
89
+ "description": "After close (<code>is-open</code> unset), <code>detail</code> is the drawer.",
90
+ "type": "ContentDrawerClosedEvent",
91
+ "typeExpanded": "CustomEvent & { type: \"content-drawer-closed\"; detail: HTMLElement; bubbles: true; cancelable: true; composed: true }"
92
+ },
93
+ {
94
+ "name": "content-drawer-opened",
95
+ "description": "After open (<code>is-open</code> set), <code>detail</code> is the drawer. When <code>singleton-name</code> is set it is also broadcast so drawers sharing that name close.",
96
+ "type": "ContentDrawerOpenedEvent",
97
+ "typeExpanded": "CustomEvent & { type: \"content-drawer-opened\"; detail: HTMLElement; bubbles: true; cancelable: true; composed: true }"
98
+ }
99
+ ],
100
+ "slots": [],
101
+ "cssProperties": [
102
+ {
103
+ "name": "--content-drawer-closed",
104
+ "description": "Off-screen translate amount (closed).",
105
+ "syntax": "<percentage>",
106
+ "default": "101%"
107
+ },
108
+ {
109
+ "name": "--content-drawer-max-width",
110
+ "description": "Overrides <code>--content-drawer-relative-max-width</code> for this drawer only.",
111
+ "syntax": "<length>"
112
+ },
113
+ {
114
+ "name": "--content-drawer-open-full",
115
+ "description": "Full-open translate (<code>open-stage</code> unset or <code>0</code>).",
116
+ "syntax": "<percentage>",
117
+ "default": "0%"
118
+ },
119
+ {
120
+ "name": "--content-drawer-open-half",
121
+ "description": "Half-open translate (<code>open-stage=&quot;1&quot;</code>).",
122
+ "syntax": "<percentage>",
123
+ "default": "50%"
124
+ },
125
+ {
126
+ "name": "--content-drawer-open-peek",
127
+ "description": "Peek translate (<code>open-stage=&quot;2&quot;</code>).",
128
+ "syntax": "<percentage>",
129
+ "default": "75%"
130
+ },
131
+ {
132
+ "name": "--content-drawer-open-progress",
133
+ "description": "How far open the drawer is while <code>is-scrubbing</code>: <code>0</code> closed, <code>1</code> full. Declared on the drawer (not <code>:root</code>) so it follows a wrapping <code>&lt;gesture-handler&gt;</code>&#39;s inherited <code>--gesture-progress</code> unless set explicitly — a swipe-to-open / drag-to-close bottom sheet.",
134
+ "syntax": "<number>",
135
+ "default": "var(--gesture-progress, 0)"
136
+ },
137
+ {
138
+ "name": "--content-drawer-overlay-z-index",
139
+ "description": "Stack order for the sibling backdrop (<code>:--dialog-backdrop-aliases</code>).",
140
+ "syntax": "<integer>",
141
+ "default": "2"
142
+ },
143
+ {
144
+ "name": "--content-drawer-relative-max-width",
145
+ "description": "Max width when open in <code>.relative</code> mode, used unless <code>--content-drawer-max-width</code> is set.",
146
+ "syntax": "<length>",
147
+ "default": "200px"
148
+ },
149
+ {
150
+ "name": "--content-drawer-transition-duration",
151
+ "description": "Slide transition duration.",
152
+ "syntax": "<time>",
153
+ "default": "0.25s"
154
+ },
155
+ {
156
+ "name": "--content-drawer-transition-ease",
157
+ "description": "Slide transition easing.",
158
+ "syntax": "<easing-function>",
159
+ "default": "ease-out"
160
+ },
161
+ {
162
+ "name": "--content-drawer-z-index",
163
+ "description": "Stack order for the drawer panel.",
164
+ "syntax": "<integer>",
165
+ "default": "3"
166
+ }
167
+ ],
168
+ "cssClasses": [
169
+ {
170
+ "name": "absolute",
171
+ "description": "<code>position: absolute</code> instead of the default <code>fixed</code> placement — a sheet inside its (<code>position: relative</code>) parent."
172
+ },
173
+ {
174
+ "name": "close",
175
+ "description": "Close control — empty <code>.close</code> / <code>[rel=&quot;prev&quot;]</code> button or link (theme close icon)."
176
+ },
177
+ {
178
+ "name": "relative",
179
+ "description": "In-flow mode: the drawer participates in layout and animates <code>max-width</code> instead of overlaying via <code>position</code>, pushing sibling content aside as it opens. Currently only affects <code>from-side=&quot;left&quot;</code>."
180
+ },
181
+ {
182
+ "name": "sticky",
183
+ "description": "<code>position: sticky</code> instead of the default <code>absolute</code> placement."
184
+ }
185
+ ],
186
+ "cssAliases": [
187
+ {
188
+ "name": ":--content-drawer",
189
+ "selectors": [
190
+ "content-drawer",
191
+ ".tag-content-drawer"
192
+ ],
193
+ "kind": "element",
194
+ "description": ""
195
+ },
196
+ {
197
+ "name": ":--content-drawer--from-side",
198
+ "selectors": [
199
+ "[from-side]",
200
+ "[data-placement]"
201
+ ],
202
+ "kind": "state",
203
+ "description": ""
204
+ },
205
+ {
206
+ "name": ":--content-drawer--from-side-bottom",
207
+ "selectors": [
208
+ "[from-side=\"bottom\"]",
209
+ "[data-placement=\"bottom\"]"
210
+ ],
211
+ "kind": "state",
212
+ "description": ""
213
+ },
214
+ {
215
+ "name": ":--content-drawer--from-side-left",
216
+ "selectors": [
217
+ "[from-side=\"left\"]",
218
+ "[data-placement=\"left\"]"
219
+ ],
220
+ "kind": "state",
221
+ "description": ""
222
+ },
223
+ {
224
+ "name": ":--content-drawer--from-side-right",
225
+ "selectors": [
226
+ "[from-side=\"right\"]",
227
+ "[data-placement=\"right\"]"
228
+ ],
229
+ "kind": "state",
230
+ "description": ""
231
+ },
232
+ {
233
+ "name": ":--content-drawer--from-side-top",
234
+ "selectors": [
235
+ "[from-side=\"top\"]",
236
+ "[data-placement=\"top\"]"
237
+ ],
238
+ "kind": "state",
239
+ "description": ""
240
+ },
241
+ {
242
+ "name": ":--content-drawer--is-open",
243
+ "selectors": [
244
+ "[is-open]",
245
+ "[aria-expanded=\"true\"]"
246
+ ],
247
+ "kind": "state",
248
+ "description": ""
249
+ },
250
+ {
251
+ "name": ":--content-drawer--is-scrubbing",
252
+ "selectors": [
253
+ "[is-scrubbing][is-scrubbing]",
254
+ "[data-scrubbing][data-scrubbing]"
255
+ ],
256
+ "kind": "state",
257
+ "description": ""
258
+ },
259
+ {
260
+ "name": ":--content-drawer--open-stage-1",
261
+ "selectors": [
262
+ "[open-stage=\"1\"]",
263
+ "[data-open=\"1\"]"
264
+ ],
265
+ "kind": "state",
266
+ "description": ""
267
+ },
268
+ {
269
+ "name": ":--content-drawer--open-stage-2",
270
+ "selectors": [
271
+ "[open-stage=\"2\"]",
272
+ "[data-open=\"2\"]"
273
+ ],
274
+ "kind": "state",
275
+ "description": ""
276
+ }
277
+ ],
278
+ "listens": [],
279
+ "commands": [
280
+ {
281
+ "name": "--close",
282
+ "description": "Closes the drawer (<code>is-open</code> unset)."
283
+ },
284
+ {
285
+ "name": "--open",
286
+ "description": "Opens the drawer (<code>is-open</code> set). <code>data-*</code> attributes on the invoker that name a declared prop (<code>data-open-stage</code>, <code>data-from-side</code>, …) are applied first; unknown, private and <code>isOpen</code> keys are ignored."
287
+ },
288
+ {
289
+ "name": "--toggle",
290
+ "description": "Toggles open / closed. Reads the invoker&#39;s <code>data-*</code> like <code>--open</code>."
291
+ }
292
+ ],
293
+ "defaultActions": [],
294
+ "expectedChildren": [],
295
+ "provisions": []
296
+ }
297
+ ],
298
+ "exportedFiles": {}
299
+ }