@react-x11/components 0.12.0 → 0.14.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 (150) hide show
  1. package/dist/html/controls.d.ts +41 -5
  2. package/dist/html/controls.d.ts.map +1 -1
  3. package/dist/html/controls.js +85 -57
  4. package/dist/html/controls.js.map +1 -1
  5. package/dist/html/css/cascade.d.ts +134 -20
  6. package/dist/html/css/cascade.d.ts.map +1 -1
  7. package/dist/html/css/cascade.js +545 -126
  8. package/dist/html/css/cascade.js.map +1 -1
  9. package/dist/html/css/color.d.ts +18 -0
  10. package/dist/html/css/color.d.ts.map +1 -1
  11. package/dist/html/css/color.js +27 -0
  12. package/dist/html/css/color.js.map +1 -1
  13. package/dist/html/css/parse.d.ts +47 -6
  14. package/dist/html/css/parse.d.ts.map +1 -1
  15. package/dist/html/css/parse.js +336 -30
  16. package/dist/html/css/parse.js.map +1 -1
  17. package/dist/html/css/style.d.ts +142 -15
  18. package/dist/html/css/style.d.ts.map +1 -1
  19. package/dist/html/css/style.js +563 -147
  20. package/dist/html/css/style.js.map +1 -1
  21. package/dist/html/css/transform.d.ts +85 -0
  22. package/dist/html/css/transform.d.ts.map +1 -0
  23. package/dist/html/css/transform.js +425 -0
  24. package/dist/html/css/transform.js.map +1 -0
  25. package/dist/html/css/ua.d.ts +11 -1
  26. package/dist/html/css/ua.d.ts.map +1 -1
  27. package/dist/html/css/ua.js +73 -9
  28. package/dist/html/css/ua.js.map +1 -1
  29. package/dist/html/css/values.d.ts +4 -0
  30. package/dist/html/css/values.d.ts.map +1 -1
  31. package/dist/html/css/values.js.map +1 -1
  32. package/dist/html/dom.d.ts.map +1 -1
  33. package/dist/html/dom.js +3 -1
  34. package/dist/html/dom.js.map +1 -1
  35. package/dist/html/fonts.d.ts +78 -4
  36. package/dist/html/fonts.d.ts.map +1 -1
  37. package/dist/html/fonts.js +373 -19
  38. package/dist/html/fonts.js.map +1 -1
  39. package/dist/html/form.d.ts +200 -0
  40. package/dist/html/form.d.ts.map +1 -0
  41. package/dist/html/form.js +801 -0
  42. package/dist/html/form.js.map +1 -0
  43. package/dist/html/index.d.ts +12 -0
  44. package/dist/html/index.d.ts.map +1 -1
  45. package/dist/html/index.js +30 -301
  46. package/dist/html/index.js.map +1 -1
  47. package/dist/html/layout/axes.d.ts +14 -0
  48. package/dist/html/layout/axes.d.ts.map +1 -0
  49. package/dist/html/layout/axes.js +28 -0
  50. package/dist/html/layout/axes.js.map +1 -0
  51. package/dist/html/layout/block.d.ts +93 -12
  52. package/dist/html/layout/block.d.ts.map +1 -1
  53. package/dist/html/layout/block.js +393 -39
  54. package/dist/html/layout/block.js.map +1 -1
  55. package/dist/html/layout/boxes.d.ts +90 -2
  56. package/dist/html/layout/boxes.d.ts.map +1 -1
  57. package/dist/html/layout/boxes.js +74 -10
  58. package/dist/html/layout/boxes.js.map +1 -1
  59. package/dist/html/layout/cache.d.ts +1 -1
  60. package/dist/html/layout/cache.d.ts.map +1 -1
  61. package/dist/html/layout/cache.js +6 -0
  62. package/dist/html/layout/cache.js.map +1 -1
  63. package/dist/html/layout/css-grid.d.ts.map +1 -1
  64. package/dist/html/layout/css-grid.js +90 -18
  65. package/dist/html/layout/css-grid.js.map +1 -1
  66. package/dist/html/layout/flex.d.ts.map +1 -1
  67. package/dist/html/layout/flex.js +574 -84
  68. package/dist/html/layout/flex.js.map +1 -1
  69. package/dist/html/layout/inline.d.ts +3 -0
  70. package/dist/html/layout/inline.d.ts.map +1 -1
  71. package/dist/html/layout/inline.js +154 -54
  72. package/dist/html/layout/inline.js.map +1 -1
  73. package/dist/html/layout/multicol.d.ts +42 -0
  74. package/dist/html/layout/multicol.d.ts.map +1 -0
  75. package/dist/html/layout/multicol.js +897 -0
  76. package/dist/html/layout/multicol.js.map +1 -0
  77. package/dist/html/layout/shaping.d.ts +7 -0
  78. package/dist/html/layout/shaping.d.ts.map +1 -1
  79. package/dist/html/layout/shaping.js +25 -20
  80. package/dist/html/layout/shaping.js.map +1 -1
  81. package/dist/html/layout/table.d.ts.map +1 -1
  82. package/dist/html/layout/table.js +62 -18
  83. package/dist/html/layout/table.js.map +1 -1
  84. package/dist/html/node.d.ts +90 -15
  85. package/dist/html/node.d.ts.map +1 -1
  86. package/dist/html/node.js +771 -186
  87. package/dist/html/node.js.map +1 -1
  88. package/dist/html/paint.d.ts +101 -5
  89. package/dist/html/paint.d.ts.map +1 -1
  90. package/dist/html/paint.js +1502 -160
  91. package/dist/html/paint.js.map +1 -1
  92. package/dist/html/svg.d.ts +15 -2
  93. package/dist/html/svg.d.ts.map +1 -1
  94. package/dist/html/svg.js +249 -17
  95. package/dist/html/svg.js.map +1 -1
  96. package/dist/html/widgets.d.ts +29 -0
  97. package/dist/html/widgets.d.ts.map +1 -0
  98. package/dist/html/widgets.js +700 -0
  99. package/dist/html/widgets.js.map +1 -0
  100. package/dist/html/woff2.d.ts +14 -0
  101. package/dist/html/woff2.d.ts.map +1 -0
  102. package/dist/html/woff2.js +608 -0
  103. package/dist/html/woff2.js.map +1 -0
  104. package/dist/index.d.ts +1 -1
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js.map +1 -1
  107. package/dist/maps/controller.d.ts +17 -1
  108. package/dist/maps/controller.d.ts.map +1 -1
  109. package/dist/maps/controller.js +27 -7
  110. package/dist/maps/controller.js.map +1 -1
  111. package/dist/richtext/node.d.ts +8 -1
  112. package/dist/richtext/node.d.ts.map +1 -1
  113. package/dist/richtext/node.js +5 -1
  114. package/dist/richtext/node.js.map +1 -1
  115. package/dist/richtext/runs.d.ts +25 -6
  116. package/dist/richtext/runs.d.ts.map +1 -1
  117. package/dist/richtext/runs.js +240 -24
  118. package/dist/richtext/runs.js.map +1 -1
  119. package/package.json +2 -2
  120. package/src/html/controls.ts +114 -51
  121. package/src/html/css/cascade.ts +614 -140
  122. package/src/html/css/color.ts +29 -0
  123. package/src/html/css/parse.ts +388 -33
  124. package/src/html/css/style.ts +688 -150
  125. package/src/html/css/transform.ts +459 -0
  126. package/src/html/css/ua.ts +77 -10
  127. package/src/html/css/values.ts +4 -0
  128. package/src/html/dom.ts +3 -1
  129. package/src/html/fonts.ts +417 -24
  130. package/src/html/form.ts +962 -0
  131. package/src/html/index.ts +49 -338
  132. package/src/html/layout/axes.ts +62 -0
  133. package/src/html/layout/block.ts +447 -37
  134. package/src/html/layout/boxes.ts +143 -14
  135. package/src/html/layout/cache.ts +6 -0
  136. package/src/html/layout/css-grid.ts +95 -22
  137. package/src/html/layout/flex.ts +675 -78
  138. package/src/html/layout/inline.ts +159 -55
  139. package/src/html/layout/multicol.ts +977 -0
  140. package/src/html/layout/shaping.ts +27 -18
  141. package/src/html/layout/table.ts +62 -19
  142. package/src/html/node.ts +798 -172
  143. package/src/html/paint.ts +1742 -241
  144. package/src/html/svg.ts +277 -19
  145. package/src/html/widgets.ts +821 -0
  146. package/src/html/woff2.ts +612 -0
  147. package/src/index.ts +1 -0
  148. package/src/maps/controller.ts +28 -7
  149. package/src/richtext/node.ts +13 -2
  150. package/src/richtext/runs.ts +313 -35
@@ -0,0 +1,200 @@
1
+ import type { AnyNode, Element } from 'domhandler';
2
+ export type FormMethod = 'get' | 'post';
3
+ export type FormEnctype = 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain';
4
+ /** A form, submitted: everything a host needs to make the request. */
5
+ export interface FormSubmission {
6
+ /** The `<form>`. */
7
+ form: Element;
8
+ /**
9
+ * The button that submitted it — a submit `<button>`, an `<input
10
+ * type=submit>` or an `<input type=image>` — or null for Enter in a form
11
+ * that has none.
12
+ */
13
+ submitter: Element | null;
14
+ method: FormMethod;
15
+ /**
16
+ * Where the request goes: the action, resolved against the document's
17
+ * base, and for a GET with the entries as its query — so a GET is a link
18
+ * to exactly this.
19
+ */
20
+ url: string;
21
+ enctype: FormEnctype;
22
+ /** The name–value pairs the form carries, in tree order, unencoded. A
23
+ * file field's value is the name of its file: always empty here. */
24
+ entries: [name: string, value: string][];
25
+ /** A POST's body, encoded as `enctype` says; null for a GET. */
26
+ body: string | null;
27
+ /** The `Content-Type` a POST's body goes with — `multipart/form-data`'s
28
+ * names its boundary; null for a GET. */
29
+ contentType: string | null;
30
+ /**
31
+ * The browsing context it asked for: `formtarget` on the button, `target`
32
+ * on the form, or `<base target>`. `'_blank'` is a new one; empty is the
33
+ * one the document is in.
34
+ */
35
+ target: string;
36
+ }
37
+ /** Where a submission's relative URLs resolve, and the document it leaves. */
38
+ export interface SubmitContext {
39
+ /** What the document's relative URLs resolve against: its `<base href>`,
40
+ * or the URL it came from. */
41
+ base: string | null;
42
+ /** The URL the document came from — an empty `action` is it (HTML
43
+ * 4.10.21.3, step 11), not its base. Defaults to `base`. */
44
+ documentUrl?: string | null;
45
+ /** What a text control holds now, where that is not what its markup
46
+ * says: typed text. `undefined` is "what the markup says". */
47
+ live?: (el: Element) => string | undefined;
48
+ /** Where an `<input type=image>` submitter was pressed, in CSS pixels
49
+ * from its top left. */
50
+ point?: {
51
+ x: number;
52
+ y: number;
53
+ };
54
+ /** `multipart/form-data`'s boundary. Made up when absent; a test pins it. */
55
+ boundary?: string;
56
+ }
57
+ /** An `<input>`'s type state: its `type`, lowercased, or `text` where it
58
+ * names none HTML knows. */
59
+ export declare function inputType(el: Element): string;
60
+ /**
61
+ * What pressing a control does: submits its form, resets it, nothing
62
+ * (`'button'`) — or null for something that is not a button at all. A
63
+ * `<button>` with no `type`, or one HTML does not know, submits.
64
+ */
65
+ export declare function buttonType(el: Element): 'submit' | 'reset' | 'button' | null;
66
+ /** The top of the tree an element is in: its document. */
67
+ export declare function rootOf(el: AnyNode): AnyNode;
68
+ /**
69
+ * The form a control belongs to (HTML 4.10.17.3): the one its `form`
70
+ * attribute names by id, or else the nearest `<form>` around it. A `form`
71
+ * attribute that names nothing, or names something that is not a form,
72
+ * leaves it with none — it does not fall back to the form around it.
73
+ */
74
+ export declare function formOwner(el: Element, root?: AnyNode): Element | null;
75
+ /**
76
+ * The submittable controls a form owns, in tree order — those inside it and
77
+ * those elsewhere that name it with `form`. Not those in a `<template>`,
78
+ * whose content is inert, or a `<datalist>`, whose are its suggestions.
79
+ */
80
+ export declare function controlsOf(form: Element): Element[];
81
+ /**
82
+ * Whether a control is disabled (HTML 4.10.18.5): by its own `disabled`, or
83
+ * by a disabled `<fieldset>` around it — except inside that fieldset's first
84
+ * `<legend>`, which stays live, so a checkbox there can switch the rest on.
85
+ */
86
+ export declare function isDisabled(el: Element): boolean;
87
+ /** A `<select>`'s `<option>`s, in tree order, through its `<optgroup>`s. */
88
+ export declare function optionElements(select: Element): Element[];
89
+ /** An option's text, its white space collapsed, as HTML's `text` IDL
90
+ * attribute reads it. */
91
+ export declare function optionLabel(option: Element): string;
92
+ /** An option's value: its `value`, or else its text. */
93
+ export declare function optionValue(option: Element): string;
94
+ /** Whether a `<select>` is a list box that takes many options. */
95
+ export declare function isMultiple(select: Element): boolean;
96
+ /**
97
+ * The options a `<select>` has selected. A drop-down one has exactly one
98
+ * where it has any: the last marked `selected`, as the parser leaves it, or
99
+ * else the first that is not disabled (HTML 4.10.7, "selectedness setting").
100
+ * A `multiple` one has those marked, and no default.
101
+ */
102
+ export declare function selectedOptions(select: Element): Element[];
103
+ /** A `<textarea>`'s text as its markup has it — HTML drops one newline
104
+ * straight after the open tag, so a pretty-printed one does not start on
105
+ * a blank line. */
106
+ export declare function textareaDefault(el: Element): string;
107
+ /**
108
+ * What a text control holds: typed text where there is some, and else its
109
+ * markup's — a `<textarea>`'s content, an `<input>`'s `value` — put through
110
+ * the type's value sanitization (HTML 4.10.5.1): a single-line field holds no
111
+ * line breaks, an email or a URL no white space at its ends, and a number
112
+ * field nothing that is not a number.
113
+ */
114
+ export declare function controlValue(el: Element, live?: (el: Element) => string | undefined): string;
115
+ /** The entries as `application/x-www-form-urlencoded`: a query string, and
116
+ * a POST body of that type. */
117
+ export declare function urlencoded(entries: readonly [string, string][]): string;
118
+ /** The entries as `text/plain`: a line each, `name=value`, unescaped. */
119
+ export declare function plainText(entries: readonly [string, string][]): string;
120
+ /**
121
+ * A form's submission by `submitter` (HTML 4.10.21.3): its entries, and the
122
+ * request they make. The button's `formaction`, `formmethod`, `formenctype`
123
+ * and `formtarget` win over the form's own. Null for `method="dialog"`,
124
+ * which closes a dialog rather than submitting anything, and for a
125
+ * submitter the form does not own.
126
+ */
127
+ export declare function formSubmission(form: Element, submitter: Element | null, context: SubmitContext): FormSubmission | null;
128
+ /**
129
+ * What Enter in a field submits (HTML 4.10.21.2, "implicit submission"): its
130
+ * form, by the form's default button — the first submit button it owns —
131
+ * or, where it has none, by no button at all, so long as the form has at
132
+ * most one field of the kinds that would make Enter ambiguous. Null where
133
+ * Enter submits nothing: no form, a disabled default button, or a form of
134
+ * several fields and no button.
135
+ */
136
+ export declare function implicitSubmission(field: Element): {
137
+ form: Element;
138
+ submitter: Element | null;
139
+ } | null;
140
+ /**
141
+ * The control a `<label>` is for (HTML 4.10.4): the one its `for` names by
142
+ * id, where that is one a label can label, or else the first such control
143
+ * inside it. A press on the label is a press on that control.
144
+ */
145
+ export declare function labeledControl(label: Element): Element | null;
146
+ /**
147
+ * What is wrong with a control's value, in the words a browser uses, or
148
+ * null where nothing is: the constraints a static document can state —
149
+ * `required`, `minlength` and `maxlength`, `pattern`, `min` and `max`, and
150
+ * an email, a URL or a number that is not one (HTML 4.10.20). A length is
151
+ * checked only once the value has been typed, as HTML checks it; a
152
+ * document's own value is the author's to get right.
153
+ */
154
+ export declare function validationMessage(el: Element, live?: (el: Element) => string | undefined): string | null;
155
+ /**
156
+ * The first control a submission would be refused over, and why — HTML's
157
+ * interactive validation (4.10.21.3), which a form's `novalidate` or its
158
+ * submitter's `formnovalidate` turns off. Null where the form may go.
159
+ */
160
+ export declare function firstInvalid(form: Element, submitter: Element | null, live?: (el: Element) => string | undefined): {
161
+ element: Element;
162
+ message: string;
163
+ } | null;
164
+ /**
165
+ * What a document's controls hold that its markup does not, and what their
166
+ * markup said before. One per `<Html>`, keyed by element, so a re-parse —
167
+ * new elements — starts clean.
168
+ *
169
+ * Typed text lives here rather than in the DOM because HTML's `value`
170
+ * attribute is the field's *default*: it is what a reset puts back, and
171
+ * what a `<textarea>` has is its content, which is not an attribute at all.
172
+ * A checkbox, a radio and a `<select>` do keep what they hold in the DOM —
173
+ * `checked` and `selected` — because `:checked` is a selector documents
174
+ * really use and it reads those; so for them this keeps the markup's
175
+ * attributes, from before the first change, for a reset.
176
+ */
177
+ export declare class FormState {
178
+ private _typed;
179
+ private _markup;
180
+ /** Typed text, where the field has any — the `live` a submission reads. */
181
+ typed(el: Element): string | undefined;
182
+ /** What a text control holds now: typed, or its markup's. */
183
+ value(el: Element): string;
184
+ setTyped(el: Element, text: string): void;
185
+ /** Keep what `el`'s markup says, before a change to its attributes. */
186
+ remember(el: Element): void;
187
+ /**
188
+ * Put every control `form` owns back as its markup had it (HTML 4.10.21.5,
189
+ * "reset"). True when anything changed — the widgets then mount again, to
190
+ * show it.
191
+ */
192
+ reset(form: Element): boolean;
193
+ }
194
+ /**
195
+ * The other radios in `radio`'s group (HTML 4.10.5.1.18): the inputs of type
196
+ * radio with the same name, in the same form — or, for one in no form, in
197
+ * no form either. Checking one unchecks these.
198
+ */
199
+ export declare function radioGroup(radio: Element): Element[];
200
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../src/html/form.ts"],"names":[],"mappings":"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"}