@momentum-design/components 0.2.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -568,39 +568,54 @@
568
568
  "declarations": [
569
569
  {
570
570
  "kind": "class",
571
- "description": "Text component, which helps creating a text element aligning with\nstyling.\n\nThe `type` attribute allows changing the type of text, like `heading-1`, etc.\n\nFor accessibility the `role` and `aria-level` on the component are going to be set\nautomatically based on the type e.g. heading-1 will lead to `role=\"heading\"` and `aria-level=1`.",
571
+ "description": "Text component for creating styled text elements.\nIt has to be mounted within the ThemeProvider to access color and font tokens.\n\nThe `type` attribute allows changing the text style.\nThe `tagname` attribute allows changing the tag name of the text element.\nThe default tag name is `p`.\n\nThe `tagname` attribute should be a valid HTML tag name.\nIf the `tagname` attribute is not a valid HTML tag name, the default tag name will be used.\n\nThe styling is applied based on the `type` attribute.",
572
572
  "name": "Text",
573
+ "slots": [
574
+ {
575
+ "description": "Default slot for text content",
576
+ "name": ""
577
+ }
578
+ ],
573
579
  "members": [
574
580
  {
575
581
  "kind": "field",
576
582
  "name": "type",
577
583
  "type": {
578
- "text": "FontType | undefined"
584
+ "text": "FontType"
579
585
  },
580
586
  "privacy": "public",
581
- "description": "Text Type - defines how the text should be rendered\n\nPossible values: `heading-1` | `heading-2` | `heading-3` | `heading-4`\n| `heading-5` | `heading-6` | `heading-7` | `body-large` | `body-regular`\n| `body-small` | `image-title` | `label`;",
587
+ "description": "Specifies the text style to be applied.\n\nAcceptable values include:\n\n- 'body-small-regular'\n- 'body-small-medium'\n- 'body-small-bold'\n- 'body-midsize-regular'\n- 'body-midsize-medium'\n- 'body-midsize-bold'\n- 'body-large-regular'\n- 'body-large-medium'\n- 'body-large-bold'\n- 'body-small-regular-underline'\n- 'body-small-medium-underline'\n- 'body-midsize-regular-underline'\n- 'body-midsize-medium-underline'\n- 'body-large-regular-underline'\n- 'body-large-medium-underline'\n- 'heading-small-regular'\n- 'heading-small-medium'\n- 'heading-small-bold'\n- 'heading-midsize-regular'\n- 'heading-midsize-medium'\n- 'heading-midsize-bold'\n- 'heading-large-regular'\n- 'heading-large-medium'\n- 'heading-large-bold'\n- 'heading-xlarge-regular'\n- 'heading-xlarge-medium'\n- 'heading-xlarge-bold'\n- 'headline-small-light'\n- 'headline-small-regular'",
582
588
  "attribute": "type",
583
589
  "reflects": true
584
590
  },
585
591
  {
586
- "kind": "method",
587
- "name": "handleTypeChanged",
588
- "privacy": "protected",
589
- "return": {
590
- "type": {
591
- "text": "void"
592
- }
593
- }
592
+ "kind": "field",
593
+ "name": "tagname",
594
+ "type": {
595
+ "text": "ValidTextTags | undefined"
596
+ },
597
+ "privacy": "public",
598
+ "description": "Specifies the HTML tag name for the text element. The default tag name is `p`.\nThis attribute is optional. When set, it changes the tag name of the text element.\n\nAcceptable values include: 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'small', 'span', 'div', 'section'.\n\nFor instance, setting this attribute to `h2` will render the text element as an `h2` element.\nNote that the styling is determined by the `type` attribute.",
599
+ "attribute": "tagname",
600
+ "reflects": true
594
601
  }
595
602
  ],
596
603
  "attributes": [
597
604
  {
598
605
  "name": "type",
599
606
  "type": {
600
- "text": "FontType | undefined"
607
+ "text": "FontType"
601
608
  },
602
- "description": "Text Type - defines how the text should be rendered\n\nPossible values: `heading-1` | `heading-2` | `heading-3` | `heading-4`\n| `heading-5` | `heading-6` | `heading-7` | `body-large` | `body-regular`\n| `body-small` | `image-title` | `label`;",
609
+ "description": "Specifies the text style to be applied.\n\nAcceptable values include:\n\n- 'body-small-regular'\n- 'body-small-medium'\n- 'body-small-bold'\n- 'body-midsize-regular'\n- 'body-midsize-medium'\n- 'body-midsize-bold'\n- 'body-large-regular'\n- 'body-large-medium'\n- 'body-large-bold'\n- 'body-small-regular-underline'\n- 'body-small-medium-underline'\n- 'body-midsize-regular-underline'\n- 'body-midsize-medium-underline'\n- 'body-large-regular-underline'\n- 'body-large-medium-underline'\n- 'heading-small-regular'\n- 'heading-small-medium'\n- 'heading-small-bold'\n- 'heading-midsize-regular'\n- 'heading-midsize-medium'\n- 'heading-midsize-bold'\n- 'heading-large-regular'\n- 'heading-large-medium'\n- 'heading-large-bold'\n- 'heading-xlarge-regular'\n- 'heading-xlarge-medium'\n- 'heading-xlarge-bold'\n- 'headline-small-light'\n- 'headline-small-regular'",
603
610
  "fieldName": "type"
611
+ },
612
+ {
613
+ "name": "tagname",
614
+ "type": {
615
+ "text": "ValidTextTags | undefined"
616
+ },
617
+ "description": "Specifies the HTML tag name for the text element. The default tag name is `p`.\nThis attribute is optional. When set, it changes the tag name of the text element.\n\nAcceptable values include: 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'small', 'span', 'div', 'section'.\n\nFor instance, setting this attribute to `h2` will render the text element as an `h2` element.\nNote that the styling is determined by the `type` attribute.",
618
+ "fieldName": "tagname"
604
619
  }
605
620
  ],
606
621
  "superclass": {
@@ -608,7 +623,7 @@
608
623
  "module": "/src/models"
609
624
  },
610
625
  "tagName": "mdc-text",
611
- "jsDoc": "/**\n * Text component, which helps creating a text element aligning with\n * styling.\n *\n * The `type` attribute allows changing the type of text, like `heading-1`, etc.\n *\n * For accessibility the `role` and `aria-level` on the component are going to be set\n * automatically based on the type e.g. heading-1 will lead to `role=\"heading\"` and `aria-level=1`.\n *\n * @tagname mdc-text\n */",
626
+ "jsDoc": "/**\n * Text component for creating styled text elements.\n * It has to be mounted within the ThemeProvider to access color and font tokens.\n *\n * The `type` attribute allows changing the text style.\n * The `tagname` attribute allows changing the tag name of the text element.\n * The default tag name is `p`.\n *\n * The `tagname` attribute should be a valid HTML tag name.\n * If the `tagname` attribute is not a valid HTML tag name, the default tag name will be used.\n *\n * The styling is applied based on the `type` attribute.\n *\n * @tagname mdc-text\n * @slot - Default slot for text content\n */",
612
627
  "customElement": true
613
628
  }
614
629
  ],
@@ -1,14 +1,19 @@
1
1
  import Component from '../../components/text';
2
2
  /**
3
- * Text component, which helps creating a text element aligning with
4
- * styling.
3
+ * Text component for creating styled text elements.
4
+ * It has to be mounted within the ThemeProvider to access color and font tokens.
5
5
  *
6
- * The `type` attribute allows changing the type of text, like `heading-1`, etc.
6
+ * The `type` attribute allows changing the text style.
7
+ * The `tagname` attribute allows changing the tag name of the text element.
8
+ * The default tag name is `p`.
7
9
  *
8
- * For accessibility the `role` and `aria-level` on the component are going to be set
9
- * automatically based on the type e.g. heading-1 will lead to `role="heading"` and `aria-level=1`.
10
+ * The `tagname` attribute should be a valid HTML tag name.
11
+ * If the `tagname` attribute is not a valid HTML tag name, the default tag name will be used.
12
+ *
13
+ * The styling is applied based on the `type` attribute.
10
14
  *
11
15
  * @tagname mdc-text
16
+ * @slot - Default slot for text content
12
17
  */
13
18
  declare const reactWrapper: import("@lit/react").ReactWebComponent<Component, {}>;
14
19
  export default reactWrapper;
@@ -6,15 +6,20 @@ const react_1 = require("@lit/react");
6
6
  const text_1 = tslib_1.__importDefault(require("../../components/text"));
7
7
  const text_constants_1 = require("../../components/text/text.constants");
8
8
  /**
9
- * Text component, which helps creating a text element aligning with
10
- * styling.
9
+ * Text component for creating styled text elements.
10
+ * It has to be mounted within the ThemeProvider to access color and font tokens.
11
11
  *
12
- * The `type` attribute allows changing the type of text, like `heading-1`, etc.
12
+ * The `type` attribute allows changing the text style.
13
+ * The `tagname` attribute allows changing the tag name of the text element.
14
+ * The default tag name is `p`.
13
15
  *
14
- * For accessibility the `role` and `aria-level` on the component are going to be set
15
- * automatically based on the type e.g. heading-1 will lead to `role="heading"` and `aria-level=1`.
16
+ * The `tagname` attribute should be a valid HTML tag name.
17
+ * If the `tagname` attribute is not a valid HTML tag name, the default tag name will be used.
18
+ *
19
+ * The styling is applied based on the `type` attribute.
16
20
  *
17
21
  * @tagname mdc-text
22
+ * @slot - Default slot for text content
18
23
  */
19
24
  const reactWrapper = (0, react_1.createComponent)({
20
25
  tagName: text_constants_1.TAG_NAME,
package/package.json CHANGED
@@ -37,5 +37,5 @@
37
37
  "@momentum-design/icons": "*",
38
38
  "@momentum-design/tokens": "*"
39
39
  },
40
- "version": "0.2.2"
40
+ "version": "0.4.0"
41
41
  }
@@ -1,20 +0,0 @@
1
- import { FontType } from './text.types';
2
- /**
3
- * Check if passed in type is a heading
4
- * @param type - type to check
5
- * @returns boolean, true if it is a heading
6
- */
7
- declare const isHeading: (type: FontType) => boolean;
8
- /**
9
- * Get corresponding aria-role to type
10
- * @param type - type to find corresponding role for
11
- * @returns role
12
- */
13
- declare const getRole: (type?: FontType) => "heading" | "paragraph" | null;
14
- /**
15
- * Get corresponding aria-level to type
16
- * @param type - type to find corresponding level for
17
- * @returns aria-level (has to be a number)
18
- */
19
- declare const getAriaLevel: (type?: FontType) => string | null;
20
- export { isHeading, getAriaLevel, getRole };
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRole = exports.getAriaLevel = exports.isHeading = void 0;
4
- /**
5
- * Split the passed in type and return the parts
6
- */
7
- const getTypeParts = (type) => {
8
- const parts = type.split('-');
9
- return { firstPart: parts[0], secondPart: parts[1] };
10
- };
11
- /**
12
- * Check if passed in type is a heading
13
- * @param type - type to check
14
- * @returns boolean, true if it is a heading
15
- */
16
- const isHeading = (type) => {
17
- const { firstPart, secondPart } = getTypeParts(type);
18
- return firstPart === 'heading' && +secondPart > 0 && +secondPart < 7;
19
- };
20
- exports.isHeading = isHeading;
21
- /**
22
- * Get corresponding aria-role to type
23
- * @param type - type to find corresponding role for
24
- * @returns role
25
- */
26
- const getRole = (type) => {
27
- if (type) {
28
- if (isHeading(type)) {
29
- return 'heading';
30
- }
31
- return 'paragraph';
32
- }
33
- return null;
34
- };
35
- exports.getRole = getRole;
36
- /**
37
- * Get corresponding aria-level to type
38
- * @param type - type to find corresponding level for
39
- * @returns aria-level (has to be a number)
40
- */
41
- const getAriaLevel = (type) => {
42
- if (type) {
43
- if (isHeading(type)) {
44
- const { secondPart } = getTypeParts(type);
45
- return secondPart;
46
- }
47
- }
48
- return null;
49
- };
50
- exports.getAriaLevel = getAriaLevel;