mirror of
https://github.com/shoelace-style/webawesome.git
synced 2026-01-12 04:09:12 +00:00
* Exclude Create link from sidebar, for reals this time * Fix bug * Very rough prototype of look & feel * a11y * Clean up data files * Automatically generate theme metadata * Read look & feel params straight from theme * First stab at dimensionality icons * Fix rounding 0 bug * Add border width slider * [Image-comparer] Expose wrapper as part * [Comparer] `pointer-events: none` while dragging * Dark mode slider * Adjust increments and ranges for look + feel sliders * Fix preview * Fix bug where dark mode was not inverted * Ability to select panel from URL * Create mixin for Vue form controls and use it in `<swatch-select>` * Prototype of slider min/max icon buttons * Nx tooltip * Icons * Prevent failed request * info-tip: Support passing text as prop * Clearable * [Brutalist] Match `--wa-shadow-offset-x-scale` to `--wa-shadow-offset-y-scale` * Add 'Blocky' dimension (derived from Awesome theme) * Only show Reset button when `clearable` is set * Remove `clearable` from Look & Feel sliders * Add tooltips to min/max buttons * Remove superfluous `aria-label` * Do not assume that all hyphens in URLs mean nesting, make it explicit * Formatting * Fix bug where styles were not applied on page load * Update Subtle dimension to maximize compatibility * `<wa-scoped>`: Do not allow non-template children * Workaround for card not updating * Update Glossy dimension to maximize compatibility * Sync scrolling between regular and inverted preview * Fix bug * Make changing the base theme reset customizations * Fix palette page * Remove cancel button from editable text * Don't error in theme pages * Update Playful dimension to maximize compatibility * Rename 'Look and Feel' to 'Elements' for better parallel structure * Hide dimensionality controls * Make back icon motion more subtle * Expand spacing slider bounds * Add `tabindex="-1"` where missing in theme showcase * Remove extraneous gap from theme headers * fix edit button bug * rename comparer => comparison; fix aria-controls * Always save theme name on blur * Add changelog for themer and new patterns category --------- Co-authored-by: lindsaym-fa <dev@lindsaym.design> Co-authored-by: Cory LaViska <cory@abeautifulsite.net>
43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
/**
|
|
* Make the first letter of a string uppercase
|
|
* @param {*} str
|
|
* @returns
|
|
*/
|
|
export function capitalize(str) {
|
|
str += '';
|
|
return str[0].toUpperCase() + str.slice(1);
|
|
}
|
|
|
|
/**
|
|
* Convert a readable string to a slug.
|
|
* @param {*} str - Input string. If argument is not a string, it will be stringified.
|
|
* @returns {string} - The slugified string
|
|
*/
|
|
export function slugify(str) {
|
|
return (str + '')
|
|
.normalize('NFD')
|
|
.replace(/[\u0300-\u036f]/g, '') // Convert accented letters to ASCII
|
|
.replace(/[^\w\s-]/g, '') // Remove remaining non-ASCII characters
|
|
.trim()
|
|
.replace(/\s+/g, '-') // Convert whitespace to hyphens
|
|
.toLowerCase();
|
|
}
|
|
|
|
/**
|
|
* Convert a string to camel case.
|
|
* @param {string} str - The string to convert.
|
|
* @returns {string} The camel case string.
|
|
*/
|
|
export function camelCase(str) {
|
|
return str.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
|
|
}
|
|
|
|
/**
|
|
* Convert a string to kebab case.
|
|
* @param {string} str - The string to convert.
|
|
* @returns {string} The kebab case string.
|
|
*/
|
|
export function kebabCase(str) {
|
|
return str.replace(/([A-Z])/g, '-$1').toLowerCase();
|
|
}
|