@jungherz-de/notionkit-elements 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,661 @@
1
+ # Changelog
2
+
3
+ All notable changes to NotionKit Elements are documented here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions follow
5
+ [Semantic Versioning](https://semver.org/).
6
+
7
+ ## [1.12.0] – 2026-09-25
8
+
9
+ Built against NotionKit CSS 1.12.0 (peer `>= 1.12.0`). Auxdesk moved from 1.5.1 to 1.11 and sent back eight findings; this release answers all of them.
10
+
11
+ ### Added
12
+ - **`<nk-panel>` `slot="end"`** sits at the right edge of the title – a state as a tag, a button – as Notion's settings boxes show a connection, and moves under the title where both do not fit. Until now nothing could stand beside the title, and an `<h3>` of one's own lost the panel's type as soon as it shared a row with a tag.
13
+ - **`flush` on `<nk-props>` and `<nk-panels>`** drops the outer margin meant for the flow under a title – for a list inside a panel, a grid inside a flex column with a gap of its own. The margin sat in the shadow root, out of reach from outside.
14
+ - **`<nk-prop text>`**: a value that is text – a sentence, an address, a model name with a tag – flows and wraps as text instead of setting its parts one under the other.
15
+ - **`<nk-steps>` with a state per step, `selectable` and `horizontal`.** A step object takes `state: 'done' | 'skipped' | 'open'`, which wins over `current`, so a wizard can show a skipped step before a done one; a skipped step shows a dashed ring around a dash. `selectable` makes each label a button: a click or Enter fires `nk-select { index, value, step }` – `index` counts from 1, like `current` – and, unless cancelled, makes that step current; `select(index)` does the same from a script. `horizontal` sets the steps in one row above a wizard.
16
+ - **`<nk-tabs scroll>`** keeps many tabs in one row that scrolls sideways and holds the active tab in view – after the first layout, on every change and when the row's width changes – as `<nk-segmented scroll>` does. Ten tabs in a mailbox editor no longer run out of a phone's page.
17
+ - **An `actions` column in `<nk-table-view>`.** `{ type: 'actions', actions: [{ action, label, icon, danger, disabled, tooltip }] }` sets small buttons in each row; a row's value – a list of action names – picks which of them it shows. A click fires `nk-action { action, row, id, anchor }` instead of selecting the row, and the column's header sorts nothing. `renderPropertyCell()` draws it for tables of one's own too.
18
+ - **A `url` value may be `{ href, label, target }`**: a link of one's own – to another page of the app, with its own text, in the same tab unless `target` says otherwise. A string is still an address outside, opened in a new tab.
19
+
20
+ ### Changed
21
+ - **A property value keeps at least 220px** (NotionKit 1.12.0): in a column narrower than 380px – the details beside a message, a third of the page – it moves under its name instead of shrinking until an address breaks into syllables.
22
+ - The docs example of `<nk-table-view>` shows the actions column, `<nk-steps>` a wizard row with a skipped step, `<nk-panel>` a tag beside the title and `<nk-prop>` a text value.
23
+ - `--nk-page-full-max` (NotionKit 1.12.0) caps `<nk-page full>` as well: the token reaches the shadow root.
24
+ - Peer `@jungherz-de/notionkit >= 1.12.0`.
25
+
26
+ ## [1.11.1] – 2026-09-24
27
+
28
+ Built against NotionKit CSS 1.11.1 (peer `>= 1.11.0`).
29
+
30
+ ### Fixed
31
+ - **The package carries SKILL.md and CHANGELOG.md.** `files` in package.json listed `dist/`, `src/` and `LICENSE` only, so no release since 1.0.0 had them. LearnHub found them missing while moving to 1.11.0: an agent that reads SKILL.md from `node_modules` had to fetch it from GitHub.
32
+ - **The bundles name no source map.** They embed NotionKit's stylesheet, whose CSS ended in a `sourceMappingURL` comment, so DevTools looked for `notionkit.min.css.map` on the server of every app that loads Elements. NotionKit 1.11.1 drops the comment from the embedded copy.
33
+
34
+ ### Added
35
+ - `npm run check:package`, in CI too: it packs the package without publishing and fails when an entry point of package.json, SKILL.md, CHANGELOG.md or a source map named by a shipped file is missing.
36
+
37
+ ## [1.11.0] – 2026-09-24
38
+
39
+ Built against NotionKit CSS 1.11.0 (peer `>= 1.11.0`). SupaGantt's first weeks on Elements turned up thirteen findings; this release answers all of them. One matters beyond SupaGantt: an `<nk-switch>` without content froze Safari – the demo, the landing page, the docs and the showcase among the pages it hung.
40
+
41
+ ### Fixed
42
+ - **An `<nk-switch>` without content no longer freezes Safari** – since 1.2.0 it did. `_syncText()` wrote the slot's fallback text on every call, WebKit fires `slotchange` for such a write even when the text stays the same, and `slotchange` called `_syncText()` again – an endless loop at 100 % CPU for `<nk-switch></nk-switch>` or `<nk-switch text="…"></nk-switch>`. Chromium was never affected, so no test saw it – and the demo, the landing page, the docs and the showcase all have such switches. It writes on a change only now, and so do `<nk-page>`, `<nk-ai-msg>` and `<nk-tree-item>`, which write fallback text as well.
43
+ - **`<nk-dialog>` closes for its actions only.** Any button with a `value` inside closed it, an option of an `<nk-segmented>` too, with the option's value as the result. Now a button in `slot="actions"` with a `value` closes it, and one anywhere inside with `data-close` – with that attribute's value.
44
+ - **`<nk-select>` keeps a value set before its options.** A framework that sets properties before children – Hybrids – set `value` while the select had no `<option>` yet, and the first option showed. The value now waits and is applied once its option arrives; until then `value` reports it.
45
+ - **A floating menu or date picker inside an open `<nk-modal>` or `<nk-dialog>` sits under its anchor.** Their surfaces kept a transform at rest, which made them the containing block of the fixed menu: it opened off by the surface's position and clipped by its overflow. NotionKit 1.11.0 gives the open surfaces no transform at all, and `placeUnder()` and `placeNear()` measure the frame the host really sits in and take it off, for a transformed ancestor of one's own.
46
+ - **`<nk-menu floating>` and `<nk-calendar floating>` take no room before their first `show()`.** The fixed host stood at its static position in the flow until then – a long page grew by thousands of pixels, and focusing moved it. The host starts at the window's top left corner.
47
+ - **`<nk-tree-item>` takes every text node for its label**, empty and blank ones too: a template engine fills an expression's node after the item is built – `${i} ${title}` read “1Projekte”, and children showed only a “.”.
48
+ - **`<nk-avatar>` initials skip punctuation.** They are the first letter or digit of each word, and a word without one is skipped: “Planer (Dev)” → PD, not P(; “Anna-Lena Groß” → AG. The same goes for every element that draws initials from a name – member rows, comments, people in the database views.
49
+ - **`<nk-filter-bar>` never changes the caller's array.** Removing a pill spliced the array given to `filters`; the bar keeps a copy now, `filters` returns one, and `nk-change` reports the new list.
50
+ - **The banner's action is a button.** `slot="action"` takes a `<button>`, which NotionKit 1.11.0 strips down to underlined text – a button's role and keyboard instead of a span with `role="button"` and a key handler of one's own. Below 860px the action moves under the text, as the docs promised, instead of squeezing the text into a narrow column beside it.
51
+ - **SKILL.md documents `<nk-menu-item type="check">`** – a ✓ where the shortcut stands, `nk-change { value, checked }` instead of `nk-select`, the menu stays open – and the new behaviour of `<nk-dialog>`, `<nk-select>`, `<nk-menu>`, `<nk-tooltip>`, `<nk-avatar>` and `<nk-filter-bar>`.
52
+
53
+ ### Added
54
+ - **`<nk-fields fit>`**: the fields share the row instead of keeping 150px columns – two fields in a wide dialog are two halves, not two thirds and an empty third column. NotionKit's `.nk-fields.fit`.
55
+ - **A floating menu opens upwards and never outgrows the window.** Where the window ends below and there is more room above, `<nk-menu floating>` and `<nk-calendar floating>` open above their anchor; either way they are capped to the room there and a longer menu scrolls – 48 assignees near the bottom of the window.
56
+ - **`<nk-tooltip>` for a rect stays, keeps line breaks and hides on the wheel.** A tooltip shown with `show(rect, text)` – a bar of a Gantt chart – stays until `hide()`, the pointer on another `[data-tooltip]`, a press or Escape; before, one shown in the same `pointerover` that left a `[data-tooltip]` closed at once. A line break in the text is kept (NotionKit's `.nk-tooltip.lines`), a long word breaks, and the wheel hides it – scroll events do not leave a shadow root, so scrolling inside a component left it standing.
57
+
58
+ ### Changed
59
+ - Tests run in WebKit too: every page loads and answers in WebKit, and the settings pane with its empty switches renders – the suite that would have caught the Safari freeze. CI installs Chromium and WebKit.
60
+ - Docs, showcase, SKILL.md and the demo write the banner's action as a `<button>`.
61
+ - Peer `@jungherz-de/notionkit >= 1.11.0`.
62
+
63
+ ## [1.10.1] – 2026-09-24
64
+
65
+ Built against NotionKit CSS 1.10.1 (peer `>= 1.10.1`).
66
+
67
+ ### Fixed
68
+ - **A disabled `<nk-btn>` shows its tooltip and its `title`.** NotionKit gave `.nk-btn:disabled` `pointer-events: none`, so the hint that says why a button is disabled never appeared – with `<nk-tooltip>` and `data-tooltip` no more than with `title` – and a click fell through to the element behind it, a table row say. Since NotionKit 1.10.1 a disabled button takes the pointer and shows the `not-allowed` cursor, hover leaves it alone, and a click reaches nothing. A disabled link button (`<nk-btn href disabled>`) is dimmed as well. Found in Auxdesk.
69
+
70
+ ## [1.10.0] – 2026-09-24
71
+
72
+ Built against NotionKit CSS 1.10.0 (peer `>= 1.10.0`), shell and overlays: two new elements – 87 in all – and two that grow. SupaGantt asked for all four: a Gantt chart at full width, bars that stay visible beside the peek, confirmation and input dialogs, hints on bars and the ribbon.
73
+
74
+ ### Added
75
+ - **`<nk-dialog>`** – a question or a short form with the contract of `<nk-modal>` and `<nk-sheet>`: `show()`, `close()`, `toggle()`, `nk-toggle`; Escape – captured, so it closes before a peek, a menu or a modal behind it – and the backdrop close it; focus moves in, to an `[autofocus]` element or the first field or button, and back; the page behind is inert and scroll-locked. It lies above the modal and the sheet and lifts the inertness a modal gave it, so a question can come from inside one. `title` is the heading and the dialog's name, never a tooltip; the default slot takes the text or the fields, `slot="actions"` the buttons. A button with a `value` closes it with that value, so does the submit of a `<form method="dialog">` inside; `nk-close { value }` fires first and can be cancelled – the place to check an input. `returnValue`, `alert` (an alertdialog described by its text), `wide` (560px), `show(from)` to hand focus back to the ⋯ of a menu that has closed. Below 860px a bottom sheet with the buttons stacked, the confirming one on top.
76
+ - **`<nk-tooltip>`** – Notion's hover hint. One element without `for` serves every `[data-tooltip]` (with `data-tooltip-key` for a shortcut) on the page, inside shadow roots too – a whole toolbar in one element; with `for` it belongs to one element and shows its own content and `shortcut`. After `delay` ms (400) under the pointer, at once on keyboard focus, never on touch; leaving, a press, blur, scrolling and Escape hide it. 6px below its target and centred, above it where the window ends (`placement="top"` prefers above), 8px inside the window. `show(target, text, shortcut)` takes an element or a rect – the bars of a chart. The target's `aria-describedby` names it while it shows.
77
+ - **`<nk-sidebar collapsible>`** – Notion's « beside the workspace row, shown while the pointer is over the sidebar: on the desktop it collapses the sidebar, the main column takes the width, nothing in it takes focus; `<nk-btn variant="sidebar">` shows on the desktop too while it is collapsed and brings it back; ⌘\ or Ctrl+\ toggles it, on a phone the drawer. `collapsed`, `collapse()`, `expand()`, `toggleCollapsed()`, `nk-collapse { collapsed }` to keep it, `collapse-label`. Focus moves to the control that is left.
78
+ - **`<nk-peek resizable inset>`** – `resizable` puts Notion's drag on the left edge, with the arrow keys as well (16px a step), from `min` (380) to `max` (all but 320px of the window); the width is NotionKit's new token `--nk-peek-width`, set on `:root`, `width` sets it and `nk-resize { width }` is the moment to keep it. `inset` makes the page's `<nk-app>` move aside while the peek is open on the desktop (`peek-inset`, also an attribute of `<nk-app>`).
79
+ - `placeNear()` in `util/floating.js` – the tooltip's placement, for an element or a rect.
80
+
81
+ ### Changed
82
+ - Demo: « and ⌘\ collapse the sidebar, the ☰ brings it back; the side peek resizes; “Move to trash” in the page menu asks first, and the + view tab asks for a name and a layout; the topbar's buttons and the « have tooltips; `#dialog` opens the question. The app matches the class demo at 0.00 % – the collapsed sidebar, the tooltip, both dialogs, the dialog as a sheet on a phone and a wider peek included.
83
+ - `<nk-workspace-switcher>` fills the new sidebar head beside the «.
84
+ - Peer `@jungherz-de/notionkit >= 1.10.0`.
85
+
86
+ ## [1.9.0] – 2026-09-24
87
+
88
+ Built against NotionKit CSS 1.9.0 (peer `>= 1.9.0`), dates: a date picker
89
+ and a calendar view – 85 elements in all. SupaGantt, a planning tool about
90
+ to start on NotionKit, asked for both: start and end, constraints and
91
+ deadlines, with calendar weeks, working days and holidays.
92
+
93
+ ### Added
94
+ - **`<nk-calendar>`** – Notion's date picker (forms): a month with Today
95
+ and ‹ ›, form-associated. The value is a day (`YYYY-MM-DD`); with `range`
96
+ an interval `start/end`, picked in two clicks in either order; with
97
+ `time` a day and a time (`YYYY-MM-DDTHH:MM`) from a time field under the
98
+ month; `clearable` adds Clear. `weeks` puts the ISO calendar week in front
99
+ of each row – “KW” in German –, `weekend` greys the days not worked, and
100
+ the `days` property (or JSON attribute) adds holidays (`off` with a
101
+ `label`, which is also announced) and up to three `marks` per day in the
102
+ nine colours. Days outside `min`/`max` are `aria-disabled`: in the arrow
103
+ path and announced, never picked. After GlassKit Elements'
104
+ `<glk-calendar>`: arrows move by a day or a week, Home/End to the ends of
105
+ the week, PageUp/PageDown by a month (with Shift a year) – moving picks
106
+ nothing –, Enter or Space picks; one day is in the tab order; month names,
107
+ weekdays and the first day of the week come from `Intl` and the page's
108
+ language, `week-start` overrides; a new value brings its month;
109
+ `nk-change { value, start, end, time }` only when the value changes,
110
+ `nk-month`, `required`, reset. `floating sheet` makes it a popover that
111
+ `show(anchor)` puts under a property or a cell – a bottom sheet with 44px
112
+ cells on a phone – with `<nk-menu floating>`'s contract: a tap outside
113
+ closes it and reaches nothing else, Escape closes it, focus goes in when
114
+ opened from the keyboard and comes back; a pick closes it, the second of a
115
+ range.
116
+ - **`<nk-calendar-view>`** – the fourth database view: a month, the rows as
117
+ cards on their dates (`date-key`, default the first date column;
118
+ `YYYY-MM-DD`, `D.M.YYYY` or a range on its start). Today on a red pill,
119
+ days of other months washed, `weeks`, `weekend`, `week-start`; a card
120
+ fires `nk-select` like a row of the table, Today and ‹ › `nk-month`. In
121
+ `<nk-database>` a tab like the others, with the same rows.
122
+ - `nk-select` of `<nk-table-view>` says which cell was hit: `key` names its
123
+ column and `cell` is the `<td>`, to open an editor there – the date picker
124
+ under a due date.
125
+
126
+ ### Changed
127
+ - Demo: Due under the title and the table's due dates open one
128
+ `<nk-calendar floating sheet weeks>` – on the month of the date, weekends
129
+ and holidays greyed, the projects' due dates dotted –, a new date reaches
130
+ table, board, list and calendar; the database has a 📅 Calendar tab whose
131
+ cards open the side peek; `#date` and `#calendar` open those states. The
132
+ app matches the class demo at 0.00 % – the picker on the desktop and as a
133
+ sheet on a phone, the calendar view in two months included.
134
+ - `<nk-menu floating>` and `<nk-calendar floating>` share their placement
135
+ (`src/util/floating.js`).
136
+ - Peer `@jungherz-de/notionkit >= 1.9.0`.
137
+
138
+ ## [1.8.0] – 2026-09-24
139
+
140
+ Built against NotionKit CSS 1.8.0 (peer `>= 1.8.0`), links and peeks: four
141
+ new elements – 83 in all – for what LearnHub and Auxdesk each built on
142
+ their own: a side peek, a bookmark, a copy field and an image picker.
143
+
144
+ ### Added
145
+ - **`<nk-peek>`** – Notion's side peek: a database row at the right edge,
146
+ full height, next to the table, which stays usable – no scrim, nothing
147
+ inert. The bar carries » to close and `slot="actions"`; the body is the
148
+ page – `nk-page-title` (32px there), `nk-props`, a `.nk-prose`,
149
+ `nk-comments`. `show()` slides it in and moves focus to it; », Escape and
150
+ a click elsewhere close it, and Escape and » hand focus back. A click that
151
+ calls `show()` again – another row – only swaps the content, and clicks
152
+ inside other overlays (a menu opened from the peek) leave it open. Below
153
+ 860px it is a bottom sheet over a dimmed page and modal there: inert page,
154
+ scroll lock, a tap on the dimmed page closes it. `nk-toggle`. LearnHub's
155
+ contextual help is such a panel.
156
+ - **`<nk-bookmark>`** – Notion's link block from `href`, `title`, `desc`,
157
+ `favicon` and `cover` – what `og:title`, `og:description` and `og:image`
158
+ give. `title` is the heading, never a tooltip; without it the host name
159
+ stands in; `url` shows another address than `href`; a part without a
160
+ value is left out. Opens in a new tab unless `target` says otherwise.
161
+ LearnHub shows with it how a shared course link will look.
162
+ - **`<nk-copy-field>`** – a value to take along, as tall as an input, with
163
+ Copy inside: the clipboard, then “Copied” in green for a moment; where the
164
+ clipboard is not allowed, the value is shown and selected for ⌘C.
165
+ `secret` masks it behind Show/Hide and Copy still copies the real value;
166
+ `value` set as a property is not reflected, so a key never lands in the
167
+ markup. `mono`, `wrap`, `wide`; the texts are attributes. Fires
168
+ `nk-action { action: 'copy', value, ok }`. Auxdesk's inbound addresses,
169
+ Notion URL, widget secret and embed code are such values.
170
+ - **`<nk-image-picker>`** – a picture for a person or a workspace on
171
+ NotionKit's profile row, round or `square`, with Upload / Change and
172
+ Remove. Ported from GlassKit Elements' `glk-image-picker`: decoded with
173
+ the EXIF rotation (`createImageBitmap`, `imageOrientation: 'from-image'`),
174
+ drawn no larger than `max` (512), out as `type` at `quality`, handed over
175
+ as a data URL in `nk-change`; an unreadable file fires `nk-error`. `src`
176
+ as a property is not reflected. LearnHub needs it for the customer logo.
177
+
178
+ ### Changed
179
+ - Demo: a row, a card or a list item opens in `<nk-peek>` with its
180
+ properties, notes and a comment (it was a toast); the bookmark follows
181
+ the core-idea callout; the profile picture and a square workspace icon are
182
+ `<nk-image-picker>`s; General shows the public address in an
183
+ `<nk-copy-field>`; `#peek` opens the table row. The app matches the class
184
+ demo at 0.00 % – the open peek on the desktop and as a sheet on a phone
185
+ included.
186
+ - The social card is rendered with the element count and the bundle size
187
+ from the build; it said 68 elements and 33 KB.
188
+ - Peer `@jungherz-de/notionkit >= 1.8.0`.
189
+
190
+ ## [1.7.0] – 2026-09-24
191
+
192
+ Built against NotionKit CSS 1.7.1 (peer `>= 1.7.1`), the mobile-and-filter
193
+ release: menus that float in and become sheets on a phone, a sheet of its
194
+ own, the drawer from the stylesheet, Notion's database toolbar with filter
195
+ pills, and steps. 1.7.1, not 1.7.0: clean-css broke the minified files of
196
+ 1.7.0, and those are what the elements adopt – every phone rule after the
197
+ drawer applied on the desktop too (see NotionKit's changelog).
198
+
199
+ ### Added
200
+ - **`<nk-sheet>`** – Notion's mobile surface, the phone's twin of
201
+ `<nk-modal>` with its contract: `show()`, `close()`, `toggle()`; Escape
202
+ and the backdrop close it; focus moves in and back; the page behind is
203
+ scroll-locked and inert; `nk-toggle`. The panel rises from the bottom edge
204
+ with a grabber, `title` stands under it and names the dialog (taken off
205
+ the host, never a tooltip), rows inside are 40px. A chosen row does not
206
+ close it – `nk-select` bubbles out and the app decides.
207
+ - **`<nk-steps>`** – a short flow, vertical: done steps with a check on the
208
+ green tag, the current one ringed in the accent and marked
209
+ `aria-current="step"`. `current` counts from 1 and `next()` moves on;
210
+ `steps` is a comma-separated list or, as a property, strings and
211
+ `{ label, desc }` objects; `label` names the list.
212
+ - **`<nk-menu floating sheet>`** – a menu over the page of its own:
213
+ `menu.show(button)` opens it under the button, right edges aligned
214
+ (`align="start"`: left edges), and it fades in like the palette. A tap
215
+ outside closes it and reaches nothing else; Escape and a chosen item close
216
+ it, a switch or check row keeps it open; opened from the keyboard, focus
217
+ moves to the first item and back; `aria-expanded` on the button follows.
218
+ With `sheet` it is a bottom sheet below 860px, whatever position `show()`
219
+ wrote. `nk-toggle` when it opens and closes.
220
+ - **`<nk-menu-item type="check">`** – a ✓ where the shortcut stands,
221
+ `menuitemcheckbox`: a click flips `checked` and fires `nk-change`, and the
222
+ menu stays open – the rows of a filter menu.
223
+ - **The database toolbar.** `<nk-database>` renders NotionKit's
224
+ `.nk-db-toolbar`: the view tabs on the left, `slot="tools"` on the right,
225
+ `slot="filters"` under it. `<nk-btn variant="tool">` is a tool, `active`
226
+ gives it the accent. The + tab is `.nk-db-tab.add`, no inline style.
227
+ - **`<nk-btn variant="sidebar">`** – the ☰, `.nk-topbar-btn.nk-sidebar-toggle`:
228
+ shown below 860px only, a click opens the `nk-sidebar` of its app as a
229
+ drawer, and `aria-expanded` follows however the drawer closes.
230
+ - `<nk-segmented scroll>` keeps the chosen option in view – after the first
231
+ layout, on every change and when the row's width changes – by scrolling
232
+ the row, never the page, the least distance, right to left as well.
233
+ - `<nk-btn aria-haspopup>` reaches the button, like `aria-label`.
234
+
235
+ ### Changed
236
+ - **`<nk-filter-bar>` is NotionKit's filter pills** (`.nk-filter-row`,
237
+ `.nk-filter-pill`, `.fp-remove`, `.add`) instead of tags laid out by
238
+ inline styles: a pill per filter with its ×, the `add` pill at the end;
239
+ its own Filter and Sort are `.nk-db-tool`s. A pill's label fires
240
+ `nk-action { action: 'edit', index, filter, anchor }`, the add pill
241
+ `{ action: 'add', anchor }` – `anchor` is the clicked button, for
242
+ `menu.show(anchor)`. A filter takes `op: 'is-not'`; `color` is no longer
243
+ read, a pill has one look. The texts are attributes: `filter-label`,
244
+ `sort-label`, `add-label`, `remove-label`.
245
+ - **The sidebar drawer is the stylesheet's.** `<nk-sidebar open>` sets
246
+ NotionKit 1.7.0's `.nk-sidebar.open` and `.nk-sidebar-backdrop.open`; the
247
+ element's own drawer CSS is gone. Same slide and scrim; with reduced
248
+ motion the stylesheet shortens the transition to .01ms.
249
+ - Overlays return focus to the control that had it, also when it sits in a
250
+ shadow root (`nk-sheet`, `nk-menu`); a floating menu's Escape is handled
251
+ before a modal's or a sheet's around it.
252
+ - Demo: the database toolbar with live filter pills – "Status: Open" set –
253
+ on table, board and list, a filter menu, Sort, search and New; the ⋯ page
254
+ menu is `<nk-menu floating sheet>` (the positioned wrapper is gone); More
255
+ opens an `<nk-sheet>`; the ☰ is `variant="sidebar"`; the steps in the AI
256
+ pane for a custom model; six ranges in a scrolling segmented control;
257
+ `#menu`, `#filter`, `#more` and `#settings` open that state. The modal is
258
+ `id="settingsModal"`, the sheet `id="moreSheet"`: an id equal to the hash
259
+ made the browser scroll to it and take the focus it had just been given.
260
+ The app matches the class demo at 0.00 % on the desktop, in the menus and
261
+ in the phone's sheets and drawer.
262
+ - Peer `@jungherz-de/notionkit >= 1.7.1`.
263
+
264
+ ## [1.6.0] – 2026-09-23
265
+
266
+ Built against NotionKit CSS 1.6.0 (peer `>= 1.6.0`), the app-views release:
267
+ six new elements for the base layer that LearnHub and Auxdesk each built on
268
+ their own, and a per-component build that no longer carries its own copy
269
+ of the stylesheet.
270
+
271
+ ### Added
272
+ - **`<nk-props>` and `<nk-prop>`** – the properties under the title of a
273
+ database page: `label` and `icon` name the row, the content is the value
274
+ (tags, `<nk-avatar>`, a date, `<nk-progress wide>`). Rows are
275
+ `display: contents` hosts, so each renders as a row of the list; a click
276
+ fires `nk-action` with the half that was hit. Stacks below 860px.
277
+ - **`<nk-list-view>`** – the third view of `<nk-database>`: one line per
278
+ row, icon and title, `meta-keys` on the right (default: the select and
279
+ date columns). Rows fire `nk-select`, also on Enter; works standalone
280
+ with `columns` and `rows`.
281
+ - **`<nk-panels>` and `<nk-panel>`** – neutral surfaces in a grid that
282
+ falls to one column on a phone. `title` is the heading (taken off the
283
+ host, never a tooltip), `cover` draws the gradient band or a picture,
284
+ `icon` overlaps it – a page tile as on Notion's Home – and `href` makes
285
+ the panel a link.
286
+ - **`<nk-avatar>`** – initials, an emoji or a photo: `size` small / large /
287
+ xlarge, `color` one of the nine names or any CSS background, `square`,
288
+ initials from `name`, a photo from `src` with `name` as its alt text.
289
+ - `<nk-page full small>` – Notion's page options, full width and small
290
+ text, on the page itself.
291
+ - `<nk-page-cover src position>` draws the picture as an `<img>`, cropped
292
+ rather than stretched; `position` moves the crop.
293
+ - `<nk-ai-msg bubble>` – the message as a grey bubble without avatar or
294
+ name, on the right with `role="user"`, as Notion's AI chat shows your own
295
+ question.
296
+ - `<nk-progress wide>` fills its row and keeps its label beside it.
297
+ - `<nk-menu-item type="switch" checked>` – a row with a switch on the
298
+ right, like “Small text” in Notion's page menu. A click flips `checked`
299
+ and fires `nk-change`, not `nk-select`, so the menu stays open.
300
+ - Number columns stand right-aligned in figures of equal width
301
+ (`td.num`), formatted by the column's `locale` and `format`
302
+ (Intl.NumberFormat options).
303
+ - `componentsSheet` is exported from the bundle
304
+ (`NotionKitElements.componentsSheet` from the `<script>` build): a
305
+ project's own views adopt the same instance as the elements instead of
306
+ loading NotionKit's stylesheet a second time. LearnHub and Auxdesk loaded
307
+ it twice.
308
+ - `@jungherz-de/notionkit-elements/base.js` – `NkElement` and
309
+ `NkFormElement` for per-component setups, from a stable file.
310
+ - `test/app-views.spec.mjs`, 15 tests; six new parity pairs (twelve with
311
+ both themes).
312
+
313
+ ### Changed
314
+ - **The per-component files import NotionKit's stylesheet instead of
315
+ inlining it.** The base chunk carried the whole sheet – 64 KB – under a
316
+ hashed name that changed with every build. It is now
317
+ `dist/components/base.js`, 13 KB, and imports
318
+ `@jungherz-de/notionkit/notionkit-styles.js`: a bundler resolves it from
319
+ `node_modules`, a build-free page adds one import-map entry, and the
320
+ sheet exists once. The full bundles keep inlining it – a `<script>` tag
321
+ has nothing to resolve against. (GlassKit Elements 1.14.0 and 1.15.0
322
+ did the same.)
323
+ - `<nk-member-row>`, `<nk-comment>` and the person cells of the database
324
+ views draw their avatar as `.nk-avatar`. `color` takes the nine colour
325
+ names as classes – no hex value needed in markup – and still any CSS
326
+ background; **without `color` the avatar takes the gradient**, the
327
+ avatar component's default, instead of the tertiary grey.
328
+
329
+ ### Site
330
+ - The reference app shows the same new placements as the NotionKit demo:
331
+ properties under the title, the ⋯ page menu with small text and full
332
+ width, “List” as third view and an “Effort” column, “Edit · Read” for the
333
+ editor, your own question as a grey bubble, members with named avatar
334
+ colours, and the start view behind “Home”. Against the class version at
335
+ 1280px: 0.00 % pixel difference in both themes, the start view included.
336
+ - Landing page: “Same look, a fraction of the markup” gets the page
337
+ properties as its second example; 77 elements.
338
+
339
+ ## [1.5.3] – 2026-09-23
340
+
341
+ Built against NotionKit CSS 1.5.3 (peer `>= 1.5.3`), the phone release.
342
+
343
+ ### Fixed
344
+ - Through NotionKit 1.5.3: on phones `<nk-topbar>` keeps to one row – only
345
+ the last crumb of `<nk-breadcrumb>` stays, ending in an ellipsis, and
346
+ passive text steps aside. `<nk-field>` rows wrap, so the settings modal
347
+ keeps to the screen – five of the six panes in the demo ran up to 66px
348
+ past a 390px screen. `<nk-member-row>` ends a long address in an
349
+ ellipsis instead of pushing the role select out.
350
+ - Demo and docs use `<span class="nk-topbar-meta">` for passive text in the
351
+ topbar, new in NotionKit 1.5.3, instead of an inline-styled
352
+ `nk-topbar-btn`. The topbar is documented as 44px, not 45px.
353
+
354
+ ### Added
355
+ - `test/phone.spec.mjs`: at 390px no page of the site scrolls sideways,
356
+ every settings pane keeps to the screen, and the topbar keeps to one row.
357
+
358
+ ### Site
359
+ - Navigation on phones: the links move into a second row that scrolls
360
+ sideways. The flat row made every page 748px wide on a 390px phone.
361
+ Anchors in the docs land below the taller bar.
362
+ - Docs: attribute and event tables scroll inside their own box; the
363
+ database entry's table made the docs page 437px wide on a phone.
364
+
365
+ ## [1.5.2] – 2026-09-23
366
+
367
+ Built against NotionKit CSS 1.5.2 (peer `>= 1.5.2`). Two fixes GlassKit
368
+ Elements had made before, plus the foundation's five fixes by rebuild.
369
+
370
+ ### Fixed
371
+ - **`title` showed as a browser tooltip.** `<nk-settings-pane>`,
372
+ `<nk-danger-zone>`, `<nk-empty>` and `<nk-model-card>` take their
373
+ heading from `title` – which is also the global HTML attribute, so
374
+ hovering a settings pane floated its heading over the whole pane, and the
375
+ model cards and the danger zone did the same. The elements now read the
376
+ attribute and take it off the host (`NkElement.takeTitle()`): a later
377
+ `setAttribute('title', …)` is taken the same way, `el.title` answers
378
+ from the stored value, and setting it never writes the attribute – so a
379
+ framework that binds `title` as a property (hybrids, lit's `.title`)
380
+ never puts one on the host. The API is unchanged, `title="…"` stays the
381
+ documented attribute; what changes is that `getAttribute('title')`
382
+ returns `null` after upgrade. `<nk-model-card>` still reports its name
383
+ in `nk-select`. (GlassKit Elements 1.16.1.)
384
+ - **Several actions in `<nk-empty>` touched.** The default slot now sits
385
+ in `.e-actions`, a centred row that wraps with 8px between the buttons
386
+ (NotionKit 1.5.2).
387
+ - **`<nk-toast>` lay behind the tab bar on a phone.** notionkit.css lifts a
388
+ class-markup toast above a visible tab bar with `:has()`, which cannot
389
+ see into shadow roots, so the element measures the bar when it opens and
390
+ sits 12px above it – the app's own bar at the bottom of the screen,
391
+ sticky, fixed or floating. A tab bar previewed somewhere inside a page
392
+ does not lift it.
393
+ - Through NotionKit 1.5.2: `hidden` hides every nk- element and slotted
394
+ node, the toast paints above dialog and palette and keeps a short message
395
+ on one line on a phone, date and time fields keep to their column on iOS,
396
+ and checkbox and switch sit beside the first line of a wrapping label.
397
+
398
+ ### Added
399
+ - `test/regressions-152.spec.mjs`: the title handling of all four
400
+ elements, including a title set as a property before upgrade, the
401
+ empty-state action row and the toast over the app's tab bar. Against the
402
+ 1.5.1 bundle seven of the nine tests fail.
403
+ - Demo app: "Import" next to "New entry" in the empty state, and a
404
+ two-line product-news checkbox in the notification settings – the same
405
+ changes as in the NotionKit demo.
406
+
407
+ ## [1.5.1] – 2026-09-14
408
+
409
+ Built against NotionKit CSS 1.5.1 (peer `>= 1.5.1`).
410
+
411
+ ### Fixed
412
+ - **`nk-sidebar` drawer transition.** Below 860px the drawer used to snap
413
+ in and out (a bare `display` switch). It now slides in over 240ms while
414
+ the scrim fades, and closing runs the same way backwards – CSS only:
415
+ `display` transitions with `transition-behavior: allow-discrete`,
416
+ `@starting-style` supplies the first frame, `position: fixed` applies in
417
+ both states so the closing aside does not fall back into the flow.
418
+ Browsers without either feature switch hard as before;
419
+ `prefers-reduced-motion` snaps. Crossing the breakpoint downwards runs the
420
+ slide-out once.
421
+ - Through NotionKit 1.5.1: the tab bar no longer stacks its 6px on the
422
+ home-indicator inset, and topbar, page, tab bar and the drawer honour the
423
+ left/right safe-area insets (Dynamic Island in landscape). Reported by
424
+ Auxdesk.
425
+
426
+ ## [1.5.0] – 2026-09-13
427
+
428
+ Rebuilt against NotionKit CSS 1.5.0 (peer `>= 1.5.0`) – the Notion-2025
429
+ fidelity release: darker text greys and a dedicated sidebar text colour,
430
+ `-webkit-font-smoothing: auto`, filled inputs, white buttons, 36px table
431
+ rows, pill view tabs. From this release on, Elements and the foundation
432
+ share one version number (1.4.x is skipped).
433
+
434
+ ### Added
435
+ - `nk-tag color` accepts all nine Notion select colours: `gray`, `brown`,
436
+ `orange`, `yellow`, `green`, `blue`, `purple`, `pink`, `red`. Without
437
+ `color` the tag is grey, as in Notion – it used to have no fill at all.
438
+ - `nk-banner variant="danger"`.
439
+ - `nk-table-view wrap` lets cell text break (`.nk-table.wrap`), like
440
+ Notion's "wrap column".
441
+
442
+ ### Changed
443
+ - Select and multi-select cells fall back to the grey tag for an option
444
+ without a known colour (was blue).
445
+ - Tags are 20px tall with 3px corners and near-black text on the fill; the
446
+ old mid-tone tag text lives on in the foundation as `--nk-color-*`, the
447
+ old soft backgrounds as `--nk-tint-*`. Banners use those tints under the
448
+ normal text colour.
449
+
450
+ ## [1.3.1] – 2026-09-12
451
+
452
+ Rebuilt against NotionKit CSS 1.4.1 (peer `>= 1.4.1`).
453
+
454
+ ### Fixed
455
+ - `nk-page` without `cover` clipped the top of its icon: the stylesheet
456
+ pulled the icon up by 42px regardless of a cover, and the page had no top
457
+ padding, so half the icon sat outside the scroll container. The element
458
+ now sets the stylesheet's `covered` state only with the `cover` attribute
459
+ or a slotted `nk-page-cover`; otherwise the icon sits in 24px top padding.
460
+ Reported by Auxdesk.
461
+
462
+ ## [1.3.0] – 2026-09-12
463
+
464
+ Built and tested against NotionKit CSS 1.4.0 (peer `>= 1.4.0`).
465
+
466
+ ### Added
467
+ - `nk-segmented scroll` / `wrap`: a long filter row scrolls horizontally
468
+ with the scrollbar hidden, capped at the parent width, or wraps onto
469
+ further rows. Default stays one row.
470
+ - `nk-tab-bar fixed`: pinned to the viewport bottom for standalone PWAs; the
471
+ element renders the `.nk-tab-bar-spacer` itself, so the page still ends
472
+ above the bar without any padding of yours.
473
+
474
+ ### Fixed
475
+ - Through NotionKit 1.4.0: `.nk-app` is `100dvh` (fallback `100vh`), so an
476
+ iOS standalone PWA no longer counts the status bar into the shell and the
477
+ tab bar no longer sits half behind the home indicator. The bar has a fixed
478
+ height now (`--nk-tab-bar-height` + safe area). Reported by Auxdesk.
479
+
480
+ ## [1.2.1] – 2026-09-11
481
+
482
+ Rebuilt against NotionKit CSS 1.3.1 (peer `>= 1.3.1`); the bundle embeds the
483
+ stylesheet, so the fix below needs this release.
484
+
485
+ ### Fixed
486
+ - Inputs inside `nk-fields` (and stacked / compact `nk-field`s) overflowed
487
+ their column by about 20px: the controls' `min-width: 210px` became the
488
+ grid item's automatic minimum. NotionKit 1.3.1 sets `min-width: 0` down
489
+ the chain; a test now measures that every control ends inside its column
490
+ at 150px. Reported by Auxdesk.
491
+
492
+ ## [1.2.0] – 2026-09-11
493
+
494
+ Built and tested against NotionKit CSS 1.3.0; the peer range is now
495
+ `>= 1.3.0` (field layouts and the labelled switch need its rules).
496
+
497
+ ### Added
498
+ - **Visible text on `nk-switch`.** The default slot (or `text`) renders
499
+ beside the switch inside `label.nk-switch-label`, so several switches in
500
+ one row are readable and the text is part of the hit area. Without text
501
+ the element still renders the bare button. `label` stays the accessible
502
+ name for the bare form.
503
+ - **`text` on `nk-check` and `nk-radio`** as the attribute alternative to
504
+ the slotted label text (the slot was always the visible label).
505
+ - **`nk-field stacked` / `compact`** – label above a full-width control,
506
+ small tertiary label without row padding. A stacked field sets `wide` on
507
+ its `nk-input` / `nk-textarea` / `nk-select` itself, because the
508
+ stylesheet cannot reach into the control's shadow root.
509
+ - **`nk-fields`** – the field grid: `minmax(150px, 1fr)` columns that wrap,
510
+ every `nk-field` inside stacked and compact by default.
511
+ - `wide` on `nk-select`. Requested by Auxdesk.
512
+
513
+ ## [1.1.0] – 2026-09-11
514
+
515
+ Built and tested against NotionKit CSS 1.2.0; the peer range is now
516
+ `>= 1.2.0` (the tab bar needs its `.nk-tab-bar` rules, everything else still
517
+ works with 1.0.0).
518
+
519
+ ### Added
520
+ - **`nk-tab-bar` / `nk-tab-bar-item`** – the mobile tab bar for phones and
521
+ installed PWAs. Last child of `nk-app`, it is slotted into the main column
522
+ below the scrolling page, so it never moves and needs no bottom padding.
523
+ Exactly one item is `active` (`value` ↔ `active`, `nk-change`); an item
524
+ emits a cancelable `nk-select`, navigates with `href`, and with `drawer`
525
+ opens the nearest `nk-sidebar` as a drawer instead of becoming active.
526
+ Hidden above 860px by the stylesheet – there the sidebar is the
527
+ navigation – and shown below; `always` shows it at every width (previews,
528
+ phone frames), `floating` makes it a capsule. Icon as attribute or
529
+ `slot="icon"`. Requested by Auxdesk.
530
+ - Demo app and the workspace skeleton in `SKILL.md` carry the tab bar.
531
+
532
+ ### Fixed
533
+ - **`disabled` before the first render threw.** A `disabled` attribute in
534
+ the markup fires `formDisabledCallback` on parse or upgrade, before
535
+ `connectedCallback` has rendered anything; `nk-todo`, `nk-check`,
536
+ `nk-radio`, `nk-switch`, `nk-input`, `nk-textarea`, `nk-select`,
537
+ `nk-slider` and `nk-segmented` wrote into the missing inner control
538
+ (`TypeError: Cannot set properties of undefined`). `NkFormElement` now
539
+ remembers the state and applies it after the first render. The same path
540
+ was hit when a template engine set `checked` and `disabled` as properties
541
+ on a not-yet-connected element. Reported by Auxdesk (hybrids).
542
+ - **Own properties from before the upgrade** – a `checked = true` set on
543
+ the element while it was still a plain `HTMLElement` (a template clone
544
+ before the bundle loaded) shadowed the accessor for good. `NkElement`
545
+ re-applies such properties through their setters on the first connect.
546
+ - `nk-input`, `nk-textarea`, `nk-select`: toggling the `disabled` attribute
547
+ inside a `<fieldset disabled>` no longer re-enables the control.
548
+
549
+ ## [1.0.1] – 2026-09-06
550
+
551
+ Documentation-only release; the bundles are unchanged.
552
+
553
+ ### Changed
554
+ - README: header aligned with GlassKit Elements (centred title, full badge
555
+ row, tagline, link row, "What is" intro with before/after, feature table);
556
+ the family table now lists repository and website for every layer in one
557
+ pattern; Jungherz GmbH links to jungherz.com.
558
+ - NotionKit Web is available and linked from the README, the landing page,
559
+ the site navigation, `SKILL.md` and `llms.txt`.
560
+ - Landing page content centred; German pages link to their German
561
+ counterparts (including the embedded `de/app.html`); page footers link
562
+ Jungherz GmbH.
563
+
564
+ ## [1.0.0] – 2026-09-06
565
+
566
+ First release: the Web-Components layer of the NotionKit family. 68 elements,
567
+ built and tested against NotionKit CSS 1.1.1 (peer range `>= 1.0.0`).
568
+
569
+ ### Added
570
+ - **Base classes.** `NkElement` / `NkFormElement`: open Shadow DOM adopting the
571
+ NotionKit *components* sheet only; design tokens injected once on the
572
+ document inside `@layer notionkit-defaults`; one `MutationObserver` on
573
+ `<html>[data-theme]` for every instance; listeners re-armed on every
574
+ connect; `observesLightDom` / `projectLightDom()` / `refresh()`; manual
575
+ slot assignment for elements that route text and children themselves;
576
+ ElementInternals for form participation. Every host is `display: contents`.
577
+ - **Wave 1 – forms & content:** `nk-btn`, `nk-input`, `nk-textarea`,
578
+ `nk-select`, `nk-switch`, `nk-check`, `nk-radio`, `nk-slider`, `nk-field`,
579
+ `nk-tag`, `nk-progress`, `nk-callout`, `nk-divider`, `nk-heading`,
580
+ `nk-toggle`, `nk-todo`, `nk-kbd`, `nk-code`, `nk-quote`.
581
+ - **Wave 2 – app shell & navigation:** `nk-app`, `nk-sidebar` (off-canvas
582
+ drawer below 860px), `nk-workspace-switcher`, `nk-section-label`, `nk-tree`
583
+ (single `active`, one tab stop, arrow keys, `data`), `nk-tree-item`,
584
+ `nk-topbar`, `nk-breadcrumb`, `nk-theme-toggle`.
585
+ - **Wave 3 – page shell & blocks:** `nk-page`, `nk-page-cover`,
586
+ `nk-page-title` (editable), `nk-page-actions`, `nk-block-host`, `nk-banner`,
587
+ `nk-empty`, `nk-skeleton`, `nk-synced`, `nk-tabs` / `nk-tab`,
588
+ `nk-segmented`, `nk-stats` / `nk-stat`, `nk-avatar-group`, `nk-mention`,
589
+ `nk-template-btn`, `nk-model-card`, `nk-profile-row`, `nk-danger-zone`,
590
+ `nk-member-list` / `nk-member-row`.
591
+ - **Wave 4 – overlays:** `nk-modal` (renders its nav from the panes, focus
592
+ in/out, scroll lock, `inert`), `nk-settings-pane`, `nk-settings-user`,
593
+ `nk-cmdk` (fuzzy search, keyboard, hotkey, `nk-command`), `nk-menu` /
594
+ `nk-menu-item`, `nk-pop`, `nk-emoji-picker`, `nk-toast`.
595
+ - **Wave 5 – data & collaboration:** `nk-database`, `nk-table-view`,
596
+ `nk-board-view` (drag & drop), `nk-filter-bar`, `nk-comments` /
597
+ `nk-comment`, `nk-ai-thread` / `nk-ai-msg` / `nk-ai-input-row`, and the
598
+ exported `renderPropertyCell()` / `tagFor()` / `compareBy()` helpers.
599
+ - **Radio groups across shadow roots.** `<nk-radio>`s with the same `name`
600
+ in the same tree and form clear each other, keep a single tab stop and
601
+ move with arrow keys (wrapping, skipping disabled). Measured: three radios
602
+ in one form put exactly one entry into `FormData`.
603
+ - **Documentation**, generated from one catalog: `docs.html` (live preview,
604
+ before/after toggle against the class markup, attribute / slot / event
605
+ tables, mobile notes), `showcase.html` (brand switch), `index.html`,
606
+ German twins under `de/`, `SKILL.md` with all six app skeletons, `llms.txt`.
607
+ - **Reference app** `app.html`: the NotionKit demo rebuilt from elements only.
608
+ Pixel difference to the class version, measured with Playwright at
609
+ 1280 px: 0.00 %; at 390 px: 0.08 %.
610
+ - **Test suite** (Playwright, 180 tests): pixel parity of every element against
611
+ its class markup in light and dark, branding through `:root` (with and
612
+ without `notionkit.css` on the page, either load order), reconnect,
613
+ radio groups, light-DOM drift (empty string is a valid value), form
614
+ participation, overlays, data views, per-component import through a
615
+ packed tarball.
616
+
617
+ ### Notes
618
+ - Every host is `display: contents`. Inline-block hosts measured up to 22 px
619
+ of layout drift (a hidden toggle arrow keeping its width, a switch host
620
+ 3 px taller than its button, topbar buttons wrapping differently); with
621
+ no host box the inner element sits where the class markup puts it.
622
+ - Assigning a property to a custom element that has not been upgraded yet
623
+ creates an own property that shadows the accessor forever. Containers
624
+ therefore talk to their children through methods (`setTabbable()`,
625
+ `setData()`), and children ask their container to resync once rendered.
626
+ - NotionKit CSS 1.1.0 / 1.1.1 were released alongside: slot-name twins
627
+ (`::slotted([slot="icon"])`), explicit state classes (`.compact`, `.last`),
628
+ disabled optics, `.nk-new-row`, and `!important` on the margin/padding
629
+ declarations of slotted twins – the document's scoped reset would
630
+ otherwise beat them (the outer tree wins over `::slotted()` for normal
631
+ declarations; the inner tree wins for important ones). With 1.0.0 the
632
+ elements still work, with those small deviations.
633
+ - Headless Chromium anti-aliases semi-transparent text inside shadow trees
634
+ slightly brighter in the dark theme (channel delta ≤ 22 on glyph edges,
635
+ geometry identical); the parity test uses a perceptual threshold of 0.25.
636
+
637
+ ### Roadmap
638
+ - `<nk-editor>` (v1.1): a thin TipTap wrapper as an optional per-component
639
+ import, never in the core bundle – shadow-less, adding `nk-block-host` to
640
+ itself so the foundation's editor adapter rules apply.
641
+
642
+ [1.12.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.12.0
643
+ [1.11.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.11.1
644
+ [1.11.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.11.0
645
+ [1.10.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.10.1
646
+ [1.10.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.10.0
647
+ [1.9.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.9.0
648
+ [1.8.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.8.0
649
+ [1.7.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.7.0
650
+ [1.6.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.6.0
651
+ [1.5.3]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.5.3
652
+ [1.5.2]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.5.2
653
+ [1.5.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.5.1
654
+ [1.5.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.5.0
655
+ [1.3.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.3.1
656
+ [1.3.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.3.0
657
+ [1.2.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.2.1
658
+ [1.2.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.2.0
659
+ [1.1.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.1.0
660
+ [1.0.1]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.0.1
661
+ [1.0.0]: https://github.com/JUNGHERZ/NotionKit-Elements/releases/tag/v1.0.0