@redvars/peacock 3.2.10 → 3.3.1

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 (242) hide show
  1. package/dist/{PeacockComponent-CxJc63xj.js → IndividualComponent-tDnXrOLV.js} +3 -3
  2. package/dist/IndividualComponent-tDnXrOLV.js.map +1 -0
  3. package/dist/assets/components.css +1 -1
  4. package/dist/assets/components.css.map +1 -1
  5. package/dist/assets/styles.css +1 -1
  6. package/dist/assets/styles.css.map +1 -1
  7. package/dist/button-group-DA7xoziD.js +292 -0
  8. package/dist/button-group-DA7xoziD.js.map +1 -0
  9. package/dist/button-group.js +6 -107
  10. package/dist/button-group.js.map +1 -1
  11. package/dist/{button-DaL4va7Q.js → button-trIfcqC7.js} +21 -35
  12. package/dist/button-trIfcqC7.js.map +1 -0
  13. package/dist/button.js +5 -5
  14. package/dist/chart-donut.js +307 -0
  15. package/dist/chart-donut.js.map +1 -0
  16. package/dist/chart-doughnut.js +307 -0
  17. package/dist/chart-doughnut.js.map +1 -0
  18. package/dist/chart-pie.js +259 -0
  19. package/dist/chart-pie.js.map +1 -0
  20. package/dist/{class-map-BvQRv7eW.js → class-map-hJdvjl-W.js} +9 -3
  21. package/dist/class-map-hJdvjl-W.js.map +1 -0
  22. package/dist/clock.js +5 -6
  23. package/dist/clock.js.map +1 -1
  24. package/dist/code-editor.js +38 -25
  25. package/dist/code-editor.js.map +1 -1
  26. package/dist/code-highlighter.js +10 -14
  27. package/dist/code-highlighter.js.map +1 -1
  28. package/dist/custom-elements-jsdocs.json +8144 -3654
  29. package/dist/custom-elements.json +7925 -3901
  30. package/dist/{dispatch-event-utils-vbdiOSeC.js → dispatch-event-utils-B4odODQf.js} +2 -15
  31. package/dist/dispatch-event-utils-B4odODQf.js.map +1 -0
  32. package/dist/index.js +13 -10
  33. package/dist/index.js.map +1 -1
  34. package/dist/number-counter.js +12 -10
  35. package/dist/number-counter.js.map +1 -1
  36. package/dist/{observe-theme-change-NneLARW8.js → observe-theme-change-BISF-Gl5.js} +2 -2
  37. package/dist/{observe-theme-change-NneLARW8.js.map → observe-theme-change-BISF-Gl5.js.map} +1 -1
  38. package/dist/peacock-loader.js +94 -502
  39. package/dist/peacock-loader.js.map +1 -1
  40. package/dist/query-QBcUV-L_.js +15 -0
  41. package/dist/query-QBcUV-L_.js.map +1 -0
  42. package/dist/src/IndividualComponent.d.ts +1 -0
  43. package/dist/src/accordion/{accordion-item/accordion-item.d.ts → accordion-item.d.ts} +5 -4
  44. package/dist/src/accordion/{accordion/accordion.d.ts → accordion.d.ts} +6 -6
  45. package/dist/src/accordion/{accordion-item/index.d.ts → index.d.ts} +1 -0
  46. package/dist/src/avatar/avatar.d.ts +2 -2
  47. package/dist/src/badge/badge.d.ts +2 -2
  48. package/dist/src/breadcrumb/breadcrumb/breadcrumb.d.ts +9 -8
  49. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +4 -3
  50. package/dist/src/button/button/button.d.ts +2 -2
  51. package/dist/src/button/button-group/button-group.d.ts +9 -5
  52. package/dist/src/button/icon-button/icon-button.d.ts +2 -2
  53. package/dist/src/chart-donut/chart-donut.d.ts +53 -0
  54. package/dist/src/chart-donut/index.d.ts +1 -0
  55. package/dist/src/chart-doughnut/chart-doughnut.d.ts +53 -0
  56. package/dist/src/chart-doughnut/index.d.ts +1 -0
  57. package/dist/src/chart-pie/chart-pie.d.ts +50 -0
  58. package/dist/src/chart-pie/index.d.ts +1 -0
  59. package/dist/src/checkbox/checkbox.d.ts +3 -6
  60. package/dist/src/chip/chip/chip.d.ts +4 -4
  61. package/dist/src/chip/tag/tag.d.ts +3 -3
  62. package/dist/src/clock/clock.d.ts +3 -4
  63. package/dist/src/code-editor/code-editor.d.ts +13 -10
  64. package/dist/src/code-highlighter/code-highlighter.d.ts +4 -7
  65. package/dist/src/container/container.d.ts +6 -11
  66. package/dist/src/date-picker/date-picker.d.ts +3 -3
  67. package/dist/src/divider/divider.d.ts +2 -2
  68. package/dist/src/elevation/elevation.d.ts +2 -2
  69. package/dist/src/empty-state/empty-state.d.ts +9 -2
  70. package/dist/src/field/field.d.ts +17 -0
  71. package/dist/src/focus-ring/focus-ring.d.ts +1 -1
  72. package/dist/src/icon/icon.d.ts +2 -2
  73. package/dist/src/image/image.d.ts +4 -12
  74. package/dist/src/index.d.ts +9 -1
  75. package/dist/src/input/input.d.ts +2 -2
  76. package/dist/src/link/link.d.ts +4 -5
  77. package/dist/src/menu/index.d.ts +3 -0
  78. package/dist/src/menu/menu/MenuSurfaceController.d.ts +18 -0
  79. package/dist/src/menu/menu/menu.d.ts +66 -8
  80. package/dist/src/menu/menu-item/menu-item.d.ts +24 -5
  81. package/dist/src/menu/sub-menu/sub-menu.d.ts +36 -0
  82. package/dist/src/number-counter/number-counter.d.ts +9 -7
  83. package/dist/src/number-field/number-field.d.ts +1 -1
  84. package/dist/src/pagination/index.d.ts +1 -0
  85. package/dist/src/pagination/pagination.d.ts +38 -0
  86. package/dist/src/popover/PopoverController.d.ts +4 -1
  87. package/dist/src/popover/index.d.ts +1 -1
  88. package/dist/src/progress/circular-progress/circular-progress.d.ts +3 -3
  89. package/dist/src/progress/linear-progress/linear-progress.d.ts +3 -3
  90. package/dist/src/ripple/ripple.d.ts +60 -4
  91. package/dist/src/skeleton/skeleton.d.ts +6 -5
  92. package/dist/src/slider/index.d.ts +1 -0
  93. package/dist/src/slider/slider.d.ts +52 -0
  94. package/dist/src/spinner/spinner.d.ts +2 -2
  95. package/dist/src/switch/switch.d.ts +2 -2
  96. package/dist/src/table/index.d.ts +1 -0
  97. package/dist/src/table/table.d.ts +110 -0
  98. package/dist/src/tabs/index.d.ts +4 -0
  99. package/dist/src/tabs/tab-group.d.ts +45 -0
  100. package/dist/src/tabs/tab-panel.d.ts +22 -0
  101. package/dist/src/tabs/tab.d.ts +59 -0
  102. package/dist/src/tabs/tabs.d.ts +29 -0
  103. package/dist/src/textarea/textarea.d.ts +3 -3
  104. package/dist/src/time-picker/time-picker.d.ts +3 -3
  105. package/dist/src/{popover/tooltip → tooltip}/tooltip.d.ts +4 -3
  106. package/dist/src/tree-view/index.d.ts +2 -0
  107. package/dist/src/tree-view/tree-node.d.ts +69 -0
  108. package/dist/src/tree-view/tree-view.d.ts +40 -0
  109. package/dist/src/tree-view/wc-tree-view.d.ts +6 -0
  110. package/dist/{style-map-B8xgVEc9.js → style-map-CfNHEkQp.js} +2 -2
  111. package/dist/{style-map-B8xgVEc9.js.map → style-map-CfNHEkQp.js.map} +1 -1
  112. package/dist/test/icon.test.d.ts +1 -1
  113. package/dist/test/menu.test.d.ts +1 -0
  114. package/dist/test/sub-menu.test.d.ts +1 -0
  115. package/dist/test/tree-view.test.d.ts +1 -0
  116. package/dist/transform-DRuHEvar.js +3312 -0
  117. package/dist/transform-DRuHEvar.js.map +1 -0
  118. package/dist/{image-v3BujlY5.js → tree-view-CLolVlU0.js} +4088 -672
  119. package/dist/tree-view-CLolVlU0.js.map +1 -0
  120. package/dist/tsconfig.tsbuildinfo +1 -1
  121. package/dist/{unsafe-html-B-dV3Jps.js → unsafe-html-CV6Je6HL.js} +2 -2
  122. package/dist/{unsafe-html-B-dV3Jps.js.map → unsafe-html-CV6Je6HL.js.map} +1 -1
  123. package/package.json +3 -1
  124. package/readme.md +40 -40
  125. package/src/{PeacockComponent.ts → IndividualComponent.ts} +1 -1
  126. package/src/accordion/{accordion-item/accordion-item.scss → accordion-item.scss} +1 -1
  127. package/src/accordion/{accordion-item/accordion-item.ts → accordion-item.ts} +7 -6
  128. package/src/accordion/{accordion/accordion.scss → accordion.scss} +2 -1
  129. package/src/accordion/{accordion/accordion.ts → accordion.ts} +6 -6
  130. package/src/accordion/{accordion-item/index.ts → index.ts} +2 -0
  131. package/src/avatar/avatar.ts +2 -2
  132. package/src/badge/badge.ts +2 -2
  133. package/src/breadcrumb/breadcrumb/breadcrumb.ts +10 -8
  134. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +4 -3
  135. package/src/button/BaseButton.ts +1 -1
  136. package/src/button/button/button.scss +9 -23
  137. package/src/button/button/button.ts +8 -8
  138. package/src/button/button-group/button-group.ts +13 -7
  139. package/src/button/icon-button/icon-button.ts +8 -8
  140. package/src/chart-donut/chart-donut.scss +37 -0
  141. package/src/chart-donut/chart-donut.ts +287 -0
  142. package/src/chart-donut/demo/index.html +51 -0
  143. package/src/chart-donut/index.ts +1 -0
  144. package/src/chart-doughnut/chart-donut.scss +37 -0
  145. package/src/chart-doughnut/chart-doughnut.ts +287 -0
  146. package/src/chart-doughnut/demo/index.html +51 -0
  147. package/src/chart-doughnut/index.ts +1 -0
  148. package/src/chart-pie/chart-pie.scss +27 -0
  149. package/src/chart-pie/chart-pie.ts +256 -0
  150. package/src/chart-pie/demo/index.html +51 -0
  151. package/src/chart-pie/index.ts +1 -0
  152. package/src/checkbox/checkbox.ts +3 -6
  153. package/src/chip/chip/chip.ts +6 -6
  154. package/src/chip/tag/tag.ts +6 -6
  155. package/src/clock/clock.ts +5 -6
  156. package/src/code-editor/code-editor.scss +3 -5
  157. package/src/code-editor/code-editor.ts +32 -16
  158. package/src/code-highlighter/code-highlighter.ts +8 -11
  159. package/src/container/container.ts +6 -11
  160. package/src/date-picker/date-picker.ts +7 -7
  161. package/src/divider/divider.scss +2 -2
  162. package/src/divider/divider.ts +2 -2
  163. package/src/elevation/elevation.ts +2 -2
  164. package/src/empty-state/empty-state.scss +1 -1
  165. package/src/empty-state/empty-state.ts +10 -3
  166. package/src/field/field.scss +4 -4
  167. package/src/field/field.ts +19 -2
  168. package/src/focus-ring/focus-ring.scss +2 -1
  169. package/src/focus-ring/focus-ring.ts +1 -1
  170. package/src/icon/icon.ts +2 -2
  171. package/src/icon/p-icon.ts +1 -1
  172. package/src/image/image.ts +4 -12
  173. package/src/index.ts +11 -3
  174. package/src/input/input.ts +6 -6
  175. package/src/link/link.ts +4 -5
  176. package/src/menu/index.ts +3 -0
  177. package/src/menu/menu/MenuSurfaceController.ts +61 -0
  178. package/src/menu/{menu-list/menu-list.scss → menu/menu.scss} +19 -4
  179. package/src/menu/menu/menu.ts +401 -77
  180. package/src/menu/menu-item/menu-item-colors.scss +2 -2
  181. package/src/menu/menu-item/menu-item.ts +128 -37
  182. package/src/menu/sub-menu/sub-menu.scss +7 -0
  183. package/src/menu/sub-menu/sub-menu.ts +243 -0
  184. package/src/number-counter/demo/index.html +1 -1
  185. package/src/number-counter/number-counter.ts +11 -9
  186. package/src/number-field/number-field.ts +7 -7
  187. package/src/pagination/index.ts +1 -0
  188. package/src/pagination/pagination.scss +59 -0
  189. package/src/pagination/pagination.ts +135 -0
  190. package/src/peacock-loader.ts +92 -51
  191. package/src/popover/PopoverController.ts +13 -7
  192. package/src/popover/index.ts +1 -1
  193. package/src/progress/circular-progress/circular-progress.scss +1 -1
  194. package/src/progress/circular-progress/circular-progress.ts +3 -3
  195. package/src/progress/linear-progress/linear-progress.ts +3 -3
  196. package/src/ripple/ripple.ts +478 -94
  197. package/src/skeleton/skeleton.ts +6 -5
  198. package/src/slider/index.ts +1 -0
  199. package/src/slider/slider.scss +130 -0
  200. package/src/slider/slider.ts +178 -0
  201. package/src/spinner/spinner.ts +2 -2
  202. package/src/switch/switch.ts +4 -4
  203. package/src/table/index.ts +1 -0
  204. package/src/table/table.scss +174 -0
  205. package/src/table/table.ts +475 -0
  206. package/src/tabs/index.ts +4 -0
  207. package/src/tabs/tab-group.scss +10 -0
  208. package/src/tabs/tab-group.ts +143 -0
  209. package/src/tabs/tab-panel.scss +12 -0
  210. package/src/tabs/tab-panel.ts +29 -0
  211. package/src/tabs/tab.scss +157 -0
  212. package/src/tabs/tab.ts +243 -0
  213. package/src/tabs/tabs.scss +19 -0
  214. package/src/tabs/tabs.ts +66 -0
  215. package/src/text/text.css-component.scss +6 -3
  216. package/src/textarea/textarea.ts +5 -5
  217. package/src/time-picker/time-picker.ts +7 -7
  218. package/src/{popover/tooltip → tooltip}/tooltip.scss +17 -14
  219. package/src/{popover/tooltip → tooltip}/tooltip.ts +12 -10
  220. package/src/tree-view/demo/index.html +57 -0
  221. package/src/tree-view/index.ts +2 -0
  222. package/src/tree-view/tree-node.scss +101 -0
  223. package/src/tree-view/tree-node.ts +268 -0
  224. package/src/tree-view/tree-view.scss +12 -0
  225. package/src/tree-view/tree-view.ts +182 -0
  226. package/src/tree-view/wc-tree-view.ts +9 -0
  227. package/dist/PeacockComponent-CxJc63xj.js.map +0 -1
  228. package/dist/button-DaL4va7Q.js.map +0 -1
  229. package/dist/class-map-BvQRv7eW.js.map +0 -1
  230. package/dist/dispatch-event-utils-vbdiOSeC.js.map +0 -1
  231. package/dist/image-v3BujlY5.js.map +0 -1
  232. package/dist/src/PeacockComponent.d.ts +0 -1
  233. package/dist/src/accordion/accordion/index.d.ts +0 -1
  234. package/dist/src/avatar/p-avatar.d.ts +0 -3
  235. package/dist/src/badge/p-badge.d.ts +0 -3
  236. package/dist/src/menu/menu-list/menu-list.d.ts +0 -7
  237. package/dist/state-B09bP3XH.js +0 -10
  238. package/dist/state-B09bP3XH.js.map +0 -1
  239. package/src/accordion/accordion/index.ts +0 -1
  240. package/src/avatar/p-avatar.ts +0 -5
  241. package/src/badge/p-badge.ts +0 -5
  242. package/src/menu/menu-list/menu-list.ts +0 -33
@@ -12,7 +12,7 @@ import * as prettierPluginEstree from 'prettier/plugins/estree';
12
12
 
13
13
  import { BundledLanguage, codeToHtml, ShikiTransformer } from 'shiki';
14
14
 
15
- import PeacockComponent from 'src/PeacockComponent.js';
15
+ import IndividualComponent from 'src/IndividualComponent.js';
16
16
  import { copyToClipboard } from '../utils/copy-to-clipboard.js';
17
17
  import styles from './code-highlighter.scss';
18
18
 
@@ -25,25 +25,22 @@ const locale = {
25
25
 
26
26
  /**
27
27
  * @label Code Highlighter
28
- * @tag code-highlighter
28
+ * @tag wc-code-highlighter
29
29
  * @rawTag code-highlighter
30
30
  *
31
- * @summary Highlights code snippets with syntax highlighting and line numbers.
32
- * @overview
33
- * - CodeHighlighter is a component that provides syntax highlighting for code snippets.
34
- * - It supports various programming languages and can display line numbers for better readability.
31
+ * @summary A component that provides syntax highlighting for code snippets.
35
32
  *
36
33
  * @example
37
34
  * ```html
38
- * <code-highlighter language="javascript" style="height: 9rem"><pre><code>
35
+ * <wc-code-highlighter language="javascript" style="height: 9rem"><pre><code>
39
36
  * function helloWorld() {
40
37
  * console.log('Hello, world!');
41
38
  * }</code></pre>
42
- * </code-highlighter>
39
+ * </wc-code-highlighter>
43
40
  * ```
44
41
  * @tags display
45
42
  */
46
- @PeacockComponent
43
+ @IndividualComponent
47
44
  export class CodeHighlighter extends LitElement {
48
45
  static styles = [styles];
49
46
 
@@ -173,7 +170,7 @@ export class CodeHighlighter extends LitElement {
173
170
  <div class="header">
174
171
  <div class="header-title">${this.language}</div>
175
172
  <div class="header-actions">
176
- <icon-button
173
+ <wc-icon-button
177
174
  color="dark"
178
175
  variant="text"
179
176
  size="xs"
@@ -182,7 +179,7 @@ export class CodeHighlighter extends LitElement {
182
179
  tooltip=${locale.copyToClipboard}
183
180
  @click=${this.__handleCopyClick}
184
181
  >
185
- </icon-button>
182
+ </wc-icon-button>
186
183
  </div>
187
184
  </div>
188
185
 
@@ -7,22 +7,17 @@ type ContainerSize = 'max' | 'xl' | 'lg' | 'md' | 'sm' | 'full';
7
7
 
8
8
  /**
9
9
  * @label Container
10
- * @tag base-container
10
+ * @tag wc-container
11
11
  * @rawTag container
12
- * @summary The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
13
- *
14
- * @cssprop --avatar-border-radius - Controls the border radius of the avatar.
15
- * @cssprop --avatar-background-color - Controls the color of the avatar.
16
- * @cssprop --avatar-size - Controls the size of the avatar.
17
- * @cssprop --avatar-text-color - Controls the color of the text inside the avatar.
18
- *
12
+ * @summary A responsive container component for layout.
13
+ * @cssprop --container-max-width - Controls the maximum width of the container.
14
+ * @cssprop --container-padding - Controls the padding of the container.
15
+ * @tags layout
19
16
  *
20
17
  * @example
21
18
  * ```html
22
- * <base-container>Container</base-avatar>
19
+ * <wc-container size="lg">Content</wc-container>
23
20
  * ```
24
- *
25
- * @tags display
26
21
  */
27
22
  export class Container extends LitElement {
28
23
  @property({ type: String, reflect: true })
@@ -7,14 +7,14 @@ import { spread } from '../spread.js';
7
7
 
8
8
  /**
9
9
  * @label Date Picker
10
- * @tag date-picker
10
+ * @tag wc-date-picker
11
11
  * @rawTag date-picker
12
- *
13
12
  * @summary The Date Picker component is used to capture date user input.
13
+ * @tags input
14
14
  *
15
15
  * @example
16
16
  * ```html
17
- * <date-picker label="Name" required placeholder="Enter your name"></date-picker>
17
+ * <wc-date-picker label="Date" placeholder="Select a date"></wc-date-picker>
18
18
  * ```
19
19
  */
20
20
  export class DatePicker extends BaseInput {
@@ -122,7 +122,7 @@ export class DatePicker extends BaseInput {
122
122
 
123
123
  render() {
124
124
  return html`
125
- <base-field
125
+ <wc-field
126
126
  ?required=${this.required}
127
127
  ?disabled=${this.disabled}
128
128
  ?readonly=${this.readonly}
@@ -161,7 +161,7 @@ export class DatePicker extends BaseInput {
161
161
 
162
162
  <slot name="end" slot="field-end"></slot>
163
163
 
164
- <icon-button
164
+ <wc-icon-button
165
165
  slot="field-end"
166
166
  color="secondary"
167
167
  variant="text"
@@ -174,8 +174,8 @@ export class DatePicker extends BaseInput {
174
174
  });
175
175
  }}
176
176
  >
177
- </icon-button>
178
- </base-field>
177
+ </wc-icon-button>
178
+ </wc-field>
179
179
  `;
180
180
  }
181
181
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  --divider-color: var(--color-outline-variant);
9
9
  --divider-spacing: var(--spacing-200);
10
- --divider-line-thinkness: 2px;
10
+ --divider-line-thickness: 1px;
11
11
  }
12
12
 
13
13
  .divider {
@@ -16,7 +16,7 @@
16
16
  @include mixin.get-typography(body-medium);
17
17
  color: var(--divider-color);
18
18
 
19
- --_line-border: var(--divider-line-thinkness) solid var(--divider-color);
19
+ --_line-border: var(--divider-line-thickness) solid var(--divider-color);
20
20
 
21
21
  &:not(.vertical) {
22
22
  width: 100%;
@@ -6,7 +6,7 @@ import { observerSlotChangesWithCallback } from '../utils.js';
6
6
 
7
7
  /**
8
8
  * @label Divider
9
- * @tag base-divider
9
+ * @tag wc-divider
10
10
  * @rawTag divider
11
11
  *
12
12
  * @summary The divider component is used to visually separate content.
@@ -19,7 +19,7 @@ import { observerSlotChangesWithCallback } from '../utils.js';
19
19
  *
20
20
  * @example
21
21
  * ```html
22
- * <base-divider style="width: 12rem;">or</base-divider>
22
+ * <wc-divider style="width: 12rem;">or</wc-divider>
23
23
  * ```
24
24
  * @tags display
25
25
  */
@@ -3,7 +3,7 @@ import styles from './elevation.scss';
3
3
 
4
4
  /**
5
5
  * @label Elevation
6
- * @tag base-elevation
6
+ * @tag wc-elevation
7
7
  * @rawTag elevation
8
8
  *
9
9
  * @summary Adds elevation to an element.
@@ -17,7 +17,7 @@ import styles from './elevation.scss';
17
17
  * @example
18
18
  * ```html
19
19
  * <div style="position: relative; padding: var(--spacing-200);">
20
- * <base-elevation style='--elevation-level: 2; --elevation-container-shape: var(--shape-corner-extra-small);'></base-elevation>
20
+ * <wc-elevation style='--elevation-level: 2; --elevation-container-shape: var(--shape-corner-extra-small);'></wc-elevation>
21
21
  * Level 2
22
22
  * </div>
23
23
  * ```
@@ -27,7 +27,7 @@
27
27
  height: 100%;
28
28
  display: flex;
29
29
 
30
- base-icon {
30
+ .illustration-svg {
31
31
  --icon-size: 100%;
32
32
  }
33
33
  }
@@ -5,8 +5,15 @@ import styles from './empty-state.scss';
5
5
 
6
6
  /**
7
7
  * @label Empty State
8
- * @name empty-state
9
- * @description A message that displays when there is no information to display.
8
+ * @tag wc-empty-state
9
+ * @rawTag empty-state
10
+ * @summary A message that displays when there is no information to display.
11
+ * @tags display
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <wc-empty-state headline="No items found"></wc-empty-state>
16
+ * ```
10
17
  */
11
18
  export class EmptyState extends LitElement {
12
19
  // Lit handles styles in a static property for better performance
@@ -69,7 +76,7 @@ export class EmptyState extends LitElement {
69
76
  <div class="${classMap(classes)}">
70
77
  <div class="empty-state-container">
71
78
  <div class="illustration">
72
- <base-icon src="${illustrationPath}"></base-icon>
79
+ <wc-icon class="illustration-svg" src="${illustrationPath}"></wc-icon>
73
80
  </div>
74
81
 
75
82
  <div class="content">
@@ -225,8 +225,8 @@
225
225
  position: absolute;
226
226
  top: 0;
227
227
  left: 0;
228
- --skeleton-shape-start-start: var(--shape-corner-extra-small);
229
- --skeleton-shape-start-end: var(--shape-corner-extra-small);
230
- --skeleton-shape-end-start: var(--shape-corner-extra-small);
231
- --skeleton-shape-end-end: var(--shape-corner-extra-small);
228
+ --skeleton-container-shape-start-start: var(--_container-shape-start-start);
229
+ --skeleton-container-shape-start-end: var(--_container-shape-start-end);
230
+ --skeleton-container-shape-end-start: var(--_container-shape-end-start);
231
+ --skeleton-container-shape-end-end: var(--_container-shape-end-end);
232
232
  }
@@ -4,6 +4,23 @@ import { classMap } from 'lit/directives/class-map.js';
4
4
  import styles from './field.scss';
5
5
  import { observerSlotChangesWithCallback } from '../utils.js';
6
6
 
7
+ /**
8
+ * @label Field
9
+ * @tag wc-field
10
+ * @rawTag field
11
+ *
12
+ * @summary Wrapper for form fields with label and help text.
13
+ * @overview
14
+ * <p>Field provides consistent styling and behavior for form inputs.</p>
15
+ *
16
+ * @example
17
+ * ```html
18
+ * <wc-field label="Name" required>
19
+ * some text
20
+ * </wc-field>
21
+ * ```
22
+ * @tags form
23
+ */
7
24
  export class Field extends LitElement {
8
25
  static styles = [styles];
9
26
 
@@ -106,7 +123,7 @@ export class Field extends LitElement {
106
123
  ${this.label}${this.required
107
124
  ? html`<span class="required">*</span>`
108
125
  : nothing}
109
- <base-skeleton class="skeleton"></base-skeleton>
126
+ <wc-skeleton class="skeleton"></wc-skeleton>
110
127
  </label>
111
128
  </div>`;
112
129
  }
@@ -132,7 +149,7 @@ export class Field extends LitElement {
132
149
  <div class="field-body" @click=${this.__handleClick}>
133
150
  <div class="outline"></div>
134
151
  <div class="background"></div>
135
- <base-skeleton class="skeleton"></base-skeleton>
152
+ <wc-skeleton class="skeleton"></wc-skeleton>
136
153
 
137
154
  <div class="field-content">
138
155
  <div
@@ -7,6 +7,7 @@
7
7
  border-end-start-radius: var(--focus-ring-container-shape-end-start);
8
8
  border-end-end-radius: var(--focus-ring-container-shape-end-end);
9
9
  corner-shape: var(--focus-ring-container-shape-variant);
10
+ --focus-ring-color: var(--color-primary);
10
11
 
11
12
  inset: calc(-1 * var(--focus-ring-inset, 2px));
12
13
 
@@ -19,5 +20,5 @@
19
20
 
20
21
  :host([visible]) {
21
22
  display: flex;
22
- outline: 3px solid var(--color-primary);
23
+ outline: 3px solid var(--focus-ring-color);
23
24
  }
@@ -5,7 +5,7 @@ import styles from './focus-ring.scss';
5
5
  /**
6
6
  * @label Focus Ring
7
7
  *
8
- * @tag focus-ring
8
+ * @tag wc-focus-ring
9
9
  * @rawTag focus-ring
10
10
  *
11
11
  * @summary Adds a focus ring to an element.
package/src/icon/icon.ts CHANGED
@@ -8,7 +8,7 @@ import styles from './icon.scss';
8
8
  export type IconProvider = 'material-symbols' | 'material-icons';
9
9
  /**
10
10
  * @label Icon
11
- * @tag base-icon
11
+ * @tag wc-icon
12
12
  * @rawTag icon
13
13
  * @summary Icons are visual symbols used to represent ideas, objects, or actions.
14
14
  * @overview Icons are visual symbols used to represent ideas, objects, or actions. They communicate messages at a glance, afford interactivity, and draw attention to important information.
@@ -18,7 +18,7 @@ export type IconProvider = 'material-symbols' | 'material-icons';
18
18
  *
19
19
  * @example
20
20
  * ```html
21
- * <base-icon name="home" style="--icon-size: 2rem;"></base-icon>
21
+ * <wc-icon name="home" style="--icon-size: 2rem;"></wc-icon>
22
22
  * ```
23
23
  *
24
24
  */
@@ -1,5 +1,5 @@
1
1
  import { customElement } from 'lit/decorators.js';
2
2
  import { Icon } from './icon.js';
3
3
 
4
- @customElement('base-icon')
4
+ @customElement('wc-icon')
5
5
  export class PIcon extends Icon {}
@@ -7,23 +7,15 @@ import styles from './image.scss';
7
7
 
8
8
  /**
9
9
  * @label Image
10
- * @tag base-image
10
+ * @tag wc-image
11
11
  * @rawTag image
12
- *
13
- * @summary Image
14
- * @overview
15
- * - CodeHighlighter is a component that provides syntax highlighting for code snippets.
16
- * - It supports various programming languages and can display line numbers for better readability.
12
+ * @summary An image component with lazy loading and theme support.
13
+ * @tags media
17
14
  *
18
15
  * @example
19
16
  * ```html
20
- * <code-highlighter language="javascript" style="height: 9rem"><pre><code>
21
- * function helloWorld() {
22
- * console.log('Hello, world!');
23
- * }</code></pre>
24
- * </code-highlighter>
17
+ * <wc-image src="image.jpg" alt="Description"></wc-image>
25
18
  * ```
26
- * @tags display
27
19
  */
28
20
  export class Image extends LitElement {
29
21
  static styles = [styles];
package/src/index.ts CHANGED
@@ -8,7 +8,7 @@ export { Button, ButtonGroup, IconButton } from './button/index.js';
8
8
 
9
9
  export { FocusRing } from './focus-ring/index.js';
10
10
  export { Ripple } from './ripple/index.js';
11
- export { Accordion } from './accordion/accordion/index.js';
11
+ export { Accordion } from './accordion/index.js';
12
12
  export { Link } from './link/index.js';
13
13
  export { Tag } from './chip/tag/index.js';
14
14
  export { Chip } from './chip/chip/index.js';
@@ -23,13 +23,21 @@ export { TimePicker } from './time-picker/index.js';
23
23
  export { Textarea } from './textarea/index.js';
24
24
  export { Switch } from './switch/index.js';
25
25
  export { Spinner } from './spinner/index.js';
26
- export { Container } from './container/index.js'
26
+ export { Container } from './container/index.js';
27
27
 
28
28
  export { NumberCounter } from './number-counter/index.js';
29
29
  export { EmptyState } from './empty-state/index.js';
30
30
  export { Tooltip } from './popover/index.js';
31
31
  export { Breadcrumb, BreadcrumbItem } from './breadcrumb/index.js';
32
+ export { Menu, MenuItem, SubMenu } from './menu/index.js';
32
33
 
33
34
  export { CodeHighlighter } from './code-highlighter/index.js';
34
35
  export { CodeEditor } from './code-editor/index.js';
35
- export { Image } from './image/index.js';
36
+ export { Image } from './image/index.js';
37
+ export { Tab, TabGroup, TabPanel, Tabs } from './tabs/index.js';
38
+ export { Slider } from './slider/index.js';
39
+ export { ChartDoughnut } from './chart-doughnut/index.js';
40
+ export { ChartPie } from './chart-pie/index.js';
41
+ export { Table } from './table/index.js';
42
+ export { Pagination } from './pagination/index.js';
43
+ export { TreeView, TreeNode } from './tree-view/index.js';
@@ -6,14 +6,14 @@ import styles from './input.scss';
6
6
  import { spread } from '../spread.js';
7
7
  /**
8
8
  * @label Input
9
- * @tag input-field
9
+ * @tag wc-input
10
10
  * @rawTag input
11
11
  *
12
12
  * @summary The Input component is used to capture user input.
13
13
  *
14
14
  * @example
15
15
  * ```html
16
- * <input-field label="Name" required placeholder="Enter your name"></input-field>
16
+ * <wc-input label="Name" required placeholder="Enter your name"></wc-input>
17
17
  * ```
18
18
  */
19
19
  export class Input extends BaseInput {
@@ -127,7 +127,7 @@ export class Input extends BaseInput {
127
127
  this.type === 'password' && this.passwordVisible ? 'text' : this.type;
128
128
 
129
129
  return html`
130
- <base-field
130
+ <wc-field
131
131
  ?required=${this.required}
132
132
  ?disabled=${this.disabled}
133
133
  ?readonly=${this.readonly}
@@ -172,7 +172,7 @@ export class Input extends BaseInput {
172
172
  ? 'Hide password'
173
173
  : 'Show password'}
174
174
  >
175
- <icon-button
175
+ <wc-icon-button
176
176
  class="password-toggle"
177
177
  variant="text"
178
178
  name=${this.passwordVisible ? 'visibility_off' : 'visibility'}
@@ -180,13 +180,13 @@ export class Input extends BaseInput {
180
180
  this.passwordVisible = !this.passwordVisible;
181
181
  }}
182
182
  >
183
- </icon-button>
183
+ </wc-icon-button>
184
184
  </pc-tooltip>
185
185
  `
186
186
  : nothing}
187
187
 
188
188
  <slot name="end" slot="field-end"></slot>
189
- </base-field>
189
+ </wc-field>
190
190
  `;
191
191
  }
192
192
  }
package/src/link/link.ts CHANGED
@@ -5,17 +5,16 @@ import styles from './link.scss';
5
5
 
6
6
  /**
7
7
  * @label Link
8
- * @tag base-link
8
+ * @tag wc-link
9
9
  * @rawTag link
10
10
  * @summary The link component is used to navigate to a new page or section within the current page.
11
- *
12
- * @cssprop --badge-color - Controls the color of the badge.
11
+ * @cssprop --link-color - Controls the color of the link.
12
+ * @tags navigation
13
13
  *
14
14
  * @example
15
15
  * ```html
16
- * <base-link href="#">Link</base-link>
16
+ * <wc-link href="#">Link</wc-link>
17
17
  * ```
18
- * @tags display
19
18
  */
20
19
  export class Link extends LitElement {
21
20
  static styles = [styles];
@@ -0,0 +1,3 @@
1
+ export { Menu } from './menu/menu.js';
2
+ export { MenuItem } from './menu-item/menu-item.js';
3
+ export { SubMenu } from './sub-menu/sub-menu.js';
@@ -0,0 +1,61 @@
1
+ import { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import {
3
+ autoUpdate,
4
+ computePosition,
5
+ flip,
6
+ offset,
7
+ shift,
8
+ type Placement,
9
+ type Strategy,
10
+ } from '@floating-ui/dom';
11
+
12
+ type PositionOptions = {
13
+ reference: HTMLElement;
14
+ floating: HTMLElement;
15
+ placement: Placement;
16
+ offset: number;
17
+ strategy?: Strategy;
18
+ };
19
+
20
+ async function updateSurfacePosition(options: PositionOptions & { strategy: Strategy }) {
21
+ const { x, y } = await computePosition(options.reference, options.floating, {
22
+ strategy: options.strategy,
23
+ placement: options.placement,
24
+ middleware: [offset(options.offset), flip(), shift({ padding: 8 })],
25
+ });
26
+
27
+ Object.assign(options.floating.style, {
28
+ position: options.strategy,
29
+ left: `${x}px`,
30
+ top: `${y}px`,
31
+ });
32
+ }
33
+
34
+ export class MenuSurfaceController implements ReactiveController {
35
+ private cleanup?: () => void;
36
+
37
+ constructor(private host: ReactiveControllerHost) {
38
+ this.host.addController(this);
39
+ }
40
+
41
+ start(options: PositionOptions) {
42
+ this.stop();
43
+
44
+ const strategy = options.strategy ?? 'fixed';
45
+
46
+ this.cleanup = autoUpdate(options.reference, options.floating, () => {
47
+ updateSurfacePosition({ ...options, strategy });
48
+ });
49
+
50
+ updateSurfacePosition({ ...options, strategy });
51
+ }
52
+
53
+ stop() {
54
+ this.cleanup?.();
55
+ this.cleanup = undefined;
56
+ }
57
+
58
+ hostDisconnected() {
59
+ this.stop();
60
+ }
61
+ }
@@ -2,13 +2,28 @@
2
2
 
3
3
  @include mixin.base-styles;
4
4
 
5
- .menu-list {
5
+ .menu {
6
6
  display: flex;
7
7
  position: relative;
8
+ z-index: var(--menu-z-index, 1000);
8
9
  min-width: 112px;
9
10
  padding-block: var(--spacing-050);
10
11
 
11
- .menu-list-content {
12
+ &.closed {
13
+ display: none;
14
+ opacity: 0;
15
+ visibility: hidden;
16
+ pointer-events: none;
17
+ }
18
+
19
+ &.open {
20
+ display: flex;
21
+ opacity: 1;
22
+ visibility: visible;
23
+ pointer-events: auto;
24
+ }
25
+
26
+ .menu-content {
12
27
  display: flex;
13
28
  flex-direction: column;
14
29
  gap: var(--spacing-050);
@@ -24,7 +39,7 @@
24
39
  --menu-item-container-shape-end-end: var(--shape-corner-medium);
25
40
  }
26
41
 
27
- ::slotted(base-divider) {
42
+ ::slotted(wc-divider) {
28
43
  --divider-spacing: var(--spacing-100);
29
44
  padding-inline: var(--spacing-050);
30
45
  }
@@ -58,7 +73,7 @@
58
73
  }
59
74
  }
60
75
 
61
- .menu-list {
76
+ .menu {
62
77
  --_container-shape-start-start: var(--shape-corner-large);
63
78
  --_container-shape-start-end: var(--shape-corner-large);
64
79
  --_container-shape-end-start: var(--shape-corner-large);