@lapis-notes/bases 0.1.1 → 0.1.3

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 CHANGED
@@ -1,6 +1,12 @@
1
1
  # Bases changelog
2
2
 
3
- ## 0.1.1
3
+ ## 0.1.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Add official author avatars and deterministic split, light, and dark registry media for plugin banners, overviews, and galleries.
8
+
9
+ ## 0.1.2
4
10
 
5
11
  - Initial independent public package extracted from Lapis Notes without changing
6
12
  the runtime plugin ID.
package/LICENSE.md CHANGED
@@ -1,8 +1,4 @@
1
- # License
1
+ Apache-2.0
2
2
 
3
- Copyright (c) LapisMD contributors.
4
-
5
- This software is licensed under the GNU Affero General Public License, version
6
- 3 or (at your option) any later version (`AGPL-3.0-or-later`). The complete
7
- license text is available from the
8
- [GNU Project](https://www.gnu.org/licenses/agpl-3.0.html).
3
+ This project is licensed under the Apache License 2.0.
4
+ See <https://www.apache.org/licenses/LICENSE-2.0>.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Bases
2
2
 
3
- Bases
3
+ Build table, card, and grouped views from Markdown properties
4
4
 
5
5
  ## Install for static composition
6
6
 
@@ -13,7 +13,7 @@ Register the exported plugin class in the application's `PluginProfile`. Import
13
13
  registration so the host owns its lifecycle.
14
14
 
15
15
  The runtime plugin ID is `bases`. A matching signed
16
- `bases-0.1.1.lapis-plugin` archive is attached to the
16
+ `bases-0.1.3.lapis-plugin` archive is attached to the
17
17
  package-scoped GitHub release for manual or registry installation.
18
18
 
19
19
  See the [repository README](https://github.com/lapismd/lapis-plugins#readme) for
@@ -8,6 +8,6 @@ type $$ComponentProps = {
8
8
  formulas: Record<string, string>;
9
9
  order: Array<string>;
10
10
  };
11
- declare const ColumnVisibility: import("svelte").Component<$$ComponentProps, {}, "order" | "properties" | "formulas">;
11
+ declare const ColumnVisibility: import("svelte").Component<$$ComponentProps, {}, "properties" | "order" | "formulas">;
12
12
  type ColumnVisibility = ReturnType<typeof ColumnVisibility>;
13
13
  export default ColumnVisibility;
@@ -198,6 +198,7 @@
198
198
  <Button
199
199
  variant="ghost"
200
200
  size="sm"
201
+ aria-label="Clear grouping"
201
202
  class="bases-style-bg-background-e6f9e3 bases-style-h-8-ed8a5d bases-style-rounded-none-0c5e91 bases-style-rounded-r-md-d4eb07 bases-style-border-none-4a5f0e bases-style-shadow-none-ad47d1 bases-style-outline-none-df37b1"
202
203
  disabled={!selectedGroupColumn}
203
204
  onclick={() => (controller.selectedView.groupBy = undefined)}
@@ -96,6 +96,7 @@
96
96
  <Button
97
97
  {@attach draggable.attachHandle}
98
98
  size="sm"
99
+ aria-label={`Reorder ${column?.displayName ?? "sort"}`}
99
100
  class="drag-handle bases-style-mr-0-5-1caf26"
100
101
  variant="ghost"
101
102
  >
@@ -179,6 +180,7 @@
179
180
  <Button
180
181
  variant="ghost"
181
182
  size="sm"
183
+ aria-label={`Remove ${column?.displayName ?? "sort"}`}
182
184
  class="bases-style-bg-background-e6f9e3 bases-style-h-8-ed8a5d bases-style-rounded-none-0c5e91 bases-style-rounded-r-md-d4eb07 bases-style-border-none-4a5f0e bases-style-shadow-none-ad47d1 bases-style-outline-none-df37b1"
183
185
  onclick={() => deleteSort()}
184
186
  >
@@ -7,6 +7,6 @@ type $$ComponentProps = {
7
7
  table?: any;
8
8
  show: boolean;
9
9
  };
10
- declare const Views: import("svelte").Component<$$ComponentProps, {}, "value" | "show" | "views">;
10
+ declare const Views: import("svelte").Component<$$ComponentProps, {}, "views" | "value" | "show">;
11
11
  type Views = ReturnType<typeof Views>;
12
12
  export default Views;
package/manifest.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "id": "bases",
3
3
  "name": "Bases",
4
- "version": "0.1.1",
4
+ "version": "0.1.3",
5
5
  "minAppVersion": "0.1.0",
6
- "description": "Bases",
6
+ "description": "Build table, card, and grouped views from Markdown properties",
7
7
  "author": "Lapis Notes Bases",
8
8
  "authorUrl": "https://app.lapis.md",
9
+ "authorAvatarUrl": "https://www.gravatar.com/avatar/1df68d9ff087b0dd72fd8626056fca7f?s=128&d=404",
9
10
  "isDesktopOnly": false,
10
11
  "lapis": {
11
12
  "manifestVersion": 1,
@@ -23,7 +24,21 @@
23
24
  "@lapis-notes/api/editor/core",
24
25
  "@lapis-notes/api/editor/extensions/class-highlighter",
25
26
  "@lapis-notes/api/icon",
26
- "@lapis-notes/api/metadata-value"
27
+ "@lapis-notes/api/metadata-value",
28
+ "@codemirror/autocomplete",
29
+ "@codemirror/language",
30
+ "@codemirror/state",
31
+ "@codemirror/view",
32
+ "@lezer/common",
33
+ "@lezer/highlight",
34
+ "@lezer/lr",
35
+ "svelte/renderer/5.56.10",
36
+ "svelte/renderer/5.56.10/attachments",
37
+ "svelte/renderer/5.56.10/events",
38
+ "svelte/renderer/5.56.10/internal/client",
39
+ "svelte/renderer/5.56.10/internal/disclose-version",
40
+ "svelte/renderer/5.56.10/internal/flags/legacy",
41
+ "svelte/renderer/5.56.10/reactivity"
27
42
  ],
28
43
  "requiresReloadOnUpdate": false
29
44
  }
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@lapis-notes/bases",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Lapis Notes Bases plugin",
5
- "license": "AGPL-3.0-or-later",
5
+ "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "files": [
8
8
  "dist",
9
9
  "manifest.json",
10
+ "registry.json",
11
+ "registry-content",
10
12
  "styles.css",
11
13
  "README.md",
12
14
  "CHANGELOG.md",
@@ -27,20 +29,16 @@
27
29
  "default": "./dist/index.js"
28
30
  },
29
31
  "./styles.css": "./styles.css",
30
- "./manifest.json": "./manifest.json"
32
+ "./manifest.json": "./manifest.json",
33
+ "./registry.json": "./registry.json"
31
34
  },
32
35
  "dependencies": {
33
- "@codemirror/autocomplete": "^6.18.6",
34
36
  "@codemirror/lang-sql": "^6.9.1",
35
37
  "@codemirror/lang-yaml": "^6.1.2",
36
- "@codemirror/language": "^6.11.3",
37
- "@codemirror/state": "^6.6.0",
38
- "@codemirror/view": "^6.42.1",
39
38
  "@dnd-kit/dom": "^0.4.0",
40
39
  "@dnd-kit/helpers": "^0.4.0",
41
40
  "@dnd-kit/svelte": "^0.4.0",
42
- "@lapis-notes/api": "^0.1.0",
43
- "@lapismd/design-core": "^0.1.0",
41
+ "@lapismd/design-core": "^0.3.2",
44
42
  "@lucide/svelte": "^0.523.0",
45
43
  "@tanstack/table-core": "^8.21.3",
46
44
  "js-yaml": "^4.1.0",
@@ -49,6 +47,14 @@
49
47
  "peaql": "^0.1.25"
50
48
  },
51
49
  "peerDependencies": {
50
+ "@codemirror/autocomplete": "^6.18.6",
51
+ "@codemirror/language": "^6.11.3",
52
+ "@codemirror/state": "^6.6.0",
53
+ "@codemirror/view": "^6.42.1",
54
+ "@lapis-notes/api": "^0.1.2",
55
+ "@lezer/common": "^1.5.2",
56
+ "@lezer/highlight": "^1.2.3",
57
+ "@lezer/lr": "^1.4.2",
52
58
  "svelte": "^5.0.0"
53
59
  },
54
60
  "devDependencies": {
@@ -0,0 +1,11 @@
1
+ # Bases
2
+
3
+ Bases turns ordinary Markdown notes and front matter into live, structured
4
+ collections without moving the source into a separate database. A `.base`
5
+ file describes which notes belong, which properties appear, and how the result
6
+ should be filtered, sorted, limited, or grouped.
7
+
8
+ Use tables for detailed review, visual cards for portfolios with cover images,
9
+ or grouped lists for faster scanning. Changes to supported properties still
10
+ flow through normal vault files, so the same notes remain portable and usable
11
+ everywhere else in Lapis.
package/registry.json ADDED
@@ -0,0 +1,185 @@
1
+ {
2
+ "$schema": "https://registry.lapis.md/schemas/plugin-source.schema.json",
3
+ "schemaVersion": 2,
4
+ "categories": ["data", "database", "editor"],
5
+ "highlights": [
6
+ "Create structured views over notes and front matter.",
7
+ "Filter and organize vault data without leaving the workspace.",
8
+ "Keep editable views backed by ordinary Lapis content."
9
+ ],
10
+ "documentationUrl": "https://github.com/lapismd/lapis-plugins/tree/main/packages/bases#readme",
11
+ "appearance": {
12
+ "icon": "table-2",
13
+ "accent": "#14B8A6"
14
+ },
15
+ "media": {
16
+ "banner": {
17
+ "alt": "Lapis Bases showing a populated project cover-card view with real artwork and useful properties.",
18
+ "images": {
19
+ "preview": {
20
+ "path": "registry-assets/banner.preview.webp"
21
+ },
22
+ "full": {
23
+ "path": "registry-assets/banner.full.webp"
24
+ },
25
+ "light": {
26
+ "path": "registry-assets/banner.light.webp"
27
+ },
28
+ "dark": {
29
+ "path": "registry-assets/banner.dark.webp"
30
+ }
31
+ },
32
+ "capture": {
33
+ "storyId": "plugins-bases-registry-screenshots--overview",
34
+ "focus": "full-shell"
35
+ }
36
+ },
37
+ "overview": {
38
+ "alt": "Lapis Bases grouped list view with populated project records and grouping controls open.",
39
+ "images": {
40
+ "preview": {
41
+ "path": "registry-assets/overview.preview.webp"
42
+ },
43
+ "full": {
44
+ "path": "registry-assets/overview.full.webp"
45
+ },
46
+ "light": {
47
+ "path": "registry-assets/overview.light.webp"
48
+ },
49
+ "dark": {
50
+ "path": "registry-assets/overview.dark.webp"
51
+ }
52
+ },
53
+ "capture": {
54
+ "storyId": "plugins-bases-registry-screenshots--grouped-list",
55
+ "focus": "full-shell"
56
+ }
57
+ }
58
+ },
59
+ "gallery": [
60
+ {
61
+ "id": "table",
62
+ "alt": "Focused projects table with the Filter panel open to an Active status rule.",
63
+ "images": {
64
+ "preview": {
65
+ "path": "registry-assets/gallery/table.preview.webp"
66
+ },
67
+ "full": {
68
+ "path": "registry-assets/gallery/table.full.webp"
69
+ },
70
+ "light": {
71
+ "path": "registry-assets/gallery/table.light.webp"
72
+ },
73
+ "dark": {
74
+ "path": "registry-assets/gallery/table.dark.webp"
75
+ }
76
+ },
77
+ "capture": {
78
+ "storyId": "plugins-bases-registry-screenshots--filter-options",
79
+ "focus": "full-shell"
80
+ },
81
+ "card": {
82
+ "headline": [
83
+ {
84
+ "text": "Filter the work",
85
+ "tone": "neutral"
86
+ },
87
+ {
88
+ "text": "to what matters now",
89
+ "tone": "cyan"
90
+ }
91
+ ],
92
+ "description": [
93
+ {
94
+ "text": "Combine property rules across one view or every view while the source stays",
95
+ "tone": "neutral"
96
+ },
97
+ {
98
+ "text": "ordinary Markdown.",
99
+ "tone": "green"
100
+ }
101
+ ]
102
+ }
103
+ },
104
+ {
105
+ "id": "cards",
106
+ "alt": "Focused projects base displayed as visual cards with actual cover artwork, owner, status, and score.",
107
+ "images": {
108
+ "preview": {
109
+ "path": "registry-assets/gallery/cards.preview.webp"
110
+ },
111
+ "full": {
112
+ "path": "registry-assets/gallery/cards.full.webp"
113
+ },
114
+ "light": {
115
+ "path": "registry-assets/gallery/cards.light.webp"
116
+ },
117
+ "dark": {
118
+ "path": "registry-assets/gallery/cards.dark.webp"
119
+ }
120
+ },
121
+ "capture": {
122
+ "storyId": "plugins-bases-registry-screenshots--cover-cards",
123
+ "focus": "full-shell"
124
+ },
125
+ "card": {
126
+ "headline": [
127
+ {
128
+ "text": "See the work",
129
+ "tone": "neutral"
130
+ },
131
+ {
132
+ "text": "at a glance",
133
+ "tone": "violet"
134
+ }
135
+ ],
136
+ "description": [
137
+ {
138
+ "text": "Use cover images and selected properties to build a compact project portfolio.",
139
+ "tone": "neutral"
140
+ }
141
+ ]
142
+ }
143
+ },
144
+ {
145
+ "id": "grouped-list",
146
+ "alt": "Focused projects list grouped into Active and Planning sections with the Group by controls open.",
147
+ "images": {
148
+ "preview": {
149
+ "path": "registry-assets/gallery/grouped-list.preview.webp"
150
+ },
151
+ "full": {
152
+ "path": "registry-assets/gallery/grouped-list.full.webp"
153
+ },
154
+ "light": {
155
+ "path": "registry-assets/gallery/grouped-list.light.webp"
156
+ },
157
+ "dark": {
158
+ "path": "registry-assets/gallery/grouped-list.dark.webp"
159
+ }
160
+ },
161
+ "capture": {
162
+ "storyId": "plugins-bases-registry-screenshots--grouped-list",
163
+ "focus": "full-shell"
164
+ },
165
+ "card": {
166
+ "headline": [
167
+ {
168
+ "text": "Group related notes",
169
+ "tone": "neutral"
170
+ },
171
+ {
172
+ "text": "around the next decision",
173
+ "tone": "green"
174
+ }
175
+ ],
176
+ "description": [
177
+ {
178
+ "text": "Shape the same source data into a grouped list when a table is more than you need.",
179
+ "tone": "neutral"
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ ]
185
+ }