@lapis-notes/bases 0.1.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.
Files changed (155) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/LICENSE.md +8 -0
  3. package/README.md +20 -0
  4. package/dist/bases-plugin.d.ts +10 -0
  5. package/dist/bases-plugin.js +118 -0
  6. package/dist/bases-view/app-database-query-source.d.ts +30 -0
  7. package/dist/bases-view/app-database-query-source.js +248 -0
  8. package/dist/bases-view/bases.svelte.d.ts +569 -0
  9. package/dist/bases-view/bases.svelte.js +910 -0
  10. package/dist/bases-view/card-view/components/card-placeholder.svelte +68 -0
  11. package/dist/bases-view/card-view/components/card-placeholder.svelte.d.ts +7 -0
  12. package/dist/bases-view/card-view/components/card.svelte +289 -0
  13. package/dist/bases-view/card-view/components/card.svelte.d.ts +7 -0
  14. package/dist/bases-view/card-view/index.d.ts +11 -0
  15. package/dist/bases-view/card-view/index.js +55 -0
  16. package/dist/bases-view/cell-editor-options.d.ts +2 -0
  17. package/dist/bases-view/cell-editor-options.js +26 -0
  18. package/dist/bases-view/cell-editor.svelte +206 -0
  19. package/dist/bases-view/cell-editor.svelte.d.ts +12 -0
  20. package/dist/bases-view/cell.svelte +132 -0
  21. package/dist/bases-view/cell.svelte.d.ts +16 -0
  22. package/dist/bases-view/column-definition.d.ts +22 -0
  23. package/dist/bases-view/column-definition.js +149 -0
  24. package/dist/bases-view/columns.d.ts +15 -0
  25. package/dist/bases-view/columns.js +103 -0
  26. package/dist/bases-view/components/Tag.svelte +14 -0
  27. package/dist/bases-view/components/Tag.svelte.d.ts +8 -0
  28. package/dist/bases-view/components/autocomplete.svelte +45 -0
  29. package/dist/bases-view/components/autocomplete.svelte.d.ts +17 -0
  30. package/dist/bases-view/components/card-image.svelte +121 -0
  31. package/dist/bases-view/components/card-image.svelte.d.ts +11 -0
  32. package/dist/bases-view/components/column-visibility.svelte +388 -0
  33. package/dist/bases-view/components/column-visibility.svelte.d.ts +13 -0
  34. package/dist/bases-view/components/datetime.svelte +35 -0
  35. package/dist/bases-view/components/datetime.svelte.d.ts +7 -0
  36. package/dist/bases-view/components/file.svelte +31 -0
  37. package/dist/bases-view/components/file.svelte.d.ts +8 -0
  38. package/dist/bases-view/components/filters/filter-editor.svelte +102 -0
  39. package/dist/bases-view/components/filters/filter-editor.svelte.d.ts +10 -0
  40. package/dist/bases-view/components/filters/filter-group.svelte +142 -0
  41. package/dist/bases-view/components/filters/filter-group.svelte.d.ts +11 -0
  42. package/dist/bases-view/components/filters/filter-properties.svelte +77 -0
  43. package/dist/bases-view/components/filters/filter-properties.svelte.d.ts +8 -0
  44. package/dist/bases-view/components/filters/filter-root.svelte +112 -0
  45. package/dist/bases-view/components/filters/filter-root.svelte.d.ts +12 -0
  46. package/dist/bases-view/components/filters/filter-row.svelte +351 -0
  47. package/dist/bases-view/components/filters/filter-row.svelte.d.ts +11 -0
  48. package/dist/bases-view/components/group/group-root.svelte +120 -0
  49. package/dist/bases-view/components/group/group-root.svelte.d.ts +8 -0
  50. package/dist/bases-view/components/limit.svelte +100 -0
  51. package/dist/bases-view/components/limit.svelte.d.ts +12 -0
  52. package/dist/bases-view/components/query-editor.svelte +230 -0
  53. package/dist/bases-view/components/query-editor.svelte.d.ts +15 -0
  54. package/dist/bases-view/components/sort/sort-direction-labels.d.ts +9 -0
  55. package/dist/bases-view/components/sort/sort-direction-labels.js +25 -0
  56. package/dist/bases-view/components/sort/sort-root.svelte +239 -0
  57. package/dist/bases-view/components/sort/sort-root.svelte.d.ts +11 -0
  58. package/dist/bases-view/components/sort/sort-row.svelte +190 -0
  59. package/dist/bases-view/components/sort/sort-row.svelte.d.ts +15 -0
  60. package/dist/bases-view/components/summary-strip.svelte +56 -0
  61. package/dist/bases-view/components/summary-strip.svelte.d.ts +8 -0
  62. package/dist/bases-view/components/tag-chip.svelte +47 -0
  63. package/dist/bases-view/components/tag-chip.svelte.d.ts +12 -0
  64. package/dist/bases-view/components/views.svelte +178 -0
  65. package/dist/bases-view/components/views.svelte.d.ts +12 -0
  66. package/dist/bases-view/data-table-adapter/data-table.svelte.d.ts +45 -0
  67. package/dist/bases-view/data-table-adapter/data-table.svelte.js +112 -0
  68. package/dist/bases-view/data-table-adapter/flex-render.svelte +43 -0
  69. package/dist/bases-view/data-table-adapter/flex-render.svelte.d.ts +30 -0
  70. package/dist/bases-view/data-table-adapter/index.d.ts +3 -0
  71. package/dist/bases-view/data-table-adapter/index.js +3 -0
  72. package/dist/bases-view/data-table-adapter/render-helpers.d.ts +101 -0
  73. package/dist/bases-view/data-table-adapter/render-helpers.js +110 -0
  74. package/dist/bases-view/db.d.ts +31 -0
  75. package/dist/bases-view/db.js +174 -0
  76. package/dist/bases-view/document-core.d.ts +2 -0
  77. package/dist/bases-view/document-core.js +166 -0
  78. package/dist/bases-view/export-core.d.ts +4 -0
  79. package/dist/bases-view/export-core.js +31 -0
  80. package/dist/bases-view/file-fields-core.d.ts +31 -0
  81. package/dist/bases-view/file-fields-core.js +114 -0
  82. package/dist/bases-view/filter-parser.d.ts +27 -0
  83. package/dist/bases-view/filter-parser.js +315 -0
  84. package/dist/bases-view/functions-core.d.ts +66 -0
  85. package/dist/bases-view/functions-core.js +265 -0
  86. package/dist/bases-view/functions.d.ts +5 -0
  87. package/dist/bases-view/functions.js +107 -0
  88. package/dist/bases-view/fuzzy-search.d.ts +6 -0
  89. package/dist/bases-view/fuzzy-search.js +15 -0
  90. package/dist/bases-view/hooks/useResizeObserver.svelte.d.ts +7 -0
  91. package/dist/bases-view/hooks/useResizeObserver.svelte.js +26 -0
  92. package/dist/bases-view/index.d.ts +66 -0
  93. package/dist/bases-view/index.js +231 -0
  94. package/dist/bases-view/list-view/index.d.ts +10 -0
  95. package/dist/bases-view/list-view/index.js +17 -0
  96. package/dist/bases-view/list-view/list.svelte +156 -0
  97. package/dist/bases-view/list-view/list.svelte.d.ts +7 -0
  98. package/dist/bases-view/map-view/index.d.ts +10 -0
  99. package/dist/bases-view/map-view/index.js +17 -0
  100. package/dist/bases-view/map-view/view.svelte +28 -0
  101. package/dist/bases-view/map-view/view.svelte.d.ts +7 -0
  102. package/dist/bases-view/metadata-invalidation-core.d.ts +34 -0
  103. package/dist/bases-view/metadata-invalidation-core.js +162 -0
  104. package/dist/bases-view/metadata-type-info.d.ts +7 -0
  105. package/dist/bases-view/metadata-type-info.js +10 -0
  106. package/dist/bases-view/models.d.ts +90 -0
  107. package/dist/bases-view/models.js +133 -0
  108. package/dist/bases-view/query-result-core.d.ts +8 -0
  109. package/dist/bases-view/query-result-core.js +16 -0
  110. package/dist/bases-view/resource-url.d.ts +2 -0
  111. package/dist/bases-view/resource-url.js +21 -0
  112. package/dist/bases-view/search-core.d.ts +9 -0
  113. package/dist/bases-view/search-core.js +20 -0
  114. package/dist/bases-view/summary-core.d.ts +7 -0
  115. package/dist/bases-view/summary-core.js +17 -0
  116. package/dist/bases-view/table-view/components/div-table.svelte +464 -0
  117. package/dist/bases-view/table-view/components/div-table.svelte.d.ts +32 -0
  118. package/dist/bases-view/table-view/components/dnd-style.d.ts +3 -0
  119. package/dist/bases-view/table-view/components/dnd-style.js +6 -0
  120. package/dist/bases-view/table-view/components/sort-header.svelte +48 -0
  121. package/dist/bases-view/table-view/components/sort-header.svelte.d.ts +11 -0
  122. package/dist/bases-view/table-view/components/table-column-tracks.d.ts +14 -0
  123. package/dist/bases-view/table-view/components/table-column-tracks.js +27 -0
  124. package/dist/bases-view/table-view/components/table-header.svelte +146 -0
  125. package/dist/bases-view/table-view/components/table-header.svelte.d.ts +10 -0
  126. package/dist/bases-view/table-view/components/table-placeholder.svelte +46 -0
  127. package/dist/bases-view/table-view/components/table-placeholder.svelte.d.ts +30 -0
  128. package/dist/bases-view/table-view/components/table-virtualizer-core.d.ts +13 -0
  129. package/dist/bases-view/table-view/components/table-virtualizer-core.js +12 -0
  130. package/dist/bases-view/table-view/components/table.svelte +997 -0
  131. package/dist/bases-view/table-view/components/table.svelte.d.ts +32 -0
  132. package/dist/bases-view/table-view/index.svelte.d.ts +10 -0
  133. package/dist/bases-view/table-view/index.svelte.js +30 -0
  134. package/dist/bases-view/unknown-view/index.d.ts +10 -0
  135. package/dist/bases-view/unknown-view/index.js +19 -0
  136. package/dist/bases-view/unknown-view/view.svelte +11 -0
  137. package/dist/bases-view/unknown-view/view.svelte.d.ts +6 -0
  138. package/dist/bases-view/view-header.svelte +142 -0
  139. package/dist/bases-view/view-header.svelte.d.ts +28 -0
  140. package/dist/bases-view/view-registration-inventory.d.ts +22 -0
  141. package/dist/bases-view/view-registration-inventory.js +7 -0
  142. package/dist/bases-view/view-settings.svelte +350 -0
  143. package/dist/bases-view/view-settings.svelte.d.ts +9 -0
  144. package/dist/bases-view/view.svelte +192 -0
  145. package/dist/bases-view/view.svelte.d.ts +15 -0
  146. package/dist/bases-view-surface.svelte +31 -0
  147. package/dist/bases-view-surface.svelte.d.ts +14 -0
  148. package/dist/index.d.ts +10 -0
  149. package/dist/index.js +8 -0
  150. package/dist/serialized-write-queue.d.ts +10 -0
  151. package/dist/serialized-write-queue.js +36 -0
  152. package/dist/styles.css +2164 -0
  153. package/manifest.json +33 -0
  154. package/package.json +90 -0
  155. package/styles.css +1 -0
@@ -0,0 +1,32 @@
1
+ import { type BasesView } from "../../bases.svelte";
2
+ type DataTableProps = {
3
+ view: BasesView;
4
+ };
5
+ declare function $$render<TData, TValue>(): {
6
+ props: DataTableProps;
7
+ exports: {
8
+ estimateTextWidth: (text: string, font?: string) => number;
9
+ };
10
+ bindings: "";
11
+ slots: {};
12
+ events: {};
13
+ };
14
+ declare class __sveltets_Render<TData, TValue> {
15
+ props(): ReturnType<typeof $$render<TData, TValue>>['props'];
16
+ events(): ReturnType<typeof $$render<TData, TValue>>['events'];
17
+ slots(): ReturnType<typeof $$render<TData, TValue>>['slots'];
18
+ bindings(): "";
19
+ exports(): {
20
+ estimateTextWidth: (text: string, font?: string) => number;
21
+ };
22
+ }
23
+ interface $$IsomorphicComponent {
24
+ new <TData, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TValue>['props']>, ReturnType<__sveltets_Render<TData, TValue>['events']>, ReturnType<__sveltets_Render<TData, TValue>['slots']>> & {
25
+ $$bindings?: ReturnType<__sveltets_Render<TData, TValue>['bindings']>;
26
+ } & ReturnType<__sveltets_Render<TData, TValue>['exports']>;
27
+ <TData, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TValue>['props']> & {}): ReturnType<__sveltets_Render<TData, TValue>['exports']>;
28
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
29
+ }
30
+ declare const Table: $$IsomorphicComponent;
31
+ type Table<TData, TValue> = InstanceType<typeof Table<TData, TValue>>;
32
+ export default Table;
@@ -0,0 +1,10 @@
1
+ import type { BasesOptions } from "@lapis-notes/api";
2
+ import { BasesView, QueryController } from "../bases.svelte";
3
+ export declare class TableView extends BasesView {
4
+ readonly controller: QueryController;
5
+ readonly scrollEl: HTMLElement;
6
+ type: string;
7
+ constructor(controller: QueryController, scrollEl: HTMLElement);
8
+ onDataUpdated(): void;
9
+ static getViewOptions(): BasesOptions[];
10
+ }
@@ -0,0 +1,30 @@
1
+ import { BasesView, QueryController } from "../bases.svelte";
2
+ import TableViewComponent from "./components/table.svelte";
3
+ export class TableView extends BasesView {
4
+ controller;
5
+ scrollEl;
6
+ type = "table";
7
+ constructor(controller, scrollEl) {
8
+ super(controller);
9
+ this.controller = controller;
10
+ this.scrollEl = scrollEl;
11
+ this.mountViewComponent(TableViewComponent, { view: this }, scrollEl);
12
+ }
13
+ onDataUpdated() { }
14
+ static getViewOptions() {
15
+ return [
16
+ {
17
+ key: "rowHeight",
18
+ displayName: "Row Height",
19
+ type: "dropdown",
20
+ default: "short",
21
+ options: {
22
+ short: "Short",
23
+ medium: "Medium",
24
+ tall: "Tall",
25
+ extra: "Extra tall",
26
+ },
27
+ },
28
+ ];
29
+ }
30
+ }
@@ -0,0 +1,10 @@
1
+ import type { BasesOptions } from "@lapis-notes/api";
2
+ import { BasesView, QueryController } from "../bases.svelte";
3
+ export declare class UnknownView extends BasesView {
4
+ readonly controller: QueryController;
5
+ readonly scrollEl: HTMLElement;
6
+ type: string;
7
+ constructor(controller: QueryController, scrollEl: HTMLElement);
8
+ onDataUpdated(): void;
9
+ static getViewOptions(): BasesOptions[];
10
+ }
@@ -0,0 +1,19 @@
1
+ import { BasesView, QueryController } from "../bases.svelte";
2
+ import UnknownViewComponent from "./view.svelte";
3
+ export class UnknownView extends BasesView {
4
+ controller;
5
+ scrollEl;
6
+ type = "unknown";
7
+ constructor(controller, scrollEl) {
8
+ super(controller);
9
+ this.controller = controller;
10
+ this.scrollEl = scrollEl;
11
+ this.mountViewComponent(UnknownViewComponent, {
12
+ type: controller.selectedView?.type ?? "unknown",
13
+ }, scrollEl);
14
+ }
15
+ onDataUpdated() { }
16
+ static getViewOptions() {
17
+ return [];
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ <script lang="ts">
2
+ let { type }: { type: string } = $props();
3
+ </script>
4
+
5
+ <div
6
+ class="bases-view bases-error bases-style-w-full-6da6a3 bases-style-border-t-b950dd bases-style-px-2-d5eab2 bases-style-py-1-660d2e bases-style-text-sm-fc7473"
7
+ data-ui-component="bases-unknown-view"
8
+ data-ui-part="fallback"
9
+ >
10
+ <p>Base configured with an unknown view type: {type}</p>
11
+ </div>
@@ -0,0 +1,6 @@
1
+ type $$ComponentProps = {
2
+ type: string;
3
+ };
4
+ declare const View: import("svelte").Component<$$ComponentProps, {}, "">;
5
+ type View = ReturnType<typeof View>;
6
+ export default View;
@@ -0,0 +1,142 @@
1
+ <script lang="ts" generics="TData, TValue">
2
+ import Properties from "./components/column-visibility.svelte";
3
+ import FilterComponent from "./components/filters/filter-root.svelte";
4
+ import Sort from "./components/sort/sort-root.svelte";
5
+ import Limit from "./components/limit.svelte";
6
+ import { cn } from "@lapis-notes/api";
7
+ import Views from "./components/views.svelte";
8
+ import { Button } from "@lapismd/design-core/shadcn/button";
9
+ import Plus from "@lucide/svelte/icons/plus";
10
+ import Search from "@lucide/svelte/icons/search";
11
+ import { onMount } from "svelte";
12
+ import type { QueryController } from "./bases.svelte";
13
+ import { serializeResultsToCsv } from "./export-core";
14
+
15
+ type DataTableProps<TData, TValue> = {
16
+ controller: QueryController;
17
+ };
18
+
19
+ let { controller = $bindable() }: DataTableProps<TData, TValue> = $props();
20
+
21
+ async function createFile() {
22
+ await controller.view?.createFileForView();
23
+ }
24
+
25
+ function buildCsv() {
26
+ const properties = controller.view?.config.getOrder() ?? [];
27
+ return serializeResultsToCsv(
28
+ controller.view?.data.data ?? [],
29
+ properties,
30
+ (propertyId) => controller.view.config.getDisplayName(propertyId),
31
+ );
32
+ }
33
+
34
+ async function copyCsv() {
35
+ if (typeof navigator === "undefined" || !navigator.clipboard) return;
36
+ await navigator.clipboard.writeText(buildCsv());
37
+ }
38
+
39
+ function exportCsv() {
40
+ if (typeof document === "undefined" || typeof URL === "undefined") return;
41
+ const blob = new Blob([buildCsv()], { type: "text/csv;charset=utf-8" });
42
+ const url = URL.createObjectURL(blob);
43
+ const anchor = document.createElement("a");
44
+ anchor.href = url;
45
+ anchor.download = `${controller.selectedView.name || "base"}.csv`;
46
+ anchor.click();
47
+ URL.revokeObjectURL(url);
48
+ }
49
+
50
+ let show = $state(false);
51
+ onMount(() => {
52
+ setTimeout(() => {
53
+ show = true;
54
+ });
55
+ });
56
+ </script>
57
+
58
+ <div
59
+ class="bases-view__toolbar bases-style-flex-60fbb7 bases-style-flex-wrap-1eb5c6 bases-style-items-center-3960ff bases-style-justify-between-8ef226 bases-style-gap-1-44ee8b bases-style-px-2-d5eab2 bases-style-py-4-cb11fe"
60
+ data-ui-component="bases-toolbar"
61
+ data-ui-part="root"
62
+ >
63
+ <div class="bases-style-flex-60fbb7 bases-style-flex-wrap-1eb5c6 bases-style-gap-1-44ee8b">
64
+ <Views
65
+ bind:show
66
+ {controller}
67
+ bind:value={
68
+ () => controller.selectedView,
69
+ (value) => (controller.selectedView = value)
70
+ }
71
+ bind:views={
72
+ () => controller.doc.views, (views) => (controller.doc.views = views)
73
+ }
74
+ />
75
+ <Limit
76
+ bind:view={controller.selectedView}
77
+ class={cn({
78
+ "bases-view__toolbar-button--active":
79
+ controller.selectedView.limit && controller.selectedView.limit > 0,
80
+ })}
81
+ count={controller.count}
82
+ onCopyCsv={copyCsv}
83
+ onExportCsv={exportCsv}
84
+ />
85
+ </div>
86
+ <div class="bases-style-flex-60fbb7 bases-style-flex-wrap-1eb5c6 bases-style-gap-1-44ee8b">
87
+ <Button
88
+ variant="outline"
89
+ size="sm"
90
+ class={cn("bases-style-h-8-ed8a5d", {
91
+ "bases-view__toolbar-button--active":
92
+ controller.searchPanelOpen || !!controller.searchQuery.trim(),
93
+ })}
94
+ onclick={() => controller.toggleSearchPanel()}
95
+ >
96
+ <Search />
97
+ <span>Search</span>
98
+ </Button>
99
+ <Sort
100
+ bind:orderBy={
101
+ () => controller.selectedView.sort,
102
+ (orderBy) => (controller.selectedView.sort = orderBy)
103
+ }
104
+ {controller}
105
+ class={cn({
106
+ "bases-view__toolbar-button--active":
107
+ controller.selectedView.sort.length ||
108
+ !!controller.selectedView.groupBy?.property,
109
+ })}
110
+ />
111
+ <FilterComponent
112
+ bind:currentFilter={
113
+ () => controller.selectedView.filter,
114
+ (currentFilter) => (controller.selectedView.filter = currentFilter)
115
+ }
116
+ bind:globalFilter={
117
+ () => controller.doc.filters,
118
+ (globalFilter) => (controller.doc.filters = globalFilter)
119
+ }
120
+ {controller}
121
+ />
122
+ <Properties
123
+ bind:order={
124
+ () => controller.selectedView.order,
125
+ (order) => (controller.selectedView.order = order)
126
+ }
127
+ bind:formulas={
128
+ () => controller.formulas,
129
+ (formulas) => (controller.formulas = formulas)
130
+ }
131
+ bind:properties={
132
+ () => controller.properties,
133
+ (properties) => (controller.properties = properties)
134
+ }
135
+ {controller}
136
+ />
137
+ <Button variant="outline" size="sm" class="bases-style-h-8-ed8a5d" onclick={createFile}>
138
+ <Plus />
139
+ <span>New</span>
140
+ </Button>
141
+ </div>
142
+ </div>
@@ -0,0 +1,28 @@
1
+ import type { QueryController } from "./bases.svelte";
2
+ type DataTableProps<TData, TValue> = {
3
+ controller: QueryController;
4
+ };
5
+ declare function $$render<TData, TValue>(): {
6
+ props: DataTableProps<TData, TValue>;
7
+ exports: {};
8
+ bindings: "controller";
9
+ slots: {};
10
+ events: {};
11
+ };
12
+ declare class __sveltets_Render<TData, TValue> {
13
+ props(): ReturnType<typeof $$render<TData, TValue>>['props'];
14
+ events(): ReturnType<typeof $$render<TData, TValue>>['events'];
15
+ slots(): ReturnType<typeof $$render<TData, TValue>>['slots'];
16
+ bindings(): "controller";
17
+ exports(): {};
18
+ }
19
+ interface $$IsomorphicComponent {
20
+ new <TData, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TData, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TData, TValue>['props']>, ReturnType<__sveltets_Render<TData, TValue>['events']>, ReturnType<__sveltets_Render<TData, TValue>['slots']>> & {
21
+ $$bindings?: ReturnType<__sveltets_Render<TData, TValue>['bindings']>;
22
+ } & ReturnType<__sveltets_Render<TData, TValue>['exports']>;
23
+ <TData, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TData, TValue>['props']> & {}): ReturnType<__sveltets_Render<TData, TValue>['exports']>;
24
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
25
+ }
26
+ declare const ViewHeader: $$IsomorphicComponent;
27
+ type ViewHeader<TData, TValue> = InstanceType<typeof ViewHeader<TData, TValue>>;
28
+ export default ViewHeader;
@@ -0,0 +1,22 @@
1
+ export declare const BUILT_IN_BASES_VIEW_ITEMS: readonly [{
2
+ readonly id: "table";
3
+ readonly name: "Table";
4
+ readonly icon: "lucide-table";
5
+ }, {
6
+ readonly id: "unknown";
7
+ readonly name: "Unknown";
8
+ readonly icon: "lucide-file";
9
+ }, {
10
+ readonly id: "cards";
11
+ readonly name: "Cards";
12
+ readonly icon: "lucide-layout-grid";
13
+ }, {
14
+ readonly id: "list";
15
+ readonly name: "List";
16
+ readonly icon: "lucide-list";
17
+ }, {
18
+ readonly id: "map";
19
+ readonly name: "Map";
20
+ readonly icon: "lucide-map";
21
+ }];
22
+ export type BuiltInBasesViewId = (typeof BUILT_IN_BASES_VIEW_ITEMS)[number]["id"];
@@ -0,0 +1,7 @@
1
+ export const BUILT_IN_BASES_VIEW_ITEMS = [
2
+ { id: "table", name: "Table", icon: "lucide-table" },
3
+ { id: "unknown", name: "Unknown", icon: "lucide-file" },
4
+ { id: "cards", name: "Cards", icon: "lucide-layout-grid" },
5
+ { id: "list", name: "List", icon: "lucide-list" },
6
+ { id: "map", name: "Map", icon: "lucide-map" },
7
+ ];