@rgrmdesign/rgrm-ds-elements 0.2.1 → 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.
package/README.md CHANGED
@@ -18,6 +18,7 @@ Import everything (registers all elements):
18
18
 
19
19
  ```js
20
20
  import '@rgrmdesign/rgrm-ds-tokens';
21
+ import '@rgrmdesign/rgrm-ds-elements/fonts';
21
22
  import '@rgrmdesign/rgrm-ds-elements';
22
23
  ```
23
24
 
@@ -25,12 +26,13 @@ Or register a single component via its sub-path export:
25
26
 
26
27
  ```js
27
28
  import '@rgrmdesign/rgrm-ds-tokens';
29
+ import '@rgrmdesign/rgrm-ds-elements/fonts';
28
30
  import '@rgrmdesign/rgrm-ds-elements/heading';
29
31
  import '@rgrmdesign/rgrm-ds-elements/paragraph';
30
32
  ```
31
33
 
32
34
  ```html
33
- <rgrm-heading level="display">Hero title.</rgrm-heading>
35
+ <rgrm-heading level="1" appearance="display">Hero title.</rgrm-heading>
34
36
  <rgrm-heading level="1">Page title.</rgrm-heading>
35
37
  <rgrm-heading level="2">Section title.</rgrm-heading>
36
38
 
@@ -41,12 +43,13 @@ import '@rgrmdesign/rgrm-ds-elements/paragraph';
41
43
 
42
44
  ## Heading (`<rgrm-heading>`)
43
45
 
44
- | Attribute | Values | Description |
45
- | --------- | ---------------------- | ----------------------------------------------------- |
46
- | `level` | `1` … `6` \| `display` | Sets the scale (def. 2). `display` renders an `<h1>`. |
46
+ | Attribute | Values | Description |
47
+ | ------------ | ---------------------- | -------------------------------------------------------- |
48
+ | `level` | `1` … `6` | Semantic heading level; sets inner `<h1>`–`<h6>` (def. 2). |
49
+ | `appearance` | `1` … `6` \| `display` | Visual scale; defaults to `level` when omitted. |
47
50
 
48
51
  Also exported: `RgrmHeadingElement` (class), `RGRM_HEADING_TAG`
49
- (`'rgrm-heading'`), and `headingClassNames(level, className?)`.
52
+ (`'rgrm-heading'`), and `headingClassNames(appearance, className?)`.
50
53
 
51
54
  ## Paragraph (`<rgrm-paragraph>`)
52
55
 
@@ -1,32 +1,44 @@
1
1
  // src/heading/index.ts
2
2
  import "@rgrmdesign/rgrm-ds-css/heading";
3
- import { headingClassNames as headingClassNames2 } from "@rgrmdesign/rgrm-ds-core/heading";
3
+ import {
4
+ headingClassNames as headingClassNames2
5
+ } from "@rgrmdesign/rgrm-ds-core/heading";
4
6
 
5
7
  // src/heading/heading-element.ts
6
- import { headingClassNames } from "@rgrmdesign/rgrm-ds-core/heading";
8
+ import {
9
+ headingClassNames
10
+ } from "@rgrmdesign/rgrm-ds-core/heading";
7
11
  var RGRM_HEADING_TAG = "rgrm-heading";
8
12
  var DEFAULT_LEVEL = 2;
9
13
  function parseLevelAttribute(value) {
14
+ const level = Number(value);
15
+ return Number.isInteger(level) && level >= 1 && level <= 6 ? level : DEFAULT_LEVEL;
16
+ }
17
+ function parseAppearanceAttribute(value) {
18
+ if (value === null) {
19
+ return void 0;
20
+ }
10
21
  if (value === "display") {
11
22
  return "display";
12
23
  }
13
- const level = Number(value);
14
- return Number.isInteger(level) && level >= 1 && level <= 6 ? level : DEFAULT_LEVEL;
24
+ const appearance = Number(value);
25
+ return Number.isInteger(appearance) && appearance >= 1 && appearance <= 6 ? appearance : void 0;
15
26
  }
16
27
  var RgrmHeadingElement = class extends HTMLElement {
17
- static observedAttributes = ["level"];
28
+ static observedAttributes = ["level", "appearance"];
18
29
  #inner = document.createElement("h2");
19
30
  connectedCallback() {
20
31
  this.#render();
21
32
  }
22
33
  attributeChangedCallback(name) {
23
- if (name === "level") {
34
+ if (name === "level" || name === "appearance") {
24
35
  this.#render();
25
36
  }
26
37
  }
27
38
  #render() {
28
39
  const level = parseLevelAttribute(this.getAttribute("level"));
29
- const tagName = level === "display" ? "h1" : `h${level}`;
40
+ const appearance = parseAppearanceAttribute(this.getAttribute("appearance")) ?? level;
41
+ const tagName = `h${level}`;
30
42
  if (this.#inner.localName !== tagName) {
31
43
  const next = document.createElement(tagName);
32
44
  while (this.#inner.firstChild) {
@@ -38,7 +50,7 @@ var RgrmHeadingElement = class extends HTMLElement {
38
50
  this.#inner = next;
39
51
  }
40
52
  this.#mountInner();
41
- this.#inner.className = headingClassNames(level);
53
+ this.#inner.className = headingClassNames(appearance);
42
54
  }
43
55
  #mountInner() {
44
56
  if (this.#inner.parentNode === this) {
@@ -61,4 +73,4 @@ export {
61
73
  RgrmHeadingElement,
62
74
  headingClassNames2 as headingClassNames
63
75
  };
64
- //# sourceMappingURL=chunk-LPYKX4DJ.js.map
76
+ //# sourceMappingURL=chunk-L3CUOEDZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/heading/index.ts","../src/heading/heading-element.ts"],"sourcesContent":["import '@rgrmdesign/rgrm-ds-css/heading';\n\nexport {\n headingClassNames,\n type HeadingAppearance,\n type HeadingLevel,\n} from '@rgrmdesign/rgrm-ds-core/heading';\nexport { RGRM_HEADING_TAG, RgrmHeadingElement } from './heading-element.js';\n\nimport { RGRM_HEADING_TAG, RgrmHeadingElement } from './heading-element.js';\n\nif (!customElements.get(RGRM_HEADING_TAG)) {\n customElements.define(RGRM_HEADING_TAG, RgrmHeadingElement);\n}\n","import {\n headingClassNames,\n type HeadingAppearance,\n type HeadingLevel,\n} from '@rgrmdesign/rgrm-ds-core/heading';\n\nexport const RGRM_HEADING_TAG = 'rgrm-heading';\n\nconst DEFAULT_LEVEL: HeadingLevel = 2;\n\nfunction parseLevelAttribute(value: string | null): HeadingLevel {\n const level = Number(value);\n return Number.isInteger(level) && level >= 1 && level <= 6\n ? (level as HeadingLevel)\n : DEFAULT_LEVEL;\n}\n\nfunction parseAppearanceAttribute(value: string | null): HeadingAppearance | undefined {\n if (value === null) {\n return undefined;\n }\n if (value === 'display') {\n return 'display';\n }\n const appearance = Number(value);\n return Number.isInteger(appearance) && appearance >= 1 && appearance <= 6\n ? (appearance as HeadingAppearance)\n : undefined;\n}\n\nexport class RgrmHeadingElement extends HTMLElement {\n static readonly observedAttributes = ['level', 'appearance'];\n\n #inner: HTMLHeadingElement = document.createElement('h2');\n\n connectedCallback(): void {\n this.#render();\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'level' || name === 'appearance') {\n this.#render();\n }\n }\n\n #render(): void {\n const level = parseLevelAttribute(this.getAttribute('level'));\n const appearance = parseAppearanceAttribute(this.getAttribute('appearance')) ?? level;\n const tagName = `h${level}`;\n\n if (this.#inner.localName !== tagName) {\n const next = document.createElement(tagName) as HTMLHeadingElement;\n while (this.#inner.firstChild) {\n next.appendChild(this.#inner.firstChild);\n }\n if (this.#inner.parentNode === this) {\n this.replaceChild(next, this.#inner);\n }\n this.#inner = next;\n }\n\n this.#mountInner();\n this.#inner.className = headingClassNames(appearance);\n }\n\n #mountInner(): void {\n if (this.#inner.parentNode === this) {\n return;\n }\n\n while (this.firstChild) {\n this.#inner.appendChild(this.firstChild);\n }\n\n this.appendChild(this.#inner);\n }\n}\n"],"mappings":";AAAA,OAAO;AAEP;AAAA,EACE,qBAAAA;AAAA,OAGK;;;ACNP;AAAA,EACE;AAAA,OAGK;AAEA,IAAM,mBAAmB;AAEhC,IAAM,gBAA8B;AAEpC,SAAS,oBAAoB,OAAoC;AAC/D,QAAM,QAAQ,OAAO,KAAK;AAC1B,SAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,SAAS,IACpD,QACD;AACN;AAEA,SAAS,yBAAyB,OAAqD;AACrF,MAAI,UAAU,MAAM;AAClB,WAAO;AAAA,EACT;AACA,MAAI,UAAU,WAAW;AACvB,WAAO;AAAA,EACT;AACA,QAAM,aAAa,OAAO,KAAK;AAC/B,SAAO,OAAO,UAAU,UAAU,KAAK,cAAc,KAAK,cAAc,IACnE,aACD;AACN;AAEO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,OAAgB,qBAAqB,CAAC,SAAS,YAAY;AAAA,EAE3D,SAA6B,SAAS,cAAc,IAAI;AAAA,EAExD,oBAA0B;AACxB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,yBAAyB,MAAoB;AAC3C,QAAI,SAAS,WAAW,SAAS,cAAc;AAC7C,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEA,UAAgB;AACd,UAAM,QAAQ,oBAAoB,KAAK,aAAa,OAAO,CAAC;AAC5D,UAAM,aAAa,yBAAyB,KAAK,aAAa,YAAY,CAAC,KAAK;AAChF,UAAM,UAAU,IAAI,KAAK;AAEzB,QAAI,KAAK,OAAO,cAAc,SAAS;AACrC,YAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,aAAO,KAAK,OAAO,YAAY;AAC7B,aAAK,YAAY,KAAK,OAAO,UAAU;AAAA,MACzC;AACA,UAAI,KAAK,OAAO,eAAe,MAAM;AACnC,aAAK,aAAa,MAAM,KAAK,MAAM;AAAA,MACrC;AACA,WAAK,SAAS;AAAA,IAChB;AAEA,SAAK,YAAY;AACjB,SAAK,OAAO,YAAY,kBAAkB,UAAU;AAAA,EACtD;AAAA,EAEA,cAAoB;AAClB,QAAI,KAAK,OAAO,eAAe,MAAM;AACnC;AAAA,IACF;AAEA,WAAO,KAAK,YAAY;AACtB,WAAK,OAAO,YAAY,KAAK,UAAU;AAAA,IACzC;AAEA,SAAK,YAAY,KAAK,MAAM;AAAA,EAC9B;AACF;;;ADjEA,IAAI,CAAC,eAAe,IAAI,gBAAgB,GAAG;AACzC,iBAAe,OAAO,kBAAkB,kBAAkB;AAC5D;","names":["headingClassNames"]}
@@ -0,0 +1,2 @@
1
+
2
+ export { }
package/dist/fonts.js ADDED
@@ -0,0 +1,3 @@
1
+ // src/fonts.ts
2
+ import "@rgrmdesign/rgrm-ds-css/fonts";
3
+ //# sourceMappingURL=fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/fonts.ts"],"sourcesContent":["import '@rgrmdesign/rgrm-ds-css/fonts';\n"],"mappings":";AAAA,OAAO;","names":[]}
@@ -1,4 +1,4 @@
1
- export { HeadingLevel, headingClassNames } from '@rgrmdesign/rgrm-ds-core/heading';
1
+ export { HeadingAppearance, HeadingLevel, headingClassNames } from '@rgrmdesign/rgrm-ds-core/heading';
2
2
 
3
3
  declare const RGRM_HEADING_TAG = "rgrm-heading";
4
4
  declare class RgrmHeadingElement extends HTMLElement {
@@ -2,7 +2,7 @@ import {
2
2
  RGRM_HEADING_TAG,
3
3
  RgrmHeadingElement,
4
4
  headingClassNames
5
- } from "../chunk-LPYKX4DJ.js";
5
+ } from "../chunk-L3CUOEDZ.js";
6
6
  export {
7
7
  RGRM_HEADING_TAG,
8
8
  RgrmHeadingElement,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { ButtonVariant, buttonClassNames } from '@rgrmdesign/rgrm-ds-core/button';
2
2
  export { RGRM_BUTTON_TAG, RgrmButtonElement } from './button/index.js';
3
- export { HeadingLevel, headingClassNames } from '@rgrmdesign/rgrm-ds-core/heading';
3
+ export { HeadingAppearance, HeadingLevel, headingClassNames } from '@rgrmdesign/rgrm-ds-core/heading';
4
4
  export { RGRM_HEADING_TAG, RgrmHeadingElement } from './heading/index.js';
5
5
  export { ParagraphSize, paragraphClassNames } from '@rgrmdesign/rgrm-ds-core/paragraph';
6
6
  export { RGRM_PARAGRAPH_TAG, RgrmParagraphElement } from './paragraph/index.js';
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  RGRM_HEADING_TAG,
8
8
  RgrmHeadingElement,
9
9
  headingClassNames
10
- } from "./chunk-LPYKX4DJ.js";
10
+ } from "./chunk-L3CUOEDZ.js";
11
11
  import {
12
12
  RGRM_PARAGRAPH_TAG,
13
13
  RgrmParagraphElement,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rgrmdesign/rgrm-ds-elements",
3
- "version": "0.2.1",
3
+ "version": "0.4.0",
4
4
  "description": "Web Components for the RGRM design system. Styles come from @rgrmdesign/rgrm-ds-css.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -29,6 +29,9 @@
29
29
  "./section": {
30
30
  "types": "./dist/section/index.d.ts",
31
31
  "import": "./dist/section/index.js"
32
+ },
33
+ "./fonts": {
34
+ "import": "./dist/fonts.js"
32
35
  }
33
36
  },
34
37
  "files": [
@@ -36,6 +39,7 @@
36
39
  ],
37
40
  "sideEffects": [
38
41
  "@rgrmdesign/rgrm-ds-css",
42
+ "./dist/fonts.js",
39
43
  "./dist/index.js",
40
44
  "./dist/button/index.js",
41
45
  "./dist/heading/index.js",
@@ -43,14 +47,14 @@
43
47
  "./dist/section/index.js"
44
48
  ],
45
49
  "dependencies": {
46
- "@rgrmdesign/rgrm-ds-core": "0.2.1",
47
- "@rgrmdesign/rgrm-ds-css": "0.2.1"
50
+ "@rgrmdesign/rgrm-ds-core": "0.3.0",
51
+ "@rgrmdesign/rgrm-ds-css": "0.4.0"
48
52
  },
49
53
  "peerDependencies": {
50
- "@rgrmdesign/rgrm-ds-tokens": ">=0.7.0"
54
+ "@rgrmdesign/rgrm-ds-tokens": ">=0.8.0"
51
55
  },
52
56
  "devDependencies": {
53
- "@rgrmdesign/rgrm-ds-tokens": "^0.7.0",
57
+ "@rgrmdesign/rgrm-ds-tokens": "^0.8.0",
54
58
  "rimraf": "^6.0.1",
55
59
  "tsup": "^8.5.1",
56
60
  "typescript": "^5.9.3"
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/heading/index.ts","../src/heading/heading-element.ts"],"sourcesContent":["import '@rgrmdesign/rgrm-ds-css/heading';\n\nexport { headingClassNames, type HeadingLevel } from '@rgrmdesign/rgrm-ds-core/heading';\nexport { RGRM_HEADING_TAG, RgrmHeadingElement } from './heading-element.js';\n\nimport { RGRM_HEADING_TAG, RgrmHeadingElement } from './heading-element.js';\n\nif (!customElements.get(RGRM_HEADING_TAG)) {\n customElements.define(RGRM_HEADING_TAG, RgrmHeadingElement);\n}\n","import { headingClassNames, type HeadingLevel } from '@rgrmdesign/rgrm-ds-core/heading';\n\nexport const RGRM_HEADING_TAG = 'rgrm-heading';\n\nconst DEFAULT_LEVEL: HeadingLevel = 2;\n\nfunction parseLevelAttribute(value: string | null): HeadingLevel {\n if (value === 'display') {\n return 'display';\n }\n const level = Number(value);\n return Number.isInteger(level) && level >= 1 && level <= 6\n ? (level as HeadingLevel)\n : DEFAULT_LEVEL;\n}\n\nexport class RgrmHeadingElement extends HTMLElement {\n static readonly observedAttributes = ['level'];\n\n #inner: HTMLHeadingElement = document.createElement('h2');\n\n connectedCallback(): void {\n this.#render();\n }\n\n attributeChangedCallback(name: string): void {\n if (name === 'level') {\n this.#render();\n }\n }\n\n #render(): void {\n const level = parseLevelAttribute(this.getAttribute('level'));\n const tagName = level === 'display' ? 'h1' : `h${level}`;\n\n if (this.#inner.localName !== tagName) {\n const next = document.createElement(tagName) as HTMLHeadingElement;\n while (this.#inner.firstChild) {\n next.appendChild(this.#inner.firstChild);\n }\n if (this.#inner.parentNode === this) {\n this.replaceChild(next, this.#inner);\n }\n this.#inner = next;\n }\n\n this.#mountInner();\n this.#inner.className = headingClassNames(level);\n }\n\n #mountInner(): void {\n if (this.#inner.parentNode === this) {\n return;\n }\n\n while (this.firstChild) {\n this.#inner.appendChild(this.firstChild);\n }\n\n this.appendChild(this.#inner);\n }\n}\n"],"mappings":";AAAA,OAAO;AAEP,SAAS,qBAAAA,0BAA4C;;;ACFrD,SAAS,yBAA4C;AAE9C,IAAM,mBAAmB;AAEhC,IAAM,gBAA8B;AAEpC,SAAS,oBAAoB,OAAoC;AAC/D,MAAI,UAAU,WAAW;AACvB,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,OAAO,KAAK;AAC1B,SAAO,OAAO,UAAU,KAAK,KAAK,SAAS,KAAK,SAAS,IACpD,QACD;AACN;AAEO,IAAM,qBAAN,cAAiC,YAAY;AAAA,EAClD,OAAgB,qBAAqB,CAAC,OAAO;AAAA,EAE7C,SAA6B,SAAS,cAAc,IAAI;AAAA,EAExD,oBAA0B;AACxB,SAAK,QAAQ;AAAA,EACf;AAAA,EAEA,yBAAyB,MAAoB;AAC3C,QAAI,SAAS,SAAS;AACpB,WAAK,QAAQ;AAAA,IACf;AAAA,EACF;AAAA,EAEA,UAAgB;AACd,UAAM,QAAQ,oBAAoB,KAAK,aAAa,OAAO,CAAC;AAC5D,UAAM,UAAU,UAAU,YAAY,OAAO,IAAI,KAAK;AAEtD,QAAI,KAAK,OAAO,cAAc,SAAS;AACrC,YAAM,OAAO,SAAS,cAAc,OAAO;AAC3C,aAAO,KAAK,OAAO,YAAY;AAC7B,aAAK,YAAY,KAAK,OAAO,UAAU;AAAA,MACzC;AACA,UAAI,KAAK,OAAO,eAAe,MAAM;AACnC,aAAK,aAAa,MAAM,KAAK,MAAM;AAAA,MACrC;AACA,WAAK,SAAS;AAAA,IAChB;AAEA,SAAK,YAAY;AACjB,SAAK,OAAO,YAAY,kBAAkB,KAAK;AAAA,EACjD;AAAA,EAEA,cAAoB;AAClB,QAAI,KAAK,OAAO,eAAe,MAAM;AACnC;AAAA,IACF;AAEA,WAAO,KAAK,YAAY;AACtB,WAAK,OAAO,YAAY,KAAK,UAAU;AAAA,IACzC;AAEA,SAAK,YAAY,KAAK,MAAM;AAAA,EAC9B;AACF;;;ADtDA,IAAI,CAAC,eAAe,IAAI,gBAAgB,GAAG;AACzC,iBAAe,OAAO,kBAAkB,kBAAkB;AAC5D;","names":["headingClassNames"]}