@redvars/peacock 3.8.2 → 3.8.3
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/dist/assets/components.css.map +1 -1
- package/dist/assets/styles.css.map +1 -1
- package/dist/babel-DBsfpl3B.js +18 -0
- package/dist/babel-DBsfpl3B.js.map +1 -0
- package/dist/button-group.js +4 -4
- package/dist/button-group.js.map +1 -1
- package/dist/button.js +5 -5
- package/dist/card.js +22 -7
- package/dist/card.js.map +1 -1
- package/dist/code-highlighter.js +74 -11212
- package/dist/code-highlighter.js.map +1 -1
- package/dist/color-picker.js +701 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/custom-elements-jsdocs.json +96 -3
- package/dist/custom-elements.json +1202 -576
- package/dist/estree-C2LDzX4U.js +47 -0
- package/dist/estree-C2LDzX4U.js.map +1 -0
- package/dist/fab.js +1 -3
- package/dist/fab.js.map +1 -1
- package/dist/html-D22sQuVy.js +27 -0
- package/dist/html-D22sQuVy.js.map +1 -0
- package/dist/icon-button.js +5 -5
- package/dist/index-_g_oLekF.js +14095 -0
- package/dist/index-_g_oLekF.js.map +1 -0
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/item.js +3 -2
- package/dist/item.js.map +1 -1
- package/dist/{list-D6JLh1uh.js → list-H0itjRte.js} +194 -20
- package/dist/list-H0itjRte.js.map +1 -0
- package/dist/list.js +2 -2
- package/dist/loader.js +6 -2
- package/dist/loader.js.map +1 -1
- package/dist/menu-item.js +103 -33
- package/dist/menu-item.js.map +1 -1
- package/dist/menu.js +4 -18
- package/dist/menu.js.map +1 -1
- package/dist/navigation-rail-item.js +21 -6
- package/dist/navigation-rail-item.js.map +1 -1
- package/dist/navigation-rail.js +22 -20
- package/dist/navigation-rail.js.map +1 -1
- package/dist/pierre-dark-DFWl0m-C.js +4 -0
- package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
- package/dist/pierre-light-BEkAPImt.js +4 -0
- package/dist/pierre-light-BEkAPImt.js.map +1 -0
- package/dist/postcss-BhbitHaI.js +64 -0
- package/dist/postcss-BhbitHaI.js.map +1 -0
- package/dist/{select-Dwtk0RIU.js → select-CspawZ18.js} +13 -6
- package/dist/{select-Dwtk0RIU.js.map → select-CspawZ18.js.map} +1 -1
- package/dist/side-sheet.js +1 -1
- package/dist/side-sheet.js.map +1 -1
- package/dist/src/button/button-group/button-group.d.ts +4 -4
- package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
- package/dist/src/color-picker/color-picker.d.ts +85 -0
- package/dist/src/color-picker/index.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/item/item.d.ts +0 -1
- package/dist/src/list/list-item.d.ts +3 -1
- package/dist/src/list/list.d.ts +24 -0
- package/dist/src/menu/menu-item/menu-item.d.ts +1 -2
- package/dist/standalone-Ccq0tWwA.js +32 -0
- package/dist/standalone-Ccq0tWwA.js.map +1 -0
- package/dist/sub-menu.js +6 -1
- package/dist/sub-menu.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/readme.md +3 -3
- package/scss/mixin.scss +1 -0
- package/src/button/button/button-base.scss +2 -1
- package/src/button/button/button-layers.scss +2 -6
- package/src/button/button-group/button-group.ts +4 -4
- package/src/button/fab/fab.ts +0 -4
- package/src/card/card.scss +18 -5
- package/src/code-highlighter/code-highlighter.ts +94 -39
- package/src/color-picker/color-picker.scss +217 -0
- package/src/color-picker/color-picker.ts +478 -0
- package/src/color-picker/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/item/item.scss +3 -1
- package/src/item/item.ts +0 -1
- package/src/list/list-item.scss +5 -1
- package/src/list/list-item.ts +40 -14
- package/src/list/list.ts +164 -2
- package/src/loader.ts +4 -0
- package/src/menu/menu/menu.scss +4 -18
- package/src/menu/menu/menu.ts +0 -1
- package/src/menu/menu-item/menu-item.scss +73 -43
- package/src/menu/menu-item/menu-item.ts +60 -27
- package/src/menu/sub-menu/sub-menu.scss +5 -1
- package/src/navigation-rail/navigation-rail-item.scss +25 -8
- package/src/navigation-rail/navigation-rail.scss +25 -22
- package/src/side-sheet/side-sheet.ts +1 -1
- package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
- package/dist/list-D6JLh1uh.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@ export { Ripple } from './ripple.js';
|
|
|
17
17
|
import './accordion-item.js';
|
|
18
18
|
export { Accordion } from './accordion.js';
|
|
19
19
|
export { Link } from './link.js';
|
|
20
|
-
export { C as ChipSet, a as CircularProgress, D as DatePicker, I as Input, L as LinearProgress, N as NumberField, S as Select, b as SidebarMenu, c as SidebarMenuItem, d as SidebarSubMenu, e as Switch, T as Tag, f as Textarea, g as TimePicker, U as UrlField } from './select-
|
|
20
|
+
export { C as ChipSet, a as CircularProgress, D as DatePicker, I as Input, L as LinearProgress, N as NumberField, S as Select, b as SidebarMenu, c as SidebarMenuItem, d as SidebarSubMenu, e as Switch, T as Tag, f as Textarea, g as TimePicker, U as UrlField } from './select-CspawZ18.js';
|
|
21
21
|
export { Chip } from './chip.js';
|
|
22
22
|
export { Skeleton } from './skeleton.js';
|
|
23
23
|
export { Field } from './field.js';
|
|
@@ -34,7 +34,7 @@ export { BreadcrumbItem } from './breadcrumb-item.js';
|
|
|
34
34
|
export { Menu } from './menu.js';
|
|
35
35
|
export { MenuItem } from './menu-item.js';
|
|
36
36
|
export { SubMenu } from './sub-menu.js';
|
|
37
|
-
export { L as List, a as ListItem } from './list-
|
|
37
|
+
export { L as List, a as ListItem } from './list-H0itjRte.js';
|
|
38
38
|
export { Item } from './item.js';
|
|
39
39
|
export { CodeHighlighter } from './code-highlighter.js';
|
|
40
40
|
export { default as CodeEditor } from './code-editor.js';
|
|
@@ -46,6 +46,7 @@ export { TabGroup } from './tab-group.js';
|
|
|
46
46
|
export { TabPanel } from './tab-panel.js';
|
|
47
47
|
export { Tabs } from './tabs.js';
|
|
48
48
|
export { Slider } from './slider.js';
|
|
49
|
+
export { ColorPicker } from './color-picker.js';
|
|
49
50
|
export { ChartDoughnut } from './chart-doughnut.js';
|
|
50
51
|
export { ChartPie } from './chart-pie.js';
|
|
51
52
|
export { ChartBar } from './chart-bar.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/item.js
CHANGED
|
@@ -27,6 +27,7 @@ var css_248z = i`* {
|
|
|
27
27
|
--item-container-color: transparent;
|
|
28
28
|
--item-height: 3rem;
|
|
29
29
|
--item-multiline-height: 4rem;
|
|
30
|
+
--item-label-text-color: var(--color-on-surface);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
:host {
|
|
@@ -44,7 +45,8 @@ var css_248z = i`* {
|
|
|
44
45
|
padding-block: 0.625rem;
|
|
45
46
|
padding-inline: var(--item-padding-inline, 1rem);
|
|
46
47
|
overflow: hidden;
|
|
47
|
-
color: var(--item-label-text-color
|
|
48
|
+
color: var(--item-label-text-color);
|
|
49
|
+
--icon-color: var(--item-label-text-color);
|
|
48
50
|
opacity: var(--item-label-text-opacity, 1);
|
|
49
51
|
font-family: var(--item-label-font-family, var(--typography-body-large-font-family)) !important;
|
|
50
52
|
font-size: var(--item-label-font-size, var(--typography-body-large-font-size)) !important;
|
|
@@ -125,7 +127,6 @@ var css_248z = i`* {
|
|
|
125
127
|
* <wc-item>
|
|
126
128
|
* <wc-icon slot="start" name="notifications"></wc-icon>
|
|
127
129
|
*
|
|
128
|
-
* <span slot="overline">Settings</span>
|
|
129
130
|
* <span slot="headline">Notifications</span>
|
|
130
131
|
* <span slot="supporting-text">Manage alerts and reminders</span>
|
|
131
132
|
*
|
package/dist/item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sources":["../node_modules/@lit/reactive-element/decorators/query-all.js","../../src/item/item.ts"],"sourcesContent":["import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import { html, LitElement } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport styles from './item.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport { mixinDelegatesAria } from '@/__internal/aria/delegate.js';\nimport { mixinElementInternals } from '@/__internal/mixins/element-internals.js';\n\nimport { hasMeaningfulContent } from '@/__internal/utils/observe-slot-change.js';\n\n/**\n * @label Item\n * @tag wc-item\n * @rawTag item\n *\n * @summary A primitive element used to build higher-level item components such as menu-item, navigation-item, and list-item. Provides start, text, and end slots for flexible content composition.\n *\n * @example\n * ```html\n * <wc-item>\n * <wc-icon slot=\"start\" name=\"notifications\"></wc-icon>\n *\n * <span slot=\"
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../node_modules/@lit/reactive-element/decorators/query-all.js","../../src/item/item.ts"],"sourcesContent":["import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import { html, LitElement } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport styles from './item.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport { mixinDelegatesAria } from '@/__internal/aria/delegate.js';\nimport { mixinElementInternals } from '@/__internal/mixins/element-internals.js';\n\nimport { hasMeaningfulContent } from '@/__internal/utils/observe-slot-change.js';\n\n/**\n * @label Item\n * @tag wc-item\n * @rawTag item\n *\n * @summary A primitive element used to build higher-level item components such as menu-item, navigation-item, and list-item. Provides start, text, and end slots for flexible content composition.\n *\n * @example\n * ```html\n * <wc-item>\n * <wc-icon slot=\"start\" name=\"notifications\"></wc-icon>\n *\n * <span slot=\"headline\">Notifications</span>\n * <span slot=\"supporting-text\">Manage alerts and reminders</span>\n *\n * <span slot=\"trailing-supporting-text\">3</span>\n * <wc-icon slot=\"end\" name=\"chevron_right\"></wc-icon>\n * </wc-item>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Item extends mixinDelegatesAria(\n mixinElementInternals(LitElement),\n) {\n static styles = [styles];\n\n /**\n * Only needed for SSR.\n *\n * Add this attribute when an item has two lines to avoid a Flash Of Unstyled\n * Content. This attribute is not needed for single line items or items with\n * three or more lines.\n */\n @property({ type: Boolean, reflect: true }) multiline = false;\n\n @queryAll('.text slot') private readonly textSlots!: HTMLSlotElement[];\n\n private __hasNamedSlot(...names: string[]) {\n return names.some(name =>\n Array.from(this.children).some(\n child => child.getAttribute('slot') === name,\n ),\n );\n }\n\n override render() {\n const hasStart = this.__hasNamedSlot('start');\n const hasEnd = this.__hasNamedSlot('end');\n const hasTrailingSupportingText = this.__hasNamedSlot(\n 'trailing-supporting-text',\n );\n\n return html`\n <slot name=\"container\"></slot>\n\n <div class=\"item\">\n <slot class=\"non-text\" name=\"start\" ?hidden=${!hasStart}></slot>\n <div class=\"text\">\n <slot name=\"overline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n class=\"default-slot\"\n @slotchange=${this.handleTextSlotChange}\n ></slot>\n <slot name=\"headline\" @slotchange=${this.handleTextSlotChange}></slot>\n <slot\n name=\"supporting-text\"\n @slotchange=${this.handleTextSlotChange}\n ></slot>\n </div>\n <slot\n class=\"non-text\"\n name=\"trailing-supporting-text\"\n ?hidden=${!hasTrailingSupportingText}\n ></slot>\n <slot class=\"non-text\" name=\"end\" ?hidden=${!hasEnd}></slot>\n </div>\n `;\n }\n\n private handleTextSlotChange() {\n // Check if there's more than one text slot with content. If so, the item is\n // multiline, which has a different min-height than single line items.\n let isMultiline = false;\n let slotsWithContent = 0;\n for (const slot of this.textSlots) {\n if (hasMeaningfulContent(slot)) {\n slotsWithContent += 1;\n }\n\n if (slotsWithContent > 1) {\n isMultiline = true;\n break;\n }\n }\n\n this.multiline = isMultiline;\n }\n}\n"],"names":["t","LitElement","html","styles","property","queryAll"],"mappings":";;;;;;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,CAAC,GAAGA,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGrI;;;;;;;;;;;;;;;;;;;;AAoBG;AAEI,IAAM,IAAI,GAAV,MAAM,IAAK,SAAQ,kBAAkB,CAC1C,qBAAqB,CAACC,GAAU,CAAC,CAClC,CAAA;AAFM,IAAA,WAAA,GAAA;;AAKL;;;;;;AAMG;QACyC,IAAA,CAAA,SAAS,GAAG,KAAK;IAgE/D;IA5DU,cAAc,CAAC,GAAG,KAAe,EAAA;AACvC,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5B,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAC7C,CACF;IACH;IAES,MAAM,GAAA;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QACzC,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CACnD,0BAA0B,CAC3B;AAED,QAAA,OAAOC,CAAI,CAAA;;;;AAIuC,oDAAA,EAAA,CAAC,QAAQ,CAAA;;AAEjB,4CAAA,EAAA,IAAI,CAAC,oBAAoB,CAAA;;;AAG7C,wBAAA,EAAA,IAAI,CAAC,oBAAoB;;AAEL,4CAAA,EAAA,IAAI,CAAC,oBAAoB,CAAA;;;AAG7C,wBAAA,EAAA,IAAI,CAAC,oBAAoB;;;;;;AAM/B,kBAAA,EAAA,CAAC,yBAAyB;;AAEM,kDAAA,EAAA,CAAC,MAAM,CAAA;;KAEtD;IACH;IAEQ,oBAAoB,GAAA;;;QAG1B,IAAI,WAAW,GAAG,KAAK;QACvB,IAAI,gBAAgB,GAAG,CAAC;AACxB,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;gBAC9B,gBAAgB,IAAI,CAAC;YACvB;AAEA,YAAA,IAAI,gBAAgB,GAAG,CAAC,EAAE;gBACxB,WAAW,GAAG,IAAI;gBAClB;YACF;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW;IAC9B;;AAxEO,IAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AASoB,UAAA,CAAA;IAA3CC,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAoB,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAErB,UAAA,CAAA;IAAxCC,CAAQ,CAAC,YAAY;AAAiD,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAd5D,IAAI,GAAA,UAAA,CAAA;IADhB;AACY,CAAA,EAAA,IAAI,CA4EhB;;;;","x_google_ignoreList":[0]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { i, a as i$1, A, b, _ as __decorate, I as IndividualComponent } from './IndividualComponent-Bdwyrvd6.js';
|
|
2
2
|
import { n } from './property-B49QQ8pS.js';
|
|
3
|
+
import { r } from './state-DkTK9EGF.js';
|
|
3
4
|
import { e } from './class-map-DG7CA1et.js';
|
|
4
5
|
import { e as e$1 } from './query-CHb9Ft_d.js';
|
|
5
|
-
import { o } from './if-defined-BXZpRQ4P.js';
|
|
6
6
|
import { i as isLink } from './is-link-Dk2OV3PM.js';
|
|
7
7
|
import { i as isActivationClick, d as dispatchActivationClick } from './dispatch-event-utils-CuEqjlPT.js';
|
|
8
8
|
import { m as mixinBaseButton, a as mixinHyperlink } from './hyperlink-DLvb6MXE.js';
|
|
@@ -61,6 +61,7 @@ var css_248z = i`* {
|
|
|
61
61
|
text-decoration: none;
|
|
62
62
|
color: inherit;
|
|
63
63
|
cursor: pointer;
|
|
64
|
+
outline: none;
|
|
64
65
|
}
|
|
65
66
|
.native-link:link, .native-link:visited, .native-link:hover, .native-link:active {
|
|
66
67
|
text-decoration: none;
|
|
@@ -70,7 +71,6 @@ var css_248z = i`* {
|
|
|
70
71
|
.list-item {
|
|
71
72
|
position: relative;
|
|
72
73
|
width: 100%;
|
|
73
|
-
cursor: pointer;
|
|
74
74
|
text-align: start;
|
|
75
75
|
}
|
|
76
76
|
.list-item .list-item-content {
|
|
@@ -122,6 +122,11 @@ var css_248z = i`* {
|
|
|
122
122
|
--skeleton-container-shape-end-end: var(--shape-corner-medium);
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
+
:host([actionable]:not([disabled]):not([soft-disabled])),
|
|
126
|
+
:host([href]:not([disabled]):not([soft-disabled])) {
|
|
127
|
+
cursor: pointer;
|
|
128
|
+
}
|
|
129
|
+
|
|
125
130
|
:host(:not([skeleton])) .skeleton {
|
|
126
131
|
display: none;
|
|
127
132
|
}
|
|
@@ -178,6 +183,7 @@ class ListItem extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinEl
|
|
|
178
183
|
this.selected = false;
|
|
179
184
|
/** When true, renders the list-item in a loading skeleton state. */
|
|
180
185
|
this.skeleton = false;
|
|
186
|
+
this.actionable = false;
|
|
181
187
|
this.__dispatchClick = (event) => {
|
|
182
188
|
// If the button is soft-disabled or a disabled link, we need to explicitly
|
|
183
189
|
// prevent the click from propagating to other event listeners as well as
|
|
@@ -211,8 +217,12 @@ class ListItem extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinEl
|
|
|
211
217
|
__hasNamedSlot(...names) {
|
|
212
218
|
return names.some(name => Array.from(this.children).some(child => child.getAttribute('slot') === name));
|
|
213
219
|
}
|
|
220
|
+
isClickable() {
|
|
221
|
+
return this.actionable || isLink(this);
|
|
222
|
+
}
|
|
214
223
|
render() {
|
|
215
224
|
const isElementLink = isLink(this);
|
|
225
|
+
const clickable = this.isClickable();
|
|
216
226
|
const cssClasses = {
|
|
217
227
|
'list-item': true,
|
|
218
228
|
'native-button': !isElementLink,
|
|
@@ -220,6 +230,17 @@ class ListItem extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinEl
|
|
|
220
230
|
};
|
|
221
231
|
// Needed for closure conformance
|
|
222
232
|
const { ariaLabel } = this;
|
|
233
|
+
if (!clickable) {
|
|
234
|
+
return b `
|
|
235
|
+
<div
|
|
236
|
+
id="list-item"
|
|
237
|
+
class=${e(cssClasses)}
|
|
238
|
+
aria-label="${ariaLabel || A}"
|
|
239
|
+
>
|
|
240
|
+
${this.renderContent(clickable)}
|
|
241
|
+
</div>
|
|
242
|
+
`;
|
|
243
|
+
}
|
|
223
244
|
if (!isElementLink) {
|
|
224
245
|
return b `
|
|
225
246
|
<button
|
|
@@ -230,7 +251,7 @@ class ListItem extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinEl
|
|
|
230
251
|
?aria-disabled=${this.softDisabled}
|
|
231
252
|
@click=${this.__dispatchClick}
|
|
232
253
|
>
|
|
233
|
-
${this.renderContent()}
|
|
254
|
+
${this.renderContent(clickable)}
|
|
234
255
|
</button>
|
|
235
256
|
`;
|
|
236
257
|
}
|
|
@@ -240,30 +261,36 @@ class ListItem extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinEl
|
|
|
240
261
|
class=${e(cssClasses)}
|
|
241
262
|
href=${this.href}
|
|
242
263
|
target=${this.target}
|
|
243
|
-
rel=${
|
|
244
|
-
download=${
|
|
264
|
+
?rel=${this.rel}
|
|
265
|
+
?download=${this.download}
|
|
245
266
|
tabindex=${this.disabled ? '-1' : '0'}
|
|
246
267
|
aria-disabled=${String(this.disabled || this.softDisabled)}
|
|
247
268
|
@click=${this.__dispatchClick}
|
|
248
269
|
>
|
|
249
|
-
${this.renderContent()}
|
|
270
|
+
${this.renderContent(clickable)}
|
|
250
271
|
</a>
|
|
251
272
|
`;
|
|
252
273
|
}
|
|
253
|
-
renderContent() {
|
|
274
|
+
renderContent(clickable) {
|
|
254
275
|
const hasLeading = this.__hasNamedSlot('leading');
|
|
255
276
|
const hasTrailingSupportingText = this.__hasNamedSlot('trailing-supporting-text');
|
|
256
277
|
const hasTrailing = this.__hasNamedSlot('trailing');
|
|
257
278
|
return b `
|
|
258
|
-
<wc-item class="list-item-content">
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
279
|
+
<wc-item class="list-item-content" ?inert=${clickable}>
|
|
280
|
+
${clickable
|
|
281
|
+
? b `<wc-focus-ring
|
|
282
|
+
class="focus-ring"
|
|
283
|
+
for="list-item"
|
|
284
|
+
slot="container"
|
|
285
|
+
></wc-focus-ring>
|
|
286
|
+
<div class="background" slot="container"></div>
|
|
287
|
+
<wc-ripple
|
|
288
|
+
class="ripple"
|
|
289
|
+
for="list-item"
|
|
290
|
+
slot="container"
|
|
291
|
+
></wc-ripple>
|
|
292
|
+
<wc-skeleton class="skeleton" slot="container"></wc-skeleton> `
|
|
293
|
+
: null}
|
|
267
294
|
|
|
268
295
|
<slot name="leading" slot="start" ?hidden=${!hasLeading}></slot>
|
|
269
296
|
<slot name="overline" slot="overline"></slot>
|
|
@@ -294,10 +321,14 @@ __decorate([
|
|
|
294
321
|
__decorate([
|
|
295
322
|
n({ type: Boolean, reflect: true })
|
|
296
323
|
], ListItem.prototype, "skeleton", void 0);
|
|
324
|
+
__decorate([
|
|
325
|
+
n({ type: Boolean, reflect: true })
|
|
326
|
+
], ListItem.prototype, "actionable", void 0);
|
|
297
327
|
__decorate([
|
|
298
328
|
e$1('#list-item')
|
|
299
329
|
], ListItem.prototype, "itemElement", void 0);
|
|
300
330
|
|
|
331
|
+
var List_1;
|
|
301
332
|
/**
|
|
302
333
|
* @label List
|
|
303
334
|
* @tag wc-list
|
|
@@ -313,19 +344,159 @@ __decorate([
|
|
|
313
344
|
* Inbox
|
|
314
345
|
* <span slot="trailing">24</span>
|
|
315
346
|
* </wc-list-item>
|
|
347
|
+
* <wc-list-item>
|
|
348
|
+
* <wc-avatar slot="leading" name="Shivaji Varma"></wc-avatar>
|
|
349
|
+
* Shivaji Varma
|
|
350
|
+
* <span slot="supporting-text">Software Engineer</span>
|
|
351
|
+
* <span slot="trailing-supporting-text">7</span>
|
|
352
|
+
* <wc-icon slot="trailing" name="chevron_right"></wc-icon>
|
|
353
|
+
* </wc-list-item>
|
|
316
354
|
* </wc-list>
|
|
317
355
|
* ```
|
|
318
356
|
* @tags display
|
|
319
357
|
*/
|
|
320
|
-
let List = class List extends i$1 {
|
|
358
|
+
let List = List_1 = class List extends i$1 {
|
|
321
359
|
constructor() {
|
|
322
360
|
super(...arguments);
|
|
323
361
|
/** */
|
|
324
362
|
this.variant = 'standard';
|
|
363
|
+
/** Index of the currently active item within the clickable items list. */
|
|
364
|
+
this.activeIndex = -1;
|
|
365
|
+
// ── Handlers ──────────────────────────────────────────────────────────────
|
|
366
|
+
this._onKeyDown = (event) => {
|
|
367
|
+
if (!this._isEventFromThisList(event))
|
|
368
|
+
return;
|
|
369
|
+
const eventItem = this._clickableItemFromEvent(event);
|
|
370
|
+
if (eventItem) {
|
|
371
|
+
this._setActiveItem(eventItem);
|
|
372
|
+
}
|
|
373
|
+
switch (event.key) {
|
|
374
|
+
case 'ArrowDown':
|
|
375
|
+
event.preventDefault();
|
|
376
|
+
this._setActiveByOffset(1);
|
|
377
|
+
break;
|
|
378
|
+
case 'ArrowUp':
|
|
379
|
+
event.preventDefault();
|
|
380
|
+
this._setActiveByOffset(-1);
|
|
381
|
+
break;
|
|
382
|
+
case 'Home':
|
|
383
|
+
event.preventDefault();
|
|
384
|
+
this._setBoundaryActive(0);
|
|
385
|
+
break;
|
|
386
|
+
case 'End':
|
|
387
|
+
event.preventDefault();
|
|
388
|
+
this._setBoundaryActive(Math.max(this._clickableItems().length - 1, 0));
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
};
|
|
392
|
+
this._onClick = (event) => {
|
|
393
|
+
const item = this._clickableItemFromEvent(event);
|
|
394
|
+
if (!item)
|
|
395
|
+
return;
|
|
396
|
+
this._setActiveItem(item);
|
|
397
|
+
};
|
|
398
|
+
this._onSlotChange = () => {
|
|
399
|
+
this._syncRovingTabIndex();
|
|
400
|
+
};
|
|
325
401
|
}
|
|
326
402
|
connectedCallback() {
|
|
327
403
|
super.connectedCallback();
|
|
328
404
|
this.setAttribute('role', 'list');
|
|
405
|
+
this.addEventListener('keydown', this._onKeyDown);
|
|
406
|
+
this.addEventListener('click', this._onClick);
|
|
407
|
+
}
|
|
408
|
+
disconnectedCallback() {
|
|
409
|
+
this.removeEventListener('keydown', this._onKeyDown);
|
|
410
|
+
this.removeEventListener('click', this._onClick);
|
|
411
|
+
super.disconnectedCallback();
|
|
412
|
+
}
|
|
413
|
+
focus() {
|
|
414
|
+
const target = this._getActiveItem() ?? this._getFirstClickableItem();
|
|
415
|
+
target?.focus();
|
|
416
|
+
}
|
|
417
|
+
// ── Items ─────────────────────────────────────────────────────────────────
|
|
418
|
+
get items() {
|
|
419
|
+
const slot = this.shadowRoot?.querySelector('slot');
|
|
420
|
+
const elements = slot?.assignedElements({ flatten: true }) ?? [];
|
|
421
|
+
return elements.filter(el => el instanceof ListItem);
|
|
422
|
+
}
|
|
423
|
+
_clickableItems() {
|
|
424
|
+
return this.items.filter(item => item.isClickable());
|
|
425
|
+
}
|
|
426
|
+
// ── Roving tabindex ───────────────────────────────────────────────────────
|
|
427
|
+
_syncRovingTabIndex() {
|
|
428
|
+
const allItems = this.items;
|
|
429
|
+
const clickable = this._clickableItems();
|
|
430
|
+
for (const item of allItems) {
|
|
431
|
+
item.tabIndex = -1;
|
|
432
|
+
}
|
|
433
|
+
if (!clickable.length) {
|
|
434
|
+
this.activeIndex = -1;
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
if (this.activeIndex < 0 || this.activeIndex >= clickable.length) {
|
|
438
|
+
this.activeIndex = 0;
|
|
439
|
+
}
|
|
440
|
+
clickable[this.activeIndex].tabIndex = 0;
|
|
441
|
+
}
|
|
442
|
+
_setActiveByOffset(offset) {
|
|
443
|
+
const clickable = this._clickableItems();
|
|
444
|
+
if (!clickable.length)
|
|
445
|
+
return;
|
|
446
|
+
if (this.activeIndex < 0) {
|
|
447
|
+
this.activeIndex = 0;
|
|
448
|
+
}
|
|
449
|
+
else {
|
|
450
|
+
const count = clickable.length;
|
|
451
|
+
this.activeIndex = (this.activeIndex + offset + count) % count;
|
|
452
|
+
}
|
|
453
|
+
this._syncRovingTabIndex();
|
|
454
|
+
clickable[this.activeIndex]?.focus();
|
|
455
|
+
}
|
|
456
|
+
_setBoundaryActive(index) {
|
|
457
|
+
const clickable = this._clickableItems();
|
|
458
|
+
if (!clickable.length)
|
|
459
|
+
return;
|
|
460
|
+
this.activeIndex = index;
|
|
461
|
+
this._syncRovingTabIndex();
|
|
462
|
+
clickable[this.activeIndex]?.focus();
|
|
463
|
+
}
|
|
464
|
+
_getActiveItem() {
|
|
465
|
+
const clickable = this._clickableItems();
|
|
466
|
+
if (!clickable.length || this.activeIndex < 0)
|
|
467
|
+
return null;
|
|
468
|
+
return clickable[this.activeIndex] ?? null;
|
|
469
|
+
}
|
|
470
|
+
_getFirstClickableItem() {
|
|
471
|
+
return this._clickableItems()[0] ?? null;
|
|
472
|
+
}
|
|
473
|
+
// ── Event helpers ─────────────────────────────────────────────────────────
|
|
474
|
+
_isEventFromThisList(event) {
|
|
475
|
+
const path = event.composedPath();
|
|
476
|
+
const sourceList = path.find(target => target instanceof List_1);
|
|
477
|
+
return sourceList === this;
|
|
478
|
+
}
|
|
479
|
+
_clickableItemFromEvent(event) {
|
|
480
|
+
if (!this._isEventFromThisList(event))
|
|
481
|
+
return null;
|
|
482
|
+
const path = event.composedPath();
|
|
483
|
+
const clickable = this._clickableItems();
|
|
484
|
+
for (const target of path) {
|
|
485
|
+
if (target instanceof ListItem) {
|
|
486
|
+
const owned = clickable.find(item => item === target);
|
|
487
|
+
if (owned)
|
|
488
|
+
return owned;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
return null;
|
|
492
|
+
}
|
|
493
|
+
_setActiveItem(item) {
|
|
494
|
+
const clickable = this._clickableItems();
|
|
495
|
+
const nextIndex = clickable.indexOf(item);
|
|
496
|
+
if (nextIndex < 0)
|
|
497
|
+
return;
|
|
498
|
+
this.activeIndex = nextIndex;
|
|
499
|
+
this._syncRovingTabIndex();
|
|
329
500
|
}
|
|
330
501
|
render() {
|
|
331
502
|
const cssClasses = {
|
|
@@ -334,7 +505,7 @@ let List = class List extends i$1 {
|
|
|
334
505
|
};
|
|
335
506
|
return b `
|
|
336
507
|
<div class=${e(cssClasses)}>
|
|
337
|
-
<slot></slot>
|
|
508
|
+
<slot @slotchange=${this._onSlotChange}></slot>
|
|
338
509
|
</div>
|
|
339
510
|
`;
|
|
340
511
|
}
|
|
@@ -344,9 +515,12 @@ List.Item = ListItem;
|
|
|
344
515
|
__decorate([
|
|
345
516
|
n({ type: String, reflect: true })
|
|
346
517
|
], List.prototype, "variant", void 0);
|
|
347
|
-
|
|
518
|
+
__decorate([
|
|
519
|
+
r()
|
|
520
|
+
], List.prototype, "activeIndex", void 0);
|
|
521
|
+
List = List_1 = __decorate([
|
|
348
522
|
IndividualComponent
|
|
349
523
|
], List);
|
|
350
524
|
|
|
351
525
|
export { List as L, ListItem as a };
|
|
352
|
-
//# sourceMappingURL=list-
|
|
526
|
+
//# sourceMappingURL=list-H0itjRte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-H0itjRte.js","sources":["../../src/list/list-item.ts","../../src/list/list.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './list-item.scss';\nimport { isLink } from '@/__internal/utils/is-link.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '@/__internal/utils/dispatch-event-utils.js';\nimport { ARIAMixinStrict } from '@/__internal/aria/aria.js';\nimport { mixinBaseButton } from '@/button/base-button/base-button.js';\nimport { mixinHyperlink } from '@/__internal/mixins/hyperlink.js';\nimport { mixinDelegatesAria } from '@/__internal/aria/delegate.js';\nimport { mixinElementInternals } from '@/__internal/mixins/element-internals.js';\n\n/**\n * @label List Item\n * @tag wc-list-item\n * @rawTag list-item\n *\n * @summary A list item with leading, trailing and content slots.\n *\n * @example\n * ```html\n * <wc-list-item selected>\n * <wc-icon slot=\"leading\" name=\"person\"></wc-icon>\n * Profile\n * <wc-icon slot=\"trailing\" name=\"chevron_right\"></wc-icon>\n * </wc-list-item>\n * ```\n * @tags display\n */\nexport class ListItem extends mixinBaseButton(\n mixinHyperlink(mixinDelegatesAria(mixinElementInternals(LitElement))),\n) {\n // ── Static ───────────────────────────────────────────────────────────────\n\n /** @nocollapse */ // eslint-disable-next-line\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static styles = [styles];\n\n @property({ type: Boolean, reflect: true }) selected = false;\n\n /** When true, renders the list-item in a loading skeleton state. */\n @property({ type: Boolean, reflect: true }) skeleton: boolean = false;\n\n @property({ type: Boolean, reflect: true })\n actionable: boolean = false;\n\n @query('#list-item') readonly itemElement!: HTMLElement | null;\n\n constructor() {\n super();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n }\n\n connectedCallback() {\n // eslint-disable-next-line wc/guard-super-call\n super.connectedCallback();\n\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n }\n\n override focus() {\n this.itemElement?.focus();\n }\n\n override blur() {\n this.itemElement?.blur();\n }\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.softDisabled || (this.disabled && this.href) || this.skeleton) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.itemElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.itemElement);\n };\n\n private __hasNamedSlot(...names: string[]) {\n return names.some(name =>\n Array.from(this.children).some(\n child => child.getAttribute('slot') === name,\n ),\n );\n }\n\n isClickable() {\n return this.actionable || isLink(this);\n }\n\n render() {\n const isElementLink = isLink(this);\n const clickable = this.isClickable();\n\n const cssClasses = {\n 'list-item': true,\n 'native-button': !isElementLink,\n 'native-link': isElementLink,\n };\n\n // Needed for closure conformance\n const { ariaLabel } = this as ARIAMixinStrict;\n\n if (!clickable) {\n return html`\n <div\n id=\"list-item\"\n class=${classMap(cssClasses)}\n aria-label=\"${ariaLabel || nothing}\"\n >\n ${this.renderContent(clickable)}\n </div>\n `;\n }\n\n if (!isElementLink) {\n return html`\n <button\n id=\"list-item\"\n class=${classMap(cssClasses)}\n ?disabled=${this.disabled}\n aria-label=\"${ariaLabel || nothing}\"\n ?aria-disabled=${this.softDisabled}\n @click=${this.__dispatchClick}\n >\n ${this.renderContent(clickable)}\n </button>\n `;\n }\n\n return html`\n <a\n id=\"list-item\"\n class=${classMap(cssClasses)}\n href=${this.href}\n target=${this.target}\n ?rel=${this.rel}\n ?download=${this.download}\n tabindex=${this.disabled ? '-1' : '0'}\n aria-disabled=${String(this.disabled || this.softDisabled)}\n @click=${this.__dispatchClick}\n >\n ${this.renderContent(clickable)}\n </a>\n `;\n }\n\n renderContent(clickable: boolean) {\n const hasLeading = this.__hasNamedSlot('leading');\n const hasTrailingSupportingText = this.__hasNamedSlot(\n 'trailing-supporting-text',\n );\n const hasTrailing = this.__hasNamedSlot('trailing');\n\n return html`\n <wc-item class=\"list-item-content\" ?inert=${clickable}>\n ${clickable\n ? html`<wc-focus-ring\n class=\"focus-ring\"\n for=\"list-item\"\n slot=\"container\"\n ></wc-focus-ring>\n <div class=\"background\" slot=\"container\"></div>\n <wc-ripple\n class=\"ripple\"\n for=\"list-item\"\n slot=\"container\"\n ></wc-ripple>\n <wc-skeleton class=\"skeleton\" slot=\"container\"></wc-skeleton> `\n : null}\n\n <slot name=\"leading\" slot=\"start\" ?hidden=${!hasLeading}></slot>\n <slot name=\"overline\" slot=\"overline\"></slot>\n <slot name=\"headline\" slot=\"headline\"></slot>\n <slot></slot>\n <slot name=\"supporting-text\" slot=\"supporting-text\"></slot>\n\n <slot\n name=\"trailing-supporting-text\"\n slot=\"trailing-supporting-text\"\n ?hidden=${!hasTrailingSupportingText}\n ></slot>\n <slot name=\"trailing\" slot=\"end\" ?hidden=${!hasTrailing}></slot>\n </wc-item>\n `;\n }\n}\n","import { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './list.scss';\nimport { ListItem } from './list-item.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label List\n * @tag wc-list\n * @rawTag list\n *\n * @summary A list container for one or more list items.\n *\n * @example\n * ```html\n * <wc-list>\n * <wc-list-item>\n * <wc-icon slot=\"leading\" name=\"inbox\"></wc-icon>\n * Inbox\n * <span slot=\"trailing\">24</span>\n * </wc-list-item>\n * <wc-list-item>\n * <wc-avatar slot=\"leading\" name=\"Shivaji Varma\"></wc-avatar>\n * Shivaji Varma\n * <span slot=\"supporting-text\">Software Engineer</span>\n * <span slot=\"trailing-supporting-text\">7</span>\n * <wc-icon slot=\"trailing\" name=\"chevron_right\"></wc-icon>\n * </wc-list-item>\n * </wc-list>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class List extends LitElement {\n static styles = [styles];\n\n static Item = ListItem;\n\n /** */\n @property({ type: String, reflect: true }) variant: 'standard' | 'segmented' =\n 'standard';\n\n /** Index of the currently active item within the clickable items list. */\n @state() private activeIndex = -1;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'list');\n this.addEventListener('keydown', this._onKeyDown);\n this.addEventListener('click', this._onClick);\n }\n\n disconnectedCallback() {\n this.removeEventListener('keydown', this._onKeyDown);\n this.removeEventListener('click', this._onClick);\n super.disconnectedCallback();\n }\n\n override focus() {\n const target = this._getActiveItem() ?? this._getFirstClickableItem();\n target?.focus();\n }\n\n // ── Items ─────────────────────────────────────────────────────────────────\n\n get items(): ListItem[] {\n const slot = this.shadowRoot?.querySelector('slot');\n const elements = slot?.assignedElements({ flatten: true }) ?? [];\n return elements.filter(el => el instanceof ListItem) as ListItem[];\n }\n\n private _clickableItems() {\n return this.items.filter(item => item.isClickable());\n }\n\n // ── Roving tabindex ───────────────────────────────────────────────────────\n\n private _syncRovingTabIndex() {\n const allItems = this.items;\n const clickable = this._clickableItems();\n\n for (const item of allItems) {\n item.tabIndex = -1;\n }\n\n if (!clickable.length) {\n this.activeIndex = -1;\n return;\n }\n\n if (this.activeIndex < 0 || this.activeIndex >= clickable.length) {\n this.activeIndex = 0;\n }\n\n clickable[this.activeIndex].tabIndex = 0;\n }\n\n private _setActiveByOffset(offset: 1 | -1) {\n const clickable = this._clickableItems();\n if (!clickable.length) return;\n\n if (this.activeIndex < 0) {\n this.activeIndex = 0;\n } else {\n const count = clickable.length;\n this.activeIndex = (this.activeIndex + offset + count) % count;\n }\n\n this._syncRovingTabIndex();\n clickable[this.activeIndex]?.focus();\n }\n\n private _setBoundaryActive(index: number) {\n const clickable = this._clickableItems();\n if (!clickable.length) return;\n\n this.activeIndex = index;\n this._syncRovingTabIndex();\n clickable[this.activeIndex]?.focus();\n }\n\n private _getActiveItem() {\n const clickable = this._clickableItems();\n if (!clickable.length || this.activeIndex < 0) return null;\n return clickable[this.activeIndex] ?? null;\n }\n\n private _getFirstClickableItem() {\n return this._clickableItems()[0] ?? null;\n }\n\n // ── Event helpers ─────────────────────────────────────────────────────────\n\n private _isEventFromThisList(event: Event) {\n const path = event.composedPath();\n const sourceList = path.find(target => target instanceof List);\n return sourceList === this;\n }\n\n private _clickableItemFromEvent(event: Event) {\n if (!this._isEventFromThisList(event)) return null;\n const path = event.composedPath();\n const clickable = this._clickableItems();\n for (const target of path) {\n if (target instanceof ListItem) {\n const owned = clickable.find(item => item === target);\n if (owned) return owned;\n }\n }\n return null;\n }\n\n private _setActiveItem(item: ListItem) {\n const clickable = this._clickableItems();\n const nextIndex = clickable.indexOf(item);\n if (nextIndex < 0) return;\n this.activeIndex = nextIndex;\n this._syncRovingTabIndex();\n }\n\n // ── Handlers ──────────────────────────────────────────────────────────────\n\n private _onKeyDown = (event: KeyboardEvent) => {\n if (!this._isEventFromThisList(event)) return;\n\n const eventItem = this._clickableItemFromEvent(event);\n if (eventItem) {\n this._setActiveItem(eventItem);\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this._setActiveByOffset(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this._setActiveByOffset(-1);\n break;\n case 'Home':\n event.preventDefault();\n this._setBoundaryActive(0);\n break;\n case 'End':\n event.preventDefault();\n this._setBoundaryActive(Math.max(this._clickableItems().length - 1, 0));\n break;\n default:\n break;\n }\n };\n\n private _onClick = (event: Event) => {\n const item = this._clickableItemFromEvent(event);\n if (!item) return;\n this._setActiveItem(item);\n };\n\n private _onSlotChange = () => {\n this._syncRovingTabIndex();\n };\n\n render() {\n const cssClasses = {\n list: true,\n [`variant-${this.variant}`]: true,\n };\n\n return html`\n <div class=${classMap(cssClasses)}>\n <slot @slotchange=${this._onSlotChange}></slot>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","nothing","styles","property","query","state"],"mappings":"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"}
|
package/dist/list.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import './IndividualComponent-Bdwyrvd6.js';
|
|
2
2
|
import './property-B49QQ8pS.js';
|
|
3
|
+
import './state-DkTK9EGF.js';
|
|
3
4
|
import './class-map-DG7CA1et.js';
|
|
4
|
-
export { L as List } from './list-
|
|
5
|
+
export { L as List } from './list-H0itjRte.js';
|
|
5
6
|
import './directive-ZPhl09Yt.js';
|
|
6
7
|
import './query-CHb9Ft_d.js';
|
|
7
8
|
import './base-Cl6v8-BZ.js';
|
|
8
|
-
import './if-defined-BXZpRQ4P.js';
|
|
9
9
|
import './is-link-Dk2OV3PM.js';
|
|
10
10
|
import './dispatch-event-utils-CuEqjlPT.js';
|
|
11
11
|
import './hyperlink-DLvb6MXE.js';
|
package/dist/loader.js
CHANGED
|
@@ -13,7 +13,7 @@ import { SegmentedButton } from './segmented-button.js';
|
|
|
13
13
|
import { SegmentedButtonGroup } from './segmented-button-group.js';
|
|
14
14
|
import { SplitButton } from './split-button.js';
|
|
15
15
|
import { DropdownButton } from './dropdown-button.js';
|
|
16
|
-
import { S as Select, d as SidebarSubMenu, c as SidebarMenuItem, b as SidebarMenu, e as Switch, g as TimePicker, D as DatePicker, f as Textarea, N as NumberField, U as UrlField, I as Input, a as CircularProgress, L as LinearProgress, T as Tag, C as ChipSet } from './select-
|
|
16
|
+
import { S as Select, d as SidebarSubMenu, c as SidebarMenuItem, b as SidebarMenu, e as Switch, g as TimePicker, D as DatePicker, f as Textarea, N as NumberField, U as UrlField, I as Input, a as CircularProgress, L as LinearProgress, T as Tag, C as ChipSet } from './select-CspawZ18.js';
|
|
17
17
|
import { Field } from './field.js';
|
|
18
18
|
import { Checkbox } from './checkbox.js';
|
|
19
19
|
import { Radio } from './radio.js';
|
|
@@ -21,7 +21,7 @@ import { Menu } from './menu.js';
|
|
|
21
21
|
import { MenuItem } from './menu-item.js';
|
|
22
22
|
import { SubMenu } from './sub-menu.js';
|
|
23
23
|
import { Item } from './item.js';
|
|
24
|
-
import { a as ListItem, L as List } from './list-
|
|
24
|
+
import { a as ListItem, L as List } from './list-H0itjRte.js';
|
|
25
25
|
import { Accordion } from './accordion.js';
|
|
26
26
|
import { Link } from './link.js';
|
|
27
27
|
import { Chip } from './chip.js';
|
|
@@ -41,6 +41,7 @@ import { Tabs } from './tabs.js';
|
|
|
41
41
|
import { Tab } from './tab.js';
|
|
42
42
|
import { TabPanel } from './tab-panel.js';
|
|
43
43
|
import { Slider } from './slider.js';
|
|
44
|
+
import { ColorPicker } from './color-picker.js';
|
|
44
45
|
import { Table } from './table.js';
|
|
45
46
|
import { Pagination } from './pagination.js';
|
|
46
47
|
import { Card } from './card.js';
|
|
@@ -415,6 +416,9 @@ const loaderConfig = {
|
|
|
415
416
|
'wc-slider': {
|
|
416
417
|
CustomElementClass: Slider,
|
|
417
418
|
},
|
|
419
|
+
'wc-color-picker': {
|
|
420
|
+
CustomElementClass: ColorPicker,
|
|
421
|
+
},
|
|
418
422
|
'wc-table': {
|
|
419
423
|
CustomElementClass: Table,
|
|
420
424
|
},
|