@taprootio/espalier 4.3.0 → 4.5.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.
- package/CHANGELOG.md +17 -0
- package/css/fonts/font-fallback-profiles.json +1 -0
- package/custom-elements.json +2338 -1491
- package/dist/action-menu/esp-action-menu-item.js +7 -4
- package/dist/avatar/esp-avatar.js +14 -8
- package/dist/avatar/esp-profile-chip.js +4 -1
- package/dist/badge/esp-badge.js +7 -4
- package/dist/box/esp-box.d.ts +1 -1
- package/dist/checkbox/esp-checkbox.js +6 -3
- package/dist/color-picker/esp-color-picker.js +1 -1
- package/dist/data-cell/esp-data-cell.js +6 -3
- package/dist/date-picker/helpers/styles.js +10 -4
- package/dist/details/esp-details.d.ts +4 -4
- package/dist/details/esp-details.js +11 -5
- package/dist/empty-state/esp-empty-state.js +16 -7
- package/dist/flyout/esp-flyout.js +5 -2
- package/dist/font-picker/esp-font-picker.d.ts +1 -0
- package/dist/font-picker/esp-font-picker.js +4 -4
- package/dist/footer/esp-footer-link-group.js +12 -6
- package/dist/footer/esp-footer.js +21 -6
- package/dist/form-item/esp-form-item.js +4 -1
- package/dist/header/esp-header.d.ts +2 -1
- package/dist/header/esp-header.js +24 -6
- package/dist/help/esp-help-button.d.ts +1 -1
- package/dist/help/help-document.js +4 -4
- package/dist/index.d.ts +2 -1
- package/dist/index.js +1 -1
- package/dist/lightbox/esp-lightbox.d.ts +1 -1
- package/dist/page/esp-page.d.ts +1 -0
- package/dist/page/esp-page.js +40 -783
- package/dist/page/esp-page.styles.js +748 -0
- package/dist/page/workspace-geometry.js +1 -0
- package/dist/page/workspace-resize-session.js +1 -0
- package/dist/page/workspace-width.js +1 -1
- package/dist/pickers/esp-picker-menu.js +6 -6
- package/dist/progress/esp-progress.js +11 -5
- package/dist/radio-button/esp-radio-button.js +6 -3
- package/dist/root/esp-root.d.ts +8 -0
- package/dist/root/esp-root.js +13 -7
- package/dist/root/helpers/compute-theme-properties.js +1 -1
- package/dist/search/esp-search.js +10 -4
- package/dist/shared/esp-element-base.js +20 -4
- package/dist/shared/font-helpers.d.ts +26 -0
- package/dist/shared/font-helpers.js +1 -1
- package/dist/shared/font-plan.d.ts +90 -0
- package/dist/shared/font-plan.js +5 -0
- package/dist/shared/scale-engine.js +1 -1
- package/dist/shared/theme.d.ts +28 -4
- package/dist/shared/theme.js +1 -1
- package/dist/slider/esp-slider.js +8 -5
- package/dist/status-indicator/esp-status-indicator.d.ts +1 -1
- package/dist/switch/esp-switch.js +11 -5
- package/dist/tabs/esp-tab-group.js +6 -3
- package/dist/tabs/esp-tab.js +6 -3
- package/dist/tree/esp-tree.js +4 -1
- package/espalier.css-data.json +9 -5
- package/espalier.token-manifest.json +13 -5
- package/licenses/ASSET_PROVENANCE.md +2 -1
- package/licenses/THIRD_PARTY_NOTICES.md +35 -0
- package/licenses/asset-provenance.json +26 -2
- package/package.json +16 -2
package/custom-elements.json
CHANGED
|
@@ -1327,6 +1327,190 @@
|
|
|
1327
1327
|
"module": "./shared/font-helpers.js"
|
|
1328
1328
|
}
|
|
1329
1329
|
},
|
|
1330
|
+
{
|
|
1331
|
+
"kind": "js",
|
|
1332
|
+
"name": "googleFontStylesheetUrl",
|
|
1333
|
+
"declaration": {
|
|
1334
|
+
"name": "googleFontStylesheetUrl",
|
|
1335
|
+
"module": "./shared/font-helpers.js"
|
|
1336
|
+
}
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
"kind": "js",
|
|
1340
|
+
"name": "isLocalFontFamily",
|
|
1341
|
+
"declaration": {
|
|
1342
|
+
"name": "isLocalFontFamily",
|
|
1343
|
+
"module": "./shared/font-helpers.js"
|
|
1344
|
+
}
|
|
1345
|
+
},
|
|
1346
|
+
{
|
|
1347
|
+
"kind": "js",
|
|
1348
|
+
"name": "normalizeFontFaceWeight",
|
|
1349
|
+
"declaration": {
|
|
1350
|
+
"name": "normalizeFontFaceWeight",
|
|
1351
|
+
"module": "./shared/font-helpers.js"
|
|
1352
|
+
}
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
"kind": "js",
|
|
1356
|
+
"name": "removeRuntimeGoogleFontLink",
|
|
1357
|
+
"declaration": {
|
|
1358
|
+
"name": "removeRuntimeGoogleFontLink",
|
|
1359
|
+
"module": "./shared/font-helpers.js"
|
|
1360
|
+
}
|
|
1361
|
+
},
|
|
1362
|
+
{
|
|
1363
|
+
"kind": "js",
|
|
1364
|
+
"name": "removeRuntimeGoogleFontLinks",
|
|
1365
|
+
"declaration": {
|
|
1366
|
+
"name": "removeRuntimeGoogleFontLinks",
|
|
1367
|
+
"module": "./shared/font-helpers.js"
|
|
1368
|
+
}
|
|
1369
|
+
},
|
|
1370
|
+
{
|
|
1371
|
+
"kind": "js",
|
|
1372
|
+
"name": "syncRuntimeGoogleFontLink",
|
|
1373
|
+
"declaration": {
|
|
1374
|
+
"name": "syncRuntimeGoogleFontLink",
|
|
1375
|
+
"module": "./shared/font-helpers.js"
|
|
1376
|
+
}
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
"kind": "js",
|
|
1380
|
+
"name": "RUNTIME_GOOGLE_FONT_OWNER_ATTR",
|
|
1381
|
+
"declaration": {
|
|
1382
|
+
"name": "RUNTIME_GOOGLE_FONT_OWNER_ATTR",
|
|
1383
|
+
"module": "./shared/font-helpers.js"
|
|
1384
|
+
}
|
|
1385
|
+
},
|
|
1386
|
+
{
|
|
1387
|
+
"kind": "js",
|
|
1388
|
+
"name": "RuntimeGoogleFontLinkOptions",
|
|
1389
|
+
"declaration": {
|
|
1390
|
+
"name": "RuntimeGoogleFontLinkOptions",
|
|
1391
|
+
"module": "./shared/font-helpers.js"
|
|
1392
|
+
}
|
|
1393
|
+
},
|
|
1394
|
+
{
|
|
1395
|
+
"kind": "js",
|
|
1396
|
+
"name": "compileFontPlan",
|
|
1397
|
+
"declaration": {
|
|
1398
|
+
"name": "compileFontPlan",
|
|
1399
|
+
"module": "./shared/font-plan.js"
|
|
1400
|
+
}
|
|
1401
|
+
},
|
|
1402
|
+
{
|
|
1403
|
+
"kind": "js",
|
|
1404
|
+
"name": "fontFallbackAliases",
|
|
1405
|
+
"declaration": {
|
|
1406
|
+
"name": "fontFallbackAliases",
|
|
1407
|
+
"module": "./shared/font-plan.js"
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"kind": "js",
|
|
1412
|
+
"name": "fontFallbackBaseIndexes",
|
|
1413
|
+
"declaration": {
|
|
1414
|
+
"name": "fontFallbackBaseIndexes",
|
|
1415
|
+
"module": "./shared/font-plan.js"
|
|
1416
|
+
}
|
|
1417
|
+
},
|
|
1418
|
+
{
|
|
1419
|
+
"kind": "js",
|
|
1420
|
+
"name": "fontFaceRequestKey",
|
|
1421
|
+
"declaration": {
|
|
1422
|
+
"name": "fontFaceRequestKey",
|
|
1423
|
+
"module": "./shared/font-plan.js"
|
|
1424
|
+
}
|
|
1425
|
+
},
|
|
1426
|
+
{
|
|
1427
|
+
"kind": "js",
|
|
1428
|
+
"name": "CompileFontPlanOptions",
|
|
1429
|
+
"declaration": {
|
|
1430
|
+
"name": "CompileFontPlanOptions",
|
|
1431
|
+
"module": "./shared/font-plan.js"
|
|
1432
|
+
}
|
|
1433
|
+
},
|
|
1434
|
+
{
|
|
1435
|
+
"kind": "js",
|
|
1436
|
+
"name": "CompiledFontPlan",
|
|
1437
|
+
"declaration": {
|
|
1438
|
+
"name": "CompiledFontPlan",
|
|
1439
|
+
"module": "./shared/font-plan.js"
|
|
1440
|
+
}
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
"kind": "js",
|
|
1444
|
+
"name": "FontFaceRequest",
|
|
1445
|
+
"declaration": {
|
|
1446
|
+
"name": "FontFaceRequest",
|
|
1447
|
+
"module": "./shared/font-plan.js"
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
{
|
|
1451
|
+
"kind": "js",
|
|
1452
|
+
"name": "FontFallbackCatalog",
|
|
1453
|
+
"declaration": {
|
|
1454
|
+
"name": "FontFallbackCatalog",
|
|
1455
|
+
"module": "./shared/font-plan.js"
|
|
1456
|
+
}
|
|
1457
|
+
},
|
|
1458
|
+
{
|
|
1459
|
+
"kind": "js",
|
|
1460
|
+
"name": "FontFallbackProfile",
|
|
1461
|
+
"declaration": {
|
|
1462
|
+
"name": "FontFallbackProfile",
|
|
1463
|
+
"module": "./shared/font-plan.js"
|
|
1464
|
+
}
|
|
1465
|
+
},
|
|
1466
|
+
{
|
|
1467
|
+
"kind": "js",
|
|
1468
|
+
"name": "FontPlanProfileMiss",
|
|
1469
|
+
"declaration": {
|
|
1470
|
+
"name": "FontPlanProfileMiss",
|
|
1471
|
+
"module": "./shared/font-plan.js"
|
|
1472
|
+
}
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"kind": "js",
|
|
1476
|
+
"name": "FontPlanScheme",
|
|
1477
|
+
"declaration": {
|
|
1478
|
+
"name": "FontPlanScheme",
|
|
1479
|
+
"module": "./shared/font-plan.js"
|
|
1480
|
+
}
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
"kind": "js",
|
|
1484
|
+
"name": "FontPlanSlot",
|
|
1485
|
+
"declaration": {
|
|
1486
|
+
"name": "FontPlanSlot",
|
|
1487
|
+
"module": "./shared/font-plan.js"
|
|
1488
|
+
}
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
"kind": "js",
|
|
1492
|
+
"name": "FontPlanStyle",
|
|
1493
|
+
"declaration": {
|
|
1494
|
+
"name": "FontPlanStyle",
|
|
1495
|
+
"module": "./shared/font-plan.js"
|
|
1496
|
+
}
|
|
1497
|
+
},
|
|
1498
|
+
{
|
|
1499
|
+
"kind": "js",
|
|
1500
|
+
"name": "FontPlanTheme",
|
|
1501
|
+
"declaration": {
|
|
1502
|
+
"name": "FontPlanTheme",
|
|
1503
|
+
"module": "./shared/font-plan.js"
|
|
1504
|
+
}
|
|
1505
|
+
},
|
|
1506
|
+
{
|
|
1507
|
+
"kind": "js",
|
|
1508
|
+
"name": "ResolvedFontSource",
|
|
1509
|
+
"declaration": {
|
|
1510
|
+
"name": "ResolvedFontSource",
|
|
1511
|
+
"module": "./shared/font-plan.js"
|
|
1512
|
+
}
|
|
1513
|
+
},
|
|
1330
1514
|
{
|
|
1331
1515
|
"kind": "js",
|
|
1332
1516
|
"name": "getGoogleFonts",
|
|
@@ -7338,7 +7522,7 @@
|
|
|
7338
7522
|
],
|
|
7339
7523
|
"cssParts": [
|
|
7340
7524
|
{
|
|
7341
|
-
"description": "The box element. The default style is a padded element displayed as a box. Style the CSS part to create cards, forms, and other UI elements. Here is a card style: ```html <style> esp-box.card-box::part(box) { display: grid; grid-template-rows: min-content min-content; gap: var(--esp-size-padding); padding: 0; } esp-box.card-box header { background: oklch(from var(--esp-color-complementary) var(--esp-l-text) c h); color: oklch(from var(--esp-color-complementary) var(--esp-l-surface) c h); font-size: var(--esp-size-big-to-large); padding: var(--esp-size-padding); line-height: 1.1; font-family: var(--esp-font-headings); } esp-box.card-box div { padding: var(--esp-size-padding); } </style> <esp-box class=\"card-box\"> <header>Box as a card</header> <div> <p>Card content.</p> </div> </esp-box> ```",
|
|
7525
|
+
"description": "The box element. The default style is a padded element displayed as a box. Style the CSS part to create cards, forms, and other UI elements. Here is a card style: ```html <style> esp-box.card-box::part(box) { display: grid; grid-template-rows: min-content min-content; gap: var(--esp-size-padding); padding: 0; } esp-box.card-box header { background: oklch(from var(--esp-color-complementary) var(--esp-l-text) c h); color: oklch(from var(--esp-color-complementary) var(--esp-l-surface) c h); font-size: var(--esp-size-big-to-large); padding: var(--esp-size-padding); line-height: 1.1; font-family: var(--esp-font-headings, var(--esp-font-body, system-ui, sans-serif)); } esp-box.card-box div { padding: var(--esp-size-padding); } </style> <esp-box class=\"card-box\"> <header>Box as a card</header> <div> <p>Card content.</p> </div> </esp-box> ```",
|
|
7342
7526
|
"name": "box"
|
|
7343
7527
|
}
|
|
7344
7528
|
],
|
|
@@ -18421,7 +18605,7 @@
|
|
|
18421
18605
|
"type": {
|
|
18422
18606
|
"text": "CustomEvent<{ open: boolean }>"
|
|
18423
18607
|
},
|
|
18424
|
-
"description": "Fired when the details element is opened or closed. ```html <esp-details summary=\"Toggle me\"> <p>Watch the console for toggle events.</p> </esp-details> <script> const details = findByTagName(\"esp-details\")[0]; details.addEventListener(\"esp-details-toggle\", (ev) => { console.log(\"Open:\", ev.detail.open); }); </script> ``` ### Scroll-stability regression harness ```html <esp-info intent=\"warning\" icon=\"info-i\"> <strong>Manual verification (Firefox):</strong> <ol> <li>Scroll so the details summary and top of the grid are both visible.</li> <li>Open and close the details panel several times — the window should stay put.</li> <li>Leave the panel open and click a sortable grid header — the window should not jump.</li> <li>Toggle a checkbox, click Apply, and repeat the sort — the viewport should remain stable.</li> </ol> </esp-info> <div style=\"height:40vh; background:repeating-linear-gradient(180deg,var(--esp-color-layer-2) 0 1px,transparent 1px 2rem); display:flex; align-items:center; justify-content:center; color:oklch(from var(--esp-color-text) l c h / 0.5); font-family:var(--esp-font-body);\"> ↑ Spacer — scroll down to reach the filter panel ↑ </div> <esp-details summary=\"Advanced filters\"> <div style=\"display:flex; flex-direction:column; gap:var(--esp-size-small);\"> <label style=\"display:flex; align-items:center; gap:var(--esp-size-tiny); font-family:var(--esp-font-body); color:var(--esp-color-text);\"> <input type=\"checkbox\" value=\"active\" /> Active only </label> <label style=\"display:flex; align-items:center; gap:var(--esp-size-tiny); font-family:var(--esp-font-body); color:var(--esp-color-text);\"> <input type=\"checkbox\" value=\"flagged\" /> Flagged </label> <esp-button id=\"scroll-test-apply\" label=\"Apply filters\"></esp-button> </div> </esp-details> <esp-grid page-size=\"30\" grid-height=\"50vh\" style=\"margin-top:var(--esp-size-small);\"> <esp-grid-column header=\"Row\" field-name=\"id\" sortable sort-type=\"number\" width=\"80px\"></esp-grid-column> <esp-grid-column header=\"Title\" field-name=\"title\" sortable width=\"200px\" grow></esp-grid-column> <esp-grid-column header=\"Status\" field-name=\"status\" width=\"120px\"></esp-grid-column> </esp-grid> <div style=\"height:60vh; background:repeating-linear-gradient(180deg,var(--esp-color-layer-2) 0 1px,transparent 1px 2rem); display:flex; align-items:center; justify-content:center; color:oklch(from var(--esp-color-text) l c h / 0.5); font-family:var(--esp-font-body);\"> ↓ Spacer — extra page length below the grid ↓ </div> <script> const allRows = Array.from({ length: 200 }, (_, i) => ({ id: i + 1, title: \"Page \" + (i + 1), status: i % 3 === 0 ? \"active\" : i % 3 === 1 ? \"flagged\" : \"archived\", })); let activeFilters = []; const grid = findByTagName(\"esp-grid\")[0]; function applyFetchPage() { grid.fetchPage = async ({ cursor, limit, sortField, sortOrder }) => { await new Promise(r => setTimeout(r, 80)); let data = activeFilters.length ? allRows.filter(r => activeFilters.includes(r.status)) : [...allRows]; if (sortField) { data.sort((a, b) => { const dir = sortOrder === \"desc\" ? -1 : 1; return a[sortField] > b[sortField] ? dir : -dir; }); } const start = cursor ? parseInt(cursor) : 0; const items = data.slice(start, start + limit); const next = start + limit; return { items, nextCursor: next < data.length ? String(next) : null }; }; } applyFetchPage(); findById(\"scroll-test-apply\") .addEventListener(\"click\", () => { activeFilters = Array.from( findByTagName(\"input\") ).filter(cb => cb.checked).map(cb => cb.value); applyFetchPage(); grid.reload(); }); </script> ```",
|
|
18608
|
+
"description": "Fired when the details element is opened or closed. ```html <esp-details summary=\"Toggle me\"> <p>Watch the console for toggle events.</p> </esp-details> <script> const details = findByTagName(\"esp-details\")[0]; details.addEventListener(\"esp-details-toggle\", (ev) => { console.log(\"Open:\", ev.detail.open); }); </script> ``` ### Scroll-stability regression harness ```html <esp-info intent=\"warning\" icon=\"info-i\"> <strong>Manual verification (Firefox):</strong> <ol> <li>Scroll so the details summary and top of the grid are both visible.</li> <li>Open and close the details panel several times — the window should stay put.</li> <li>Leave the panel open and click a sortable grid header — the window should not jump.</li> <li>Toggle a checkbox, click Apply, and repeat the sort — the viewport should remain stable.</li> </ol> </esp-info> <div style=\"height:40vh; background:repeating-linear-gradient(180deg,var(--esp-color-layer-2) 0 1px,transparent 1px 2rem); display:flex; align-items:center; justify-content:center; color:oklch(from var(--esp-color-text) l c h / 0.5); font-family:var(--esp-font-body,system-ui,sans-serif);\"> ↑ Spacer — scroll down to reach the filter panel ↑ </div> <esp-details summary=\"Advanced filters\"> <div style=\"display:flex; flex-direction:column; gap:var(--esp-size-small);\"> <label style=\"display:flex; align-items:center; gap:var(--esp-size-tiny); font-family:var(--esp-font-body,system-ui,sans-serif); color:var(--esp-color-text);\"> <input type=\"checkbox\" value=\"active\" /> Active only </label> <label style=\"display:flex; align-items:center; gap:var(--esp-size-tiny); font-family:var(--esp-font-body,system-ui,sans-serif); color:var(--esp-color-text);\"> <input type=\"checkbox\" value=\"flagged\" /> Flagged </label> <esp-button id=\"scroll-test-apply\" label=\"Apply filters\"></esp-button> </div> </esp-details> <esp-grid page-size=\"30\" grid-height=\"50vh\" style=\"margin-top:var(--esp-size-small);\"> <esp-grid-column header=\"Row\" field-name=\"id\" sortable sort-type=\"number\" width=\"80px\"></esp-grid-column> <esp-grid-column header=\"Title\" field-name=\"title\" sortable width=\"200px\" grow></esp-grid-column> <esp-grid-column header=\"Status\" field-name=\"status\" width=\"120px\"></esp-grid-column> </esp-grid> <div style=\"height:60vh; background:repeating-linear-gradient(180deg,var(--esp-color-layer-2) 0 1px,transparent 1px 2rem); display:flex; align-items:center; justify-content:center; color:oklch(from var(--esp-color-text) l c h / 0.5); font-family:var(--esp-font-body,system-ui,sans-serif);\"> ↓ Spacer — extra page length below the grid ↓ </div> <script> const allRows = Array.from({ length: 200 }, (_, i) => ({ id: i + 1, title: \"Page \" + (i + 1), status: i % 3 === 0 ? \"active\" : i % 3 === 1 ? \"flagged\" : \"archived\", })); let activeFilters = []; const grid = findByTagName(\"esp-grid\")[0]; function applyFetchPage() { grid.fetchPage = async ({ cursor, limit, sortField, sortOrder }) => { await new Promise(r => setTimeout(r, 80)); let data = activeFilters.length ? allRows.filter(r => activeFilters.includes(r.status)) : [...allRows]; if (sortField) { data.sort((a, b) => { const dir = sortOrder === \"desc\" ? -1 : 1; return a[sortField] > b[sortField] ? dir : -dir; }); } const start = cursor ? parseInt(cursor) : 0; const items = data.slice(start, start + limit); const next = start + limit; return { items, nextCursor: next < data.length ? String(next) : null }; }; } applyFetchPage(); findById(\"scroll-test-apply\") .addEventListener(\"click\", () => { activeFilters = Array.from( findByTagName(\"input\") ).filter(cb => cb.checked).map(cb => cb.value); applyFetchPage(); grid.reload(); }); </script> ```",
|
|
18425
18609
|
"name": "esp-details-toggle"
|
|
18426
18610
|
}
|
|
18427
18611
|
],
|
|
@@ -23399,6 +23583,23 @@
|
|
|
23399
23583
|
],
|
|
23400
23584
|
"description": "Build the CSS `font-family` value used by picker items.\nConsumers should reference this when setting `styles.fontFamily`\non picker items to match the preview `@font-face` name."
|
|
23401
23585
|
},
|
|
23586
|
+
{
|
|
23587
|
+
"kind": "function",
|
|
23588
|
+
"name": "getFontPreviewFamily",
|
|
23589
|
+
"return": {
|
|
23590
|
+
"type": {
|
|
23591
|
+
"text": "string"
|
|
23592
|
+
}
|
|
23593
|
+
},
|
|
23594
|
+
"parameters": [
|
|
23595
|
+
{
|
|
23596
|
+
"name": "font",
|
|
23597
|
+
"type": {
|
|
23598
|
+
"text": "FontPickerFont"
|
|
23599
|
+
}
|
|
23600
|
+
}
|
|
23601
|
+
]
|
|
23602
|
+
},
|
|
23402
23603
|
{
|
|
23403
23604
|
"kind": "class",
|
|
23404
23605
|
"description": "Font picker component backed by the Google Fonts catalog by default.\n\nThe font catalog is loaded at runtime from a build-generated\n`font-definitions.json` file served alongside the individual font CSS\nfiles. Run `npm run build-fonts` to generate both assets.\n\nSet `font-source=\"web-safe\"` for email editors or other places where\nthe picker should offer only CSS font stacks that do not need font\ndownloads.\n\n**Required setup:**\n1. Serve the `css/fonts/` directory under a public path.\n2. Point `<esp-root font-css-root=\"/your/path/\">` at that path.\n\n```html\n<esp-root font-css-root=\"/css/fonts/\">\n <esp-form-item label=\"Pick a font\">\n <esp-font-picker></esp-font-picker>\n </esp-form-item>\n</esp-root>\n```\n\n```html\n<esp-form-item label=\"Email font\">\n <esp-font-picker font-source=\"web-safe\"></esp-font-picker>\n</esp-form-item>\n```",
|
|
@@ -24528,6 +24729,14 @@
|
|
|
24528
24729
|
"module": "dist/font-picker/esp-font-picker.js"
|
|
24529
24730
|
}
|
|
24530
24731
|
},
|
|
24732
|
+
{
|
|
24733
|
+
"kind": "js",
|
|
24734
|
+
"name": "getFontPreviewFamily",
|
|
24735
|
+
"declaration": {
|
|
24736
|
+
"name": "getFontPreviewFamily",
|
|
24737
|
+
"module": "dist/font-picker/esp-font-picker.js"
|
|
24738
|
+
}
|
|
24739
|
+
},
|
|
24531
24740
|
{
|
|
24532
24741
|
"kind": "js",
|
|
24533
24742
|
"name": "EspalierFontPicker",
|
|
@@ -31063,7 +31272,7 @@
|
|
|
31063
31272
|
"name": "--esp-header-brand-color"
|
|
31064
31273
|
},
|
|
31065
31274
|
{
|
|
31066
|
-
"description": "The configured brand font family. Defaults
|
|
31275
|
+
"description": "The configured brand font family. Defaults through `--esp-font-brand` and `--esp-font-headings` to `--esp-font-body`.",
|
|
31067
31276
|
"name": "--esp-header-brand-font-family"
|
|
31068
31277
|
},
|
|
31069
31278
|
{
|
|
@@ -31102,6 +31311,10 @@
|
|
|
31102
31311
|
"description": "The configured brand hover text decoration. Defaults to `none`.",
|
|
31103
31312
|
"name": "--esp-header-brand-hover-decoration"
|
|
31104
31313
|
},
|
|
31314
|
+
{
|
|
31315
|
+
"description": "The configured brand hover transform. Defaults to `none`.",
|
|
31316
|
+
"name": "--esp-header-brand-hover-transform"
|
|
31317
|
+
},
|
|
31105
31318
|
{
|
|
31106
31319
|
"description": "Background used before scroll for transparent headers. Defaults to `transparent`.",
|
|
31107
31320
|
"name": "--esp-header-transparent-background"
|
|
@@ -48965,6 +49178,30 @@
|
|
|
48965
49178
|
}
|
|
48966
49179
|
]
|
|
48967
49180
|
},
|
|
49181
|
+
{
|
|
49182
|
+
"kind": "javascript-module",
|
|
49183
|
+
"path": "dist/page/esp-page.styles.js",
|
|
49184
|
+
"declarations": [
|
|
49185
|
+
{
|
|
49186
|
+
"kind": "variable",
|
|
49187
|
+
"name": "pageStyles",
|
|
49188
|
+
"type": {
|
|
49189
|
+
"text": "array"
|
|
49190
|
+
},
|
|
49191
|
+
"default": "[ ...EspalierElementBase.styles, css` :host { --_esp-page-resolved-max-width: var( --esp-page-main-max-width, var(--esp-page-max-width, 1536px) ); --_esp-page-main-min-width: var( --esp-page-main-min-width, var(--esp-page-preview-min-main-width, 30rem) ); --_esp-page-preview-resolved-min-width: var( --esp-page-preview-width, var(--esp-page-preview-min-width, 22.5rem) ); --_esp-page-preview-resolved-max-width: var( --esp-page-preview-width, var(--esp-page-preview-max-width, 48rem) ); --_esp-page-flyout-resolved-min-width: var( --esp-page-flyout-width, var(--esp-page-flyout-min-width, 20rem) ); --_esp-page-flyout-resolved-max-width: var( --esp-page-flyout-width, var(--esp-page-flyout-max-width, 30rem) ); --_esp-page-preview-used-width: 0px; --_esp-page-flyout-used-width: 0px; --_esp-page-workspace-track: minmax( calc(var(--_esp-page-flyout-min) + var(--_esp-page-preview-min)), calc(var(--_esp-page-preview-used-width) + var(--_esp-page-flyout-used-width)) ); /* The cap sizes the main content *well*: the main track maxes at the cap and the surplus beyond the surface becomes canvas gutters. (Contract preserved from v2.1.0.) */ --_esp-page-main-track: minmax(0, var(--_esp-page-resolved-max-width)); /* Canvas gutter weights (physical left/right in LTR). The flexible gutters claim only the space left once the main track reaches its cap, so they appear exactly when the surface exceeds the cap — at any cap, with no viewport breakpoint (ADR-011). The start default keeps no leading gutter and lets all surplus collect trailing. Empty asides collapse to zero because the header and footer regions are inline-size-contained and no longer leak their min-content into the aside tracks (see the .esp-page-top / .esp-page-footer rules). The fr weights are written as 0fr/1fr (never bare 0) so the track list stays pairwise-interpolable and the flyout open/close can animate via grid track interpolation where supported. */ --_esp-page-gutter-left: 0fr; --_esp-page-gutter-right: 1fr; /* Help and preview share an exact auxiliary workspace track before the outer trailing gutter. Opening help raises that track's safe minimum; the allocator supplies its concrete used width. */ --_esp-page-flyout-min: 0px; /* Preview starts at the surface edge before help. Reclaiming raises this minimum so the auxiliary track reserves both pane floors while the main track retains its own floor. */ --_esp-page-preview-min: 0px; /* A raised surface edge's drop shadow, cast in the trailing (inline-end) direction. The surface mirrors it onto both inline edges; a match-surface flyout casts only this trailing edge, so it lifts off the canvas while staying attached at its leading perforation (no shadow bleeding over the content it flies out from). */ --_esp-page-surface-edge-shadow: 0.75rem 0 1.5rem -0.75rem var(--esp-color-shadow); /* Resolve the surface shadow/border once (public override plus the built-in default) so the value is readable downstream — the surface layer and the match-surface flyout contract both consume it, and it stays a single source of truth. */ --_esp-page-surface-shadow: var( --esp-page-surface-shadow, -0.75rem 0 1.5rem -0.75rem var(--esp-color-shadow), var(--_esp-page-surface-edge-shadow) ); --_esp-page-surface-border: var(--esp-page-surface-border, none); --_esp-page-fixed-header-offset: var( --esp-page-fixed-header-offset, var(--esp-header-height, calc(4.5 * var(--esp-size-small))) ); display: block; } :host([kind=\"narrow\"]) { --_esp-page-resolved-max-width: var( --esp-page-main-max-width, var(--esp-page-max-width, 768px) ); } :host([align=\"center\"]) { --_esp-page-gutter-left: 1fr; --_esp-page-gutter-right: 1fr; } :host([align=\"end\"]) { --_esp-page-gutter-left: 1fr; --_esp-page-gutter-right: 0fr; } /* Full is unbounded only while the consumer has not supplied the explicit main maximum. The internal marker is synchronized from the computed public token before workspace allocation, allowing a finite full-kind authoring surface to retain normal alignment gutters. */ :host([kind=\"full\"]) { --_esp-page-resolved-max-width: var( --esp-page-main-max-width, var(--esp-page-max-width, none) ); } :host([kind=\"full\"]:not([data-main-max-configured])) { --_esp-page-main-track: 1fr; --_esp-page-gutter-left: 0fr; --_esp-page-gutter-right: 0fr; } /* Site: the marketing shell (ESP0174). The main region is always unbounded — slotted esp-section bands own their centered wells — so this is the unconfigured-full geometry, unconditionally, and align's gutter weights do not apply. Declared after the align rules so it wins on order. */ :host([kind=\"site\"]) { --_esp-page-resolved-max-width: none; --_esp-page-main-track: 1fr; --_esp-page-gutter-left: 0fr; --_esp-page-gutter-right: 0fr; } /* Flyout placement ladder (ESP0111). Preview and help occupy an exact auxiliary track between the main surface and the outer gutter: 1. spare canvas is converted into the allocated auxiliary track while main remains at its natural maximum 2. help and preview contract to their floors 3. an eligible linked navigation rail yields before the main track narrows toward its minimum 4. if the complete main + preview + help minimums do not fit, JS requests the flyout's existing modal overlay presentation 5. mobile → the media query below releases the minimum and esp-flyout itself becomes a fixed overlay drawer. The flyout-open host attribute is maintained by syncFlyoutState (Blink cannot match :has() inside :host(), so the state is mirrored instead). Declared after the align/kind rules so the open state wins. */ :host([flyout-open]) { --_esp-page-flyout-min: var(--_esp-page-flyout-resolved-min-width); } :host([preview-reclaiming]) { --_esp-page-preview-min: var(--_esp-page-preview-resolved-min-width); } /* Configured defaults and retained drag/keyboard choices participate in the same grid minima as automatic allocation. This lets a target that must reclaim main do so instead of overflowing the gutter, while the allocator still clamps private used widths before they reach Grid. */ :host([flyout-open][data-workspace-targeted]) { --_esp-page-flyout-min: var(--_esp-page-flyout-used-width); } :host([preview-reclaiming][data-workspace-targeted]) { --_esp-page-preview-min: var(--_esp-page-preview-used-width); } :host([flyout-open]), :host([preview-reclaiming]) { --_esp-page-main-track: minmax( var(--_esp-page-main-min-width), var(--_esp-page-resolved-max-width) ); } :host([kind=\"full\"]:not([data-main-max-configured])[flyout-open]), :host([kind=\"full\"]:not([data-main-max-configured])[preview-reclaiming]), :host([kind=\"site\"][flyout-open]), :host([kind=\"site\"][preview-reclaiming]) { --_esp-page-main-track: minmax(var(--_esp-page-main-min-width), 1fr); } /* Deliberate ADR-011 exception: like the esp-menu drawer (same 50em threshold), the flyout's overlay rung is a genuinely viewport-level decision — below it the flyout leaves the grid for a fixed drawer, so the gutter must release the minimum it was reserving. */ @media (max-width: 50em) { :host([flyout-open]) { --_esp-page-flyout-min: 0px; } :host([preview-reclaiming]) { --_esp-page-preview-min: 0px; } :host([flyout-open]), :host([preview-reclaiming]) { --_esp-page-main-track: minmax(0, var(--_esp-page-resolved-max-width)); } :host([kind=\"full\"]:not([data-main-max-configured])[flyout-open]), :host([kind=\"full\"]:not([data-main-max-configured])[preview-reclaiming]), :host([kind=\"site\"][flyout-open]), :host([kind=\"site\"][preview-reclaiming]) { --_esp-page-main-track: 1fr; } .esp-page > .esp-page-preview-space, .esp-page > .esp-page-workspace-resize-handles { display: none; } } /* A forced mode=\"overlay\" flyout is a fixed drawer at any viewport width, so its aside needs the same above-the-header hoist the sub-50em media rule gives the auto-mode drawer — without this the desktop drawer paints beneath the header (aside z 5 vs header z 20). Keyed off the flyout-overlay-open state attribute maintained by syncFlyoutState. */ :host([flyout-overlay-open]) .esp-page > div.esp-page-flyout { z-index: var(--esp-flyout-z-index, 3000); } /* A nested page's fixed drawer still participates in this page's main stacking context. Raise that complete context while the descendant modal is open so the drawer and vellum paint above this page's header instead of trapping their close control beneath it. */ :host([descendant-flyout-overlay-open]) .esp-page > div.esp-page-main { z-index: var(--esp-flyout-z-index, 3000); overflow: visible; } /* Trigger-anchored panels belong to the same document flow as their initiator. BiDirectionalStickyController can keep updating the wrapper's inline top, but position: static deliberately makes it inert until the anchored panel closes. */ :host([flyout-anchored]:not([flyout-full-height])) .esp-page > div.esp-page-flyout > .sticky-wrapper { position: static; } /* Full-document help owns the visible block-size rather than following one field. Span header through footer so the page footer cannot push a viewport-height panel out of view at the document boundary; the sticky controller pins this presentation to the viewport top. */ :host([flyout-full-height]) .esp-page > div.esp-page-flyout { grid-row: top-start / footer-end; z-index: calc(var(--esp-page-header-z-index, 20) + 2); } /* Anchored help connects back to its trigger across a visible preview. Raise only the sized help wrapper above the preview surface; the bridge itself is non-interactive inside esp-flyout. */ :host([flyout-anchored][preview-visible]) .esp-page > div.esp-page-flyout { z-index: calc(var(--esp-page-header-z-index, 20) + 2); } slot[name=\"flyout\"]::slotted(esp-flyout) { --_esp-flyout-used-width: var(--_esp-page-flyout-used-width); --_esp-flyout-preview-bridge-width: 0px; --_esp-flyout-preview-anchor-display: none; } :host([preview-visible]) slot[name=\"flyout\"]::slotted(esp-flyout) { --_esp-flyout-preview-bridge-width: var(--_esp-page-preview-used-width); --_esp-flyout-preview-anchor-display: block; } /* Flyout surface-match contract. A slotted esp-flyout with match-surface lifts its trailing edge with the surface's edge shadow, so the panel reads as a raised peer of the content surface rather than the shadowless tear-off. The leading edge keeps its perforation (the border is not overridden) and casts no shadow, so it stays attached at the tear line instead of floating over the content it flies out from. Opt-in and page-scoped: a standalone flyout has no surface to match and is unaffected. */ slot[name=\"flyout\"]::slotted(esp-flyout[match-surface]) { --esp-flyout-shadow: var(--_esp-page-surface-edge-shadow); } /* Header alignment contract. Published on the slotted esp-header (not :host) so it never shadows an inherited or author override and only the header-slot header adopts it — see the host-token-defaults architecture rule and ADR-005. max-width is the resolved cap; lead is the fraction of surplus placed before the content (0 = start, .5 = center, 1 = end). */ slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-max-width: var(--_esp-page-resolved-max-width); --esp-header-content-lead: 0; } :host([align=\"center\"]) slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-lead: 0.5; } :host([align=\"end\"]) slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-lead: 1; } /* full has no cap; publish 100% (not none) so the header contract calc resolves to zero surplus and leaves the header full-bleed. */ :host([kind=\"full\"]:not([data-main-max-configured])) slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-max-width: 100%; } /* Footer alignment mirrors the header behavior with footer-owned contract names. The full-bleed footer paints its own background; only its internal content adopts the page's cap and lead fraction. */ slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-max-width: var(--_esp-page-resolved-max-width); --esp-footer-content-lead: 0; } :host([align=\"center\"]) slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-lead: 0.5; } :host([align=\"end\"]) slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-lead: 1; } :host([kind=\"full\"]:not([data-main-max-configured])) slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-max-width: 100%; } /* Site: bar content aligns with the section wells, not a main cap. One public token governs the header, the footer, and every esp-section well, and the well is centered — declared after the align lead rules so the centered site column wins on order. */ :host([kind=\"site\"]) slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-max-width: var(--esp-page-well-max-width, 72rem); --esp-header-content-lead: 0.5; } :host([kind=\"site\"]) slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-max-width: var(--esp-page-well-max-width, 72rem); --esp-footer-content-lead: 0.5; } /* Contained shell: the header and footer ride the surface instead of the full viewport, so the whole page reads as one band on the canvas. Only their column placement changes — the full-height canvas and surface layers already do the rest. */ :host([contained]) .esp-page > div.esp-page-top, :host([contained]) .esp-page > div.esp-page-footer { grid-column: surface; } /* On the surface the bar already spans the content width, so the header fills it (no content padding) and drops its own shadow — the continuous surface edge shadow does the framing. */ :host([contained]) slot[name=\"header\"]::slotted(esp-header) { --esp-header-shadow: none; } /* The 100% contract belongs to the capped kinds, where the surface column IS the content width. A contained site keeps the shared well column (ESP0174) — sections and chrome must not split columns just because the shell is contained. */ :host([contained]:not([kind=\"site\"])) slot[name=\"header\"]::slotted(esp-header) { --esp-header-content-max-width: 100%; } :host([contained]:not([kind=\"site\"])) slot[name=\"footer\"]::slotted(esp-footer) { --esp-footer-content-max-width: 100%; } :host([kind=\"narrow\"]) .esp-page > div.esp-page-main { /* The golden reading measure, from the shared token (ESP0174); 66ch remains the fallback and the default emission. */ > ::slotted(*) { max-inline-size: var(--esp-measure, 66ch); } } #dialog-drop-zone { z-index: 4000; position: absolute; } :host([preview-visible]) .esp-page > div.esp-page-preview-space > .esp-page-preview { display: block; } :host([workspace-resizable][preview-visible]:not([flyout-overlay-open])) .esp-page > div.esp-page-workspace-resize-handles > .esp-page-main-preview-resize-handle, :host([workspace-resizable][flyout-open]:not([flyout-overlay-open])) .esp-page > div.esp-page-workspace-resize-handles > .esp-page-preview-flyout-resize-handle { display: block; } :host([workspace-resizable]:not([data-workspace-resize-ready])) .esp-page > .esp-page-workspace-resize-handles { display: none; } :host([workspace-resizable][data-workspace-trailing-edge-exposed]:not([flyout-overlay-open])) .esp-page > div.esp-page-workspace-resize-handles > .esp-page-workspace-end-resize-handle, :host([workspace-resizable][data-workspace-position-held]:not([flyout-overlay-open])) .esp-page > div.esp-page-workspace-resize-handles > .esp-page-workspace-end-resize-handle { display: block; } /* Pointer-owned resizing controls the logical leading gutter. It stays fixed for zero-sum pane trades and yields as an outward drag consumes centered outside canvas, keeping the active separator under the pointer in both cases. On release JS moves this pixel track to the aligned target; the normal grid transition supplies the glide before the intrinsic fr gutter contract resumes. */ :host([data-workspace-position-held]) { --_esp-page-gutter-left: var(--_esp-page-resize-leading-gutter-width, 0px); --_esp-page-gutter-right: 1fr; } :host([data-workspace-resizing]) { cursor: col-resize; user-select: none; } /* The grid-track glide that makes programmatic open/close feel animated reads as cursor lag while a pointer owns the seam, and a mid-glide grid feeds stale geometry into the clamp ranges of the next keyboard step. Track changes must be immediate for the whole resize session, pointer or keyboard. */ :host([data-workspace-resizing]) .esp-page, :host([data-workspace-keyboard-adjusting]) .esp-page { transition: none; } /* The linked menu switches its rail to a fixed drawer, but light-DOM menu content can still contribute an intrinsic width to the page's sidebar track. Collapse the owning aside only after the validated header/menu handshake is active, so unmatched navigation remains visible and reachable. */ :host([data-preview-navigation-collapsed]) .esp-page > aside.esp-page-left { inline-size: 0; min-inline-size: 0; } :host([data-preview-measuring]) .esp-page { transition: none; } /* New preview layouts are validated against visible geometry before presentation. Keep that candidate surface non-visible so a rejected measurement can never flash on screen. */ :host([data-preview-validating]) .esp-page-preview { visibility: hidden; } .esp-page { /* dvh keeps the shell within the visible mobile viewport; 100vh is the fallback for browsers without dvh (dvh === vh on desktop). */ min-height: 100vh; min-height: 100dvh; display: grid; grid-template-columns: [full-start canvas-left-start] var(--_esp-page-gutter-left) [canvas-left-end surface-start left-start] min-content [left-end main-start] var(--_esp-page-main-track) [main-end right-start] min-content [right-end surface-end canvas-right-start flyout-start] var(--_esp-page-workspace-track) [flyout-end] var(--_esp-page-gutter-right) [canvas-right-end full-end]; /* Animate the flyout claiming/releasing its track (and the gutter rebalance) via grid track interpolation where supported; elsewhere the modes still apply, just without the glide. Keep this 0.25s duration synchronized with WORKSPACE_RECENTER_DURATION in workspace-resize-session.ts. */ transition: grid-template-columns 0.25s ease; grid-template-rows: [top-start] min-content [top-end content-start] 1fr [content-end footer-start] min-content [footer-end]; overflow-x: clip; background: var(--esp-page-background, var(--esp-color-background)); line-height: 1.5; font-family: var( --_esp-font-body-effective, var(--esp-font-body, var(--_esp-font-body-fallback)) ); font-size: var(--esp-type-normal); color: var(--esp-color-text); position: relative; &:before { content: \" \"; display: block; position: absolute; left: 0; top: 0; right: 0; bottom: 0; opacity: var(--esp-page-background-image-opacity, 1); background-image: var(--esp-page-background-image, none); z-index: 1; } > div.esp-page-top { z-index: var(--esp-page-header-z-index, 20); grid-column: full; grid-row: top; position: relative; /* The header spans every column, so without inline-size containment its content's min-content would be distributed into the aside tracks and inflate them below the cap (the asides would never collapse). Contain it like the main well so it takes its width from the grid, not the grid from it. */ contain: inline-size; } /* Sidebar containers — act as the \"track\" for sticky positioning */ aside.esp-page-left, aside.esp-page-right { z-index: 5; grid-row: content; position: relative; /* No explicit height — grid stretch fills the 1fr row, and the aside's bottom edge constrains sticky children. */ } > aside.esp-page-left { grid-column: left; } > div.esp-page-main { z-index: 5; grid-column: main; grid-row: content; position: relative; overflow: hidden; /* The main well's own background. Defaults to transparent, so the well shows the page background exactly as before; set it to give the content well a distinct card color, or leave it transparent (with --esp-page-surface-shadow: none) for content that floats directly on the page/canvas. */ background: var(--esp-page-main-background, transparent); /* The cap now lives in the main track (minmax(0, cap)); the element fills its column. contain: inline-size still holds because the track gives a definite inline size. */ contain: inline-size; } > aside.esp-page-right { grid-column: right; } /* A neutral div, unlike the left/right asides: the slotted esp-flyout is itself the complementary landmark, and an aside wrapper would nest a second, empty landmark around it. */ > div.esp-page-flyout { /* Sits after preview inside the exact auxiliary track and sizes to the allocated help width. Outer surplus remains in the following gutter rather than under an empty stretched wrapper. */ grid-column: flyout; justify-self: start; grid-row: content; z-index: 5; position: relative; inline-size: var(--_esp-page-flyout-used-width); min-inline-size: 0; margin-inline-start: var(--_esp-page-preview-used-width); /* In the drawer rung the fixed esp-flyout paints inside this wrapper's stacking context, so the wrapper itself must rise above the header (z 20) while staying below the dialog drop zone (4000). Uses the same token as the drawer — set it on the page (or higher) to move both together. */ @media (max-width: 50em) { z-index: var(--esp-flyout-z-index, 3000); } } /* Preview begins at the surface edge and help is offset after its resolved width, producing the logical order main → preview → help inside their exact shared auxiliary track. */ > div.esp-page-preview-space { grid-column: flyout; grid-row: content; z-index: 4; position: relative; min-inline-size: 0; > .esp-page-preview { display: none; box-sizing: border-box; inline-size: var(--_esp-page-preview-used-width); position: relative; background: var( --esp-page-preview-background, var(--esp-page-main-background, var(--esp-page-background, var(--esp-color-background))) ); border-inline-start: var(--esp-page-preview-border, 1px dotted var(--esp-color-border)); box-shadow: var(--esp-page-preview-shadow, var(--_esp-page-surface-edge-shadow)); } } /* A transparent interaction layer keeps the complete hit target above main, preview, and anchored help without raising either painted surface (which would hide the help bridge). */ > div.esp-page-workspace-resize-handles { grid-column: flyout; grid-row: top-start / footer-end; z-index: calc(var(--esp-page-header-z-index, 20) + 3); position: relative; min-inline-size: 0; pointer-events: none; } > div.esp-page-workspace-resize-handles > .esp-page-workspace-resize-handle { display: none; box-sizing: border-box; position: absolute; inset-block: 0; z-index: 3; inline-size: var(--esp-page-resize-handle-hit-size, 2.75rem); margin-inline-start: calc(-0.5 * var(--esp-page-resize-handle-hit-size, 2.75rem)); border: 0; outline: 0; background: transparent; cursor: col-resize; pointer-events: auto; touch-action: none; /* The target spans the seam so it remains reachable during document scroll. Focus draws a dashed line along the seam itself — the visible height of the dotted tear-off edge, capped at one viewport — kept in view by sticky positioning while the page scrolls. */ &::after { content: \"\"; display: block; position: sticky; inset-block-start: 0; box-sizing: border-box; inline-size: 0; margin-inline: auto; block-size: 100dvh; max-block-size: 100%; pointer-events: none; } &:focus-visible::after { border-inline-start: var( --esp-page-resize-focus-outline, 2px dashed var(--esp-color-link) ); /* Glow in the line's own color so the focused seam reads as one deliberate highlight rather than a neutral drop shadow. */ box-shadow: var(--esp-page-resize-focus-shadow, 0 0 0.75rem var(--esp-color-link)); } } > div.esp-page-workspace-resize-handles > .esp-page-main-preview-resize-handle { inset-inline-start: 0; } > div.esp-page-workspace-resize-handles > .esp-page-preview-flyout-resize-handle { inset-inline-start: var(--_esp-page-preview-used-width); } > div.esp-page-workspace-resize-handles > .esp-page-workspace-end-resize-handle { inset-inline-start: calc( var(--_esp-page-preview-used-width) + var(--_esp-page-flyout-used-width) ); } /* Keep token-sized probes outside the width-constrained gutter. If they lived inside a zero-width preview space, layout would clamp their rectangles to zero before JS could decide whether the reclaim rung should be activated. */ > .esp-page-preview-min-width-probe, > .esp-page-preview-default-width-probe, > .esp-page-preview-max-width-probe, > .esp-page-flyout-min-width-probe, > .esp-page-flyout-default-width-probe, > .esp-page-flyout-max-width-probe, > .esp-page-main-min-width-probe, > .esp-page-main-configured-max-width-probe, > .esp-page-main-max-width-probe, > .esp-page-resize-step-probe, > .esp-page-resize-large-step-probe { position: absolute; block-size: 0; visibility: hidden; pointer-events: none; contain: strict; } > .esp-page-preview-min-width-probe { inline-size: var(--_esp-page-preview-resolved-min-width); } > .esp-page-preview-max-width-probe { inline-size: var(--_esp-page-preview-resolved-max-width); } > .esp-page-preview-default-width-probe { inline-size: var(--esp-page-preview-default-width, 0px); } > .esp-page-flyout-min-width-probe { inline-size: var(--_esp-page-flyout-resolved-min-width); } > .esp-page-flyout-max-width-probe { inline-size: var(--_esp-page-flyout-resolved-max-width); } > .esp-page-flyout-default-width-probe { inline-size: var(--esp-page-flyout-default-width, 0px); } > .esp-page-main-min-width-probe { inline-size: var(--_esp-page-main-min-width); } > .esp-page-main-configured-max-width-probe { inline-size: var(--esp-page-main-max-width, 0px); } > .esp-page-main-max-width-probe { inline-size: var(--_esp-page-resolved-max-width); } > .esp-page-resize-step-probe { inline-size: var(--esp-page-resize-step, 1rem); } > .esp-page-resize-large-step-probe { inline-size: var(--esp-page-resize-large-step, 4rem); } /* Canvas: the outer gutter regions promoted to a styleable layer. They only have width once the viewport exceeds the cap, so with the transparent defaults they are invisible and narrow pages are unchanged. Painted below the content (z-index 5) and below the surface shadow. */ > .esp-page-canvas { /* Full height: the canvas runs top-to-bottom. In the default full-bleed chrome the header/footer span the gutters and cover it there, so only the content-band gutters show; in contained mode the header/footer sit on the surface and the canvas shows full height beside them. */ grid-row: top-start / footer-end; z-index: 1; position: relative; pointer-events: none; background-color: var(--esp-page-canvas-background, transparent); /* Image layer mirrors the page background-image knobs: a separate layer so its opacity does not fade the color. */ &::before { content: \"\"; position: absolute; inset: 0; background-image: var(--esp-page-canvas-background-image, none); opacity: var(--esp-page-canvas-background-image-opacity, 1); } } > .esp-page-canvas--left { grid-column: canvas-left; } > .esp-page-canvas--right { /* The canvas spans both the auxiliary workspace and the independent outer gutter beneath it. */ grid-column: canvas-right; } /* Surface: a transparent backdrop spanning the surface cluster (left aside + main + right aside). It carries the surface edge shadow (on by default) and an optional hairline border. The shadow casts outward into the gutters; when there are no gutters the surface fills the viewport and overflow-x: clip on .esp-page trims the shadow away — so it is visible only above the cap with no container query needed. */ > .esp-page-surface { grid-column: surface; /* Full height so the edge shadow is one continuous line from the header through the content to the footer — no fade at the region joins. */ grid-row: top-start / footer-end; z-index: 2; pointer-events: none; box-shadow: var(--_esp-page-surface-shadow); border-inline: var(--_esp-page-surface-border); } /* Internal wrapper manipulated by BiDirectionalStickyController */ .sticky-wrapper { will-change: top; display: block; width: 100%; position: sticky; top: 0; } > div.esp-page-footer { grid-column: full; grid-row: footer; z-index: 10; background: var(--esp-page-background, var(--esp-color-background)); /* Spans every column; contain it so its content does not inflate the aside tracks (see the header note above). */ contain: inline-size; } &.sticky-header { slot[name=\"header\"]::slotted(esp-header), slot[name=\"sidebar\"]::slotted(esp-menu), slot[name=\"right\"]::slotted(esp-menu) { --esp-menu-top-offset: var(--_esp-page-fixed-header-offset); } > div.esp-page-top { position: sticky; top: var(--esp-page-sticky-header-top, 0); } } &.fixed-header { slot[name=\"header\"]::slotted(esp-header), slot[name=\"sidebar\"]::slotted(esp-menu), slot[name=\"right\"]::slotted(esp-menu) { --esp-menu-top-offset: var(--_esp-page-fixed-header-offset); } > div.esp-page-top { position: fixed; top: 0; left: 0; right: 0; } > div.esp-page-main, > aside.esp-page-left, > aside.esp-page-right, > div.esp-page-flyout, > .esp-page-surface, > .esp-page-canvas { margin-top: var(--_esp-page-fixed-header-offset); } } /* Inherit fonts for inputs and buttons */ input, button, textarea, select { font-family: inherit; font-size: inherit; } /* Make sure text areas without a rows attribute are not tiny */ textarea:not([rows]) { min-height: 10em; } /* Anything that has been anchored to should have extra scroll margin */ :target { scroll-margin-block: 5ex; } } .esp-page:has(esp-dialog[is-open=\"true\"]) { overflow: hidden; } /* Main and preview are additive surfaces. Once preview owns the trailing edge, move elevation there so no shadow appears at the internal join; the surface resumes its normal frame when preview is hidden. */ :host([preview-visible]) .esp-page > .esp-page-surface { box-shadow: none; } /* The preview's outer grid item and landmark span the complete page so the sticky wrapper's containing block has enough travel to remain pinned throughout a tall document. Its dynamic-viewport block size and vertical overflow keep its scroll position independent from the main document. It paints above full-bleed header chrome only in the preview's negotiated gutter track; overlay flyouts still take precedence by hiding preview presentation. */ .esp-page > div.esp-page-preview-space { grid-row: top-start / footer-end; z-index: calc(var(--esp-page-header-z-index, 20) + 1); pointer-events: none; > .esp-page-preview { position: absolute; inset-block: 0; inset-inline-start: 0; pointer-events: auto; > .sticky-wrapper { block-size: 100vh; block-size: 100dvh; overflow-y: auto; /* Scroll preview first, then hand wheel/trackpad motion back to the document at either boundary (or when no overflow exists). */ overscroll-behavior-y: auto; } } } @media (prefers-reduced-motion: reduce) { .esp-page { transition: none; } } `, ]"
|
|
49192
|
+
}
|
|
49193
|
+
],
|
|
49194
|
+
"exports": [
|
|
49195
|
+
{
|
|
49196
|
+
"kind": "js",
|
|
49197
|
+
"name": "pageStyles",
|
|
49198
|
+
"declaration": {
|
|
49199
|
+
"name": "pageStyles",
|
|
49200
|
+
"module": "dist/page/esp-page.styles.js"
|
|
49201
|
+
}
|
|
49202
|
+
}
|
|
49203
|
+
]
|
|
49204
|
+
},
|
|
48968
49205
|
{
|
|
48969
49206
|
"kind": "javascript-module",
|
|
48970
49207
|
"path": "dist/page/esp-page.js",
|
|
@@ -49478,49 +49715,6 @@
|
|
|
49478
49715
|
"privacy": "private",
|
|
49479
49716
|
"default": "false"
|
|
49480
49717
|
},
|
|
49481
|
-
{
|
|
49482
|
-
"kind": "field",
|
|
49483
|
-
"name": "resizeSession",
|
|
49484
|
-
"type": {
|
|
49485
|
-
"text": "WorkspaceResizeSession | null"
|
|
49486
|
-
},
|
|
49487
|
-
"privacy": "private",
|
|
49488
|
-
"default": "null"
|
|
49489
|
-
},
|
|
49490
|
-
{
|
|
49491
|
-
"kind": "field",
|
|
49492
|
-
"name": "workspaceKeyboardSettlementTimer",
|
|
49493
|
-
"type": {
|
|
49494
|
-
"text": "ReturnType<typeof setTimeout> | null"
|
|
49495
|
-
},
|
|
49496
|
-
"privacy": "private",
|
|
49497
|
-
"default": "null"
|
|
49498
|
-
},
|
|
49499
|
-
{
|
|
49500
|
-
"kind": "field",
|
|
49501
|
-
"name": "workspaceRecenteringFrame",
|
|
49502
|
-
"privacy": "private",
|
|
49503
|
-
"default": "new RafThrottle(() => this.applyWorkspaceRecentering())"
|
|
49504
|
-
},
|
|
49505
|
-
{
|
|
49506
|
-
"kind": "field",
|
|
49507
|
-
"name": "pendingRecenterLeading",
|
|
49508
|
-
"type": {
|
|
49509
|
-
"text": "number"
|
|
49510
|
-
},
|
|
49511
|
-
"privacy": "private",
|
|
49512
|
-
"default": "0",
|
|
49513
|
-
"description": "Leading gutter the pending recentering frame should settle on."
|
|
49514
|
-
},
|
|
49515
|
-
{
|
|
49516
|
-
"kind": "field",
|
|
49517
|
-
"name": "workspaceRecenteringTimer",
|
|
49518
|
-
"type": {
|
|
49519
|
-
"text": "ReturnType<typeof setTimeout> | null"
|
|
49520
|
-
},
|
|
49521
|
-
"privacy": "private",
|
|
49522
|
-
"default": "null"
|
|
49523
|
-
},
|
|
49524
49718
|
{
|
|
49525
49719
|
"kind": "field",
|
|
49526
49720
|
"name": "footerWrapperIsLandmark",
|
|
@@ -49685,28 +49879,45 @@
|
|
|
49685
49879
|
}
|
|
49686
49880
|
}
|
|
49687
49881
|
},
|
|
49882
|
+
{
|
|
49883
|
+
"kind": "field",
|
|
49884
|
+
"name": "workspaceResizeController",
|
|
49885
|
+
"type": {
|
|
49886
|
+
"text": "WorkspaceResizeSessionController | undefined"
|
|
49887
|
+
},
|
|
49888
|
+
"privacy": "private"
|
|
49889
|
+
},
|
|
49890
|
+
{
|
|
49891
|
+
"kind": "field",
|
|
49892
|
+
"name": "workspaceResizeControllerLoad",
|
|
49893
|
+
"type": {
|
|
49894
|
+
"text": "Promise<void> | undefined"
|
|
49895
|
+
},
|
|
49896
|
+
"privacy": "private"
|
|
49897
|
+
},
|
|
49688
49898
|
{
|
|
49689
49899
|
"kind": "method",
|
|
49690
|
-
"name": "
|
|
49900
|
+
"name": "createWorkspaceResizeHost",
|
|
49691
49901
|
"privacy": "private",
|
|
49692
49902
|
"return": {
|
|
49693
49903
|
"type": {
|
|
49694
|
-
"text": "
|
|
49904
|
+
"text": "WorkspaceResizeHost"
|
|
49695
49905
|
}
|
|
49696
|
-
}
|
|
49697
|
-
|
|
49698
|
-
|
|
49699
|
-
|
|
49700
|
-
|
|
49701
|
-
|
|
49702
|
-
|
|
49703
|
-
|
|
49906
|
+
}
|
|
49907
|
+
},
|
|
49908
|
+
{
|
|
49909
|
+
"kind": "method",
|
|
49910
|
+
"name": "createWorkspaceResizeGeometry",
|
|
49911
|
+
"privacy": "private",
|
|
49912
|
+
"return": {
|
|
49913
|
+
"type": {
|
|
49914
|
+
"text": "WorkspaceGeometrySource"
|
|
49704
49915
|
}
|
|
49705
|
-
|
|
49916
|
+
}
|
|
49706
49917
|
},
|
|
49707
49918
|
{
|
|
49708
49919
|
"kind": "method",
|
|
49709
|
-
"name": "
|
|
49920
|
+
"name": "ensureWorkspaceResizeController",
|
|
49710
49921
|
"privacy": "private",
|
|
49711
49922
|
"return": {
|
|
49712
49923
|
"type": {
|
|
@@ -49714,6 +49925,15 @@
|
|
|
49714
49925
|
}
|
|
49715
49926
|
}
|
|
49716
49927
|
},
|
|
49928
|
+
{
|
|
49929
|
+
"kind": "field",
|
|
49930
|
+
"name": "resizeSession",
|
|
49931
|
+
"type": {
|
|
49932
|
+
"text": "WorkspaceResizeState | null"
|
|
49933
|
+
},
|
|
49934
|
+
"privacy": "private",
|
|
49935
|
+
"readonly": true
|
|
49936
|
+
},
|
|
49717
49937
|
{
|
|
49718
49938
|
"kind": "method",
|
|
49719
49939
|
"name": "finishWorkspaceKeyboardResize",
|
|
@@ -49732,7 +49952,7 @@
|
|
|
49732
49952
|
},
|
|
49733
49953
|
{
|
|
49734
49954
|
"kind": "method",
|
|
49735
|
-
"name": "
|
|
49955
|
+
"name": "endWorkspaceResize",
|
|
49736
49956
|
"privacy": "private",
|
|
49737
49957
|
"return": {
|
|
49738
49958
|
"type": {
|
|
@@ -49742,7 +49962,7 @@
|
|
|
49742
49962
|
},
|
|
49743
49963
|
{
|
|
49744
49964
|
"kind": "method",
|
|
49745
|
-
"name": "
|
|
49965
|
+
"name": "clearWorkspaceRecenteringState",
|
|
49746
49966
|
"privacy": "private",
|
|
49747
49967
|
"return": {
|
|
49748
49968
|
"type": {
|
|
@@ -49750,6 +49970,31 @@
|
|
|
49750
49970
|
}
|
|
49751
49971
|
}
|
|
49752
49972
|
},
|
|
49973
|
+
{
|
|
49974
|
+
"kind": "field",
|
|
49975
|
+
"name": "onWorkspaceResizePointerDown",
|
|
49976
|
+
"privacy": "private"
|
|
49977
|
+
},
|
|
49978
|
+
{
|
|
49979
|
+
"kind": "field",
|
|
49980
|
+
"name": "onWorkspaceResizePointerMove",
|
|
49981
|
+
"privacy": "private"
|
|
49982
|
+
},
|
|
49983
|
+
{
|
|
49984
|
+
"kind": "field",
|
|
49985
|
+
"name": "onWorkspaceResizePointerEnd",
|
|
49986
|
+
"privacy": "private"
|
|
49987
|
+
},
|
|
49988
|
+
{
|
|
49989
|
+
"kind": "field",
|
|
49990
|
+
"name": "onWorkspaceResizeBlur",
|
|
49991
|
+
"privacy": "private"
|
|
49992
|
+
},
|
|
49993
|
+
{
|
|
49994
|
+
"kind": "field",
|
|
49995
|
+
"name": "onWorkspaceResizeKeyDown",
|
|
49996
|
+
"privacy": "private"
|
|
49997
|
+
},
|
|
49753
49998
|
{
|
|
49754
49999
|
"kind": "method",
|
|
49755
50000
|
"name": "setPreviewLayoutState",
|
|
@@ -49802,36 +50047,6 @@
|
|
|
49802
50047
|
}
|
|
49803
50048
|
]
|
|
49804
50049
|
},
|
|
49805
|
-
{
|
|
49806
|
-
"kind": "method",
|
|
49807
|
-
"name": "clampWidth",
|
|
49808
|
-
"privacy": "private",
|
|
49809
|
-
"return": {
|
|
49810
|
-
"type": {
|
|
49811
|
-
"text": "number"
|
|
49812
|
-
}
|
|
49813
|
-
},
|
|
49814
|
-
"parameters": [
|
|
49815
|
-
{
|
|
49816
|
-
"name": "value",
|
|
49817
|
-
"type": {
|
|
49818
|
-
"text": "number"
|
|
49819
|
-
}
|
|
49820
|
-
},
|
|
49821
|
-
{
|
|
49822
|
-
"name": "minimum",
|
|
49823
|
-
"type": {
|
|
49824
|
-
"text": "number"
|
|
49825
|
-
}
|
|
49826
|
-
},
|
|
49827
|
-
{
|
|
49828
|
-
"name": "maximum",
|
|
49829
|
-
"type": {
|
|
49830
|
-
"text": "number"
|
|
49831
|
-
}
|
|
49832
|
-
}
|
|
49833
|
-
]
|
|
49834
|
-
},
|
|
49835
50050
|
{
|
|
49836
50051
|
"kind": "method",
|
|
49837
50052
|
"name": "visiblePageInlineBounds",
|
|
@@ -49922,66 +50137,6 @@
|
|
|
49922
50137
|
}
|
|
49923
50138
|
]
|
|
49924
50139
|
},
|
|
49925
|
-
{
|
|
49926
|
-
"kind": "method",
|
|
49927
|
-
"name": "workspaceWidthCapacityForAvailable",
|
|
49928
|
-
"privacy": "private",
|
|
49929
|
-
"return": {
|
|
49930
|
-
"type": {
|
|
49931
|
-
"text": "WorkspaceWidthCapacity"
|
|
49932
|
-
}
|
|
49933
|
-
},
|
|
49934
|
-
"parameters": [
|
|
49935
|
-
{
|
|
49936
|
-
"name": "availableWidth",
|
|
49937
|
-
"type": {
|
|
49938
|
-
"text": "number"
|
|
49939
|
-
}
|
|
49940
|
-
},
|
|
49941
|
-
{
|
|
49942
|
-
"name": "minMainWidth",
|
|
49943
|
-
"type": {
|
|
49944
|
-
"text": "number"
|
|
49945
|
-
}
|
|
49946
|
-
},
|
|
49947
|
-
{
|
|
49948
|
-
"name": "maxMainWidth",
|
|
49949
|
-
"type": {
|
|
49950
|
-
"text": "number"
|
|
49951
|
-
}
|
|
49952
|
-
}
|
|
49953
|
-
]
|
|
49954
|
-
},
|
|
49955
|
-
{
|
|
49956
|
-
"kind": "method",
|
|
49957
|
-
"name": "workspaceTargetWidth",
|
|
49958
|
-
"privacy": "private",
|
|
49959
|
-
"return": {
|
|
49960
|
-
"type": {
|
|
49961
|
-
"text": "number"
|
|
49962
|
-
}
|
|
49963
|
-
},
|
|
49964
|
-
"parameters": [
|
|
49965
|
-
{
|
|
49966
|
-
"name": "capacity",
|
|
49967
|
-
"type": {
|
|
49968
|
-
"text": "WorkspaceWidthCapacity"
|
|
49969
|
-
}
|
|
49970
|
-
},
|
|
49971
|
-
{
|
|
49972
|
-
"name": "minimumWorkspaceWidth",
|
|
49973
|
-
"type": {
|
|
49974
|
-
"text": "number"
|
|
49975
|
-
}
|
|
49976
|
-
},
|
|
49977
|
-
{
|
|
49978
|
-
"name": "preferredWorkspaceTargetWidth",
|
|
49979
|
-
"type": {
|
|
49980
|
-
"text": "number"
|
|
49981
|
-
}
|
|
49982
|
-
}
|
|
49983
|
-
]
|
|
49984
|
-
},
|
|
49985
50140
|
{
|
|
49986
50141
|
"kind": "method",
|
|
49987
50142
|
"name": "allocateWorkspaceWidths",
|
|
@@ -50280,217 +50435,6 @@
|
|
|
50280
50435
|
}
|
|
50281
50436
|
]
|
|
50282
50437
|
},
|
|
50283
|
-
{
|
|
50284
|
-
"kind": "method",
|
|
50285
|
-
"name": "applyWorkspaceResize",
|
|
50286
|
-
"privacy": "private",
|
|
50287
|
-
"return": {
|
|
50288
|
-
"type": {
|
|
50289
|
-
"text": "void"
|
|
50290
|
-
}
|
|
50291
|
-
},
|
|
50292
|
-
"parameters": [
|
|
50293
|
-
{
|
|
50294
|
-
"name": "separator",
|
|
50295
|
-
"type": {
|
|
50296
|
-
"text": "PageWorkspaceSeparator"
|
|
50297
|
-
}
|
|
50298
|
-
},
|
|
50299
|
-
{
|
|
50300
|
-
"name": "physicalDelta",
|
|
50301
|
-
"type": {
|
|
50302
|
-
"text": "number"
|
|
50303
|
-
}
|
|
50304
|
-
},
|
|
50305
|
-
{
|
|
50306
|
-
"name": "source",
|
|
50307
|
-
"type": {
|
|
50308
|
-
"text": "PageWorkspaceResizeSource"
|
|
50309
|
-
}
|
|
50310
|
-
},
|
|
50311
|
-
{
|
|
50312
|
-
"name": "startPreviewWidth",
|
|
50313
|
-
"type": {
|
|
50314
|
-
"text": "number"
|
|
50315
|
-
}
|
|
50316
|
-
},
|
|
50317
|
-
{
|
|
50318
|
-
"name": "startFlyoutWidth",
|
|
50319
|
-
"type": {
|
|
50320
|
-
"text": "number"
|
|
50321
|
-
}
|
|
50322
|
-
},
|
|
50323
|
-
{
|
|
50324
|
-
"name": "startMainWidth",
|
|
50325
|
-
"type": {
|
|
50326
|
-
"text": "number"
|
|
50327
|
-
}
|
|
50328
|
-
},
|
|
50329
|
-
{
|
|
50330
|
-
"name": "startNavigationAllowance",
|
|
50331
|
-
"type": {
|
|
50332
|
-
"text": "number"
|
|
50333
|
-
}
|
|
50334
|
-
},
|
|
50335
|
-
{
|
|
50336
|
-
"name": "startOuterGrowthCapacity",
|
|
50337
|
-
"type": {
|
|
50338
|
-
"text": "number"
|
|
50339
|
-
}
|
|
50340
|
-
},
|
|
50341
|
-
{
|
|
50342
|
-
"name": "trailingExpansionScale",
|
|
50343
|
-
"type": {
|
|
50344
|
-
"text": "number"
|
|
50345
|
-
}
|
|
50346
|
-
},
|
|
50347
|
-
{
|
|
50348
|
-
"name": "direction",
|
|
50349
|
-
"type": {
|
|
50350
|
-
"text": "1 | -1"
|
|
50351
|
-
}
|
|
50352
|
-
}
|
|
50353
|
-
]
|
|
50354
|
-
},
|
|
50355
|
-
{
|
|
50356
|
-
"kind": "method",
|
|
50357
|
-
"name": "appliedSeparatorInlineDelta",
|
|
50358
|
-
"privacy": "private",
|
|
50359
|
-
"return": {
|
|
50360
|
-
"type": {
|
|
50361
|
-
"text": "number"
|
|
50362
|
-
}
|
|
50363
|
-
},
|
|
50364
|
-
"parameters": [
|
|
50365
|
-
{
|
|
50366
|
-
"name": "session",
|
|
50367
|
-
"type": {
|
|
50368
|
-
"text": "WorkspaceResizeSession"
|
|
50369
|
-
}
|
|
50370
|
-
}
|
|
50371
|
-
]
|
|
50372
|
-
},
|
|
50373
|
-
{
|
|
50374
|
-
"kind": "method",
|
|
50375
|
-
"name": "clearWorkspaceRecenteringState",
|
|
50376
|
-
"privacy": "private",
|
|
50377
|
-
"return": {
|
|
50378
|
-
"type": {
|
|
50379
|
-
"text": "void"
|
|
50380
|
-
}
|
|
50381
|
-
}
|
|
50382
|
-
},
|
|
50383
|
-
{
|
|
50384
|
-
"kind": "method",
|
|
50385
|
-
"name": "holdWorkspacePosition",
|
|
50386
|
-
"privacy": "private",
|
|
50387
|
-
"return": {
|
|
50388
|
-
"type": {
|
|
50389
|
-
"text": "number"
|
|
50390
|
-
}
|
|
50391
|
-
}
|
|
50392
|
-
},
|
|
50393
|
-
{
|
|
50394
|
-
"kind": "method",
|
|
50395
|
-
"name": "trackWorkspaceResizePointer",
|
|
50396
|
-
"privacy": "private",
|
|
50397
|
-
"return": {
|
|
50398
|
-
"type": {
|
|
50399
|
-
"text": "void"
|
|
50400
|
-
}
|
|
50401
|
-
},
|
|
50402
|
-
"parameters": [
|
|
50403
|
-
{
|
|
50404
|
-
"name": "session",
|
|
50405
|
-
"type": {
|
|
50406
|
-
"text": "WorkspaceResizeSession"
|
|
50407
|
-
}
|
|
50408
|
-
}
|
|
50409
|
-
]
|
|
50410
|
-
},
|
|
50411
|
-
{
|
|
50412
|
-
"kind": "method",
|
|
50413
|
-
"name": "seedWorkspaceResizeLeadingGutter",
|
|
50414
|
-
"privacy": "private",
|
|
50415
|
-
"return": {
|
|
50416
|
-
"type": {
|
|
50417
|
-
"text": "boolean"
|
|
50418
|
-
}
|
|
50419
|
-
},
|
|
50420
|
-
"parameters": [
|
|
50421
|
-
{
|
|
50422
|
-
"name": "session",
|
|
50423
|
-
"type": {
|
|
50424
|
-
"text": "WorkspaceResizeSession"
|
|
50425
|
-
}
|
|
50426
|
-
}
|
|
50427
|
-
]
|
|
50428
|
-
},
|
|
50429
|
-
{
|
|
50430
|
-
"kind": "method",
|
|
50431
|
-
"name": "finishWorkspaceRecentering",
|
|
50432
|
-
"privacy": "private",
|
|
50433
|
-
"return": {
|
|
50434
|
-
"type": {
|
|
50435
|
-
"text": "void"
|
|
50436
|
-
}
|
|
50437
|
-
}
|
|
50438
|
-
},
|
|
50439
|
-
{
|
|
50440
|
-
"kind": "method",
|
|
50441
|
-
"name": "beginWorkspaceRecentering",
|
|
50442
|
-
"privacy": "private",
|
|
50443
|
-
"return": {
|
|
50444
|
-
"type": {
|
|
50445
|
-
"text": "void"
|
|
50446
|
-
}
|
|
50447
|
-
}
|
|
50448
|
-
},
|
|
50449
|
-
{
|
|
50450
|
-
"kind": "method",
|
|
50451
|
-
"name": "applyWorkspaceRecentering",
|
|
50452
|
-
"privacy": "private",
|
|
50453
|
-
"return": {
|
|
50454
|
-
"type": {
|
|
50455
|
-
"text": "void"
|
|
50456
|
-
}
|
|
50457
|
-
}
|
|
50458
|
-
},
|
|
50459
|
-
{
|
|
50460
|
-
"kind": "field",
|
|
50461
|
-
"name": "onWorkspaceResizePointerDown",
|
|
50462
|
-
"privacy": "private"
|
|
50463
|
-
},
|
|
50464
|
-
{
|
|
50465
|
-
"kind": "field",
|
|
50466
|
-
"name": "onWorkspaceResizePointerMove",
|
|
50467
|
-
"privacy": "private"
|
|
50468
|
-
},
|
|
50469
|
-
{
|
|
50470
|
-
"kind": "field",
|
|
50471
|
-
"name": "onWorkspaceResizePointerEnd",
|
|
50472
|
-
"privacy": "private"
|
|
50473
|
-
},
|
|
50474
|
-
{
|
|
50475
|
-
"kind": "method",
|
|
50476
|
-
"name": "endWorkspaceResize",
|
|
50477
|
-
"privacy": "private",
|
|
50478
|
-
"return": {
|
|
50479
|
-
"type": {
|
|
50480
|
-
"text": "void"
|
|
50481
|
-
}
|
|
50482
|
-
}
|
|
50483
|
-
},
|
|
50484
|
-
{
|
|
50485
|
-
"kind": "field",
|
|
50486
|
-
"name": "onWorkspaceResizeBlur",
|
|
50487
|
-
"privacy": "private"
|
|
50488
|
-
},
|
|
50489
|
-
{
|
|
50490
|
-
"kind": "field",
|
|
50491
|
-
"name": "onWorkspaceResizeKeyDown",
|
|
50492
|
-
"privacy": "private"
|
|
50493
|
-
},
|
|
50494
50438
|
{
|
|
50495
50439
|
"kind": "method",
|
|
50496
50440
|
"name": "previewFitsWithinPage",
|
|
@@ -51015,6 +50959,16 @@
|
|
|
51015
50959
|
],
|
|
51016
50960
|
"description": "Inject an element into a div with the highest z-index so dialogs are\nrendered on top of everything else."
|
|
51017
50961
|
},
|
|
50962
|
+
{
|
|
50963
|
+
"kind": "method",
|
|
50964
|
+
"name": "getUpdateComplete",
|
|
50965
|
+
"privacy": "protected",
|
|
50966
|
+
"return": {
|
|
50967
|
+
"type": {
|
|
50968
|
+
"text": "Promise<boolean>"
|
|
50969
|
+
}
|
|
50970
|
+
}
|
|
50971
|
+
},
|
|
51018
50972
|
{
|
|
51019
50973
|
"kind": "field",
|
|
51020
50974
|
"name": "warnedSiteRails",
|
|
@@ -51968,10 +51922,510 @@
|
|
|
51968
51922
|
}
|
|
51969
51923
|
]
|
|
51970
51924
|
},
|
|
51925
|
+
{
|
|
51926
|
+
"kind": "javascript-module",
|
|
51927
|
+
"path": "dist/page/workspace-geometry.js",
|
|
51928
|
+
"declarations": [
|
|
51929
|
+
{
|
|
51930
|
+
"kind": "function",
|
|
51931
|
+
"name": "workspaceWidthCapacityForAvailable",
|
|
51932
|
+
"return": {
|
|
51933
|
+
"type": {
|
|
51934
|
+
"text": "WorkspaceWidthCapacity"
|
|
51935
|
+
}
|
|
51936
|
+
},
|
|
51937
|
+
"parameters": [
|
|
51938
|
+
{
|
|
51939
|
+
"name": "availableWidth",
|
|
51940
|
+
"type": {
|
|
51941
|
+
"text": "number"
|
|
51942
|
+
}
|
|
51943
|
+
},
|
|
51944
|
+
{
|
|
51945
|
+
"name": "minMainWidth",
|
|
51946
|
+
"type": {
|
|
51947
|
+
"text": "number"
|
|
51948
|
+
}
|
|
51949
|
+
},
|
|
51950
|
+
{
|
|
51951
|
+
"name": "maxMainWidth",
|
|
51952
|
+
"type": {
|
|
51953
|
+
"text": "number"
|
|
51954
|
+
}
|
|
51955
|
+
}
|
|
51956
|
+
]
|
|
51957
|
+
},
|
|
51958
|
+
{
|
|
51959
|
+
"kind": "function",
|
|
51960
|
+
"name": "workspaceTargetWidth",
|
|
51961
|
+
"return": {
|
|
51962
|
+
"type": {
|
|
51963
|
+
"text": "number"
|
|
51964
|
+
}
|
|
51965
|
+
},
|
|
51966
|
+
"parameters": [
|
|
51967
|
+
{
|
|
51968
|
+
"name": "capacity",
|
|
51969
|
+
"type": {
|
|
51970
|
+
"text": "WorkspaceWidthCapacity"
|
|
51971
|
+
}
|
|
51972
|
+
},
|
|
51973
|
+
{
|
|
51974
|
+
"name": "minimumWorkspaceWidth",
|
|
51975
|
+
"type": {
|
|
51976
|
+
"text": "number"
|
|
51977
|
+
}
|
|
51978
|
+
},
|
|
51979
|
+
{
|
|
51980
|
+
"name": "preferredWorkspaceTargetWidth",
|
|
51981
|
+
"type": {
|
|
51982
|
+
"text": "number"
|
|
51983
|
+
}
|
|
51984
|
+
}
|
|
51985
|
+
]
|
|
51986
|
+
},
|
|
51987
|
+
{
|
|
51988
|
+
"kind": "function",
|
|
51989
|
+
"name": "clampWorkspaceWidth",
|
|
51990
|
+
"return": {
|
|
51991
|
+
"type": {
|
|
51992
|
+
"text": "number"
|
|
51993
|
+
}
|
|
51994
|
+
},
|
|
51995
|
+
"parameters": [
|
|
51996
|
+
{
|
|
51997
|
+
"name": "value",
|
|
51998
|
+
"type": {
|
|
51999
|
+
"text": "number"
|
|
52000
|
+
}
|
|
52001
|
+
},
|
|
52002
|
+
{
|
|
52003
|
+
"name": "minimum",
|
|
52004
|
+
"type": {
|
|
52005
|
+
"text": "number"
|
|
52006
|
+
}
|
|
52007
|
+
},
|
|
52008
|
+
{
|
|
52009
|
+
"name": "maximum",
|
|
52010
|
+
"type": {
|
|
52011
|
+
"text": "number"
|
|
52012
|
+
}
|
|
52013
|
+
}
|
|
52014
|
+
]
|
|
52015
|
+
}
|
|
52016
|
+
],
|
|
52017
|
+
"exports": [
|
|
52018
|
+
{
|
|
52019
|
+
"kind": "js",
|
|
52020
|
+
"name": "workspaceWidthCapacityForAvailable",
|
|
52021
|
+
"declaration": {
|
|
52022
|
+
"name": "workspaceWidthCapacityForAvailable",
|
|
52023
|
+
"module": "dist/page/workspace-geometry.js"
|
|
52024
|
+
}
|
|
52025
|
+
},
|
|
52026
|
+
{
|
|
52027
|
+
"kind": "js",
|
|
52028
|
+
"name": "workspaceTargetWidth",
|
|
52029
|
+
"declaration": {
|
|
52030
|
+
"name": "workspaceTargetWidth",
|
|
52031
|
+
"module": "dist/page/workspace-geometry.js"
|
|
52032
|
+
}
|
|
52033
|
+
},
|
|
52034
|
+
{
|
|
52035
|
+
"kind": "js",
|
|
52036
|
+
"name": "clampWorkspaceWidth",
|
|
52037
|
+
"declaration": {
|
|
52038
|
+
"name": "clampWorkspaceWidth",
|
|
52039
|
+
"module": "dist/page/workspace-geometry.js"
|
|
52040
|
+
}
|
|
52041
|
+
}
|
|
52042
|
+
]
|
|
52043
|
+
},
|
|
52044
|
+
{
|
|
52045
|
+
"kind": "javascript-module",
|
|
52046
|
+
"path": "dist/page/workspace-resize-session.js",
|
|
52047
|
+
"declarations": [
|
|
52048
|
+
{
|
|
52049
|
+
"kind": "class",
|
|
52050
|
+
"description": "",
|
|
52051
|
+
"name": "WorkspaceResizeSessionController",
|
|
52052
|
+
"members": [
|
|
52053
|
+
{
|
|
52054
|
+
"kind": "field",
|
|
52055
|
+
"name": "resizeSession",
|
|
52056
|
+
"type": {
|
|
52057
|
+
"text": "WorkspaceResizeState | null"
|
|
52058
|
+
},
|
|
52059
|
+
"privacy": "private",
|
|
52060
|
+
"default": "null"
|
|
52061
|
+
},
|
|
52062
|
+
{
|
|
52063
|
+
"kind": "field",
|
|
52064
|
+
"name": "workspaceKeyboardSettlementTimer",
|
|
52065
|
+
"type": {
|
|
52066
|
+
"text": "ReturnType<typeof setTimeout> | null"
|
|
52067
|
+
},
|
|
52068
|
+
"privacy": "private",
|
|
52069
|
+
"default": "null"
|
|
52070
|
+
},
|
|
52071
|
+
{
|
|
52072
|
+
"kind": "field",
|
|
52073
|
+
"name": "workspaceRecenteringFrame",
|
|
52074
|
+
"type": {
|
|
52075
|
+
"text": "RafThrottle"
|
|
52076
|
+
},
|
|
52077
|
+
"privacy": "private",
|
|
52078
|
+
"default": "new RafThrottle(() => this.applyWorkspaceRecentering())"
|
|
52079
|
+
},
|
|
52080
|
+
{
|
|
52081
|
+
"kind": "field",
|
|
52082
|
+
"name": "pendingRecenterLeading",
|
|
52083
|
+
"type": {
|
|
52084
|
+
"text": "number"
|
|
52085
|
+
},
|
|
52086
|
+
"privacy": "private",
|
|
52087
|
+
"default": "0"
|
|
52088
|
+
},
|
|
52089
|
+
{
|
|
52090
|
+
"kind": "field",
|
|
52091
|
+
"name": "workspaceRecenteringTimer",
|
|
52092
|
+
"type": {
|
|
52093
|
+
"text": "ReturnType<typeof setTimeout> | null"
|
|
52094
|
+
},
|
|
52095
|
+
"privacy": "private",
|
|
52096
|
+
"default": "null"
|
|
52097
|
+
},
|
|
52098
|
+
{
|
|
52099
|
+
"kind": "field",
|
|
52100
|
+
"name": "element",
|
|
52101
|
+
"type": {
|
|
52102
|
+
"text": "HTMLElement & ReactiveControllerHost"
|
|
52103
|
+
},
|
|
52104
|
+
"privacy": "private",
|
|
52105
|
+
"readonly": true
|
|
52106
|
+
},
|
|
52107
|
+
{
|
|
52108
|
+
"kind": "field",
|
|
52109
|
+
"name": "currentSession",
|
|
52110
|
+
"type": {
|
|
52111
|
+
"text": "WorkspaceResizeState | null"
|
|
52112
|
+
},
|
|
52113
|
+
"privacy": "public",
|
|
52114
|
+
"readonly": true
|
|
52115
|
+
},
|
|
52116
|
+
{
|
|
52117
|
+
"kind": "method",
|
|
52118
|
+
"name": "hostDisconnected",
|
|
52119
|
+
"privacy": "public",
|
|
52120
|
+
"return": {
|
|
52121
|
+
"type": {
|
|
52122
|
+
"text": "void"
|
|
52123
|
+
}
|
|
52124
|
+
}
|
|
52125
|
+
},
|
|
52126
|
+
{
|
|
52127
|
+
"kind": "method",
|
|
52128
|
+
"name": "scheduleWorkspaceSettlement",
|
|
52129
|
+
"privacy": "private",
|
|
52130
|
+
"return": {
|
|
52131
|
+
"type": {
|
|
52132
|
+
"text": "void"
|
|
52133
|
+
}
|
|
52134
|
+
},
|
|
52135
|
+
"parameters": [
|
|
52136
|
+
{
|
|
52137
|
+
"name": "focusTarget",
|
|
52138
|
+
"default": "null",
|
|
52139
|
+
"type": {
|
|
52140
|
+
"text": "HTMLElement | null"
|
|
52141
|
+
}
|
|
52142
|
+
}
|
|
52143
|
+
]
|
|
52144
|
+
},
|
|
52145
|
+
{
|
|
52146
|
+
"kind": "method",
|
|
52147
|
+
"name": "clearWorkspaceKeyboardSettlementTimer",
|
|
52148
|
+
"privacy": "private",
|
|
52149
|
+
"return": {
|
|
52150
|
+
"type": {
|
|
52151
|
+
"text": "void"
|
|
52152
|
+
}
|
|
52153
|
+
}
|
|
52154
|
+
},
|
|
52155
|
+
{
|
|
52156
|
+
"kind": "method",
|
|
52157
|
+
"name": "finishWorkspaceKeyboardResize",
|
|
52158
|
+
"privacy": "public",
|
|
52159
|
+
"return": {
|
|
52160
|
+
"type": {
|
|
52161
|
+
"text": "void"
|
|
52162
|
+
}
|
|
52163
|
+
},
|
|
52164
|
+
"parameters": [
|
|
52165
|
+
{
|
|
52166
|
+
"name": "settle",
|
|
52167
|
+
"default": "true"
|
|
52168
|
+
}
|
|
52169
|
+
]
|
|
52170
|
+
},
|
|
52171
|
+
{
|
|
52172
|
+
"kind": "method",
|
|
52173
|
+
"name": "deferWorkspaceKeyboardSettlement",
|
|
52174
|
+
"privacy": "private",
|
|
52175
|
+
"return": {
|
|
52176
|
+
"type": {
|
|
52177
|
+
"text": "void"
|
|
52178
|
+
}
|
|
52179
|
+
}
|
|
52180
|
+
},
|
|
52181
|
+
{
|
|
52182
|
+
"kind": "method",
|
|
52183
|
+
"name": "suspendPreviewLayoutForWorkspaceResize",
|
|
52184
|
+
"privacy": "private",
|
|
52185
|
+
"return": {
|
|
52186
|
+
"type": {
|
|
52187
|
+
"text": "void"
|
|
52188
|
+
}
|
|
52189
|
+
}
|
|
52190
|
+
},
|
|
52191
|
+
{
|
|
52192
|
+
"kind": "method",
|
|
52193
|
+
"name": "applyWorkspaceResize",
|
|
52194
|
+
"privacy": "private",
|
|
52195
|
+
"return": {
|
|
52196
|
+
"type": {
|
|
52197
|
+
"text": "void"
|
|
52198
|
+
}
|
|
52199
|
+
},
|
|
52200
|
+
"parameters": [
|
|
52201
|
+
{
|
|
52202
|
+
"name": "separator",
|
|
52203
|
+
"type": {
|
|
52204
|
+
"text": "PageWorkspaceSeparator"
|
|
52205
|
+
}
|
|
52206
|
+
},
|
|
52207
|
+
{
|
|
52208
|
+
"name": "physicalDelta",
|
|
52209
|
+
"type": {
|
|
52210
|
+
"text": "number"
|
|
52211
|
+
}
|
|
52212
|
+
},
|
|
52213
|
+
{
|
|
52214
|
+
"name": "source",
|
|
52215
|
+
"type": {
|
|
52216
|
+
"text": "PageWorkspaceResizeSource"
|
|
52217
|
+
}
|
|
52218
|
+
},
|
|
52219
|
+
{
|
|
52220
|
+
"name": "startPreviewWidth",
|
|
52221
|
+
"type": {
|
|
52222
|
+
"text": "number"
|
|
52223
|
+
}
|
|
52224
|
+
},
|
|
52225
|
+
{
|
|
52226
|
+
"name": "startFlyoutWidth",
|
|
52227
|
+
"type": {
|
|
52228
|
+
"text": "number"
|
|
52229
|
+
}
|
|
52230
|
+
},
|
|
52231
|
+
{
|
|
52232
|
+
"name": "startMainWidth",
|
|
52233
|
+
"type": {
|
|
52234
|
+
"text": "number"
|
|
52235
|
+
}
|
|
52236
|
+
},
|
|
52237
|
+
{
|
|
52238
|
+
"name": "startNavigationAllowance",
|
|
52239
|
+
"type": {
|
|
52240
|
+
"text": "number"
|
|
52241
|
+
}
|
|
52242
|
+
},
|
|
52243
|
+
{
|
|
52244
|
+
"name": "startOuterGrowthCapacity",
|
|
52245
|
+
"type": {
|
|
52246
|
+
"text": "number"
|
|
52247
|
+
}
|
|
52248
|
+
},
|
|
52249
|
+
{
|
|
52250
|
+
"name": "trailingExpansionScale",
|
|
52251
|
+
"type": {
|
|
52252
|
+
"text": "number"
|
|
52253
|
+
}
|
|
52254
|
+
},
|
|
52255
|
+
{
|
|
52256
|
+
"name": "direction",
|
|
52257
|
+
"type": {
|
|
52258
|
+
"text": "1 | -1"
|
|
52259
|
+
}
|
|
52260
|
+
}
|
|
52261
|
+
]
|
|
52262
|
+
},
|
|
52263
|
+
{
|
|
52264
|
+
"kind": "method",
|
|
52265
|
+
"name": "appliedSeparatorInlineDelta",
|
|
52266
|
+
"privacy": "private",
|
|
52267
|
+
"return": {
|
|
52268
|
+
"type": {
|
|
52269
|
+
"text": "number"
|
|
52270
|
+
}
|
|
52271
|
+
},
|
|
52272
|
+
"parameters": [
|
|
52273
|
+
{
|
|
52274
|
+
"name": "session",
|
|
52275
|
+
"type": {
|
|
52276
|
+
"text": "WorkspaceResizeState"
|
|
52277
|
+
}
|
|
52278
|
+
}
|
|
52279
|
+
]
|
|
52280
|
+
},
|
|
52281
|
+
{
|
|
52282
|
+
"kind": "method",
|
|
52283
|
+
"name": "clearWorkspaceRecenteringState",
|
|
52284
|
+
"privacy": "public",
|
|
52285
|
+
"return": {
|
|
52286
|
+
"type": {
|
|
52287
|
+
"text": "void"
|
|
52288
|
+
}
|
|
52289
|
+
}
|
|
52290
|
+
},
|
|
52291
|
+
{
|
|
52292
|
+
"kind": "method",
|
|
52293
|
+
"name": "holdWorkspacePosition",
|
|
52294
|
+
"privacy": "private",
|
|
52295
|
+
"return": {
|
|
52296
|
+
"type": {
|
|
52297
|
+
"text": "number"
|
|
52298
|
+
}
|
|
52299
|
+
}
|
|
52300
|
+
},
|
|
52301
|
+
{
|
|
52302
|
+
"kind": "method",
|
|
52303
|
+
"name": "trackWorkspaceResizePointer",
|
|
52304
|
+
"privacy": "private",
|
|
52305
|
+
"return": {
|
|
52306
|
+
"type": {
|
|
52307
|
+
"text": "void"
|
|
52308
|
+
}
|
|
52309
|
+
},
|
|
52310
|
+
"parameters": [
|
|
52311
|
+
{
|
|
52312
|
+
"name": "session",
|
|
52313
|
+
"type": {
|
|
52314
|
+
"text": "WorkspaceResizeState"
|
|
52315
|
+
}
|
|
52316
|
+
}
|
|
52317
|
+
]
|
|
52318
|
+
},
|
|
52319
|
+
{
|
|
52320
|
+
"kind": "method",
|
|
52321
|
+
"name": "seedWorkspaceResizeLeadingGutter",
|
|
52322
|
+
"privacy": "private",
|
|
52323
|
+
"return": {
|
|
52324
|
+
"type": {
|
|
52325
|
+
"text": "boolean"
|
|
52326
|
+
}
|
|
52327
|
+
},
|
|
52328
|
+
"parameters": [
|
|
52329
|
+
{
|
|
52330
|
+
"name": "session",
|
|
52331
|
+
"type": {
|
|
52332
|
+
"text": "WorkspaceResizeState"
|
|
52333
|
+
}
|
|
52334
|
+
}
|
|
52335
|
+
]
|
|
52336
|
+
},
|
|
52337
|
+
{
|
|
52338
|
+
"kind": "method",
|
|
52339
|
+
"name": "finishWorkspaceRecentering",
|
|
52340
|
+
"privacy": "private",
|
|
52341
|
+
"return": {
|
|
52342
|
+
"type": {
|
|
52343
|
+
"text": "void"
|
|
52344
|
+
}
|
|
52345
|
+
}
|
|
52346
|
+
},
|
|
52347
|
+
{
|
|
52348
|
+
"kind": "method",
|
|
52349
|
+
"name": "beginWorkspaceRecentering",
|
|
52350
|
+
"privacy": "private",
|
|
52351
|
+
"return": {
|
|
52352
|
+
"type": {
|
|
52353
|
+
"text": "void"
|
|
52354
|
+
}
|
|
52355
|
+
}
|
|
52356
|
+
},
|
|
52357
|
+
{
|
|
52358
|
+
"kind": "method",
|
|
52359
|
+
"name": "applyWorkspaceRecentering",
|
|
52360
|
+
"privacy": "private",
|
|
52361
|
+
"return": {
|
|
52362
|
+
"type": {
|
|
52363
|
+
"text": "void"
|
|
52364
|
+
}
|
|
52365
|
+
}
|
|
52366
|
+
},
|
|
52367
|
+
{
|
|
52368
|
+
"kind": "field",
|
|
52369
|
+
"name": "onWorkspaceResizePointerDown",
|
|
52370
|
+
"privacy": "public"
|
|
52371
|
+
},
|
|
52372
|
+
{
|
|
52373
|
+
"kind": "field",
|
|
52374
|
+
"name": "onWorkspaceResizePointerMove",
|
|
52375
|
+
"privacy": "public"
|
|
52376
|
+
},
|
|
52377
|
+
{
|
|
52378
|
+
"kind": "field",
|
|
52379
|
+
"name": "onWorkspaceResizePointerEnd",
|
|
52380
|
+
"privacy": "public"
|
|
52381
|
+
},
|
|
52382
|
+
{
|
|
52383
|
+
"kind": "method",
|
|
52384
|
+
"name": "endWorkspaceResize",
|
|
52385
|
+
"privacy": "public",
|
|
52386
|
+
"return": {
|
|
52387
|
+
"type": {
|
|
52388
|
+
"text": "void"
|
|
52389
|
+
}
|
|
52390
|
+
}
|
|
52391
|
+
},
|
|
52392
|
+
{
|
|
52393
|
+
"kind": "field",
|
|
52394
|
+
"name": "onWorkspaceResizeBlur",
|
|
52395
|
+
"privacy": "public"
|
|
52396
|
+
},
|
|
52397
|
+
{
|
|
52398
|
+
"kind": "field",
|
|
52399
|
+
"name": "onWorkspaceResizeKeyDown",
|
|
52400
|
+
"privacy": "public"
|
|
52401
|
+
}
|
|
52402
|
+
]
|
|
52403
|
+
}
|
|
52404
|
+
],
|
|
52405
|
+
"exports": [
|
|
52406
|
+
{
|
|
52407
|
+
"kind": "js",
|
|
52408
|
+
"name": "WorkspaceResizeSessionController",
|
|
52409
|
+
"declaration": {
|
|
52410
|
+
"name": "WorkspaceResizeSessionController",
|
|
52411
|
+
"module": "dist/page/workspace-resize-session.js"
|
|
52412
|
+
}
|
|
52413
|
+
}
|
|
52414
|
+
]
|
|
52415
|
+
},
|
|
51971
52416
|
{
|
|
51972
52417
|
"kind": "javascript-module",
|
|
51973
52418
|
"path": "dist/page/workspace-width.js",
|
|
51974
52419
|
"declarations": [
|
|
52420
|
+
{
|
|
52421
|
+
"kind": "variable",
|
|
52422
|
+
"name": "PREVIEW_LAYOUT_EPSILON",
|
|
52423
|
+
"type": {
|
|
52424
|
+
"text": "number"
|
|
52425
|
+
},
|
|
52426
|
+
"default": "1",
|
|
52427
|
+
"description": "Shared tolerance for browser layout measurements that differ by subpixels."
|
|
52428
|
+
},
|
|
51975
52429
|
{
|
|
51976
52430
|
"kind": "class",
|
|
51977
52431
|
"description": "An inclusive width range in CSS pixels, guaranteed to be well-formed:\n`min` is never negative and `max` is never below `min`.",
|
|
@@ -52156,6 +52610,14 @@
|
|
|
52156
52610
|
}
|
|
52157
52611
|
],
|
|
52158
52612
|
"exports": [
|
|
52613
|
+
{
|
|
52614
|
+
"kind": "js",
|
|
52615
|
+
"name": "PREVIEW_LAYOUT_EPSILON",
|
|
52616
|
+
"declaration": {
|
|
52617
|
+
"name": "PREVIEW_LAYOUT_EPSILON",
|
|
52618
|
+
"module": "dist/page/workspace-width.js"
|
|
52619
|
+
}
|
|
52620
|
+
},
|
|
52159
52621
|
{
|
|
52160
52622
|
"kind": "js",
|
|
52161
52623
|
"name": "WidthRange",
|
|
@@ -57788,6 +58250,26 @@
|
|
|
57788
58250
|
"default": "null",
|
|
57789
58251
|
"description": "The pool array `pickItem` is about to install. A pick replaces the\npool with a clone of the SAME items purely to trigger rendering;\n`updated()` recognizes the marked clone and skips the resize /\nhighlight flow for it — pickItem owns highlight and scroll for its\nown pick, while every consumer-supplied pool update (new items, or\nthe same items with a different selection) keeps the full flow."
|
|
57790
58252
|
},
|
|
58253
|
+
{
|
|
58254
|
+
"kind": "field",
|
|
58255
|
+
"name": "internalPoolFingerprint",
|
|
58256
|
+
"type": {
|
|
58257
|
+
"text": "string[] | null"
|
|
58258
|
+
},
|
|
58259
|
+
"privacy": "private",
|
|
58260
|
+
"default": "null",
|
|
58261
|
+
"description": "Selection fingerprint for the clone above. A parent may echo the picked\npool synchronously, coalescing both assignments into one Lit update; the\nfinal array then loses clone identity even though it carries the same\ninternal pick. The fingerprint preserves that marker across coalescing."
|
|
58262
|
+
},
|
|
58263
|
+
{
|
|
58264
|
+
"kind": "field",
|
|
58265
|
+
"name": "internalPickScrollTop",
|
|
58266
|
+
"type": {
|
|
58267
|
+
"text": "number | null"
|
|
58268
|
+
},
|
|
58269
|
+
"privacy": "private",
|
|
58270
|
+
"default": "null",
|
|
58271
|
+
"description": "Scroll position owned by the current internal pick and its parent echo."
|
|
58272
|
+
},
|
|
57791
58273
|
{
|
|
57792
58274
|
"kind": "field",
|
|
57793
58275
|
"name": "lastPoolFingerprint",
|
|
@@ -64656,6 +65138,22 @@
|
|
|
64656
65138
|
"description": "Root container for the Espalier design system.\n\nProvides the full design-token pipeline — colors, scales, and\nfonts — to every descendant component. All tokens are\nJS-computed from a pair of Base64-encoded theme objects and\nemitted as CSS custom properties on the host element.\n\n### Theme API\n\nSupply a `light-theme` and/or `dark-theme` attribute containing\na **Base64-encoded JSON** partial theme. Fields you omit fall\nback to built-in defaults. Switch between them with `scheme`.\n\n```html\n<esp-root\n light-theme=\"eyJzZWVkQ29sb3IiOiJva2xjaCgwLjcgMC4yIDE1NSkifQ==\"\n scheme=\"light\">\n <esp-box>\n <h2>Themed content</h2>\n </esp-box>\n</esp-root>\n```\n\n### Nested theme previews and scoped events\n\nA nested root creates a scoped theme for its descendants. It does not create\na separate event bus: every root publishes theme changes through the same\nEspalier singleton. Subscribe through the root whose changes you own so a\nnested preview cannot be mistaken for an application-level theme change.\n\n```ts\nconst applicationRoot = document.querySelector<EspalierRoot>(\"#application-theme\")!;\n\nconst unsubscribe = applicationRoot.subscribeScoped(\"scheme-changed\", ({ scheme }) => {\n localStorage.setItem(\"scheme\", scheme);\n});\n\n// Initial state is read directly; scoped events report later changes only.\nrenderScheme(applicationRoot.scheme);\n\n// Call when the owning integration is disposed.\nunsubscribe();\n```\n\nThis contract covers `scheme-changed`, `seed-color-changed`,\n`theme-changed`, and `icon-sprite-url-changed`. Components derived from\n`EspalierElementBase` use the same closest-root filter internally.\n\nThe root also owns the application's banner-texture vocabulary:\n`EspalierRoot.registerTexture(name, definition)` registers an\nimage-backed texture preset that any\n[esp-image](/components/image) banner in the application selects with\n`texture=\"<name>\"`, and `EspalierRoot.registeredTextures()` enumerates\nthe presets for building texture pickers.",
|
|
64657
65139
|
"name": "EspalierRoot",
|
|
64658
65140
|
"cssProperties": [
|
|
65141
|
+
{
|
|
65142
|
+
"description": "Always-emitted family for body and UI text. Defaults to `system-ui, sans-serif` when `fontBody` is omitted or empty.",
|
|
65143
|
+
"name": "--esp-font-body"
|
|
65144
|
+
},
|
|
65145
|
+
{
|
|
65146
|
+
"description": "Consumer-authored heading family. Emitted only when configured; heading recipes otherwise fall back to `--esp-font-body`.",
|
|
65147
|
+
"name": "--esp-font-headings"
|
|
65148
|
+
},
|
|
65149
|
+
{
|
|
65150
|
+
"description": "Consumer-authored brand family. Emitted only when configured; brand recipes otherwise fall back through headings to `--esp-font-body`.",
|
|
65151
|
+
"name": "--esp-font-brand"
|
|
65152
|
+
},
|
|
65153
|
+
{
|
|
65154
|
+
"description": "Family for code and monospace text. Defaults to `monospace`.",
|
|
65155
|
+
"name": "--esp-font-monospace"
|
|
65156
|
+
},
|
|
64659
65157
|
{
|
|
64660
65158
|
"description": "First categorical data-series color.",
|
|
64661
65159
|
"name": "--esp-color-series-1"
|
|
@@ -65145,7 +65643,7 @@
|
|
|
65145
65643
|
},
|
|
65146
65644
|
"privacy": "public",
|
|
65147
65645
|
"default": "\"auto\"",
|
|
65148
|
-
"description": "Controls whether Espalier may inject runtime Google Fonts CDN\nstylesheet links for selected Google Fonts.\n\n`auto` preserves the default behavior: theme font families and\nselected Google font-picker values may load full fonts from\n`fonts.googleapis.com`. `none` prevents those runtime Google\nFonts links, leaving local preview CSS and web-safe font stacks\navailable for locked-down, offline, or strict-CSP environments.",
|
|
65646
|
+
"description": "Controls whether Espalier may inject runtime Google Fonts CDN\nstylesheet links for selected Google Fonts.\n\n`auto` preserves the default behavior: theme font families and\nselected Google font-picker values may load full fonts from\n`fonts.googleapis.com`. `none` prevents those runtime Google\nFonts links, leaving local preview CSS and web-safe font stacks\navailable for locked-down, offline, or strict-CSP environments.\nStatic generators should compile the resolved light/dark themes with\n`compileFontPlan()`, embed its CSS in the page head, and set this policy\nto `none`; the predeclared target and metric-matched fallback faces then\nparticipate in first layout without any runtime catalog request.",
|
|
65149
65647
|
"attribute": "google-font-loading"
|
|
65150
65648
|
},
|
|
65151
65649
|
{
|
|
@@ -65289,26 +65787,6 @@
|
|
|
65289
65787
|
"description": "The effective seed color from the active theme.\n\nRead-only — supply a theme attribute with a different\n`seedColor` value to change.",
|
|
65290
65788
|
"readonly": true
|
|
65291
65789
|
},
|
|
65292
|
-
{
|
|
65293
|
-
"kind": "method",
|
|
65294
|
-
"name": "extractFamily",
|
|
65295
|
-
"privacy": "private",
|
|
65296
|
-
"static": true,
|
|
65297
|
-
"return": {
|
|
65298
|
-
"type": {
|
|
65299
|
-
"text": "string"
|
|
65300
|
-
}
|
|
65301
|
-
},
|
|
65302
|
-
"parameters": [
|
|
65303
|
-
{
|
|
65304
|
-
"name": "cssValue",
|
|
65305
|
-
"type": {
|
|
65306
|
-
"text": "string"
|
|
65307
|
-
}
|
|
65308
|
-
}
|
|
65309
|
-
],
|
|
65310
|
-
"description": "Extract the bare font family name from a CSS `font-family`\nvalue like `\"Roboto\", sans-serif` → `Roboto`."
|
|
65311
|
-
},
|
|
65312
65790
|
{
|
|
65313
65791
|
"kind": "method",
|
|
65314
65792
|
"name": "injectGoogleFontLink",
|
|
@@ -65470,7 +65948,7 @@
|
|
|
65470
65948
|
"kind": "field",
|
|
65471
65949
|
"name": "lightDomStyles",
|
|
65472
65950
|
"static": true,
|
|
65473
|
-
"default": "` /* ── Base typography ──────────────────────────────────── */ esp-root { font-family: var(--esp-font-body); font-weight: var(--esp-font-weight-body); line-height: 1.5; font-size: var(--esp-type-normal); color: var(--esp-color-text); } /* ── Lists ────────────────────────────────────────────── */ esp-root ul[role=\"list\"], esp-root ol[role=\"list\"] { list-style: none; } esp-root ul li::marker, esp-root ol li::marker { font-weight: bold; } /* ── Form controls ────────────────────────────────────── */ esp-root input, esp-root select, esp-root button { font-family: var(--esp-font-body); } /* ── Links ────────────────────────────────────────────── */ esp-root a:not([class]) { text-decoration-skip-ink: auto; font-weight: bold; color: var(--esp-color-link); } esp-root a { text-decoration: underline; text-decoration-skip-ink: auto; color: var(--esp-color-link); } esp-root a:hover { background-color: var(--esp-color-link-hover-bg); color: var(--esp-color-link-hover); text-decoration: none; } /* ── Inherited text styles ────────────────────────────── */ esp-root input, esp-root button, esp-root textarea, esp-root select, esp-root p, esp-root ul, esp-root li { font-family: var(--esp-font-body); color: var(--esp-color-text); font-size: inherit; } esp-root textarea:not([rows]) { min-height: 10em; } /* ── Headings ─────────────────────────────────────────── */ esp-root h1, esp-root h2, esp-root h3, esp-root h4, esp-root h5 { font-family: var(--esp-font-headings); font-weight: var(--esp-font-weight-headings); color: var(--esp-color-headings); margin: var(--esp-size-small-to-normal) 0 var(--esp-size-tiny-to-small); } esp-root h5 { font-size: var(--esp-type-small); line-height: 1.4; } esp-root h4 { font-size: var(--esp-type-medium); line-height: 1.3; } esp-root h3 { font-size: var(--esp-type-big); line-height: 1.2; } esp-root h2 { font-size: var(--esp-type-large); line-height: 1.15; } esp-root h1 { font-size: var(--esp-type-huge); line-height: 1.1; } /* ── Code / Pre ───────────────────────────────────────── */ esp-root pre, esp-root code { font-family: var(--esp-font-monospace); font-weight: var(--esp-font-weight-monospace); } esp-root code { font-size: var(--esp-type-small); background: var(--esp-color-layer-1); border-radius: var(--esp-size-border-radius); padding: 0 0.35em; display: inline-block; border: 1px dotted var(--esp-color-border); } esp-root pre { background-color: var(--esp-color-layer-1); border-radius: var(--esp-size-border-radius); border: 1px dotted var(--esp-color-border); } esp-root pre > code { font-size: var(--esp-type-tiny); display: block; background: none; border: none; hyphens: none; tab-size: 2; white-space: pre; padding: var(--esp-size-padding); overflow: auto; line-height: 1.8; } /* ── Images ────────────────────────────────────────────── */ esp-root img, esp-root picture { max-width: 100%; display: block; } `",
|
|
65951
|
+
"default": "` /* ── Base typography ──────────────────────────────────── */ esp-root { font-family: var(--_esp-font-body-effective, var(--esp-font-body, system-ui, sans-serif)); font-weight: var(--esp-font-weight-body); line-height: 1.5; font-size: var(--esp-type-normal); color: var(--esp-color-text); } /* ── Lists ────────────────────────────────────────────── */ esp-root ul[role=\"list\"], esp-root ol[role=\"list\"] { list-style: none; } esp-root ul li::marker, esp-root ol li::marker { font-weight: bold; } /* ── Form controls ────────────────────────────────────── */ esp-root input, esp-root select, esp-root button { font-family: var(--_esp-font-body-effective, var(--esp-font-body, system-ui, sans-serif)); } /* ── Links ────────────────────────────────────────────── */ esp-root a:not([class]) { text-decoration-skip-ink: auto; font-weight: bold; color: var(--esp-color-link); } esp-root a { text-decoration: underline; text-decoration-skip-ink: auto; color: var(--esp-color-link); } esp-root a:hover { background-color: var(--esp-color-link-hover-bg); color: var(--esp-color-link-hover); text-decoration: none; } /* ── Inherited text styles ────────────────────────────── */ esp-root input, esp-root button, esp-root textarea, esp-root select, esp-root p, esp-root ul, esp-root li { font-family: var(--_esp-font-body-effective, var(--esp-font-body, system-ui, sans-serif)); color: var(--esp-color-text); font-size: inherit; } esp-root textarea:not([rows]) { min-height: 10em; } /* ── Headings ─────────────────────────────────────────── */ esp-root h1, esp-root h2, esp-root h3, esp-root h4, esp-root h5 { font-family: var( --_esp-font-headings-effective, var( --esp-font-headings, var(--_esp-font-body-effective, var(--esp-font-body, system-ui, sans-serif)) ) ); font-weight: var(--esp-font-weight-headings); color: var(--esp-color-headings); margin: var(--esp-size-small-to-normal) 0 var(--esp-size-tiny-to-small); } esp-root h5 { font-size: var(--esp-type-small); line-height: 1.4; } esp-root h4 { font-size: var(--esp-type-medium); line-height: 1.3; } esp-root h3 { font-size: var(--esp-type-big); line-height: 1.2; } esp-root h2 { font-size: var(--esp-type-large); line-height: 1.15; } esp-root h1 { font-size: var(--esp-type-huge); line-height: 1.1; } /* ── Code / Pre ───────────────────────────────────────── */ esp-root pre, esp-root code { font-family: var(--_esp-font-monospace-effective, var(--esp-font-monospace, monospace)); font-weight: var(--esp-font-weight-monospace); } esp-root code { font-size: var(--esp-type-small); background: var(--esp-color-layer-1); border-radius: var(--esp-size-border-radius); padding: 0 0.35em; display: inline-block; border: 1px dotted var(--esp-color-border); } esp-root pre { background-color: var(--esp-color-layer-1); border-radius: var(--esp-size-border-radius); border: 1px dotted var(--esp-color-border); } esp-root pre > code { font-size: var(--esp-type-tiny); display: block; background: none; border: none; hyphens: none; tab-size: 2; white-space: pre; padding: var(--esp-size-padding); overflow: auto; line-height: 1.8; } /* ── Images ────────────────────────────────────────────── */ esp-root img, esp-root picture { max-width: 100%; display: block; } `",
|
|
65474
65952
|
"description": "Light-DOM styles injected into `document.head` so that\nslotted content (headings, links, code blocks, lists, etc.)\ninherits the design-system tokens defined on `:host`.\nSelectors are scoped to `esp-root` descendants to avoid\nleaking into content outside the root."
|
|
65475
65953
|
}
|
|
65476
65954
|
],
|
|
@@ -65517,7 +65995,7 @@
|
|
|
65517
65995
|
"text": "\"auto\" | \"none\""
|
|
65518
65996
|
},
|
|
65519
65997
|
"default": "\"auto\"",
|
|
65520
|
-
"description": "Controls whether Espalier may inject runtime Google Fonts CDN\nstylesheet links for selected Google Fonts.\n\n`auto` preserves the default behavior: theme font families and\nselected Google font-picker values may load full fonts from\n`fonts.googleapis.com`. `none` prevents those runtime Google\nFonts links, leaving local preview CSS and web-safe font stacks\navailable for locked-down, offline, or strict-CSP environments.",
|
|
65998
|
+
"description": "Controls whether Espalier may inject runtime Google Fonts CDN\nstylesheet links for selected Google Fonts.\n\n`auto` preserves the default behavior: theme font families and\nselected Google font-picker values may load full fonts from\n`fonts.googleapis.com`. `none` prevents those runtime Google\nFonts links, leaving local preview CSS and web-safe font stacks\navailable for locked-down, offline, or strict-CSP environments.\nStatic generators should compile the resolved light/dark themes with\n`compileFontPlan()`, embed its CSS in the page head, and set this policy\nto `none`; the predeclared target and metric-matched fallback faces then\nparticipate in first layout without any runtime catalog request.",
|
|
65521
65999
|
"fieldName": "googleFontLoading"
|
|
65522
66000
|
},
|
|
65523
66001
|
{
|
|
@@ -72778,6 +73256,31 @@
|
|
|
72778
73256
|
],
|
|
72779
73257
|
"description": "Normalize a CSS `font-weight` keyword to its numeric equivalent.\n\n- `\"bold\"` → `\"700\"`\n- `\"normal\"` → `\"400\"`\n- Falsy / `undefined` → `defaultWeight`\n- Everything else passes through unchanged."
|
|
72780
73258
|
},
|
|
73259
|
+
{
|
|
73260
|
+
"kind": "function",
|
|
73261
|
+
"name": "normalizeFontFaceWeight",
|
|
73262
|
+
"return": {
|
|
73263
|
+
"type": {
|
|
73264
|
+
"text": "number | null"
|
|
73265
|
+
}
|
|
73266
|
+
},
|
|
73267
|
+
"parameters": [
|
|
73268
|
+
{
|
|
73269
|
+
"name": "weight",
|
|
73270
|
+
"type": {
|
|
73271
|
+
"text": "string | number | undefined"
|
|
73272
|
+
}
|
|
73273
|
+
},
|
|
73274
|
+
{
|
|
73275
|
+
"name": "defaultWeight",
|
|
73276
|
+
"optional": true,
|
|
73277
|
+
"type": {
|
|
73278
|
+
"text": "string | number"
|
|
73279
|
+
}
|
|
73280
|
+
}
|
|
73281
|
+
],
|
|
73282
|
+
"description": "Normalize a face weight to the numeric range accepted by Google Fonts and font plans."
|
|
73283
|
+
},
|
|
72781
73284
|
{
|
|
72782
73285
|
"kind": "function",
|
|
72783
73286
|
"name": "bestAvailableWeight",
|
|
@@ -72822,6 +73325,24 @@
|
|
|
72822
73325
|
],
|
|
72823
73326
|
"description": "Extract the first family name from a CSS `font-family` string,\nstripping both single and double quotes and whitespace."
|
|
72824
73327
|
},
|
|
73328
|
+
{
|
|
73329
|
+
"kind": "function",
|
|
73330
|
+
"name": "isLocalFontFamily",
|
|
73331
|
+
"return": {
|
|
73332
|
+
"type": {
|
|
73333
|
+
"text": "boolean"
|
|
73334
|
+
}
|
|
73335
|
+
},
|
|
73336
|
+
"parameters": [
|
|
73337
|
+
{
|
|
73338
|
+
"name": "family",
|
|
73339
|
+
"type": {
|
|
73340
|
+
"text": "string"
|
|
73341
|
+
}
|
|
73342
|
+
}
|
|
73343
|
+
],
|
|
73344
|
+
"description": "Whether a first-family name is a generic, platform, or conventional web-safe local face."
|
|
73345
|
+
},
|
|
72825
73346
|
{
|
|
72826
73347
|
"kind": "function",
|
|
72827
73348
|
"name": "getFallbackFont",
|
|
@@ -72839,6 +73360,93 @@
|
|
|
72839
73360
|
}
|
|
72840
73361
|
],
|
|
72841
73362
|
"description": "Return the generic CSS fallback for a Google Font category.\n\n- `\"serif\"` → `\"serif\"`\n- `\"monospace\"` → `\"monospace\"`\n- `\"handwriting\"` → `\"cursive\"`\n- Everything else (including `\"sans-serif\"`, `\"display\"`) →\n `\"sans-serif\"`"
|
|
73363
|
+
},
|
|
73364
|
+
{
|
|
73365
|
+
"kind": "variable",
|
|
73366
|
+
"name": "RUNTIME_GOOGLE_FONT_OWNER_ATTR",
|
|
73367
|
+
"type": {
|
|
73368
|
+
"text": "string"
|
|
73369
|
+
},
|
|
73370
|
+
"default": "\"data-esp-google-font-owner\""
|
|
73371
|
+
},
|
|
73372
|
+
{
|
|
73373
|
+
"kind": "function",
|
|
73374
|
+
"name": "googleFontStylesheetUrl",
|
|
73375
|
+
"return": {
|
|
73376
|
+
"type": {
|
|
73377
|
+
"text": "string"
|
|
73378
|
+
}
|
|
73379
|
+
},
|
|
73380
|
+
"parameters": [
|
|
73381
|
+
{
|
|
73382
|
+
"name": "family",
|
|
73383
|
+
"type": {
|
|
73384
|
+
"text": "string"
|
|
73385
|
+
}
|
|
73386
|
+
},
|
|
73387
|
+
{
|
|
73388
|
+
"name": "weight",
|
|
73389
|
+
"optional": true,
|
|
73390
|
+
"type": {
|
|
73391
|
+
"text": "string"
|
|
73392
|
+
}
|
|
73393
|
+
}
|
|
73394
|
+
],
|
|
73395
|
+
"description": "Build the canonical Google Fonts CSS2 URL used by roots and pickers."
|
|
73396
|
+
},
|
|
73397
|
+
{
|
|
73398
|
+
"kind": "function",
|
|
73399
|
+
"name": "syncRuntimeGoogleFontLink",
|
|
73400
|
+
"return": {
|
|
73401
|
+
"type": {
|
|
73402
|
+
"text": "HTMLLinkElement | null"
|
|
73403
|
+
}
|
|
73404
|
+
},
|
|
73405
|
+
"parameters": [
|
|
73406
|
+
{
|
|
73407
|
+
"name": "options",
|
|
73408
|
+
"type": {
|
|
73409
|
+
"text": "RuntimeGoogleFontLinkOptions"
|
|
73410
|
+
}
|
|
73411
|
+
}
|
|
73412
|
+
],
|
|
73413
|
+
"description": "Create, update, or remove one document-global Google Fonts stylesheet link.\nThe caller owns only its stable key, so unrelated roots and picker instances\ncannot replace or clean up one another's links."
|
|
73414
|
+
},
|
|
73415
|
+
{
|
|
73416
|
+
"kind": "function",
|
|
73417
|
+
"name": "removeRuntimeGoogleFontLink",
|
|
73418
|
+
"return": {
|
|
73419
|
+
"type": {
|
|
73420
|
+
"text": "void"
|
|
73421
|
+
}
|
|
73422
|
+
},
|
|
73423
|
+
"parameters": [
|
|
73424
|
+
{
|
|
73425
|
+
"name": "owner",
|
|
73426
|
+
"type": {
|
|
73427
|
+
"text": "string"
|
|
73428
|
+
}
|
|
73429
|
+
}
|
|
73430
|
+
],
|
|
73431
|
+
"description": "Remove one shared runtime font link by its exact owner key."
|
|
73432
|
+
},
|
|
73433
|
+
{
|
|
73434
|
+
"kind": "function",
|
|
73435
|
+
"name": "removeRuntimeGoogleFontLinks",
|
|
73436
|
+
"return": {
|
|
73437
|
+
"type": {
|
|
73438
|
+
"text": "void"
|
|
73439
|
+
}
|
|
73440
|
+
},
|
|
73441
|
+
"parameters": [
|
|
73442
|
+
{
|
|
73443
|
+
"name": "ownerPrefix",
|
|
73444
|
+
"type": {
|
|
73445
|
+
"text": "string"
|
|
73446
|
+
}
|
|
73447
|
+
}
|
|
73448
|
+
],
|
|
73449
|
+
"description": "Remove all shared runtime font links whose owner begins with `ownerPrefix`."
|
|
72842
73450
|
}
|
|
72843
73451
|
],
|
|
72844
73452
|
"exports": [
|
|
@@ -72866,6 +73474,14 @@
|
|
|
72866
73474
|
"module": "dist/shared/font-helpers.js"
|
|
72867
73475
|
}
|
|
72868
73476
|
},
|
|
73477
|
+
{
|
|
73478
|
+
"kind": "js",
|
|
73479
|
+
"name": "normalizeFontFaceWeight",
|
|
73480
|
+
"declaration": {
|
|
73481
|
+
"name": "normalizeFontFaceWeight",
|
|
73482
|
+
"module": "dist/shared/font-helpers.js"
|
|
73483
|
+
}
|
|
73484
|
+
},
|
|
72869
73485
|
{
|
|
72870
73486
|
"kind": "js",
|
|
72871
73487
|
"name": "bestAvailableWeight",
|
|
@@ -72882,6 +73498,14 @@
|
|
|
72882
73498
|
"module": "dist/shared/font-helpers.js"
|
|
72883
73499
|
}
|
|
72884
73500
|
},
|
|
73501
|
+
{
|
|
73502
|
+
"kind": "js",
|
|
73503
|
+
"name": "isLocalFontFamily",
|
|
73504
|
+
"declaration": {
|
|
73505
|
+
"name": "isLocalFontFamily",
|
|
73506
|
+
"module": "dist/shared/font-helpers.js"
|
|
73507
|
+
}
|
|
73508
|
+
},
|
|
72885
73509
|
{
|
|
72886
73510
|
"kind": "js",
|
|
72887
73511
|
"name": "getFallbackFont",
|
|
@@ -72889,6 +73513,195 @@
|
|
|
72889
73513
|
"name": "getFallbackFont",
|
|
72890
73514
|
"module": "dist/shared/font-helpers.js"
|
|
72891
73515
|
}
|
|
73516
|
+
},
|
|
73517
|
+
{
|
|
73518
|
+
"kind": "js",
|
|
73519
|
+
"name": "RUNTIME_GOOGLE_FONT_OWNER_ATTR",
|
|
73520
|
+
"declaration": {
|
|
73521
|
+
"name": "RUNTIME_GOOGLE_FONT_OWNER_ATTR",
|
|
73522
|
+
"module": "dist/shared/font-helpers.js"
|
|
73523
|
+
}
|
|
73524
|
+
},
|
|
73525
|
+
{
|
|
73526
|
+
"kind": "js",
|
|
73527
|
+
"name": "googleFontStylesheetUrl",
|
|
73528
|
+
"declaration": {
|
|
73529
|
+
"name": "googleFontStylesheetUrl",
|
|
73530
|
+
"module": "dist/shared/font-helpers.js"
|
|
73531
|
+
}
|
|
73532
|
+
},
|
|
73533
|
+
{
|
|
73534
|
+
"kind": "js",
|
|
73535
|
+
"name": "syncRuntimeGoogleFontLink",
|
|
73536
|
+
"declaration": {
|
|
73537
|
+
"name": "syncRuntimeGoogleFontLink",
|
|
73538
|
+
"module": "dist/shared/font-helpers.js"
|
|
73539
|
+
}
|
|
73540
|
+
},
|
|
73541
|
+
{
|
|
73542
|
+
"kind": "js",
|
|
73543
|
+
"name": "removeRuntimeGoogleFontLink",
|
|
73544
|
+
"declaration": {
|
|
73545
|
+
"name": "removeRuntimeGoogleFontLink",
|
|
73546
|
+
"module": "dist/shared/font-helpers.js"
|
|
73547
|
+
}
|
|
73548
|
+
},
|
|
73549
|
+
{
|
|
73550
|
+
"kind": "js",
|
|
73551
|
+
"name": "removeRuntimeGoogleFontLinks",
|
|
73552
|
+
"declaration": {
|
|
73553
|
+
"name": "removeRuntimeGoogleFontLinks",
|
|
73554
|
+
"module": "dist/shared/font-helpers.js"
|
|
73555
|
+
}
|
|
73556
|
+
}
|
|
73557
|
+
]
|
|
73558
|
+
},
|
|
73559
|
+
{
|
|
73560
|
+
"kind": "javascript-module",
|
|
73561
|
+
"path": "dist/shared/font-plan.js",
|
|
73562
|
+
"declarations": [
|
|
73563
|
+
{
|
|
73564
|
+
"kind": "function",
|
|
73565
|
+
"name": "fontFaceRequestKey",
|
|
73566
|
+
"return": {
|
|
73567
|
+
"type": {
|
|
73568
|
+
"text": "string"
|
|
73569
|
+
}
|
|
73570
|
+
},
|
|
73571
|
+
"parameters": [
|
|
73572
|
+
{
|
|
73573
|
+
"name": "family",
|
|
73574
|
+
"type": {
|
|
73575
|
+
"text": "string"
|
|
73576
|
+
}
|
|
73577
|
+
},
|
|
73578
|
+
{
|
|
73579
|
+
"name": "weight",
|
|
73580
|
+
"type": {
|
|
73581
|
+
"text": "number"
|
|
73582
|
+
}
|
|
73583
|
+
},
|
|
73584
|
+
{
|
|
73585
|
+
"name": "style",
|
|
73586
|
+
"default": "\"normal\"",
|
|
73587
|
+
"type": {
|
|
73588
|
+
"text": "FontPlanStyle"
|
|
73589
|
+
}
|
|
73590
|
+
}
|
|
73591
|
+
],
|
|
73592
|
+
"description": "Return the stable source-map key for a requested target face."
|
|
73593
|
+
},
|
|
73594
|
+
{
|
|
73595
|
+
"kind": "function",
|
|
73596
|
+
"name": "fontFallbackBaseIndexes",
|
|
73597
|
+
"return": {
|
|
73598
|
+
"type": {
|
|
73599
|
+
"text": "readonly number[]"
|
|
73600
|
+
}
|
|
73601
|
+
},
|
|
73602
|
+
"parameters": [
|
|
73603
|
+
{
|
|
73604
|
+
"name": "category",
|
|
73605
|
+
"type": {
|
|
73606
|
+
"text": "string"
|
|
73607
|
+
}
|
|
73608
|
+
}
|
|
73609
|
+
],
|
|
73610
|
+
"description": "Return the fallback base indexes used for one Google Fonts category."
|
|
73611
|
+
},
|
|
73612
|
+
{
|
|
73613
|
+
"kind": "function",
|
|
73614
|
+
"name": "fontFallbackAliases",
|
|
73615
|
+
"return": {
|
|
73616
|
+
"type": {
|
|
73617
|
+
"text": "string[]"
|
|
73618
|
+
}
|
|
73619
|
+
},
|
|
73620
|
+
"parameters": [
|
|
73621
|
+
{
|
|
73622
|
+
"name": "family",
|
|
73623
|
+
"type": {
|
|
73624
|
+
"text": "string"
|
|
73625
|
+
}
|
|
73626
|
+
},
|
|
73627
|
+
{
|
|
73628
|
+
"name": "weight",
|
|
73629
|
+
"type": {
|
|
73630
|
+
"text": "string | number"
|
|
73631
|
+
}
|
|
73632
|
+
},
|
|
73633
|
+
{
|
|
73634
|
+
"name": "category",
|
|
73635
|
+
"type": {
|
|
73636
|
+
"text": "string"
|
|
73637
|
+
}
|
|
73638
|
+
},
|
|
73639
|
+
{
|
|
73640
|
+
"name": "style",
|
|
73641
|
+
"default": "\"normal\"",
|
|
73642
|
+
"type": {
|
|
73643
|
+
"text": "FontPlanStyle"
|
|
73644
|
+
}
|
|
73645
|
+
}
|
|
73646
|
+
],
|
|
73647
|
+
"description": "Return the deterministic profile aliases a runtime font stack may reference\nwithout loading the build-time profile catalog in the browser."
|
|
73648
|
+
},
|
|
73649
|
+
{
|
|
73650
|
+
"kind": "function",
|
|
73651
|
+
"name": "compileFontPlan",
|
|
73652
|
+
"return": {
|
|
73653
|
+
"type": {
|
|
73654
|
+
"text": "CompiledFontPlan"
|
|
73655
|
+
}
|
|
73656
|
+
},
|
|
73657
|
+
"parameters": [
|
|
73658
|
+
{
|
|
73659
|
+
"name": "options",
|
|
73660
|
+
"type": {
|
|
73661
|
+
"text": "CompileFontPlanOptions"
|
|
73662
|
+
}
|
|
73663
|
+
}
|
|
73664
|
+
],
|
|
73665
|
+
"description": "Compile a complete, first-paint font plan from two resolved themes.\n\nCall once without `sources` to discover `requests`, resolve those assets in\nthe host build, then call again with the keyed source map for final CSS."
|
|
73666
|
+
},
|
|
73667
|
+
{
|
|
73668
|
+
"kind": "variable",
|
|
73669
|
+
"name": "usesByKey",
|
|
73670
|
+
"default": "new Map<string, CollectedUse>()"
|
|
73671
|
+
}
|
|
73672
|
+
],
|
|
73673
|
+
"exports": [
|
|
73674
|
+
{
|
|
73675
|
+
"kind": "js",
|
|
73676
|
+
"name": "fontFaceRequestKey",
|
|
73677
|
+
"declaration": {
|
|
73678
|
+
"name": "fontFaceRequestKey",
|
|
73679
|
+
"module": "dist/shared/font-plan.js"
|
|
73680
|
+
}
|
|
73681
|
+
},
|
|
73682
|
+
{
|
|
73683
|
+
"kind": "js",
|
|
73684
|
+
"name": "fontFallbackBaseIndexes",
|
|
73685
|
+
"declaration": {
|
|
73686
|
+
"name": "fontFallbackBaseIndexes",
|
|
73687
|
+
"module": "dist/shared/font-plan.js"
|
|
73688
|
+
}
|
|
73689
|
+
},
|
|
73690
|
+
{
|
|
73691
|
+
"kind": "js",
|
|
73692
|
+
"name": "fontFallbackAliases",
|
|
73693
|
+
"declaration": {
|
|
73694
|
+
"name": "fontFallbackAliases",
|
|
73695
|
+
"module": "dist/shared/font-plan.js"
|
|
73696
|
+
}
|
|
73697
|
+
},
|
|
73698
|
+
{
|
|
73699
|
+
"kind": "js",
|
|
73700
|
+
"name": "compileFontPlan",
|
|
73701
|
+
"declaration": {
|
|
73702
|
+
"name": "compileFontPlan",
|
|
73703
|
+
"module": "dist/shared/font-plan.js"
|
|
73704
|
+
}
|
|
72892
73705
|
}
|
|
72893
73706
|
]
|
|
72894
73707
|
},
|
|
@@ -74557,7 +75370,7 @@
|
|
|
74557
75370
|
"type": {
|
|
74558
75371
|
"text": "Readonly<Record<string, string>>"
|
|
74559
75372
|
},
|
|
74560
|
-
"default": "{ \"--esp-type-overline-font-size\": \"var(--esp-type-tiny)\", \"--esp-type-overline-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-overline-letter-spacing\": \"0.08em\", \"--esp-type-overline-text-transform\": \"uppercase\", \"--esp-type-label-font-size\": \"var(--esp-type-normal)\", \"--esp-type-label-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-label-letter-spacing\": \"0.01em\", \"--esp-type-lead-font-size\": \"var(--esp-type-medium)\", \"--esp-type-lead-font-weight\": \"var(--esp-font-weight-body)\", \"--esp-type-lead-letter-spacing\": \"normal\", \"--esp-type-caption-font-size\": \"var(--esp-type-small)\", \"--esp-type-caption-font-weight\": \"var(--esp-font-weight-body)\", \"--esp-type-caption-letter-spacing\": \"normal\", \"--esp-type-display-font-family\": \"var(--esp-font-headings)\", \"--esp-type-display-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-display-line-height\": \"1.1\", \"--esp-type-display-letter-spacing\": \"normal\", ...TYPE_ROLE_COLOR_PROPERTIES, }",
|
|
75373
|
+
"default": "{ \"--esp-type-overline-font-size\": \"var(--esp-type-tiny)\", \"--esp-type-overline-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-overline-letter-spacing\": \"0.08em\", \"--esp-type-overline-text-transform\": \"uppercase\", \"--esp-type-label-font-size\": \"var(--esp-type-normal)\", \"--esp-type-label-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-label-letter-spacing\": \"0.01em\", \"--esp-type-lead-font-size\": \"var(--esp-type-medium)\", \"--esp-type-lead-font-weight\": \"var(--esp-font-weight-body)\", \"--esp-type-lead-letter-spacing\": \"normal\", \"--esp-type-caption-font-size\": \"var(--esp-type-small)\", \"--esp-type-caption-font-weight\": \"var(--esp-font-weight-body)\", \"--esp-type-caption-letter-spacing\": \"normal\", \"--esp-type-display-font-family\": \"var(--_esp-font-headings-effective, var(--esp-font-headings, var(--_esp-font-body-effective, var(--esp-font-body, system-ui, sans-serif))))\", \"--esp-type-display-font-weight\": \"var(--esp-font-weight-headings)\", \"--esp-type-display-line-height\": \"1.1\", \"--esp-type-display-letter-spacing\": \"normal\", ...TYPE_ROLE_COLOR_PROPERTIES, }",
|
|
74561
75374
|
"description": "Complete typography recipes for recurring content roles and display headings."
|
|
74562
75375
|
},
|
|
74563
75376
|
{
|
|
@@ -75575,6 +76388,24 @@
|
|
|
75575
76388
|
"default": "{ background: { source: \"primary\", lightness: \"surface\" }, layer1: { source: \"primary\", lightness: \"raised1\" }, layer2: { source: \"primary\", lightness: \"raised2\" }, layer3: { source: \"primary\", lightness: \"raised3\" }, layer4: { source: \"primary\", lightness: \"raised4\" }, actionBackground: { source: \"primary\", lightness: \"raised3\" }, actionText: { source: \"primary\", lightness: \"ink\" }, border: { source: \"primary\", lightness: \"border\" }, shadow: { source: \"primary\", lightness: \"shadow\" }, text: { source: \"primary\", lightness: \"text\" }, typeOverline: { source: \"primary\", lightness: \"text\" }, typeLabel: { source: \"primary\", lightness: \"text\" }, typeLead: { source: \"primary\", lightness: \"text\" }, typeCaption: { source: \"primary\", lightness: \"text\" }, dangerText: { source: \"danger\", lightness: \"text\" }, headings: { source: \"primary\", lightness: \"muted\" }, headingsHover: { source: \"primary\", lightness: \"text\" }, link: { source: \"complementary\", lightness: \"accent\" }, linkHover: { source: \"complementary\", lightness: \"text\" }, linkHoverBg: { source: \"triadic-left\", lightness: \"raised2\" }, inputCaret: { source: \"triadic-right\", lightness: \"ink\" }, inputSelection: { source: \"complementary\", lightness: \"text\" }, inputSelectionBg: { source: \"triadic-left\", lightness: \"raised2\" }, }",
|
|
75576
76389
|
"description": "Default semantic color mappings that match the existing CSS.\n\nEach entry tells the color engine which variant supplies the\nhue and which lightness key sets the perceived brightness."
|
|
75577
76390
|
},
|
|
76391
|
+
{
|
|
76392
|
+
"kind": "variable",
|
|
76393
|
+
"name": "DEFAULT_BODY_FONT_FAMILY",
|
|
76394
|
+
"type": {
|
|
76395
|
+
"text": "string"
|
|
76396
|
+
},
|
|
76397
|
+
"default": "\"system-ui, sans-serif\"",
|
|
76398
|
+
"description": "Built-in authored stack for body and UI text."
|
|
76399
|
+
},
|
|
76400
|
+
{
|
|
76401
|
+
"kind": "variable",
|
|
76402
|
+
"name": "DEFAULT_MONOSPACE_FONT_FAMILY",
|
|
76403
|
+
"type": {
|
|
76404
|
+
"text": "string"
|
|
76405
|
+
},
|
|
76406
|
+
"default": "\"monospace\"",
|
|
76407
|
+
"description": "Built-in authored family for code and monospace text."
|
|
76408
|
+
},
|
|
75578
76409
|
{
|
|
75579
76410
|
"kind": "variable",
|
|
75580
76411
|
"name": "DEFAULT_LIGHT_THEME",
|
|
@@ -76041,6 +76872,22 @@
|
|
|
76041
76872
|
"module": "dist/shared/theme.js"
|
|
76042
76873
|
}
|
|
76043
76874
|
},
|
|
76875
|
+
{
|
|
76876
|
+
"kind": "js",
|
|
76877
|
+
"name": "DEFAULT_BODY_FONT_FAMILY",
|
|
76878
|
+
"declaration": {
|
|
76879
|
+
"name": "DEFAULT_BODY_FONT_FAMILY",
|
|
76880
|
+
"module": "dist/shared/theme.js"
|
|
76881
|
+
}
|
|
76882
|
+
},
|
|
76883
|
+
{
|
|
76884
|
+
"kind": "js",
|
|
76885
|
+
"name": "DEFAULT_MONOSPACE_FONT_FAMILY",
|
|
76886
|
+
"declaration": {
|
|
76887
|
+
"name": "DEFAULT_MONOSPACE_FONT_FAMILY",
|
|
76888
|
+
"module": "dist/shared/theme.js"
|
|
76889
|
+
}
|
|
76890
|
+
},
|
|
76044
76891
|
{
|
|
76045
76892
|
"kind": "js",
|
|
76046
76893
|
"name": "DEFAULT_LIGHT_THEME",
|
|
@@ -77716,7 +78563,7 @@
|
|
|
77716
78563
|
"declarations": [
|
|
77717
78564
|
{
|
|
77718
78565
|
"kind": "class",
|
|
77719
|
-
"description": "A compact, keyboard-accessible status icon that reveals explanatory\ncontent in an `esp-popover` on hover, focus, or tap.\n\n```html\n<esp-status-indicator\n intent=\"warning\"\n label=\"Image processing delayed\"\n placement=\"right\">\n The image is still queued. It will retry automatically.\n</esp-status-indicator>\n\n<esp-status-indicator intent=\"success\" label=\"Published\">\n This page is live and visible to visitors.\n</esp-status-indicator>\n```\n\n### Chrome modes\n\nThe `chrome` attribute controls the chip treatment around the icon.\n`pill` (the default) renders the filled circular background, `outline`\nkeeps only the border, and `none` drops both — leaving just the\nintent-colored icon and its popover affordance. `chrome=\"none\"` is the\nright choice when the indicator sits inside dense metadata rows where\na full pill would feel heavy.\n\n```html\n<esp-box style=\"display: flex; gap: var(--esp-size-normal); align-items: center;\">\n <esp-status-indicator intent=\"success\" label=\"Pill (default)\">\n Pill chrome wraps the icon in a filled circle.\n </esp-status-indicator>\n\n <esp-status-indicator chrome=\"outline\" intent=\"success\" label=\"Outline\">\n Outline chrome keeps the border but drops the fill.\n </esp-status-indicator>\n\n <esp-status-indicator chrome=\"none\" intent=\"success\" label=\"None\">\n None drops the chrome entirely — just the intent-colored icon.\n </esp-status-indicator>\n</esp-box>\n```\n\n### Wide chip with a non-square SVG\n\nThe built-in `icon` attribute pulls from the Espalier sprite, which is\nauthored for **square** glyphs at the chip's default size. When you\nneed a non-square mark — a file-type badge, a short token of text, a\npill of dimensions — slot your own SVG into the `icon` slot and size\nthe chip through the three CSS hooks: `--esp-status-indicator-width`,\n`--esp-status-indicator-height`, and `--esp-status-indicator-border-radius`.\n\nThe slotted SVG fills the chip, so give it a matching `viewBox` and\nuse `chrome=\"none\"` if you don't want the chip's pill background\nfighting your art.\n\n```html\n<style>\n .file-type-indicator {\n --esp-status-indicator-width: calc(var(--esp-size-big-to-large) * 2.5);\n --esp-status-indicator-height: var(--esp-size-big-to-large);\n --esp-status-indicator-border-radius: var(--esp-size-border-radius);\n color: var(--esp-color-link);\n }\n\n .file-type-indicator svg text {\n fill: var(--esp-color-background);\n font-family: var(--esp-font-body);\n font-size: 14px;\n font-weight: 600;\n text-anchor: middle;\n }\n</style>\n\n<esp-status-indicator\n class=\"file-type-indicator\"\n chrome=\"none\"\n label=\"Original file type\">\n <svg slot=\"icon\" viewBox=\"0 0 72 32\" aria-hidden=\"true\">\n <rect x=\"0\" y=\"0\" width=\"72\" height=\"32\" rx=\"6\" ry=\"6\" fill=\"currentColor\"/>\n <text x=\"36\" y=\"21\">JPG</text>\n </svg>\n <strong>Original file type</strong>\n <p>Uploaded as a JPEG; responsive variants are generated on demand.</p>\n</esp-status-indicator>\n```\n\n### Rich popover content\n\nThe default slot accepts any HTML, not just plain text. Small blocks\nof structured content — a heading, a list of values, a definition\nlist — render inside the popover and are clamped by\n`--esp-status-indicator-popover-max-width` (default `32ch`). Raise the\nhook when the content needs more room.\n\n```html\n<style>\n .responsive-layers-indicator {\n --esp-status-indicator-popover-max-width: 24rem;\n }\n\n .responsive-layers-indicator ul {\n margin: var(--esp-size-tiny) 0 0;\n padding-left: var(--esp-size-normal);\n }\n</style>\n\n<esp-status-indicator\n class=\"responsive-layers-indicator\"\n intent=\"success\"\n icon=\"layers-intersect\"\n label=\"Responsive layers ready\">\n <strong>Responsive layers ready</strong>\n <ul>\n <li>320w — mobile</li>\n <li>640w — tablet</li>\n <li>1280w — desktop</li>\n <li>1920w — large desktop</li>\n </ul>\n</esp-status-indicator>\n```",
|
|
78566
|
+
"description": "A compact, keyboard-accessible status icon that reveals explanatory\ncontent in an `esp-popover` on hover, focus, or tap.\n\n```html\n<esp-status-indicator\n intent=\"warning\"\n label=\"Image processing delayed\"\n placement=\"right\">\n The image is still queued. It will retry automatically.\n</esp-status-indicator>\n\n<esp-status-indicator intent=\"success\" label=\"Published\">\n This page is live and visible to visitors.\n</esp-status-indicator>\n```\n\n### Chrome modes\n\nThe `chrome` attribute controls the chip treatment around the icon.\n`pill` (the default) renders the filled circular background, `outline`\nkeeps only the border, and `none` drops both — leaving just the\nintent-colored icon and its popover affordance. `chrome=\"none\"` is the\nright choice when the indicator sits inside dense metadata rows where\na full pill would feel heavy.\n\n```html\n<esp-box style=\"display: flex; gap: var(--esp-size-normal); align-items: center;\">\n <esp-status-indicator intent=\"success\" label=\"Pill (default)\">\n Pill chrome wraps the icon in a filled circle.\n </esp-status-indicator>\n\n <esp-status-indicator chrome=\"outline\" intent=\"success\" label=\"Outline\">\n Outline chrome keeps the border but drops the fill.\n </esp-status-indicator>\n\n <esp-status-indicator chrome=\"none\" intent=\"success\" label=\"None\">\n None drops the chrome entirely — just the intent-colored icon.\n </esp-status-indicator>\n</esp-box>\n```\n\n### Wide chip with a non-square SVG\n\nThe built-in `icon` attribute pulls from the Espalier sprite, which is\nauthored for **square** glyphs at the chip's default size. When you\nneed a non-square mark — a file-type badge, a short token of text, a\npill of dimensions — slot your own SVG into the `icon` slot and size\nthe chip through the three CSS hooks: `--esp-status-indicator-width`,\n`--esp-status-indicator-height`, and `--esp-status-indicator-border-radius`.\n\nThe slotted SVG fills the chip, so give it a matching `viewBox` and\nuse `chrome=\"none\"` if you don't want the chip's pill background\nfighting your art.\n\n```html\n<style>\n .file-type-indicator {\n --esp-status-indicator-width: calc(var(--esp-size-big-to-large) * 2.5);\n --esp-status-indicator-height: var(--esp-size-big-to-large);\n --esp-status-indicator-border-radius: var(--esp-size-border-radius);\n color: var(--esp-color-link);\n }\n\n .file-type-indicator svg text {\n fill: var(--esp-color-background);\n font-family: var(--esp-font-body, system-ui, sans-serif);\n font-size: 14px;\n font-weight: 600;\n text-anchor: middle;\n }\n</style>\n\n<esp-status-indicator\n class=\"file-type-indicator\"\n chrome=\"none\"\n label=\"Original file type\">\n <svg slot=\"icon\" viewBox=\"0 0 72 32\" aria-hidden=\"true\">\n <rect x=\"0\" y=\"0\" width=\"72\" height=\"32\" rx=\"6\" ry=\"6\" fill=\"currentColor\"/>\n <text x=\"36\" y=\"21\">JPG</text>\n </svg>\n <strong>Original file type</strong>\n <p>Uploaded as a JPEG; responsive variants are generated on demand.</p>\n</esp-status-indicator>\n```\n\n### Rich popover content\n\nThe default slot accepts any HTML, not just plain text. Small blocks\nof structured content — a heading, a list of values, a definition\nlist — render inside the popover and are clamped by\n`--esp-status-indicator-popover-max-width` (default `32ch`). Raise the\nhook when the content needs more room.\n\n```html\n<style>\n .responsive-layers-indicator {\n --esp-status-indicator-popover-max-width: 24rem;\n }\n\n .responsive-layers-indicator ul {\n margin: var(--esp-size-tiny) 0 0;\n padding-left: var(--esp-size-normal);\n }\n</style>\n\n<esp-status-indicator\n class=\"responsive-layers-indicator\"\n intent=\"success\"\n icon=\"layers-intersect\"\n label=\"Responsive layers ready\">\n <strong>Responsive layers ready</strong>\n <ul>\n <li>320w — mobile</li>\n <li>640w — tablet</li>\n <li>1280w — desktop</li>\n <li>1920w — large desktop</li>\n </ul>\n</esp-status-indicator>\n```",
|
|
77720
78567
|
"name": "EspalierStatusIndicator",
|
|
77721
78568
|
"cssProperties": [
|
|
77722
78569
|
{
|
|
@@ -80136,244 +80983,187 @@
|
|
|
80136
80983
|
},
|
|
80137
80984
|
{
|
|
80138
80985
|
"kind": "javascript-module",
|
|
80139
|
-
"path": "dist/
|
|
80986
|
+
"path": "dist/tabs/esp-tab-group.js",
|
|
80140
80987
|
"declarations": [
|
|
80141
80988
|
{
|
|
80142
80989
|
"kind": "class",
|
|
80143
|
-
"description": "
|
|
80144
|
-
"name": "
|
|
80145
|
-
"
|
|
80990
|
+
"description": "A tabbed interface that groups multiple\n[esp-tab](/components/tabs) elements. The tab strip is\ngenerated automatically from each child's `label` attribute.\nOnly one tab panel is visible at a time.\n\n```html\n<esp-tab-group>\n <esp-tab label=\"Overview\">\n <p>Overview content goes here.</p>\n </esp-tab>\n <esp-tab label=\"Details\">\n <p>Detailed information lives here.</p>\n </esp-tab>\n <esp-tab label=\"Settings\">\n <p>Configuration options.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Pre-selected tab\n\nSet `active` on a child `esp-tab` to make it the initially\nvisible panel:\n\n```html\n<esp-tab-group>\n <esp-tab label=\"Alpha\">\n <p>Alpha panel.</p>\n </esp-tab>\n <esp-tab label=\"Beta\" active>\n <p>Beta starts active.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Disabled tab\n\nIndividual tabs can be disabled:\n\n```html\n<esp-tab-group>\n <esp-tab label=\"Available\">\n <p>You can select this tab.</p>\n </esp-tab>\n <esp-tab label=\"Locked\" disabled>\n <p>This tab cannot be reached.</p>\n </esp-tab>\n <esp-tab label=\"Also available\">\n <p>This tab works too.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Disabled group\n\nSet `disabled` on the group to disable all tabs at once:\n\n```html\n<esp-tab-group disabled>\n <esp-tab label=\"One\">\n <p>All tabs are disabled.</p>\n </esp-tab>\n <esp-tab label=\"Two\">\n <p>Cannot switch to this.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Zone theming\n\nTab groups pick up zone theming from a `context` attribute:\n\n```html\n<esp-tab-group context=\"quiet\">\n <esp-tab label=\"First\">\n <p>Zone-correct content.</p>\n </esp-tab>\n <esp-tab label=\"Second\">\n <p>More content.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Listening for tab changes\n\n```html\n<esp-tab-group>\n <esp-tab label=\"Tab 1\">\n <p>First panel.</p>\n </esp-tab>\n <esp-tab label=\"Tab 2\">\n <p>Second panel.</p>\n </esp-tab>\n</esp-tab-group>\n<script>\n const tabs = findByTagName(\"esp-tab-group\")[0];\n tabs.addEventListener(\"esp-tab-group-changed\", (ev) => {\n console.log(\"Switched to:\", ev.detail.label, \"at index\", ev.detail.index);\n });\n</script>\n```",
|
|
80991
|
+
"name": "EspalierTabGroup",
|
|
80992
|
+
"cssProperties": [
|
|
80146
80993
|
{
|
|
80147
|
-
"
|
|
80148
|
-
"name": "
|
|
80149
|
-
"type": {
|
|
80150
|
-
"text": "boolean"
|
|
80151
|
-
},
|
|
80152
|
-
"static": true,
|
|
80153
|
-
"default": "true"
|
|
80994
|
+
"description": "Border color of the tab group container.",
|
|
80995
|
+
"name": "--esp-tab-color-border"
|
|
80154
80996
|
},
|
|
80155
80997
|
{
|
|
80156
|
-
"
|
|
80157
|
-
"name": "
|
|
80158
|
-
"privacy": "private"
|
|
80998
|
+
"description": "Background color of the overall component.",
|
|
80999
|
+
"name": "--esp-tab-color-background"
|
|
80159
81000
|
},
|
|
80160
81001
|
{
|
|
80161
|
-
"
|
|
80162
|
-
"name": "
|
|
80163
|
-
"privacy": "private"
|
|
81002
|
+
"description": "Background color of the tab strip.",
|
|
81003
|
+
"name": "--esp-tab-color-strip-background"
|
|
80164
81004
|
},
|
|
80165
81005
|
{
|
|
80166
|
-
"
|
|
80167
|
-
"name": "
|
|
80168
|
-
"privacy": "private",
|
|
80169
|
-
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.value || null, getValidity: () => this._getValidity(), getValidationAnchor: (): HTMLElement => this.theTextarea.value ?? this, onReset: () => { this.value = \"\"; this._hasVisibleError = false; }, onRestore: (state: string) => { this.value = state; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
81006
|
+
"description": "Tab button hover background.",
|
|
81007
|
+
"name": "--esp-tab-color-button-hover"
|
|
80170
81008
|
},
|
|
80171
81009
|
{
|
|
80172
|
-
"
|
|
80173
|
-
"name": "
|
|
80174
|
-
"privacy": "private",
|
|
80175
|
-
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theTextarea.value, })"
|
|
81010
|
+
"description": "Active tab button background.",
|
|
81011
|
+
"name": "--esp-tab-color-button-active"
|
|
80176
81012
|
},
|
|
80177
81013
|
{
|
|
80178
|
-
"
|
|
80179
|
-
"name": "
|
|
80180
|
-
"type": {
|
|
80181
|
-
"text": "boolean"
|
|
80182
|
-
},
|
|
80183
|
-
"privacy": "private",
|
|
80184
|
-
"default": "false"
|
|
81014
|
+
"description": "Text color for tab buttons.",
|
|
81015
|
+
"name": "--esp-tab-color-text"
|
|
80185
81016
|
},
|
|
80186
81017
|
{
|
|
80187
|
-
"
|
|
80188
|
-
"name": "
|
|
80189
|
-
"type": {
|
|
80190
|
-
"text": "string"
|
|
80191
|
-
},
|
|
80192
|
-
"privacy": "public",
|
|
80193
|
-
"default": "\"\"",
|
|
80194
|
-
"description": "A string value used for the id of the textarea.\n\n```html\n<esp-textarea field-name=\"comments\"></esp-textarea>\n```",
|
|
80195
|
-
"attribute": "field-name"
|
|
81018
|
+
"description": "Padding inside the panel area and tab buttons.",
|
|
81019
|
+
"name": "--esp-tab-size-padding"
|
|
80196
81020
|
},
|
|
80197
81021
|
{
|
|
80198
|
-
"
|
|
80199
|
-
"name": "
|
|
80200
|
-
"
|
|
80201
|
-
"
|
|
80202
|
-
|
|
80203
|
-
|
|
80204
|
-
"default": "\"\"",
|
|
80205
|
-
"description": "The value of the textarea.\n\n```html\n<esp-textarea value=\"Some text\"></esp-textarea>\n```",
|
|
80206
|
-
"attribute": "value"
|
|
81022
|
+
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
81023
|
+
"name": "--esp-field-background",
|
|
81024
|
+
"inheritedFrom": {
|
|
81025
|
+
"name": "EspalierElementBase",
|
|
81026
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81027
|
+
}
|
|
80207
81028
|
},
|
|
80208
81029
|
{
|
|
80209
|
-
"
|
|
80210
|
-
"name": "
|
|
80211
|
-
"
|
|
80212
|
-
"
|
|
80213
|
-
|
|
80214
|
-
|
|
80215
|
-
"default": "\"\"",
|
|
80216
|
-
"description": "The name used when the textarea participates in a `<form>`.\n\n```html\n<form>\n <esp-textarea name=\"comments\" value=\"Hello\"></esp-textarea>\n</form>\n```",
|
|
80217
|
-
"attribute": "name",
|
|
80218
|
-
"reflects": true
|
|
81030
|
+
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
81031
|
+
"name": "--esp-field-border-color",
|
|
81032
|
+
"inheritedFrom": {
|
|
81033
|
+
"name": "EspalierElementBase",
|
|
81034
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81035
|
+
}
|
|
80219
81036
|
},
|
|
80220
81037
|
{
|
|
80221
|
-
"
|
|
80222
|
-
"name": "
|
|
80223
|
-
"
|
|
80224
|
-
"
|
|
80225
|
-
|
|
80226
|
-
|
|
80227
|
-
"default": "false",
|
|
80228
|
-
"description": "When true, the field must have a value before the form can be\nsubmitted.\n\n```html\n<esp-textarea required></esp-textarea>\n```",
|
|
80229
|
-
"attribute": "required",
|
|
80230
|
-
"reflects": true
|
|
81038
|
+
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
81039
|
+
"name": "--esp-field-border-width",
|
|
81040
|
+
"inheritedFrom": {
|
|
81041
|
+
"name": "EspalierElementBase",
|
|
81042
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81043
|
+
}
|
|
80231
81044
|
},
|
|
80232
81045
|
{
|
|
80233
|
-
"
|
|
80234
|
-
"name": "
|
|
80235
|
-
"
|
|
80236
|
-
"
|
|
80237
|
-
|
|
80238
|
-
|
|
80239
|
-
"default": "\"\"",
|
|
80240
|
-
"description": "A custom message to display when the field is required but empty.\nDefaults to `\"Please fill out this field.\"` when not set.\n\n```html\n<esp-textarea required required-message=\"Comments are required!\"></esp-textarea>\n```",
|
|
80241
|
-
"attribute": "required-message"
|
|
81046
|
+
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
81047
|
+
"name": "--esp-field-text-color",
|
|
81048
|
+
"inheritedFrom": {
|
|
81049
|
+
"name": "EspalierElementBase",
|
|
81050
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81051
|
+
}
|
|
80242
81052
|
},
|
|
80243
81053
|
{
|
|
80244
|
-
"
|
|
80245
|
-
"name": "
|
|
80246
|
-
"
|
|
80247
|
-
"
|
|
80248
|
-
|
|
80249
|
-
|
|
80250
|
-
"default": "\"\"",
|
|
80251
|
-
"description": "A custom message to display when validation fails (e.g.\nminlength not met). Overrides the default friendly message.\n\n```html\n<esp-textarea minlength=\"10\"\n validation-message=\"Please write at least 10 characters.\">\n</esp-textarea>\n```",
|
|
80252
|
-
"attribute": "validation-message"
|
|
81054
|
+
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
81055
|
+
"name": "--esp-field-hover-bg",
|
|
81056
|
+
"inheritedFrom": {
|
|
81057
|
+
"name": "EspalierElementBase",
|
|
81058
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81059
|
+
}
|
|
80253
81060
|
},
|
|
80254
81061
|
{
|
|
80255
|
-
"
|
|
80256
|
-
"name": "
|
|
80257
|
-
"
|
|
80258
|
-
"
|
|
80259
|
-
|
|
80260
|
-
|
|
80261
|
-
"default": "false",
|
|
80262
|
-
"description": "When true, the textarea is disabled and cannot be\ninteracted with.\n\n```html\n<esp-textarea disabled></esp-textarea>\n```",
|
|
80263
|
-
"attribute": "disabled",
|
|
80264
|
-
"reflects": true
|
|
81062
|
+
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
81063
|
+
"name": "--esp-field-focus-bg",
|
|
81064
|
+
"inheritedFrom": {
|
|
81065
|
+
"name": "EspalierElementBase",
|
|
81066
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81067
|
+
}
|
|
80265
81068
|
},
|
|
80266
81069
|
{
|
|
80267
|
-
"
|
|
80268
|
-
"name": "
|
|
80269
|
-
"
|
|
80270
|
-
"
|
|
80271
|
-
|
|
80272
|
-
|
|
80273
|
-
|
|
80274
|
-
|
|
81070
|
+
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
81071
|
+
"name": "--esp-field-focus-shadow",
|
|
81072
|
+
"inheritedFrom": {
|
|
81073
|
+
"name": "EspalierElementBase",
|
|
81074
|
+
"module": "dist/shared/esp-element-base.js"
|
|
81075
|
+
}
|
|
81076
|
+
}
|
|
81077
|
+
],
|
|
81078
|
+
"cssParts": [
|
|
81079
|
+
{
|
|
81080
|
+
"description": "The tab strip container.",
|
|
81081
|
+
"name": "tab-list"
|
|
80275
81082
|
},
|
|
80276
81083
|
{
|
|
80277
|
-
"
|
|
80278
|
-
"name": "
|
|
80279
|
-
"type": {
|
|
80280
|
-
"text": "number | undefined"
|
|
80281
|
-
},
|
|
80282
|
-
"privacy": "public",
|
|
80283
|
-
"description": "The visible number of text lines.\n\n```html\n<esp-textarea rows=\"6\"></esp-textarea>\n```",
|
|
80284
|
-
"attribute": "rows"
|
|
81084
|
+
"description": "Each individual tab button in the strip.",
|
|
81085
|
+
"name": "tab-button"
|
|
80285
81086
|
},
|
|
81087
|
+
{
|
|
81088
|
+
"description": "The panel area below the tab strip.",
|
|
81089
|
+
"name": "panels"
|
|
81090
|
+
}
|
|
81091
|
+
],
|
|
81092
|
+
"slots": [
|
|
81093
|
+
{
|
|
81094
|
+
"description": "Place `esp-tab` elements in the default slot.",
|
|
81095
|
+
"name": ""
|
|
81096
|
+
}
|
|
81097
|
+
],
|
|
81098
|
+
"members": [
|
|
80286
81099
|
{
|
|
80287
81100
|
"kind": "field",
|
|
80288
|
-
"name": "
|
|
80289
|
-
"
|
|
80290
|
-
"text": "number | undefined"
|
|
80291
|
-
},
|
|
80292
|
-
"privacy": "public",
|
|
80293
|
-
"description": "The visible width in average character widths.\n\n```html\n<esp-textarea cols=\"40\"></esp-textarea>\n```",
|
|
80294
|
-
"attribute": "cols"
|
|
81101
|
+
"name": "panelsSlot",
|
|
81102
|
+
"privacy": "private"
|
|
80295
81103
|
},
|
|
80296
81104
|
{
|
|
80297
81105
|
"kind": "field",
|
|
80298
|
-
"name": "
|
|
81106
|
+
"name": "disabled",
|
|
80299
81107
|
"type": {
|
|
80300
|
-
"text": "
|
|
81108
|
+
"text": "boolean"
|
|
80301
81109
|
},
|
|
80302
81110
|
"privacy": "public",
|
|
80303
|
-
"
|
|
80304
|
-
"
|
|
81111
|
+
"default": "false",
|
|
81112
|
+
"description": "Disables all tabs in the group, preventing any tab from\nbeing selected.",
|
|
81113
|
+
"attribute": "disabled",
|
|
81114
|
+
"reflects": true
|
|
80305
81115
|
},
|
|
80306
81116
|
{
|
|
80307
81117
|
"kind": "field",
|
|
80308
|
-
"name": "
|
|
81118
|
+
"name": "tabData",
|
|
80309
81119
|
"type": {
|
|
80310
|
-
"text": "
|
|
81120
|
+
"text": "TabData[]"
|
|
80311
81121
|
},
|
|
80312
|
-
"privacy": "public",
|
|
80313
|
-
"description": "Maximum number of characters.",
|
|
80314
|
-
"attribute": "maxlength"
|
|
80315
|
-
},
|
|
80316
|
-
{
|
|
80317
|
-
"kind": "method",
|
|
80318
|
-
"name": "handleInput",
|
|
80319
81122
|
"privacy": "private",
|
|
80320
|
-
"
|
|
80321
|
-
{
|
|
80322
|
-
"name": "e",
|
|
80323
|
-
"type": {
|
|
80324
|
-
"text": "InputEvent"
|
|
80325
|
-
}
|
|
80326
|
-
}
|
|
80327
|
-
]
|
|
81123
|
+
"default": "[]"
|
|
80328
81124
|
},
|
|
80329
81125
|
{
|
|
80330
81126
|
"kind": "method",
|
|
80331
|
-
"name": "
|
|
81127
|
+
"name": "getTabs",
|
|
80332
81128
|
"privacy": "private",
|
|
80333
81129
|
"return": {
|
|
80334
81130
|
"type": {
|
|
80335
|
-
"text": "
|
|
81131
|
+
"text": "EspalierTab[]"
|
|
80336
81132
|
}
|
|
80337
|
-
}
|
|
80338
|
-
"description": "Sync the form value and fire `esp-value-changed`. If the field\nis already showing an error, validate eagerly so the error\nclears immediately when the user fixes it. Otherwise just\nsync silently — errors will appear on blur."
|
|
80339
|
-
},
|
|
80340
|
-
{
|
|
80341
|
-
"kind": "method",
|
|
80342
|
-
"name": "_handleBlur",
|
|
80343
|
-
"privacy": "private"
|
|
81133
|
+
}
|
|
80344
81134
|
},
|
|
80345
81135
|
{
|
|
80346
81136
|
"kind": "method",
|
|
80347
|
-
"name": "
|
|
81137
|
+
"name": "syncTabData",
|
|
80348
81138
|
"privacy": "private",
|
|
80349
81139
|
"return": {
|
|
80350
81140
|
"type": {
|
|
80351
|
-
"text": "
|
|
81141
|
+
"text": "void"
|
|
80352
81142
|
}
|
|
80353
81143
|
}
|
|
80354
81144
|
},
|
|
80355
81145
|
{
|
|
80356
81146
|
"kind": "method",
|
|
80357
|
-
"name": "
|
|
81147
|
+
"name": "activateTab",
|
|
80358
81148
|
"privacy": "private",
|
|
80359
81149
|
"return": {
|
|
80360
81150
|
"type": {
|
|
80361
|
-
"text": "
|
|
81151
|
+
"text": "void"
|
|
80362
81152
|
}
|
|
80363
81153
|
},
|
|
80364
81154
|
"parameters": [
|
|
80365
81155
|
{
|
|
80366
|
-
"name": "
|
|
81156
|
+
"name": "index",
|
|
80367
81157
|
"type": {
|
|
80368
|
-
"text": "
|
|
81158
|
+
"text": "number"
|
|
80369
81159
|
}
|
|
80370
81160
|
}
|
|
80371
81161
|
]
|
|
80372
81162
|
},
|
|
80373
81163
|
{
|
|
80374
81164
|
"kind": "method",
|
|
80375
|
-
"name": "
|
|
80376
|
-
"privacy": "
|
|
81165
|
+
"name": "handleTabClick",
|
|
81166
|
+
"privacy": "private",
|
|
80377
81167
|
"return": {
|
|
80378
81168
|
"type": {
|
|
80379
81169
|
"text": "void"
|
|
@@ -80381,87 +81171,50 @@
|
|
|
80381
81171
|
},
|
|
80382
81172
|
"parameters": [
|
|
80383
81173
|
{
|
|
80384
|
-
"name": "
|
|
80385
|
-
"optional": true,
|
|
81174
|
+
"name": "index",
|
|
80386
81175
|
"type": {
|
|
80387
|
-
"text": "
|
|
81176
|
+
"text": "number"
|
|
80388
81177
|
}
|
|
80389
81178
|
}
|
|
80390
|
-
]
|
|
80391
|
-
"description": "Focus the textarea element.\n\n```html\n<div class=\"textarea-with-button\">\n <esp-textarea value=\"Click to focus -->\"></esp-textarea>\n <esp-button label=\"Focus\" icon=\"arrow-big-left\"></esp-button>\n</div>\n<script>\n const theTextarea = findByTagName(\"esp-textarea\")[0];\n const theButton = findByTagName(\"esp-button\")[0];\n theButton.addEventListener(\"esp-clicked\", () => {\n theTextarea.focus();\n });\n</script>\n```"
|
|
81179
|
+
]
|
|
80392
81180
|
},
|
|
80393
81181
|
{
|
|
80394
81182
|
"kind": "method",
|
|
80395
|
-
"name": "
|
|
80396
|
-
"privacy": "
|
|
81183
|
+
"name": "handleKeyDown",
|
|
81184
|
+
"privacy": "private",
|
|
80397
81185
|
"return": {
|
|
80398
81186
|
"type": {
|
|
80399
81187
|
"text": "void"
|
|
80400
81188
|
}
|
|
80401
81189
|
},
|
|
80402
|
-
"
|
|
80403
|
-
|
|
80404
|
-
|
|
80405
|
-
|
|
80406
|
-
|
|
80407
|
-
|
|
80408
|
-
"return": {
|
|
80409
|
-
"type": {
|
|
80410
|
-
"text": "boolean"
|
|
80411
|
-
}
|
|
80412
|
-
},
|
|
80413
|
-
"description": "Check whether the current state is valid (delegates to ElementInternals)."
|
|
80414
|
-
},
|
|
80415
|
-
{
|
|
80416
|
-
"kind": "method",
|
|
80417
|
-
"name": "formResetCallback",
|
|
80418
|
-
"return": {
|
|
80419
|
-
"type": {
|
|
80420
|
-
"text": "void"
|
|
81190
|
+
"parameters": [
|
|
81191
|
+
{
|
|
81192
|
+
"name": "ev",
|
|
81193
|
+
"type": {
|
|
81194
|
+
"text": "KeyboardEvent"
|
|
81195
|
+
}
|
|
80421
81196
|
}
|
|
80422
|
-
|
|
80423
|
-
"description": "Called by the browser when the owning `<form>` is reset."
|
|
81197
|
+
]
|
|
80424
81198
|
},
|
|
80425
81199
|
{
|
|
80426
81200
|
"kind": "method",
|
|
80427
|
-
"name": "
|
|
81201
|
+
"name": "handleChildUpdated",
|
|
81202
|
+
"privacy": "private",
|
|
80428
81203
|
"return": {
|
|
80429
81204
|
"type": {
|
|
80430
81205
|
"text": "void"
|
|
80431
81206
|
}
|
|
80432
|
-
}
|
|
80433
|
-
"parameters": [
|
|
80434
|
-
{
|
|
80435
|
-
"name": "state",
|
|
80436
|
-
"type": {
|
|
80437
|
-
"text": "string"
|
|
80438
|
-
}
|
|
80439
|
-
}
|
|
80440
|
-
],
|
|
80441
|
-
"description": "Called by the browser to restore form state (bfcache, etc.)."
|
|
81207
|
+
}
|
|
80442
81208
|
},
|
|
80443
81209
|
{
|
|
80444
81210
|
"kind": "method",
|
|
80445
|
-
"name": "
|
|
81211
|
+
"name": "handleSlotChange",
|
|
81212
|
+
"privacy": "private",
|
|
80446
81213
|
"return": {
|
|
80447
81214
|
"type": {
|
|
80448
81215
|
"text": "void"
|
|
80449
81216
|
}
|
|
80450
|
-
}
|
|
80451
|
-
"parameters": [
|
|
80452
|
-
{
|
|
80453
|
-
"name": "isDisabled",
|
|
80454
|
-
"type": {
|
|
80455
|
-
"text": "boolean"
|
|
80456
|
-
}
|
|
80457
|
-
}
|
|
80458
|
-
],
|
|
80459
|
-
"description": "Called by the browser when a parent `<fieldset>` is enabled or disabled."
|
|
80460
|
-
},
|
|
80461
|
-
{
|
|
80462
|
-
"kind": "field",
|
|
80463
|
-
"name": "_trackVisibleError",
|
|
80464
|
-
"privacy": "private"
|
|
81217
|
+
}
|
|
80465
81218
|
},
|
|
80466
81219
|
{
|
|
80467
81220
|
"kind": "field",
|
|
@@ -81191,123 +81944,22 @@
|
|
|
81191
81944
|
"events": [
|
|
81192
81945
|
{
|
|
81193
81946
|
"type": {
|
|
81194
|
-
"text": "CustomEvent<string>"
|
|
81195
|
-
},
|
|
81196
|
-
"description": "Emitted when the textarea value changes.",
|
|
81197
|
-
"name": "esp-value-changed"
|
|
81198
|
-
},
|
|
81199
|
-
{
|
|
81200
|
-
"type": {
|
|
81201
|
-
"text": "CustomEvent<{ valid: boolean; message: string }>"
|
|
81947
|
+
"text": "CustomEvent<{ index: number; label: string }>"
|
|
81202
81948
|
},
|
|
81203
|
-
"description": "
|
|
81204
|
-
"name": "esp-
|
|
81949
|
+
"description": "Fired when the active tab changes. The detail contains the `index` and `label` of the newly active tab.",
|
|
81950
|
+
"name": "esp-tab-group-changed"
|
|
81205
81951
|
}
|
|
81206
81952
|
],
|
|
81207
81953
|
"attributes": [
|
|
81208
|
-
{
|
|
81209
|
-
"name": "field-name",
|
|
81210
|
-
"type": {
|
|
81211
|
-
"text": "string"
|
|
81212
|
-
},
|
|
81213
|
-
"default": "\"\"",
|
|
81214
|
-
"description": "A string value used for the id of the textarea.\n\n```html\n<esp-textarea field-name=\"comments\"></esp-textarea>\n```",
|
|
81215
|
-
"fieldName": "fieldName"
|
|
81216
|
-
},
|
|
81217
|
-
{
|
|
81218
|
-
"name": "value",
|
|
81219
|
-
"type": {
|
|
81220
|
-
"text": "string"
|
|
81221
|
-
},
|
|
81222
|
-
"default": "\"\"",
|
|
81223
|
-
"description": "The value of the textarea.\n\n```html\n<esp-textarea value=\"Some text\"></esp-textarea>\n```",
|
|
81224
|
-
"fieldName": "value"
|
|
81225
|
-
},
|
|
81226
|
-
{
|
|
81227
|
-
"name": "name",
|
|
81228
|
-
"type": {
|
|
81229
|
-
"text": "string"
|
|
81230
|
-
},
|
|
81231
|
-
"default": "\"\"",
|
|
81232
|
-
"description": "The name used when the textarea participates in a `<form>`.\n\n```html\n<form>\n <esp-textarea name=\"comments\" value=\"Hello\"></esp-textarea>\n</form>\n```",
|
|
81233
|
-
"fieldName": "name"
|
|
81234
|
-
},
|
|
81235
|
-
{
|
|
81236
|
-
"name": "required",
|
|
81237
|
-
"type": {
|
|
81238
|
-
"text": "boolean"
|
|
81239
|
-
},
|
|
81240
|
-
"default": "false",
|
|
81241
|
-
"description": "When true, the field must have a value before the form can be\nsubmitted.\n\n```html\n<esp-textarea required></esp-textarea>\n```",
|
|
81242
|
-
"fieldName": "required"
|
|
81243
|
-
},
|
|
81244
|
-
{
|
|
81245
|
-
"name": "required-message",
|
|
81246
|
-
"type": {
|
|
81247
|
-
"text": "string"
|
|
81248
|
-
},
|
|
81249
|
-
"default": "\"\"",
|
|
81250
|
-
"description": "A custom message to display when the field is required but empty.\nDefaults to `\"Please fill out this field.\"` when not set.\n\n```html\n<esp-textarea required required-message=\"Comments are required!\"></esp-textarea>\n```",
|
|
81251
|
-
"fieldName": "requiredMessage"
|
|
81252
|
-
},
|
|
81253
|
-
{
|
|
81254
|
-
"name": "validation-message",
|
|
81255
|
-
"type": {
|
|
81256
|
-
"text": "string"
|
|
81257
|
-
},
|
|
81258
|
-
"default": "\"\"",
|
|
81259
|
-
"description": "A custom message to display when validation fails (e.g.\nminlength not met). Overrides the default friendly message.\n\n```html\n<esp-textarea minlength=\"10\"\n validation-message=\"Please write at least 10 characters.\">\n</esp-textarea>\n```",
|
|
81260
|
-
"fieldName": "validationMessage"
|
|
81261
|
-
},
|
|
81262
81954
|
{
|
|
81263
81955
|
"name": "disabled",
|
|
81264
81956
|
"type": {
|
|
81265
81957
|
"text": "boolean"
|
|
81266
81958
|
},
|
|
81267
81959
|
"default": "false",
|
|
81268
|
-
"description": "
|
|
81960
|
+
"description": "Disables all tabs in the group, preventing any tab from\nbeing selected.",
|
|
81269
81961
|
"fieldName": "disabled"
|
|
81270
81962
|
},
|
|
81271
|
-
{
|
|
81272
|
-
"name": "placeholder",
|
|
81273
|
-
"type": {
|
|
81274
|
-
"text": "string | undefined"
|
|
81275
|
-
},
|
|
81276
|
-
"description": "Placeholder text shown when the textarea is empty.\n\n```html\n<esp-textarea placeholder=\"Enter your message...\"></esp-textarea>\n```",
|
|
81277
|
-
"fieldName": "placeholder"
|
|
81278
|
-
},
|
|
81279
|
-
{
|
|
81280
|
-
"name": "rows",
|
|
81281
|
-
"type": {
|
|
81282
|
-
"text": "number | undefined"
|
|
81283
|
-
},
|
|
81284
|
-
"description": "The visible number of text lines.\n\n```html\n<esp-textarea rows=\"6\"></esp-textarea>\n```",
|
|
81285
|
-
"fieldName": "rows"
|
|
81286
|
-
},
|
|
81287
|
-
{
|
|
81288
|
-
"name": "cols",
|
|
81289
|
-
"type": {
|
|
81290
|
-
"text": "number | undefined"
|
|
81291
|
-
},
|
|
81292
|
-
"description": "The visible width in average character widths.\n\n```html\n<esp-textarea cols=\"40\"></esp-textarea>\n```",
|
|
81293
|
-
"fieldName": "cols"
|
|
81294
|
-
},
|
|
81295
|
-
{
|
|
81296
|
-
"name": "minlength",
|
|
81297
|
-
"type": {
|
|
81298
|
-
"text": "number | undefined"
|
|
81299
|
-
},
|
|
81300
|
-
"description": "Minimum number of characters.",
|
|
81301
|
-
"fieldName": "minlength"
|
|
81302
|
-
},
|
|
81303
|
-
{
|
|
81304
|
-
"name": "maxlength",
|
|
81305
|
-
"type": {
|
|
81306
|
-
"text": "number | undefined"
|
|
81307
|
-
},
|
|
81308
|
-
"description": "Maximum number of characters.",
|
|
81309
|
-
"fieldName": "maxlength"
|
|
81310
|
-
},
|
|
81311
81963
|
{
|
|
81312
81964
|
"name": "scheme",
|
|
81313
81965
|
"type": {
|
|
@@ -81350,142 +82002,60 @@
|
|
|
81350
82002
|
"name": "EspalierElementBase",
|
|
81351
82003
|
"module": "dist/shared/esp-element-base.js"
|
|
81352
82004
|
},
|
|
81353
|
-
"tagName": "esp-
|
|
82005
|
+
"tagName": "esp-tab-group",
|
|
81354
82006
|
"customElement": true,
|
|
81355
82007
|
"docPageTitle": {
|
|
81356
|
-
"name": "
|
|
81357
|
-
"description": ""
|
|
82008
|
+
"name": "Tab",
|
|
82009
|
+
"description": "Group"
|
|
81358
82010
|
},
|
|
81359
82011
|
"docUrl": {
|
|
81360
|
-
"name": "/components/
|
|
82012
|
+
"name": "/components/tabs",
|
|
81361
82013
|
"description": ""
|
|
81362
82014
|
},
|
|
81363
82015
|
"menuGroup": {
|
|
81364
|
-
"name": "
|
|
81365
|
-
"description": "
|
|
82016
|
+
"name": "Navigation",
|
|
82017
|
+
"description": ""
|
|
81366
82018
|
},
|
|
81367
82019
|
"menuLabel": {
|
|
81368
|
-
"name": "
|
|
81369
|
-
"description": ""
|
|
82020
|
+
"name": "Tab",
|
|
82021
|
+
"description": "Group"
|
|
81370
82022
|
},
|
|
81371
82023
|
"menuIcon": {
|
|
81372
|
-
"name": "
|
|
82024
|
+
"name": "layout-navbar",
|
|
81373
82025
|
"description": ""
|
|
81374
|
-
}
|
|
81375
|
-
"cssProperties": [
|
|
81376
|
-
{
|
|
81377
|
-
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
81378
|
-
"name": "--esp-field-background",
|
|
81379
|
-
"inheritedFrom": {
|
|
81380
|
-
"name": "EspalierElementBase",
|
|
81381
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81382
|
-
}
|
|
81383
|
-
},
|
|
81384
|
-
{
|
|
81385
|
-
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
81386
|
-
"name": "--esp-field-border-color",
|
|
81387
|
-
"inheritedFrom": {
|
|
81388
|
-
"name": "EspalierElementBase",
|
|
81389
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81390
|
-
}
|
|
81391
|
-
},
|
|
81392
|
-
{
|
|
81393
|
-
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
81394
|
-
"name": "--esp-field-border-width",
|
|
81395
|
-
"inheritedFrom": {
|
|
81396
|
-
"name": "EspalierElementBase",
|
|
81397
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81398
|
-
}
|
|
81399
|
-
},
|
|
81400
|
-
{
|
|
81401
|
-
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
81402
|
-
"name": "--esp-field-text-color",
|
|
81403
|
-
"inheritedFrom": {
|
|
81404
|
-
"name": "EspalierElementBase",
|
|
81405
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81406
|
-
}
|
|
81407
|
-
},
|
|
81408
|
-
{
|
|
81409
|
-
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
81410
|
-
"name": "--esp-field-hover-bg",
|
|
81411
|
-
"inheritedFrom": {
|
|
81412
|
-
"name": "EspalierElementBase",
|
|
81413
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81414
|
-
}
|
|
81415
|
-
},
|
|
81416
|
-
{
|
|
81417
|
-
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
81418
|
-
"name": "--esp-field-focus-bg",
|
|
81419
|
-
"inheritedFrom": {
|
|
81420
|
-
"name": "EspalierElementBase",
|
|
81421
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81422
|
-
}
|
|
81423
|
-
},
|
|
81424
|
-
{
|
|
81425
|
-
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
81426
|
-
"name": "--esp-field-focus-shadow",
|
|
81427
|
-
"inheritedFrom": {
|
|
81428
|
-
"name": "EspalierElementBase",
|
|
81429
|
-
"module": "dist/shared/esp-element-base.js"
|
|
81430
|
-
}
|
|
81431
|
-
}
|
|
81432
|
-
]
|
|
82026
|
+
}
|
|
81433
82027
|
}
|
|
81434
82028
|
],
|
|
81435
82029
|
"exports": [
|
|
81436
82030
|
{
|
|
81437
82031
|
"kind": "js",
|
|
81438
|
-
"name": "
|
|
82032
|
+
"name": "EspalierTabGroup",
|
|
81439
82033
|
"declaration": {
|
|
81440
|
-
"name": "
|
|
81441
|
-
"module": "dist/
|
|
82034
|
+
"name": "EspalierTabGroup",
|
|
82035
|
+
"module": "dist/tabs/esp-tab-group.js"
|
|
81442
82036
|
}
|
|
81443
82037
|
},
|
|
81444
82038
|
{
|
|
81445
82039
|
"kind": "custom-element-definition",
|
|
81446
|
-
"name": "esp-
|
|
82040
|
+
"name": "esp-tab-group",
|
|
81447
82041
|
"declaration": {
|
|
81448
|
-
"name": "
|
|
81449
|
-
"module": "dist/
|
|
82042
|
+
"name": "EspalierTabGroup",
|
|
82043
|
+
"module": "dist/tabs/esp-tab-group.js"
|
|
81450
82044
|
}
|
|
81451
82045
|
}
|
|
81452
82046
|
]
|
|
81453
82047
|
},
|
|
81454
82048
|
{
|
|
81455
82049
|
"kind": "javascript-module",
|
|
81456
|
-
"path": "dist/tabs/esp-tab
|
|
82050
|
+
"path": "dist/tabs/esp-tab.js",
|
|
81457
82051
|
"declarations": [
|
|
81458
82052
|
{
|
|
81459
82053
|
"kind": "class",
|
|
81460
|
-
"description": "A
|
|
81461
|
-
"name": "
|
|
82054
|
+
"description": "A single tab panel used inside\n[esp-tab-group](/components/tabs). Each tab provides a\n`label` that appears in the generated tab strip and a default\nslot for the panel content.\n\n```html\n<esp-tab-group>\n <esp-tab label=\"First\">\n <p>Content for the first tab.</p>\n </esp-tab>\n <esp-tab label=\"Second\">\n <p>Content for the second tab.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Pre-selected tab\n\nSet the `active` attribute to make a tab active on load:\n\n```html\n<esp-tab-group>\n <esp-tab label=\"One\">\n <p>Not active by default.</p>\n </esp-tab>\n <esp-tab label=\"Two\" active>\n <p>This tab starts active.</p>\n </esp-tab>\n</esp-tab-group>\n```\n\n### Disabled tab\n\n```html\n<esp-tab-group>\n <esp-tab label=\"Enabled\">\n <p>This tab works normally.</p>\n </esp-tab>\n <esp-tab label=\"Disabled\" disabled>\n <p>Cannot reach this panel.</p>\n </esp-tab>\n</esp-tab-group>\n```",
|
|
82055
|
+
"name": "EspalierTab",
|
|
81462
82056
|
"cssProperties": [
|
|
81463
82057
|
{
|
|
81464
|
-
"description": "
|
|
81465
|
-
"name": "--esp-tab-color-border"
|
|
81466
|
-
},
|
|
81467
|
-
{
|
|
81468
|
-
"description": "Background color of the overall component.",
|
|
81469
|
-
"name": "--esp-tab-color-background"
|
|
81470
|
-
},
|
|
81471
|
-
{
|
|
81472
|
-
"description": "Background color of the tab strip.",
|
|
81473
|
-
"name": "--esp-tab-color-strip-background"
|
|
81474
|
-
},
|
|
81475
|
-
{
|
|
81476
|
-
"description": "Tab button hover background.",
|
|
81477
|
-
"name": "--esp-tab-color-button-hover"
|
|
81478
|
-
},
|
|
81479
|
-
{
|
|
81480
|
-
"description": "Active tab button background.",
|
|
81481
|
-
"name": "--esp-tab-color-button-active"
|
|
81482
|
-
},
|
|
81483
|
-
{
|
|
81484
|
-
"description": "Text color for tab buttons.",
|
|
81485
|
-
"name": "--esp-tab-color-text"
|
|
81486
|
-
},
|
|
81487
|
-
{
|
|
81488
|
-
"description": "Padding inside the panel area and tab buttons.",
|
|
82058
|
+
"description": "Padding inside the panel area.",
|
|
81489
82059
|
"name": "--esp-tab-size-padding"
|
|
81490
82060
|
},
|
|
81491
82061
|
{
|
|
@@ -81547,144 +82117,51 @@
|
|
|
81547
82117
|
],
|
|
81548
82118
|
"cssParts": [
|
|
81549
82119
|
{
|
|
81550
|
-
"description": "The
|
|
81551
|
-
"name": "
|
|
81552
|
-
},
|
|
81553
|
-
{
|
|
81554
|
-
"description": "Each individual tab button in the strip.",
|
|
81555
|
-
"name": "tab-button"
|
|
81556
|
-
},
|
|
81557
|
-
{
|
|
81558
|
-
"description": "The panel area below the tab strip.",
|
|
81559
|
-
"name": "panels"
|
|
82120
|
+
"description": "The panel wrapper element.",
|
|
82121
|
+
"name": "panel"
|
|
81560
82122
|
}
|
|
81561
82123
|
],
|
|
81562
82124
|
"slots": [
|
|
81563
82125
|
{
|
|
81564
|
-
"description": "
|
|
82126
|
+
"description": "The default slot holds the panel content displayed when this tab is active. Label, active-state, and disabled-state updates are reported through a private coordination event consumed by the parent tab group.",
|
|
81565
82127
|
"name": ""
|
|
81566
82128
|
}
|
|
81567
82129
|
],
|
|
81568
82130
|
"members": [
|
|
81569
82131
|
{
|
|
81570
82132
|
"kind": "field",
|
|
81571
|
-
"name": "
|
|
81572
|
-
"
|
|
82133
|
+
"name": "label",
|
|
82134
|
+
"type": {
|
|
82135
|
+
"text": "string"
|
|
82136
|
+
},
|
|
82137
|
+
"privacy": "public",
|
|
82138
|
+
"default": "\"\"",
|
|
82139
|
+
"description": "The text displayed in the tab button within the tab strip.",
|
|
82140
|
+
"attribute": "label"
|
|
81573
82141
|
},
|
|
81574
82142
|
{
|
|
81575
82143
|
"kind": "field",
|
|
81576
|
-
"name": "
|
|
82144
|
+
"name": "active",
|
|
81577
82145
|
"type": {
|
|
81578
82146
|
"text": "boolean"
|
|
81579
82147
|
},
|
|
81580
82148
|
"privacy": "public",
|
|
81581
82149
|
"default": "false",
|
|
81582
|
-
"description": "
|
|
81583
|
-
"attribute": "
|
|
82150
|
+
"description": "Whether this tab is currently active (its panel is visible).",
|
|
82151
|
+
"attribute": "active",
|
|
81584
82152
|
"reflects": true
|
|
81585
82153
|
},
|
|
81586
82154
|
{
|
|
81587
82155
|
"kind": "field",
|
|
81588
|
-
"name": "
|
|
82156
|
+
"name": "disabled",
|
|
81589
82157
|
"type": {
|
|
81590
|
-
"text": "
|
|
81591
|
-
},
|
|
81592
|
-
"privacy": "private",
|
|
81593
|
-
"default": "[]"
|
|
81594
|
-
},
|
|
81595
|
-
{
|
|
81596
|
-
"kind": "method",
|
|
81597
|
-
"name": "getTabs",
|
|
81598
|
-
"privacy": "private",
|
|
81599
|
-
"return": {
|
|
81600
|
-
"type": {
|
|
81601
|
-
"text": "EspalierTab[]"
|
|
81602
|
-
}
|
|
81603
|
-
}
|
|
81604
|
-
},
|
|
81605
|
-
{
|
|
81606
|
-
"kind": "method",
|
|
81607
|
-
"name": "syncTabData",
|
|
81608
|
-
"privacy": "private",
|
|
81609
|
-
"return": {
|
|
81610
|
-
"type": {
|
|
81611
|
-
"text": "void"
|
|
81612
|
-
}
|
|
81613
|
-
}
|
|
81614
|
-
},
|
|
81615
|
-
{
|
|
81616
|
-
"kind": "method",
|
|
81617
|
-
"name": "activateTab",
|
|
81618
|
-
"privacy": "private",
|
|
81619
|
-
"return": {
|
|
81620
|
-
"type": {
|
|
81621
|
-
"text": "void"
|
|
81622
|
-
}
|
|
81623
|
-
},
|
|
81624
|
-
"parameters": [
|
|
81625
|
-
{
|
|
81626
|
-
"name": "index",
|
|
81627
|
-
"type": {
|
|
81628
|
-
"text": "number"
|
|
81629
|
-
}
|
|
81630
|
-
}
|
|
81631
|
-
]
|
|
81632
|
-
},
|
|
81633
|
-
{
|
|
81634
|
-
"kind": "method",
|
|
81635
|
-
"name": "handleTabClick",
|
|
81636
|
-
"privacy": "private",
|
|
81637
|
-
"return": {
|
|
81638
|
-
"type": {
|
|
81639
|
-
"text": "void"
|
|
81640
|
-
}
|
|
81641
|
-
},
|
|
81642
|
-
"parameters": [
|
|
81643
|
-
{
|
|
81644
|
-
"name": "index",
|
|
81645
|
-
"type": {
|
|
81646
|
-
"text": "number"
|
|
81647
|
-
}
|
|
81648
|
-
}
|
|
81649
|
-
]
|
|
81650
|
-
},
|
|
81651
|
-
{
|
|
81652
|
-
"kind": "method",
|
|
81653
|
-
"name": "handleKeyDown",
|
|
81654
|
-
"privacy": "private",
|
|
81655
|
-
"return": {
|
|
81656
|
-
"type": {
|
|
81657
|
-
"text": "void"
|
|
81658
|
-
}
|
|
82158
|
+
"text": "boolean"
|
|
81659
82159
|
},
|
|
81660
|
-
"
|
|
81661
|
-
|
|
81662
|
-
|
|
81663
|
-
|
|
81664
|
-
|
|
81665
|
-
}
|
|
81666
|
-
}
|
|
81667
|
-
]
|
|
81668
|
-
},
|
|
81669
|
-
{
|
|
81670
|
-
"kind": "method",
|
|
81671
|
-
"name": "handleChildUpdated",
|
|
81672
|
-
"privacy": "private",
|
|
81673
|
-
"return": {
|
|
81674
|
-
"type": {
|
|
81675
|
-
"text": "void"
|
|
81676
|
-
}
|
|
81677
|
-
}
|
|
81678
|
-
},
|
|
81679
|
-
{
|
|
81680
|
-
"kind": "method",
|
|
81681
|
-
"name": "handleSlotChange",
|
|
81682
|
-
"privacy": "private",
|
|
81683
|
-
"return": {
|
|
81684
|
-
"type": {
|
|
81685
|
-
"text": "void"
|
|
81686
|
-
}
|
|
81687
|
-
}
|
|
82160
|
+
"privacy": "public",
|
|
82161
|
+
"default": "false",
|
|
82162
|
+
"description": "Whether this tab is disabled (cannot be selected).",
|
|
82163
|
+
"attribute": "disabled",
|
|
82164
|
+
"reflects": true
|
|
81688
82165
|
},
|
|
81689
82166
|
{
|
|
81690
82167
|
"kind": "field",
|
|
@@ -82411,23 +82888,33 @@
|
|
|
82411
82888
|
}
|
|
82412
82889
|
}
|
|
82413
82890
|
],
|
|
82414
|
-
"events": [
|
|
82891
|
+
"events": [],
|
|
82892
|
+
"attributes": [
|
|
82415
82893
|
{
|
|
82894
|
+
"name": "label",
|
|
82416
82895
|
"type": {
|
|
82417
|
-
"text": "
|
|
82896
|
+
"text": "string"
|
|
82418
82897
|
},
|
|
82419
|
-
"
|
|
82420
|
-
"
|
|
82421
|
-
|
|
82422
|
-
|
|
82423
|
-
|
|
82898
|
+
"default": "\"\"",
|
|
82899
|
+
"description": "The text displayed in the tab button within the tab strip.",
|
|
82900
|
+
"fieldName": "label"
|
|
82901
|
+
},
|
|
82902
|
+
{
|
|
82903
|
+
"name": "active",
|
|
82904
|
+
"type": {
|
|
82905
|
+
"text": "boolean"
|
|
82906
|
+
},
|
|
82907
|
+
"default": "false",
|
|
82908
|
+
"description": "Whether this tab is currently active (its panel is visible).",
|
|
82909
|
+
"fieldName": "active"
|
|
82910
|
+
},
|
|
82424
82911
|
{
|
|
82425
82912
|
"name": "disabled",
|
|
82426
82913
|
"type": {
|
|
82427
82914
|
"text": "boolean"
|
|
82428
82915
|
},
|
|
82429
82916
|
"default": "false",
|
|
82430
|
-
"description": "
|
|
82917
|
+
"description": "Whether this tab is disabled (cannot be selected).",
|
|
82431
82918
|
"fieldName": "disabled"
|
|
82432
82919
|
},
|
|
82433
82920
|
{
|
|
@@ -82472,155 +82959,158 @@
|
|
|
82472
82959
|
"name": "EspalierElementBase",
|
|
82473
82960
|
"module": "dist/shared/esp-element-base.js"
|
|
82474
82961
|
},
|
|
82475
|
-
"tagName": "esp-tab
|
|
82962
|
+
"tagName": "esp-tab",
|
|
82476
82963
|
"customElement": true,
|
|
82477
82964
|
"docPageTitle": {
|
|
82478
82965
|
"name": "Tab",
|
|
82479
|
-
"description": "
|
|
82966
|
+
"description": ""
|
|
82480
82967
|
},
|
|
82481
82968
|
"docUrl": {
|
|
82482
|
-
"name": "/components/tabs",
|
|
82969
|
+
"name": "/components/tabs/tab",
|
|
82483
82970
|
"description": ""
|
|
82484
82971
|
},
|
|
82485
82972
|
"menuGroup": {
|
|
82486
82973
|
"name": "Navigation",
|
|
82487
82974
|
"description": ""
|
|
82488
|
-
},
|
|
82489
|
-
"menuLabel": {
|
|
82490
|
-
"name": "Tab",
|
|
82491
|
-
"description": "Group"
|
|
82492
|
-
},
|
|
82493
|
-
"menuIcon": {
|
|
82494
|
-
"name": "layout-navbar",
|
|
82495
|
-
"description": ""
|
|
82496
82975
|
}
|
|
82497
82976
|
}
|
|
82498
82977
|
],
|
|
82499
82978
|
"exports": [
|
|
82500
82979
|
{
|
|
82501
82980
|
"kind": "js",
|
|
82502
|
-
"name": "
|
|
82981
|
+
"name": "EspalierTab",
|
|
82503
82982
|
"declaration": {
|
|
82504
|
-
"name": "
|
|
82505
|
-
"module": "dist/tabs/esp-tab
|
|
82983
|
+
"name": "EspalierTab",
|
|
82984
|
+
"module": "dist/tabs/esp-tab.js"
|
|
82506
82985
|
}
|
|
82507
82986
|
},
|
|
82508
82987
|
{
|
|
82509
82988
|
"kind": "custom-element-definition",
|
|
82510
|
-
"name": "esp-tab
|
|
82989
|
+
"name": "esp-tab",
|
|
82511
82990
|
"declaration": {
|
|
82512
|
-
"name": "
|
|
82513
|
-
"module": "dist/tabs/esp-tab
|
|
82991
|
+
"name": "EspalierTab",
|
|
82992
|
+
"module": "dist/tabs/esp-tab.js"
|
|
82514
82993
|
}
|
|
82515
82994
|
}
|
|
82516
82995
|
]
|
|
82517
82996
|
},
|
|
82518
82997
|
{
|
|
82519
82998
|
"kind": "javascript-module",
|
|
82520
|
-
"path": "dist/
|
|
82999
|
+
"path": "dist/textarea/esp-textarea.js",
|
|
82521
83000
|
"declarations": [
|
|
82522
83001
|
{
|
|
82523
83002
|
"kind": "class",
|
|
82524
|
-
"description": "
|
|
82525
|
-
"name": "
|
|
82526
|
-
"
|
|
83003
|
+
"description": "Wraps a standard HTML textarea element, providing value\nbinding, input validation, and programmatic focus for\nEspalier forms and UIs.\n\n```html\n<esp-box>\n <h2>esp-textarea example</h2>\n <p>Start typing...</p>\n <esp-textarea value=\"Hello from the textarea!\"></esp-textarea>\n</esp-box>\n<script>\n const theTextarea = findByTagName(\"esp-textarea\")[0];\n const theP = findByTagName(\"p\")[0];\n theTextarea.addEventListener(\"esp-value-changed\", (ev) => {\n theP.innerText = ev.detail.length\n ? ev.detail\n : \"The textarea is empty...\";\n });\n</script>\n```\n\nTextareas pick up zone theming from an ancestor's `context`\nattribute — see the [theming guide](/espalier-guides/):\n\n```html\n<esp-box context=\"quiet\">\n <esp-textarea label=\"Inside the quiet zone\"></esp-textarea>\n</esp-box>\n```\n\n### Validation with minlength and maxlength\n\n```html\n<esp-box>\n <esp-form-item label=\"Bio (10-500 characters)\">\n <esp-textarea name=\"bio\" required minlength=\"10\" maxlength=\"500\"\n rows=\"4\" placeholder=\"Tell us about yourself...\">\n </esp-textarea>\n </esp-form-item>\n</esp-box>\n```\n\n### Disabled textarea\n\n```html\n<esp-box>\n <esp-form-item label=\"Read-only notes\">\n <esp-textarea disabled value=\"This textarea is disabled.\"></esp-textarea>\n </esp-form-item>\n</esp-box>\n```",
|
|
83004
|
+
"name": "EspalierTextarea",
|
|
83005
|
+
"members": [
|
|
82527
83006
|
{
|
|
82528
|
-
"
|
|
82529
|
-
"name": "
|
|
83007
|
+
"kind": "field",
|
|
83008
|
+
"name": "formAssociated",
|
|
83009
|
+
"type": {
|
|
83010
|
+
"text": "boolean"
|
|
83011
|
+
},
|
|
83012
|
+
"static": true,
|
|
83013
|
+
"default": "true"
|
|
82530
83014
|
},
|
|
82531
83015
|
{
|
|
82532
|
-
"
|
|
82533
|
-
"name": "
|
|
82534
|
-
"
|
|
82535
|
-
"name": "EspalierElementBase",
|
|
82536
|
-
"module": "dist/shared/esp-element-base.js"
|
|
82537
|
-
}
|
|
83016
|
+
"kind": "field",
|
|
83017
|
+
"name": "internals",
|
|
83018
|
+
"privacy": "private"
|
|
82538
83019
|
},
|
|
82539
83020
|
{
|
|
82540
|
-
"
|
|
82541
|
-
"name": "
|
|
82542
|
-
"
|
|
82543
|
-
"name": "EspalierElementBase",
|
|
82544
|
-
"module": "dist/shared/esp-element-base.js"
|
|
82545
|
-
}
|
|
83021
|
+
"kind": "field",
|
|
83022
|
+
"name": "theTextarea",
|
|
83023
|
+
"privacy": "private"
|
|
82546
83024
|
},
|
|
82547
83025
|
{
|
|
82548
|
-
"
|
|
82549
|
-
"name": "
|
|
82550
|
-
"
|
|
82551
|
-
|
|
82552
|
-
"module": "dist/shared/esp-element-base.js"
|
|
82553
|
-
}
|
|
83026
|
+
"kind": "field",
|
|
83027
|
+
"name": "formCtrl",
|
|
83028
|
+
"privacy": "private",
|
|
83029
|
+
"default": "new FormFieldController({ host: this, internals: this.internals, getFormValue: () => this.value || null, getValidity: () => this._getValidity(), getValidationAnchor: (): HTMLElement => this.theTextarea.value ?? this, onReset: () => { this.value = \"\"; this._hasVisibleError = false; }, onRestore: (state: string) => { this.value = state; }, onDisabled: (isDisabled: boolean) => { this.disabled = isDisabled; }, })"
|
|
82554
83030
|
},
|
|
82555
83031
|
{
|
|
82556
|
-
"
|
|
82557
|
-
"name": "
|
|
82558
|
-
"
|
|
82559
|
-
|
|
82560
|
-
"module": "dist/shared/esp-element-base.js"
|
|
82561
|
-
}
|
|
83032
|
+
"kind": "field",
|
|
83033
|
+
"name": "formItemDescription",
|
|
83034
|
+
"privacy": "private",
|
|
83035
|
+
"default": "new FormFieldDescriptionController({ host: this, getTarget: () => this.theTextarea.value, })"
|
|
82562
83036
|
},
|
|
82563
83037
|
{
|
|
82564
|
-
"
|
|
82565
|
-
"name": "
|
|
82566
|
-
"
|
|
82567
|
-
"
|
|
82568
|
-
|
|
82569
|
-
|
|
83038
|
+
"kind": "field",
|
|
83039
|
+
"name": "_hasVisibleError",
|
|
83040
|
+
"type": {
|
|
83041
|
+
"text": "boolean"
|
|
83042
|
+
},
|
|
83043
|
+
"privacy": "private",
|
|
83044
|
+
"default": "false"
|
|
82570
83045
|
},
|
|
82571
83046
|
{
|
|
82572
|
-
"
|
|
82573
|
-
"name": "
|
|
82574
|
-
"
|
|
82575
|
-
"
|
|
82576
|
-
|
|
82577
|
-
|
|
83047
|
+
"kind": "field",
|
|
83048
|
+
"name": "fieldName",
|
|
83049
|
+
"type": {
|
|
83050
|
+
"text": "string"
|
|
83051
|
+
},
|
|
83052
|
+
"privacy": "public",
|
|
83053
|
+
"default": "\"\"",
|
|
83054
|
+
"description": "A string value used for the id of the textarea.\n\n```html\n<esp-textarea field-name=\"comments\"></esp-textarea>\n```",
|
|
83055
|
+
"attribute": "field-name"
|
|
82578
83056
|
},
|
|
82579
83057
|
{
|
|
82580
|
-
"
|
|
82581
|
-
"name": "
|
|
82582
|
-
"
|
|
82583
|
-
"
|
|
82584
|
-
|
|
82585
|
-
|
|
82586
|
-
|
|
82587
|
-
|
|
82588
|
-
|
|
82589
|
-
|
|
82590
|
-
"description": "The panel wrapper element.",
|
|
82591
|
-
"name": "panel"
|
|
82592
|
-
}
|
|
82593
|
-
],
|
|
82594
|
-
"slots": [
|
|
82595
|
-
{
|
|
82596
|
-
"description": "The default slot holds the panel content displayed when this tab is active. Label, active-state, and disabled-state updates are reported through a private coordination event consumed by the parent tab group.",
|
|
82597
|
-
"name": ""
|
|
82598
|
-
}
|
|
82599
|
-
],
|
|
82600
|
-
"members": [
|
|
83058
|
+
"kind": "field",
|
|
83059
|
+
"name": "value",
|
|
83060
|
+
"type": {
|
|
83061
|
+
"text": "string"
|
|
83062
|
+
},
|
|
83063
|
+
"privacy": "public",
|
|
83064
|
+
"default": "\"\"",
|
|
83065
|
+
"description": "The value of the textarea.\n\n```html\n<esp-textarea value=\"Some text\"></esp-textarea>\n```",
|
|
83066
|
+
"attribute": "value"
|
|
83067
|
+
},
|
|
82601
83068
|
{
|
|
82602
83069
|
"kind": "field",
|
|
82603
|
-
"name": "
|
|
83070
|
+
"name": "name",
|
|
82604
83071
|
"type": {
|
|
82605
83072
|
"text": "string"
|
|
82606
83073
|
},
|
|
82607
83074
|
"privacy": "public",
|
|
82608
83075
|
"default": "\"\"",
|
|
82609
|
-
"description": "The
|
|
82610
|
-
"attribute": "
|
|
83076
|
+
"description": "The name used when the textarea participates in a `<form>`.\n\n```html\n<form>\n <esp-textarea name=\"comments\" value=\"Hello\"></esp-textarea>\n</form>\n```",
|
|
83077
|
+
"attribute": "name",
|
|
83078
|
+
"reflects": true
|
|
82611
83079
|
},
|
|
82612
83080
|
{
|
|
82613
83081
|
"kind": "field",
|
|
82614
|
-
"name": "
|
|
83082
|
+
"name": "required",
|
|
82615
83083
|
"type": {
|
|
82616
83084
|
"text": "boolean"
|
|
82617
83085
|
},
|
|
82618
83086
|
"privacy": "public",
|
|
82619
83087
|
"default": "false",
|
|
82620
|
-
"description": "
|
|
82621
|
-
"attribute": "
|
|
83088
|
+
"description": "When true, the field must have a value before the form can be\nsubmitted.\n\n```html\n<esp-textarea required></esp-textarea>\n```",
|
|
83089
|
+
"attribute": "required",
|
|
82622
83090
|
"reflects": true
|
|
82623
83091
|
},
|
|
83092
|
+
{
|
|
83093
|
+
"kind": "field",
|
|
83094
|
+
"name": "requiredMessage",
|
|
83095
|
+
"type": {
|
|
83096
|
+
"text": "string"
|
|
83097
|
+
},
|
|
83098
|
+
"privacy": "public",
|
|
83099
|
+
"default": "\"\"",
|
|
83100
|
+
"description": "A custom message to display when the field is required but empty.\nDefaults to `\"Please fill out this field.\"` when not set.\n\n```html\n<esp-textarea required required-message=\"Comments are required!\"></esp-textarea>\n```",
|
|
83101
|
+
"attribute": "required-message"
|
|
83102
|
+
},
|
|
83103
|
+
{
|
|
83104
|
+
"kind": "field",
|
|
83105
|
+
"name": "validationMessage",
|
|
83106
|
+
"type": {
|
|
83107
|
+
"text": "string"
|
|
83108
|
+
},
|
|
83109
|
+
"privacy": "public",
|
|
83110
|
+
"default": "\"\"",
|
|
83111
|
+
"description": "A custom message to display when validation fails (e.g.\nminlength not met). Overrides the default friendly message.\n\n```html\n<esp-textarea minlength=\"10\"\n validation-message=\"Please write at least 10 characters.\">\n</esp-textarea>\n```",
|
|
83112
|
+
"attribute": "validation-message"
|
|
83113
|
+
},
|
|
82624
83114
|
{
|
|
82625
83115
|
"kind": "field",
|
|
82626
83116
|
"name": "disabled",
|
|
@@ -82629,10 +83119,210 @@
|
|
|
82629
83119
|
},
|
|
82630
83120
|
"privacy": "public",
|
|
82631
83121
|
"default": "false",
|
|
82632
|
-
"description": "
|
|
83122
|
+
"description": "When true, the textarea is disabled and cannot be\ninteracted with.\n\n```html\n<esp-textarea disabled></esp-textarea>\n```",
|
|
82633
83123
|
"attribute": "disabled",
|
|
82634
83124
|
"reflects": true
|
|
82635
83125
|
},
|
|
83126
|
+
{
|
|
83127
|
+
"kind": "field",
|
|
83128
|
+
"name": "placeholder",
|
|
83129
|
+
"type": {
|
|
83130
|
+
"text": "string | undefined"
|
|
83131
|
+
},
|
|
83132
|
+
"privacy": "public",
|
|
83133
|
+
"description": "Placeholder text shown when the textarea is empty.\n\n```html\n<esp-textarea placeholder=\"Enter your message...\"></esp-textarea>\n```",
|
|
83134
|
+
"attribute": "placeholder"
|
|
83135
|
+
},
|
|
83136
|
+
{
|
|
83137
|
+
"kind": "field",
|
|
83138
|
+
"name": "rows",
|
|
83139
|
+
"type": {
|
|
83140
|
+
"text": "number | undefined"
|
|
83141
|
+
},
|
|
83142
|
+
"privacy": "public",
|
|
83143
|
+
"description": "The visible number of text lines.\n\n```html\n<esp-textarea rows=\"6\"></esp-textarea>\n```",
|
|
83144
|
+
"attribute": "rows"
|
|
83145
|
+
},
|
|
83146
|
+
{
|
|
83147
|
+
"kind": "field",
|
|
83148
|
+
"name": "cols",
|
|
83149
|
+
"type": {
|
|
83150
|
+
"text": "number | undefined"
|
|
83151
|
+
},
|
|
83152
|
+
"privacy": "public",
|
|
83153
|
+
"description": "The visible width in average character widths.\n\n```html\n<esp-textarea cols=\"40\"></esp-textarea>\n```",
|
|
83154
|
+
"attribute": "cols"
|
|
83155
|
+
},
|
|
83156
|
+
{
|
|
83157
|
+
"kind": "field",
|
|
83158
|
+
"name": "minlength",
|
|
83159
|
+
"type": {
|
|
83160
|
+
"text": "number | undefined"
|
|
83161
|
+
},
|
|
83162
|
+
"privacy": "public",
|
|
83163
|
+
"description": "Minimum number of characters.",
|
|
83164
|
+
"attribute": "minlength"
|
|
83165
|
+
},
|
|
83166
|
+
{
|
|
83167
|
+
"kind": "field",
|
|
83168
|
+
"name": "maxlength",
|
|
83169
|
+
"type": {
|
|
83170
|
+
"text": "number | undefined"
|
|
83171
|
+
},
|
|
83172
|
+
"privacy": "public",
|
|
83173
|
+
"description": "Maximum number of characters.",
|
|
83174
|
+
"attribute": "maxlength"
|
|
83175
|
+
},
|
|
83176
|
+
{
|
|
83177
|
+
"kind": "method",
|
|
83178
|
+
"name": "handleInput",
|
|
83179
|
+
"privacy": "private",
|
|
83180
|
+
"parameters": [
|
|
83181
|
+
{
|
|
83182
|
+
"name": "e",
|
|
83183
|
+
"type": {
|
|
83184
|
+
"text": "InputEvent"
|
|
83185
|
+
}
|
|
83186
|
+
}
|
|
83187
|
+
]
|
|
83188
|
+
},
|
|
83189
|
+
{
|
|
83190
|
+
"kind": "method",
|
|
83191
|
+
"name": "_syncInput",
|
|
83192
|
+
"privacy": "private",
|
|
83193
|
+
"return": {
|
|
83194
|
+
"type": {
|
|
83195
|
+
"text": "void"
|
|
83196
|
+
}
|
|
83197
|
+
},
|
|
83198
|
+
"description": "Sync the form value and fire `esp-value-changed`. If the field\nis already showing an error, validate eagerly so the error\nclears immediately when the user fixes it. Otherwise just\nsync silently — errors will appear on blur."
|
|
83199
|
+
},
|
|
83200
|
+
{
|
|
83201
|
+
"kind": "method",
|
|
83202
|
+
"name": "_handleBlur",
|
|
83203
|
+
"privacy": "private"
|
|
83204
|
+
},
|
|
83205
|
+
{
|
|
83206
|
+
"kind": "method",
|
|
83207
|
+
"name": "_getValidity",
|
|
83208
|
+
"privacy": "private",
|
|
83209
|
+
"return": {
|
|
83210
|
+
"type": {
|
|
83211
|
+
"text": "{\n flags: ValidityStateFlags;\n message: string;\n } | null"
|
|
83212
|
+
}
|
|
83213
|
+
}
|
|
83214
|
+
},
|
|
83215
|
+
{
|
|
83216
|
+
"kind": "method",
|
|
83217
|
+
"name": "_getFriendlyMessage",
|
|
83218
|
+
"privacy": "private",
|
|
83219
|
+
"return": {
|
|
83220
|
+
"type": {
|
|
83221
|
+
"text": "string"
|
|
83222
|
+
}
|
|
83223
|
+
},
|
|
83224
|
+
"parameters": [
|
|
83225
|
+
{
|
|
83226
|
+
"name": "flags",
|
|
83227
|
+
"type": {
|
|
83228
|
+
"text": "ValidityStateFlags"
|
|
83229
|
+
}
|
|
83230
|
+
}
|
|
83231
|
+
]
|
|
83232
|
+
},
|
|
83233
|
+
{
|
|
83234
|
+
"kind": "method",
|
|
83235
|
+
"name": "focus",
|
|
83236
|
+
"privacy": "public",
|
|
83237
|
+
"return": {
|
|
83238
|
+
"type": {
|
|
83239
|
+
"text": "void"
|
|
83240
|
+
}
|
|
83241
|
+
},
|
|
83242
|
+
"parameters": [
|
|
83243
|
+
{
|
|
83244
|
+
"name": "options",
|
|
83245
|
+
"optional": true,
|
|
83246
|
+
"type": {
|
|
83247
|
+
"text": "FocusOptions"
|
|
83248
|
+
}
|
|
83249
|
+
}
|
|
83250
|
+
],
|
|
83251
|
+
"description": "Focus the textarea element.\n\n```html\n<div class=\"textarea-with-button\">\n <esp-textarea value=\"Click to focus -->\"></esp-textarea>\n <esp-button label=\"Focus\" icon=\"arrow-big-left\"></esp-button>\n</div>\n<script>\n const theTextarea = findByTagName(\"esp-textarea\")[0];\n const theButton = findByTagName(\"esp-button\")[0];\n theButton.addEventListener(\"esp-clicked\", () => {\n theTextarea.focus();\n });\n</script>\n```"
|
|
83252
|
+
},
|
|
83253
|
+
{
|
|
83254
|
+
"kind": "method",
|
|
83255
|
+
"name": "validate",
|
|
83256
|
+
"privacy": "public",
|
|
83257
|
+
"return": {
|
|
83258
|
+
"type": {
|
|
83259
|
+
"text": "void"
|
|
83260
|
+
}
|
|
83261
|
+
},
|
|
83262
|
+
"description": "Re-run constraint validation and dispatch `esp-validity-changed`."
|
|
83263
|
+
},
|
|
83264
|
+
{
|
|
83265
|
+
"kind": "method",
|
|
83266
|
+
"name": "checkValidity",
|
|
83267
|
+
"privacy": "public",
|
|
83268
|
+
"return": {
|
|
83269
|
+
"type": {
|
|
83270
|
+
"text": "boolean"
|
|
83271
|
+
}
|
|
83272
|
+
},
|
|
83273
|
+
"description": "Check whether the current state is valid (delegates to ElementInternals)."
|
|
83274
|
+
},
|
|
83275
|
+
{
|
|
83276
|
+
"kind": "method",
|
|
83277
|
+
"name": "formResetCallback",
|
|
83278
|
+
"return": {
|
|
83279
|
+
"type": {
|
|
83280
|
+
"text": "void"
|
|
83281
|
+
}
|
|
83282
|
+
},
|
|
83283
|
+
"description": "Called by the browser when the owning `<form>` is reset."
|
|
83284
|
+
},
|
|
83285
|
+
{
|
|
83286
|
+
"kind": "method",
|
|
83287
|
+
"name": "formStateRestoreCallback",
|
|
83288
|
+
"return": {
|
|
83289
|
+
"type": {
|
|
83290
|
+
"text": "void"
|
|
83291
|
+
}
|
|
83292
|
+
},
|
|
83293
|
+
"parameters": [
|
|
83294
|
+
{
|
|
83295
|
+
"name": "state",
|
|
83296
|
+
"type": {
|
|
83297
|
+
"text": "string"
|
|
83298
|
+
}
|
|
83299
|
+
}
|
|
83300
|
+
],
|
|
83301
|
+
"description": "Called by the browser to restore form state (bfcache, etc.)."
|
|
83302
|
+
},
|
|
83303
|
+
{
|
|
83304
|
+
"kind": "method",
|
|
83305
|
+
"name": "formDisabledCallback",
|
|
83306
|
+
"return": {
|
|
83307
|
+
"type": {
|
|
83308
|
+
"text": "void"
|
|
83309
|
+
}
|
|
83310
|
+
},
|
|
83311
|
+
"parameters": [
|
|
83312
|
+
{
|
|
83313
|
+
"name": "isDisabled",
|
|
83314
|
+
"type": {
|
|
83315
|
+
"text": "boolean"
|
|
83316
|
+
}
|
|
83317
|
+
}
|
|
83318
|
+
],
|
|
83319
|
+
"description": "Called by the browser when a parent `<fieldset>` is enabled or disabled."
|
|
83320
|
+
},
|
|
83321
|
+
{
|
|
83322
|
+
"kind": "field",
|
|
83323
|
+
"name": "_trackVisibleError",
|
|
83324
|
+
"privacy": "private"
|
|
83325
|
+
},
|
|
82636
83326
|
{
|
|
82637
83327
|
"kind": "field",
|
|
82638
83328
|
"name": "seedColorBacker",
|
|
@@ -83358,25 +84048,76 @@
|
|
|
83358
84048
|
}
|
|
83359
84049
|
}
|
|
83360
84050
|
],
|
|
83361
|
-
"events": [
|
|
84051
|
+
"events": [
|
|
84052
|
+
{
|
|
84053
|
+
"type": {
|
|
84054
|
+
"text": "CustomEvent<string>"
|
|
84055
|
+
},
|
|
84056
|
+
"description": "Emitted when the textarea value changes.",
|
|
84057
|
+
"name": "esp-value-changed"
|
|
84058
|
+
},
|
|
84059
|
+
{
|
|
84060
|
+
"type": {
|
|
84061
|
+
"text": "CustomEvent<{ valid: boolean; message: string }>"
|
|
84062
|
+
},
|
|
84063
|
+
"description": "Emitted whenever constraint validation runs. ```html <esp-box> <p>Start typing...</p> <esp-textarea></esp-textarea> </esp-box> <script> const theTextarea = findByTagName(\"esp-textarea\")[0]; const theP = findByTagName(\"p\")[0]; theTextarea.addEventListener(\"esp-value-changed\", (ev) => { theP.innerText = ev.detail.length ? ev.detail : \"The textarea is empty...\"; }); </script> ```",
|
|
84064
|
+
"name": "esp-validity-changed"
|
|
84065
|
+
}
|
|
84066
|
+
],
|
|
83362
84067
|
"attributes": [
|
|
83363
84068
|
{
|
|
83364
|
-
"name": "
|
|
84069
|
+
"name": "field-name",
|
|
83365
84070
|
"type": {
|
|
83366
84071
|
"text": "string"
|
|
83367
84072
|
},
|
|
83368
84073
|
"default": "\"\"",
|
|
83369
|
-
"description": "
|
|
83370
|
-
"fieldName": "
|
|
84074
|
+
"description": "A string value used for the id of the textarea.\n\n```html\n<esp-textarea field-name=\"comments\"></esp-textarea>\n```",
|
|
84075
|
+
"fieldName": "fieldName"
|
|
83371
84076
|
},
|
|
83372
84077
|
{
|
|
83373
|
-
"name": "
|
|
84078
|
+
"name": "value",
|
|
84079
|
+
"type": {
|
|
84080
|
+
"text": "string"
|
|
84081
|
+
},
|
|
84082
|
+
"default": "\"\"",
|
|
84083
|
+
"description": "The value of the textarea.\n\n```html\n<esp-textarea value=\"Some text\"></esp-textarea>\n```",
|
|
84084
|
+
"fieldName": "value"
|
|
84085
|
+
},
|
|
84086
|
+
{
|
|
84087
|
+
"name": "name",
|
|
84088
|
+
"type": {
|
|
84089
|
+
"text": "string"
|
|
84090
|
+
},
|
|
84091
|
+
"default": "\"\"",
|
|
84092
|
+
"description": "The name used when the textarea participates in a `<form>`.\n\n```html\n<form>\n <esp-textarea name=\"comments\" value=\"Hello\"></esp-textarea>\n</form>\n```",
|
|
84093
|
+
"fieldName": "name"
|
|
84094
|
+
},
|
|
84095
|
+
{
|
|
84096
|
+
"name": "required",
|
|
83374
84097
|
"type": {
|
|
83375
84098
|
"text": "boolean"
|
|
83376
84099
|
},
|
|
83377
84100
|
"default": "false",
|
|
83378
|
-
"description": "
|
|
83379
|
-
"fieldName": "
|
|
84101
|
+
"description": "When true, the field must have a value before the form can be\nsubmitted.\n\n```html\n<esp-textarea required></esp-textarea>\n```",
|
|
84102
|
+
"fieldName": "required"
|
|
84103
|
+
},
|
|
84104
|
+
{
|
|
84105
|
+
"name": "required-message",
|
|
84106
|
+
"type": {
|
|
84107
|
+
"text": "string"
|
|
84108
|
+
},
|
|
84109
|
+
"default": "\"\"",
|
|
84110
|
+
"description": "A custom message to display when the field is required but empty.\nDefaults to `\"Please fill out this field.\"` when not set.\n\n```html\n<esp-textarea required required-message=\"Comments are required!\"></esp-textarea>\n```",
|
|
84111
|
+
"fieldName": "requiredMessage"
|
|
84112
|
+
},
|
|
84113
|
+
{
|
|
84114
|
+
"name": "validation-message",
|
|
84115
|
+
"type": {
|
|
84116
|
+
"text": "string"
|
|
84117
|
+
},
|
|
84118
|
+
"default": "\"\"",
|
|
84119
|
+
"description": "A custom message to display when validation fails (e.g.\nminlength not met). Overrides the default friendly message.\n\n```html\n<esp-textarea minlength=\"10\"\n validation-message=\"Please write at least 10 characters.\">\n</esp-textarea>\n```",
|
|
84120
|
+
"fieldName": "validationMessage"
|
|
83380
84121
|
},
|
|
83381
84122
|
{
|
|
83382
84123
|
"name": "disabled",
|
|
@@ -83384,9 +84125,49 @@
|
|
|
83384
84125
|
"text": "boolean"
|
|
83385
84126
|
},
|
|
83386
84127
|
"default": "false",
|
|
83387
|
-
"description": "
|
|
84128
|
+
"description": "When true, the textarea is disabled and cannot be\ninteracted with.\n\n```html\n<esp-textarea disabled></esp-textarea>\n```",
|
|
83388
84129
|
"fieldName": "disabled"
|
|
83389
84130
|
},
|
|
84131
|
+
{
|
|
84132
|
+
"name": "placeholder",
|
|
84133
|
+
"type": {
|
|
84134
|
+
"text": "string | undefined"
|
|
84135
|
+
},
|
|
84136
|
+
"description": "Placeholder text shown when the textarea is empty.\n\n```html\n<esp-textarea placeholder=\"Enter your message...\"></esp-textarea>\n```",
|
|
84137
|
+
"fieldName": "placeholder"
|
|
84138
|
+
},
|
|
84139
|
+
{
|
|
84140
|
+
"name": "rows",
|
|
84141
|
+
"type": {
|
|
84142
|
+
"text": "number | undefined"
|
|
84143
|
+
},
|
|
84144
|
+
"description": "The visible number of text lines.\n\n```html\n<esp-textarea rows=\"6\"></esp-textarea>\n```",
|
|
84145
|
+
"fieldName": "rows"
|
|
84146
|
+
},
|
|
84147
|
+
{
|
|
84148
|
+
"name": "cols",
|
|
84149
|
+
"type": {
|
|
84150
|
+
"text": "number | undefined"
|
|
84151
|
+
},
|
|
84152
|
+
"description": "The visible width in average character widths.\n\n```html\n<esp-textarea cols=\"40\"></esp-textarea>\n```",
|
|
84153
|
+
"fieldName": "cols"
|
|
84154
|
+
},
|
|
84155
|
+
{
|
|
84156
|
+
"name": "minlength",
|
|
84157
|
+
"type": {
|
|
84158
|
+
"text": "number | undefined"
|
|
84159
|
+
},
|
|
84160
|
+
"description": "Minimum number of characters.",
|
|
84161
|
+
"fieldName": "minlength"
|
|
84162
|
+
},
|
|
84163
|
+
{
|
|
84164
|
+
"name": "maxlength",
|
|
84165
|
+
"type": {
|
|
84166
|
+
"text": "number | undefined"
|
|
84167
|
+
},
|
|
84168
|
+
"description": "Maximum number of characters.",
|
|
84169
|
+
"fieldName": "maxlength"
|
|
84170
|
+
},
|
|
83390
84171
|
{
|
|
83391
84172
|
"name": "scheme",
|
|
83392
84173
|
"type": {
|
|
@@ -83429,37 +84210,103 @@
|
|
|
83429
84210
|
"name": "EspalierElementBase",
|
|
83430
84211
|
"module": "dist/shared/esp-element-base.js"
|
|
83431
84212
|
},
|
|
83432
|
-
"tagName": "esp-
|
|
84213
|
+
"tagName": "esp-textarea",
|
|
83433
84214
|
"customElement": true,
|
|
83434
84215
|
"docPageTitle": {
|
|
83435
|
-
"name": "
|
|
84216
|
+
"name": "Textarea",
|
|
83436
84217
|
"description": ""
|
|
83437
84218
|
},
|
|
83438
84219
|
"docUrl": {
|
|
83439
|
-
"name": "/components/
|
|
84220
|
+
"name": "/components/textarea",
|
|
83440
84221
|
"description": ""
|
|
83441
84222
|
},
|
|
83442
84223
|
"menuGroup": {
|
|
83443
|
-
"name": "
|
|
84224
|
+
"name": "Form",
|
|
84225
|
+
"description": "Controls"
|
|
84226
|
+
},
|
|
84227
|
+
"menuLabel": {
|
|
84228
|
+
"name": "Textarea",
|
|
83444
84229
|
"description": ""
|
|
83445
|
-
}
|
|
84230
|
+
},
|
|
84231
|
+
"menuIcon": {
|
|
84232
|
+
"name": "forms",
|
|
84233
|
+
"description": ""
|
|
84234
|
+
},
|
|
84235
|
+
"cssProperties": [
|
|
84236
|
+
{
|
|
84237
|
+
"description": "Background color of the shared field shell. Defaults to `var(--esp-color-layer-2)`.",
|
|
84238
|
+
"name": "--esp-field-background",
|
|
84239
|
+
"inheritedFrom": {
|
|
84240
|
+
"name": "EspalierElementBase",
|
|
84241
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84242
|
+
}
|
|
84243
|
+
},
|
|
84244
|
+
{
|
|
84245
|
+
"description": "Border color of the shared field shell. Defaults to `var(--esp-color-border)`.",
|
|
84246
|
+
"name": "--esp-field-border-color",
|
|
84247
|
+
"inheritedFrom": {
|
|
84248
|
+
"name": "EspalierElementBase",
|
|
84249
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84250
|
+
}
|
|
84251
|
+
},
|
|
84252
|
+
{
|
|
84253
|
+
"description": "Border width of the shared field shell. Defaults to `1px`.",
|
|
84254
|
+
"name": "--esp-field-border-width",
|
|
84255
|
+
"inheritedFrom": {
|
|
84256
|
+
"name": "EspalierElementBase",
|
|
84257
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84258
|
+
}
|
|
84259
|
+
},
|
|
84260
|
+
{
|
|
84261
|
+
"description": "Text color used inside the shared field shell. Defaults to `var(--esp-color-text)`.",
|
|
84262
|
+
"name": "--esp-field-text-color",
|
|
84263
|
+
"inheritedFrom": {
|
|
84264
|
+
"name": "EspalierElementBase",
|
|
84265
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84266
|
+
}
|
|
84267
|
+
},
|
|
84268
|
+
{
|
|
84269
|
+
"description": "Hover background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
84270
|
+
"name": "--esp-field-hover-bg",
|
|
84271
|
+
"inheritedFrom": {
|
|
84272
|
+
"name": "EspalierElementBase",
|
|
84273
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84274
|
+
}
|
|
84275
|
+
},
|
|
84276
|
+
{
|
|
84277
|
+
"description": "Focus background color of the shared field shell. Derived from `--esp-field-background`.",
|
|
84278
|
+
"name": "--esp-field-focus-bg",
|
|
84279
|
+
"inheritedFrom": {
|
|
84280
|
+
"name": "EspalierElementBase",
|
|
84281
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84282
|
+
}
|
|
84283
|
+
},
|
|
84284
|
+
{
|
|
84285
|
+
"description": "Shadow color used for shared field focus treatment. Defaults to `var(--esp-color-shadow)`.",
|
|
84286
|
+
"name": "--esp-field-focus-shadow",
|
|
84287
|
+
"inheritedFrom": {
|
|
84288
|
+
"name": "EspalierElementBase",
|
|
84289
|
+
"module": "dist/shared/esp-element-base.js"
|
|
84290
|
+
}
|
|
84291
|
+
}
|
|
84292
|
+
]
|
|
83446
84293
|
}
|
|
83447
84294
|
],
|
|
83448
84295
|
"exports": [
|
|
83449
84296
|
{
|
|
83450
84297
|
"kind": "js",
|
|
83451
|
-
"name": "
|
|
84298
|
+
"name": "EspalierTextarea",
|
|
83452
84299
|
"declaration": {
|
|
83453
|
-
"name": "
|
|
83454
|
-
"module": "dist/
|
|
84300
|
+
"name": "EspalierTextarea",
|
|
84301
|
+
"module": "dist/textarea/esp-textarea.js"
|
|
83455
84302
|
}
|
|
83456
84303
|
},
|
|
83457
84304
|
{
|
|
83458
84305
|
"kind": "custom-element-definition",
|
|
83459
|
-
"name": "esp-
|
|
84306
|
+
"name": "esp-textarea",
|
|
83460
84307
|
"declaration": {
|
|
83461
|
-
"name": "
|
|
83462
|
-
"module": "dist/
|
|
84308
|
+
"name": "EspalierTextarea",
|
|
84309
|
+
"module": "dist/textarea/esp-textarea.js"
|
|
83463
84310
|
}
|
|
83464
84311
|
}
|
|
83465
84312
|
]
|
|
@@ -85648,462 +86495,6 @@
|
|
|
85648
86495
|
}
|
|
85649
86496
|
]
|
|
85650
86497
|
},
|
|
85651
|
-
{
|
|
85652
|
-
"kind": "javascript-module",
|
|
85653
|
-
"path": "dist/date-picker/helpers/calendar-grid.js",
|
|
85654
|
-
"declarations": [
|
|
85655
|
-
{
|
|
85656
|
-
"kind": "function",
|
|
85657
|
-
"name": "parseDateBound",
|
|
85658
|
-
"return": {
|
|
85659
|
-
"type": {
|
|
85660
|
-
"text": "Temporal.PlainDate | null"
|
|
85661
|
-
}
|
|
85662
|
-
},
|
|
85663
|
-
"parameters": [
|
|
85664
|
-
{
|
|
85665
|
-
"name": "iso",
|
|
85666
|
-
"type": {
|
|
85667
|
-
"text": "string"
|
|
85668
|
-
}
|
|
85669
|
-
}
|
|
85670
|
-
],
|
|
85671
|
-
"description": "Safely parse an ISO date string, returning `null` on failure."
|
|
85672
|
-
},
|
|
85673
|
-
{
|
|
85674
|
-
"kind": "function",
|
|
85675
|
-
"name": "isDateDisabled",
|
|
85676
|
-
"return": {
|
|
85677
|
-
"type": {
|
|
85678
|
-
"text": "boolean"
|
|
85679
|
-
}
|
|
85680
|
-
},
|
|
85681
|
-
"parameters": [
|
|
85682
|
-
{
|
|
85683
|
-
"name": "date",
|
|
85684
|
-
"type": {
|
|
85685
|
-
"text": "Temporal.PlainDate"
|
|
85686
|
-
}
|
|
85687
|
-
},
|
|
85688
|
-
{
|
|
85689
|
-
"name": "min",
|
|
85690
|
-
"type": {
|
|
85691
|
-
"text": "Temporal.PlainDate | null"
|
|
85692
|
-
}
|
|
85693
|
-
},
|
|
85694
|
-
{
|
|
85695
|
-
"name": "max",
|
|
85696
|
-
"type": {
|
|
85697
|
-
"text": "Temporal.PlainDate | null"
|
|
85698
|
-
}
|
|
85699
|
-
}
|
|
85700
|
-
],
|
|
85701
|
-
"description": "Return `true` if the date falls outside the min/max range."
|
|
85702
|
-
},
|
|
85703
|
-
{
|
|
85704
|
-
"kind": "function",
|
|
85705
|
-
"name": "getSelectedDate",
|
|
85706
|
-
"return": {
|
|
85707
|
-
"type": {
|
|
85708
|
-
"text": "Temporal.PlainDate | null"
|
|
85709
|
-
}
|
|
85710
|
-
},
|
|
85711
|
-
"parameters": [
|
|
85712
|
-
{
|
|
85713
|
-
"name": "parsed",
|
|
85714
|
-
"type": {
|
|
85715
|
-
"text": "ParsedValue"
|
|
85716
|
-
}
|
|
85717
|
-
}
|
|
85718
|
-
],
|
|
85719
|
-
"description": "Extract the single selected date from a parsed value (date / datetime only)."
|
|
85720
|
-
},
|
|
85721
|
-
{
|
|
85722
|
-
"kind": "function",
|
|
85723
|
-
"name": "getEffectiveRange",
|
|
85724
|
-
"return": {
|
|
85725
|
-
"type": {
|
|
85726
|
-
"text": "{ start: Temporal.PlainDate | null; end: Temporal.PlainDate | null }"
|
|
85727
|
-
}
|
|
85728
|
-
},
|
|
85729
|
-
"parameters": [
|
|
85730
|
-
{
|
|
85731
|
-
"name": "mode",
|
|
85732
|
-
"type": {
|
|
85733
|
-
"text": "DatePickerMode"
|
|
85734
|
-
}
|
|
85735
|
-
},
|
|
85736
|
-
{
|
|
85737
|
-
"name": "parsed",
|
|
85738
|
-
"type": {
|
|
85739
|
-
"text": "ParsedValue"
|
|
85740
|
-
}
|
|
85741
|
-
},
|
|
85742
|
-
{
|
|
85743
|
-
"name": "rangeAnchor",
|
|
85744
|
-
"type": {
|
|
85745
|
-
"text": "Temporal.PlainDate | null"
|
|
85746
|
-
}
|
|
85747
|
-
},
|
|
85748
|
-
{
|
|
85749
|
-
"name": "rangePreview",
|
|
85750
|
-
"type": {
|
|
85751
|
-
"text": "Temporal.PlainDate | null"
|
|
85752
|
-
}
|
|
85753
|
-
}
|
|
85754
|
-
],
|
|
85755
|
-
"description": "Compute the effective start/end for range grid highlighting.\n\nDuring the `start` phase (anchor set, waiting for second click),\nthe preview hover date is used as the tentative end. The pair\nis always normalised so start <= end."
|
|
85756
|
-
},
|
|
85757
|
-
{
|
|
85758
|
-
"kind": "function",
|
|
85759
|
-
"name": "generateCalendarGrid",
|
|
85760
|
-
"return": {
|
|
85761
|
-
"type": {
|
|
85762
|
-
"text": "CalendarDay[]"
|
|
85763
|
-
}
|
|
85764
|
-
},
|
|
85765
|
-
"parameters": [
|
|
85766
|
-
{
|
|
85767
|
-
"name": "month",
|
|
85768
|
-
"type": {
|
|
85769
|
-
"text": "Temporal.PlainYearMonth"
|
|
85770
|
-
}
|
|
85771
|
-
},
|
|
85772
|
-
{
|
|
85773
|
-
"name": "selectedDate",
|
|
85774
|
-
"type": {
|
|
85775
|
-
"text": "Temporal.PlainDate | null"
|
|
85776
|
-
}
|
|
85777
|
-
},
|
|
85778
|
-
{
|
|
85779
|
-
"name": "rangeStart",
|
|
85780
|
-
"type": {
|
|
85781
|
-
"text": "Temporal.PlainDate | null"
|
|
85782
|
-
}
|
|
85783
|
-
},
|
|
85784
|
-
{
|
|
85785
|
-
"name": "rangeEnd",
|
|
85786
|
-
"type": {
|
|
85787
|
-
"text": "Temporal.PlainDate | null"
|
|
85788
|
-
}
|
|
85789
|
-
},
|
|
85790
|
-
{
|
|
85791
|
-
"name": "minDate",
|
|
85792
|
-
"type": {
|
|
85793
|
-
"text": "Temporal.PlainDate | null"
|
|
85794
|
-
}
|
|
85795
|
-
},
|
|
85796
|
-
{
|
|
85797
|
-
"name": "maxDate",
|
|
85798
|
-
"type": {
|
|
85799
|
-
"text": "Temporal.PlainDate | null"
|
|
85800
|
-
}
|
|
85801
|
-
}
|
|
85802
|
-
],
|
|
85803
|
-
"description": "Generate a 6x7 calendar grid for the given month. Each cell\ncarries flags for rendering (today, selected, range, disabled,\noutside-month, etc.)."
|
|
85804
|
-
}
|
|
85805
|
-
],
|
|
85806
|
-
"exports": [
|
|
85807
|
-
{
|
|
85808
|
-
"kind": "js",
|
|
85809
|
-
"name": "parseDateBound",
|
|
85810
|
-
"declaration": {
|
|
85811
|
-
"name": "parseDateBound",
|
|
85812
|
-
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
85813
|
-
}
|
|
85814
|
-
},
|
|
85815
|
-
{
|
|
85816
|
-
"kind": "js",
|
|
85817
|
-
"name": "isDateDisabled",
|
|
85818
|
-
"declaration": {
|
|
85819
|
-
"name": "isDateDisabled",
|
|
85820
|
-
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
85821
|
-
}
|
|
85822
|
-
},
|
|
85823
|
-
{
|
|
85824
|
-
"kind": "js",
|
|
85825
|
-
"name": "getSelectedDate",
|
|
85826
|
-
"declaration": {
|
|
85827
|
-
"name": "getSelectedDate",
|
|
85828
|
-
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
85829
|
-
}
|
|
85830
|
-
},
|
|
85831
|
-
{
|
|
85832
|
-
"kind": "js",
|
|
85833
|
-
"name": "getEffectiveRange",
|
|
85834
|
-
"declaration": {
|
|
85835
|
-
"name": "getEffectiveRange",
|
|
85836
|
-
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
85837
|
-
}
|
|
85838
|
-
},
|
|
85839
|
-
{
|
|
85840
|
-
"kind": "js",
|
|
85841
|
-
"name": "generateCalendarGrid",
|
|
85842
|
-
"declaration": {
|
|
85843
|
-
"name": "generateCalendarGrid",
|
|
85844
|
-
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
85845
|
-
}
|
|
85846
|
-
}
|
|
85847
|
-
]
|
|
85848
|
-
},
|
|
85849
|
-
{
|
|
85850
|
-
"kind": "javascript-module",
|
|
85851
|
-
"path": "dist/date-picker/helpers/constants.js",
|
|
85852
|
-
"declarations": [
|
|
85853
|
-
{
|
|
85854
|
-
"kind": "variable",
|
|
85855
|
-
"name": "GRID_ROWS",
|
|
85856
|
-
"type": {
|
|
85857
|
-
"text": "number"
|
|
85858
|
-
},
|
|
85859
|
-
"default": "6"
|
|
85860
|
-
},
|
|
85861
|
-
{
|
|
85862
|
-
"kind": "variable",
|
|
85863
|
-
"name": "GRID_COLS",
|
|
85864
|
-
"type": {
|
|
85865
|
-
"text": "number"
|
|
85866
|
-
},
|
|
85867
|
-
"default": "7"
|
|
85868
|
-
},
|
|
85869
|
-
{
|
|
85870
|
-
"kind": "variable",
|
|
85871
|
-
"name": "GRID_SIZE"
|
|
85872
|
-
},
|
|
85873
|
-
{
|
|
85874
|
-
"kind": "variable",
|
|
85875
|
-
"name": "WEEKDAY_LABELS",
|
|
85876
|
-
"type": {
|
|
85877
|
-
"text": "array"
|
|
85878
|
-
},
|
|
85879
|
-
"default": "[\"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"]",
|
|
85880
|
-
"description": "Monday-start day-of-week headers."
|
|
85881
|
-
},
|
|
85882
|
-
{
|
|
85883
|
-
"kind": "variable",
|
|
85884
|
-
"name": "MONTH_NAMES",
|
|
85885
|
-
"type": {
|
|
85886
|
-
"text": "array"
|
|
85887
|
-
},
|
|
85888
|
-
"default": "[ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", ]",
|
|
85889
|
-
"description": "Month names for the header."
|
|
85890
|
-
},
|
|
85891
|
-
{
|
|
85892
|
-
"kind": "variable",
|
|
85893
|
-
"name": "HOURS_12",
|
|
85894
|
-
"description": "Hours 1–12 for the 12-hour clock picker."
|
|
85895
|
-
},
|
|
85896
|
-
{
|
|
85897
|
-
"kind": "variable",
|
|
85898
|
-
"name": "MINUTES_60",
|
|
85899
|
-
"description": "Minutes 0–59 for the minute picker."
|
|
85900
|
-
}
|
|
85901
|
-
],
|
|
85902
|
-
"exports": [
|
|
85903
|
-
{
|
|
85904
|
-
"kind": "js",
|
|
85905
|
-
"name": "GRID_ROWS",
|
|
85906
|
-
"declaration": {
|
|
85907
|
-
"name": "GRID_ROWS",
|
|
85908
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85909
|
-
}
|
|
85910
|
-
},
|
|
85911
|
-
{
|
|
85912
|
-
"kind": "js",
|
|
85913
|
-
"name": "GRID_COLS",
|
|
85914
|
-
"declaration": {
|
|
85915
|
-
"name": "GRID_COLS",
|
|
85916
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85917
|
-
}
|
|
85918
|
-
},
|
|
85919
|
-
{
|
|
85920
|
-
"kind": "js",
|
|
85921
|
-
"name": "GRID_SIZE",
|
|
85922
|
-
"declaration": {
|
|
85923
|
-
"name": "GRID_SIZE",
|
|
85924
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85925
|
-
}
|
|
85926
|
-
},
|
|
85927
|
-
{
|
|
85928
|
-
"kind": "js",
|
|
85929
|
-
"name": "WEEKDAY_LABELS",
|
|
85930
|
-
"declaration": {
|
|
85931
|
-
"name": "WEEKDAY_LABELS",
|
|
85932
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85933
|
-
}
|
|
85934
|
-
},
|
|
85935
|
-
{
|
|
85936
|
-
"kind": "js",
|
|
85937
|
-
"name": "MONTH_NAMES",
|
|
85938
|
-
"declaration": {
|
|
85939
|
-
"name": "MONTH_NAMES",
|
|
85940
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85941
|
-
}
|
|
85942
|
-
},
|
|
85943
|
-
{
|
|
85944
|
-
"kind": "js",
|
|
85945
|
-
"name": "HOURS_12",
|
|
85946
|
-
"declaration": {
|
|
85947
|
-
"name": "HOURS_12",
|
|
85948
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85949
|
-
}
|
|
85950
|
-
},
|
|
85951
|
-
{
|
|
85952
|
-
"kind": "js",
|
|
85953
|
-
"name": "MINUTES_60",
|
|
85954
|
-
"declaration": {
|
|
85955
|
-
"name": "MINUTES_60",
|
|
85956
|
-
"module": "dist/date-picker/helpers/constants.js"
|
|
85957
|
-
}
|
|
85958
|
-
}
|
|
85959
|
-
]
|
|
85960
|
-
},
|
|
85961
|
-
{
|
|
85962
|
-
"kind": "javascript-module",
|
|
85963
|
-
"path": "dist/date-picker/helpers/parsing.js",
|
|
85964
|
-
"declarations": [
|
|
85965
|
-
{
|
|
85966
|
-
"kind": "function",
|
|
85967
|
-
"name": "parseValue",
|
|
85968
|
-
"return": {
|
|
85969
|
-
"type": {
|
|
85970
|
-
"text": "ParsedValue"
|
|
85971
|
-
}
|
|
85972
|
-
},
|
|
85973
|
-
"parameters": [
|
|
85974
|
-
{
|
|
85975
|
-
"name": "raw",
|
|
85976
|
-
"type": {
|
|
85977
|
-
"text": "string"
|
|
85978
|
-
}
|
|
85979
|
-
},
|
|
85980
|
-
{
|
|
85981
|
-
"name": "mode",
|
|
85982
|
-
"type": {
|
|
85983
|
-
"text": "DatePickerMode"
|
|
85984
|
-
}
|
|
85985
|
-
}
|
|
85986
|
-
],
|
|
85987
|
-
"description": "Parse a raw ISO 8601 value string into a structured `ParsedValue`\nbased on the picker mode. Returns `{ kind: \"none\" }` for empty or\nunparseable input."
|
|
85988
|
-
},
|
|
85989
|
-
{
|
|
85990
|
-
"kind": "function",
|
|
85991
|
-
"name": "formatDate",
|
|
85992
|
-
"return": {
|
|
85993
|
-
"type": {
|
|
85994
|
-
"text": "string"
|
|
85995
|
-
}
|
|
85996
|
-
},
|
|
85997
|
-
"parameters": [
|
|
85998
|
-
{
|
|
85999
|
-
"name": "d",
|
|
86000
|
-
"type": {
|
|
86001
|
-
"text": "Temporal.PlainDate"
|
|
86002
|
-
}
|
|
86003
|
-
}
|
|
86004
|
-
],
|
|
86005
|
-
"description": "Format a `PlainDate` as \"Month Day, Year\"."
|
|
86006
|
-
},
|
|
86007
|
-
{
|
|
86008
|
-
"kind": "function",
|
|
86009
|
-
"name": "formatTime",
|
|
86010
|
-
"return": {
|
|
86011
|
-
"type": {
|
|
86012
|
-
"text": "string"
|
|
86013
|
-
}
|
|
86014
|
-
},
|
|
86015
|
-
"parameters": [
|
|
86016
|
-
{
|
|
86017
|
-
"name": "t",
|
|
86018
|
-
"type": {
|
|
86019
|
-
"text": "Temporal.PlainTime"
|
|
86020
|
-
}
|
|
86021
|
-
}
|
|
86022
|
-
],
|
|
86023
|
-
"description": "Format a `PlainTime` as \"H:MM AM/PM\"."
|
|
86024
|
-
},
|
|
86025
|
-
{
|
|
86026
|
-
"kind": "function",
|
|
86027
|
-
"name": "displayValue",
|
|
86028
|
-
"return": {
|
|
86029
|
-
"type": {
|
|
86030
|
-
"text": "string"
|
|
86031
|
-
}
|
|
86032
|
-
},
|
|
86033
|
-
"parameters": [
|
|
86034
|
-
{
|
|
86035
|
-
"name": "parsed",
|
|
86036
|
-
"type": {
|
|
86037
|
-
"text": "ParsedValue"
|
|
86038
|
-
}
|
|
86039
|
-
}
|
|
86040
|
-
],
|
|
86041
|
-
"description": "Build the human-readable display string for the input field\nfrom a parsed value."
|
|
86042
|
-
}
|
|
86043
|
-
],
|
|
86044
|
-
"exports": [
|
|
86045
|
-
{
|
|
86046
|
-
"kind": "js",
|
|
86047
|
-
"name": "parseValue",
|
|
86048
|
-
"declaration": {
|
|
86049
|
-
"name": "parseValue",
|
|
86050
|
-
"module": "dist/date-picker/helpers/parsing.js"
|
|
86051
|
-
}
|
|
86052
|
-
},
|
|
86053
|
-
{
|
|
86054
|
-
"kind": "js",
|
|
86055
|
-
"name": "formatDate",
|
|
86056
|
-
"declaration": {
|
|
86057
|
-
"name": "formatDate",
|
|
86058
|
-
"module": "dist/date-picker/helpers/parsing.js"
|
|
86059
|
-
}
|
|
86060
|
-
},
|
|
86061
|
-
{
|
|
86062
|
-
"kind": "js",
|
|
86063
|
-
"name": "formatTime",
|
|
86064
|
-
"declaration": {
|
|
86065
|
-
"name": "formatTime",
|
|
86066
|
-
"module": "dist/date-picker/helpers/parsing.js"
|
|
86067
|
-
}
|
|
86068
|
-
},
|
|
86069
|
-
{
|
|
86070
|
-
"kind": "js",
|
|
86071
|
-
"name": "displayValue",
|
|
86072
|
-
"declaration": {
|
|
86073
|
-
"name": "displayValue",
|
|
86074
|
-
"module": "dist/date-picker/helpers/parsing.js"
|
|
86075
|
-
}
|
|
86076
|
-
}
|
|
86077
|
-
]
|
|
86078
|
-
},
|
|
86079
|
-
{
|
|
86080
|
-
"kind": "javascript-module",
|
|
86081
|
-
"path": "dist/date-picker/helpers/styles.js",
|
|
86082
|
-
"declarations": [
|
|
86083
|
-
{
|
|
86084
|
-
"kind": "variable",
|
|
86085
|
-
"name": "datePickerStyles",
|
|
86086
|
-
"default": "css` /* ── Error state ─────────────────────────────────── */ .temporal-error { font-family: var(--esp-font-body); font-size: var(--esp-type-small); color: var(--esp-color-danger-text); padding: var(--esp-size-padding); } /* ── Trigger field ───────────────────────────────── */ .esp-field { display: grid; grid-template-columns: 1fr min-content; cursor: pointer; > input.esp-input { cursor: pointer; width: auto; } > .field-icon { display: grid; place-content: center; cursor: pointer; > svg { height: calc(1.2 * var(--esp-size-font)); width: calc(1.2 * var(--esp-size-font)); margin: 0 var(--esp-size-tiny); } } } /* ── Popover shell (native top-layer) ────────────── */ .picker-popover { position: fixed; inset: unset; margin: 0; padding: var(--esp-size-small); border-radius: var(--esp-size-border-radius); border: 1px solid var(--esp-color-border); background: var(--esp-color-layer-1); box-shadow: 0 4px 16px var(--esp-color-shadow); color: var(--esp-color-text); font-family: var(--esp-font-body); font-size: var(--esp-size-font); opacity: 0; transition: opacity 150ms ease-in; overflow: visible; } .picker-popover.visible { opacity: 1; } /* ── Calendar ────────────────────────────────────── */ .calendar { display: flex; flex-direction: column; gap: var(--esp-size-tiny); user-select: none; overflow: hidden; } .cal-body { will-change: transform; } .cal-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: var(--esp-size-tiny); } .cal-title { font-weight: bold; font-size: var(--esp-type-normal); color: var(--esp-color-headings); } .nav-btn { display: grid; place-content: center; background: none; border: none; cursor: pointer; padding: var(--esp-size-tiny); border-radius: var(--esp-size-border-radius); color: var(--esp-color-text); transition: background-color 120ms ease; > svg { height: var(--esp-size-normal); width: var(--esp-size-normal); } &:hover { background-color: var(--esp-color-layer-3); } &:focus-visible { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; } } /* ── Weekday labels ──────────────────────────────── */ .weekday-row { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; } .weekday-label { font-size: var(--esp-type-tiny); font-weight: 600; color: var(--esp-color-headings); text-decoration: none; padding: var(--esp-size-tiny) 0; } /* ── Day grid ────────────────────────────────────── */ .day-grid { display: flex; flex-direction: column; } /* Show the focused-day ring only when the grid itself contains focus, so it disappears when the user tabs to the nav arrows or time picker. */ .day-grid:focus-within .day-cell.focused { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; z-index: 1; } .day-row { display: grid; grid-template-columns: repeat(7, 1fr); } /* ── Day cell ────────────────────────────────────── */ .day-cell { --_cell-size: 2.4em; position: relative; display: grid; place-content: center; width: var(--_cell-size); height: var(--_cell-size); border: none; border-radius: var(--esp-size-border-radius); background: none; cursor: pointer; font-family: inherit; font-size: inherit; color: var(--esp-color-text); transition: background-color 100ms ease, color 100ms ease; &:hover:not(.disabled):not(.selected) { background-color: var(--esp-color-layer-3); } &:focus-visible { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; z-index: 1; } /* Outside month — dim */ &.outside-month { opacity: 0.38; } /* Today ring */ &.today { font-weight: bold; box-shadow: inset 0 0 0 1px var(--esp-color-border); border-radius: var(--esp-size-border-radius); } /* Selected / range endpoints */ &.selected { background-color: var(--esp-color-layer-3); color: var(--esp-color-action-text); font-weight: bold; } /* Range span highlight — washed-out brand colour */ &.in-range { background-color: oklch(from var(--esp-color-layer-3) calc(l + 0.15) calc(c * 0.4) h); border-radius: 0; } &.range-start { border-radius: var(--esp-size-border-radius) 0 0 var(--esp-size-border-radius); } &.range-end { border-radius: 0 var(--esp-size-border-radius) var(--esp-size-border-radius) 0; } /* Disabled */ &.disabled { opacity: 0.3; cursor: not-allowed; } } /* ── Time picker ─────────────────────────────────── */ .time-picker { display: flex; align-items: center; flex-wrap: nowrap; gap: var(--esp-size-tiny); padding-top: var(--esp-size-small); border-top: 1px solid var(--esp-color-border); margin-top: var(--esp-size-small); white-space: nowrap; /* Push the action buttons to the right edge */ > esp-button:first-of-type { margin-left: auto; } } /* Only-time mode: no top border */ :host([mode=\"time\"]) .time-picker { border-top: none; margin-top: 0; padding-top: 0; } .popover-actions { display: flex; gap: var(--esp-size-tiny); align-items: center; justify-content: flex-end; padding-top: var(--esp-size-small); border-top: 1px solid var(--esp-color-border); margin-top: var(--esp-size-small); } .time-sep { font-size: var(--esp-type-medium); font-weight: bold; color: var(--esp-color-headings); padding: 0 2px; } `",
|
|
86087
|
-
"description": "Component-specific styles for `esp-date-picker`."
|
|
86088
|
-
}
|
|
86089
|
-
],
|
|
86090
|
-
"exports": [
|
|
86091
|
-
{
|
|
86092
|
-
"kind": "js",
|
|
86093
|
-
"name": "datePickerStyles",
|
|
86094
|
-
"declaration": {
|
|
86095
|
-
"name": "datePickerStyles",
|
|
86096
|
-
"module": "dist/date-picker/helpers/styles.js"
|
|
86097
|
-
}
|
|
86098
|
-
}
|
|
86099
|
-
]
|
|
86100
|
-
},
|
|
86101
|
-
{
|
|
86102
|
-
"kind": "javascript-module",
|
|
86103
|
-
"path": "dist/date-picker/helpers/types.js",
|
|
86104
|
-
"declarations": [],
|
|
86105
|
-
"exports": []
|
|
86106
|
-
},
|
|
86107
86498
|
{
|
|
86108
86499
|
"kind": "javascript-module",
|
|
86109
86500
|
"path": "dist/tree/esp-tree-item.js",
|
|
@@ -90508,6 +90899,462 @@
|
|
|
90508
90899
|
}
|
|
90509
90900
|
]
|
|
90510
90901
|
},
|
|
90902
|
+
{
|
|
90903
|
+
"kind": "javascript-module",
|
|
90904
|
+
"path": "dist/date-picker/helpers/calendar-grid.js",
|
|
90905
|
+
"declarations": [
|
|
90906
|
+
{
|
|
90907
|
+
"kind": "function",
|
|
90908
|
+
"name": "parseDateBound",
|
|
90909
|
+
"return": {
|
|
90910
|
+
"type": {
|
|
90911
|
+
"text": "Temporal.PlainDate | null"
|
|
90912
|
+
}
|
|
90913
|
+
},
|
|
90914
|
+
"parameters": [
|
|
90915
|
+
{
|
|
90916
|
+
"name": "iso",
|
|
90917
|
+
"type": {
|
|
90918
|
+
"text": "string"
|
|
90919
|
+
}
|
|
90920
|
+
}
|
|
90921
|
+
],
|
|
90922
|
+
"description": "Safely parse an ISO date string, returning `null` on failure."
|
|
90923
|
+
},
|
|
90924
|
+
{
|
|
90925
|
+
"kind": "function",
|
|
90926
|
+
"name": "isDateDisabled",
|
|
90927
|
+
"return": {
|
|
90928
|
+
"type": {
|
|
90929
|
+
"text": "boolean"
|
|
90930
|
+
}
|
|
90931
|
+
},
|
|
90932
|
+
"parameters": [
|
|
90933
|
+
{
|
|
90934
|
+
"name": "date",
|
|
90935
|
+
"type": {
|
|
90936
|
+
"text": "Temporal.PlainDate"
|
|
90937
|
+
}
|
|
90938
|
+
},
|
|
90939
|
+
{
|
|
90940
|
+
"name": "min",
|
|
90941
|
+
"type": {
|
|
90942
|
+
"text": "Temporal.PlainDate | null"
|
|
90943
|
+
}
|
|
90944
|
+
},
|
|
90945
|
+
{
|
|
90946
|
+
"name": "max",
|
|
90947
|
+
"type": {
|
|
90948
|
+
"text": "Temporal.PlainDate | null"
|
|
90949
|
+
}
|
|
90950
|
+
}
|
|
90951
|
+
],
|
|
90952
|
+
"description": "Return `true` if the date falls outside the min/max range."
|
|
90953
|
+
},
|
|
90954
|
+
{
|
|
90955
|
+
"kind": "function",
|
|
90956
|
+
"name": "getSelectedDate",
|
|
90957
|
+
"return": {
|
|
90958
|
+
"type": {
|
|
90959
|
+
"text": "Temporal.PlainDate | null"
|
|
90960
|
+
}
|
|
90961
|
+
},
|
|
90962
|
+
"parameters": [
|
|
90963
|
+
{
|
|
90964
|
+
"name": "parsed",
|
|
90965
|
+
"type": {
|
|
90966
|
+
"text": "ParsedValue"
|
|
90967
|
+
}
|
|
90968
|
+
}
|
|
90969
|
+
],
|
|
90970
|
+
"description": "Extract the single selected date from a parsed value (date / datetime only)."
|
|
90971
|
+
},
|
|
90972
|
+
{
|
|
90973
|
+
"kind": "function",
|
|
90974
|
+
"name": "getEffectiveRange",
|
|
90975
|
+
"return": {
|
|
90976
|
+
"type": {
|
|
90977
|
+
"text": "{ start: Temporal.PlainDate | null; end: Temporal.PlainDate | null }"
|
|
90978
|
+
}
|
|
90979
|
+
},
|
|
90980
|
+
"parameters": [
|
|
90981
|
+
{
|
|
90982
|
+
"name": "mode",
|
|
90983
|
+
"type": {
|
|
90984
|
+
"text": "DatePickerMode"
|
|
90985
|
+
}
|
|
90986
|
+
},
|
|
90987
|
+
{
|
|
90988
|
+
"name": "parsed",
|
|
90989
|
+
"type": {
|
|
90990
|
+
"text": "ParsedValue"
|
|
90991
|
+
}
|
|
90992
|
+
},
|
|
90993
|
+
{
|
|
90994
|
+
"name": "rangeAnchor",
|
|
90995
|
+
"type": {
|
|
90996
|
+
"text": "Temporal.PlainDate | null"
|
|
90997
|
+
}
|
|
90998
|
+
},
|
|
90999
|
+
{
|
|
91000
|
+
"name": "rangePreview",
|
|
91001
|
+
"type": {
|
|
91002
|
+
"text": "Temporal.PlainDate | null"
|
|
91003
|
+
}
|
|
91004
|
+
}
|
|
91005
|
+
],
|
|
91006
|
+
"description": "Compute the effective start/end for range grid highlighting.\n\nDuring the `start` phase (anchor set, waiting for second click),\nthe preview hover date is used as the tentative end. The pair\nis always normalised so start <= end."
|
|
91007
|
+
},
|
|
91008
|
+
{
|
|
91009
|
+
"kind": "function",
|
|
91010
|
+
"name": "generateCalendarGrid",
|
|
91011
|
+
"return": {
|
|
91012
|
+
"type": {
|
|
91013
|
+
"text": "CalendarDay[]"
|
|
91014
|
+
}
|
|
91015
|
+
},
|
|
91016
|
+
"parameters": [
|
|
91017
|
+
{
|
|
91018
|
+
"name": "month",
|
|
91019
|
+
"type": {
|
|
91020
|
+
"text": "Temporal.PlainYearMonth"
|
|
91021
|
+
}
|
|
91022
|
+
},
|
|
91023
|
+
{
|
|
91024
|
+
"name": "selectedDate",
|
|
91025
|
+
"type": {
|
|
91026
|
+
"text": "Temporal.PlainDate | null"
|
|
91027
|
+
}
|
|
91028
|
+
},
|
|
91029
|
+
{
|
|
91030
|
+
"name": "rangeStart",
|
|
91031
|
+
"type": {
|
|
91032
|
+
"text": "Temporal.PlainDate | null"
|
|
91033
|
+
}
|
|
91034
|
+
},
|
|
91035
|
+
{
|
|
91036
|
+
"name": "rangeEnd",
|
|
91037
|
+
"type": {
|
|
91038
|
+
"text": "Temporal.PlainDate | null"
|
|
91039
|
+
}
|
|
91040
|
+
},
|
|
91041
|
+
{
|
|
91042
|
+
"name": "minDate",
|
|
91043
|
+
"type": {
|
|
91044
|
+
"text": "Temporal.PlainDate | null"
|
|
91045
|
+
}
|
|
91046
|
+
},
|
|
91047
|
+
{
|
|
91048
|
+
"name": "maxDate",
|
|
91049
|
+
"type": {
|
|
91050
|
+
"text": "Temporal.PlainDate | null"
|
|
91051
|
+
}
|
|
91052
|
+
}
|
|
91053
|
+
],
|
|
91054
|
+
"description": "Generate a 6x7 calendar grid for the given month. Each cell\ncarries flags for rendering (today, selected, range, disabled,\noutside-month, etc.)."
|
|
91055
|
+
}
|
|
91056
|
+
],
|
|
91057
|
+
"exports": [
|
|
91058
|
+
{
|
|
91059
|
+
"kind": "js",
|
|
91060
|
+
"name": "parseDateBound",
|
|
91061
|
+
"declaration": {
|
|
91062
|
+
"name": "parseDateBound",
|
|
91063
|
+
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
91064
|
+
}
|
|
91065
|
+
},
|
|
91066
|
+
{
|
|
91067
|
+
"kind": "js",
|
|
91068
|
+
"name": "isDateDisabled",
|
|
91069
|
+
"declaration": {
|
|
91070
|
+
"name": "isDateDisabled",
|
|
91071
|
+
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
91072
|
+
}
|
|
91073
|
+
},
|
|
91074
|
+
{
|
|
91075
|
+
"kind": "js",
|
|
91076
|
+
"name": "getSelectedDate",
|
|
91077
|
+
"declaration": {
|
|
91078
|
+
"name": "getSelectedDate",
|
|
91079
|
+
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
91080
|
+
}
|
|
91081
|
+
},
|
|
91082
|
+
{
|
|
91083
|
+
"kind": "js",
|
|
91084
|
+
"name": "getEffectiveRange",
|
|
91085
|
+
"declaration": {
|
|
91086
|
+
"name": "getEffectiveRange",
|
|
91087
|
+
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
91088
|
+
}
|
|
91089
|
+
},
|
|
91090
|
+
{
|
|
91091
|
+
"kind": "js",
|
|
91092
|
+
"name": "generateCalendarGrid",
|
|
91093
|
+
"declaration": {
|
|
91094
|
+
"name": "generateCalendarGrid",
|
|
91095
|
+
"module": "dist/date-picker/helpers/calendar-grid.js"
|
|
91096
|
+
}
|
|
91097
|
+
}
|
|
91098
|
+
]
|
|
91099
|
+
},
|
|
91100
|
+
{
|
|
91101
|
+
"kind": "javascript-module",
|
|
91102
|
+
"path": "dist/date-picker/helpers/constants.js",
|
|
91103
|
+
"declarations": [
|
|
91104
|
+
{
|
|
91105
|
+
"kind": "variable",
|
|
91106
|
+
"name": "GRID_ROWS",
|
|
91107
|
+
"type": {
|
|
91108
|
+
"text": "number"
|
|
91109
|
+
},
|
|
91110
|
+
"default": "6"
|
|
91111
|
+
},
|
|
91112
|
+
{
|
|
91113
|
+
"kind": "variable",
|
|
91114
|
+
"name": "GRID_COLS",
|
|
91115
|
+
"type": {
|
|
91116
|
+
"text": "number"
|
|
91117
|
+
},
|
|
91118
|
+
"default": "7"
|
|
91119
|
+
},
|
|
91120
|
+
{
|
|
91121
|
+
"kind": "variable",
|
|
91122
|
+
"name": "GRID_SIZE"
|
|
91123
|
+
},
|
|
91124
|
+
{
|
|
91125
|
+
"kind": "variable",
|
|
91126
|
+
"name": "WEEKDAY_LABELS",
|
|
91127
|
+
"type": {
|
|
91128
|
+
"text": "array"
|
|
91129
|
+
},
|
|
91130
|
+
"default": "[\"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\", \"Su\"]",
|
|
91131
|
+
"description": "Monday-start day-of-week headers."
|
|
91132
|
+
},
|
|
91133
|
+
{
|
|
91134
|
+
"kind": "variable",
|
|
91135
|
+
"name": "MONTH_NAMES",
|
|
91136
|
+
"type": {
|
|
91137
|
+
"text": "array"
|
|
91138
|
+
},
|
|
91139
|
+
"default": "[ \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\", ]",
|
|
91140
|
+
"description": "Month names for the header."
|
|
91141
|
+
},
|
|
91142
|
+
{
|
|
91143
|
+
"kind": "variable",
|
|
91144
|
+
"name": "HOURS_12",
|
|
91145
|
+
"description": "Hours 1–12 for the 12-hour clock picker."
|
|
91146
|
+
},
|
|
91147
|
+
{
|
|
91148
|
+
"kind": "variable",
|
|
91149
|
+
"name": "MINUTES_60",
|
|
91150
|
+
"description": "Minutes 0–59 for the minute picker."
|
|
91151
|
+
}
|
|
91152
|
+
],
|
|
91153
|
+
"exports": [
|
|
91154
|
+
{
|
|
91155
|
+
"kind": "js",
|
|
91156
|
+
"name": "GRID_ROWS",
|
|
91157
|
+
"declaration": {
|
|
91158
|
+
"name": "GRID_ROWS",
|
|
91159
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91160
|
+
}
|
|
91161
|
+
},
|
|
91162
|
+
{
|
|
91163
|
+
"kind": "js",
|
|
91164
|
+
"name": "GRID_COLS",
|
|
91165
|
+
"declaration": {
|
|
91166
|
+
"name": "GRID_COLS",
|
|
91167
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91168
|
+
}
|
|
91169
|
+
},
|
|
91170
|
+
{
|
|
91171
|
+
"kind": "js",
|
|
91172
|
+
"name": "GRID_SIZE",
|
|
91173
|
+
"declaration": {
|
|
91174
|
+
"name": "GRID_SIZE",
|
|
91175
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91176
|
+
}
|
|
91177
|
+
},
|
|
91178
|
+
{
|
|
91179
|
+
"kind": "js",
|
|
91180
|
+
"name": "WEEKDAY_LABELS",
|
|
91181
|
+
"declaration": {
|
|
91182
|
+
"name": "WEEKDAY_LABELS",
|
|
91183
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91184
|
+
}
|
|
91185
|
+
},
|
|
91186
|
+
{
|
|
91187
|
+
"kind": "js",
|
|
91188
|
+
"name": "MONTH_NAMES",
|
|
91189
|
+
"declaration": {
|
|
91190
|
+
"name": "MONTH_NAMES",
|
|
91191
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91192
|
+
}
|
|
91193
|
+
},
|
|
91194
|
+
{
|
|
91195
|
+
"kind": "js",
|
|
91196
|
+
"name": "HOURS_12",
|
|
91197
|
+
"declaration": {
|
|
91198
|
+
"name": "HOURS_12",
|
|
91199
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91200
|
+
}
|
|
91201
|
+
},
|
|
91202
|
+
{
|
|
91203
|
+
"kind": "js",
|
|
91204
|
+
"name": "MINUTES_60",
|
|
91205
|
+
"declaration": {
|
|
91206
|
+
"name": "MINUTES_60",
|
|
91207
|
+
"module": "dist/date-picker/helpers/constants.js"
|
|
91208
|
+
}
|
|
91209
|
+
}
|
|
91210
|
+
]
|
|
91211
|
+
},
|
|
91212
|
+
{
|
|
91213
|
+
"kind": "javascript-module",
|
|
91214
|
+
"path": "dist/date-picker/helpers/parsing.js",
|
|
91215
|
+
"declarations": [
|
|
91216
|
+
{
|
|
91217
|
+
"kind": "function",
|
|
91218
|
+
"name": "parseValue",
|
|
91219
|
+
"return": {
|
|
91220
|
+
"type": {
|
|
91221
|
+
"text": "ParsedValue"
|
|
91222
|
+
}
|
|
91223
|
+
},
|
|
91224
|
+
"parameters": [
|
|
91225
|
+
{
|
|
91226
|
+
"name": "raw",
|
|
91227
|
+
"type": {
|
|
91228
|
+
"text": "string"
|
|
91229
|
+
}
|
|
91230
|
+
},
|
|
91231
|
+
{
|
|
91232
|
+
"name": "mode",
|
|
91233
|
+
"type": {
|
|
91234
|
+
"text": "DatePickerMode"
|
|
91235
|
+
}
|
|
91236
|
+
}
|
|
91237
|
+
],
|
|
91238
|
+
"description": "Parse a raw ISO 8601 value string into a structured `ParsedValue`\nbased on the picker mode. Returns `{ kind: \"none\" }` for empty or\nunparseable input."
|
|
91239
|
+
},
|
|
91240
|
+
{
|
|
91241
|
+
"kind": "function",
|
|
91242
|
+
"name": "formatDate",
|
|
91243
|
+
"return": {
|
|
91244
|
+
"type": {
|
|
91245
|
+
"text": "string"
|
|
91246
|
+
}
|
|
91247
|
+
},
|
|
91248
|
+
"parameters": [
|
|
91249
|
+
{
|
|
91250
|
+
"name": "d",
|
|
91251
|
+
"type": {
|
|
91252
|
+
"text": "Temporal.PlainDate"
|
|
91253
|
+
}
|
|
91254
|
+
}
|
|
91255
|
+
],
|
|
91256
|
+
"description": "Format a `PlainDate` as \"Month Day, Year\"."
|
|
91257
|
+
},
|
|
91258
|
+
{
|
|
91259
|
+
"kind": "function",
|
|
91260
|
+
"name": "formatTime",
|
|
91261
|
+
"return": {
|
|
91262
|
+
"type": {
|
|
91263
|
+
"text": "string"
|
|
91264
|
+
}
|
|
91265
|
+
},
|
|
91266
|
+
"parameters": [
|
|
91267
|
+
{
|
|
91268
|
+
"name": "t",
|
|
91269
|
+
"type": {
|
|
91270
|
+
"text": "Temporal.PlainTime"
|
|
91271
|
+
}
|
|
91272
|
+
}
|
|
91273
|
+
],
|
|
91274
|
+
"description": "Format a `PlainTime` as \"H:MM AM/PM\"."
|
|
91275
|
+
},
|
|
91276
|
+
{
|
|
91277
|
+
"kind": "function",
|
|
91278
|
+
"name": "displayValue",
|
|
91279
|
+
"return": {
|
|
91280
|
+
"type": {
|
|
91281
|
+
"text": "string"
|
|
91282
|
+
}
|
|
91283
|
+
},
|
|
91284
|
+
"parameters": [
|
|
91285
|
+
{
|
|
91286
|
+
"name": "parsed",
|
|
91287
|
+
"type": {
|
|
91288
|
+
"text": "ParsedValue"
|
|
91289
|
+
}
|
|
91290
|
+
}
|
|
91291
|
+
],
|
|
91292
|
+
"description": "Build the human-readable display string for the input field\nfrom a parsed value."
|
|
91293
|
+
}
|
|
91294
|
+
],
|
|
91295
|
+
"exports": [
|
|
91296
|
+
{
|
|
91297
|
+
"kind": "js",
|
|
91298
|
+
"name": "parseValue",
|
|
91299
|
+
"declaration": {
|
|
91300
|
+
"name": "parseValue",
|
|
91301
|
+
"module": "dist/date-picker/helpers/parsing.js"
|
|
91302
|
+
}
|
|
91303
|
+
},
|
|
91304
|
+
{
|
|
91305
|
+
"kind": "js",
|
|
91306
|
+
"name": "formatDate",
|
|
91307
|
+
"declaration": {
|
|
91308
|
+
"name": "formatDate",
|
|
91309
|
+
"module": "dist/date-picker/helpers/parsing.js"
|
|
91310
|
+
}
|
|
91311
|
+
},
|
|
91312
|
+
{
|
|
91313
|
+
"kind": "js",
|
|
91314
|
+
"name": "formatTime",
|
|
91315
|
+
"declaration": {
|
|
91316
|
+
"name": "formatTime",
|
|
91317
|
+
"module": "dist/date-picker/helpers/parsing.js"
|
|
91318
|
+
}
|
|
91319
|
+
},
|
|
91320
|
+
{
|
|
91321
|
+
"kind": "js",
|
|
91322
|
+
"name": "displayValue",
|
|
91323
|
+
"declaration": {
|
|
91324
|
+
"name": "displayValue",
|
|
91325
|
+
"module": "dist/date-picker/helpers/parsing.js"
|
|
91326
|
+
}
|
|
91327
|
+
}
|
|
91328
|
+
]
|
|
91329
|
+
},
|
|
91330
|
+
{
|
|
91331
|
+
"kind": "javascript-module",
|
|
91332
|
+
"path": "dist/date-picker/helpers/styles.js",
|
|
91333
|
+
"declarations": [
|
|
91334
|
+
{
|
|
91335
|
+
"kind": "variable",
|
|
91336
|
+
"name": "datePickerStyles",
|
|
91337
|
+
"default": "css` /* ── Error state ─────────────────────────────────── */ .temporal-error { font-family: var( --_esp-font-body-effective, var(--esp-font-body, var(--_esp-font-body-fallback)) ); font-size: var(--esp-type-small); color: var(--esp-color-danger-text); padding: var(--esp-size-padding); } /* ── Trigger field ───────────────────────────────── */ .esp-field { display: grid; grid-template-columns: 1fr min-content; cursor: pointer; > input.esp-input { cursor: pointer; width: auto; } > .field-icon { display: grid; place-content: center; cursor: pointer; > svg { height: calc(1.2 * var(--esp-size-font)); width: calc(1.2 * var(--esp-size-font)); margin: 0 var(--esp-size-tiny); } } } /* ── Popover shell (native top-layer) ────────────── */ .picker-popover { position: fixed; inset: unset; margin: 0; padding: var(--esp-size-small); border-radius: var(--esp-size-border-radius); border: 1px solid var(--esp-color-border); background: var(--esp-color-layer-1); box-shadow: 0 4px 16px var(--esp-color-shadow); color: var(--esp-color-text); font-family: var( --_esp-font-body-effective, var(--esp-font-body, var(--_esp-font-body-fallback)) ); font-size: var(--esp-size-font); opacity: 0; transition: opacity 150ms ease-in; overflow: visible; } .picker-popover.visible { opacity: 1; } /* ── Calendar ────────────────────────────────────── */ .calendar { display: flex; flex-direction: column; gap: var(--esp-size-tiny); user-select: none; overflow: hidden; } .cal-body { will-change: transform; } .cal-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: var(--esp-size-tiny); } .cal-title { font-weight: bold; font-size: var(--esp-type-normal); color: var(--esp-color-headings); } .nav-btn { display: grid; place-content: center; background: none; border: none; cursor: pointer; padding: var(--esp-size-tiny); border-radius: var(--esp-size-border-radius); color: var(--esp-color-text); transition: background-color 120ms ease; > svg { height: var(--esp-size-normal); width: var(--esp-size-normal); } &:hover { background-color: var(--esp-color-layer-3); } &:focus-visible { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; } } /* ── Weekday labels ──────────────────────────────── */ .weekday-row { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; } .weekday-label { font-size: var(--esp-type-tiny); font-weight: 600; color: var(--esp-color-headings); text-decoration: none; padding: var(--esp-size-tiny) 0; } /* ── Day grid ────────────────────────────────────── */ .day-grid { display: flex; flex-direction: column; } /* Show the focused-day ring only when the grid itself contains focus, so it disappears when the user tabs to the nav arrows or time picker. */ .day-grid:focus-within .day-cell.focused { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; z-index: 1; } .day-row { display: grid; grid-template-columns: repeat(7, 1fr); } /* ── Day cell ────────────────────────────────────── */ .day-cell { --_cell-size: 2.4em; position: relative; display: grid; place-content: center; width: var(--_cell-size); height: var(--_cell-size); border: none; border-radius: var(--esp-size-border-radius); background: none; cursor: pointer; font-family: inherit; font-size: inherit; color: var(--esp-color-text); transition: background-color 100ms ease, color 100ms ease; &:hover:not(.disabled):not(.selected) { background-color: var(--esp-color-layer-3); } &:focus-visible { outline: 2px solid var(--esp-color-action-text); outline-offset: -2px; z-index: 1; } /* Outside month — dim */ &.outside-month { opacity: 0.38; } /* Today ring */ &.today { font-weight: bold; box-shadow: inset 0 0 0 1px var(--esp-color-border); border-radius: var(--esp-size-border-radius); } /* Selected / range endpoints */ &.selected { background-color: var(--esp-color-layer-3); color: var(--esp-color-action-text); font-weight: bold; } /* Range span highlight — washed-out brand colour */ &.in-range { background-color: oklch(from var(--esp-color-layer-3) calc(l + 0.15) calc(c * 0.4) h); border-radius: 0; } &.range-start { border-radius: var(--esp-size-border-radius) 0 0 var(--esp-size-border-radius); } &.range-end { border-radius: 0 var(--esp-size-border-radius) var(--esp-size-border-radius) 0; } /* Disabled */ &.disabled { opacity: 0.3; cursor: not-allowed; } } /* ── Time picker ─────────────────────────────────── */ .time-picker { display: flex; align-items: center; flex-wrap: nowrap; gap: var(--esp-size-tiny); padding-top: var(--esp-size-small); border-top: 1px solid var(--esp-color-border); margin-top: var(--esp-size-small); white-space: nowrap; /* Push the action buttons to the right edge */ > esp-button:first-of-type { margin-left: auto; } } /* Only-time mode: no top border */ :host([mode=\"time\"]) .time-picker { border-top: none; margin-top: 0; padding-top: 0; } .popover-actions { display: flex; gap: var(--esp-size-tiny); align-items: center; justify-content: flex-end; padding-top: var(--esp-size-small); border-top: 1px solid var(--esp-color-border); margin-top: var(--esp-size-small); } .time-sep { font-size: var(--esp-type-medium); font-weight: bold; color: var(--esp-color-headings); padding: 0 2px; } `",
|
|
91338
|
+
"description": "Component-specific styles for `esp-date-picker`."
|
|
91339
|
+
}
|
|
91340
|
+
],
|
|
91341
|
+
"exports": [
|
|
91342
|
+
{
|
|
91343
|
+
"kind": "js",
|
|
91344
|
+
"name": "datePickerStyles",
|
|
91345
|
+
"declaration": {
|
|
91346
|
+
"name": "datePickerStyles",
|
|
91347
|
+
"module": "dist/date-picker/helpers/styles.js"
|
|
91348
|
+
}
|
|
91349
|
+
}
|
|
91350
|
+
]
|
|
91351
|
+
},
|
|
91352
|
+
{
|
|
91353
|
+
"kind": "javascript-module",
|
|
91354
|
+
"path": "dist/date-picker/helpers/types.js",
|
|
91355
|
+
"declarations": [],
|
|
91356
|
+
"exports": []
|
|
91357
|
+
},
|
|
90511
91358
|
{
|
|
90512
91359
|
"kind": "javascript-module",
|
|
90513
91360
|
"path": "dist/root/helpers/compute-semantic-properties.js",
|