Merge branch 'dev' into main: v0.12.1
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 27s
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 27s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
8847897e11
4 files changed
+23
-15
No files matched your search
+7
-1
@@ -6,6 +6,11 @@ Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), die V
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [0.12.1] - 2026-10-30
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Workspace → To-Dos: Die Gruppierung (Ordner → Notiz) wird pro Ebene gleichmäßig abgestuft – im hellen Theme jede Ebene etwas dunkler, im dunklen etwas heller – statt zwischen grau und weiß hin und her zu springen.
|
||||||
|
|
||||||
## [0.12.0] - 2026-10-30
|
## [0.12.0] - 2026-10-30
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
@@ -302,7 +307,8 @@ Das Format folgt [Keep a Changelog](https://keepachangelog.com/de/1.1.0/), die V
|
|||||||
- Geteilte Listen (Einkaufs-, Pack- und Checklisten) mit `#Kategorie`-Gruppierung, Mengenangaben und Echtzeit-Abhaken.
|
- Geteilte Listen (Einkaufs-, Pack- und Checklisten) mit `#Kategorie`-Gruppierung, Mengenangaben und Echtzeit-Abhaken.
|
||||||
- Benutzer-, Gruppen- und Admin-Verwaltung (Ersteinrichtungs-Assistent, Einladungscodes, Profilbilder, persönliche API-Keys & Webhook-Ingest `/api/v1/webhooks/ingest`, JSON-Datenexport) sowie CSS-Theme-Engine mit 4 Themes (`Dark`, `Light`, `High Contrast`, `Soft`) und PWA-Unterstützung.
|
- Benutzer-, Gruppen- und Admin-Verwaltung (Ersteinrichtungs-Assistent, Einladungscodes, Profilbilder, persönliche API-Keys & Webhook-Ingest `/api/v1/webhooks/ingest`, JSON-Datenexport) sowie CSS-Theme-Engine mit 4 Themes (`Dark`, `Light`, `High Contrast`, `Soft`) und PWA-Unterstützung.
|
||||||
|
|
||||||
[Unreleased]: https://git.dsit.me/sandrodach/MindSift/compare/v0.12.0...dev
|
[Unreleased]: https://git.dsit.me/sandrodach/MindSift/compare/v0.12.1...dev
|
||||||
|
[0.12.1]: https://git.dsit.me/sandrodach/MindSift/compare/v0.12.0...v0.12.1
|
||||||
[0.12.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.11.1...v0.12.0
|
[0.12.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.11.1...v0.12.0
|
||||||
[0.11.1]: https://git.dsit.me/sandrodach/MindSift/compare/v0.11.0...v0.11.1
|
[0.11.1]: https://git.dsit.me/sandrodach/MindSift/compare/v0.11.0...v0.11.1
|
||||||
[0.11.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.10.0...v0.11.0
|
[0.11.0]: https://git.dsit.me/sandrodach/MindSift/compare/v0.10.0...v0.11.0
|
||||||
|
|||||||
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"version": "0.12.0",
|
"version": "0.12.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"version": "0.12.0",
|
"version": "0.12.1",
|
||||||
"license": "Unlicense",
|
"license": "Unlicense",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource-variable/inter": "5.3.0",
|
"@fontsource-variable/inter": "5.3.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "mindsift-frontend",
|
"name": "mindsift-frontend",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "0.12.0",
|
"version": "0.12.1",
|
||||||
"license": "Unlicense",
|
"license": "Unlicense",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -2370,7 +2370,9 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
) : subView === 'todos' ? (
|
) : subView === 'todos' ? (
|
||||||
<div className="flex-1 overflow-y-auto p-4 sm:p-6 lg:p-8 bg-canvas">
|
/* Each nesting level lays a light tint of the text colour on top: darker per level in
|
||||||
|
light themes, lighter per level in dark ones */
|
||||||
|
<div className="flex-1 overflow-y-auto p-4 sm:p-6 lg:p-8 bg-editor">
|
||||||
<div className="w-full space-y-4">
|
<div className="w-full space-y-4">
|
||||||
<div className="flex flex-col sm:flex-row sm:items-center justify-between border-b border-border pb-3 gap-2">
|
<div className="flex flex-col sm:flex-row sm:items-center justify-between border-b border-border pb-3 gap-2">
|
||||||
<div>
|
<div>
|
||||||
@@ -2384,7 +2386,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
|
|
||||||
<div className="flex flex-wrap items-center gap-2">
|
<div className="flex flex-wrap items-center gap-2">
|
||||||
{/* View Grouping Selector (matching hashtag switcher style) */}
|
{/* View Grouping Selector (matching hashtag switcher style) */}
|
||||||
<div className="flex items-center bg-canvas border border-border rounded-btn p-0.5 text-[11px]">
|
<div className="flex items-center bg-main/[0.04] border border-border rounded-btn p-0.5 text-[11px]">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
@@ -2437,7 +2439,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
|
|
||||||
{/* Grouped Folders & To-Dos */}
|
{/* Grouped Folders & To-Dos */}
|
||||||
{allRollupTodos.length === 0 ? (
|
{allRollupTodos.length === 0 ? (
|
||||||
<div className="p-8 text-center text-muted text-xs space-y-1 border border-border rounded-card bg-panel">
|
<div className="p-8 text-center text-muted text-xs space-y-1 border border-border rounded-card bg-main/[0.03]">
|
||||||
<Sparkles className="w-6 h-6 text-accent mx-auto mb-1" />
|
<Sparkles className="w-6 h-6 text-accent mx-auto mb-1" />
|
||||||
<p className="font-semibold text-main">Keine To-Dos in Notizen gefunden!</p>
|
<p className="font-semibold text-main">Keine To-Dos in Notizen gefunden!</p>
|
||||||
<p className="text-faint">
|
<p className="text-faint">
|
||||||
@@ -2446,11 +2448,11 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
</div>
|
</div>
|
||||||
) : todoGrouping === 'list' ? (
|
) : todoGrouping === 'list' ? (
|
||||||
/* Flat list of all todos across notes */
|
/* Flat list of all todos across notes */
|
||||||
<div className="border border-border rounded-card bg-panel p-2 space-y-1">
|
<div className="border border-border rounded-card bg-main/[0.03] p-2 space-y-1">
|
||||||
{allRollupTodos.map((item) => (
|
{allRollupTodos.map((item) => (
|
||||||
<div
|
<div
|
||||||
key={`${item.doc.id}-${item.blockId}`}
|
key={`${item.doc.id}-${item.blockId}`}
|
||||||
className="flex items-center justify-between gap-2 p-2 rounded-btn hover:bg-panel-elevated text-xs transition-colors group cursor-pointer"
|
className="flex items-center justify-between gap-2 p-2 rounded-btn hover:bg-main/[0.06] text-xs transition-colors group cursor-pointer"
|
||||||
>
|
>
|
||||||
<div className="flex items-center gap-2 min-w-0 flex-1">
|
<div className="flex items-center gap-2 min-w-0 flex-1">
|
||||||
<button
|
<button
|
||||||
@@ -2481,7 +2483,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
<div className="flex items-center gap-1.5 shrink-0">
|
<div className="flex items-center gap-1.5 shrink-0">
|
||||||
<span
|
<span
|
||||||
onClick={() => handleJumpToDocBlock(item.doc.id, item.blockId)}
|
onClick={() => handleJumpToDocBlock(item.doc.id, item.blockId)}
|
||||||
className="inline-flex items-center gap-1 text-[11px] px-2 py-0.5 rounded-btn bg-panel-elevated text-muted hover:text-main"
|
className="inline-flex items-center gap-1 text-[11px] px-2 py-0.5 rounded-btn bg-main/[0.06] text-muted hover:text-main"
|
||||||
title={item.doc.title}
|
title={item.doc.title}
|
||||||
>
|
>
|
||||||
<span>{item.doc.icon || '📝'}</span>
|
<span>{item.doc.icon || '📝'}</span>
|
||||||
@@ -2520,10 +2522,10 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={folderName}
|
key={folderName}
|
||||||
className="border border-border rounded-card bg-panel overflow-hidden"
|
className="border border-border rounded-card bg-main/[0.03] overflow-hidden"
|
||||||
>
|
>
|
||||||
{/* Folder Header */}
|
{/* Folder Header */}
|
||||||
<div className="p-2 bg-panel border-b border-border flex items-center justify-between">
|
<div className="p-2 border-b border-border flex items-center justify-between">
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setCollapsedTodoFolders((prev) => {
|
setCollapsedTodoFolders((prev) => {
|
||||||
@@ -2550,7 +2552,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={() => setTodoFolderDrilldown(folderName)}
|
onClick={() => setTodoFolderDrilldown(folderName)}
|
||||||
className="text-[10px] text-muted hover:text-main px-1.5 py-0.5 rounded-btn hover:bg-panel-elevated cursor-pointer"
|
className="text-[10px] text-muted hover:text-main px-1.5 py-0.5 rounded-btn hover:bg-main/[0.06] cursor-pointer"
|
||||||
title="Diesen Ordner isolieren"
|
title="Diesen Ordner isolieren"
|
||||||
>
|
>
|
||||||
Nur diesen Ordner
|
Nur diesen Ordner
|
||||||
@@ -2566,7 +2568,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
key={doc.id}
|
key={doc.id}
|
||||||
className="border border-border/60 rounded-btn p-2 bg-panel-elevated/40 space-y-1.5"
|
className="border border-border/60 rounded-btn p-2 bg-main/[0.04] space-y-1.5"
|
||||||
>
|
>
|
||||||
<div className="flex items-center justify-between pb-1 border-b border-border/40">
|
<div className="flex items-center justify-between pb-1 border-b border-border/40">
|
||||||
<div
|
<div
|
||||||
@@ -2608,7 +2610,7 @@ export const WorkspaceView: React.FC<WorkspaceViewProps> = ({
|
|||||||
{docItems.map((item) => (
|
{docItems.map((item) => (
|
||||||
<div
|
<div
|
||||||
key={`${item.doc.id}-${item.blockId}`}
|
key={`${item.doc.id}-${item.blockId}`}
|
||||||
className="flex items-center justify-between gap-2 p-1 rounded-btn hover:bg-panel-elevated text-xs transition-colors group cursor-pointer"
|
className="flex items-center justify-between gap-2 p-1 rounded-btn hover:bg-main/[0.06] text-xs transition-colors group cursor-pointer"
|
||||||
>
|
>
|
||||||
<div className="flex items-center gap-2 min-w-0 flex-1">
|
<div className="flex items-center gap-2 min-w-0 flex-1">
|
||||||
<button
|
<button
|
||||||
|
|||||||
Reference in new issue
Block a user