@514sid/signagekit 0.0.0-stage → 0.0.2

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 (95) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +44 -0
  3. package/README.md +106 -2
  4. package/bin/signagekit.js +4 -0
  5. package/dist/chunks/chart-WERjiRho.js +2 -0
  6. package/dist/chunks/empty--6iNLsra.js +2 -0
  7. package/dist/chunks/icon-paths-Dl0Rqja7.js +2 -0
  8. package/dist/chunks/lists-qOUpM5us.js +2 -0
  9. package/dist/chunks/measures-D0av_G5P.js +2 -0
  10. package/dist/chunks/media-DI35kQ5D.js +3 -0
  11. package/dist/chunks/qr-size-Dq23do6_.js +2 -0
  12. package/dist/chunks/ready-Boq20M-G.js +2 -0
  13. package/dist/chunks/share-D64VSp1B.js +2 -0
  14. package/dist/chunks/stat-DEE3meII.js +2 -0
  15. package/dist/chunks/time-KYYBrpD9.js +2 -0
  16. package/dist/cli.js +10 -0
  17. package/dist/index.js +3 -0
  18. package/dist/style.css +2 -0
  19. package/dist/types/alert.d.ts +20 -0
  20. package/dist/types/binds.d.ts +6 -0
  21. package/dist/types/chart.d.ts +16 -0
  22. package/dist/types/check.d.ts +31 -0
  23. package/dist/types/checks.d.ts +36 -0
  24. package/dist/types/colors.d.ts +18 -0
  25. package/dist/types/components.d.ts +13 -0
  26. package/dist/types/cycle-fit.d.ts +6 -0
  27. package/dist/types/data.d.ts +19 -0
  28. package/dist/types/empty.d.ts +6 -0
  29. package/dist/types/fit.d.ts +3 -0
  30. package/dist/types/flow.d.ts +7 -0
  31. package/dist/types/icon-paths.d.ts +2 -0
  32. package/dist/types/icon.d.ts +7 -0
  33. package/dist/types/icons.d.ts +3 -0
  34. package/dist/types/index.d.ts +20 -0
  35. package/dist/types/lists.d.ts +29 -0
  36. package/dist/types/measure.d.ts +4 -0
  37. package/dist/types/measures.d.ts +22 -0
  38. package/dist/types/media.d.ts +15 -0
  39. package/dist/types/mount.d.ts +45 -0
  40. package/dist/types/parse.d.ts +11 -0
  41. package/dist/types/qr-size.d.ts +2 -0
  42. package/dist/types/ready.d.ts +3 -0
  43. package/dist/types/share.d.ts +33 -0
  44. package/dist/types/sizes.d.ts +15 -0
  45. package/dist/types/specs.d.ts +7 -0
  46. package/dist/types/stat.d.ts +38 -0
  47. package/dist/types/table-fit.d.ts +8 -0
  48. package/dist/types/table.d.ts +11 -0
  49. package/dist/types/time.d.ts +28 -0
  50. package/dist/types/trend-fit.d.ts +14 -0
  51. package/dist/types/type-scale.d.ts +10 -0
  52. package/dist/types/types.d.ts +271 -0
  53. package/dist/types/validate-layout.d.ts +2 -0
  54. package/dist/types/validate.d.ts +7 -0
  55. package/dist/types/version.d.ts +24 -0
  56. package/dist/types/views.d.ts +29 -0
  57. package/docs/api.md +106 -0
  58. package/docs/assistants.md +55 -0
  59. package/docs/format.md +183 -0
  60. package/docs/getting-started.md +77 -0
  61. package/docs/preview.md +84 -0
  62. package/examples/clinic-queue/data.json +17 -0
  63. package/examples/clinic-queue/layout.yml +43 -0
  64. package/examples/fire-alarm/data.yml +23 -0
  65. package/examples/fire-alarm/layout.yml +30 -0
  66. package/examples/gym-classes/data.yml +17 -0
  67. package/examples/gym-classes/layout.yml +47 -0
  68. package/examples/hotel-lobby/data.yml +2 -0
  69. package/examples/hotel-lobby/layout.yml +29 -0
  70. package/examples/lunch/data.yml +16 -0
  71. package/examples/lunch/layout.yml +43 -0
  72. package/examples/meeting-room/data.json +19 -0
  73. package/examples/meeting-room/layout.json +107 -0
  74. package/examples/noc-wall/data.yml +18 -0
  75. package/examples/noc-wall/layout.yml +63 -0
  76. package/examples/oee-line/data.yml +25 -0
  77. package/examples/oee-line/layout.yml +55 -0
  78. package/examples/office-air/data.yml +25 -0
  79. package/examples/office-air/layout.yml +71 -0
  80. package/examples/sales-today/data.json +28 -0
  81. package/examples/sales-today/layout.json +62 -0
  82. package/examples/snow-closure/data.yml +28 -0
  83. package/examples/snow-closure/layout.json +35 -0
  84. package/examples/station-departures/data.json +24 -0
  85. package/examples/station-departures/layout.json +34 -0
  86. package/examples/store-promo/data.yml +18 -0
  87. package/examples/store-promo/layout.yml +54 -0
  88. package/examples/storm-banner/data.json +20 -0
  89. package/examples/storm-banner/layout.json +33 -0
  90. package/examples/trading-floor/data.json +23 -0
  91. package/examples/trading-floor/layout.json +65 -0
  92. package/examples/warehouse/data.json +20 -0
  93. package/examples/warehouse/layout.json +50 -0
  94. package/package.json +100 -4
  95. package/schema.json +962 -0
@@ -0,0 +1,33 @@
1
+ {
2
+ "version": 1,
3
+ "colors": { "scheme": "dark" },
4
+ "layout": {
5
+ "design": "landscape",
6
+ "flow": [
7
+ { "zone": "head", "span": 9, "height": "130px" },
8
+ { "zone": "clock", "span": 3, "height": "130px" },
9
+ { "zone": "departures", "span": 9, "height": 1 },
10
+ { "zone": "stats", "span": 3, "height": 1 }
11
+ ]
12
+ },
13
+ "zones": {
14
+ "head": { "type": "heading", "text": "Eastbridge interchange" },
15
+ "clock": { "type": "clock", "surface": "raised" },
16
+ "departures": {
17
+ "type": "table",
18
+ "title": "Next departures",
19
+ "columns": ["Time", "Route", "Destination", "Status"],
20
+ "align": ["start", "start", "start", "start"],
21
+ "rows": { "bind": "/departures" }
22
+ },
23
+ "stats": {
24
+ "type": "stack",
25
+ "direction": "column",
26
+ "items": [
27
+ { "type": "stat", "title": "Buses running", "value": { "bind": "/running" }, "state": "good" },
28
+ { "type": "stat", "title": "Cancelled today", "value": { "bind": "/cancelled" }, "state": "warning" }
29
+ ]
30
+ }
31
+ },
32
+ "alert": { "bind": "/alert" }
33
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "idx": {
3
+ "ftse": { "value": 8342.17, "trend": "up", "delta": "+0.42%", "spark": [8290, 8301, 8288, 8310, 8325, 8338, 8342] },
4
+ "spx": { "value": 6104.55, "trend": "down", "delta": "-0.18%", "spark": [6130, 6125, 6118, 6110, 6112, 6107, 6104] }
5
+ },
6
+ "chart": {
7
+ "labels": ["08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00"],
8
+ "ftse": [0, 0.1, 0.3, 0.2, 0.35, 0.4, 0.38, 0.42],
9
+ "spx": [0, -0.05, -0.1, 0.05, -0.12, -0.2, -0.15, -0.18]
10
+ },
11
+ "movers": [
12
+ ["Rolls-Royce", "612.40", "+4.8"],
13
+ ["Anglo American", "2,481.00", "-3.9"],
14
+ ["Hargreaves Lansdown", "1,102.50", "+2.2"],
15
+ ["BP", "421.15", "-1.4"],
16
+ ["Scottish Mortgage", "892.00", "+1.1"]
17
+ ],
18
+ "messages": [
19
+ "ECB rate decision 13:15 CET",
20
+ "Pre-trade compliance sign-off for orders above 10M",
21
+ "BoE governor speaks at 15:30"
22
+ ]
23
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "version": 1,
3
+ "colors": { "scheme": "dark" },
4
+ "layout": {
5
+ "design": "landscape",
6
+ "flow": [
7
+ { "zone": "head", "span": 4, "height": "130px" },
8
+ { "zone": "clocks", "span": 8, "height": "130px" },
9
+ { "zone": "idx_ftse", "span": 6, "height": 2 },
10
+ { "zone": "idx_spx", "span": 6, "height": 2 },
11
+ { "zone": "chart", "span": 6, "height": 4 },
12
+ { "zone": "movers", "span": 6, "height": 4 },
13
+ { "zone": "news", "height": "100px" }
14
+ ]
15
+ },
16
+ "zones": {
17
+ "head": { "type": "heading", "text": "Equities desk" },
18
+ "clocks": {
19
+ "type": "clocks",
20
+ "zones": [
21
+ { "label": "London", "zone": "Europe/London" },
22
+ { "label": "New York", "zone": "America/New_York" },
23
+ { "label": "Tokyo", "zone": "Asia/Tokyo" }
24
+ ]
25
+ },
26
+ "idx_ftse": {
27
+ "type": "stat",
28
+ "title": "FTSE 100",
29
+ "value": { "bind": "/idx/ftse/value" },
30
+ "trend": { "bind": "/idx/ftse/trend" },
31
+ "delta": { "bind": "/idx/ftse/delta" },
32
+ "good_when": "up",
33
+ "spark": { "bind": "/idx/ftse/spark" }
34
+ },
35
+ "idx_spx": {
36
+ "type": "stat",
37
+ "title": "S&P 500",
38
+ "value": { "bind": "/idx/spx/value" },
39
+ "trend": { "bind": "/idx/spx/trend" },
40
+ "delta": { "bind": "/idx/spx/delta" },
41
+ "good_when": "up",
42
+ "spark": { "bind": "/idx/spx/spark" }
43
+ },
44
+ "chart": {
45
+ "type": "chart",
46
+ "kind": "line",
47
+ "title": "Intraday index, % change",
48
+ "labels": { "bind": "/chart/labels" },
49
+ "series": [
50
+ { "name": "FTSE 100", "values": { "bind": "/chart/ftse" } },
51
+ { "name": "S&P 500", "values": { "bind": "/chart/spx" } }
52
+ ]
53
+ },
54
+ "movers": {
55
+ "type": "table",
56
+ "title": "Biggest movers",
57
+ "columns": ["Name", "Last", "Chg %"],
58
+ "align": ["start", "end", "end"],
59
+ "rows": { "bind": "/movers" },
60
+ "page_rows": 5,
61
+ "seconds": 8
62
+ },
63
+ "news": { "type": "cycle", "surface": "raised", "seconds": 6, "items": { "bind": "/messages" } }
64
+ }
65
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "site": "Waalhaven DC, building 3",
3
+ "picks": 12907,
4
+ "dock": {
5
+ "current": "T-2291",
6
+ "recent": ["T-2290", "T-2289", "T-2288"]
7
+ },
8
+ "trucks": [
9
+ ["DHL Freight", "Hamburg", "4", "14:10"],
10
+ ["Van der Berg", "Antwerp", "7", "14:25"],
11
+ ["DB Schenker", "Lyon", "2", "14:40"],
12
+ ["Kuehne + Nagel", "Paris", "5", "15:05"],
13
+ ["GEODIS", "Madrid", "6", "15:20"]
14
+ ],
15
+ "forklifts": [
16
+ { "label": "FLT-07", "value": 12 },
17
+ { "label": "FLT-03", "value": 28 },
18
+ { "label": "FLT-11", "value": 64 }
19
+ ]
20
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "colors": { "scheme": "dark", "accent": "#a3e635", "on_accent": "#111827" },
3
+ "layout": {
4
+ "design": "landscape",
5
+ "flow": [
6
+ { "zone": "head", "span": 9, "height": "120px" },
7
+ { "zone": "clock", "span": 3, "height": "120px" },
8
+ { "zone": "dock", "span": 4, "height": 3 },
9
+ { "zone": "shipments", "span": 8, "height": 3 },
10
+ { "zone": "picks", "span": 5, "height": 2 },
11
+ { "zone": "forklifts", "span": 7, "height": 2 }
12
+ ]
13
+ },
14
+ "zones": {
15
+ "head": { "type": "heading", "text": { "bind": "/site" } },
16
+ "clock": { "type": "clock", "surface": "raised" },
17
+ "dock": {
18
+ "type": "queue",
19
+ "title": "Dock call-up",
20
+ "label": "Door 4 loading",
21
+ "current": { "bind": "/dock/current" },
22
+ "recent": { "bind": "/dock/recent" }
23
+ },
24
+ "shipments": {
25
+ "type": "table",
26
+ "title": "Outbound trucks",
27
+ "columns": ["Carrier", "Destination", "Door", "ETD"],
28
+ "align": ["start", "start", "center", "end"],
29
+ "rows": { "bind": "/trucks" },
30
+ "page_rows": 5,
31
+ "seconds": 8
32
+ },
33
+ "picks": {
34
+ "type": "stat",
35
+ "title": "Picks today",
36
+ "value": { "bind": "/picks" },
37
+ "format": "full",
38
+ "trend": "up",
39
+ "delta": "+9%",
40
+ "good_when": "up"
41
+ },
42
+ "forklifts": {
43
+ "type": "meters",
44
+ "title": "Forklift battery",
45
+ "unit": "%",
46
+ "thresholds": { "warning": 30, "danger": 15 },
47
+ "items": { "bind": "/forklifts" }
48
+ }
49
+ }
50
+ }
package/package.json CHANGED
@@ -1,6 +1,102 @@
1
1
  {
2
2
  "name": "@514sid/signagekit",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.0.2",
4
+ "description": "A toolkit for AI agents that build digital signage screens: dashboards, menus, schedules and alerts as JSON or YAML templates, laid out for any display.",
5
+ "keywords": [
6
+ "ai",
7
+ "ai-agents",
8
+ "dashboard",
9
+ "declarative",
10
+ "digital-signage",
11
+ "display",
12
+ "layout",
13
+ "llm",
14
+ "preact",
15
+ "signage",
16
+ "templates",
17
+ "yaml"
18
+ ],
19
+ "license": "MIT",
20
+ "author": "514sid",
21
+ "homepage": "https://signagekit.514sid.com",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/514sid/signagekit.git"
25
+ },
26
+ "bugs": "https://github.com/514sid/signagekit/issues",
27
+ "type": "module",
28
+ "sideEffects": [
29
+ "*.css"
30
+ ],
31
+ "exports": {
32
+ ".": {
33
+ "types": "./dist/types/index.d.ts",
34
+ "import": "./dist/index.js"
35
+ },
36
+ "./style.css": "./dist/style.css",
37
+ "./schema.json": "./schema.json",
38
+ "./package.json": "./package.json"
39
+ },
40
+ "main": "./dist/index.js",
41
+ "types": "./dist/types/index.d.ts",
42
+ "bin": {
43
+ "signagekit": "./bin/signagekit.js"
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "!dist/**/*.map",
48
+ "bin",
49
+ "schema.json",
50
+ "docs",
51
+ "examples",
52
+ "CHANGELOG.md"
53
+ ],
54
+ "engines": {
55
+ "node": ">=18"
56
+ },
57
+ "scripts": {
58
+ "build": "vite build && tsc -p tsconfig.build.json",
59
+ "prepublishOnly": "bun run check-all && bun run build",
60
+ "check-all": "bun run type-check && bun run lint && bun run format:check && bun test",
61
+ "test": "bun test",
62
+ "type-check": "tsc --noEmit",
63
+ "lint": "eslint .",
64
+ "format": "prettier --write src stories scripts bin .storybook docs site README.md",
65
+ "format:check": "prettier --check src stories scripts bin .storybook docs site README.md",
66
+ "check": "bun run build && node bin/signagekit.js check",
67
+ "preview": "bun scripts/preview.ts",
68
+ "storybook": "storybook dev -p 6006",
69
+ "build-storybook": "storybook build",
70
+ "site:build": "cd site && astro build",
71
+ "site:dev": "cd site && astro dev"
72
+ },
73
+ "dependencies": {
74
+ "preact": "10.27.2",
75
+ "uplot": "1.6.32",
76
+ "uqr": "0.1.3",
77
+ "yaml": "2.9.1"
78
+ },
79
+ "devDependencies": {
80
+ "@eslint/js": "10.0.1",
81
+ "@playwright/test": "1.65.1",
82
+ "@storybook/preact-vite": "10.6.5",
83
+ "@tailwindcss/typography": "0.5.20",
84
+ "@tailwindcss/vite": "4.3.3",
85
+ "@types/bun": "1.3.13",
86
+ "@types/jsdom": "28.0.3",
87
+ "astro": "7.4.4",
88
+ "eslint": "10.15.0",
89
+ "jsdom": "28.1.0",
90
+ "marked": "18.1.2",
91
+ "prettier": "3.10.1",
92
+ "storybook": "10.6.5",
93
+ "tailwindcss": "4.3.3",
94
+ "typescript": "5.9.3",
95
+ "typescript-eslint": "8.72.2",
96
+ "vite": "8.3.8"
97
+ },
98
+ "prettier": "./.prettierrc.json",
99
+ "publishConfig": {
100
+ "access": "public"
101
+ }
102
+ }