@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,142 @@
1
+ <script lang="ts">
2
+ import * as Select from "@lapismd/design-core/shadcn/select";
3
+ import {
4
+ filterGroupType,
5
+ filterGroupValues,
6
+ isFilterGroup,
7
+ isFilterLine,
8
+ type Filters,
9
+ } from "../..";
10
+ import FilterRow from "./filter-row.svelte";
11
+ import { Button } from "@lapismd/design-core/shadcn/button";
12
+ import PlusIcon from "@lucide/svelte/icons/plus";
13
+ import Self from "./filter-group.svelte";
14
+ import { cn } from "@lapis-notes/api";
15
+ import Trash from "@lucide/svelte/icons/trash-2";
16
+ import type { QueryController } from "../../bases.svelte";
17
+
18
+ let {
19
+ filter = $bindable(),
20
+ controller,
21
+ class: className,
22
+ deleteFilterGroup,
23
+ }: {
24
+ filter: Filters;
25
+ controller: QueryController;
26
+ class?: string;
27
+ deleteFilterGroup?: () => void;
28
+ } = $props();
29
+ const filterTypes = [
30
+ { label: "All of the following are true", value: "and" },
31
+ { label: "Any of the following are true", value: "or" },
32
+ { label: "None of the following are true", value: "not" },
33
+ ];
34
+ let filterType = $derived(filterGroupType(filter));
35
+ let filterValues = $derived(filterGroupValues(filter));
36
+ let empty: string = $state("");
37
+
38
+ $effect(() => {
39
+ if (!filterValues.length && empty) {
40
+ filterValues.push(empty);
41
+ empty = "";
42
+ }
43
+ });
44
+
45
+ const triggerContent = $derived(
46
+ filterTypes.find((f) => f.value === filterType)?.label ??
47
+ "Select a filter type",
48
+ );
49
+
50
+ function addFilter() {
51
+ if (!filterValues.length) {
52
+ filterValues.push(empty);
53
+ empty = "";
54
+ }
55
+ filterValues.push("");
56
+ }
57
+
58
+ function addGroup() {
59
+ filterValues.push({ and: [""] });
60
+ }
61
+
62
+ function deleteFilter(index: number) {
63
+ filterValues.splice(index, 1);
64
+ }
65
+
66
+ function getFilterType() {
67
+ return filterType;
68
+ }
69
+
70
+ function setFilterType(newValue: string) {
71
+ (filter as any) = { [newValue]: filterValues };
72
+ }
73
+ </script>
74
+
75
+ <div class={cn("filter-group", className)}>
76
+ <div class="filter-group-header bases-style-flex-60fbb7 bases-style-items-center-3960ff bases-style-justify-between-8ef226">
77
+ <Select.Root type="single" bind:value={getFilterType, setFilterType}>
78
+ <Select.Trigger data-bases-filter-control="group-type-trigger">
79
+ {triggerContent}
80
+ </Select.Trigger>
81
+ <Select.Content
82
+ align="start"
83
+ data-bases-filter-control="group-type-content"
84
+ >
85
+ <Select.Group>
86
+ {#each filterTypes as filterType (filterType.value)}
87
+ <Select.Item value={filterType.value} label={filterType.label}
88
+ >{filterType.label}</Select.Item
89
+ >
90
+ {/each}
91
+ </Select.Group>
92
+ </Select.Content>
93
+ </Select.Root>
94
+ {#if deleteFilterGroup}
95
+ <Button
96
+ variant="ghost"
97
+ size="sm"
98
+ class="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"
99
+ onclick={() => deleteFilterGroup?.()}
100
+ >
101
+ <Trash />
102
+ </Button>
103
+ {/if}
104
+ </div>
105
+ <div class="filter-group-statements bases-style-grid-f3c543 bases-style-gap-2-77a2a2 bases-style-pt-1-6b7d6e">
106
+ {#if !filterValues.length}
107
+ <FilterRow
108
+ label="where"
109
+ {controller}
110
+ bind:value={empty}
111
+ deleteFilter={() => {
112
+ empty = "";
113
+ }}
114
+ />
115
+ {/if}
116
+ {#each filterValues as predicate, i}
117
+ {#if typeof predicate === "string" || isFilterLine(predicate)}
118
+ <FilterRow
119
+ label={i === 0 ? "where" : filterType}
120
+ {controller}
121
+ bind:value={filterValues[i] as any}
122
+ deleteFilter={() => deleteFilter(i)}
123
+ />
124
+ {:else if isFilterGroup(predicate)}
125
+ <Self
126
+ bind:filter={filterValues[i] as Filters}
127
+ {controller}
128
+ class={cn("bases-style-bg-accent-40-fb8b4c bases-style-m-2-e9a778 bases-style-rounded-sm-36d446 border bases-style-p-2-7660b4")}
129
+ deleteFilterGroup={() => deleteFilter(i)}
130
+ />
131
+ {/if}
132
+ {/each}
133
+ </div>
134
+ <div class="filter-group-actions bases-style-mt-2-50d0d2">
135
+ <Button size="sm" variant="ghost" onclick={(evt) => addFilter()}>
136
+ <PlusIcon /> Add Filter
137
+ </Button>
138
+ <Button size="sm" variant="ghost" onclick={(evt) => addGroup()}>
139
+ <PlusIcon /> Add Filter Group
140
+ </Button>
141
+ </div>
142
+ </div>
@@ -0,0 +1,11 @@
1
+ import { type Filters } from "../..";
2
+ import type { QueryController } from "../../bases.svelte";
3
+ type $$ComponentProps = {
4
+ filter: Filters;
5
+ controller: QueryController;
6
+ class?: string;
7
+ deleteFilterGroup?: () => void;
8
+ };
9
+ declare const FilterGroup: import("svelte").Component<$$ComponentProps, {}, "filter">;
10
+ type FilterGroup = ReturnType<typeof FilterGroup>;
11
+ export default FilterGroup;
@@ -0,0 +1,77 @@
1
+ <script lang="ts">
2
+ import * as Popover from "@lapismd/design-core/shadcn/popover";
3
+ import { Button } from "@lapismd/design-core/shadcn/button";
4
+ import * as Command from "@lapismd/design-core/shadcn/command";
5
+ import { cn } from "@lapis-notes/api";
6
+ import { Icon } from "@lapis-notes/api/icon";
7
+ import ArrowUpDown from "@lucide/svelte/icons/chevrons-up-down";
8
+ import CheckIcon from "@lucide/svelte/icons/check";
9
+ import type { QueryController } from "../../bases.svelte";
10
+
11
+ let {
12
+ controller,
13
+ value = $bindable(),
14
+ }: { value: any; controller: QueryController } = $props();
15
+
16
+ let col = $derived(determineColumn(value));
17
+ let isOpen: boolean = $derived(false);
18
+
19
+ function determineColumn(id: string) {
20
+ const column = controller.getAllColumns().find((it) => it.id === id);
21
+ if (!column) {
22
+ return { name: id, icon: "lucide-info" };
23
+ }
24
+ return {
25
+ name: column.displayName ?? id,
26
+ icon: column.icon ?? "lucide-info",
27
+ };
28
+ }
29
+ </script>
30
+
31
+ <Popover.Root bind:open={isOpen}>
32
+ <Popover.Trigger class="">
33
+ {#snippet child({ props }: { props: Record<string, any> })}
34
+ <Button
35
+ {...props}
36
+ variant="outline"
37
+ size="sm"
38
+ class="bases-style-flex-60fbb7 bases-style-h-8-ed8a5d grow bases-style-justify-between-8ef226 bases-style-rounded-none-0c5e91 bases-style-rounded-l-md-9b2e91 bases-style-border-none-4a5f0e bases-style-shadow-none-ad47d1 bases-style-outline-none-df37b1"
39
+ >
40
+ <span class="bases-style-flex-60fbb7 bases-style-h-full-668b21 bases-style-w-full-6da6a3 bases-style-items-center-3960ff">
41
+ <Icon name={col.icon} class="bases-style-mr-1-618162" />
42
+ {col.name}
43
+ </span>
44
+ <ArrowUpDown />
45
+ </Button>
46
+ {/snippet}
47
+ </Popover.Trigger>
48
+ <Popover.Content class="bases-style-w-310px-8357f2 bases-style-p-0-8a539c" align="start">
49
+ <Command.Root>
50
+ <Command.Input placeholder="Find or create" />
51
+ <Command.List class="bases-style-p-1-eb6a3c">
52
+ <Command.Empty>No results found.</Command.Empty>
53
+ {#each controller
54
+ .getAllColumns()
55
+ .filter((col) => col.id.startsWith("note.")) as column (column.id)}
56
+ <Command.Item
57
+ onSelect={() => {
58
+ value = column.id;
59
+ isOpen = false;
60
+ }}
61
+ >
62
+ <div
63
+ class={cn(
64
+ "bases-style-mr-2-d2347e bases-style-flex-60fbb7 bases-style-size-4-f7b5fa bases-style-items-center-3960ff bases-style-justify-center-86843c",
65
+ value === column.id ? "" : "bases-style-opacity-50-0b8c50 [&_svg]:invisible",
66
+ )}
67
+ >
68
+ <CheckIcon class="bases-style-size-4-f7b5fa" />
69
+ </div>
70
+ <Icon name={[column.icon ?? "lucide-info"]} />
71
+ <span>{column.displayName}</span>
72
+ </Command.Item>
73
+ {/each}
74
+ </Command.List>
75
+ </Command.Root>
76
+ </Popover.Content>
77
+ </Popover.Root>
@@ -0,0 +1,8 @@
1
+ import type { QueryController } from "../../bases.svelte";
2
+ type $$ComponentProps = {
3
+ value: any;
4
+ controller: QueryController;
5
+ };
6
+ declare const FilterProperties: import("svelte").Component<$$ComponentProps, {}, "value">;
7
+ type FilterProperties = ReturnType<typeof FilterProperties>;
8
+ export default FilterProperties;
@@ -0,0 +1,112 @@
1
+ <script lang="ts">
2
+ import * as Popover from "@lapismd/design-core/shadcn/popover";
3
+ import LucideListFilter from "@lucide/svelte/icons/list-filter";
4
+ import * as Accordion from "@lapismd/design-core/shadcn/accordion";
5
+ import { ScrollArea } from "@lapismd/design-core/shadcn/scroll-area";
6
+ import { Button } from "@lapismd/design-core/shadcn/button";
7
+ import { Badge } from "@lapismd/design-core/shadcn/badge";
8
+ import FilterGroupComponent from "./filter-group.svelte";
9
+ import { filterCount, type Filters } from "../..";
10
+ import { cn } from "@lapis-notes/api";
11
+ import type { QueryController } from "../../bases.svelte";
12
+
13
+ let {
14
+ table,
15
+ controller = table as QueryController,
16
+ currentFilter = $bindable(),
17
+ globalFilter = $bindable(),
18
+ class: className,
19
+ }: {
20
+ controller?: QueryController;
21
+ table?: any;
22
+ globalFilter: Filters;
23
+ currentFilter: Filters;
24
+ class?: string;
25
+ } = $props();
26
+
27
+ let globalCount = $derived(filterCount(globalFilter));
28
+ let currentCount = $derived(filterCount(currentFilter));
29
+ let totalCount = $derived(globalCount + currentCount);
30
+ let defaultOpenSection = $derived(
31
+ currentCount > 0
32
+ ? "this-view"
33
+ : globalCount > 0
34
+ ? "all-views"
35
+ : "this-view",
36
+ );
37
+ </script>
38
+
39
+ <Popover.Root>
40
+ <Popover.Trigger>
41
+ {#snippet child({ props }: { props: Record<string, any> })}
42
+ <Button
43
+ {...props}
44
+ variant="outline"
45
+ size="sm"
46
+ class={cn("bases-style-h-8-ed8a5d bases-style-border-dashed-a29b7a", {
47
+ "bases-style-text-var-text-accent-69c994 bases-style-hover-bg-color-mix-in-srgb-var-interactive-4e3e8a bases-style-hover-text-var-text-accent-5b2cb5":
48
+ totalCount > 0,
49
+ })}
50
+ >
51
+ <LucideListFilter /> Filter
52
+ </Button>
53
+ {/snippet}
54
+ </Popover.Trigger>
55
+ <Popover.Content
56
+ class={cn(
57
+ "bases-query-popover bases-filter-popover bases-style-mr-2-d2347e",
58
+ className,
59
+ )}
60
+ data-bases-popover="filter"
61
+ align="start"
62
+ >
63
+ <Accordion.Root type="single" value={defaultOpenSection}>
64
+ <Accordion.Item value="all-views">
65
+ <Accordion.Trigger
66
+ indicatorPosition="start"
67
+ indicatorVariant="disclosure"
68
+ class="bases-style-py-1-660d2e bases-style-font-bold-69450e hover:no-underline"
69
+ >
70
+ <span>
71
+ All views
72
+ <Badge
73
+ variant="secondary"
74
+ class={cn({ invisible: globalCount == 0 })}>{globalCount}</Badge
75
+ >
76
+ </span>
77
+ </Accordion.Trigger>
78
+ <Accordion.Content class="">
79
+ <ScrollArea
80
+ orientation="both"
81
+ class="bases-style-h-full-668b21 bases-style-max-w-55svw-8a9ecb bases-style-data-scroll-area-viewport-max-h-55svh-15dd46"
82
+ >
83
+ <FilterGroupComponent {controller} bind:filter={globalFilter} />
84
+ </ScrollArea>
85
+ </Accordion.Content>
86
+ </Accordion.Item>
87
+ <Accordion.Item value="this-view">
88
+ <Accordion.Trigger
89
+ indicatorPosition="start"
90
+ indicatorVariant="disclosure"
91
+ class="bases-style-py-1-660d2e bases-style-font-bold-69450e hover:no-underline"
92
+ >
93
+ <span>
94
+ This view
95
+ <Badge
96
+ variant="secondary"
97
+ class={cn({ invisible: currentCount == 0 })}>{currentCount}</Badge
98
+ >
99
+ </span>
100
+ </Accordion.Trigger>
101
+ <Accordion.Content class="">
102
+ <ScrollArea
103
+ orientation="both"
104
+ class="bases-style-h-full-668b21 bases-style-max-w-55svw-8a9ecb bases-style-data-scroll-area-viewport-max-h-55svh-15dd46"
105
+ >
106
+ <FilterGroupComponent {controller} bind:filter={currentFilter} />
107
+ </ScrollArea>
108
+ </Accordion.Content>
109
+ </Accordion.Item>
110
+ </Accordion.Root>
111
+ </Popover.Content>
112
+ </Popover.Root>
@@ -0,0 +1,12 @@
1
+ import { type Filters } from "../..";
2
+ import type { QueryController } from "../../bases.svelte";
3
+ type $$ComponentProps = {
4
+ controller?: QueryController;
5
+ table?: any;
6
+ globalFilter: Filters;
7
+ currentFilter: Filters;
8
+ class?: string;
9
+ };
10
+ declare const FilterRoot: import("svelte").Component<$$ComponentProps, {}, "globalFilter" | "currentFilter">;
11
+ type FilterRoot = ReturnType<typeof FilterRoot>;
12
+ export default FilterRoot;