@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.
Files changed (94) hide show
  1. package/dist/assets/components.css.map +1 -1
  2. package/dist/assets/styles.css.map +1 -1
  3. package/dist/babel-DBsfpl3B.js +18 -0
  4. package/dist/babel-DBsfpl3B.js.map +1 -0
  5. package/dist/button-group.js +4 -4
  6. package/dist/button-group.js.map +1 -1
  7. package/dist/button.js +5 -5
  8. package/dist/card.js +22 -7
  9. package/dist/card.js.map +1 -1
  10. package/dist/code-highlighter.js +74 -11212
  11. package/dist/code-highlighter.js.map +1 -1
  12. package/dist/color-picker.js +701 -0
  13. package/dist/color-picker.js.map +1 -0
  14. package/dist/custom-elements-jsdocs.json +96 -3
  15. package/dist/custom-elements.json +1202 -576
  16. package/dist/estree-C2LDzX4U.js +47 -0
  17. package/dist/estree-C2LDzX4U.js.map +1 -0
  18. package/dist/fab.js +1 -3
  19. package/dist/fab.js.map +1 -1
  20. package/dist/html-D22sQuVy.js +27 -0
  21. package/dist/html-D22sQuVy.js.map +1 -0
  22. package/dist/icon-button.js +5 -5
  23. package/dist/index-_g_oLekF.js +14095 -0
  24. package/dist/index-_g_oLekF.js.map +1 -0
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/item.js +3 -2
  28. package/dist/item.js.map +1 -1
  29. package/dist/{list-D6JLh1uh.js → list-H0itjRte.js} +194 -20
  30. package/dist/list-H0itjRte.js.map +1 -0
  31. package/dist/list.js +2 -2
  32. package/dist/loader.js +6 -2
  33. package/dist/loader.js.map +1 -1
  34. package/dist/menu-item.js +103 -33
  35. package/dist/menu-item.js.map +1 -1
  36. package/dist/menu.js +4 -18
  37. package/dist/menu.js.map +1 -1
  38. package/dist/navigation-rail-item.js +21 -6
  39. package/dist/navigation-rail-item.js.map +1 -1
  40. package/dist/navigation-rail.js +22 -20
  41. package/dist/navigation-rail.js.map +1 -1
  42. package/dist/pierre-dark-DFWl0m-C.js +4 -0
  43. package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
  44. package/dist/pierre-light-BEkAPImt.js +4 -0
  45. package/dist/pierre-light-BEkAPImt.js.map +1 -0
  46. package/dist/postcss-BhbitHaI.js +64 -0
  47. package/dist/postcss-BhbitHaI.js.map +1 -0
  48. package/dist/{select-Dwtk0RIU.js → select-CspawZ18.js} +13 -6
  49. package/dist/{select-Dwtk0RIU.js.map → select-CspawZ18.js.map} +1 -1
  50. package/dist/side-sheet.js +1 -1
  51. package/dist/side-sheet.js.map +1 -1
  52. package/dist/src/button/button-group/button-group.d.ts +4 -4
  53. package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
  54. package/dist/src/color-picker/color-picker.d.ts +85 -0
  55. package/dist/src/color-picker/index.d.ts +1 -0
  56. package/dist/src/index.d.ts +1 -0
  57. package/dist/src/item/item.d.ts +0 -1
  58. package/dist/src/list/list-item.d.ts +3 -1
  59. package/dist/src/list/list.d.ts +24 -0
  60. package/dist/src/menu/menu-item/menu-item.d.ts +1 -2
  61. package/dist/standalone-Ccq0tWwA.js +32 -0
  62. package/dist/standalone-Ccq0tWwA.js.map +1 -0
  63. package/dist/sub-menu.js +6 -1
  64. package/dist/sub-menu.js.map +1 -1
  65. package/dist/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +1 -1
  67. package/readme.md +3 -3
  68. package/scss/mixin.scss +1 -0
  69. package/src/button/button/button-base.scss +2 -1
  70. package/src/button/button/button-layers.scss +2 -6
  71. package/src/button/button-group/button-group.ts +4 -4
  72. package/src/button/fab/fab.ts +0 -4
  73. package/src/card/card.scss +18 -5
  74. package/src/code-highlighter/code-highlighter.ts +94 -39
  75. package/src/color-picker/color-picker.scss +217 -0
  76. package/src/color-picker/color-picker.ts +478 -0
  77. package/src/color-picker/index.ts +1 -0
  78. package/src/index.ts +1 -0
  79. package/src/item/item.scss +3 -1
  80. package/src/item/item.ts +0 -1
  81. package/src/list/list-item.scss +5 -1
  82. package/src/list/list-item.ts +40 -14
  83. package/src/list/list.ts +164 -2
  84. package/src/loader.ts +4 -0
  85. package/src/menu/menu/menu.scss +4 -18
  86. package/src/menu/menu/menu.ts +0 -1
  87. package/src/menu/menu-item/menu-item.scss +73 -43
  88. package/src/menu/menu-item/menu-item.ts +60 -27
  89. package/src/menu/sub-menu/sub-menu.scss +5 -1
  90. package/src/navigation-rail/navigation-rail-item.scss +25 -8
  91. package/src/navigation-rail/navigation-rail.scss +25 -22
  92. package/src/side-sheet/side-sheet.ts +1 -1
  93. package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
  94. 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-Dwtk0RIU.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-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-D6JLh1uh.js';
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, var(--color-on-surface));
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=\"overline\">Settings</span>\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;;;;;;;;;;;;;;;;;;;;;AAqBG;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
+ {"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=${o(this.rel)}
244
- download=${o(this.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
- <wc-focus-ring
260
- class="focus-ring"
261
- for="list-item"
262
- slot="container"
263
- ></wc-focus-ring>
264
- <div class="background" slot="container"></div>
265
- <wc-ripple class="ripple" for="list-item" slot="container"></wc-ripple>
266
- <wc-skeleton class="skeleton" slot="container"></wc-skeleton>
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
- List = __decorate([
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-D6JLh1uh.js.map
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;;;;;;;;;;;;AAgBG;AACG,MAAO,QAAS,SAAQ,eAAe,CAC3C,cAAc,CAAC,kBAAkB,CAAC,qBAAqB,CAACA,GAAU,CAAC,CAAC,CAAC,CACtE,CAAA;AAqBC,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAXmC,IAAA,CAAA,QAAQ,GAAG,KAAK;;QAGhB,IAAA,CAAA,QAAQ,GAAY,KAAK;QAGrE,IAAA,CAAA,UAAU,GAAY,KAAK;AA0B3B,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,KAAiC,KAAI;;;;AAItD,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACtE,KAAK,CAAC,wBAAwB,EAAE;gBAChC,KAAK,CAAC,cAAc,EAAE;gBACtB;YACF;YAEA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClD;YACF;YAEA,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC;AAC3C,QAAA,CAAC;QApCC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC;IAClE;IAEA,iBAAiB,GAAA;;QAEf,KAAK,CAAC,iBAAiB,EAAE;QAEzB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC;QACvC;IACF;IAES,KAAK,GAAA;AACZ,QAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE;IAC3B;IAES,IAAI,GAAA;AACX,QAAA,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE;IAC1B;IAoBQ,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;IAEA,WAAW,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC;IACxC;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE;AAEpC,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,WAAW,EAAE,IAAI;YACjB,eAAe,EAAE,CAAC,aAAa;AAC/B,YAAA,aAAa,EAAE,aAAa;SAC7B;;AAGD,QAAA,MAAM,EAAE,SAAS,EAAE,GAAG,IAAuB;QAE7C,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAOC,CAAI,CAAA;;;kBAGCC,CAAQ,CAAC,UAAU,CAAC;AACd,sBAAA,EAAA,SAAS,IAAIC,CAAO,CAAA;;AAEhC,UAAA,EAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;;OAElC;QACH;QAEA,IAAI,CAAC,aAAa,EAAE;AAClB,YAAA,OAAOF,CAAI,CAAA;;;kBAGCC,CAAQ,CAAC,UAAU,CAAC;AAChB,oBAAA,EAAA,IAAI,CAAC,QAAQ;AACX,sBAAA,EAAA,SAAS,IAAIC,CAAO,CAAA;AACjB,yBAAA,EAAA,IAAI,CAAC,YAAY;AACzB,iBAAA,EAAA,IAAI,CAAC,eAAe;;AAE3B,UAAA,EAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;;OAElC;QACH;AAEA,QAAA,OAAOF,CAAI,CAAA;;;gBAGCC,CAAQ,CAAC,UAAU,CAAC;AACrB,aAAA,EAAA,IAAI,CAAC,IAAI;AACP,eAAA,EAAA,IAAI,CAAC,MAAM;AACb,aAAA,EAAA,IAAI,CAAC,GAAG;AACH,kBAAA,EAAA,IAAI,CAAC,QAAQ;mBACd,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG;wBACrB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC;AACjD,eAAA,EAAA,IAAI,CAAC,eAAe;;AAE3B,QAAA,EAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;;KAElC;IACH;AAEA,IAAA,aAAa,CAAC,SAAkB,EAAA;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QACjD,MAAM,yBAAyB,GAAG,IAAI,CAAC,cAAc,CACnD,0BAA0B,CAC3B;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;AAEnD,QAAA,OAAOD,CAAI,CAAA;kDACmC,SAAS,CAAA;UACjD;cACEA,CAAI,CAAA,CAAA;;;;;;;;;;;AAW6D,4EAAA;AACnE,cAAE,IAAI;;AAEoC,kDAAA,EAAA,CAAC,UAAU,CAAA;;;;;;;;;AAS3C,kBAAA,EAAA,CAAC,yBAAyB;;AAEK,iDAAA,EAAA,CAAC,WAAW,CAAA;;KAE1D;IACH;;AAvKA;AAEA;AACgB,QAAA,CAAA,iBAAiB,GAAmB;AAClD,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,cAAc,EAAE,IAAI;AACrB,CAHgC;AAK1B,QAAA,CAAA,MAAM,GAAG,CAACG,QAAM,CAAC;AAEoB,UAAA,CAAA;IAA3CC,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAmB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAGjB,UAAA,CAAA;IAA3CA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAA4B,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAGtE,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACd,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAEE,UAAA,CAAA;IAA7BC,GAAK,CAAC,YAAY;AAA4C,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;;;AC/CjE;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AAEI,IAAM,IAAI,GAAA,MAAA,GAAV,MAAM,IAAK,SAAQN,GAAU,CAAA;AAA7B,IAAA,WAAA,GAAA;;;QAMsC,IAAA,CAAA,OAAO,GAChD,UAAU;;QAGK,IAAA,CAAA,WAAW,GAAG,EAAE;;AAuHzB,QAAA,IAAA,CAAA,UAAU,GAAG,CAAC,KAAoB,KAAI;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;gBAAE;YAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;YACrD,IAAI,SAAS,EAAE;AACb,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;YAChC;AAEA,YAAA,QAAQ,KAAK,CAAC,GAAG;AACf,gBAAA,KAAK,WAAW;oBACd,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1B;AACF,gBAAA,KAAK,SAAS;oBACZ,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;oBAC3B;AACF,gBAAA,KAAK,MAAM;oBACT,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;oBAC1B;AACF,gBAAA,KAAK,KAAK;oBACR,KAAK,CAAC,cAAc,EAAE;AACtB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvE;;AAIN,QAAA,CAAC;AAEO,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,KAAY,KAAI;YAClC,MAAM,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,IAAI;gBAAE;AACX,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAC3B,QAAA,CAAC;QAEO,IAAA,CAAA,aAAa,GAAG,MAAK;YAC3B,IAAI,CAAC,mBAAmB,EAAE;AAC5B,QAAA,CAAC;IAcH;IAzKE,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC/C;IAEA,oBAAoB,GAAA;QAClB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC;QACpD,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChD,KAAK,CAAC,oBAAoB,EAAE;IAC9B;IAES,KAAK,GAAA;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE;QACrE,MAAM,EAAE,KAAK,EAAE;IACjB;;AAIA,IAAA,IAAI,KAAK,GAAA;QACP,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACnD,QAAA,MAAM,QAAQ,GAAG,IAAI,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE;AAChE,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,QAAQ,CAAe;IACpE;IAEQ,eAAe,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;IACtD;;IAIQ,mBAAmB,GAAA;AACzB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK;AAC3B,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AAExC,QAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;QACpB;AAEA,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;YACrB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,MAAM,EAAE;AAChE,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACtB;QAEA,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,CAAC;IAC1C;AAEQ,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACvC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC;QACtB;aAAO;AACL,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM;AAC9B,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,KAAK,IAAI,KAAK;QAChE;QAEA,IAAI,CAAC,mBAAmB,EAAE;QAC1B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE;IACtC;AAEQ,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE;AAEvB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK;QACxB,IAAI,CAAC,mBAAmB,EAAE;QAC1B,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE;IACtC;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC;AAAE,YAAA,OAAO,IAAI;QAC1D,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI;IAC5C;IAEQ,sBAAsB,GAAA;QAC5B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;IAC1C;;AAIQ,IAAA,oBAAoB,CAAC,KAAY,EAAA;AACvC,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AACjC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,YAAY,MAAI,CAAC;QAC9D,OAAO,UAAU,KAAK,IAAI;IAC5B;AAEQ,IAAA,uBAAuB,CAAC,KAAY,EAAA;AAC1C,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI;AAClD,QAAA,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE;AACjC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;AACxC,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE;AACzB,YAAA,IAAI,MAAM,YAAY,QAAQ,EAAE;AAC9B,gBAAA,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC;AACrD,gBAAA,IAAI,KAAK;AAAE,oBAAA,OAAO,KAAK;YACzB;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,cAAc,CAAC,IAAc,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE;QACxC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC,IAAI,SAAS,GAAG,CAAC;YAAE;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,SAAS;QAC5B,IAAI,CAAC,mBAAmB,EAAE;IAC5B;IA4CA,MAAM,GAAA;AACJ,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;SAClC;AAED,QAAA,OAAOC,CAAI,CAAA;mBACIC,CAAQ,CAAC,UAAU,CAAC,CAAA;AACX,0BAAA,EAAA,IAAI,CAAC,aAAa,CAAA;;KAEzC;IACH;;AAnLO,IAAA,CAAA,MAAM,GAAG,CAACE,UAAM,CAAC;AAEjB,IAAA,CAAA,IAAI,GAAG,QAAH;AAGgC,UAAA,CAAA;IAA1CC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAGI,UAAA,CAAA;AAAhB,IAAAE,CAAK;AAA4B,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAVvB,IAAI,GAAA,MAAA,GAAA,UAAA,CAAA;IADhB;AACY,CAAA,EAAA,IAAI,CAqLhB;;;;"}
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-D6JLh1uh.js';
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-Dwtk0RIU.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-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-D6JLh1uh.js';
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
  },