rimelight-components 2.0.60 → 2.0.63

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 (54) hide show
  1. package/dist/module.json +1 -1
  2. package/dist/module.mjs +1 -2
  3. package/dist/runtime/app.config.d.ts +4 -0
  4. package/dist/runtime/app.config.js +4 -0
  5. package/dist/runtime/components/blocks/BlockEditRenderer.d.vue.ts +1 -1
  6. package/dist/runtime/components/blocks/BlockEditRenderer.vue.d.ts +1 -1
  7. package/dist/runtime/components/blocks/BlockEditor.d.vue.ts +1 -1
  8. package/dist/runtime/components/blocks/BlockEditor.vue +1 -1
  9. package/dist/runtime/components/blocks/BlockEditor.vue.d.ts +1 -1
  10. package/dist/runtime/components/blocks/BlockViewRenderer.d.vue.ts +1 -1
  11. package/dist/runtime/components/blocks/BlockViewRenderer.vue.d.ts +1 -1
  12. package/dist/runtime/components/blocks/TOC.d.vue.ts +2 -2
  13. package/dist/runtime/components/blocks/TOC.vue.d.ts +2 -2
  14. package/dist/runtime/components/blocks/TextRenderer.d.vue.ts +1 -1
  15. package/dist/runtime/components/blocks/TextRenderer.vue.d.ts +1 -1
  16. package/dist/runtime/components/blocks/editor/ParagraphBlockEditor.d.vue.ts +1 -1
  17. package/dist/runtime/components/blocks/editor/ParagraphBlockEditor.vue.d.ts +1 -1
  18. package/dist/runtime/components/blocks/editor/SectionBlockEditor.d.vue.ts +1 -1
  19. package/dist/runtime/components/blocks/editor/SectionBlockEditor.vue.d.ts +1 -1
  20. package/dist/runtime/components/blocks/editor/TestBlockEditor.d.vue.ts +1 -1
  21. package/dist/runtime/components/blocks/editor/TestBlockEditor.vue.d.ts +1 -1
  22. package/dist/runtime/components/content/Section.vue +1 -1
  23. package/dist/runtime/components/page/PageEditor.d.vue.ts +17 -5
  24. package/dist/runtime/components/page/PageEditor.vue +1 -1
  25. package/dist/runtime/components/page/PageEditor.vue.d.ts +17 -5
  26. package/dist/runtime/components/page/PagePropertiesEditor.d.vue.ts +9 -3
  27. package/dist/runtime/components/page/PagePropertiesEditor.vue +16 -12
  28. package/dist/runtime/components/page/PagePropertiesEditor.vue.d.ts +9 -3
  29. package/dist/runtime/components/page/PagePropertiesRenderer.d.vue.ts +1 -1
  30. package/dist/runtime/components/page/PagePropertiesRenderer.vue +25 -17
  31. package/dist/runtime/components/page/PagePropertiesRenderer.vue.d.ts +1 -1
  32. package/dist/runtime/components/swatches/ColorSwatch.vue +1 -1
  33. package/dist/runtime/composables/index.d.ts +3 -0
  34. package/dist/runtime/composables/index.js +3 -0
  35. package/dist/runtime/composables/useBlockEditor.d.ts +131 -131
  36. package/dist/runtime/composables/usePageEditor.d.ts +1 -1
  37. package/dist/runtime/types/app.config.d.ts +10 -2
  38. package/dist/runtime/types/index.d.ts +3 -4
  39. package/dist/runtime/types/index.js +0 -1
  40. package/dist/runtime/types/pages.d.ts +31 -109
  41. package/dist/runtime/types/pages.js +3 -58
  42. package/dist/runtime/types/schemas.d.ts +0 -6
  43. package/dist/runtime/types/schemas.js +0 -10
  44. package/dist/runtime/utils/blockMapper.d.ts +1 -1
  45. package/dist/runtime/utils/database.d.ts +6 -0
  46. package/dist/runtime/utils/database.js +10 -0
  47. package/dist/runtime/utils/index.d.ts +4 -3
  48. package/dist/runtime/utils/index.js +1 -0
  49. package/dist/runtime/utils/page.d.ts +7 -4
  50. package/dist/runtime/utils/page.js +64 -13
  51. package/dist/runtime/utils/richTextHelpers.d.ts +1 -1
  52. package/package.json +30 -23
  53. package/dist/runtime/types/pageTemplates.d.ts +0 -3
  54. package/dist/runtime/types/pageTemplates.js +0 -173
@@ -1,5 +1,5 @@
1
1
  import { type Ref } from "vue";
2
- import type { Page } from "../types/pages.js";
2
+ import type { Page } from "../types/pages";
3
3
  export declare function usePageEditor(page: Ref<Page>, maxHistorySize?: number): {
4
4
  undo: () => void;
5
5
  redo: () => void;
@@ -1,6 +1,14 @@
1
1
  declare module '#build/app.config' {
2
2
  import type { AppConfig } from '@nuxt/schema'
3
3
 
4
- const _default: AppConfig
4
+ interface RimelightComponentsConfig {
5
+ [key: string]: any
6
+ }
7
+
8
+ interface CustomAppConfig extends AppConfig {
9
+ rimelightComponents?: RimelightComponentsConfig
10
+ }
11
+
12
+ const _default: CustomAppConfig
5
13
  export default _default
6
- }
14
+ }
@@ -1,4 +1,3 @@
1
- export * from "./blocks.js";
2
- export * from "./pages.js";
3
- export * from "./pageTemplates.js";
4
- export * from "./schemas.js";
1
+ export * from "./blocks";
2
+ export * from "./pages";
3
+ export * from "./schemas";
@@ -1,4 +1,3 @@
1
1
  export * from "./blocks.js";
2
2
  export * from "./pages.js";
3
- export * from "./pageTemplates.js";
4
3
  export * from "./schemas.js";
@@ -1,7 +1,12 @@
1
- import { type Image } from "../types/schemas.js";
2
- import { type Block } from "./blocks.js";
3
- export type PageType = "Default" | "Document" | "BlogPost" | "PatchNote" | "Location" | "Species" | "Character" | "Object" | "Tale" | "Item" | "Skill" | "Hero" | "Card" | "Series" | "Episode";
4
- export interface Property {
1
+ import { type Image } from "../types";
2
+ import { type Block } from "../types";
3
+ declare global {
4
+ interface RimelightRegisterPageTypes {
5
+ }
6
+ }
7
+ export type PageType = keyof RegisterPageTypes;
8
+ export interface Property<T = any> {
9
+ value: T;
5
10
  label: string;
6
11
  type: "number" | "text" | "text-array" | "enum" | "page" | "page-array";
7
12
  options?: string[];
@@ -9,70 +14,33 @@ export interface Property {
9
14
  order?: number;
10
15
  visibleIf?: (properties: any) => boolean;
11
16
  }
17
+ export type Localized<T = string> = Record<string, T>;
12
18
  export interface PropertyGroup {
13
- id: string;
14
- label: string;
19
+ label: Localized<string>;
15
20
  order?: number;
16
21
  fields: Record<string, Property>;
17
22
  }
18
- export interface BasePageProperties {
19
- }
20
- export interface DocumentProperties extends BasePageProperties {
21
- }
22
- export interface BlogPostProperties extends BasePageProperties {
23
- }
24
- export interface PatchNoteProperties extends BasePageProperties {
25
- }
26
- export interface LocationProperties extends BasePageProperties {
27
- }
28
- export interface SpeciesProperties extends BasePageProperties {
29
- }
30
- export interface CharacterProperties extends BasePageProperties {
31
- name: string;
32
- title?: string;
33
- aliases?: string[];
34
- flavourText?: string;
35
- species?: string;
36
- sex?: string;
37
- pronouns?: string;
38
- height?: number;
39
- weight?: number;
40
- dateOfBirth?: string;
41
- dateOfDeath?: string;
42
- placeOfBirth?: string;
43
- placeOfDeath?: string;
44
- formerAffiliations?: string[];
45
- currentAffiliations?: string[];
46
- equipment?: string[];
47
- pets?: string[];
48
- mounts?: string[];
49
- favouriteFood?: string;
50
- }
51
- export interface ObjectProperties extends BasePageProperties {
52
- }
53
- export interface TaleProperties extends BasePageProperties {
54
- }
55
- export interface ItemProperties extends BasePageProperties {
56
- }
57
- export interface SkillProperties extends BasePageProperties {
58
- }
59
- export interface HeroProperties extends BasePageProperties {
60
- }
61
- export interface CardProperties extends BasePageProperties {
62
- name: string;
63
- alignment: string;
64
- type: string;
65
- flavourText: string;
23
+ /**
24
+ * A PageTemplate is the single definition for a page's properties and initial blocks.
25
+ */
26
+ export interface PageDefinition {
27
+ properties: Record<string, PropertyGroup>;
28
+ initialBlocks?: () => Block[];
66
29
  }
67
- export interface SeriesProperties extends BasePageProperties {
30
+ /**
31
+ * Helper to define a page with full type safety and literal preservation.
32
+ * This is used by consuming apps to define their custom page types.
33
+ */
34
+ export declare function definePageDefinition<T extends PageDefinition>(def: T): T;
35
+ export interface BasePageProperties {
68
36
  }
69
- export interface EpisodeProperties extends BasePageProperties {
37
+ export interface RegisterPageTypes extends RimelightRegisterPageTypes {
38
+ Default: BasePageProperties;
70
39
  }
71
- export type Localized<T = string> = Record<string, T>;
72
40
  /**
73
41
  * Common fields shared by every page regardless of type.
74
42
  */
75
- interface BasePage {
43
+ export interface BasePage {
76
44
  id: string;
77
45
  slug: string;
78
46
  image?: Image;
@@ -89,54 +57,8 @@ interface BasePage {
89
57
  * Discriminated Union for Page Data structure
90
58
  */
91
59
  export type Page = {
92
- type: "Default";
93
- properties: BasePageProperties;
94
- } & BasePage | {
95
- type: "Document";
96
- properties: DocumentProperties;
97
- } & BasePage | {
98
- type: "BlogPost";
99
- properties: BlogPostProperties;
100
- } & BasePage | {
101
- type: "PatchNote";
102
- properties: PatchNoteProperties;
103
- } & BasePage | {
104
- type: "Character";
105
- properties: CharacterProperties;
106
- } & BasePage | {
107
- type: "Card";
108
- properties: CardProperties;
109
- } & BasePage | {
110
- type: "Location";
111
- properties: BasePageProperties;
112
- } & BasePage | {
113
- type: "Species";
114
- properties: BasePageProperties;
115
- } & BasePage | {
116
- type: "Object";
117
- properties: BasePageProperties;
118
- } & BasePage | {
119
- type: "Tale";
120
- properties: BasePageProperties;
121
- } & BasePage | {
122
- type: "Item";
123
- properties: BasePageProperties;
124
- } & BasePage | {
125
- type: "Skill";
126
- properties: BasePageProperties;
127
- } & BasePage | {
128
- type: "Hero";
129
- properties: BasePageProperties;
130
- } & BasePage | {
131
- type: "Series";
132
- properties: BasePageProperties;
133
- } & BasePage | {
134
- type: "Episode";
135
- properties: BasePageProperties;
136
- } & BasePage;
137
- /**
138
- * Registry mapping PageTypes to their UI schema.
139
- * This drives the dynamic form generation in the Sidebar.
140
- */
141
- export declare const PAGE_SCHEMAS: Record<PageType, PropertyGroup[]>;
142
- export {};
60
+ [K in PageType]: {
61
+ type: K;
62
+ properties: RegisterPageTypes[K];
63
+ } & BasePage;
64
+ }[PageType];
@@ -1,58 +1,3 @@
1
- export const PAGE_SCHEMAS = {
2
- Default: [],
3
- Document: [],
4
- BlogPost: [],
5
- PatchNote: [],
6
- Character: [
7
- {
8
- id: "identity",
9
- label: "Identity",
10
- fields: {
11
- name: { label: "Name", type: "text" },
12
- title: { label: "Social Title", type: "text" },
13
- aliases: { label: "Aliases", type: "text-array" }
14
- }
15
- },
16
- {
17
- id: "characteristics",
18
- label: "Characteristics",
19
- fields: {
20
- species: { label: "Species", type: "page", allowedPageTypes: ["Species"] },
21
- sex: { label: "Sex", type: "enum", options: ["Male", "Female", "Other", "Unknown"] },
22
- height: { label: "Height", type: "number" },
23
- weight: { label: "Weight", type: "number" }
24
- }
25
- },
26
- {
27
- id: "timeline",
28
- label: "Timeline",
29
- fields: {
30
- dateOfBirth: { label: "Date of Birth", type: "text" },
31
- dateOfDeath: { label: "Date of Death", type: "text" },
32
- placeOfDeath: {
33
- label: "Place of Death",
34
- type: "text",
35
- visibleIf: (props) => !!props.dateOfDeath
36
- }
37
- }
38
- },
39
- {
40
- id: "other",
41
- label: "Other",
42
- order: 3,
43
- fields: {
44
- flavourText: { label: "Flavour Text", type: "text" }
45
- }
46
- }
47
- ],
48
- Location: [],
49
- Species: [],
50
- Object: [],
51
- Tale: [],
52
- Item: [],
53
- Skill: [],
54
- Hero: [],
55
- Card: [],
56
- Series: [],
57
- Episode: []
58
- };
1
+ export function definePageDefinition(def) {
2
+ return def;
3
+ }
@@ -1,10 +1,4 @@
1
1
  import { z } from "zod";
2
- export declare const id: import("drizzle-orm").NotNull<import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgUUIDBuilderInitial<"id">>>;
3
- export declare const timestamps: {
4
- updated_at: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"updated_at">>;
5
- created_at: import("drizzle-orm").NotNull<import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>>;
6
- deleted_at: import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"deleted_at">;
7
- };
8
2
  export declare const linkVariantEnum: z.ZodEnum<{
9
3
  link: "link";
10
4
  solid: "solid";
@@ -1,14 +1,4 @@
1
- import { uuid, timestamp } from "drizzle-orm/pg-core";
2
1
  import { z } from "zod";
3
- import { sql } from "drizzle-orm";
4
- export const id = uuid("id").default(sql`uuidv7()`).notNull();
5
- export const timestamps = {
6
- updated_at: timestamp("updated_at", {
7
- withTimezone: true
8
- }).$onUpdate(() => /* @__PURE__ */ new Date()),
9
- created_at: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
10
- deleted_at: timestamp("deleted_at", { withTimezone: true })
11
- };
12
2
  export const linkVariantEnum = z.enum(["solid", "outline", "subtle", "soft", "ghost", "link"]);
13
3
  export const linkColorEnum = z.enum([
14
4
  "primary",
@@ -1,5 +1,5 @@
1
1
  import { type Component } from "vue";
2
- import { type BlockType } from "../types/blocks.js";
2
+ import { type BlockType } from "../types";
3
3
  /**
4
4
  * Maps the block type string from the database to a dynamically imported Vue component.
5
5
  *
@@ -0,0 +1,6 @@
1
+ export declare const id: import("drizzle-orm").NotNull<import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgUUIDBuilderInitial<"id">>>;
2
+ export declare const timestamps: {
3
+ updated_at: import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"updated_at">>;
4
+ created_at: import("drizzle-orm").NotNull<import("drizzle-orm").HasDefault<import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"created_at">>>;
5
+ deleted_at: import("drizzle-orm/pg-core").PgTimestampBuilderInitial<"deleted_at">;
6
+ };
@@ -0,0 +1,10 @@
1
+ import { uuid, timestamp } from "drizzle-orm/pg-core";
2
+ import { sql } from "drizzle-orm";
3
+ export const id = uuid("id").default(sql`uuidv7()`).notNull();
4
+ export const timestamps = {
5
+ updated_at: timestamp("updated_at", {
6
+ withTimezone: true
7
+ }).$onUpdate(() => /* @__PURE__ */ new Date()),
8
+ created_at: timestamp("created_at", { withTimezone: true }).defaultNow().notNull(),
9
+ deleted_at: timestamp("deleted_at", { withTimezone: true })
10
+ };
@@ -1,6 +1,7 @@
1
- export * from "./richTextHelpers.js";
2
- export * from "./blockMapper.js";
3
- export * from "./page.js";
1
+ export * from "./richTextHelpers";
2
+ export * from "./blockMapper";
3
+ export * from "./page";
4
+ export * from "./database";
4
5
  /**
5
6
  * Converts a string into a URL-friendly slug.
6
7
  * - Converts to lowercase.
@@ -1,6 +1,7 @@
1
1
  export * from "./richTextHelpers.js";
2
2
  export * from "./blockMapper.js";
3
3
  export * from "./page.js";
4
+ export * from "./database.js";
4
5
  export function slugify(text) {
5
6
  if (!text) {
6
7
  return "";
@@ -1,7 +1,10 @@
1
- import type { Page, Localized } from "../types/pages.js";
1
+ import type { Page, Localized, PageDefinition } from "../types/pages";
2
2
  export declare const getLocalizedContent: (field: Localized | undefined, currentLocale: string) => string;
3
3
  /**
4
- * Ensures an existing page has all the blocks currently defined in its template.
5
- * Matches based on SectionBlock titles.
4
+ * Ensures a page strictly adheres to its PageDefinition.
5
+ * - Adds missing properties and groups in the correct order.
6
+ * - Removes properties and groups no longer in the definition.
7
+ * - Adds missing templated blocks in the correct relative position.
8
+ * - Removes templated blocks no longer in the definition.
6
9
  */
7
- export declare function syncTemplateBlocks(page: Page): Page;
10
+ export declare function syncPageWithDefinition(page: Page, definition?: PageDefinition): Page;
@@ -1,20 +1,71 @@
1
- import { PAGE_TEMPLATES } from "../types/pageTemplates.js";
2
1
  export const getLocalizedContent = (field, currentLocale) => {
3
2
  if (!field) return "";
4
3
  return field[currentLocale] || field["en"] || "";
5
4
  };
6
- export function syncTemplateBlocks(page) {
7
- const templateFn = PAGE_TEMPLATES[page.type];
8
- if (!templateFn) return page;
9
- const idealBlocks = templateFn();
10
- const existingTitles = new Set(
11
- page.blocks.filter((b) => b.type === "SectionBlock").map((b) => b.props.title)
12
- );
13
- const missingBlocks = idealBlocks.filter(
14
- (b) => b.type === "SectionBlock" && !existingTitles.has(b.props.title)
15
- );
16
- if (missingBlocks.length > 0) {
17
- page.blocks = [...page.blocks, ...missingBlocks];
5
+ export function syncPageWithDefinition(page, definition) {
6
+ if (!definition) return page;
7
+ let hasChanged = false;
8
+ const updatedProperties = {};
9
+ const definitionGroups = definition.properties;
10
+ for (const [groupId, definitionGroup] of Object.entries(definitionGroups)) {
11
+ const existingGroup = page.properties[groupId];
12
+ const updatedGroupFields = {};
13
+ for (const [fieldId, definitionField] of Object.entries(definitionGroup.fields)) {
14
+ if (existingGroup?.fields[fieldId]) {
15
+ updatedGroupFields[fieldId] = {
16
+ ...definitionField,
17
+ value: existingGroup.fields[fieldId].value
18
+ };
19
+ } else {
20
+ updatedGroupFields[fieldId] = { ...definitionField };
21
+ hasChanged = true;
22
+ }
23
+ }
24
+ updatedProperties[groupId] = {
25
+ ...definitionGroup,
26
+ fields: updatedGroupFields
27
+ };
28
+ if (!existingGroup) {
29
+ hasChanged = true;
30
+ }
31
+ }
32
+ if (Object.keys(page.properties).length !== Object.keys(updatedProperties).length) {
33
+ hasChanged = true;
34
+ } else {
35
+ for (const groupId in updatedProperties) {
36
+ const pageGroup = page.properties[groupId];
37
+ if (Object.keys(pageGroup?.fields || {}).length !== Object.keys(updatedProperties[groupId].fields).length) {
38
+ hasChanged = true;
39
+ break;
40
+ }
41
+ }
42
+ }
43
+ page.properties = updatedProperties;
44
+ if (definition.initialBlocks) {
45
+ const idealBlocks = definition.initialBlocks();
46
+ const currentBlocks = [...page.blocks];
47
+ const idealBlocksMap = new Map(idealBlocks.map((b) => [b.id, b]));
48
+ const filteredCurrent = currentBlocks.filter((b) => {
49
+ if (!b.isTemplated) return true;
50
+ return idealBlocksMap.has(b.id);
51
+ });
52
+ if (filteredCurrent.length !== currentBlocks.length) {
53
+ hasChanged = true;
54
+ }
55
+ let lastExistingIdealIndex = -1;
56
+ for (const idealBlock of idealBlocks) {
57
+ const existingIndex = filteredCurrent.findIndex((b) => b.id === idealBlock.id);
58
+ if (existingIndex !== -1) {
59
+ lastExistingIdealIndex = existingIndex;
60
+ } else {
61
+ filteredCurrent.splice(lastExistingIdealIndex + 1, 0, { ...idealBlock });
62
+ lastExistingIdealIndex++;
63
+ hasChanged = true;
64
+ }
65
+ }
66
+ page.blocks = filteredCurrent;
67
+ }
68
+ if (hasChanged) {
18
69
  page.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
19
70
  }
20
71
  return page;
@@ -1,4 +1,4 @@
1
- import type { RichTextContent } from "../types/blocks.js";
1
+ import type { RichTextContent } from "../types/blocks";
2
2
  /**
3
3
  * Helper: Converts RichTextContent array into a plain string for a simple contenteditable area.
4
4
  * For complex editors, this would generate full HTML/DOM nodes, preserving links/mentions.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rimelight-components",
3
3
  "description": "A component library by Rimelight Entertainment.",
4
- "version": "2.0.60",
4
+ "version": "2.0.63",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -22,50 +22,55 @@
22
22
  "exports": {
23
23
  ".": {
24
24
  "types": "./dist/module.d.mts",
25
- "import": "./dist/module.mjs",
26
- "require": "./dist/module.mjs"
27
- },
28
- "./types": {
29
- "types": "./dist/runtime/types/index.d.ts",
30
- "import": "./dist/runtime/types/index.js",
31
- "require": "./dist/runtime/types/index.js"
25
+ "style": "./dist/runtime/index.css",
26
+ "import": "./dist/module.mjs"
32
27
  },
33
28
  "./runtime/*": "./dist/runtime/*",
34
29
  "./components/*": "./dist/runtime/components/*",
35
- "./composables/*": "./dist/runtime/composables/*",
30
+ "./composables": {
31
+ "types": "./dist/runtime/composables/index.d.mts",
32
+ "import": "./dist/runtime/composables/index.mjs"
33
+ },
34
+ "./composables/*": {
35
+ "types": "./dist/runtime/composables/*.d.mts",
36
+ "import": "./dist/runtime/composables/*.mjs"
37
+ },
38
+ "./utils": {
39
+ "types": "./dist/runtime/utils/index.d.mts",
40
+ "import": "./dist/runtime/utils/index.mjs"
41
+ },
36
42
  "./utils/*": {
37
43
  "types": "./dist/runtime/utils/*.d.mts",
38
- "import": "./dist/runtime/utils/*.js"
44
+ "import": "./dist/runtime/utils/*.mjs"
39
45
  }
40
46
  },
41
- "main": "./dist/module.mjs",
42
- "types": "./dist/module.d.mts",
43
- "style": "./dist/runtime/index.css",
44
47
  "typesVersions": {
45
48
  "*": {
46
49
  ".": [
47
50
  "./dist/module.d.mts"
48
51
  ],
49
- "vite": [
50
- "./dist/vite.d.mts"
51
- ],
52
- "./runtime/*": [
53
- "./dist/runtime/index.d.ts"
52
+ "runtime/*": [
53
+ "./dist/runtime/*"
54
54
  ],
55
55
  "components/*": [
56
56
  "./dist/runtime/components/*"
57
57
  ],
58
+ "composables": [
59
+ "./dist/runtime/composables/index.d.mts"
60
+ ],
58
61
  "composables/*": [
59
- "./dist/runtime/composables/*"
62
+ "./dist/runtime/composables/*.d.mts"
60
63
  ],
61
64
  "utils": [
62
- "./dist/runtime/utils/index.d.ts"
65
+ "./dist/runtime/utils/index.d.mts"
63
66
  ],
64
67
  "utils/*": [
65
- "./dist/runtime/utils/*.d.ts"
68
+ "./dist/runtime/utils/*.d.mts"
66
69
  ]
67
70
  }
68
71
  },
72
+ "style": "./dist/runtime/index.css",
73
+ "main": "./dist/module.mjs",
69
74
  "files": [
70
75
  "dist"
71
76
  ],
@@ -78,8 +83,10 @@
78
83
  "typecheck": "vue-tsc --noEmit && nuxt typecheck",
79
84
  "lint": "oxlint .",
80
85
  "lint:fix": "oxlint . --fix",
81
- "format": "prettier . --check .",
82
- "format:fix": "prettier . --write .",
86
+ "format": "oxfmt --check",
87
+ "format:fix": "oxfmt .",
88
+ "check": "bun run typecheck && bun run lint && bun run format",
89
+ "fix": "bun run lint:fix && bun run format:fix",
83
90
  "test": "vitest",
84
91
  "release": "release-it --ci"
85
92
  },
@@ -1,3 +0,0 @@
1
- import { type Block } from "./blocks.js";
2
- import { type PageType } from "./pages.js";
3
- export declare const PAGE_TEMPLATES: Record<PageType, () => Block[]>;