Skip to content

Commit

Permalink
feat: add define to package entrypoint (#22)
Browse files Browse the repository at this point in the history
* feat: add define to entrypoint

* feat: add define to package entrypoint
  • Loading branch information
joshblack authored Feb 29, 2024
1 parent 635e2c1 commit 15464e5
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 25 deletions.
5 changes: 5 additions & 0 deletions .changeset/witty-ears-shop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@primer/live-region-element": minor
---

Add define behavior to entrypoint, remove define entrypoint
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 7 additions & 14 deletions packages/live-region-element/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,6 @@
},
"import": "./dist/esm/index.js",
"require": "./dist/cjs/index.cjs"
},
"./define": {
"types": {
"import": "./dist/esm/define.d.ts",
"require": "./dist/cjs/define.d.cts"
},
"node": {
"import": "./dist/esm/node/define.js",
"require": "./dist/cjs/node/define.cjs"
},
"import": "./dist/esm/define.js",
"require": "./dist/cjs/define.cjs"
}
},
"repository": {
Expand Down Expand Up @@ -68,9 +56,14 @@
},
"sideEffects": [
"./src/define.ts",
"./src/index.ts",
"./dist/esm/define.js",
"./dist/cjs/define.js",
"./dist/esm/index.js",
"./dist/cjs/define.cjs",
"./dist/cjs/index.cjs",
"./dist/esm/node/define.js",
"./dist/cjs/node/define.js"
"./dist/esm/node/index.js",
"./dist/cjs/node/define.cjs",
"./dist/cjs/node/index.cjs"
]
}
8 changes: 4 additions & 4 deletions packages/live-region-element/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import typescript from 'rollup-plugin-typescript2'
*/
const config = [
{
input: ['./src/index.ts', './src/define.ts'],
input: ['./src/index.ts'],
external: ['@lit-labs/ssr-dom-shim'],
plugins: [typescript({tsconfig: 'tsconfig.build.json'}), esbuild()],
output: {
Expand All @@ -17,7 +17,7 @@ const config = [
},
},
{
input: ['./src/index.ts', './src/define.ts'],
input: ['./src/index.ts'],
external: ['@lit-labs/ssr-dom-shim'],
plugins: [typescript({tsconfig: 'tsconfig.build.json'}), esbuild()],
output: {
Expand All @@ -27,7 +27,7 @@ const config = [
},
},
{
input: ['./src/index.ts', './src/define.ts'],
input: ['./src/index.ts'],
external: ['@lit-labs/ssr-dom-shim'],
plugins: [
esbuild(),
Expand All @@ -50,7 +50,7 @@ const config = [
},
},
{
input: ['./src/index.ts', './src/define.ts'],
input: ['./src/index.ts'],
external: ['@lit-labs/ssr-dom-shim'],
plugins: [
esbuild(),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {afterEach, describe, test, expect} from 'vitest'
import {announce, announceFromElement} from '../'
import {LiveRegionElement} from '../live-region-element'
import '../define'

describe('Global announcements', () => {
afterEach(() => {
Expand Down
1 change: 1 addition & 0 deletions packages/live-region-element/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import './define'
import {LiveRegionElement, templateContent, type AnnounceOptions} from './live-region-element'

type GlobalAnnounceOptions = AnnounceOptions & {
Expand Down
21 changes: 19 additions & 2 deletions packages/live-region-element/src/live-region-element.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ class LiveRegionElement extends HTMLElement {
* corresponding politeness level
*/
public announceFromElement(element: HTMLElement, options?: AnnounceOptions) {
if (element.textContent) {
this.announce(element.textContent, options)
const textContent = getTextContent(element)
if (textContent !== '') {
this.announce(textContent, options)
}
}

Expand All @@ -56,6 +57,22 @@ class LiveRegionElement extends HTMLElement {
}
}

function getTextContent(element: HTMLElement): string {
let value: string | null = ''

if (element.hasAttribute('aria-label')) {
value = element.getAttribute('aria-label')
// eslint-disable-next-line github/no-innerText
} else if (element.innerText) {
// eslint-disable-next-line github/no-innerText
value = element.innerText
} else if (element.textContent) {
value = element.textContent
}

return value ? value.trim() : ''
}

let template: HTMLTemplateElement | null = null

const templateContent = `
Expand Down
2 changes: 0 additions & 2 deletions website/src/components/Layout.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
'use client'

import '@primer/live-region-element/define'

export function Layout({children}: React.PropsWithChildren) {
return children
}

0 comments on commit 15464e5

Please sign in to comment.