@@ -82768,6 +82768,13 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
82768
82768
<td>Does not close other popovers; does not <span data-x="popover light dismiss">light
82769
82769
dismiss</span>.</td>
82770
82770
</tr>
82771
+ <tr>
82772
+ <td><dfn attr-value for="html-global/popover"><code
82773
+ data-x="attr-popover-hint">hint</code></dfn></td>
82774
+ <td><dfn data-x="attr-popover-hint-state">hint</dfn></td>
82775
+ <td>Closes other hint popovers when opened; has <span data-x="popover light dismiss">light
82776
+ dismiss</span>; only one can be open at a time.</td>
82777
+ </tr>
82771
82778
</tbody>
82772
82779
</table>
82773
82780
@@ -82792,7 +82799,10 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
82792
82799
data-x="popover-showing-state">showing</dfn></p></li>
82793
82800
</ul>
82794
82801
82795
- <p>The <code>Document</code> has a <dfn>popover pointerdown target</dfn>, which is an <span
82802
+ <p>Every <code>Document</code> has a <dfn>popover pointerdown target</dfn>, which is an <span
82803
+ data-x="HTML elements">HTML element</span> or null, initially null.</p>
82804
+
82805
+ <p>Every <code>Document</code> has a <dfn>showing hint popover</dfn>, which is an <span
82796
82806
data-x="HTML elements">HTML element</span> or null, initially null.</p>
82797
82807
82798
82808
<p>Every <span data-x="HTML elements">HTML element</span> has a <dfn>popover invoker</dfn>, which
@@ -82897,7 +82907,8 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
82897
82907
82898
82908
<li>
82899
82909
<p>If <var>element</var>'s <code data-x="attr-popover">popover</code> attribute is in the <span
82900
- data-x="attr-popover-auto-state">auto</span> state, then:</p>
82910
+ data-x="attr-popover-auto-state">auto</span> state or <span
82911
+ data-x="attr-popover-hint-state">hint</span> state, then:</p>
82901
82912
82902
82913
<ol>
82903
82914
<li><p>Let <var>originalType</var> be the value of <var>element</var>'s <code
@@ -82909,8 +82920,23 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
82909
82920
<li><p>If <var>ancestor</var> is null, then set <var>ancestor</var> to
82910
82921
<var>document</var>.</p></li>
82911
82922
82912
- <li><p>Run <span data-x="hide-all-popovers-until">hide all popovers until</span> given
82913
- <var>ancestor</var>, false, and not <var>nestedShow</var>.</p></li>
82923
+ <li>
82924
+ <p>If <var>element</var>'s <code data-x="attr-popover">popover</code> attribute is in the
82925
+ <span data-x="attr-popover-hint-state">hint</span> state, then:</p>
82926
+
82927
+ <ol>
82928
+ <li><p>If <var>document</var>'s <span>showing hint popover</span> is not null, then run the
82929
+ <span>hide popover algorithm</span> given <var>document</var>'s <span>showing hint
82930
+ popover</span>, false, not <var>nestedShow</var>, and <var>throwExceptions</var>.</p></li>
82931
+
82932
+ <li><p>If <var>ancestor</var> is not <var>document</var>, then run <span
82933
+ data-x="hide-all-popovers-until">hide all popovers until</span> given <var>ancestor</var>,
82934
+ false, and not <var>nestedShow</var>.</p></li>
82935
+ </ol>
82936
+ </li>
82937
+
82938
+ <li><p>Otherwise, run <span data-x="hide-all-popovers-until">hide all popovers until</span>
82939
+ given <var>ancestor</var>, false, and not <var>nestedShow</var>.</p></li>
82914
82940
82915
82941
<li><p>If <var>originalType</var> is not equal to the value of <var>element</var>'s <code
82916
82942
data-x="attr-popover">popover</code> attribute, then throw a
@@ -82938,6 +82964,10 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
82938
82964
</ol>
82939
82965
</li>
82940
82966
82967
+ <li><p>If <var>element</var>'s <code data-x="attr-popover">popover</code> attribute is in the
82968
+ <span data-x="attr-popover-hint-state">hint</span> state, then set <var>document</var>'s
82969
+ <span>showing hint popover</span> to <var>element</var>.</p></li>
82970
+
82941
82971
<li><p>Set <var>element</var>'s <span>previously focused element</span> to null.</p></li>
82942
82972
82943
82973
<li><p>Let <var>originallyFocusedElement</var> be <var>document</var>'s <span>focused area of the
@@ -83038,11 +83068,12 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83038
83068
83039
83069
<li>
83040
83070
<p>If <var>element</var>'s <code data-x="attr-popover">popover</code> attribute is in the <span
83041
- data-x="attr-popover-auto-state">auto</span> state, then:</p>
83071
+ data-x="attr-popover-auto-state">auto</span> state or the <span
83072
+ data-x="attr-popover-hint-state">hint</span> state, then:</p>
83042
83073
83043
83074
<ol>
83044
83075
<li><p>Run <span data-x="hide-all-popovers-until">hide all popovers until</span> given
83045
- <var>element</var>, <var>focusPreviousElement</var>, and <var>fireEvents</var>.</p></li>
83076
+ <var>element</var>, <var>focusPreviousElement</var>, <var>fireEvents</var>, and false .</p></li>
83046
83077
83047
83078
<li>
83048
83079
<p>If the result of running <span>check popover validity</span> given <var>element</var>,
@@ -83086,6 +83117,8 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83086
83117
<li><p>Otherwise, <span>remove an element from the top layer immediately</span> given
83087
83118
<var>element</var>.</p></li>
83088
83119
83120
+ <li><p>Set <var>document</var>'s <span>showing hint popover</span> to null.</p></li>
83121
+
83089
83122
<li><p>Set <var>element</var>'s <span>popover visibility state</span> to <span
83090
83123
data-x="popover-hidden-state">hidden</span>.</p></li>
83091
83124
@@ -83144,7 +83177,8 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83144
83177
83145
83178
<p>To <dfn data-x="hide-all-popovers-until">hide all popovers until</dfn>, given an <span
83146
83179
data-x="HTML elements">HTML element</span> or <code>Document</code> <var>endpoint</var>, a boolean
83147
- <var>focusPreviousElement</var>, and a boolean <var>fireEvents</var>:</p>
83180
+ <var>focusPreviousElement</var>, a boolean <var>fireEvents</var>, and a boolean
83181
+ <var>hideUnrelatedPopovers</var>:</p>
83148
83182
83149
83183
<ol>
83150
83184
<li><p>Let <var>document</var> be <var>endpoint</var>'s <span>node document</span>.</p></li>
@@ -83174,53 +83208,81 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83174
83208
<var>closeAllOpenPopovers</var> and return.</p></li>
83175
83209
83176
83210
<li><p><span>Assert</span>: <var>endpoint</var>'s <code data-x="attr-popover">popover</code>
83177
- attribute is in the <span data-x="attr-popover-auto-state">auto</span> state.</p></li>
83178
-
83179
- <li><p>Let <var>repeatingHide</var> be false.</p></li>
83211
+ attribute is not in the <span data-x="attr-popover-manual-state">manual</span> state.</p></li>
83180
83212
83181
83213
<li>
83182
- <p>Perform the following steps at least once:</p>
83214
+ <p>If <var>endpoint</var>'s <code data-x="attr-popover">popover</code> attribute is in the
83215
+ <span data-x="attr-popover-hint-state">hint</span> state, then:</p>
83183
83216
83184
83217
<ol>
83185
- <li><p>Let <var>lastToHide</var> be null.</p></li>
83186
-
83187
- <li><p>Let <var>foundEndpoint</var> be false.</p></li>
83188
-
83189
83218
<li>
83190
- <p>For each <var>popover </var> in <var>document</var>'s <span>auto popover list</span> :</p>
83219
+ <p>If <var>hideUnrelatedPopovers </var> is true, then :</p>
83191
83220
83192
83221
<ol>
83193
- <li><p>If <var>popover</var> is <var>endpoint</var>, then set <var>foundEndpoint</var> to
83194
- true.</p></li>
83195
-
83196
- <li><p>Otherwise, if <var>foundEndpoint</var> is true, then set <var>lastToHide</var> to
83197
- <var>popover</var> and <span>break</span>.</p></li>
83222
+ <li><p>If <var>document</var>'s <span>showing hint popover</span> is not null and
83223
+ <var>document</var>'s <span>showing hint popover</span> is not <var>endpoint</var>, then run
83224
+ the <span>hide popover algorithm</span> given <var>focusPreviousElement</var>,
83225
+ <var>fireEvents</var>, and <var>throwExceptions</var>.</p></li>
83226
+
83227
+ <li><p>While <var>document</var>'s <span>auto popover list</span> is not empty, run the
83228
+ <span>hide popover algorithm</span> given <var>focusPreviousElement</var>,
83229
+ <var>fireEvents</var>, and <var>throwExceptions</var>.</p></li>
83198
83230
</ol>
83199
83231
</li>
83232
+ </ol>
83233
+ </li>
83200
83234
83201
- <li><p>If <var>foundEndpoint</var> is false, then run <var>closeAllOpenPopovers</var> and
83202
- return.</p></li>
83235
+ <li>
83236
+ <p>Otherwise:</p>
83237
+
83238
+ <ol>
83239
+ <li><p>Let <var>repeatingHide</var> be false.</p></li>
83203
83240
83204
83241
<li>
83205
- <p>While <var>lastToHide</var> is not null and <var>lastToHide</var>'s <span>popover
83206
- visibility state</span> is <span data-x="popover-showing-state">showing</span> and
83207
- <var>document</var>'s <span>auto popover list</span> is not empty:</p>
83242
+ <p>Perform the following steps at least once:</p>
83208
83243
83209
83244
<ol>
83210
- <li><p>Run the <span>hide popover algorithm</span> given <var>document</var>'s <span>auto
83211
- popover list</span>'s last element, <var>focusPreviousElement</var>, <var>fireEvents</var>,
83212
- and false.</p></li>
83213
- </ol>
83214
- </li>
83245
+ <li><p>Let <var>lastToHide</var> be null.</p></li>
83215
83246
83216
- <li><p>Set <var>repeatingHide</var> to true if <var>document</var>'s <span>auto popover
83217
- list</span> contains <var>endpoint</var> and <var>document</var>'s <span>auto popover
83218
- list</span>'s last element is not <var>endpoint</var>, otherwise false.</p></li>
83247
+ <li><p>Let <var>foundEndpoint</var> be false.</p></li>
83219
83248
83220
- <li><p>If <var>repeatingHide</var> is true, then set <var>fireEvents</var> to false.</p></ li>
83221
- </ol >
83249
+ < li>
83250
+ <p>For each <var>popover</var> in <var>document</var>'s <span>auto popover list</span>:</p >
83222
83251
83223
- <p>and keep performing them <span>while</span> <var>repeatingHide</var> is true.</p>
83252
+ <ol>
83253
+ <li><p>If <var>popover</var> is <var>endpoint</var>, then set <var>foundEndpoint</var> to
83254
+ true.</p></li>
83255
+
83256
+ <li><p>Otherwise, if <var>foundEndpoint</var> is true, then set <var>lastToHide</var> to
83257
+ <var>popover</var> and <span>break</span>.</p></li>
83258
+ </ol>
83259
+ </li>
83260
+
83261
+ <li><p>If <var>foundEndpoint</var> is false, then run <var>closeAllOpenPopovers</var> and
83262
+ return.</p></li>
83263
+
83264
+ <li>
83265
+ <p>While <var>lastToHide</var> is not null and <var>lastToHide</var>'s <span>popover
83266
+ visibility state</span> is <span data-x="popover-showing-state">showing</span> and
83267
+ <var>document</var>'s <span>auto popover list</span> is not empty:</p>
83268
+
83269
+ <ol>
83270
+ <li><p>Run the <span>hide popover algorithm</span> given <var>document</var>'s <span>auto
83271
+ popover list</span>'s last element, <var>focusPreviousElement</var>, <var>fireEvents</var>,
83272
+ and false.</p></li>
83273
+ </ol>
83274
+ </li>
83275
+
83276
+ <li><p>Set <var>repeatingHide</var> to true if <var>document</var>'s <span>auto popover
83277
+ list</span> contains <var>endpoint</var> and <var>document</var>'s <span>auto popover
83278
+ list</span>'s last element is not <var>endpoint</var>, otherwise false.</p></li>
83279
+
83280
+ <li><p>If <var>repeatingHide</var> is true, then set <var>fireEvents</var> to false.</p></li>
83281
+ </ol>
83282
+
83283
+ <p>and keep performing them <span>while</span> <var>repeatingHide</var> is true.</p>
83284
+ </li>
83285
+ </ol>
83224
83286
</li>
83225
83287
</ol>
83226
83288
@@ -83231,7 +83293,7 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83231
83293
83232
83294
<p>To <dfn export>hide all popovers</dfn>, given a <code>Document</code> <var>document</var>, run
83233
83295
<span data-x="hide-all-popovers-until">hide all popovers until</span> given <var>document</var>,
83234
- false, and false .</p>
83296
+ false, false, and true .</p>
83235
83297
83236
83298
<p>To find the <dfn>topmost popover ancestor</dfn>, given a <code>Node</code>
83237
83299
<var>newPopover</var>, and an <span data-x="HTML elements">HTML element</span> or null
@@ -83659,7 +83721,7 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
83659
83721
<var>document</var>.</p></li>
83660
83722
83661
83723
<li><p>If <var>sameTarget</var> is true, then run <span data-x="hide-all-popovers-until">hide
83662
- all popovers until</span> given <var>ancestor</var>, false, and true.</p></li>
83724
+ all popovers until</span> given <var>ancestor</var>, false, true, and true.</p></li>
83663
83725
</ol>
83664
83726
</li>
83665
83727
</ol>
0 commit comments