summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/interfaces/css-toggle.tentative.idl
blob: 5587019a290c2b90d0e46c05acf557916fb7db20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
partial interface Element {
  [SameObject] readonly attribute CSSToggleMap toggles;
};

interface CSSToggleMap {
  maplike<DOMString, CSSToggle>;
  CSSToggleMap set(DOMString key, CSSToggle value);
};

interface CSSToggle {
  attribute (unsigned long or DOMString) value;
  attribute unsigned long? valueAsNumber;
  attribute DOMString? valueAsString;

  attribute (unsigned long or FrozenArray<DOMString>) states;
  attribute boolean group;
  attribute CSSToggleScope scope;
  attribute CSSToggleCycle cycle;

  constructor(optional CSSToggleData options);
};

dictionary CSSToggleData {
  (unsigned long or DOMString) value = 0;
  (unsigned long or sequence<DOMString>) states = 1;
  boolean group = false;
  CSSToggleScope scope = "wide";
  CSSToggleCycle cycle = "cycle";
};

enum CSSToggleScope {
  "narrow",
  "wide",
};

enum CSSToggleCycle {
  "cycle",
  "cycle-on",
  "sticky",
};

interface CSSToggleEvent : Event {
  constructor(DOMString type, optional CSSToggleEventInit eventInitDict = {});
  readonly attribute DOMString toggleName;
  readonly attribute CSSToggle? toggle;
};

dictionary CSSToggleEventInit : EventInit {
  DOMString toggleName = "";
  CSSToggle? toggle = null;
};