@oslokommune/punkt-react 12.34.4 → 12.35.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oslokommune/punkt-react",
3
- "version": "12.34.4",
3
+ "version": "12.35.0",
4
4
  "description": "React komponentbibliotek til Punkt, et designsystem laget av Oslo Origo",
5
5
  "homepage": "https://punkt.oslo.kommune.no",
6
6
  "author": "Team Designsystem, Oslo Origo",
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@lit-labs/ssr-dom-shim": "^1.2.1",
40
40
  "@lit/react": "^1.0.7",
41
- "@oslokommune/punkt-elements": "^12.34.4",
41
+ "@oslokommune/punkt-elements": "^12.35.0",
42
42
  "angular-html-parser": "^6.0.2",
43
43
  "html-format": "^1.1.7",
44
44
  "prettier": "^3.3.3",
@@ -49,7 +49,7 @@
49
49
  "devDependencies": {
50
50
  "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
51
51
  "@oslokommune/punkt-assets": "^12.34.4",
52
- "@oslokommune/punkt-css": "^12.34.4",
52
+ "@oslokommune/punkt-css": "^12.35.0",
53
53
  "@testing-library/jest-dom": "^6.5.0",
54
54
  "@testing-library/react": "^16.0.1",
55
55
  "@testing-library/user-event": "^14.5.2",
@@ -112,5 +112,5 @@
112
112
  "url": "https://github.com/oslokommune/punkt/issues"
113
113
  },
114
114
  "license": "MIT",
115
- "gitHead": "437c77a182d85a710e0d5adbf492ea7585a0d472"
115
+ "gitHead": "897a80f0520cca735bc514c074d11a7e750079cc"
116
116
  }
@@ -1,7 +1,7 @@
1
1
  import { PktElConstructor, PktElType } from '@/interfaces/IPktElements'
2
2
  import { createComponent } from '@lit/react'
3
3
  import React, { ForwardRefExoticComponent, LegacyRef } from 'react'
4
- import { FC, ReactNode, Ref, forwardRef } from 'react'
4
+ import { FC, forwardRef } from 'react'
5
5
  import { PktAccordion as PktElAccordion } from '@oslokommune/punkt-elements'
6
6
  import { TPktAccordionSkin } from '@oslokommune/punkt-elements'
7
7
 
@@ -28,14 +28,12 @@ const LitComponent: FC<IPktAccordion> = createComponent({
28
28
  displayName: 'PktAccordion',
29
29
  }) as ForwardRefExoticComponent<IPktAccordion>
30
30
 
31
- export const PktAccordion: FC<IPktAccordion> = forwardRef(
32
- ({ compact = false, skin = 'borderless', ariaLabelledBy, children, ...props }: IPktAccordion, ref) => {
33
- return (
34
- <LitComponent data-testid="pkt-accordion" {...props} ref={ref} aria-labelledby={ariaLabelledBy}>
35
- <div className="pkt-contents">{children}</div>
36
- </LitComponent>
37
- )
38
- },
39
- )
31
+ export const PktAccordion: FC<IPktAccordion> = forwardRef(({ children, ...props }: IPktAccordion, ref) => {
32
+ return (
33
+ <LitComponent data-testid="pkt-accordion" {...props} ref={ref}>
34
+ <div className="pkt-contents">{children}</div>
35
+ </LitComponent>
36
+ )
37
+ })
40
38
 
41
39
  PktAccordion.displayName = 'PktAccordion'
@@ -0,0 +1,78 @@
1
+ import '@testing-library/jest-dom'
2
+ import { axe, toHaveNoViolations } from 'jest-axe'
3
+ import { PktHeading } from './Heading'
4
+ import { render, screen, waitFor } from '@testing-library/react'
5
+ import React, { createRef } from 'react'
6
+
7
+ expect.extend(toHaveNoViolations)
8
+
9
+ describe('PktHeading', () => {
10
+ test('renders without errors', async () => {
11
+ render(<PktHeading />)
12
+ await window.customElements.whenDefined('pkt-heading')
13
+ })
14
+
15
+ test('renders with different levels', async () => {
16
+ const { container } = render(
17
+ <>
18
+ <PktHeading level={1}>Heading 1</PktHeading>
19
+ <PktHeading level={2}>Heading 2</PktHeading>
20
+ <PktHeading level={3}>Heading 3</PktHeading>
21
+ </>,
22
+ )
23
+ await window.customElements.whenDefined('pkt-heading')
24
+
25
+ const headings = container.querySelectorAll('pkt-heading')
26
+ expect(headings[0].querySelector('h1')).toBeInTheDocument()
27
+ expect(headings[1].querySelector('h2')).toBeInTheDocument()
28
+ expect(headings[2].querySelector('h3')).toBeInTheDocument()
29
+ })
30
+
31
+ test('renders with different sizes', async () => {
32
+ const ref = createRef<any>()
33
+ const { container } = render(<PktHeading size="xlarge">Large Heading</PktHeading>)
34
+ await window.customElements.whenDefined('pkt-heading')
35
+
36
+ const heading = container.querySelector('.pkt-heading')
37
+ const headingElement = container.querySelector('pkt-heading')
38
+ expect(heading).toHaveClass('pkt-heading--xlarge')
39
+ expect(headingElement).toHaveAttribute('size', 'xlarge')
40
+ })
41
+
42
+ test('renders with visually hidden prop', async () => {
43
+ const { container } = render(<PktHeading visuallyHidden>Hidden Heading</PktHeading>)
44
+ await window.customElements.whenDefined('pkt-heading')
45
+
46
+ const heading = container.querySelector('.pkt-heading')
47
+ const headingElement = container.querySelector('pkt-heading')
48
+ expect(heading).toHaveClass('pkt-sr-only')
49
+ expect(headingElement).toHaveAttribute('visuallyHidden')
50
+ })
51
+
52
+ test('renders with noSpacing and align props', async () => {
53
+ const { container } = render(
54
+ <PktHeading noSpacing align="center">
55
+ Center Heading
56
+ </PktHeading>,
57
+ )
58
+ await window.customElements.whenDefined('pkt-heading')
59
+
60
+ const heading = container.querySelector('.pkt-heading')
61
+ const headingElement = container.querySelector('pkt-heading')
62
+ expect(heading).toHaveClass('pkt-heading--noSpacing')
63
+ expect(headingElement).toHaveAttribute('align', 'center')
64
+ })
65
+
66
+ describe('accessibility', () => {
67
+ it('renders with no wcag errors with axe', async () => {
68
+ const { container } = render(
69
+ <PktHeading level={1} size="large">
70
+ Accessible Heading
71
+ </PktHeading>,
72
+ )
73
+ await window.customElements.whenDefined('pkt-heading')
74
+ const results = await axe(container)
75
+ expect(results).toHaveNoViolations()
76
+ })
77
+ })
78
+ })
@@ -0,0 +1,30 @@
1
+ import { createComponent } from '@lit/react'
2
+ import { FC, forwardRef } from 'react'
3
+ import { PktElConstructor, PktElType } from '@/interfaces/IPktElements'
4
+ import { PktHeading as PktElHeading, TPktHeadingLevel, TPktHeadingSize } from '@oslokommune/punkt-elements'
5
+ import React, { ForwardRefExoticComponent } from 'react'
6
+
7
+ export interface IPktHeading extends PktElType {
8
+ level?: TPktHeadingLevel
9
+ size?: TPktHeadingSize
10
+ visuallyHidden?: boolean
11
+ noSpacing?: boolean
12
+ align?: 'start' | 'center' | 'end'
13
+ }
14
+
15
+ const LitComponent: FC<IPktHeading> = createComponent({
16
+ tagName: 'pkt-heading',
17
+ elementClass: PktElHeading as PktElConstructor<HTMLElement>,
18
+ react: React,
19
+ displayName: 'PktHeading',
20
+ }) as ForwardRefExoticComponent<IPktHeading>
21
+
22
+ export const PktHeading: FC<IPktHeading> = forwardRef(({ children, ...props }: IPktHeading, ref) => {
23
+ return (
24
+ <LitComponent data-testid="pkt-heading" {...props} ref={ref}>
25
+ {children}
26
+ </LitComponent>
27
+ )
28
+ })
29
+
30
+ PktHeading.displayName = 'PktHeading'