Add interfaces/css-layout-api.idl (#12912)
Source: https://github.com/tidoust/reffy-reports/blob/398ec92/whatwg/idl/css-layout-api.idl
Build: https://travis-ci.org/tidoust/reffy-reports/builds/423853333
diff --git a/interfaces/css-layout-api.idl b/interfaces/css-layout-api.idl
new file mode 100644
index 0000000..4e26599
--- /dev/null
+++ b/interfaces/css-layout-api.idl
@@ -0,0 +1,160 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into reffy-reports
+// (https://github.com/tidoust/reffy-reports)
+// Source: CSS Layout API Level 1 (https://drafts.css-houdini.org/css-layout-api-1/)
+
+[Exposed=LayoutWorklet]
+interface LayoutChild {
+ readonly attribute StylePropertyMapReadOnly styleMap;
+
+ IntrinsicSizesRequest intrinsicSizes();
+ LayoutFragmentRequest layoutNextFragment(LayoutConstraints constraints, ChildBreakToken breakToken);
+};
+
+[Exposed=LayoutWorklet]
+interface LayoutFragment {
+ readonly attribute double inlineSize;
+ readonly attribute double blockSize;
+
+ attribute double inlineOffset;
+ attribute double blockOffset;
+
+ readonly attribute any data;
+
+ readonly attribute ChildBreakToken? breakToken;
+};
+
+[Exposed=LayoutWorklet]
+interface IntrinsicSizes {
+ readonly attribute double minContentSize;
+ readonly attribute double maxContentSize;
+};
+
+[Constructor(optional LayoutConstraintsOptions options),Exposed=LayoutWorklet]
+interface LayoutConstraints {
+ readonly attribute double availableInlineSize;
+ readonly attribute double availableBlockSize;
+
+ readonly attribute double? fixedInlineSize;
+ readonly attribute double? fixedBlockSize;
+
+ readonly attribute double percentageInlineSize;
+ readonly attribute double percentageBlockSize;
+
+ readonly attribute double? blockFragmentationOffset;
+ readonly attribute BlockFragmentationType blockFragmentationType;
+
+ readonly attribute any data;
+};
+
+dictionary LayoutConstraintsOptions {
+ double availableInlineSize = 0;
+ double availableBlockSize = 0;
+
+ double fixedInlineSize;
+ double fixedBlockSize;
+
+ double percentageInlineSize;
+ double percentageBlockSize;
+
+ double blockFragmentationOffset;
+ BlockFragmentationType blockFragmentationType = "none";
+
+ any data;
+};
+
+enum BlockFragmentationType { "none", "page", "column", "region" };
+
+[Exposed=LayoutWorklet]
+interface ChildBreakToken {
+ readonly attribute BreakType breakType;
+ readonly attribute LayoutChild child;
+};
+
+[Exposed=LayoutWorklet]
+interface BreakToken {
+ readonly attribute FrozenArray<ChildBreakToken> childBreakTokens;
+ readonly attribute any data;
+};
+
+dictionary BreakTokenOptions {
+ sequence<ChildBreakToken> childBreakTokens;
+ any data = null;
+};
+
+enum BreakType { "none", "line", "column", "page", "region" };
+
+[Exposed=LayoutWorklet]
+interface LayoutEdgeSizes {
+ readonly attribute double inlineStart;
+ readonly attribute double inlineEnd;
+
+ readonly attribute double blockStart;
+ readonly attribute double blockEnd;
+
+ // Convenience attributes for the sum in one direction.
+ readonly attribute double inline;
+ readonly attribute double block;
+};
+
+[Exposed=LayoutWorklet]
+interface LayoutEdges {
+ readonly attribute LayoutEdgeSizes border;
+ readonly attribute LayoutEdgeSizes scrollbar;
+ readonly attribute LayoutEdgeSizes padding;
+
+ readonly attribute LayoutEdgeSizes all;
+};
+
+partial namespace CSS {
+ [SameObject] readonly attribute Worklet layoutWorklet;
+};
+
+[Global=(Worklet,LayoutWorklet),Exposed=LayoutWorklet]
+interface LayoutWorkletGlobalScope : WorkletGlobalScope {
+ void registerLayout(DOMString name, VoidFunction layoutCtor);
+};
+
+[Exposed=LayoutWorklet]
+dictionary LayoutOptions {
+ ChildDisplayType childDisplay = "block";
+ LayoutSizingMode sizing = "block-like";
+};
+
+[Exposed=LayoutWorklet]
+enum ChildDisplayType {
+ "block",
+ "normal",
+};
+
+[Exposed=LayoutWorklet]
+enum LayoutSizingMode {
+ "block-like",
+ "manual",
+};
+
+[Exposed=LayoutWorklet]
+interface IntrinsicSizesRequest {
+};
+
+[Exposed=LayoutWorklet]
+interface LayoutFragmentRequest {
+};
+
+typedef (IntrinsicSizesRequest or LayoutFragmentRequest)
+ LayoutFragmentRequestOrIntrinsicSizesRequest;
+
+// This is the final return value from the author defined layout() method.
+dictionary FragmentResultOptions {
+ double inlineSize = 0;
+ double blockSize = 0;
+ double autoBlockSize = 0;
+ sequence<LayoutFragment> childFragments = [];
+ any data = null;
+ BreakTokenOptions breakToken = null;
+};
+
+dictionary IntrinsicSizesResultOptions {
+ double maxContentSize;
+ double minContentSize;
+};