Enter a search term above to see results...
On This Page
What's New?
Important Note - This is a pre-release version and APIs will change quickly. Before
1.0release all breaking changes will beminorreleases and featurespatchreleases.Minorreleases will occur approximately every 2 weeks. Please note after1.0Semver will be followed using normal protocols.
0.18.0
xx.xx.xxxx
Utils
- Enhancement -
remove()now removes all matching instances from an array instead of just the first. Uses an optimized two-pointer approach for O(n) performance. Returns the count of removed elements for backward compatibility.
0.17.0
Released 09.19.2025
Author’s Notes
One of the largest steps to writing all the missing UI components necessary to ship SUI is solidifying key libraries like transition and attach which are used to handle the internal guts of the library. This release ships attach which uses css anchors to handle element positioning and is a big step towards that goal.
This took a bit longer than expected as the original draft of attach used css anchors for positioning exclusively with position-area. This is faster than doing it in javascript but has the monumental downside that fallback positions are not reported in any meaningful way that can be observed with javascript. This means if a fallback position is used by the browser the only way to determine which one is used is by observing the element itself and calculating the position. This made things like automatic arrow nearly impossible. The plugin was then rewritten using a hybrid approach anchor for the actual top/left/bottom/right values, but javascript for positioning. This gives us the best of both worlds and more control of how fallback positions are used.
Major Features
- Attach - Added new
attachbehavior that allows you to position elements relative to other elements usingcss anchorpositioning.
Breaking Changes
- Utils -
deepExtendnow preserves non clonables by default. This is to prevent very common scenarios where extend is used with custom classes or dom elements where the original reference should be maintained. Note this still can be overwritten usingdeepExtend(obj1, obj2, { preserveNonCloneable: false }); - Query - Renamed
containingParenttopositioningParentand added support for values that can causeposition: fixedto be relative to different coordinate systems.containingParentis still available but will always return theoffsetParentof an element. This is faster but MAY NOT always be the proper parent for positioning.
CSS Tokens
- Feature - Added colored borders like
--red-border,--blue-borderetc.
Query
- Feature - Added
position()method that replacescontainerPosition()with enhanced API supporting multiple coordinate systems (global, local, relative) and proper empty selection handling. - Feature - Added
pagePosition()method for getting/setting element position relative to the document. - Feature - Added
dimensions()method returning comprehensive dimension information including content, padding, border, margin, and scroll dimensions. - Feature - Added
intersects()method for checking element intersection with configurable threshold, side detection, and detailed intersection data. - Feature - Added
isInView()method for detecting viewport intersection with optional threshold and fully visible options. - Feature - Added
positioningParent()method that correctly identifies positioning contexts for both absolute and fixed elements, including modern CSS properties like transform, filter, perspective, contain, and will-change. - Feature - Added
show()method for showing hidden elements with optionalcalculateparameter to determine natural display values. - Feature - Added
hide()method for hiding elements by setting display to ‘none’. - Feature - Added
toggle()method for toggling element visibility with optionalcalculateparameter. - Feature - Added
removeData()method for removing data attributes from elements. Supports space-separated strings or arrays for removing multiple attributes at once. - Enhancement -
naturalDisplay()now acceptscalculateparameter to control whether to analyze stylesheets (default: true) or use tag-based lookup only. - Enhancement -
isVisible()now checks forvisibility: hiddenandcontent-visibility: hiddenby default, with newincludeVisibilityparameter for control. - Enhancement -
containingParent()now provides simpleoffsetParentwrapper functionality alongside the newpositioningParent()method. - Enhancement -
closest()now supports passing DOM elements directly as the selector parameter, checking containment using the element’scontains()method. - Bug - Fixed CSS nesting parsing in
naturalDisplay()to properly resolve nested selectors with&parent references (e.g.,& .grid-container). - Bug - Fixed
position()method to returnundefinedfor empty selections instead of empty array when used as getter. - Bug - Fixed issue where using non clonables as settings like query collections, or custom classes wouldn’t work as expected. This was related to the default behavior of deepExtend and clone (see breaking changes).
- Bug - Fixed bug in
iswhere it would return true for non-existent selectors
Utils
- Feature - Clone now has a new setting
preserveDOMwhich will not clone DOM nodes if present. This can be useful in scenarios where you want to clone an object with references to the live DOM you want to maintain - Feature - Added
log()function for flexible logging with formatting, namespacing, timestamps, and JSON output support - Feature - Renamed
errors.jsmodule todebug.jsto better reflect its logging and debugging capabilities
0.16.1-2
Released 08.21.2025
Core
Bugs
- Build - Reverted
@semantic-ui/coreto use dist version for ESM. This is because Rollup will not parse?rawCSS links (Rollup is used on jsDelivr to power the playground).
0.16.0
Released 08.20.2025
UI Changes
semantic-ui/core is now organized into three groups: primitives, components, and behaviors
- Primitives include JSON specs and are essential building blocks like
modalandbutton. - Components are built with primitives and have more complex functionality, for example,
global-searchortheme-switcher. - Behaviors do not export web components but provide behaviors like
transitionorposition.
Major Features
- UI - Added many new components:
global-search,inpage-menu,mobile-menu-toggle,mobile-menu,panels,theme-switcher. - Behaviors - Added new
transitionbehavior that uses the Web Animations API to animate elements. See example. - Query - Added generalized plugin architecture for Query along with examples in docs. See Query plugins guide.
- Templates - Added rerender and guard blocks for controlling template reactivity:
{#rerender expression}forces complete re-evaluation,{#guard expression}only updates when computed values change.
Specs
- UI - Refactored exports to use JSON imports. Added new internal build step of JSON → JS exports. ESM will now directly use
srcwithout translation! - UI - Added JS object exports for UI specs.
Query
- Feature - Added
onNext()method for promise-based event waiting, enabling modern async/await patterns with automatic cleanup and optional timeout support. See example. - Feature - Added
add()method for combining multiple element collections with automatic deduplication. See example. - Feature - Added
appendTo()method for appending elements as last child of target. - Feature - Added
prependTo()method for prepending elements as first child of target. - Feature - Added
isVisible()method for checking if ALL elements have layout dimensions using moderngetBoundingClientRect()API, with optional opacity checking. - Feature - Added
naturalDisplay()for getting the natural display value of elements (ignoring display: none rules). - Feature - You can now use
documentFragmentwith content manipulation likeappend()andprepend(). - Improvement -
clippingParent()now correctly detects all CSS properties that create clipping contexts includingcontain(paint/layout/size/strict),clip-path, andmask/mask-imagein addition tooverflow. - Improvement -
trigger()now triggers native event handlers. UsedispatchEventto avoid this behavior. - Improvement -
.submit()now usesrequestSubmitso that it can trigger native event handlers and be cancelable. - Bug -
dataContext()now returns the entire data context including state. - Bug - Fixed
initializenot properly chaining. - Bug - Fixed
addClass,toggleClass, andremoveClassto not error onundefined.
Templates
- Bug - Fixed issue where auto-self-closing custom elements in templates only worked with one
-(i.e.,<foo-bar/>but not<foo-baz-bar/>).
Reaction
- Perf - Removed unnecessary
cloneinguard.
Utils
- Feature - Added
deepExtend()for deep merging objects with nested property combining, array/date cloning, and optional custom class preservation. - Feature - Added
adoptStylesheet()for adopting CSS stylesheets to documents or shadow roots with intelligent caching. - Feature - Added
extractCSS()for extracting CSS rules matching selectors from various stylesheet sources with optional text output. - Feature - Added
scopeStyles()for scoping CSS rules with configurable :host replacement and root element handling. - Feature - Added Set and Map support to
each(),asyncEach(), andasyncMap()functions for iterating over ES6 collections. - Feature - Added
isSet()andisMap()type checking helpers for ES6 collection validation. - Feature - Added
isDevelopmentconstant for comprehensive development environment detection across Node.js, Vite, Vercel, Netlify, cloud dev environments (Codespaces, GitPod), Nuxt, and React Native. - Feature - Added
isCIconstant for detecting CI/CD environments including GitHub Actions, GitLab CI, Jenkins, CircleCI, Travis, and many other platforms. - Enhancement - Enhanced
clone()function withpreserveNonCloneableoption to preserve custom class instances instead of flattening them. - Enhancement - Modified
isEmptyto handle Set, Map, and other iterables. Assumes all nullish keys mean empty. - Chore - Restructured tests for utils package to be organized by category. Renamed iterators to loops.
- Breaking - Renamed
ssr.jsmodule toenvironment.jsto better reflect its expanded scope beyond just server-side rendering detection.
0.15.0
Released 07.24.2025
Major Features
- Feature - Added support for binding events from inside templates using
@handlers like<div @click={doSomething}></div>. See component event guide. - Feature - Added support for binding element properties from inside templates like
<input type="checkbox" .checked={checked}>. See template expressions guide. - Feature - Added
registerHelper()andregisterHelpers()functions for registering custom template helpers.
Templates
- Feature - Added template helpers:
default,truncate,first,last,roundNumber,roundDecimalwithroundalias,lowercase,uppercase.
Utils
- Feature - Added
truncateutility function to utils package for word-boundary aware text truncation. See example.
Reactivity
- Bug - Fixed bug in
Reaction.getSource()when breakpointed in a template helper. - Change -
Reaction.getSource()no longer returns the stack; this makes it clearer when invoking it from Chrome console as the return will produce its own log.
Components
- Bug - Fixed
ui-inputdebouncesetting not using the new object signature from0.14.0, causing it to fail. - Bug - Fixed debounce/throttle parameter overload handling where
waitparameter as object wasn’t properly handled.
Infrastructure
- Chore - Updated Vitest to v3.2.4 across all packages for consistency.
- Chore - Migrated from deprecated
workspaceconfiguration to moderntest.projectsin Vitest configs.
0.14.2
Released 07.23.2025
- Feature - Snippets can now be used before they are defined in templates.
- Bug - Fixed bug where snippet data could be overwritten incorrectly when parent data changed.
- Feature - Conditionals can now be used inline in HTML attributes like
<div class="{#if condition}value{/if}"></div>. - Bug - Fixed reactive data expressions in properties and events being incorrectly stringified.
0.14.1
Released 07.22.2025
- Chore - Updated all npm dependencies for project and docs.
- Bug - Fixed bug with
{#html}blocks not rendering properly with SSR.
0.14.0
Released 07.22.2025
Components
- Enhancement - Component navigation helpers (
findChild,findChildren,findParent,findTemplate) now have comprehensive support for both web components and subtemplates using dual pattern traversal. - Enhancement -
findChildandfindChildrennow properly find nested web components across shadow DOM boundaries using deep shadow DOM traversal. - Bug - Fixed
findTemplateto return consistent merged component data format (containing both instance and data properties) matching other navigation helpers instead of raw Template object.
Templates
- Bug - Fixed error causing async blocks to stop working.
Testing
- Improvement - Disabled screenshot capture on test failures across all packages to prevent unwanted screenshot directories.
Utils
- Breaking Change -
debouncefunction signature changed fromdebounce(fn, options)todebounce(func, wait, options). - Feature - Enhanced
debouncefunction with full async support, promise sharing, AbortController integration, and new options (leading,trailing,maxWait,rejectSkipped). See example. - Feature - Added new
throttlefunction with async support, promise sharing, AbortController integration, and configurable leading/trailing execution. See example. - Feature - Added
getIPAddress()to retrieve local, public, or all IP addresses using WebRTC ICE gathering. See example. - Bug - Fixed
fatalto look foronErroronglobalThis.
Documentation
- Examples - Added missing examples for browser utilities:
copyText,openLink,getKeyFromEvent,idleCallback,getText, andgetJSON.
0.13.3
Released 07.17.2025
- Improvement/Bug - Fixed issue where some build tools could not parse raw text imports of dependencies. There is now a build step where ESM endpoints now inline text imports.
For instance, in @semantic-ui/core, templates are included like:
import template from './button.html?raw' assert { type: 'txt' };These imports may not be processed downstream properly in Vite when using ES modules unless optimize.excludeDeps included @semantic-ui/core.
- Change - Removed
with { type: 'css' }andwith { type: 'html' }. Currently onlyjsonis supported officially, and Vite is not happy with unknown types: https://github.com/vitejs/vite/discussions/18534 - Bug - Fixed issue with empty file
dist/.jsin npm package build.
We’ve now linked the ESM build to a build that inlines raw text imports to prevent issues with downstream builds.
0.13.2
Released 07.15.2025
- Bug - Removed unused dependency
@semantic-ui/esbuild-log.
0.13.1
Released 07.14.2025
- Bug - Fixed a bug with SSR in reactive directives like conditional/data. If a reaction was long-lived (for example, an interval is set up in onCreated), the reaction would not properly get garbage collected and could rerun on the server causing an SSR error like:
TypeError: this._$Ct._$AI is not a function at ReactiveDataDirective.setValue.
0.13.0
Released 07.14.2025
CSS Tokens
- Colors - Color variables like
red-0tored-100now automatically swap for dark mode (i.e.,red-0=red-100in dark mode). - Colors - Added new invariant colors that do not change for dark mode (i.e.,
red-0-invariantstays dark red).
Reactivity
- Feature - Added
signal.derive()method for creating derived signals that transform a single signal’s value. See Dependent Signals guide and example. - Feature - Added
Signal.computed()static method for creating computed signals that combine multiple signals. See Dependent Signals guide and example. - Feature - Signals can now use
addContextto add metadata when setting a value. This is very useful for determining what caused a reaction. See example. - Feature - Added new
mutatehelper for mutating a value by a function. See example. - Feature - Added
getItem(id)andgetItemIndex(id)as separate mutation helpers. - Bug - Fixed issue where mutation helpers were incompatible with
allowClone: false. They can now be used together.
Component
- Bug - Fixed issue where
delegatesFocuswas not working as expected. - Bug - Component lifecycle events like
renderednow do notbubble. This means components are no longercomposed: true.
Query
- Feature - Added namespaced events to
onandoff. - Feature - Added
clippingParentto find closest ancestor that will clip the current element. See example. - Feature - Added
.data()for getting and setting HTML data. See example. - Feature - Added
.slice()for returning a portion of the element collection. See example. - Feature - Added
closestAll()for finding all ancestor elements matching a selector. - Feature - Added
before()andafter()aliases for more intuitive content insertion. - Feature - Added
contains()method for checking if elements contain a specific selector with Shadow DOM support. See example. - Enhancement - Enhanced
closest()withreturnAlloption to optionally return all matching ancestors. - Improvement -
offsetParenthas been renamed tocontainingParentand now includes many other possible containing parent checks likewill-changeandfilter. - Bug -
setting()can now be used as a getter. - Bug - Fixed
offsetParentto correctly return offset parent forwillChange. - Bug - Fixed bug where
useAlias()was not working as intended to alias Query.
Docs
- Examples - Improved console log styling for examples.
- Examples - Added a large amount of Signal & Reactivity examples.
Testing
- Improvement - Vitest now runs without watch for
npm test; Vitest configs have been added for each package.
Utils
- Breaking -
prettifyIDhas been renamed toprettifyHashto better reflect its purpose of converting numeric hash values to alphanumeric strings. - Feature -
prettifyHashnow supportsminLengthandpadCharoptions for customizing output format. See example. - Feature - Added
getRandomSeed()function that usescrypto.getRandomValueswhen available for cryptographically secure random seeds. See example. - Feature -
generateIDnow accepts an optional seed parameter for reproducible ID generation. See example. - Feature -
hashCodenow uses the renamedprettifyHashinternally whenprettify: trueoption is set. See example. - Feature -
sortBynow supports multi-key sorting by accepting an array of keys. See example. - Enhancement -
sortBynow useslocaleComparewithnumeric: truefor proper string sorting (e.g., “item10” comes after “item2”). - Enhancement -
sortBycomparator function now receives key index as fifth parameter for multi-key sorting. - Enhancement -
generateIDnow usescrypto.getRandomValuesviagetRandomSeed()for better randomness. - Bug -
isBinarynow detects all types of typed arrays including Int8Array, Float32Array, BigInt64Array, etc.
0.12.4-1
- Tailwind -
@semantic-ui/tailwindandtailwindcss-isonow have bundled CDN version to avoid issues importing CSS files in browser via ESM. Modifiedtailwindpackage to accommodate this change. - Tailwind - Removed bundled
wasmfiles; these are now part of the generictailwindcss-isopackage.
0.12.0
- Template -
onThemeChangednow looks for eitherthemechangeevent fromhtmlor the classdarkbeing toggled onhtmlusing mutation observers. - Tailwind - Added a plugin for using Tailwind inside Semantic UI components. This can be used alongside the CSS tokens provided by the CSS framework, or instead of it. This will scan your component JavaScript, HTML, and CSS and attach only the Tailwind styles used.
Note: the tailwind plugin code may be modified if
defineComponentgets a formal ‘Plugin API’. For now you will need to pass in the component to the plugin before defining the component.
import { TailwindPlugin } from '@semantic-ui/tailwind';
// Transform with Tailwind pluginconst definition = { // your component definition template: `<div class="p-4 bg-red-500"></div>`}defineComponent( await TailwindPlugin(definition) );- Template Compiler - Fixed an issue with nested conditionals inside SVG.
0.11.3
- Input - Fixed placeholder focused color to be theme-aware.
0.11.2
- Query - Fixed
setting()andsettings()not returning DOM element for chaining. - Template Helpers -
guardandnonreactivecan now be passed values and not just functions.
0.11.0-1
Major Changes
- New AI folder with detailed instructions for AI models working with Semantic UI, including guides for each package and instruction sets for writing components.
- Theming has been reworked inside the UI framework. CSS variables are now attached to
:hostinside the shadow dom instead of globally to:root. This means you can no longer access globally component css variables.
Positive Trade Offs
- You no longer need to include a separate css theme file in your page for each component you use. You can just import the component and all css will be defined. Note: You still need to include the global theme in the page to define global variables.
darkandlightcan now be added to ANY component to trigger that specific component to be rendered as light or dark mode
For instance this example:
<html class="dark"> <nav-menu light> <ui-input dark></ui-input> </nav-menu></html>Will render the page as dark mode, the nav-menu as light mode and the ui-input as dark mode. This can be used for complex layouts that might use light or dark sections.
Trade Offs
- You can no longer reference variables like
button-primary-text-colorin your css. These will only be defined inside the component. This is because the theme is now scoped to the component. - Component variables need to be scoped to the component and will not inherit
/* works - value is defined in same scope as component*/ui-button { --primary-text-color: red;}
/* works - value is computed for each component from primary-color*/.parent { --primary-color: red;}
/* doesnt work - value will be redefined in the component*/.parent { --primary-text-color: red;}Additional Changes
Some paths have shifted
- Global theme variables are now included in
semantic-ui.cssinstead of a separatetheme/base.cssfile. - Themes/Specs are now included in each component folder
- Component CSS variables are now included in the Shadow DOM scope and NOT global scope. This should vastly improve the global dev tools experience by reducing the number of defined variables in scope.
New UI
- Input - Added
typeproperty for inputs - Buttton - Added
typeproperty for buttons
New
- Query - Added
$('form').submit()shorthand for$('form').trigger('submit'); - Utils - Added color utils for oklch conversion to hex and rgb. These are essential to use oklch in javascript.
- Signals -
incrementanddecrementnow receive a max and min. This can be used to increment a value within a limit. This is particularly useful for keyboard controls that use aselectedIndex - Signals -
debugReactivityhas been greatly improved. You can now pass debug context with signals and reactions and read them during flush. - Component - Added reactivity debugging metadata for all reactive template features like each, if, expressions. This will now appear when using
{debugReactivity}in a template. - Binding to
checkedorinputwill automatically update the element property if the value changes. Note this is a one way binding, updating the element attribute will not update a signal/setting passed intovalue. - Template Helpers - Added
isNothelper
Bug
- Fix
value/valin Query would not set value of custom elements because of too strict html element type checking.
0.10.9
Features
- Utils -
formatDatenow supports timezone abbreviations likeETandPT. - Query - Added
getSlot()andsetSlot()methods for getting/setting slotted content for a web component.
Improvements
- Templates - Expression evaluation has been improved to support additional cases with mixed Lisp and JS-style function callbacks.
- Templates - Improved the performance characteristics of reactive conditionals in templates. For instance, you can now pass JS to Lisp-style arguments:
{concat 'my' 'friend' (isDog ? 'simon dog' : 'pookie cat') }Bugs
- Utils - Fixed
pickto work with proxy objects.
0.10.4-0.10.8
Features
- Build - Added
cdnlinks to package.json for jsDelivr and unpkg. - Build - Updated
publishscript to handle updating dependencies better. - Build - Added proper
browserendpoint to resolve unpkg usage.
0.10.3
Features
- Query - Added
end()to return to previous selections when chaining. - Query -
prependandappendnow can add multiple content like$('div').prepend('<p>Hello</p>', '<p>World</p>');.
Bugs
- Query - Fixed issue when chaining using query collections made of other query collections.
0.10.2
Features
- Utils - Added
idleCallbackfor wrapping browser’srequestIdleCallback(not fully supported in Safari).
Improvements
- Templates - Added new keyword
bindthat will let you directly bind events without event delegation. This can be useful for attaching to events that do not bubble. - Templates - Templates now have a
destroyedflag to determine if they are destroyed.
UI
- Label - Added basic definition of label including secondary, outline, and badge variations.
Bugs
- Templates - Fixed bug where subtemplates did not properly remove themselves when destroyed from
findChildren. - Card - Fixed fluid variation and min width.
- Menu - Fixed fitted variation.
- Icons - Fixed issue with link and link icon from feather-icons (link icon now
linkify).
Docs
- AST Display - AST display is now reactive on template changes. Content changes are no longer lost when you change from mobile/tablet view to computer view.
0.10.1
Improvements
Templates
- Templates - Data passed through to event handlers now automatically type converts. For instance,
data-index="1"will be of type number when used in an event handler.
Bugs
Each
- Each - Fixed issue with
keymissing fromeach..inwith objects.
0.10.0
Project
- The project repo is now public.
Improvements
Each
- Each - Now supports iterating over objects with
keyinstead ofindex. - Each - Now supports else conditions.
- Each - Now supports custom index/key names:
{#each value, index in values}. - Each - Default index name is always
indexin data context instead of@index.@foois not a valid variable name in JS, so it was breaking JS expressions.
Expressions
- Expressions - You can now use signals like state in JS expressions without
get()in templates (i.e.,{ someState == 'someValue' ? 'yes' : 'no' }instead of{ someState.get() == 'someValue' ? 'yes' : 'no' }). - Input - Fixed
changeevent to only fire on blur forui-input; fixedinputevent.
UI Icon
- Icon - Added
hrefproperty. Added hitbox to links by default for mobile/touch.
Bugs
- Events - Fixed bug where global events would ignore an event if it bubbled from a web component Shadow DOM (deep).
Docs
- Each - Updated docs and added new examples.
0.9.4
Bugs
- Templating - Improved typing for
CallParams. - Components - Improved JSDoc for callbacks like events, createComponent, and keys.
- Documentation - Added @links to JSDoc for reactivity, query, and utils libraries.
- Documentation - Added missing docs for some methods in query and reactivity.
0.9.3
Improvements
- Events -
valuein event handlers will now automatically pass through value from custom events. - Input - Added
debounce,search, anddebounceIntervalproperties. - Input - Added sizing and improvements to hitbox.
- Templates - Added performance improvements to expression lookup by short-circuiting for common lookups.
- NavMenu - Added search functionality.
Bugs
- Templates - Fixed issue when evaluating JS expressions passed through to subtemplates and snippets. Because data to subtemplates is wrapped to preserve reactivity, the JS context of ternaries like
subTemplateData ? 'yes' : 'no'was expectingsubTemplateData() ? 'yes' : 'no'.
0.9.2
Improvements
getJSONcan now be imported directly from@semantic-ui/component
Bugs
- Fix issue where state changes may not trigger reactive updates
0.9.1
Improvements
- Improvements to typing for
@semantic-ui/component
0.9.0
Improvements
Docs
- After much experimenting with types (see ver 0.8.8.6-11) figured out stable way to get typescript autocomplete working in playground. This required pulling
type:modulefrom package.json for now.
Improvements
- Added links to docs for some utils in jsdocs (utils, signal, templating) working through more types and jsdocs currently.
0.8.9
Bugs
- Fix bugs from utils rearrangement
0.8.8
Improvements
- Improving utils docs with jsdoc links to API docs for corresponding utils
0.8.7
Bugs
- Fix use of type import in uncompiled javascript
0.8.6
Improvements
- Add type definitions to templating library
Bugs
- Fix typo in utils that may have caused types not to load
0.8.5
Bugs
- Fix typo in reactivity types
0.8.4
Improvements
- Adds type definitions to reactivity library
- Refactors and improves type definitions for utils
0.8.3
Improvements
- Adds type definitions to utils library
0.8.2
Improvements
Reactivity helpers now handle multiple args to push, unshift. Added unshift for consistency.
0.8.0
Breaking Changes
getComponentandgetDataContextin Query have been renamed to justcomponentanddataContextthis is to preserve consistency with other methods on Query which dont preface getters with ‘get’
Bugs
- Fix
ui-menudid not exportitemfor parts - Improve performance of signal’s mutation helpers
0.7.0
Breaking Changes
defineComponentargumentssettingshas been renamed todefaultSettingsdefineComponentargumentstatehas been renamed todefaultState
Feedback from technical preview is that the use of settings in the outer scope and inside callbacks creates confusion because of the variable shadowing. The name defaultSettings / state accurately convey that this is the initial value for settings and state but not what is expected to return inside the callbacks.
If you need to perform a find and replace you can use the following regex
Settings
(?s)(defineComponent\s*\(\s*\{\s*[^}]*?)\bsettings\b(?=\s*(?::|[,}]))([^}]*?\})$1defaultSettings$2State
(?s)(defineComponent\s*\(\s*\{\s*[^}]*?)\state\b(?=\s*(?::|[,}]))([^}]*?\})$defaultState$20.6.1
- Build - Fixed npm publication issue.
0.6.0
Breaking Changes
- Templates - Standard template syntax now defaults to reactiveData to avoid confusion when using subtemplates naively. You can still specify non-reactive data using verbose syntax.
Improvements
- Templates - Added cyclical detection to expression lookup to avoid recursion.
Bug Fixes
- Components - Fixed bug with class names “classic syntax” for components with specs like button, menu, etc.
- Templates - Fixed issue with JS expression passthrough to snippets and subtemplates.
0.5.0
Breaking Changes
- Reactivity - Renamed
ReactiveVartoSignaland updated all libraries to reference new name. The change is purely cosmetic and does not adjust underlying behavior. - Reactivity -
@semantic-ui/reactivitynow exportsSignaland no longerReactiveVar.
0.4.0
Improvements
- Templates - Now evaluates JavaScript expressions like
{index + 1},{getThing(foo, bar)}, and even nested objects like{getValue({ foo: 'baz' })}.
0.3.1
Bugs
- Reactivity - Fixed
Reaction.guardnot behaving as expected.
0.3.0
API Changes
- Components - All settings now permit attributes with either kebab or lowercased conversion (i.e.,
settings = { showLink: false }can be set either like<my-component showlink>or<my-component show-link>as an alias).
0.2.2
- Card - Added new card component with minimal feature set.
- SSR - Fixed issue with
<ui-button primary>being rendered as<ui-button primary="true">. - Query - Fixed
offnot allowing an array of events like$('div').off('touchend mouseleave');. - Query - Fixed issue with
onenot properly removing events when attached together like$('body').one('mouseup touchend');.
0.2.1
- Modal - Added
glassvariation. - Input - Added
fluidvariation.
0.2.0
Breaking Changes
- Components - Settings now convert from prop values
camelCaseto<my-component kebab-case>. Previously they followed the Lit convention of converting to<my-component kebabcase>. This seems more conventional since native attributes use dashes.
Fixes
- Components - Fixed several issues related to attribute updates when spec is used (i.e., button and other UI primitives), particularly with boolean attributes and multiple attribute changes at once.
0.1.7
Features
- Query - Added
readyandon('ready')as aliases forDOMContentLoaded. - Templates - You can now specify full templates as settings, not just template names (i.e.,
settings = { rowTemplate: new Template() };).
Fixes
- Components - Calling
defineComponentmultiple times on client will no longer produce error (useful when multiple components need to require another one to be defined). - Renderer - Now properly garbage collects subtrees using WeakRef.
- Components - Now support custom classes as settings.
0.1.6
- Templates - Fixed some issues related to data staleness in AST subtrees like
{#each}.
0.1.5
- Utils - Added
openLink. - Components - Refactored settings to trigger reactivity in any reactive context.
- Components - Fixed
getChild,getParent, and other helpers. - Components - Store data context in DOM.
- Query - Fixed DOM manipulation to work in some locations it was not working before (
shadowRoot, etc.).
0.1.4
- Utils - Added
weightedObjectSearchutility. - Templates - Refactored snippet and subtemplate data context to support
data={getData}type expressions.
0.1.1
- Templates - Now supports either single or double bracket syntax:
{{getName}}or{getName}.
0.1.0
- Components -
createComponenthas been renamed todefineComponent. - Components -
createInstancehas been renamed tocreateComponent. - Components -
lightCSShas been renamed topageCSS.