@redvars/peacock 3.1.1 → 3.1.2

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 (132) hide show
  1. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.css.js.map +1 -1
  2. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.d.ts +19 -0
  3. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.js +19 -0
  4. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.js.map +1 -1
  5. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.d.ts +0 -7
  6. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.js +0 -7
  7. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.js.map +1 -1
  8. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.css.js +5 -4
  9. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.css.js.map +1 -1
  10. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.d.ts +15 -1
  11. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.js +27 -10
  12. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.js.map +1 -1
  13. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.d.ts +0 -5
  14. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.js +0 -5
  15. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.js.map +1 -1
  16. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.d.ts +1 -0
  17. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.js +12 -0
  18. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.js.map +1 -0
  19. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.d.ts +27 -0
  20. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.js +58 -0
  21. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.js.map +1 -0
  22. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.d.ts +1 -0
  23. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.js +2 -0
  24. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.js.map +1 -0
  25. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.d.ts +1 -0
  26. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.js +58 -0
  27. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.js.map +1 -0
  28. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.d.ts +28 -0
  29. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.js +68 -0
  30. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.js.map +1 -0
  31. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.d.ts +1 -0
  32. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.js +2 -0
  33. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.js.map +1 -0
  34. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.d.ts +21 -1
  35. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.js +16 -0
  36. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.js.map +1 -1
  37. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.d.ts +0 -7
  38. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.js +0 -7
  39. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.js.map +1 -1
  40. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.d.ts +2 -0
  41. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.js +2 -0
  42. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.js.map +1 -1
  43. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/peacock-loader.js +12 -2
  44. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/peacock-loader.js.map +1 -1
  45. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.d.ts +1 -0
  46. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.js +32 -0
  47. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.js.map +1 -1
  48. package/.rollup.cache/E/git/redvars/peacock/components/dist/tsconfig.tsbuildinfo +1 -1
  49. package/bin/typedoc-gen.mjs +64 -0
  50. package/custom-elements-manifest.config.mjs +5 -6
  51. package/demo/index.html +4 -5
  52. package/demo/int.html +2 -0
  53. package/dist/{component/avatar.js → avatar.js} +25 -19
  54. package/dist/avatar.js.map +1 -0
  55. package/dist/badge.js +89 -0
  56. package/dist/badge.js.map +1 -0
  57. package/dist/class-map-DpvLRi0h.js +11 -0
  58. package/dist/class-map-DpvLRi0h.js.map +1 -0
  59. package/dist/clock.js +70 -0
  60. package/dist/clock.js.map +1 -0
  61. package/dist/custom-elements-jsdocs.json +656 -0
  62. package/dist/directive-BKuZRRPO.js +9 -0
  63. package/dist/directive-BKuZRRPO.js.map +1 -0
  64. package/dist/divider.js +123 -0
  65. package/dist/divider.js.map +1 -0
  66. package/dist/{component/icon.js → icon.js} +20 -101
  67. package/dist/icon.js.map +1 -0
  68. package/dist/index.js +11 -67
  69. package/dist/index.js.map +1 -1
  70. package/dist/peacock-loader.js +21 -12
  71. package/dist/peacock-loader.js.map +1 -1
  72. package/dist/{directive-CKEA2P55.js → property-D4Kn9TsY.js} +6 -13
  73. package/dist/property-D4Kn9TsY.js.map +1 -0
  74. package/dist/src/avatar/avatar.d.ts +19 -0
  75. package/dist/src/avatar/p-avatar.d.ts +0 -7
  76. package/dist/src/badge/badge.d.ts +15 -1
  77. package/dist/src/badge/p-badge.d.ts +0 -5
  78. package/dist/src/clock/clock.css.d.ts +1 -0
  79. package/dist/src/clock/clock.d.ts +27 -0
  80. package/dist/src/clock/index.d.ts +1 -0
  81. package/dist/src/divider/divider.css.d.ts +1 -0
  82. package/dist/src/divider/divider.d.ts +28 -0
  83. package/dist/src/divider/index.d.ts +1 -0
  84. package/dist/src/icon/icon.d.ts +21 -1
  85. package/dist/src/icon/p-icon.d.ts +0 -7
  86. package/dist/src/index.d.ts +2 -0
  87. package/dist/src/utils.d.ts +1 -0
  88. package/dist/state-CxzmLNIi.js +10 -0
  89. package/dist/state-CxzmLNIi.js.map +1 -0
  90. package/dist/styleMixins.css-CivfMYtB.js +17 -0
  91. package/dist/styleMixins.css-CivfMYtB.js.map +1 -0
  92. package/dist/tsconfig.tsbuildinfo +1 -1
  93. package/dist/utils-_5no4mk7.js +128 -0
  94. package/dist/utils-_5no4mk7.js.map +1 -0
  95. package/package.json +8 -8
  96. package/readme.md +5 -17
  97. package/rollup.config.js +71 -37
  98. package/scratch.mjs +0 -0
  99. package/src/avatar/avatar.css.ts +1 -1
  100. package/src/avatar/avatar.ts +19 -0
  101. package/src/avatar/p-avatar.ts +0 -7
  102. package/src/badge/badge.css.ts +5 -4
  103. package/src/badge/badge.ts +30 -8
  104. package/src/badge/demo/index.html +9 -1
  105. package/src/badge/p-badge.ts +0 -5
  106. package/src/clock/clock.css.ts +12 -0
  107. package/src/clock/clock.ts +57 -0
  108. package/src/clock/demo/index.html +26 -0
  109. package/src/clock/index.ts +1 -0
  110. package/src/divider/demo/index.html +58 -0
  111. package/src/divider/divider.css.ts +58 -0
  112. package/src/divider/divider.ts +65 -0
  113. package/src/divider/index.ts +1 -0
  114. package/src/icon/icon.ts +21 -1
  115. package/src/icon/p-icon.ts +0 -7
  116. package/src/index.ts +2 -0
  117. package/src/peacock-loader.ts +12 -3
  118. package/src/utils.ts +43 -0
  119. package/assets/tokens.css +0 -522
  120. package/copyDesignFiles.js +0 -11
  121. package/custom-elements.md +0 -192
  122. package/dist/avatar-GQwWRGRw.js +0 -418
  123. package/dist/avatar-GQwWRGRw.js.map +0 -1
  124. package/dist/avatar-jfcIDB8G.js +0 -424
  125. package/dist/avatar-jfcIDB8G.js.map +0 -1
  126. package/dist/component/avatar.js.map +0 -1
  127. package/dist/component/icon.js.map +0 -1
  128. package/dist/directive-CKEA2P55.js.map +0 -1
  129. package/dist/utils-CSwoJIcG.js +0 -171
  130. package/dist/utils-CSwoJIcG.js.map +0 -1
  131. package/dist/web-types.json +0 -78
  132. package/readme-gen.mjs +0 -24
@@ -0,0 +1,58 @@
1
+ <!doctype html>
2
+ <html lang='en-GB'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1.0, viewport-fit=cover' />
6
+ <link rel='stylesheet' href='/dist/assets/styles/tokens.css' />
7
+ <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
8
+
9
+ <style>
10
+ body {
11
+ background: #fafafa;
12
+ }
13
+ </style>
14
+ </head>
15
+ <body>
16
+
17
+
18
+ <style>
19
+ .container-horizontal {
20
+ display: inline-block;
21
+ margin-right: 1rem;
22
+ padding: 1rem;
23
+ width: 200px;
24
+ border: 1px solid var(--color-outline);
25
+ }
26
+
27
+ .container-vertical {
28
+ display: flex;
29
+ height: 150px;
30
+ margin-bottom: 1rem;
31
+ padding: 1rem;
32
+ width: 250px;
33
+ border: 1px solid var(--color-outline);
34
+ }
35
+ </style>
36
+
37
+
38
+
39
+ <div class="container-horizontal">
40
+ <p>Content A</p>
41
+ <p-divider>or</p-divider>
42
+ <p>Content B</p>
43
+ </div>
44
+
45
+ <div class="container-vertical">
46
+ <p>Content A</p>
47
+ <p-divider vertical="true">or</p-divider>
48
+ <p>Content B</p>
49
+ </div>
50
+
51
+
52
+
53
+ <script type='module'>
54
+ import { Divider } from '/dist/index.js';
55
+ window.customElements.define('p-divider', Divider);
56
+ </script>
57
+ </body>
58
+ </html>
@@ -0,0 +1,58 @@
1
+ import { css } from 'lit';
2
+
3
+ export const styles = css`
4
+ :host {
5
+ display: block;
6
+
7
+ --divider-color: var(--color-outline-variant);
8
+ --divider-padding: var(--spacing-200);
9
+ }
10
+
11
+ .divider {
12
+ display: flex;
13
+ margin: 0;
14
+ @include get-typography(body-small-emphasized);
15
+ color: var(--divider-color);
16
+
17
+ &:not(.vertical) {
18
+ width: 100%;
19
+ padding: var(--divider-padding) 0;
20
+ align-items: center;
21
+ justify-content: center;
22
+
23
+ .line {
24
+ width: 100%;
25
+ border-top: 1px solid var(--divider-color);
26
+ }
27
+
28
+ &.slot-has-content .slot-container {
29
+ padding: 0 var(--spacing-200);
30
+ }
31
+ }
32
+
33
+ &.vertical {
34
+ height: 100%;
35
+ padding: 0 var(--divider-padding);
36
+ flex-direction: column;
37
+ align-items: center;
38
+ justify-content: center;
39
+
40
+ .line {
41
+ height: 100%;
42
+ border-right: 1px solid var(--divider-color);
43
+ }
44
+
45
+ &.slot-has-content .slot-container {
46
+ padding: var(--spacing-200) 0;
47
+ }
48
+ }
49
+ }
50
+
51
+ :host(:not([vertical])) {
52
+ width: auto;
53
+ }
54
+
55
+ :host([vertical]) {
56
+ height: auto;
57
+ }
58
+ `;
@@ -0,0 +1,65 @@
1
+ import { html, LitElement } from 'lit';
2
+ import { property, state } from 'lit/decorators.js';
3
+ import { classMap } from 'lit/directives/class-map.js';
4
+ import { styles } from './divider.css.js';
5
+ import { observerSlotChangesWithCallback } from '../utils.js';
6
+
7
+ /**
8
+ * @label Divider
9
+ * @tag p-divider
10
+ * @rawTag divider
11
+ *
12
+ * @summary The divider component is used to visually separate content.
13
+ * @overview
14
+ * - Dividers are used to separate content into clear groups, making it easier for users to scan and understand the information presented.
15
+ * - They can be oriented either vertically or horizontally, depending on the layout requirements.
16
+ *
17
+ * @cssprop --divider-color - Controls the color of the divider.
18
+ * @cssprop --divider-padding - Controls the padding of the divider.
19
+ *
20
+ * @example
21
+ * ```html
22
+ * <p-divider style="width: 12rem;">or</p-divider>
23
+ * ```
24
+ * @tags display
25
+ */
26
+ export class Divider extends LitElement {
27
+ static styles = [styles];
28
+
29
+ @property({ type: Boolean, reflect: true }) vertical = false;
30
+
31
+ @state()
32
+ slotHasContent = false;
33
+
34
+ firstUpdated() {
35
+ observerSlotChangesWithCallback(
36
+ this.renderRoot.querySelector('slot'),
37
+ hasContent => {
38
+ this.slotHasContent = hasContent;
39
+ this.requestUpdate();
40
+ },
41
+ );
42
+ }
43
+
44
+ render() {
45
+ return html`<div
46
+ class=${classMap({
47
+ divider: true,
48
+ vertical: this.vertical,
49
+ 'slot-has-content': this.slotHasContent,
50
+ })}
51
+ >
52
+ <div class="line"></div>
53
+ <div class="slot-container">
54
+ <slot></slot>
55
+ </div>
56
+ <div class="line"></div>
57
+ </div>`;
58
+ }
59
+
60
+ #handleSlotChange(event: { target: any }) {
61
+ const slot = event.target;
62
+ // Check assignedElements length
63
+ this.slotHasContent = slot.assignedNodes({ flatten: true }).length > 0;
64
+ }
65
+ }
@@ -0,0 +1 @@
1
+ export { Divider } from './divider.js';
package/src/icon/icon.ts CHANGED
@@ -5,14 +5,34 @@ import { fetchIcon, fetchSVG } from './datasource.js';
5
5
  import { sanitizeSvg } from '../utils.js';
6
6
  import { styles } from './icon.css.js';
7
7
 
8
+ /**
9
+ * @label Icon
10
+ * @tag p-icon
11
+ * @rawTag icon
12
+ * @summary Icons are visual symbols used to represent ideas, objects, or actions.
13
+ * @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.
14
+ *
15
+ * @cssprop --icon-color - Controls the color of the icon.
16
+ * @cssprop [--icon-size=1rem] - Controls the size of the icon. Defaults to "1rem"
17
+ *
18
+ * @example
19
+ * ```html
20
+ * <p-icon name="home"></p-icon>
21
+ * ```
22
+ *
23
+ */
8
24
  export class Icon extends LitElement {
9
25
  static styles = [styles];
10
26
 
27
+ /**
28
+ * The identifier for the icon.
29
+ * This name corresponds to a specific SVG asset in the icon set.
30
+ */
11
31
  @property({ type: String, reflect: true }) name?: string;
12
32
 
13
33
  @property({ type: String, reflect: true }) src?: string;
14
34
 
15
- @property({ type: String }) provider?: 'material-symbols' | 'carbon' =
35
+ @property({ type: String }) provider: 'material-symbols' | 'carbon' =
16
36
  'material-symbols';
17
37
 
18
38
  @state()
@@ -1,12 +1,5 @@
1
1
  import { customElement } from 'lit/decorators.js';
2
2
  import { Icon } from './icon.js';
3
3
 
4
- /**
5
- * @name Icon
6
- * @summary Icons are visual symbols used to represent ideas, objects, or actions.
7
- *
8
- * @cssprop --icon-color - Controls the color of the icon.
9
- * @cssprop [--icon-size=1rem] - Controls the size of the icon. Defaults to "1rem"
10
- */
11
4
  @customElement('p-icon')
12
5
  export class PIcon extends Icon {}
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export { Icon } from './icon/index.js';
2
2
  export { Avatar } from './avatar/index.js';
3
3
  export { Badge } from './badge/index.js';
4
+ export { Divider } from './divider/index.js';
5
+ export { Clock } from './clock/index.js';
@@ -1,9 +1,11 @@
1
1
  // Eager loaded
2
+ import cssComponentsStyleSheet from '@redvars/peacock-design-tokens/dist/tokens.css';
2
3
  import { Icon } from './icon/icon.js';
3
4
  import { Avatar } from './avatar/avatar.js';
5
+ import { Badge } from './badge/badge.js';
6
+ import { Divider } from './divider/divider.js';
4
7
 
5
8
  import { LoaderConfig, LoaderUtils } from './LoaderUtils.js';
6
- import cssComponentsStyleSheet from '../assets/tokens.css';
7
9
  import { createLinkStyles } from './link/link.css.js';
8
10
  import { createTextStyles } from './text/text.css.js';
9
11
 
@@ -35,8 +37,6 @@ function stringifyStyleSheet(stylesheet: any) {
35
37
  );
36
38
  }
37
39
 
38
- console.log(stringifyStyleSheet(textStylesheet));
39
-
40
40
  document.adoptedStyleSheets = styleSheets;
41
41
 
42
42
  const loaderConfig: LoaderConfig = {
@@ -49,6 +49,15 @@ const loaderConfig: LoaderConfig = {
49
49
  avatar: {
50
50
  CustomElementClass: Avatar,
51
51
  },
52
+ badge: {
53
+ CustomElementClass: Badge,
54
+ },
55
+ divider: {
56
+ CustomElementClass: Divider,
57
+ },
58
+ clock: {
59
+ importPath: '.' + '/clock.js',
60
+ },
52
61
  },
53
62
  };
54
63
 
package/src/utils.ts CHANGED
@@ -108,3 +108,46 @@ export function sanitizeSvg(rawSvg: string) {
108
108
  return '';
109
109
  }
110
110
  }
111
+
112
+ function __hasMeaningfulContent(slotElement: any) {
113
+ const nodes = slotElement.assignedNodes({ flatten: true });
114
+
115
+ for (const node of nodes) {
116
+ // If it's an element node, it has content
117
+ if (node.nodeType === Node.ELEMENT_NODE) {
118
+ return true;
119
+ }
120
+ // If it's a text node and contains non-whitespace characters, it has content
121
+ if (
122
+ node.nodeType === Node.TEXT_NODE &&
123
+ node.textContent.trim().length > 0
124
+ ) {
125
+ return true;
126
+ }
127
+ }
128
+
129
+ // No meaningful content found
130
+ return false;
131
+ }
132
+
133
+ export function observerSlotChangesWithCallback(
134
+ slot: HTMLSlotElement | null,
135
+ callback: (hasContent: boolean) => void,
136
+ ) {
137
+ const observer = new MutationObserver(() => {
138
+ callback(__hasMeaningfulContent(slot));
139
+ });
140
+
141
+ // Observe the elements currently assigned to the slot
142
+ const assignedNodes = slot?.assignedNodes({ flatten: true }) || [];
143
+ assignedNodes.forEach(node => {
144
+ observer.observe(node, {
145
+ attributes: true,
146
+ childList: true,
147
+ characterData: true,
148
+ subtree: true,
149
+ });
150
+ });
151
+
152
+ callback(__hasMeaningfulContent(slot));
153
+ }