Skip to content

Commit 3d89d28

Browse files
authored
Merge pull request #101 from Semantic-Org/next
Release 0.17.0
2 parents d4ac2b5 + 1ef5183 commit 3d89d28

File tree

171 files changed

+10787
-2547
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

171 files changed

+10787
-2547
lines changed

CHANGELOG.md

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,49 @@ This is a pre-release version and APIs will change quickly. Before `1.0` release
66

77
Please note after `1.0` Semver will be followed using normal protocols.
88

9+
# Version 0.17.0 - 09.19.2025
10+
11+
## Author's Notes
12+
13+
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.
14+
15+
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.
16+
17+
## Major Features
18+
* **Attach** - Added new `attach` behavior that allows you to position elements relative to other elements using `css anchor` positioning.
19+
20+
## Breaking Changes
21+
* **Utils** - `deepExtend` now 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 using `deepExtend(obj1, obj2, { preserveNonCloneable: false });`
22+
* **Query** - Renamed `containingParent` to `positioningParent` and added support for values that can cause `position: fixed` to be relative to different coordinate systems. `containingParent` is still available but will always return the `offsetParent` of an element. This is faster but MAY NOT always be the proper parent for positioning.
23+
24+
## CSS Tokens
25+
* **Feature** - Added colored borders like `--red-border`, `--blue-border` etc.
26+
27+
## Query
28+
* **Feature** - Added [`position()`](https://next.semantic-ui.com/api/query/dimensions#position) method that replaces `containerPosition()` with enhanced API supporting multiple coordinate systems (global, local, relative) and proper empty selection handling.
29+
* **Feature** - Added [`pagePosition()`](https://next.semantic-ui.com/api/query/dimensions#pageposition) method for getting/setting element position relative to the document.
30+
* **Feature** - Added [`dimensions()`](https://next.semantic-ui.com/api/query/dimensions#dimensions) method returning comprehensive dimension information including content, padding, border, margin, and scroll dimensions.
31+
* **Feature** - Added [`intersects()`](https://next.semantic-ui.com/api/query/dimensions#intersects) method for checking element intersection with configurable threshold, side detection, and detailed intersection data.
32+
* **Feature** - Added [`isInView()`](https://next.semantic-ui.com/api/query/visibility#isinview) method for detecting viewport intersection with optional threshold and fully visible options.
33+
* **Feature** - Added [`positioningParent()`](https://next.semantic-ui.com/api/query/visibility#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.
34+
* **Feature** - Added [`show()`](https://next.semantic-ui.com/api/query/visibility#show) method for showing hidden elements with optional `calculate` parameter to determine natural display values.
35+
* **Feature** - Added [`hide()`](https://next.semantic-ui.com/api/query/visibility#hide) method for hiding elements by setting display to 'none'.
36+
* **Feature** - Added [`toggle()`](https://next.semantic-ui.com/api/query/visibility#toggle) method for toggling element visibility with optional `calculate` parameter.
37+
* **Feature** - Added [`removeData()`](https://next.semantic-ui.com/api/query/attributes#removedata) method for removing data attributes from elements. Supports space-separated strings or arrays for removing multiple attributes at once.
38+
* **Enhancement** - [`naturalDisplay()`](https://next.semantic-ui.com/api/query/dimensions#naturaldisplay) now accepts `calculate` parameter to control whether to analyze stylesheets (default: true) or use tag-based lookup only.
39+
* **Enhancement** - [`isVisible()`](https://next.semantic-ui.com/api/query/logical-operators#isvisible) now checks for `visibility: hidden` and `content-visibility: hidden` by default, with new `includeVisibility` parameter for control.
40+
* **Enhancement** - [`containingParent()`](https://next.semantic-ui.com/api/query/visibility#containingparent) now provides simple `offsetParent` wrapper functionality alongside the new `positioningParent()` method.
41+
* **Enhancement** - [`closest()`](https://next.semantic-ui.com/api/query/dom-traversal#closest) now supports passing DOM elements directly as the selector parameter, checking containment using the element's `contains()` method.
42+
* **Bug** - Fixed CSS nesting parsing in [`naturalDisplay()`](https://next.semantic-ui.com/api/query/dimensions#naturaldisplay) to properly resolve nested selectors with `&` parent references (e.g., `& .grid-container`).
43+
* **Bug** - Fixed [`position()`](https://next.semantic-ui.com/api/query/dimensions#position) method to return `undefined` for empty selections instead of empty array when used as getter.
44+
* **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).
45+
* **Bug** - Fixed bug in `is` where it would return true for non-existent selectors
46+
47+
## Utils
48+
* **Feature** - Clone now has a new setting `preserveDOM` which 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
49+
* **Feature** - Added `log()` function for flexible logging with formatting, namespacing, timestamps, and JSON output support
50+
* **Feature** - Renamed `errors.js` module to `debug.js` to better reflect its logging and debugging capabilities
51+
952
# Version 0.16.1-2 - 08.21.2025
1053

1154
## Core
@@ -18,7 +61,6 @@ Please note after `1.0` Semver will be followed using normal protocols.
1861
## UI Changes
1962

2063
`semantic-ui/core` is now organized into three groups: [`primitives`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/primitives), [`components`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/components), and [`behaviors`](https://github.com/Semantic-Org/Semantic-Next/tree/main/src/behaviors)
21-
2264
* **Primitives** include JSON specs and are essential building blocks like `modal` and `button`.
2365
* **Components** are built with primitives and have more complex functionality, for example, `global-search` or `theme-switcher`.
2466
* **Behaviors** do not export web components but provide behaviors like `transition` or `position`.

ai/artifacts/query-examples-demonstrates-fixes.md

Lines changed: 0 additions & 98 deletions
This file was deleted.

ai/components/rerender-guard-blocks.md

Lines changed: 0 additions & 106 deletions
This file was deleted.

0 commit comments

Comments
 (0)