@hyperfrontend/ui-utils/selectorselector
CSS-selector builder, validators, and DOM-query shortcuts that produce safer selectors than ad-hoc string concatenation.
CssSelector is a fluent builder for composing selectors out of tag, id, class, and attribute parts; the validator family (validateCssName, validateStringArgument, validateIdSelector, validateClassSelector, validateAttributeSelector, isValidCssSelector) rejects inputs that would produce malformed or surprising selectors before they reach the DOM. The query helpers (select, selectBy, selectByElement, selectAllElements, selectById, selectByClass, selectByAttribute) wrap querySelector / querySelectorAll so callers don't have to repeat the boilerplate or remember the typed return shapes.
API Reference
ƒ Functions
Parameters
| Name | Type | Description |
|---|---|---|
§selector | string | The CSS selector string to validate |
Returns
booleanExample
Validating CSS selectors
isValidCssSelector('.my-class')
// => true
isValidCssSelector('#header nav > ul')
// => true
isValidCssSelector('[invalid')
// => falseReturns
CssSelectorExample
Creating empty selector
const selector = select().class('active').id('panel')
selector.toString() // => '.active#panel'Returns
CssSelectorExample
Selecting all elements
const selector = selectAllElements().class('visible')
selector.toString() // => '*.visible'Parameters
| Name | Type | Description |
|---|---|---|
§selector | string | The initial CSS selector string |
Returns
CssSelectorExample
Creating selector from string
const selector = selectBy('article').class('featured')
selector.toString() // => 'article.featured'Parameters
Returns
CssSelectorExample
Selecting by attribute
selectByAttribute('disabled').toString() // => '[disabled]'
selectByAttribute('data-role', 'button').toString() // => '[data-role="button"]'Parameters
| Name | Type | Description |
|---|---|---|
§className | string | The class name to select |
Returns
CssSelectorExample
Selecting by class
const selector = selectByClass('highlighted')
selector.toString() // => '.highlighted'Parameters
| Name | Type | Description |
|---|---|---|
§tagName | unknown | The HTML tag name to select |
Returns
CssSelectorExample
Selecting by element tag
const selector = selectByElement('button').class('primary')
selector.toString() // => 'button.primary'Parameters
| Name | Type | Description |
|---|---|---|
§id | string | The ID to select |
Returns
CssSelectorExample
Selecting by ID
const selector = selectById('main-content')
selector.toString() // => '#main-content'Parameters
| Name | Type | Description |
|---|---|---|
§attribute | string | The attribute name to validate |
Example
Validating attribute selector
validateAttributeSelector('data-testid') // passes
validateAttributeSelector('attr=value') // throws ErrorParameters
| Name | Type | Description |
|---|---|---|
§className | string | The class name to validate |
Example
Validating class selector
validateClassSelector('btn-primary') // passes
validateClassSelector('1invalid') // throws ErrorParameters
Example
Validating CSS name format
validateCssName('my-class', 'className') // passes
validateCssName('123invalid', 'className') // throws ErrorParameters
| Name | Type | Description |
|---|---|---|
§id | string | The ID to validate |
Example
Validating ID selector
validateIdSelector('main-header') // passes
validateIdSelector('') // throws ErrorParameters
Example
Validating string arguments
validateStringArgument('valid', 'name') // passes
validateStringArgument('', 'name') // throws Error
validateStringArgument(' ', 'name') // throws Error (whitespace only)◇ Classes
Properties
Methods
active(): CssSelectorattribute(attribute: string, value: string): CssSelectorchildOf(parentSelector: CssSelector): CssSelectorclass(className: string): CssSelectorfirst(): CssSelectorfocus(): CssSelectorfollowingSiblings(siblingSelector: CssSelector): CssSelectorhover(): CssSelectorid(id: string): CssSelectorlast(): CssSelectornextSibling(siblingSelector: CssSelector): CssSelectornth(n: number): CssSelectorparentOf(childSelector: CssSelector): CssSelectorpseudo(pseudo: string): CssSelectortoString(): string