@shwfed/nuxt 0.1.11 → 0.1.14

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.
@@ -0,0 +1,40 @@
1
+ import type { CellContext, ColumnDef, HeaderContext, RowData } from '@tanstack/vue-table';
2
+ import type { VNodeChild } from 'vue';
3
+ import { z } from 'zod';
4
+ export type TableRendererId = string;
5
+ export type TableRendererColumnDefOverrides<TData extends RowData = unknown> = Partial<Pick<ColumnDef<TData, unknown>, 'enableResizing' | 'enableSorting' | 'enableMultiSort' | 'enablePinning' | 'size' | 'meta'>>;
6
+ export type TableRendererCellArgs<TData extends RowData, TValue, TOptions> = Readonly<{
7
+ ctx: CellContext<TData, TValue>;
8
+ options: TOptions;
9
+ helpers: Readonly<{
10
+ renderInline: (source: string) => string;
11
+ evaluate?: (source: string, context?: Record<string, unknown>) => unknown;
12
+ }>;
13
+ }>;
14
+ export type TableRendererHeaderArgs<TData extends RowData, TValue, TOptions> = Readonly<{
15
+ ctx: HeaderContext<TData, TValue>;
16
+ title?: string;
17
+ options: TOptions;
18
+ helpers: Readonly<{
19
+ renderInline: (source: string) => string;
20
+ evaluate?: (source: string, context?: Record<string, unknown>) => unknown;
21
+ }>;
22
+ }>;
23
+ export type TableRendererConfigComponent<_TOptions> = unknown;
24
+ export type TableRenderer<TOptions> = Readonly<{
25
+ id: TableRendererId;
26
+ optionsSchema: z.ZodType<TOptions>;
27
+ parseOptions: (input: unknown) => TOptions;
28
+ cell: (args: TableRendererCellArgs<unknown, unknown, TOptions>) => VNodeChild;
29
+ header?: (args: TableRendererHeaderArgs<unknown, unknown, TOptions>) => VNodeChild;
30
+ config?: TableRendererConfigComponent<TOptions>;
31
+ columnDefOverrides?: TableRendererColumnDefOverrides;
32
+ }>;
33
+ export declare function defineTableRenderer<const TShape extends z.ZodRawShape, const TOptions = z.infer<z.ZodObject<TShape>>>(id: TableRendererId, shape: TShape, impl: Readonly<{
34
+ cell: TableRenderer<TOptions>['cell'];
35
+ header?: TableRenderer<TOptions>['header'];
36
+ config?: TableRenderer<TOptions>['config'];
37
+ columnDefOverrides?: TableRenderer<TOptions>['columnDefOverrides'];
38
+ }>): TableRenderer<TOptions>;
39
+ export declare function getTableRenderer(id: TableRendererId): TableRenderer<unknown> | undefined;
40
+ export declare function resolveTableRenderer(id: TableRendererId): TableRenderer<unknown>;
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ const _renderers = /* @__PURE__ */ new Map();
3
+ export function defineTableRenderer(id, shape, impl) {
4
+ const optionsSchema = z.object(shape);
5
+ const renderer = {
6
+ id,
7
+ optionsSchema,
8
+ parseOptions: (input) => {
9
+ const normalized = input == null ? {} : input;
10
+ return optionsSchema.parse(normalized);
11
+ },
12
+ cell: impl.cell,
13
+ header: impl.header,
14
+ config: impl.config,
15
+ columnDefOverrides: impl.columnDefOverrides
16
+ };
17
+ _renderers.set(id, renderer);
18
+ return renderer;
19
+ }
20
+ export function getTableRenderer(id) {
21
+ return _renderers.get(id);
22
+ }
23
+ export function resolveTableRenderer(id) {
24
+ return _renderers.get(id) ?? _renderers.get("table.renderer.text");
25
+ }
@@ -0,0 +1,9 @@
1
+ import type { Directive } from 'vue'
2
+
3
+ export type MdDirective = Directive<HTMLElement, string>
4
+
5
+ declare module 'vue' {
6
+ export interface ComponentCustomProperties {
7
+ vMd: MdDirective
8
+ }
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shwfed/nuxt",
3
- "version": "0.1.11",
3
+ "version": "0.1.14",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,7 +25,8 @@
25
25
  "dist"
26
26
  ],
27
27
  "workspaces": [
28
- "playground/*"
28
+ ".",
29
+ "playground"
29
30
  ],
30
31
  "scripts": {
31
32
  "prepack": "nuxt-module-build build",
@@ -34,22 +35,26 @@
34
35
  "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxt prepare playground",
35
36
  "release": "npm run lint && npm run test && npm run prepack && changelogen --release && npm publish && git push --follow-tags",
36
37
  "lint": "eslint .",
37
- "postinstall": "nuxt prepare && husky",
38
+ "postinstall": "husky",
38
39
  "test": "vitest run",
39
40
  "test:watch": "vitest watch",
40
41
  "test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
41
42
  },
42
43
  "dependencies": {
43
44
  "@date-fns/tz": "^1.4.1",
45
+ "@iconify/vue": "^5.0.0",
44
46
  "@marcbachmann/cel-js": "^7.2.1",
45
47
  "@nuxt/kit": "^4.3.0",
48
+ "@tanstack/vue-table": "^8.21.3",
49
+ "@tanstack/vue-virtual": "^3.13.18",
46
50
  "@vueuse/core": "^14.1.0",
47
51
  "date-fns": "^4.1.0",
48
52
  "defu": "^6.1.4",
49
- "effect": "^3.19.15",
53
+ "dot-prop": "^10.1.0",
50
54
  "markdown-it": "^14.1.0",
51
55
  "reka-ui": "^2.7.0",
52
- "vue": "^3.5.27"
56
+ "vue": "^3.5.27",
57
+ "zod": "^4.3.6"
53
58
  },
54
59
  "devDependencies": {
55
60
  "@commitlint/cli": "^20.3.1",
@@ -62,6 +67,7 @@
62
67
  "@nuxt/test-utils": "^3.23.0",
63
68
  "@types/markdown-it": "^14.1.2",
64
69
  "@types/node": "latest",
70
+ "@vue/test-utils": "^2.4.6",
65
71
  "changelogen": "^0.6.2",
66
72
  "eslint": "^9.39.2",
67
73
  "husky": "^9.1.7",