@timmo001/groundwork-ui 0.5.0 → 0.6.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/custom-elements.json +427 -9
- package/package.json +1 -1
- package/src/gw-alert.ts +4 -0
- package/src/gw-app-bar.ts +106 -42
- package/src/gw-badge.ts +11 -2
- package/src/gw-banner.ts +4 -0
- package/src/gw-card.ts +6 -3
- package/src/gw-chip.ts +3 -0
- package/src/gw-command-menu.ts +7 -3
- package/src/gw-dialog.ts +15 -5
- package/src/gw-dot.ts +2 -0
- package/src/gw-expansion.ts +7 -2
- package/src/gw-facts.ts +13 -5
- package/src/gw-gauge.ts +11 -5
- package/src/gw-meter.ts +17 -4
- package/src/gw-notification-center.ts +14 -3
- package/src/gw-notification.ts +2 -0
- package/src/gw-option-list.ts +26 -5
- package/src/gw-page-header.ts +7 -3
- package/src/gw-popover.ts +14 -4
- package/src/gw-section-title.ts +3 -1
- package/src/gw-segmented.ts +2 -1
- package/src/gw-skeleton.ts +3 -1
- package/src/gw-spinner.ts +5 -1
- package/src/gw-theme-picker.ts +145 -40
- package/src/gw-toast.ts +3 -1
package/custom-elements.json
CHANGED
|
@@ -1021,6 +1021,20 @@
|
|
|
1021
1021
|
"kind": "class",
|
|
1022
1022
|
"description": "A message in the flow of the page. `urgent` announces it at once, for\nerrors that need attention; otherwise it's announced politely.",
|
|
1023
1023
|
"name": "GwAlert",
|
|
1024
|
+
"cssProperties": [
|
|
1025
|
+
{
|
|
1026
|
+
"description": "The icon color, for a tone of your own. `tone` sets it.",
|
|
1027
|
+
"name": "--gw-tone"
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
"description": "The background. `tone` sets it.",
|
|
1031
|
+
"name": "--gw-tone-fill"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"description": "The border. `tone` sets it.",
|
|
1035
|
+
"name": "--gw-tone-border"
|
|
1036
|
+
}
|
|
1037
|
+
],
|
|
1024
1038
|
"cssParts": [
|
|
1025
1039
|
{
|
|
1026
1040
|
"description": "The alert.",
|
|
@@ -1465,16 +1479,24 @@
|
|
|
1465
1479
|
"declarations": [
|
|
1466
1480
|
{
|
|
1467
1481
|
"kind": "class",
|
|
1468
|
-
"description": "A site or app header pinned to the top of the page, with a brand, nav\nlinks and actions, full width with its content kept to the content width.\nIt's transparent at first, then gets a blurred surface and a bottom border\nonce the page scrolls, or once the element\n`reveal-after` names scrolls out of view, such as a hero. With\n`reveal-after` the brand stays hidden until then, so a
|
|
1482
|
+
"description": "A site or app header pinned to the top of the page, with a brand, nav\nlinks and actions, full width with its content kept to the content width.\nIt's transparent at first, then gets a blurred surface and a bottom border\nonce the page scrolls, or once the element\n`reveal-after` names scrolls out of view, such as a hero. With\n`reveal-after` the brand stays hidden, taking no room, until then, so a\nlarge logo in the hero hands over to the small one in the bar. The nav\nslides over as it opens.\n\n`overlay` lays it over the top of the page rather than taking room, for a\npage that opens with a hero. Below `menu-below`, 600px wide by default,\nthe nav moves into a menu opened from a button, which closes on Esc, a\nclick outside or a link. Raise it when the nav and actions need more room.",
|
|
1469
1483
|
"name": "GwAppBar",
|
|
1470
1484
|
"cssParts": [
|
|
1471
1485
|
{
|
|
1472
1486
|
"description": "The bar.",
|
|
1473
1487
|
"name": "bar"
|
|
1474
1488
|
},
|
|
1489
|
+
{
|
|
1490
|
+
"description": "The brand's container.",
|
|
1491
|
+
"name": "brand"
|
|
1492
|
+
},
|
|
1475
1493
|
{
|
|
1476
1494
|
"description": "The nav links' container, the menu panel on narrow screens.",
|
|
1477
1495
|
"name": "nav"
|
|
1496
|
+
},
|
|
1497
|
+
{
|
|
1498
|
+
"description": "The actions' container.",
|
|
1499
|
+
"name": "actions"
|
|
1478
1500
|
}
|
|
1479
1501
|
],
|
|
1480
1502
|
"slots": [
|
|
@@ -1499,7 +1521,7 @@
|
|
|
1499
1521
|
"text": "Properties"
|
|
1500
1522
|
},
|
|
1501
1523
|
"static": true,
|
|
1502
|
-
"default": "{ revealAfter: { attribute: \"reveal-after\" }, overlay: { type: \"boolean\", reflect: true }, floating: { type: \"boolean\", reflect: true }, menuOpen: { type: \"boolean\", attribute: \"menu-open\", reflect: true }, menuLabel: { attribute: \"menu-label\" }, }",
|
|
1524
|
+
"default": "{ revealAfter: { attribute: \"reveal-after\" }, overlay: { type: \"boolean\", reflect: true }, floating: { type: \"boolean\", reflect: true }, menuOpen: { type: \"boolean\", attribute: \"menu-open\", reflect: true }, menuLabel: { attribute: \"menu-label\" }, menuBelow: { type: \"number\", attribute: \"menu-below\" }, collapsed: { type: \"boolean\", reflect: true }, }",
|
|
1503
1525
|
"inheritedFrom": {
|
|
1504
1526
|
"name": "GwElement",
|
|
1505
1527
|
"module": "src/element.ts"
|
|
@@ -1512,7 +1534,7 @@
|
|
|
1512
1534
|
"text": "readonly CSSStyleSheet[]"
|
|
1513
1535
|
},
|
|
1514
1536
|
"static": true,
|
|
1515
|
-
"default": "[ base, css` :host { position: sticky; inset-block-start: 0; z-index: 50; display: block; } :host([overlay]) { position: fixed; inset-inline: 0; } .bar { position: relative; display: flex; gap: var(--gw-space-3); align-items: center; min-height: 3.5rem; padding: var(--gw-space-1) max(var(--gw-space-3), (100% - var(--gw-content-width)) / 2); border-block-end: max(var(--gw-border-width), 1px) solid transparent; transition: background-color var(--gw-motion-normal) var(--gw-motion-easing), border-color var(--gw-motion-normal) var(--gw-motion-easing), backdrop-filter var(--gw-motion-normal) var(--gw-motion-easing); } :host([floating]) .bar, :host([menu-open]) .bar { background: color-mix( in oklab, var(--gw-color-surface-default) 82%, transparent ); border-color: var(--gw-color-border-quiet); backdrop-filter: blur(12px) saturate(1.4); } .brand { display:
|
|
1537
|
+
"default": "[ base, css` :host { position: sticky; inset-block-start: 0; z-index: 50; display: block; } :host([overlay]) { position: fixed; inset-inline: 0; } .bar { position: relative; display: flex; gap: var(--gw-space-3); align-items: center; min-height: 3.5rem; padding: var(--gw-space-1) max(var(--gw-space-3), (100% - var(--gw-content-width)) / 2); border-block-end: max(var(--gw-border-width), 1px) solid transparent; transition: background-color var(--gw-motion-normal) var(--gw-motion-easing), border-color var(--gw-motion-normal) var(--gw-motion-easing), backdrop-filter var(--gw-motion-normal) var(--gw-motion-easing); } :host([floating]) .bar, :host([menu-open]) .bar { background: color-mix( in oklab, var(--gw-color-surface-default) 82%, transparent ); border-color: var(--gw-color-border-quiet); backdrop-filter: blur(12px) saturate(1.4); } /* A one-column grid, so a hidden brand can fold its width to nothing and the nav slides over as it opens, rather than leaving a gap */ .brand { display: grid; flex: none; grid-template-columns: 1fr; align-items: center; transition: grid-template-columns var(--gw-motion-slow) var(--gw-motion-easing), margin var(--gw-motion-slow) var(--gw-motion-easing), opacity var(--gw-motion-normal) var(--gw-motion-easing), translate var(--gw-motion-normal) var(--gw-motion-easing); } .brand > slot { display: flex; align-items: center; min-width: 0; overflow: clip; overflow-clip-margin: calc( var(--gw-focus-width) + var(--gw-focus-offset) ); } :host([reveal-after]:not([floating])) .brand { grid-template-columns: 0fr; margin-inline-end: calc(var(--gw-space-3) * -1); pointer-events: none; visibility: hidden; opacity: 0; translate: 0 -0.25rem; transition: grid-template-columns var(--gw-motion-slow) var(--gw-motion-easing), margin var(--gw-motion-slow) var(--gw-motion-easing), opacity var(--gw-motion-normal) var(--gw-motion-easing), translate var(--gw-motion-normal) var(--gw-motion-easing), visibility var(--gw-motion-slow) allow-discrete; } .nav { display: flex; flex: 1; gap: var(--gw-space-1); align-items: center; min-width: 0; } .actions { display: flex; flex: none; gap: var(--gw-space-1); align-items: center; margin-inline-start: auto; } .menu { display: none; place-items: center; width: 2.5rem; height: 2.5rem; padding: 0; color: var(--gw-color-text-strong); cursor: pointer; background: none; border: 0; border-radius: var(--gw-radius-pill); transition: background-color var(--gw-motion-fast) var(--gw-motion-easing); } .menu:hover { background: var(--gw-color-fill-neutral-hovered); } /* Below menu-below, which sets collapsed, the nav folds into a menu */ :host([collapsed]) .menu { display: inline-grid; } :host([collapsed]) .nav { position: absolute; inset-block-start: 100%; inset-inline: 0; flex-direction: column; gap: var(--gw-space-0-5); align-items: stretch; padding: var(--gw-space-2) max(var(--gw-space-3), (100% - var(--gw-content-width)) / 2); visibility: hidden; background: var(--gw-color-surface-default); border-block-end: max(var(--gw-border-width), 1px) solid var(--gw-color-border-quiet); box-shadow: var(--gw-shadow-m); opacity: 0; translate: 0 -0.5rem; transition: opacity var(--gw-motion-fast) var(--gw-motion-easing), translate var(--gw-motion-normal) var(--gw-motion-easing), visibility var(--gw-motion-normal) allow-discrete; } :host([collapsed][menu-open]) .nav { visibility: visible; opacity: 1; translate: 0 0; } `, ]",
|
|
1516
1538
|
"inheritedFrom": {
|
|
1517
1539
|
"name": "GwElement",
|
|
1518
1540
|
"module": "src/element.ts"
|
|
@@ -1558,6 +1580,38 @@
|
|
|
1558
1580
|
},
|
|
1559
1581
|
"default": "\"Menu\""
|
|
1560
1582
|
},
|
|
1583
|
+
{
|
|
1584
|
+
"kind": "field",
|
|
1585
|
+
"name": "menuBelow",
|
|
1586
|
+
"type": {
|
|
1587
|
+
"text": "number"
|
|
1588
|
+
},
|
|
1589
|
+
"description": "The viewport width in pixels below which the nav moves into a menu.",
|
|
1590
|
+
"default": "600"
|
|
1591
|
+
},
|
|
1592
|
+
{
|
|
1593
|
+
"kind": "field",
|
|
1594
|
+
"name": "collapsed",
|
|
1595
|
+
"type": {
|
|
1596
|
+
"text": "boolean"
|
|
1597
|
+
},
|
|
1598
|
+
"description": "Whether the nav is in the menu. Set by the bar from `menuBelow`.",
|
|
1599
|
+
"default": "false"
|
|
1600
|
+
},
|
|
1601
|
+
{
|
|
1602
|
+
"kind": "field",
|
|
1603
|
+
"name": "#narrow",
|
|
1604
|
+
"privacy": "private",
|
|
1605
|
+
"type": {
|
|
1606
|
+
"text": "MediaQueryList | undefined"
|
|
1607
|
+
}
|
|
1608
|
+
},
|
|
1609
|
+
{
|
|
1610
|
+
"kind": "field",
|
|
1611
|
+
"name": "#onNarrow",
|
|
1612
|
+
"privacy": "private",
|
|
1613
|
+
"readonly": true
|
|
1614
|
+
},
|
|
1561
1615
|
{
|
|
1562
1616
|
"kind": "field",
|
|
1563
1617
|
"name": "#menuIcon",
|
|
@@ -1593,6 +1647,12 @@
|
|
|
1593
1647
|
},
|
|
1594
1648
|
"default": "0"
|
|
1595
1649
|
},
|
|
1650
|
+
{
|
|
1651
|
+
"kind": "method",
|
|
1652
|
+
"name": "#watchWidth",
|
|
1653
|
+
"privacy": "private",
|
|
1654
|
+
"description": "Follows the viewport across `menuBelow`, setting `collapsed`."
|
|
1655
|
+
},
|
|
1596
1656
|
{
|
|
1597
1657
|
"kind": "method",
|
|
1598
1658
|
"name": "toggleMenu",
|
|
@@ -1976,6 +2036,20 @@
|
|
|
1976
2036
|
"description": "Whether it floats. Set by the bar as the page scrolls.",
|
|
1977
2037
|
"name": "floating"
|
|
1978
2038
|
},
|
|
2039
|
+
{
|
|
2040
|
+
"type": {
|
|
2041
|
+
"text": "number"
|
|
2042
|
+
},
|
|
2043
|
+
"description": "The viewport width in pixels below which the nav moves into a menu. Defaults to `600`.",
|
|
2044
|
+
"name": "menu-below"
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
"type": {
|
|
2048
|
+
"text": "boolean"
|
|
2049
|
+
},
|
|
2050
|
+
"description": "Whether the nav is in the menu. Set by the bar from `menu-below`.",
|
|
2051
|
+
"name": "collapsed"
|
|
2052
|
+
},
|
|
1979
2053
|
{
|
|
1980
2054
|
"type": {
|
|
1981
2055
|
"text": "boolean"
|
|
@@ -2019,10 +2093,24 @@
|
|
|
2019
2093
|
"kind": "class",
|
|
2020
2094
|
"description": "A pill with an icon, a value and an optional small label above it. The\nicon takes the `tone`'s color. While `loading`, a skeleton stands in for\nthe value, and for the icon if it has none yet, and the value fades in\nonce it's loaded.",
|
|
2021
2095
|
"name": "GwBadge",
|
|
2096
|
+
"cssProperties": [
|
|
2097
|
+
{
|
|
2098
|
+
"description": "The icon's color, for a tone of your own. `tone` sets it.",
|
|
2099
|
+
"name": "--gw-tone"
|
|
2100
|
+
}
|
|
2101
|
+
],
|
|
2022
2102
|
"cssParts": [
|
|
2023
2103
|
{
|
|
2024
2104
|
"description": "The badge.",
|
|
2025
2105
|
"name": "badge"
|
|
2106
|
+
},
|
|
2107
|
+
{
|
|
2108
|
+
"description": "The label above the value.",
|
|
2109
|
+
"name": "label"
|
|
2110
|
+
},
|
|
2111
|
+
{
|
|
2112
|
+
"description": "The value.",
|
|
2113
|
+
"name": "value"
|
|
2026
2114
|
}
|
|
2027
2115
|
],
|
|
2028
2116
|
"slots": [
|
|
@@ -2511,6 +2599,20 @@
|
|
|
2511
2599
|
"kind": "class",
|
|
2512
2600
|
"description": "A slim bar across the top of the app for app-wide state the person can\nwork through: a restart is needed, the connection is lost, or a new\nversion is ready. Put it above the app's content, not over it. Its height\nopens and closes smoothly, so the page below moves with it rather than\njumping. Put one action in the `actions` slot, which opens what it's\nabout. `urgent` announces it at once.",
|
|
2513
2601
|
"name": "GwBanner",
|
|
2602
|
+
"cssProperties": [
|
|
2603
|
+
{
|
|
2604
|
+
"description": "The text and icon color, for a tone of your own. `tone` sets it.",
|
|
2605
|
+
"name": "--gw-tone"
|
|
2606
|
+
},
|
|
2607
|
+
{
|
|
2608
|
+
"description": "The background. `tone` sets it.",
|
|
2609
|
+
"name": "--gw-tone-fill"
|
|
2610
|
+
},
|
|
2611
|
+
{
|
|
2612
|
+
"description": "The border. `tone` sets it.",
|
|
2613
|
+
"name": "--gw-tone-border"
|
|
2614
|
+
}
|
|
2615
|
+
],
|
|
2514
2616
|
"cssParts": [
|
|
2515
2617
|
{
|
|
2516
2618
|
"description": "The bar.",
|
|
@@ -3556,6 +3658,18 @@
|
|
|
3556
3658
|
{
|
|
3557
3659
|
"description": "The card's surface.",
|
|
3558
3660
|
"name": "card"
|
|
3661
|
+
},
|
|
3662
|
+
{
|
|
3663
|
+
"description": "The row with the heading and actions.",
|
|
3664
|
+
"name": "header"
|
|
3665
|
+
},
|
|
3666
|
+
{
|
|
3667
|
+
"description": "The heading.",
|
|
3668
|
+
"name": "heading"
|
|
3669
|
+
},
|
|
3670
|
+
{
|
|
3671
|
+
"description": "The content.",
|
|
3672
|
+
"name": "body"
|
|
3559
3673
|
}
|
|
3560
3674
|
],
|
|
3561
3675
|
"slots": [
|
|
@@ -5155,6 +5269,16 @@
|
|
|
5155
5269
|
"kind": "class",
|
|
5156
5270
|
"description": "A short status or category, tinted by its `tone`. While `loading`, a\nskeleton stands in for its text, and the text fades in once it's loaded.",
|
|
5157
5271
|
"name": "GwChip",
|
|
5272
|
+
"cssProperties": [
|
|
5273
|
+
{
|
|
5274
|
+
"description": "The tint, for a tone of your own. `tone` sets it.",
|
|
5275
|
+
"name": "--gw-tone-fill"
|
|
5276
|
+
},
|
|
5277
|
+
{
|
|
5278
|
+
"description": "The border. `tone` sets it.",
|
|
5279
|
+
"name": "--gw-tone-border"
|
|
5280
|
+
}
|
|
5281
|
+
],
|
|
5158
5282
|
"cssParts": [
|
|
5159
5283
|
{
|
|
5160
5284
|
"description": "The chip.",
|
|
@@ -5610,6 +5734,20 @@
|
|
|
5610
5734
|
"kind": "class",
|
|
5611
5735
|
"description": "A command menu on Cmd+K or Ctrl+K: a searchable list of commands in a\nmodal near the top of the page, or a bottom sheet on phones. Picking one\ncloses the menu and fires `pick` with its value. Esc or a click outside\ncloses it. It won't open over another dialog, so only one overlay shows at\na time. Set `shortcut=\"none\"` to open it only with `show()`.",
|
|
5612
5736
|
"name": "GwCommandMenu",
|
|
5737
|
+
"cssParts": [
|
|
5738
|
+
{
|
|
5739
|
+
"description": "The menu's surface.",
|
|
5740
|
+
"name": "dialog"
|
|
5741
|
+
},
|
|
5742
|
+
{
|
|
5743
|
+
"description": "The `gw-option-list` of commands.",
|
|
5744
|
+
"name": "list"
|
|
5745
|
+
},
|
|
5746
|
+
{
|
|
5747
|
+
"description": "The row of key hints.",
|
|
5748
|
+
"name": "footer"
|
|
5749
|
+
}
|
|
5750
|
+
],
|
|
5613
5751
|
"members": [
|
|
5614
5752
|
{
|
|
5615
5753
|
"kind": "field",
|
|
@@ -6090,6 +6228,28 @@
|
|
|
6090
6228
|
"kind": "class",
|
|
6091
6229
|
"description": "A modal on the native `<dialog>`, so focus is trapped and returned, Esc\ncloses it and the page behind is inert. Open it with `show()`. Put buttons\nin the `actions` slot; a click on one with a `value` closes the dialog with\nthat value, and fires `close`.",
|
|
6092
6230
|
"name": "GwDialog",
|
|
6231
|
+
"cssParts": [
|
|
6232
|
+
{
|
|
6233
|
+
"description": "The dialog's surface.",
|
|
6234
|
+
"name": "dialog"
|
|
6235
|
+
},
|
|
6236
|
+
{
|
|
6237
|
+
"description": "The row with the heading and close button.",
|
|
6238
|
+
"name": "header"
|
|
6239
|
+
},
|
|
6240
|
+
{
|
|
6241
|
+
"description": "The heading.",
|
|
6242
|
+
"name": "heading"
|
|
6243
|
+
},
|
|
6244
|
+
{
|
|
6245
|
+
"description": "The content.",
|
|
6246
|
+
"name": "body"
|
|
6247
|
+
},
|
|
6248
|
+
{
|
|
6249
|
+
"description": "The actions row.",
|
|
6250
|
+
"name": "footer"
|
|
6251
|
+
}
|
|
6252
|
+
],
|
|
6093
6253
|
"slots": [
|
|
6094
6254
|
{
|
|
6095
6255
|
"description": "The content.",
|
|
@@ -6591,6 +6751,12 @@
|
|
|
6591
6751
|
"kind": "class",
|
|
6592
6752
|
"description": "A small status dot. Give it a `label`, such as \"Online\", unless text\nbeside it already says the same.",
|
|
6593
6753
|
"name": "GwDot",
|
|
6754
|
+
"cssProperties": [
|
|
6755
|
+
{
|
|
6756
|
+
"description": "The color, for a tone of your own. `tone` sets it.",
|
|
6757
|
+
"name": "--gw-tone"
|
|
6758
|
+
}
|
|
6759
|
+
],
|
|
6594
6760
|
"members": [
|
|
6595
6761
|
{
|
|
6596
6762
|
"kind": "field",
|
|
@@ -7447,6 +7613,14 @@
|
|
|
7447
7613
|
"description": "The summary row.",
|
|
7448
7614
|
"name": "summary"
|
|
7449
7615
|
},
|
|
7616
|
+
{
|
|
7617
|
+
"description": "The heading.",
|
|
7618
|
+
"name": "heading"
|
|
7619
|
+
},
|
|
7620
|
+
{
|
|
7621
|
+
"description": "The line under the heading.",
|
|
7622
|
+
"name": "description"
|
|
7623
|
+
},
|
|
7450
7624
|
{
|
|
7451
7625
|
"description": "The content's wrapper.",
|
|
7452
7626
|
"name": "content"
|
|
@@ -7909,6 +8083,20 @@
|
|
|
7909
8083
|
"kind": "class",
|
|
7910
8084
|
"description": "Label and value pairs, as a description list. While `loading`, `rows`\nskeleton pairs stand in for them, keeping any labels already known. The\nlist glides to its new height and the values fade in once they've loaded.",
|
|
7911
8085
|
"name": "GwFacts",
|
|
8086
|
+
"cssParts": [
|
|
8087
|
+
{
|
|
8088
|
+
"description": "The description list.",
|
|
8089
|
+
"name": "list"
|
|
8090
|
+
},
|
|
8091
|
+
{
|
|
8092
|
+
"description": "Each label.",
|
|
8093
|
+
"name": "label"
|
|
8094
|
+
},
|
|
8095
|
+
{
|
|
8096
|
+
"description": "Each value.",
|
|
8097
|
+
"name": "value"
|
|
8098
|
+
}
|
|
8099
|
+
],
|
|
7912
8100
|
"members": [
|
|
7913
8101
|
{
|
|
7914
8102
|
"kind": "field",
|
|
@@ -8800,6 +8988,28 @@
|
|
|
8800
8988
|
"name": "--gw-gauge-color"
|
|
8801
8989
|
}
|
|
8802
8990
|
],
|
|
8991
|
+
"cssParts": [
|
|
8992
|
+
{
|
|
8993
|
+
"description": "The dial, with the arc and the reading.",
|
|
8994
|
+
"name": "dial"
|
|
8995
|
+
},
|
|
8996
|
+
{
|
|
8997
|
+
"description": "The reading's number.",
|
|
8998
|
+
"name": "value"
|
|
8999
|
+
},
|
|
9000
|
+
{
|
|
9001
|
+
"description": "The unit after it.",
|
|
9002
|
+
"name": "unit"
|
|
9003
|
+
},
|
|
9004
|
+
{
|
|
9005
|
+
"description": "What it measures.",
|
|
9006
|
+
"name": "label"
|
|
9007
|
+
},
|
|
9008
|
+
{
|
|
9009
|
+
"description": "The line under the label.",
|
|
9010
|
+
"name": "caption"
|
|
9011
|
+
}
|
|
9012
|
+
],
|
|
8803
9013
|
"members": [
|
|
8804
9014
|
{
|
|
8805
9015
|
"kind": "field",
|
|
@@ -10527,6 +10737,24 @@
|
|
|
10527
10737
|
"kind": "class",
|
|
10528
10738
|
"description": "A labeled bar for a value in a range, such as disk use. Past `high` it\nturns warning, and past `critical` danger, unless a `tone` is set. While\n`loading`, the track pulses and a skeleton stands in for the value.",
|
|
10529
10739
|
"name": "GwMeter",
|
|
10740
|
+
"cssParts": [
|
|
10741
|
+
{
|
|
10742
|
+
"description": "The row with the label and value.",
|
|
10743
|
+
"name": "top"
|
|
10744
|
+
},
|
|
10745
|
+
{
|
|
10746
|
+
"description": "The value as shown.",
|
|
10747
|
+
"name": "value"
|
|
10748
|
+
},
|
|
10749
|
+
{
|
|
10750
|
+
"description": "The bar's track.",
|
|
10751
|
+
"name": "track"
|
|
10752
|
+
},
|
|
10753
|
+
{
|
|
10754
|
+
"description": "The filled part of the bar.",
|
|
10755
|
+
"name": "fill"
|
|
10756
|
+
}
|
|
10757
|
+
],
|
|
10530
10758
|
"members": [
|
|
10531
10759
|
{
|
|
10532
10760
|
"kind": "field",
|
|
@@ -11094,6 +11322,20 @@
|
|
|
11094
11322
|
"kind": "class",
|
|
11095
11323
|
"description": "Where notifications wait until they're dealt with: a list of\n`gw-notification` cards with Clear all, and an empty state once nothing's\nleft. Put it in a page, a panel or a popover from a bell button. Each\ncard folds away when dismissed, and the list closes up smoothly. It fires\n`clear` when Clear all is pressed.",
|
|
11096
11324
|
"name": "GwNotificationCenter",
|
|
11325
|
+
"cssParts": [
|
|
11326
|
+
{
|
|
11327
|
+
"description": "The row with the heading and Clear all.",
|
|
11328
|
+
"name": "header"
|
|
11329
|
+
},
|
|
11330
|
+
{
|
|
11331
|
+
"description": "The heading.",
|
|
11332
|
+
"name": "heading"
|
|
11333
|
+
},
|
|
11334
|
+
{
|
|
11335
|
+
"description": "The list of cards.",
|
|
11336
|
+
"name": "list"
|
|
11337
|
+
}
|
|
11338
|
+
],
|
|
11097
11339
|
"slots": [
|
|
11098
11340
|
{
|
|
11099
11341
|
"description": "The `gw-notification` cards.",
|
|
@@ -11547,6 +11789,12 @@
|
|
|
11547
11789
|
"kind": "class",
|
|
11548
11790
|
"description": "Something new the person needs to decide or know, kept in a\n`gw-notification-center` until it's dealt with. It has an icon, a heading,\na line of text, when it happened and up to two actions. Its close button\ndismisses it: it fires `dismiss`, then folds away and removes itself,\nunless the event is cancelled.",
|
|
11549
11791
|
"name": "GwNotification",
|
|
11792
|
+
"cssProperties": [
|
|
11793
|
+
{
|
|
11794
|
+
"description": "The icon's color, for a tone of your own. `tone` sets it.",
|
|
11795
|
+
"name": "--gw-tone"
|
|
11796
|
+
}
|
|
11797
|
+
],
|
|
11550
11798
|
"cssParts": [
|
|
11551
11799
|
{
|
|
11552
11800
|
"description": "The card.",
|
|
@@ -12051,6 +12299,32 @@
|
|
|
12051
12299
|
"name": "--gw-option-list-height"
|
|
12052
12300
|
}
|
|
12053
12301
|
],
|
|
12302
|
+
"cssParts": [
|
|
12303
|
+
{
|
|
12304
|
+
"description": "The search field's row.",
|
|
12305
|
+
"name": "search"
|
|
12306
|
+
},
|
|
12307
|
+
{
|
|
12308
|
+
"description": "The scrolling list.",
|
|
12309
|
+
"name": "listbox"
|
|
12310
|
+
},
|
|
12311
|
+
{
|
|
12312
|
+
"description": "Each option.",
|
|
12313
|
+
"name": "option"
|
|
12314
|
+
},
|
|
12315
|
+
{
|
|
12316
|
+
"description": "Each group heading.",
|
|
12317
|
+
"name": "group"
|
|
12318
|
+
},
|
|
12319
|
+
{
|
|
12320
|
+
"description": "An option's second line.",
|
|
12321
|
+
"name": "description"
|
|
12322
|
+
},
|
|
12323
|
+
{
|
|
12324
|
+
"description": "The no matches line.",
|
|
12325
|
+
"name": "none"
|
|
12326
|
+
}
|
|
12327
|
+
],
|
|
12054
12328
|
"members": [
|
|
12055
12329
|
{
|
|
12056
12330
|
"kind": "field",
|
|
@@ -12760,6 +13034,20 @@
|
|
|
12760
13034
|
"kind": "class",
|
|
12761
13035
|
"description": "A page's title, with an optional icon tile and description, and its\ncontrols at the top right in the `actions` slot.",
|
|
12762
13036
|
"name": "GwPageHeader",
|
|
13037
|
+
"cssParts": [
|
|
13038
|
+
{
|
|
13039
|
+
"description": "The icon tile.",
|
|
13040
|
+
"name": "tile"
|
|
13041
|
+
},
|
|
13042
|
+
{
|
|
13043
|
+
"description": "The title.",
|
|
13044
|
+
"name": "heading"
|
|
13045
|
+
},
|
|
13046
|
+
{
|
|
13047
|
+
"description": "The line under the title.",
|
|
13048
|
+
"name": "description"
|
|
13049
|
+
}
|
|
13050
|
+
],
|
|
12763
13051
|
"slots": [
|
|
12764
13052
|
{
|
|
12765
13053
|
"description": "The page's controls.",
|
|
@@ -13210,6 +13498,24 @@
|
|
|
13210
13498
|
"name": "--gw-popover-width"
|
|
13211
13499
|
}
|
|
13212
13500
|
],
|
|
13501
|
+
"cssParts": [
|
|
13502
|
+
{
|
|
13503
|
+
"description": "The popover's surface.",
|
|
13504
|
+
"name": "surface"
|
|
13505
|
+
},
|
|
13506
|
+
{
|
|
13507
|
+
"description": "The heading.",
|
|
13508
|
+
"name": "heading"
|
|
13509
|
+
},
|
|
13510
|
+
{
|
|
13511
|
+
"description": "The content.",
|
|
13512
|
+
"name": "body"
|
|
13513
|
+
},
|
|
13514
|
+
{
|
|
13515
|
+
"description": "The actions row.",
|
|
13516
|
+
"name": "footer"
|
|
13517
|
+
}
|
|
13518
|
+
],
|
|
13213
13519
|
"slots": [
|
|
13214
13520
|
{
|
|
13215
13521
|
"description": "The content.",
|
|
@@ -13743,6 +14049,12 @@
|
|
|
13743
14049
|
"kind": "class",
|
|
13744
14050
|
"description": "A small heading between groups on a page, as an `<h2>` unless `level` says otherwise.",
|
|
13745
14051
|
"name": "GwSectionTitle",
|
|
14052
|
+
"cssParts": [
|
|
14053
|
+
{
|
|
14054
|
+
"description": "The heading.",
|
|
14055
|
+
"name": "heading"
|
|
14056
|
+
}
|
|
14057
|
+
],
|
|
13746
14058
|
"slots": [
|
|
13747
14059
|
{
|
|
13748
14060
|
"description": "The heading text.",
|
|
@@ -14144,6 +14456,10 @@
|
|
|
14144
14456
|
"description": "Picks one of a few options, as a row of native radio buttons, so arrow\nkeys move between them and a form submits the choice. Fires `change`.\n\nOptions can carry icons, as Home Assistant's toggles do. `labels` decides\nwhether their text shows: `show` (the default), `hide` (icons only, with\nthe text as a tooltip and accessible name) or `auto`, which shows the text\non wide screens and only the icons on narrow ones.",
|
|
14145
14457
|
"name": "GwSegmented",
|
|
14146
14458
|
"cssParts": [
|
|
14459
|
+
{
|
|
14460
|
+
"description": "Each option.",
|
|
14461
|
+
"name": "option"
|
|
14462
|
+
},
|
|
14147
14463
|
{
|
|
14148
14464
|
"description": "The pill that slides to the chosen option.",
|
|
14149
14465
|
"name": "indicator"
|
|
@@ -16606,6 +16922,12 @@
|
|
|
16606
16922
|
"kind": "class",
|
|
16607
16923
|
"description": "Several lines of text, as a paragraph, with a shorter last line so it\ndoesn't read as a solid block.",
|
|
16608
16924
|
"name": "GwSkeletonLines",
|
|
16925
|
+
"cssParts": [
|
|
16926
|
+
{
|
|
16927
|
+
"description": "Each line.",
|
|
16928
|
+
"name": "line"
|
|
16929
|
+
}
|
|
16930
|
+
],
|
|
16609
16931
|
"members": [
|
|
16610
16932
|
{
|
|
16611
16933
|
"kind": "field",
|
|
@@ -17393,6 +17715,12 @@
|
|
|
17393
17715
|
"name": "--gw-spinner-size"
|
|
17394
17716
|
}
|
|
17395
17717
|
],
|
|
17718
|
+
"cssParts": [
|
|
17719
|
+
{
|
|
17720
|
+
"description": "The spinning ring.",
|
|
17721
|
+
"name": "ring"
|
|
17722
|
+
}
|
|
17723
|
+
],
|
|
17396
17724
|
"members": [
|
|
17397
17725
|
{
|
|
17398
17726
|
"kind": "field",
|
|
@@ -18320,12 +18648,20 @@
|
|
|
18320
18648
|
"declarations": [
|
|
18321
18649
|
{
|
|
18322
18650
|
"kind": "class",
|
|
18323
|
-
"description": "A palette button for a page's look. It opens a popover with the mode\n(auto, light, dark or Darker), the theme, and buttons to import a theme\nfile (a Groundwork theme's `.json` or an Omarchy `colors.toml`) or reset.\n\nIt only asks: it fires `mode`, `theme`, `import` and `reset`, and the page\napplies them and sets `mode`, `theme` and `themes` back. `pageTheme` from\n`@timmo001/groundwork-tokens/page` does all of that. Show an import's\nresult, such as contrast misses, in `status`.\n\n`gallery` swaps the theme select for `gw-theme-gallery`'s cards, which\npreview each theme in the chosen mode.",
|
|
18651
|
+
"description": "A palette button for a page's look. It opens a popover with the mode\n(auto, light, dark or Darker), the theme, and buttons to import a theme\nfile (a Groundwork theme's `.json` or an Omarchy `colors.toml`) or reset.\n\nIt only asks: it fires `mode`, `theme`, `import` and `reset`, and the page\napplies them and sets `mode`, `theme` and `themes` back. `pageTheme` from\n`@timmo001/groundwork-tokens/page` does all of that. Show an import's\nresult, such as contrast misses, in `status`.\n\n`gallery` swaps the theme select for `gw-theme-gallery`'s cards, which\npreview each theme in the chosen mode.\n\n`layout` sets how it shows. `popover`, the default, is the palette button\nand its popover. `cycle` is one button showing the mode in use, which steps\nto the next mode on each press, for an app bar. `inline` lays the controls\nout in place, in one wrapping row with Reset and Import, for a footer or a\nsettings page; set `justify-content` on it to align the row. `modes` picks which modes it offers, such as `light dark` without\nAuto.",
|
|
18324
18652
|
"name": "GwThemePicker",
|
|
18325
18653
|
"cssParts": [
|
|
18326
18654
|
{
|
|
18327
18655
|
"description": "The theme gallery, with `gallery`.",
|
|
18328
18656
|
"name": "gallery"
|
|
18657
|
+
},
|
|
18658
|
+
{
|
|
18659
|
+
"description": "The mode, theme and status.",
|
|
18660
|
+
"name": "controls"
|
|
18661
|
+
},
|
|
18662
|
+
{
|
|
18663
|
+
"description": "Reset and Import, with `inline`.",
|
|
18664
|
+
"name": "actions"
|
|
18329
18665
|
}
|
|
18330
18666
|
],
|
|
18331
18667
|
"members": [
|
|
@@ -18336,7 +18672,7 @@
|
|
|
18336
18672
|
"text": "Properties"
|
|
18337
18673
|
},
|
|
18338
18674
|
"static": true,
|
|
18339
|
-
"default": "{ mode: { reflect: true }, theme: { reflect: true }, themes: { type: \"json\" }, gallery: { type: \"boolean\", reflect: true }, status: {}, label: {}, }",
|
|
18675
|
+
"default": "{ mode: { reflect: true }, theme: { reflect: true }, themes: { type: \"json\" }, gallery: { type: \"boolean\", reflect: true }, status: {}, label: {}, layout: { reflect: true }, modes: {}, }",
|
|
18340
18676
|
"inheritedFrom": {
|
|
18341
18677
|
"name": "GwElement",
|
|
18342
18678
|
"module": "src/element.ts"
|
|
@@ -18349,7 +18685,7 @@
|
|
|
18349
18685
|
"text": "readonly CSSStyleSheet[]"
|
|
18350
18686
|
},
|
|
18351
18687
|
"static": true,
|
|
18352
|
-
"default": "[ base, css` :host { display: inline-block; } :host([gallery]) gw-popover { --gw-popover-width: 34rem; } .gallery { max-height: min(24rem, 50vh); overflow: auto; /* Room for the cards' focus rings */ padding: var(--gw-space-1); margin: calc(var(--gw-space-1) * -1); } .controls { display: flex; flex-direction: column; gap: var(--gw-space-4); margin-block-start: var(--gw-space-2); } .status { margin: 0; font-size: var(--gw-font-size-s); color: var(--gw-color-text-secondary); } `, ]",
|
|
18688
|
+
"default": "[ base, css` :host { display: inline-block; } :host([gallery]) gw-popover { --gw-popover-width: 34rem; } .gallery { max-height: min(24rem, 50vh); overflow: auto; /* Room for the cards' focus rings */ padding: var(--gw-space-1); margin: calc(var(--gw-space-1) * -1); } .controls { display: flex; flex-direction: column; gap: var(--gw-space-4); margin-block-start: var(--gw-space-2); } .status { margin: 0; font-size: var(--gw-font-size-s); color: var(--gw-color-text-secondary); } /* One wrapping row: the controls, then Reset and Import. The host is the flex container, so a page can set its justify-content */ :host([layout=\"inline\"]) { display: flex; flex-wrap: wrap; gap: var(--gw-space-4); align-items: center; } :host([layout=\"inline\"]) .controls { flex-flow: row wrap; align-items: center; margin-block-start: 0; } .actions { display: flex; flex-wrap: wrap; gap: var(--gw-space-2); align-items: center; } `, ]",
|
|
18353
18689
|
"inheritedFrom": {
|
|
18354
18690
|
"name": "GwElement",
|
|
18355
18691
|
"module": "src/element.ts"
|
|
@@ -18403,6 +18739,24 @@
|
|
|
18403
18739
|
},
|
|
18404
18740
|
"default": "\"Theme\""
|
|
18405
18741
|
},
|
|
18742
|
+
{
|
|
18743
|
+
"kind": "field",
|
|
18744
|
+
"name": "layout",
|
|
18745
|
+
"type": {
|
|
18746
|
+
"text": "\"popover\" | \"cycle\" | \"inline\""
|
|
18747
|
+
},
|
|
18748
|
+
"description": "How it shows: a button and popover, a button cycling the modes, or the controls in place.",
|
|
18749
|
+
"default": "\"popover\""
|
|
18750
|
+
},
|
|
18751
|
+
{
|
|
18752
|
+
"kind": "field",
|
|
18753
|
+
"name": "modes",
|
|
18754
|
+
"type": {
|
|
18755
|
+
"text": "string"
|
|
18756
|
+
},
|
|
18757
|
+
"description": "The modes to offer, in order and separated by spaces.",
|
|
18758
|
+
"default": "\"auto light dark darker\""
|
|
18759
|
+
},
|
|
18406
18760
|
{
|
|
18407
18761
|
"kind": "field",
|
|
18408
18762
|
"name": "#button",
|
|
@@ -18439,16 +18793,60 @@
|
|
|
18439
18793
|
"privacy": "private",
|
|
18440
18794
|
"readonly": true
|
|
18441
18795
|
},
|
|
18796
|
+
{
|
|
18797
|
+
"kind": "field",
|
|
18798
|
+
"name": "#controls",
|
|
18799
|
+
"privacy": "private",
|
|
18800
|
+
"readonly": true
|
|
18801
|
+
},
|
|
18802
|
+
{
|
|
18803
|
+
"kind": "field",
|
|
18804
|
+
"name": "#reset",
|
|
18805
|
+
"privacy": "private",
|
|
18806
|
+
"readonly": true
|
|
18807
|
+
},
|
|
18808
|
+
{
|
|
18809
|
+
"kind": "field",
|
|
18810
|
+
"name": "#import",
|
|
18811
|
+
"privacy": "private",
|
|
18812
|
+
"readonly": true
|
|
18813
|
+
},
|
|
18442
18814
|
{
|
|
18443
18815
|
"kind": "field",
|
|
18444
18816
|
"name": "#popover",
|
|
18445
18817
|
"privacy": "private",
|
|
18446
18818
|
"readonly": true
|
|
18447
18819
|
},
|
|
18820
|
+
{
|
|
18821
|
+
"kind": "field",
|
|
18822
|
+
"name": "#actions",
|
|
18823
|
+
"privacy": "private",
|
|
18824
|
+
"readonly": true
|
|
18825
|
+
},
|
|
18826
|
+
{
|
|
18827
|
+
"kind": "method",
|
|
18828
|
+
"name": "#offered",
|
|
18829
|
+
"privacy": "private",
|
|
18830
|
+
"description": "The modes on offer, in the order `modes` gives them."
|
|
18831
|
+
},
|
|
18448
18832
|
{
|
|
18449
18833
|
"kind": "method",
|
|
18450
18834
|
"name": "show",
|
|
18451
|
-
"description": "Opens the popover under the button."
|
|
18835
|
+
"description": "Opens the popover under the button, or with `cycle`, steps to the next mode."
|
|
18836
|
+
},
|
|
18837
|
+
{
|
|
18838
|
+
"kind": "method",
|
|
18839
|
+
"name": "#place",
|
|
18840
|
+
"privacy": "private",
|
|
18841
|
+
"parameters": [
|
|
18842
|
+
{
|
|
18843
|
+
"name": "root",
|
|
18844
|
+
"type": {
|
|
18845
|
+
"text": "ShadowRoot"
|
|
18846
|
+
}
|
|
18847
|
+
}
|
|
18848
|
+
],
|
|
18849
|
+
"description": "Puts the controls and their buttons in the popover, or in place for `inline`."
|
|
18452
18850
|
},
|
|
18453
18851
|
{
|
|
18454
18852
|
"kind": "method",
|
|
@@ -18493,7 +18891,7 @@
|
|
|
18493
18891
|
"privacy": "protected",
|
|
18494
18892
|
"parameters": [
|
|
18495
18893
|
{
|
|
18496
|
-
"name": "
|
|
18894
|
+
"name": "changed",
|
|
18497
18895
|
"type": {
|
|
18498
18896
|
"text": "ReadonlySet<string>"
|
|
18499
18897
|
}
|
|
@@ -18812,6 +19210,20 @@
|
|
|
18812
19210
|
}
|
|
18813
19211
|
],
|
|
18814
19212
|
"attributes": [
|
|
19213
|
+
{
|
|
19214
|
+
"type": {
|
|
19215
|
+
"text": "\"popover\"|\"cycle\"|\"inline\""
|
|
19216
|
+
},
|
|
19217
|
+
"description": "How it shows: a button and popover, a button cycling the modes, or the controls in place. Defaults to `popover`.",
|
|
19218
|
+
"name": "layout"
|
|
19219
|
+
},
|
|
19220
|
+
{
|
|
19221
|
+
"type": {
|
|
19222
|
+
"text": "string"
|
|
19223
|
+
},
|
|
19224
|
+
"description": "The modes to offer, in order and separated by spaces. Defaults to `auto light dark darker`.",
|
|
19225
|
+
"name": "modes"
|
|
19226
|
+
},
|
|
18815
19227
|
{
|
|
18816
19228
|
"type": {
|
|
18817
19229
|
"text": "\"auto\"|\"light\"|\"dark\"|\"darker\""
|
|
@@ -18851,7 +19263,7 @@
|
|
|
18851
19263
|
"type": {
|
|
18852
19264
|
"text": "string"
|
|
18853
19265
|
},
|
|
18854
|
-
"description": "The button's accessible name and the popover's heading. Defaults to `Theme`.",
|
|
19266
|
+
"description": "The button's accessible name and the popover's heading. Defaults to `Theme`. With `cycle`, the button's name also gives the mode in use.",
|
|
18855
19267
|
"name": "label"
|
|
18856
19268
|
}
|
|
18857
19269
|
],
|
|
@@ -18883,6 +19295,12 @@
|
|
|
18883
19295
|
"kind": "class",
|
|
18884
19296
|
"description": "Where toasts appear: the bottom corner on the end side, away from what\npeople click. Call `show(message, tone)`; each toast is announced politely\nand fades out after `duration` milliseconds.\n\nA toast only tells; it has no actions and lets every click through, since\nit may sit over something interactive and leaves before it can be used.\nIt's in the top layer and rises above any dialog each time one shows. It's\na last resort: show an outcome where it happened instead.",
|
|
18885
19297
|
"name": "GwToaster",
|
|
19298
|
+
"cssParts": [
|
|
19299
|
+
{
|
|
19300
|
+
"description": "Each toast.",
|
|
19301
|
+
"name": "toast"
|
|
19302
|
+
}
|
|
19303
|
+
],
|
|
18886
19304
|
"members": [
|
|
18887
19305
|
{
|
|
18888
19306
|
"kind": "field",
|