@vielzeug/codex 26.11.3 → 26.11.5
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.
- package/data/catalog.json +47 -45
- package/data/llms-full.txt +82 -5
- package/data/llms.txt +1 -1
- package/data/manifest.json +1 -1
- package/data/packages/assay.json +2 -1
- package/data/packages/necromancer.json +5 -1
- package/data/packages/refine.json +3 -3
- package/data/refine.json +806 -124
- package/data/search.json +6 -6
- package/package.json +2 -2
package/data/refine.json
CHANGED
|
@@ -129,6 +129,224 @@
|
|
|
129
129
|
],
|
|
130
130
|
"description": "Creates a document theme controller. Call once at app startup."
|
|
131
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"kind": "variable",
|
|
134
|
+
"name": "UI_BLUEPRINT_VERSION",
|
|
135
|
+
"type": {
|
|
136
|
+
"text": "1"
|
|
137
|
+
},
|
|
138
|
+
"default": "1",
|
|
139
|
+
"description": "Registry contract version. Bump only together with a documented migration."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"kind": "variable",
|
|
143
|
+
"name": "MAX_BLUEPRINT_NODES",
|
|
144
|
+
"type": {
|
|
145
|
+
"text": "number"
|
|
146
|
+
},
|
|
147
|
+
"default": "64",
|
|
148
|
+
"description": "Maximum total nodes in one document, including the root."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"kind": "variable",
|
|
152
|
+
"name": "MAX_BLUEPRINT_DEPTH",
|
|
153
|
+
"type": {
|
|
154
|
+
"text": "number"
|
|
155
|
+
},
|
|
156
|
+
"default": "6",
|
|
157
|
+
"description": "Maximum nesting depth, counting the root node as depth 1."
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"kind": "variable",
|
|
161
|
+
"name": "MAX_BLUEPRINT_CHILDREN",
|
|
162
|
+
"type": {
|
|
163
|
+
"text": "number"
|
|
164
|
+
},
|
|
165
|
+
"default": "12",
|
|
166
|
+
"description": "Maximum children on one container node. Matches the widest `ore-grid` column count."
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"kind": "variable",
|
|
170
|
+
"name": "MAX_BLUEPRINT_TEXT_LENGTH",
|
|
171
|
+
"type": {
|
|
172
|
+
"text": "number"
|
|
173
|
+
},
|
|
174
|
+
"default": "500",
|
|
175
|
+
"description": "Maximum length of rendered body text."
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"kind": "variable",
|
|
179
|
+
"name": "MAX_BLUEPRINT_LABEL_LENGTH",
|
|
180
|
+
"type": {
|
|
181
|
+
"text": "number"
|
|
182
|
+
},
|
|
183
|
+
"default": "120",
|
|
184
|
+
"description": "Maximum length of a short label (button, field label, helper text)."
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"kind": "variable",
|
|
188
|
+
"name": "MAX_BLUEPRINT_NUMBER",
|
|
189
|
+
"type": {
|
|
190
|
+
"text": "number"
|
|
191
|
+
},
|
|
192
|
+
"default": "1_000_000_000",
|
|
193
|
+
"description": "Default absolute ceiling for numeric fields; individual fields tighten it where needed."
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"kind": "variable",
|
|
197
|
+
"name": "MAX_BLUEPRINT_ID_LENGTH",
|
|
198
|
+
"type": {
|
|
199
|
+
"text": "number"
|
|
200
|
+
},
|
|
201
|
+
"default": "64",
|
|
202
|
+
"description": "Maximum length of a host-facing node identifier."
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"kind": "variable",
|
|
206
|
+
"name": "UI_BLUEPRINT_COMPONENTS",
|
|
207
|
+
"default": "[ 'text', 'box', 'card', 'button', 'badge', 'separator', 'slider', 'switch', 'checkbox', 'number-input', 'alert', 'progress', 'icon', ] as const satisfies readonly BlueprintNode['type'][]",
|
|
208
|
+
"description": "Registry component identifiers. The only names a document may use."
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"kind": "class",
|
|
212
|
+
"description": "Thrown for a document this contract rejects. Messages are safe to display.",
|
|
213
|
+
"name": "UiBlueprintError",
|
|
214
|
+
"members": [
|
|
215
|
+
{
|
|
216
|
+
"kind": "field",
|
|
217
|
+
"name": "issues",
|
|
218
|
+
"type": {
|
|
219
|
+
"text": "readonly string[]"
|
|
220
|
+
},
|
|
221
|
+
"readonly": true,
|
|
222
|
+
"description": "Every rejection, in document order. Each entry is a field path plus a plain reason."
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"kind": "field",
|
|
226
|
+
"name": "name",
|
|
227
|
+
"inheritedFrom": {
|
|
228
|
+
"name": "RefineError",
|
|
229
|
+
"module": "src/errors.ts"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
],
|
|
233
|
+
"superclass": {
|
|
234
|
+
"name": "RefineError",
|
|
235
|
+
"module": "/src/errors"
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"kind": "variable",
|
|
240
|
+
"name": "UI_BLUEPRINT_REGISTRY",
|
|
241
|
+
"type": {
|
|
242
|
+
"text": "Readonly<Record<BlueprintNode['type'], UiBlueprintComponentRule>>"
|
|
243
|
+
},
|
|
244
|
+
"description": "The registry as data: for each accepted component, the element it renders, whether it takes\nchildren, and the exact values each attribute accepts.\n\nPublish it to a harness alongside UI_BLUEPRINT_JSON_SCHEMA when a prompt needs prose\nrather than a schema. Runtime validation remains the trust boundary."
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"kind": "function",
|
|
248
|
+
"name": "parseUiBlueprint",
|
|
249
|
+
"return": {
|
|
250
|
+
"type": {
|
|
251
|
+
"text": "BlueprintDocument"
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
"parameters": [
|
|
255
|
+
{
|
|
256
|
+
"name": "value",
|
|
257
|
+
"type": {
|
|
258
|
+
"text": "unknown"
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"description": "Validate untrusted model output. Returns the document unchanged when it satisfies the\ncontract, or a UiBlueprintError listing every rejection with a field path. Nothing is\nrepaired, defaulted, or partially accepted."
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"kind": "function",
|
|
266
|
+
"name": "safeParseUiBlueprint",
|
|
267
|
+
"return": {
|
|
268
|
+
"type": {
|
|
269
|
+
"text": "{ document: BlueprintDocument; success: true } | { issues: readonly string[]; success: false }"
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
"parameters": [
|
|
273
|
+
{
|
|
274
|
+
"name": "value",
|
|
275
|
+
"type": {
|
|
276
|
+
"text": "unknown"
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
],
|
|
280
|
+
"description": "Non-throwing form of parseUiBlueprint."
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"kind": "variable",
|
|
284
|
+
"name": "UI_BLUEPRINT_JSON_SCHEMA",
|
|
285
|
+
"type": {
|
|
286
|
+
"text": "Readonly<Record<string, unknown>>"
|
|
287
|
+
},
|
|
288
|
+
"description": "JSON Schema (draft 2020-12 vocabulary) for the same contract parseUiBlueprint\nenforces. Hand it to a harness that supports structured output or tool-use schemas so the\nmodel is constrained on the way out, not only on the way in.\n\nIt cannot express the tree-wide node and depth bounds, which is why runtime validation stays\nmandatory: treat this as a generation aid, never as the trust boundary."
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"kind": "function",
|
|
292
|
+
"name": "createUiBlueprintElement",
|
|
293
|
+
"return": {
|
|
294
|
+
"type": {
|
|
295
|
+
"text": "HTMLElement"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"parameters": [
|
|
299
|
+
{
|
|
300
|
+
"name": "node",
|
|
301
|
+
"type": {
|
|
302
|
+
"text": "BlueprintNode"
|
|
303
|
+
}
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"name": "owner",
|
|
307
|
+
"default": "'root'"
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"name": "nodes",
|
|
311
|
+
"optional": true,
|
|
312
|
+
"type": {
|
|
313
|
+
"text": "Map<string, HTMLElement>"
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
],
|
|
317
|
+
"description": "Build one element for a validated node. The component map is this switch: adding a component\nmeans adding a case here plus a rule in `blueprint.ts`, and nothing else."
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"kind": "function",
|
|
321
|
+
"name": "renderUiBlueprint",
|
|
322
|
+
"return": {
|
|
323
|
+
"type": {
|
|
324
|
+
"text": "UiBlueprintRenderResult"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"parameters": [
|
|
328
|
+
{
|
|
329
|
+
"name": "container",
|
|
330
|
+
"type": {
|
|
331
|
+
"text": "HTMLElement"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"name": "value",
|
|
336
|
+
"type": {
|
|
337
|
+
"text": "unknown"
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"name": "options",
|
|
342
|
+
"default": "{}",
|
|
343
|
+
"type": {
|
|
344
|
+
"text": "UiBlueprintRenderOptions"
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
],
|
|
348
|
+
"description": "Validate `value` and, only on success, render it into `container`.\n\nA rejected document throws before the container is touched, so an invalid or stale response can\nnever partially render or erase the preview already on screen."
|
|
349
|
+
},
|
|
132
350
|
{
|
|
133
351
|
"kind": "function",
|
|
134
352
|
"name": "announce",
|
|
@@ -794,6 +1012,24 @@
|
|
|
794
1012
|
],
|
|
795
1013
|
"description": "Parses a boolean HTML attribute value into `true | false | undefined`, where\n`undefined` means \"attribute absent\": the signal controlled components (`open`)\nuse to distinguish uncontrolled from controlled mode.\n\nThe grammar is the standard attribute one: presence with no value (`open`) or\nthe literal `\"true\"` is true; anything else, including `\"false\"`, is false.\nEvery controlled overlay (dialog, drawer, menu, popover, tooltip,\ncommand-palette) parses its `open` prop with this exact contract."
|
|
796
1014
|
},
|
|
1015
|
+
{
|
|
1016
|
+
"kind": "function",
|
|
1017
|
+
"name": "parseDetents",
|
|
1018
|
+
"return": {
|
|
1019
|
+
"type": {
|
|
1020
|
+
"text": "readonly number[] | undefined"
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"parameters": [
|
|
1024
|
+
{
|
|
1025
|
+
"name": "value",
|
|
1026
|
+
"type": {
|
|
1027
|
+
"text": "string | null"
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
],
|
|
1031
|
+
"description": "Parses a comma-separated list of detent fractions into a sorted, deduplicated\narray of numbers in the open interval (0, 1): `detents=\"0.5,0.75\"`. A detent\nfraction is the share of the panel that stays on-screen when a dragged panel\ncomes to rest there (`0.5` = half-open). Entries outside (0, 1) are dropped;\nan absent or fully-invalid attribute yields `undefined` (\"no detents\"), which\nkeeps the component two-state (fully open / fully closed)."
|
|
1032
|
+
},
|
|
797
1033
|
{
|
|
798
1034
|
"kind": "function",
|
|
799
1035
|
"name": "createDropdownPositioner",
|
|
@@ -1347,6 +1583,43 @@
|
|
|
1347
1583
|
],
|
|
1348
1584
|
"description": "The container width to test against a breakpoint, falling back to the element itself."
|
|
1349
1585
|
},
|
|
1586
|
+
{
|
|
1587
|
+
"kind": "variable",
|
|
1588
|
+
"name": "FLING_PROJECTION_SECONDS",
|
|
1589
|
+
"type": {
|
|
1590
|
+
"text": "number"
|
|
1591
|
+
},
|
|
1592
|
+
"default": "0.25",
|
|
1593
|
+
"description": "Fling projection: how far a released gesture would travel if its release\nvelocity carried on.\n\nApple's sheet and card gestures are velocity-sensitive: a short, fast flick\ndismisses just as surely as a long slow drag that crosses the threshold. A\nfixed distance threshold alone misses the flick entirely. Projecting the\nrelease position forward by the distance the current velocity would cover in\n`seconds` folds the flick into the same comparison the component already\nmakes, so one threshold serves both gestures.\n\nA quarter-second is the sweet spot: long enough that a deliberate flick\n(~1500 px/s) projects ~375px and clears any panel threshold, short enough\nthat a slow drag reads as itself. Components pair this with\n`@vielzeug/necromancer`'s `spring()`, seeded with the same release velocity,\nso the projection decides *where* the panel settles and the spring reproduces\nthe momentum that put it there."
|
|
1594
|
+
},
|
|
1595
|
+
{
|
|
1596
|
+
"kind": "function",
|
|
1597
|
+
"name": "projectFling",
|
|
1598
|
+
"return": {
|
|
1599
|
+
"type": {
|
|
1600
|
+
"text": "number"
|
|
1601
|
+
}
|
|
1602
|
+
},
|
|
1603
|
+
"parameters": [
|
|
1604
|
+
{
|
|
1605
|
+
"name": "position",
|
|
1606
|
+
"type": {
|
|
1607
|
+
"text": "number"
|
|
1608
|
+
}
|
|
1609
|
+
},
|
|
1610
|
+
{
|
|
1611
|
+
"name": "velocity",
|
|
1612
|
+
"type": {
|
|
1613
|
+
"text": "number"
|
|
1614
|
+
}
|
|
1615
|
+
},
|
|
1616
|
+
{
|
|
1617
|
+
"name": "seconds",
|
|
1618
|
+
"default": "FLING_PROJECTION_SECONDS"
|
|
1619
|
+
}
|
|
1620
|
+
],
|
|
1621
|
+
"description": "Project a released position forward along the direction of `velocity`\n(px/s), as if it had continued for FLING_PROJECTION_SECONDS."
|
|
1622
|
+
},
|
|
1350
1623
|
{
|
|
1351
1624
|
"kind": "function",
|
|
1352
1625
|
"name": "motionReduced",
|
|
@@ -4967,118 +5240,6 @@
|
|
|
4967
5240
|
}
|
|
4968
5241
|
]
|
|
4969
5242
|
},
|
|
4970
|
-
{
|
|
4971
|
-
"kind": "variable",
|
|
4972
|
-
"name": "ASYNC_TAG",
|
|
4973
|
-
"type": {
|
|
4974
|
-
"text": "'ore-async'"
|
|
4975
|
-
},
|
|
4976
|
-
"default": "'ore-async'",
|
|
4977
|
-
"description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks."
|
|
4978
|
-
},
|
|
4979
|
-
{
|
|
4980
|
-
"kind": "class",
|
|
4981
|
-
"name": "OreAsyncElement",
|
|
4982
|
-
"tagName": "ore-async",
|
|
4983
|
-
"customElement": true,
|
|
4984
|
-
"description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks.",
|
|
4985
|
-
"summary": "",
|
|
4986
|
-
"attributes": [
|
|
4987
|
-
{
|
|
4988
|
-
"name": "status",
|
|
4989
|
-
"type": {
|
|
4990
|
-
"text": "'idle' | 'loading' | 'empty' | 'error' | 'success'"
|
|
4991
|
-
},
|
|
4992
|
-
"description": "current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')",
|
|
4993
|
-
"default": "'success'"
|
|
4994
|
-
},
|
|
4995
|
-
{
|
|
4996
|
-
"name": "retryable",
|
|
4997
|
-
"type": {
|
|
4998
|
-
"text": "boolean"
|
|
4999
|
-
},
|
|
5000
|
-
"description": "show retry button in error state (default: false)",
|
|
5001
|
-
"default": "false"
|
|
5002
|
-
},
|
|
5003
|
-
{
|
|
5004
|
-
"name": "empty-label",
|
|
5005
|
-
"type": {
|
|
5006
|
-
"text": "string"
|
|
5007
|
-
},
|
|
5008
|
-
"description": "title for empty state (default: 'No content yet')",
|
|
5009
|
-
"default": "'No content yet'"
|
|
5010
|
-
},
|
|
5011
|
-
{
|
|
5012
|
-
"name": "empty-description",
|
|
5013
|
-
"type": {
|
|
5014
|
-
"text": "string"
|
|
5015
|
-
},
|
|
5016
|
-
"description": "optional text for empty state"
|
|
5017
|
-
},
|
|
5018
|
-
{
|
|
5019
|
-
"name": "error-label",
|
|
5020
|
-
"type": {
|
|
5021
|
-
"text": "string"
|
|
5022
|
-
},
|
|
5023
|
-
"description": "title for error state (default: 'Something went wrong')",
|
|
5024
|
-
"default": "'Something went wrong'"
|
|
5025
|
-
},
|
|
5026
|
-
{
|
|
5027
|
-
"name": "error-description",
|
|
5028
|
-
"type": {
|
|
5029
|
-
"text": "string"
|
|
5030
|
-
},
|
|
5031
|
-
"description": "optional text for error state"
|
|
5032
|
-
}
|
|
5033
|
-
],
|
|
5034
|
-
"events": [
|
|
5035
|
-
{
|
|
5036
|
-
"name": "retry",
|
|
5037
|
-
"description": "Emitted when the retry button is clicked (no detail payload)",
|
|
5038
|
-
"type": {
|
|
5039
|
-
"text": "CustomEvent"
|
|
5040
|
-
}
|
|
5041
|
-
}
|
|
5042
|
-
],
|
|
5043
|
-
"slots": [
|
|
5044
|
-
{
|
|
5045
|
-
"name": "",
|
|
5046
|
-
"description": "default content shown in 'success' state"
|
|
5047
|
-
},
|
|
5048
|
-
{
|
|
5049
|
-
"name": "loading",
|
|
5050
|
-
"description": "custom loading UI (overrides default skeletons)"
|
|
5051
|
-
},
|
|
5052
|
-
{
|
|
5053
|
-
"name": "empty",
|
|
5054
|
-
"description": "custom empty UI (overrides default icon/label)"
|
|
5055
|
-
},
|
|
5056
|
-
{
|
|
5057
|
-
"name": "error",
|
|
5058
|
-
"description": "custom error UI (overrides default icon/label)"
|
|
5059
|
-
}
|
|
5060
|
-
],
|
|
5061
|
-
"cssProperties": [
|
|
5062
|
-
{
|
|
5063
|
-
"name": "--async-color",
|
|
5064
|
-
"description": "Text/icon color used by default async state content"
|
|
5065
|
-
},
|
|
5066
|
-
{
|
|
5067
|
-
"name": "--async-gap",
|
|
5068
|
-
"description": "Vertical spacing between icon, title, description, and actions"
|
|
5069
|
-
},
|
|
5070
|
-
{
|
|
5071
|
-
"name": "--async-icon-size",
|
|
5072
|
-
"description": "Icon size for built-in loading/empty/error visuals"
|
|
5073
|
-
}
|
|
5074
|
-
],
|
|
5075
|
-
"demos": [
|
|
5076
|
-
{
|
|
5077
|
-
"url": "",
|
|
5078
|
-
"description": "```html\n<!-- Success state: default slot is shown -->\n<ore-async status=\"success\">\n <ul><li>Item one</li><li>Item two</li></ul>\n</ore-async>\n<!-- Loading state: shows skeleton placeholders -->\n<ore-async status=\"loading\"></ore-async>\n<!-- Empty state with custom message -->\n<ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n<!-- Error state with retry button -->\n<ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n```"
|
|
5079
|
-
}
|
|
5080
|
-
]
|
|
5081
|
-
},
|
|
5082
5243
|
{
|
|
5083
5244
|
"kind": "variable",
|
|
5084
5245
|
"name": "BADGE_TAG",
|
|
@@ -5781,6 +5942,85 @@
|
|
|
5781
5942
|
}
|
|
5782
5943
|
]
|
|
5783
5944
|
},
|
|
5945
|
+
{
|
|
5946
|
+
"kind": "variable",
|
|
5947
|
+
"name": "PULL_TO_REFRESH_TAG",
|
|
5948
|
+
"type": {
|
|
5949
|
+
"text": "'ore-pull-to-refresh'"
|
|
5950
|
+
},
|
|
5951
|
+
"default": "'ore-pull-to-refresh'",
|
|
5952
|
+
"description": "A pull-to-refresh scroll container: drag the (already scrolled-to-top)\ncontent down past the threshold and release to trigger a refresh. A\nspring-physics indicator tracks the finger, rubber-bands past the threshold,\ncarries the release momentum, and holds at the refresh position until the\nconsumer calls `refreshed()`.\n\nThe component owns the gesture and the motion; the consumer owns the data.\nListen for `refresh`, load, then call `refreshed()` on the element when the\nload resolves."
|
|
5953
|
+
},
|
|
5954
|
+
{
|
|
5955
|
+
"kind": "class",
|
|
5956
|
+
"name": "OrePullToRefreshElement",
|
|
5957
|
+
"tagName": "ore-pull-to-refresh",
|
|
5958
|
+
"customElement": true,
|
|
5959
|
+
"description": "A pull-to-refresh scroll container: drag the (already scrolled-to-top)\ncontent down past the threshold and release to trigger a refresh. A\nspring-physics indicator tracks the finger, rubber-bands past the threshold,\ncarries the release momentum, and holds at the refresh position until the\nconsumer calls `refreshed()`.\nThe component owns the gesture and the motion; the consumer owns the data.\nListen for `refresh`, load, then call `refreshed()` on the element when the\nload resolves.",
|
|
5960
|
+
"summary": "",
|
|
5961
|
+
"attributes": [
|
|
5962
|
+
{
|
|
5963
|
+
"name": "threshold",
|
|
5964
|
+
"type": {
|
|
5965
|
+
"text": "number"
|
|
5966
|
+
},
|
|
5967
|
+
"description": "Pull distance in px before release commits (default: 64)",
|
|
5968
|
+
"default": "64"
|
|
5969
|
+
},
|
|
5970
|
+
{
|
|
5971
|
+
"name": "disabled",
|
|
5972
|
+
"type": {
|
|
5973
|
+
"text": "boolean"
|
|
5974
|
+
},
|
|
5975
|
+
"description": "Disable the pull gesture"
|
|
5976
|
+
}
|
|
5977
|
+
],
|
|
5978
|
+
"events": [
|
|
5979
|
+
{
|
|
5980
|
+
"name": "refresh",
|
|
5981
|
+
"description": "Emitted when a pull commits. Call `refreshed()` when the load finishes.",
|
|
5982
|
+
"type": {
|
|
5983
|
+
"text": "CustomEvent"
|
|
5984
|
+
}
|
|
5985
|
+
}
|
|
5986
|
+
],
|
|
5987
|
+
"slots": [
|
|
5988
|
+
{
|
|
5989
|
+
"name": "",
|
|
5990
|
+
"description": "The scrollable content."
|
|
5991
|
+
}
|
|
5992
|
+
],
|
|
5993
|
+
"cssParts": [
|
|
5994
|
+
{
|
|
5995
|
+
"name": "indicator",
|
|
5996
|
+
"description": "The indicator region holding the spinner."
|
|
5997
|
+
},
|
|
5998
|
+
{
|
|
5999
|
+
"name": "spinner",
|
|
6000
|
+
"description": "The spinner element."
|
|
6001
|
+
},
|
|
6002
|
+
{
|
|
6003
|
+
"name": "content",
|
|
6004
|
+
"description": "The dragged content wrapper."
|
|
6005
|
+
}
|
|
6006
|
+
],
|
|
6007
|
+
"cssProperties": [
|
|
6008
|
+
{
|
|
6009
|
+
"name": "--pull-to-refresh-spinner-size",
|
|
6010
|
+
"description": "Spinner diameter (default: 24px)"
|
|
6011
|
+
},
|
|
6012
|
+
{
|
|
6013
|
+
"name": "--pull-to-refresh-spinner-color",
|
|
6014
|
+
"description": "Spinner color (defaults to the primary color)"
|
|
6015
|
+
}
|
|
6016
|
+
],
|
|
6017
|
+
"demos": [
|
|
6018
|
+
{
|
|
6019
|
+
"url": "",
|
|
6020
|
+
"description": "```html\n<ore-pull-to-refresh id=\"feed\">\n <ul>...</ul>\n</ore-pull-to-refresh>\n<script>\n feed.addEventListener('refresh', async () => {\n await reloadFeed();\n feed.refreshed();\n });\n</script>\n```"
|
|
6021
|
+
}
|
|
6022
|
+
]
|
|
6023
|
+
},
|
|
5784
6024
|
{
|
|
5785
6025
|
"kind": "variable",
|
|
5786
6026
|
"name": "SKELETON_TAG",
|
|
@@ -5910,7 +6150,127 @@
|
|
|
5910
6150
|
"demos": [
|
|
5911
6151
|
{
|
|
5912
6152
|
"url": "",
|
|
5913
|
-
"description": "```html\n<!-- Paragraph lines -->\n<ore-skeleton variant=\"text\" lines=\"3\" width=\"100%\"></ore-skeleton>\n<!-- Avatar -->\n<ore-skeleton variant=\"circle\" size=\"md\"></ore-skeleton>\n<!-- Card image -->\n<ore-skeleton width=\"100%\" height=\"10rem\"></ore-skeleton>\n```"
|
|
6153
|
+
"description": "```html\n<!-- Paragraph lines -->\n<ore-skeleton variant=\"text\" lines=\"3\" width=\"100%\"></ore-skeleton>\n<!-- Avatar -->\n<ore-skeleton variant=\"circle\" size=\"md\"></ore-skeleton>\n<!-- Card image -->\n<ore-skeleton width=\"100%\" height=\"10rem\"></ore-skeleton>\n```"
|
|
6154
|
+
}
|
|
6155
|
+
]
|
|
6156
|
+
},
|
|
6157
|
+
{
|
|
6158
|
+
"kind": "variable",
|
|
6159
|
+
"name": "STATE_TAG",
|
|
6160
|
+
"type": {
|
|
6161
|
+
"text": "'ore-state'"
|
|
6162
|
+
},
|
|
6163
|
+
"default": "'ore-state'",
|
|
6164
|
+
"description": "A state container for asynchronous content: one element covers the whole\nlifecycle (idle, loading, empty, error, success) so a data view never\nhand-rolls four separate fallbacks. The default slot shows on `success`;\nevery other state has a built-in visual that a named slot can replace.\n\nEmpty and error render as full placeholders rather than bare labels: an\nillustration, a title, a description, and an action row. Both are\ncustomizable without replacing the whole placeholder: the `illustration`\nslot swaps the icon and the `actions` slot supplies recovery controls\n(retry, browse, create). `retryable` fills the action row with a built-in\nretry button when no actions are slotted."
|
|
6165
|
+
},
|
|
6166
|
+
{
|
|
6167
|
+
"kind": "class",
|
|
6168
|
+
"name": "OreStateElement",
|
|
6169
|
+
"tagName": "ore-state",
|
|
6170
|
+
"customElement": true,
|
|
6171
|
+
"description": "A state container for asynchronous content: one element covers the whole\nlifecycle (idle, loading, empty, error, success) so a data view never\nhand-rolls four separate fallbacks. The default slot shows on `success`;\nevery other state has a built-in visual that a named slot can replace.\nEmpty and error render as full placeholders rather than bare labels: an\nillustration, a title, a description, and an action row. Both are\ncustomizable without replacing the whole placeholder: the `illustration`\nslot swaps the icon and the `actions` slot supplies recovery controls\n(retry, browse, create). `retryable` fills the action row with a built-in\nretry button when no actions are slotted.",
|
|
6172
|
+
"summary": "",
|
|
6173
|
+
"attributes": [
|
|
6174
|
+
{
|
|
6175
|
+
"name": "status",
|
|
6176
|
+
"type": {
|
|
6177
|
+
"text": "'idle' | 'loading' | 'empty' | 'error' | 'success'"
|
|
6178
|
+
},
|
|
6179
|
+
"description": "current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')",
|
|
6180
|
+
"default": "'success'"
|
|
6181
|
+
},
|
|
6182
|
+
{
|
|
6183
|
+
"name": "retryable",
|
|
6184
|
+
"type": {
|
|
6185
|
+
"text": "boolean"
|
|
6186
|
+
},
|
|
6187
|
+
"description": "show a retry button when the error state has no slotted actions (default: false)",
|
|
6188
|
+
"default": "false"
|
|
6189
|
+
},
|
|
6190
|
+
{
|
|
6191
|
+
"name": "empty-label",
|
|
6192
|
+
"type": {
|
|
6193
|
+
"text": "string"
|
|
6194
|
+
},
|
|
6195
|
+
"description": "title for empty state (default: 'No content yet')",
|
|
6196
|
+
"default": "'No content yet'"
|
|
6197
|
+
},
|
|
6198
|
+
{
|
|
6199
|
+
"name": "empty-description",
|
|
6200
|
+
"type": {
|
|
6201
|
+
"text": "string"
|
|
6202
|
+
},
|
|
6203
|
+
"description": "optional text for empty state"
|
|
6204
|
+
},
|
|
6205
|
+
{
|
|
6206
|
+
"name": "error-label",
|
|
6207
|
+
"type": {
|
|
6208
|
+
"text": "string"
|
|
6209
|
+
},
|
|
6210
|
+
"description": "title for error state (default: 'Something went wrong')",
|
|
6211
|
+
"default": "'Something went wrong'"
|
|
6212
|
+
},
|
|
6213
|
+
{
|
|
6214
|
+
"name": "error-description",
|
|
6215
|
+
"type": {
|
|
6216
|
+
"text": "string"
|
|
6217
|
+
},
|
|
6218
|
+
"description": "optional text for error state"
|
|
6219
|
+
}
|
|
6220
|
+
],
|
|
6221
|
+
"events": [
|
|
6222
|
+
{
|
|
6223
|
+
"name": "retry",
|
|
6224
|
+
"description": "Emitted when the retry button is clicked (no detail payload)",
|
|
6225
|
+
"type": {
|
|
6226
|
+
"text": "CustomEvent"
|
|
6227
|
+
}
|
|
6228
|
+
}
|
|
6229
|
+
],
|
|
6230
|
+
"slots": [
|
|
6231
|
+
{
|
|
6232
|
+
"name": "",
|
|
6233
|
+
"description": "default content shown in 'success' state"
|
|
6234
|
+
},
|
|
6235
|
+
{
|
|
6236
|
+
"name": "loading",
|
|
6237
|
+
"description": "custom loading UI (overrides default skeletons)"
|
|
6238
|
+
},
|
|
6239
|
+
{
|
|
6240
|
+
"name": "empty",
|
|
6241
|
+
"description": "custom empty UI (overrides the built-in empty placeholder)"
|
|
6242
|
+
},
|
|
6243
|
+
{
|
|
6244
|
+
"name": "error",
|
|
6245
|
+
"description": "custom error UI (overrides the built-in error placeholder)"
|
|
6246
|
+
},
|
|
6247
|
+
{
|
|
6248
|
+
"name": "illustration",
|
|
6249
|
+
"description": "artwork for the built-in empty/error placeholder (replaces its default icon)"
|
|
6250
|
+
},
|
|
6251
|
+
{
|
|
6252
|
+
"name": "actions",
|
|
6253
|
+
"description": "recovery controls for the built-in empty/error placeholder (rendered below its text)"
|
|
6254
|
+
}
|
|
6255
|
+
],
|
|
6256
|
+
"cssProperties": [
|
|
6257
|
+
{
|
|
6258
|
+
"name": "--state-color",
|
|
6259
|
+
"description": "Text/icon color used by default state content"
|
|
6260
|
+
},
|
|
6261
|
+
{
|
|
6262
|
+
"name": "--state-gap",
|
|
6263
|
+
"description": "Vertical spacing between icon, title, description, and actions"
|
|
6264
|
+
},
|
|
6265
|
+
{
|
|
6266
|
+
"name": "--state-icon-size",
|
|
6267
|
+
"description": "Icon size for built-in loading/empty/error visuals"
|
|
6268
|
+
}
|
|
6269
|
+
],
|
|
6270
|
+
"demos": [
|
|
6271
|
+
{
|
|
6272
|
+
"url": "",
|
|
6273
|
+
"description": "```html\n<!-- Success state: default slot is shown -->\n<ore-state status=\"success\">\n <ul><li>Item one</li><li>Item two</li></ul>\n</ore-state>\n<!-- Loading state: shows skeleton placeholders -->\n<ore-state status=\"loading\"></ore-state>\n<!-- Empty state with a recovery action -->\n<ore-state status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\">\n <ore-button slot=\"actions\" variant=\"secondary\">Clear filters</ore-button>\n</ore-state>\n<!-- Error state with the built-in retry button -->\n<ore-state status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-state>\n```"
|
|
5914
6274
|
}
|
|
5915
6275
|
]
|
|
5916
6276
|
},
|
|
@@ -6259,6 +6619,13 @@
|
|
|
6259
6619
|
"text": "boolean"
|
|
6260
6620
|
},
|
|
6261
6621
|
"description": "Full height button (100% of container)"
|
|
6622
|
+
},
|
|
6623
|
+
{
|
|
6624
|
+
"name": "value",
|
|
6625
|
+
"type": {
|
|
6626
|
+
"text": "string"
|
|
6627
|
+
},
|
|
6628
|
+
"description": "Button value; inside a segmented `ore-button-group` it identifies this button as one selectable option"
|
|
6262
6629
|
}
|
|
6263
6630
|
],
|
|
6264
6631
|
"events": [
|
|
@@ -6343,6 +6710,18 @@
|
|
|
6343
6710
|
"name": "--button-frost-active-border-color",
|
|
6344
6711
|
"description": "Border color when pressed (frost variant)"
|
|
6345
6712
|
},
|
|
6713
|
+
{
|
|
6714
|
+
"name": "--button-selected-bg",
|
|
6715
|
+
"description": "Background of a selected segment in a segmented `ore-button-group` (defaults to the color family's base)"
|
|
6716
|
+
},
|
|
6717
|
+
{
|
|
6718
|
+
"name": "--button-selected-color",
|
|
6719
|
+
"description": "Text color of a selected segment in a segmented `ore-button-group` (defaults to the color family's contrast)"
|
|
6720
|
+
},
|
|
6721
|
+
{
|
|
6722
|
+
"name": "--button-selected-border-color",
|
|
6723
|
+
"description": "Border color of a selected segment in a segmented `ore-button-group` (defaults to the color family's base)"
|
|
6724
|
+
},
|
|
6346
6725
|
{
|
|
6347
6726
|
"name": "--button-shadow",
|
|
6348
6727
|
"description": "Resting shadow for an elevated button (default: the color family's halo)"
|
|
@@ -6369,16 +6748,130 @@
|
|
|
6369
6748
|
"type": {
|
|
6370
6749
|
"text": "'ore-button-group'"
|
|
6371
6750
|
},
|
|
6372
|
-
"default": "'ore-button-group'"
|
|
6751
|
+
"default": "'ore-button-group'",
|
|
6752
|
+
"description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant.\n\nWith a `value`, the group becomes a segmented control (the web equivalent of\nApple's HIG Segmented Control): child buttons carry `value`, the group owns the\nsingle selection, and the container takes `role=\"radiogroup\"` while each valued\nbutton becomes a `radio` (`aria-checked` plus a roving tabindex, both bound by\n`ore-button` itself from the group's context). Arrow keys move and select (HIG:\na segmented control always has a selection, so arrowing commits it), Home/End\njump to the ends, and `change` reports the new value. A button without `value`\nstays a plain action inside the group and is skipped by the selection. Without\n`value` the group remains a plain container: no roles, no selection."
|
|
6373
6753
|
},
|
|
6374
6754
|
{
|
|
6375
6755
|
"kind": "class",
|
|
6376
6756
|
"name": "OreButtonGroupElement",
|
|
6377
6757
|
"tagName": "ore-button-group",
|
|
6378
6758
|
"customElement": true,
|
|
6379
|
-
"description": "",
|
|
6759
|
+
"description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant.\nWith a `value`, the group becomes a segmented control (the web equivalent of\nApple's HIG Segmented Control): child buttons carry `value`, the group owns the\nsingle selection, and the container takes `role=\"radiogroup\"` while each valued\nbutton becomes a `radio` (`aria-checked` plus a roving tabindex, both bound by\n`ore-button` itself from the group's context). Arrow keys move and select (HIG:\na segmented control always has a selection, so arrowing commits it), Home/End\njump to the ends, and `change` reports the new value. A button without `value`\nstays a plain action inside the group and is skipped by the selection. Without\n`value` the group remains a plain container: no roles, no selection.",
|
|
6380
6760
|
"summary": "",
|
|
6381
|
-
"
|
|
6761
|
+
"attributes": [
|
|
6762
|
+
{
|
|
6763
|
+
"name": "attached",
|
|
6764
|
+
"type": {
|
|
6765
|
+
"text": "boolean"
|
|
6766
|
+
},
|
|
6767
|
+
"description": "Join buttons together into a unit"
|
|
6768
|
+
},
|
|
6769
|
+
{
|
|
6770
|
+
"name": "color",
|
|
6771
|
+
"type": {
|
|
6772
|
+
"text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
|
|
6773
|
+
},
|
|
6774
|
+
"description": "Shared color tint: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
|
|
6775
|
+
},
|
|
6776
|
+
{
|
|
6777
|
+
"name": "fullwidth",
|
|
6778
|
+
"type": {
|
|
6779
|
+
"text": "boolean"
|
|
6780
|
+
},
|
|
6781
|
+
"description": "Group spans full width"
|
|
6782
|
+
},
|
|
6783
|
+
{
|
|
6784
|
+
"name": "label",
|
|
6785
|
+
"type": {
|
|
6786
|
+
"text": "string"
|
|
6787
|
+
},
|
|
6788
|
+
"description": "Accessible label"
|
|
6789
|
+
},
|
|
6790
|
+
{
|
|
6791
|
+
"name": "orientation",
|
|
6792
|
+
"type": {
|
|
6793
|
+
"text": "'horizontal' | 'vertical'"
|
|
6794
|
+
},
|
|
6795
|
+
"description": "'horizontal' | 'vertical'"
|
|
6796
|
+
},
|
|
6797
|
+
{
|
|
6798
|
+
"name": "rounded",
|
|
6799
|
+
"type": {
|
|
6800
|
+
"text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
|
|
6801
|
+
},
|
|
6802
|
+
"description": "Corner radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' (bare attribute defaults to 'full')"
|
|
6803
|
+
},
|
|
6804
|
+
{
|
|
6805
|
+
"name": "size",
|
|
6806
|
+
"type": {
|
|
6807
|
+
"text": "'sm' | 'md' | 'lg'"
|
|
6808
|
+
},
|
|
6809
|
+
"description": "Shared size: 'sm' | 'md' | 'lg'"
|
|
6810
|
+
},
|
|
6811
|
+
{
|
|
6812
|
+
"name": "value",
|
|
6813
|
+
"type": {
|
|
6814
|
+
"text": "string"
|
|
6815
|
+
},
|
|
6816
|
+
"description": "Value of the currently selected button (enables segmented selection)"
|
|
6817
|
+
},
|
|
6818
|
+
{
|
|
6819
|
+
"name": "variant",
|
|
6820
|
+
"type": {
|
|
6821
|
+
"text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
|
|
6822
|
+
},
|
|
6823
|
+
"description": "Shared visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
|
|
6824
|
+
}
|
|
6825
|
+
],
|
|
6826
|
+
"events": [
|
|
6827
|
+
{
|
|
6828
|
+
"name": "change",
|
|
6829
|
+
"description": "Emitted when the selected button changes. detail: { values: string[], labels: string[], originalEvent?: Event }",
|
|
6830
|
+
"type": {
|
|
6831
|
+
"text": "CustomEvent"
|
|
6832
|
+
}
|
|
6833
|
+
}
|
|
6834
|
+
],
|
|
6835
|
+
"slots": [
|
|
6836
|
+
{
|
|
6837
|
+
"name": "",
|
|
6838
|
+
"description": "Place ore-button elements here"
|
|
6839
|
+
}
|
|
6840
|
+
],
|
|
6841
|
+
"cssParts": [
|
|
6842
|
+
{
|
|
6843
|
+
"name": "group",
|
|
6844
|
+
"description": "Group container."
|
|
6845
|
+
}
|
|
6846
|
+
],
|
|
6847
|
+
"cssProperties": [
|
|
6848
|
+
{
|
|
6849
|
+
"name": "--group-gap",
|
|
6850
|
+
"description": "Gap between buttons (non-attached mode)"
|
|
6851
|
+
},
|
|
6852
|
+
{
|
|
6853
|
+
"name": "--group-radius",
|
|
6854
|
+
"description": "Border radius of the group container, defaults to the `rounded` attribute's token"
|
|
6855
|
+
},
|
|
6856
|
+
{
|
|
6857
|
+
"name": "--button-radius",
|
|
6858
|
+
"description": "Passed through to child buttons to control corner radius"
|
|
6859
|
+
},
|
|
6860
|
+
{
|
|
6861
|
+
"name": "--button-border-start",
|
|
6862
|
+
"description": "Passed through to suppress start borders in attached mode"
|
|
6863
|
+
},
|
|
6864
|
+
{
|
|
6865
|
+
"name": "--button-border-top",
|
|
6866
|
+
"description": "Passed through to suppress top borders in vertical attached mode"
|
|
6867
|
+
}
|
|
6868
|
+
],
|
|
6869
|
+
"demos": [
|
|
6870
|
+
{
|
|
6871
|
+
"url": "",
|
|
6872
|
+
"description": "```html\n<ore-button-group attached rounded=\"full\">\n <ore-button variant=\"solid\" color=\"primary\">Save</ore-button>\n <ore-button variant=\"solid\" color=\"primary\">Save & Continue</ore-button>\n</ore-button-group>\n<ore-button-group attached value=\"list\" label=\"View mode\" color=\"primary\">\n <ore-button value=\"list\">List</ore-button>\n <ore-button value=\"grid\">Grid</ore-button>\n</ore-button-group>\n<ore-button-group orientation=\"vertical\" size=\"sm\">\n <ore-button>Top</ore-button>\n <ore-button>Middle</ore-button>\n <ore-button>Bottom</ore-button>\n</ore-button-group>\n```"
|
|
6873
|
+
}
|
|
6874
|
+
]
|
|
6382
6875
|
},
|
|
6383
6876
|
{
|
|
6384
6877
|
"kind": "variable",
|
|
@@ -6848,6 +7341,121 @@
|
|
|
6848
7341
|
}
|
|
6849
7342
|
]
|
|
6850
7343
|
},
|
|
7344
|
+
{
|
|
7345
|
+
"kind": "variable",
|
|
7346
|
+
"name": "COLOR_PICKER_TAG",
|
|
7347
|
+
"type": {
|
|
7348
|
+
"text": "'ore-color-picker'"
|
|
7349
|
+
},
|
|
7350
|
+
"default": "'ore-color-picker'",
|
|
7351
|
+
"description": "A palette of color swatches that allows users to pick a single color, like a\nproduct paint configurator. Renders as a radiogroup: arrow keys move through\nthe swatches, and selection is form-associated."
|
|
7352
|
+
},
|
|
7353
|
+
{
|
|
7354
|
+
"kind": "class",
|
|
7355
|
+
"name": "OreColorPickerElement",
|
|
7356
|
+
"tagName": "ore-color-picker",
|
|
7357
|
+
"customElement": true,
|
|
7358
|
+
"description": "A palette of color swatches that allows users to pick a single color, like a\nproduct paint configurator. Renders as a radiogroup: arrow keys move through\nthe swatches, and selection is form-associated.",
|
|
7359
|
+
"summary": "",
|
|
7360
|
+
"attributes": [
|
|
7361
|
+
{
|
|
7362
|
+
"name": "value",
|
|
7363
|
+
"type": {
|
|
7364
|
+
"text": "string"
|
|
7365
|
+
},
|
|
7366
|
+
"description": "Value of the selected option"
|
|
7367
|
+
},
|
|
7368
|
+
{
|
|
7369
|
+
"name": "label",
|
|
7370
|
+
"type": {
|
|
7371
|
+
"text": "string"
|
|
7372
|
+
},
|
|
7373
|
+
"description": "Group label (also the accessible name)"
|
|
7374
|
+
},
|
|
7375
|
+
{
|
|
7376
|
+
"name": "name",
|
|
7377
|
+
"type": {
|
|
7378
|
+
"text": "string"
|
|
7379
|
+
},
|
|
7380
|
+
"description": "Form field name"
|
|
7381
|
+
},
|
|
7382
|
+
{
|
|
7383
|
+
"name": "disabled",
|
|
7384
|
+
"type": {
|
|
7385
|
+
"text": "boolean"
|
|
7386
|
+
},
|
|
7387
|
+
"description": "Disabled state"
|
|
7388
|
+
},
|
|
7389
|
+
{
|
|
7390
|
+
"name": "size",
|
|
7391
|
+
"type": {
|
|
7392
|
+
"text": "'sm' | 'md' | 'lg'"
|
|
7393
|
+
},
|
|
7394
|
+
"description": "'sm' | 'md' | 'lg'"
|
|
7395
|
+
},
|
|
7396
|
+
{
|
|
7397
|
+
"name": "helper",
|
|
7398
|
+
"type": {
|
|
7399
|
+
"text": "string"
|
|
7400
|
+
},
|
|
7401
|
+
"description": "Helper text below the swatches"
|
|
7402
|
+
},
|
|
7403
|
+
{
|
|
7404
|
+
"name": "error",
|
|
7405
|
+
"type": {
|
|
7406
|
+
"text": "string"
|
|
7407
|
+
},
|
|
7408
|
+
"description": "Error message below the swatches"
|
|
7409
|
+
}
|
|
7410
|
+
],
|
|
7411
|
+
"events": [
|
|
7412
|
+
{
|
|
7413
|
+
"name": "change",
|
|
7414
|
+
"description": "Emitted when a color is selected. detail: { values: string[], labels: string[], originalEvent?: Event }",
|
|
7415
|
+
"type": {
|
|
7416
|
+
"text": "CustomEvent"
|
|
7417
|
+
}
|
|
7418
|
+
}
|
|
7419
|
+
],
|
|
7420
|
+
"cssParts": [
|
|
7421
|
+
{
|
|
7422
|
+
"name": "swatches",
|
|
7423
|
+
"description": "Swatch container."
|
|
7424
|
+
},
|
|
7425
|
+
{
|
|
7426
|
+
"name": "swatch",
|
|
7427
|
+
"description": "Swatch button element."
|
|
7428
|
+
},
|
|
7429
|
+
{
|
|
7430
|
+
"name": "legend",
|
|
7431
|
+
"description": "Group label."
|
|
7432
|
+
},
|
|
7433
|
+
{
|
|
7434
|
+
"name": "helper-text",
|
|
7435
|
+
"description": "The helper/error text element."
|
|
7436
|
+
}
|
|
7437
|
+
],
|
|
7438
|
+
"cssProperties": [
|
|
7439
|
+
{
|
|
7440
|
+
"name": "--color-picker-swatch-size",
|
|
7441
|
+
"description": "Swatch diameter (defaults to the size preset)"
|
|
7442
|
+
},
|
|
7443
|
+
{
|
|
7444
|
+
"name": "--color-picker-swatch-radius",
|
|
7445
|
+
"description": "Swatch corner radius (defaults to a circle)"
|
|
7446
|
+
},
|
|
7447
|
+
{
|
|
7448
|
+
"name": "--color-picker-gap",
|
|
7449
|
+
"description": "Gap between swatches"
|
|
7450
|
+
}
|
|
7451
|
+
],
|
|
7452
|
+
"demos": [
|
|
7453
|
+
{
|
|
7454
|
+
"url": "",
|
|
7455
|
+
"description": "```html\n<ore-color-picker\n label=\"Paint\"\n value=\"midnight\"\n options='[{ \"value\": \"midnight\", \"color\": \"#19202b\", \"label\": \"Midnight Black\" }, { \"value\": \"pearl\", \"color\": \"#f2efe9\", \"label\": \"Pearl White\" }]'>\n</ore-color-picker>\n```"
|
|
7456
|
+
}
|
|
7457
|
+
]
|
|
7458
|
+
},
|
|
6851
7459
|
{
|
|
6852
7460
|
"kind": "function",
|
|
6853
7461
|
"name": "parseSlottedOptions",
|
|
@@ -8206,6 +8814,14 @@
|
|
|
8206
8814
|
"name": "spinner",
|
|
8207
8815
|
"description": "The inline loading spinner shown inside the field while `loading`"
|
|
8208
8816
|
},
|
|
8817
|
+
{
|
|
8818
|
+
"name": "pwd-toggle",
|
|
8819
|
+
"description": "The password visibility toggle, shown only when `type=\"password\"`; it reveals the value as text while pressed (`aria-pressed`) and returns focus to the field"
|
|
8820
|
+
},
|
|
8821
|
+
{
|
|
8822
|
+
"name": "clear",
|
|
8823
|
+
"description": "The clear button, shown when `clearable` and the field has a value"
|
|
8824
|
+
},
|
|
8209
8825
|
{
|
|
8210
8826
|
"name": "helper",
|
|
8211
8827
|
"description": "The helper text element"
|
|
@@ -11233,14 +11849,14 @@
|
|
|
11233
11849
|
"text": "'ore-dock'"
|
|
11234
11850
|
},
|
|
11235
11851
|
"default": "'ore-dock'",
|
|
11236
|
-
"description": "The navbar's other twin: a bar of actions that pins to a viewport edge while its container\nscrolls, and settles into the document flow once that container ends.\n\nThree named places and a tool row. `start` and `commit` are the flanks, `center` is the one\nplace allowed to carry a non-action (a clock, a stat block), and the default slot is the row\nof tools between them. A place nothing is assigned to leaves no gap and no flex line: the bar\ncollapses to the places it actually carries.\n\nWide, the bar is a full-width strip flush to its edge, wearing a hairline only while pinned.\nFrom the desktop width (1280 px) up, a claimed `center` sits dead-center because both sides of\nthe row take an equal share. Below the phone width (640 px) the bar becomes a
|
|
11852
|
+
"description": "The navbar's other twin: a bar of actions that pins to a viewport edge while its container\nscrolls, and settles into the document flow once that container ends.\n\nThree named places and a tool row. `start` and `commit` are the flanks, `center` is the one\nplace allowed to carry a non-action (a clock, a stat block), and the default slot is the row\nof tools between them. A place nothing is assigned to leaves no gap and no flex line: the bar\ncollapses to the places it actually carries.\n\nWide, the bar is a full-width strip flush to its edge, wearing a hairline only while pinned.\nFrom the desktop width (1280 px) up, a claimed `center` sits dead-center because both sides of\nthe row take an equal share. Below the phone width (640 px) the bar becomes a tool row in\nthe iOS toolbar grammar: the flanks stretch equally so the tools rest on the row's true middle\nwhile space permits. Flank content takes priority over centering; crowded zones wrap rather\nthan overlapping or shrinking controls.\nThe bar detaches from the viewport's foot, and `center` lifts out of the row to hover above it.\nBy default, a phone row with one action zone hugs its content: `start` aligns to the leading\nedge, `commit` to the trailing edge, and tools to the middle. A lone `center` stays in the row.\nMultiple action zones and attached tools fill the row. `mobile-layout=\"full\"` always fills it;\n`mobile-layout=\"compact\"` always hugs and centers it. Above the phone width every bar is a\nfull-width strip.\n\nThe bar's surface rides a pseudo-element, never the host: `backdrop-filter` on the host would\nmake it a containing block for `position: fixed` descendants, trapping any panel a slotted\ncontrol opens (a menu, a tooltip) inside the bar's own box.\n\nSizing reaches slotted content through custom properties only (`--dock-tool-flex`,\n`--dock-tool-radius`): a shadow-tree `::slotted()` declaration ranks below any document-tree\nrule on the same property, so a consumer that sets `flex` or `width` on a dock child outranks\nthe bar's own layout. Where a bar must stretch its tools (`attached`), it does so by reading\n`--dock-tool-flex`, so the consumer's lever is the property, not a fight with a declaration.\nEvery such rule is scoped through the zone that owns the slot, because `::slotted()` reaches the\nchildren of every slot the bar renders. The flanks keep their own shape.\n\nThe host reflects which places are filled as `data-start-claimed`, `data-center-claimed`,\n`data-tools-claimed`, and `data-commit-claimed`, plus `data-pinned` while the bar is holding its\nedge. Those exist because no selector can derive them: `:has()` cannot see slotted content and a\n`<slot>` always matches `:empty`. The phone layout needs no reflection: it is a plain media\nquery in the bar's own stylesheet, the same way every other refine breakpoint is written."
|
|
11237
11853
|
},
|
|
11238
11854
|
{
|
|
11239
11855
|
"kind": "class",
|
|
11240
11856
|
"name": "OreDockElement",
|
|
11241
11857
|
"tagName": "ore-dock",
|
|
11242
11858
|
"customElement": true,
|
|
11243
|
-
"description": "The navbar's other twin: a bar of actions that pins to a viewport edge while its container\nscrolls, and settles into the document flow once that container ends.\nThree named places and a tool row. `start` and `commit` are the flanks, `center` is the one\nplace allowed to carry a non-action (a clock, a stat block), and the default slot is the row\nof tools between them. A place nothing is assigned to leaves no gap and no flex line: the bar\ncollapses to the places it actually carries.\nWide, the bar is a full-width strip flush to its edge, wearing a hairline only while pinned.\nFrom the desktop width (1280 px) up, a claimed `center` sits dead-center because both sides of\nthe row take an equal share. Below the phone width (640 px) the bar becomes a
|
|
11859
|
+
"description": "The navbar's other twin: a bar of actions that pins to a viewport edge while its container\nscrolls, and settles into the document flow once that container ends.\nThree named places and a tool row. `start` and `commit` are the flanks, `center` is the one\nplace allowed to carry a non-action (a clock, a stat block), and the default slot is the row\nof tools between them. A place nothing is assigned to leaves no gap and no flex line: the bar\ncollapses to the places it actually carries.\nWide, the bar is a full-width strip flush to its edge, wearing a hairline only while pinned.\nFrom the desktop width (1280 px) up, a claimed `center` sits dead-center because both sides of\nthe row take an equal share. Below the phone width (640 px) the bar becomes a tool row in\nthe iOS toolbar grammar: the flanks stretch equally so the tools rest on the row's true middle\nwhile space permits. Flank content takes priority over centering; crowded zones wrap rather\nthan overlapping or shrinking controls.\nThe bar detaches from the viewport's foot, and `center` lifts out of the row to hover above it.\nBy default, a phone row with one action zone hugs its content: `start` aligns to the leading\nedge, `commit` to the trailing edge, and tools to the middle. A lone `center` stays in the row.\nMultiple action zones and attached tools fill the row. `mobile-layout=\"full\"` always fills it;\n`mobile-layout=\"compact\"` always hugs and centers it. Above the phone width every bar is a\nfull-width strip.\nThe bar's surface rides a pseudo-element, never the host: `backdrop-filter` on the host would\nmake it a containing block for `position: fixed` descendants, trapping any panel a slotted\ncontrol opens (a menu, a tooltip) inside the bar's own box.\nSizing reaches slotted content through custom properties only (`--dock-tool-flex`,\n`--dock-tool-radius`): a shadow-tree `::slotted()` declaration ranks below any document-tree\nrule on the same property, so a consumer that sets `flex` or `width` on a dock child outranks\nthe bar's own layout. Where a bar must stretch its tools (`attached`), it does so by reading\n`--dock-tool-flex`, so the consumer's lever is the property, not a fight with a declaration.\nEvery such rule is scoped through the zone that owns the slot, because `::slotted()` reaches the\nchildren of every slot the bar renders. The flanks keep their own shape.\nThe host reflects which places are filled as `data-start-claimed`, `data-center-claimed`,\n`data-tools-claimed`, and `data-commit-claimed`, plus `data-pinned` while the bar is holding its\nedge. Those exist because no selector can derive them: `:has()` cannot see slotted content and a\n`<slot>` always matches `:empty`. The phone layout needs no reflection: it is a plain media\nquery in the bar's own stylesheet, the same way every other refine breakpoint is written.",
|
|
11244
11860
|
"summary": "",
|
|
11245
11861
|
"attributes": [
|
|
11246
11862
|
{
|
|
@@ -12171,9 +12787,9 @@
|
|
|
12171
12787
|
{
|
|
12172
12788
|
"name": "backdrop",
|
|
12173
12789
|
"type": {
|
|
12174
|
-
"text": "'blur' | 'transparent'"
|
|
12790
|
+
"text": "'opaque' | 'blur' | 'transparent'"
|
|
12175
12791
|
},
|
|
12176
|
-
"description": "Backdrop style:
|
|
12792
|
+
"description": "Backdrop style: none (default, click-to-close only) | 'opaque' | 'blur' | 'transparent'"
|
|
12177
12793
|
},
|
|
12178
12794
|
{
|
|
12179
12795
|
"name": "close-on-select",
|
|
@@ -12231,7 +12847,7 @@
|
|
|
12231
12847
|
"cssParts": [
|
|
12232
12848
|
{
|
|
12233
12849
|
"name": "drawer-backdrop",
|
|
12234
|
-
"description": "Backdrop
|
|
12850
|
+
"description": "Backdrop behind the open drawer (click closes it; dimming is opt-in via `backdrop`)."
|
|
12235
12851
|
},
|
|
12236
12852
|
{
|
|
12237
12853
|
"name": "drawer-close-btn",
|
|
@@ -12317,7 +12933,7 @@
|
|
|
12317
12933
|
},
|
|
12318
12934
|
{
|
|
12319
12935
|
"name": "--sidebar-drawer-backdrop-bg",
|
|
12320
|
-
"description": "Backdrop color behind the open drawer (default: var(--overlay-veil))"
|
|
12936
|
+
"description": "Backdrop color behind the open drawer (default: transparent; the dimming modes use var(--overlay-veil))"
|
|
12321
12937
|
},
|
|
12322
12938
|
{
|
|
12323
12939
|
"name": "--sidebar-drawer-shadow",
|
|
@@ -14298,6 +14914,13 @@
|
|
|
14298
14914
|
},
|
|
14299
14915
|
"description": "'sm' | 'lg' | 'full'"
|
|
14300
14916
|
},
|
|
14917
|
+
{
|
|
14918
|
+
"name": "detents",
|
|
14919
|
+
"type": {
|
|
14920
|
+
"text": "string"
|
|
14921
|
+
},
|
|
14922
|
+
"description": "Comma-separated drag snap points as fractions of panel size ('0.5,0.75'); bottom/top placement only"
|
|
14923
|
+
},
|
|
14301
14924
|
{
|
|
14302
14925
|
"name": "title",
|
|
14303
14926
|
"type": {
|
|
@@ -14437,6 +15060,14 @@
|
|
|
14437
15060
|
},
|
|
14438
15061
|
"default": "['grid', 'list']"
|
|
14439
15062
|
},
|
|
15063
|
+
{
|
|
15064
|
+
"kind": "variable",
|
|
15065
|
+
"name": "MENU_TRIGGERS",
|
|
15066
|
+
"type": {
|
|
15067
|
+
"text": "['click', 'contextmenu']"
|
|
15068
|
+
},
|
|
15069
|
+
"default": "['click', 'contextmenu']"
|
|
15070
|
+
},
|
|
14440
15071
|
{
|
|
14441
15072
|
"kind": "variable",
|
|
14442
15073
|
"name": "MENU_CTX",
|
|
@@ -14531,6 +15162,13 @@
|
|
|
14531
15162
|
"text": "'sm' | 'md' | 'lg'"
|
|
14532
15163
|
},
|
|
14533
15164
|
"description": "Size: 'sm' | 'md' | 'lg'"
|
|
15165
|
+
},
|
|
15166
|
+
{
|
|
15167
|
+
"name": "trigger",
|
|
15168
|
+
"type": {
|
|
15169
|
+
"text": "string"
|
|
15170
|
+
},
|
|
15171
|
+
"description": "How the menu opens: 'click' (default) | 'contextmenu' (right-click or long-press opens at the pointer; left-click does nothing)"
|
|
14534
15172
|
}
|
|
14535
15173
|
],
|
|
14536
15174
|
"events": [
|
|
@@ -14607,6 +15245,14 @@
|
|
|
14607
15245
|
{
|
|
14608
15246
|
"url": "",
|
|
14609
15247
|
"description": "```html\n<ore-menu>\n <button slot=\"trigger\">Actions</button>\n <ore-menu-item value=\"edit\">Edit</ore-menu-item>\n <ore-menu-item value=\"delete\">Delete</ore-menu-item>\n</ore-menu>\n```"
|
|
15248
|
+
},
|
|
15249
|
+
{
|
|
15250
|
+
"url": "",
|
|
15251
|
+
"description": "```html\n<ore-menu trigger=\"contextmenu\">\n <p slot=\"trigger\">Right-click this text</p>\n <ore-menu-item value=\"copy\">Copy</ore-menu-item>\n <ore-menu-item value=\"paste\">Paste</ore-menu-item>\n</ore-menu>\n```"
|
|
15252
|
+
},
|
|
15253
|
+
{
|
|
15254
|
+
"url": "",
|
|
15255
|
+
"description": "```html\n<!-- Nested submenu: items slotted into `submenu` fly out on hover, ArrowRight, or Enter -->\n<ore-menu>\n <button slot=\"trigger\">File</button>\n <ore-menu-item value=\"new\">New</ore-menu-item>\n <ore-menu-item>\n Open recent\n <ore-menu-item slot=\"submenu\" value=\"recent-1\">report.pdf</ore-menu-item>\n <ore-menu-item slot=\"submenu\" value=\"recent-2\">notes.md</ore-menu-item>\n </ore-menu-item>\n</ore-menu>\n```"
|
|
14610
15256
|
}
|
|
14611
15257
|
]
|
|
14612
15258
|
},
|
|
@@ -14617,14 +15263,14 @@
|
|
|
14617
15263
|
"text": "'ore-menu-item'"
|
|
14618
15264
|
},
|
|
14619
15265
|
"default": "'ore-menu-item'",
|
|
14620
|
-
"description": "A selectable action item used inside `<ore-menu
|
|
15266
|
+
"description": "A selectable action item used inside `<ore-menu>`.\n\nContent slotted into `submenu` turns the item into a submenu trigger: it grows a trailing\nchevron, reports `aria-haspopup=\"menu\"` / `aria-expanded`, and flies out a nested menu panel on\nhover, ArrowRight, Enter, Space, or a click. A trigger is never selectable — it emits no `select`\nand carries no value — and its children stay out of the parent menu's arrow navigation, so the\nparent's rows always match what the pointer sees. Escape and ArrowLeft close the flyout and hand\nfocus back to the trigger; selecting a child closes the whole chain. Submenus nest to any depth."
|
|
14621
15267
|
},
|
|
14622
15268
|
{
|
|
14623
15269
|
"kind": "class",
|
|
14624
15270
|
"name": "OreMenuItemElement",
|
|
14625
15271
|
"tagName": "ore-menu-item",
|
|
14626
15272
|
"customElement": true,
|
|
14627
|
-
"description": "A selectable action item used inside `<ore-menu
|
|
15273
|
+
"description": "A selectable action item used inside `<ore-menu>`.\nContent slotted into `submenu` turns the item into a submenu trigger: it grows a trailing\nchevron, reports `aria-haspopup=\"menu\"` / `aria-expanded`, and flies out a nested menu panel on\nhover, ArrowRight, Enter, Space, or a click. A trigger is never selectable — it emits no `select`\nand carries no value — and its children stay out of the parent menu's arrow navigation, so the\nparent's rows always match what the pointer sees. Escape and ArrowLeft close the flyout and hand\nfocus back to the trigger; selecting a child closes the whole chain. Submenus nest to any depth.",
|
|
14628
15274
|
"summary": "",
|
|
14629
15275
|
"attributes": [
|
|
14630
15276
|
{
|
|
@@ -14664,6 +15310,10 @@
|
|
|
14664
15310
|
{
|
|
14665
15311
|
"name": "icon",
|
|
14666
15312
|
"description": "Optional leading icon content"
|
|
15313
|
+
},
|
|
15314
|
+
{
|
|
15315
|
+
"name": "submenu",
|
|
15316
|
+
"description": "Nested menu items that turn this item into a submenu trigger"
|
|
14667
15317
|
}
|
|
14668
15318
|
],
|
|
14669
15319
|
"cssParts": [
|
|
@@ -14678,6 +15328,10 @@
|
|
|
14678
15328
|
{
|
|
14679
15329
|
"name": "icon-slot",
|
|
14680
15330
|
"description": "Leading icon slot container."
|
|
15331
|
+
},
|
|
15332
|
+
{
|
|
15333
|
+
"name": "submenu",
|
|
15334
|
+
"description": "Floating submenu panel (present only meaningful when the `submenu` slot is filled)."
|
|
14681
15335
|
}
|
|
14682
15336
|
],
|
|
14683
15337
|
"cssProperties": [
|
|
@@ -14710,6 +15364,10 @@
|
|
|
14710
15364
|
{
|
|
14711
15365
|
"url": "",
|
|
14712
15366
|
"description": "```html\n<ore-menu-item value=\"edit\">Edit</ore-menu-item>\n<ore-menu-item value=\"delete\" disabled>Delete</ore-menu-item>\n<ore-menu-item type=\"checkbox\" value=\"wrap\" checked>Word wrap</ore-menu-item>\n<ore-menu-item type=\"radio\" value=\"left\">Align left</ore-menu-item>\n```"
|
|
15367
|
+
},
|
|
15368
|
+
{
|
|
15369
|
+
"url": "",
|
|
15370
|
+
"description": "```html\n<!-- Submenu trigger: the label is the row, `submenu` holds the flyout's items -->\n<ore-menu-item>\n Share\n <ore-menu-item slot=\"submenu\" value=\"mail\">Email</ore-menu-item>\n <ore-menu-item slot=\"submenu\" value=\"link\">Copy link</ore-menu-item>\n</ore-menu-item>\n```"
|
|
14713
15371
|
}
|
|
14714
15372
|
]
|
|
14715
15373
|
},
|
|
@@ -14910,6 +15568,30 @@
|
|
|
14910
15568
|
],
|
|
14911
15569
|
"description": "Shared dialog-control composable for `ore-dialog` and `ore-drawer`.\n\nOwns: `isOpen`, close-reason tracking, focus management, `overlay`,\n`requestClose`, background lock/unlock, and the `close` event handler.\nComponents supply only their unique behavior via callbacks and `onNativeClose`."
|
|
14912
15570
|
},
|
|
15571
|
+
{
|
|
15572
|
+
"kind": "function",
|
|
15573
|
+
"name": "bindFloatingClick",
|
|
15574
|
+
"return": {
|
|
15575
|
+
"type": {
|
|
15576
|
+
"text": "() => void"
|
|
15577
|
+
}
|
|
15578
|
+
},
|
|
15579
|
+
"parameters": [
|
|
15580
|
+
{
|
|
15581
|
+
"name": "trigger",
|
|
15582
|
+
"type": {
|
|
15583
|
+
"text": "HTMLElement"
|
|
15584
|
+
}
|
|
15585
|
+
},
|
|
15586
|
+
{
|
|
15587
|
+
"name": "handlers",
|
|
15588
|
+
"type": {
|
|
15589
|
+
"text": "{ close: () => void; isOpen: () => boolean; open: () => void }"
|
|
15590
|
+
}
|
|
15591
|
+
}
|
|
15592
|
+
],
|
|
15593
|
+
"description": "A pointer press may focus and open the panel before its click arrives. Toggle from the pre-press state."
|
|
15594
|
+
},
|
|
14913
15595
|
{
|
|
14914
15596
|
"kind": "function",
|
|
14915
15597
|
"name": "useFloatingTrigger",
|