@waveinno/ui 0.0.0-stage → 0.1.1

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 (178) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +5 -0
  3. package/README.md +64 -2
  4. package/dist/brand/waveinno-logo.svg +1 -0
  5. package/dist/components/brand/index.d.ts +3 -0
  6. package/dist/components/brand/index.js +1 -0
  7. package/dist/components/brand/logo.d.ts +89 -0
  8. package/dist/components/brand/logo.js +1 -0
  9. package/dist/components/brand/waveinno-logo.d.ts +52 -0
  10. package/dist/components/brand/waveinno-logo.js +1 -0
  11. package/dist/components/charts/bar-chart.d.ts +20 -0
  12. package/dist/components/charts/bar-chart.js +1 -0
  13. package/dist/components/charts/bar-list.d.ts +27 -0
  14. package/dist/components/charts/bar-list.js +1 -0
  15. package/dist/components/charts/chart-card.d.ts +32 -0
  16. package/dist/components/charts/chart-card.js +1 -0
  17. package/dist/components/charts/donut-chart.d.ts +29 -0
  18. package/dist/components/charts/donut-chart.js +1 -0
  19. package/dist/components/charts/gauge-chart.d.ts +21 -0
  20. package/dist/components/charts/gauge-chart.js +1 -0
  21. package/dist/components/charts/heatmap.d.ts +23 -0
  22. package/dist/components/charts/heatmap.js +1 -0
  23. package/dist/components/charts/index.d.ts +10 -0
  24. package/dist/components/charts/index.js +1 -0
  25. package/dist/components/charts/line-chart.d.ts +24 -0
  26. package/dist/components/charts/line-chart.js +1 -0
  27. package/dist/components/charts/palette.d.ts +39 -0
  28. package/dist/components/charts/palette.js +1 -0
  29. package/dist/components/charts/trend-chart.d.ts +22 -0
  30. package/dist/components/charts/trend-chart.js +1 -0
  31. package/dist/components/patterns/activity-feed.d.ts +28 -0
  32. package/dist/components/patterns/activity-feed.js +1 -0
  33. package/dist/components/patterns/data-table-cells.d.ts +39 -0
  34. package/dist/components/patterns/data-table-cells.js +1 -0
  35. package/dist/components/patterns/data-table-edit.d.ts +56 -0
  36. package/dist/components/patterns/data-table-edit.js +1 -0
  37. package/dist/components/patterns/data-table-filters.d.ts +84 -0
  38. package/dist/components/patterns/data-table-filters.js +1 -0
  39. package/dist/components/patterns/data-table.d.ts +76 -0
  40. package/dist/components/patterns/data-table.js +2 -0
  41. package/dist/components/patterns/index.d.ts +16 -0
  42. package/dist/components/patterns/index.js +1 -0
  43. package/dist/components/patterns/kanban.d.ts +28 -0
  44. package/dist/components/patterns/kanban.js +1 -0
  45. package/dist/components/patterns/kpi-card.d.ts +22 -0
  46. package/dist/components/patterns/kpi-card.js +1 -0
  47. package/dist/components/patterns/money.d.ts +28 -0
  48. package/dist/components/patterns/money.js +1 -0
  49. package/dist/components/patterns/page-header.d.ts +38 -0
  50. package/dist/components/patterns/page-header.js +1 -0
  51. package/dist/components/patterns/page-hero.d.ts +50 -0
  52. package/dist/components/patterns/page-hero.js +1 -0
  53. package/dist/components/patterns/page-shell.d.ts +27 -0
  54. package/dist/components/patterns/page-shell.js +1 -0
  55. package/dist/components/patterns/stat-card.d.ts +56 -0
  56. package/dist/components/patterns/stat-card.js +1 -0
  57. package/dist/components/patterns/states.d.ts +27 -0
  58. package/dist/components/patterns/states.js +1 -0
  59. package/dist/components/patterns/timeline.d.ts +100 -0
  60. package/dist/components/patterns/timeline.js +1 -0
  61. package/dist/components/ui/avatar.d.ts +37 -0
  62. package/dist/components/ui/avatar.js +1 -0
  63. package/dist/components/ui/badge.d.ts +41 -0
  64. package/dist/components/ui/badge.js +1 -0
  65. package/dist/components/ui/button.d.ts +25 -0
  66. package/dist/components/ui/button.js +1 -0
  67. package/dist/components/ui/calendar.d.ts +42 -0
  68. package/dist/components/ui/calendar.js +1 -0
  69. package/dist/components/ui/card.d.ts +11 -0
  70. package/dist/components/ui/card.js +1 -0
  71. package/dist/components/ui/checkbox.d.ts +3 -0
  72. package/dist/components/ui/checkbox.js +1 -0
  73. package/dist/components/ui/combobox.d.ts +47 -0
  74. package/dist/components/ui/combobox.js +1 -0
  75. package/dist/components/ui/confirm-dialog.d.ts +34 -0
  76. package/dist/components/ui/confirm-dialog.js +1 -0
  77. package/dist/components/ui/date-picker.d.ts +80 -0
  78. package/dist/components/ui/date-picker.js +1 -0
  79. package/dist/components/ui/dialog.d.ts +54 -0
  80. package/dist/components/ui/dialog.js +1 -0
  81. package/dist/components/ui/dropdown-menu.d.ts +44 -0
  82. package/dist/components/ui/dropdown-menu.js +1 -0
  83. package/dist/components/ui/form-field.d.ts +27 -0
  84. package/dist/components/ui/form-field.js +1 -0
  85. package/dist/components/ui/index.d.ts +26 -0
  86. package/dist/components/ui/index.js +1 -0
  87. package/dist/components/ui/input.d.ts +21 -0
  88. package/dist/components/ui/input.js +1 -0
  89. package/dist/components/ui/label.d.ts +5 -0
  90. package/dist/components/ui/label.js +1 -0
  91. package/dist/components/ui/popover.d.ts +22 -0
  92. package/dist/components/ui/popover.js +1 -0
  93. package/dist/components/ui/progress.d.ts +43 -0
  94. package/dist/components/ui/progress.js +1 -0
  95. package/dist/components/ui/segmented.d.ts +42 -0
  96. package/dist/components/ui/segmented.js +1 -0
  97. package/dist/components/ui/select.d.ts +10 -0
  98. package/dist/components/ui/select.js +1 -0
  99. package/dist/components/ui/separator.d.ts +3 -0
  100. package/dist/components/ui/separator.js +1 -0
  101. package/dist/components/ui/sheet.d.ts +19 -0
  102. package/dist/components/ui/sheet.js +1 -0
  103. package/dist/components/ui/skeleton.d.ts +10 -0
  104. package/dist/components/ui/skeleton.js +1 -0
  105. package/dist/components/ui/switch.d.ts +3 -0
  106. package/dist/components/ui/switch.js +1 -0
  107. package/dist/components/ui/tabs.d.ts +19 -0
  108. package/dist/components/ui/tabs.js +1 -0
  109. package/dist/components/ui/time-picker.d.ts +52 -0
  110. package/dist/components/ui/time-picker.js +1 -0
  111. package/dist/components/ui/tooltip.d.ts +13 -0
  112. package/dist/components/ui/tooltip.js +1 -0
  113. package/dist/hooks/index.d.ts +4 -0
  114. package/dist/hooks/index.js +1 -0
  115. package/dist/hooks/use-hotkey.d.ts +16 -0
  116. package/dist/hooks/use-hotkey.js +1 -0
  117. package/dist/hooks/use-media-query.d.ts +4 -0
  118. package/dist/hooks/use-media-query.js +1 -0
  119. package/dist/hooks/use-mounted.d.ts +2 -0
  120. package/dist/hooks/use-mounted.js +1 -0
  121. package/dist/index.d.ts +17 -0
  122. package/dist/index.js +1 -0
  123. package/dist/lib/boot-script.d.ts +15 -0
  124. package/dist/lib/boot-script.js +12 -0
  125. package/dist/lib/currency.d.ts +55 -0
  126. package/dist/lib/currency.js +1 -0
  127. package/dist/lib/format.d.ts +28 -0
  128. package/dist/lib/format.js +1 -0
  129. package/dist/lib/index.d.ts +5 -0
  130. package/dist/lib/index.js +1 -0
  131. package/dist/lib/utils.d.ts +7 -0
  132. package/dist/lib/utils.js +1 -0
  133. package/dist/shell/app-shell.d.ts +18 -0
  134. package/dist/shell/app-shell.js +1 -0
  135. package/dist/shell/app-switcher.d.ts +9 -0
  136. package/dist/shell/app-switcher.js +1 -0
  137. package/dist/shell/appearance-controls.d.ts +13 -0
  138. package/dist/shell/appearance-controls.js +1 -0
  139. package/dist/shell/command-palette.d.ts +9 -0
  140. package/dist/shell/command-palette.js +1 -0
  141. package/dist/shell/config.d.ts +66 -0
  142. package/dist/shell/config.js +1 -0
  143. package/dist/shell/icon-rail.d.ts +2 -0
  144. package/dist/shell/icon-rail.js +1 -0
  145. package/dist/shell/index.d.ts +7 -0
  146. package/dist/shell/index.js +1 -0
  147. package/dist/shell/mobile-nav.d.ts +7 -0
  148. package/dist/shell/mobile-nav.js +1 -0
  149. package/dist/shell/module-sidebar.d.ts +9 -0
  150. package/dist/shell/module-sidebar.js +1 -0
  151. package/dist/shell/notifications.d.ts +5 -0
  152. package/dist/shell/notifications.js +1 -0
  153. package/dist/shell/placeholder-screen.d.ts +11 -0
  154. package/dist/shell/placeholder-screen.js +1 -0
  155. package/dist/shell/record-drawer.d.ts +32 -0
  156. package/dist/shell/record-drawer.js +1 -0
  157. package/dist/shell/registry.d.ts +24 -0
  158. package/dist/shell/registry.js +1 -0
  159. package/dist/shell/topbar.d.ts +9 -0
  160. package/dist/shell/topbar.js +1 -0
  161. package/dist/shell/use-active.d.ts +21 -0
  162. package/dist/shell/use-active.js +1 -0
  163. package/dist/shell/user-menu.d.ts +5 -0
  164. package/dist/shell/user-menu.js +1 -0
  165. package/dist/store/app-store.d.ts +10 -0
  166. package/dist/store/app-store.js +1 -0
  167. package/dist/store/drawer-store.d.ts +22 -0
  168. package/dist/store/drawer-store.js +1 -0
  169. package/dist/store/index.d.ts +5 -0
  170. package/dist/store/index.js +1 -0
  171. package/dist/store/settings-store.d.ts +22 -0
  172. package/dist/store/settings-store.js +1 -0
  173. package/dist/store/ui-store.d.ts +28 -0
  174. package/dist/store/ui-store.js +1 -0
  175. package/dist/styles.css +658 -0
  176. package/dist/types.d.ts +140 -0
  177. package/dist/types.js +0 -0
  178. package/package.json +98 -4
@@ -0,0 +1,140 @@
1
+ import type { LucideIcon } from "lucide-react";
2
+ import type * as React from "react";
3
+ /**
4
+ * The four levels of every WAVEINNO product — docs/DESIGN-SYSTEM.md §6:
5
+ *
6
+ * App what is bought (WaveReach, Platform…); the rail belongs to it
7
+ * Module what the plan or role switches on; one rail item
8
+ * Screen what the panel lists
9
+ * Record what the drawer opens
10
+ *
11
+ * The package owns the shape, never the content. Each product passes its own
12
+ * registry through <ShellProvider>, so a new app is data, not a fork.
13
+ */
14
+ export interface AppDef {
15
+ id: string;
16
+ /** Product name as it is sold. */
17
+ name: string;
18
+ /** One line a buyer or operator would recognise. */
19
+ tagline: string;
20
+ icon: LucideIcon;
21
+ tint: string;
22
+ /** Landing route when the app is opened. */
23
+ href: string;
24
+ /** Short status shown in the switcher, e.g. "Business plan" or "Operator". */
25
+ status?: {
26
+ label: string;
27
+ tone: Tone;
28
+ };
29
+ }
30
+ export type NavNode = {
31
+ kind: "group";
32
+ label: string;
33
+ } | {
34
+ kind: "item";
35
+ label: string;
36
+ href: string;
37
+ /** Right-aligned count, pre-formatted (may be "1,284"). */
38
+ count?: string;
39
+ /** "Hot" counts — failing, breached, blocked — render in ink, not muted. */
40
+ hot?: boolean;
41
+ };
42
+ export interface ModuleDef {
43
+ /** `app.module` — answerable from the key alone which app owns it. */
44
+ key: string;
45
+ /** Owning app. `null` for modules that belong to no app (settings, profile). */
46
+ app: string | null;
47
+ /** Rail label: one word, 10 chars max, it sits under a 19px glyph. */
48
+ label: string;
49
+ /** Panel heading: the full module name. */
50
+ title: string;
51
+ description: string;
52
+ icon: LucideIcon;
53
+ href: string;
54
+ badge?: string;
55
+ badgeTone?: "neutral" | "danger";
56
+ /** RBAC key — `module.*` gates the whole module. */
57
+ permission?: string;
58
+ /** Cheapest plan that includes it. Evaluated by `ShellConfig.isEntitled`. */
59
+ minPlan?: string;
60
+ /** System modules sit below the spacer at the foot of the rail. */
61
+ system?: boolean;
62
+ nav: NavNode[];
63
+ }
64
+ export type Theme = "light" | "dark";
65
+ export type Density = "compact" | "default" | "comfortable";
66
+ export type Tone = "neutral" | "info" | "success" | "warning" | "danger" | "accent";
67
+ export interface Crumb {
68
+ label: string;
69
+ href?: string;
70
+ }
71
+ export interface KpiDef {
72
+ label: string;
73
+ value: string;
74
+ /** Renders the active currency symbol beside the value. Never hard-code one. */
75
+ currency?: boolean;
76
+ hint?: string;
77
+ delta?: number;
78
+ /** For metrics where down is good — cost, latency, failures. */
79
+ invertDelta?: boolean;
80
+ spark?: number[];
81
+ tone?: Tone;
82
+ }
83
+ export interface CommandItem {
84
+ id: string;
85
+ label: string;
86
+ hint?: string;
87
+ group: "Modules" | "Screens" | "Records" | "Actions" | "AI";
88
+ icon?: LucideIcon;
89
+ href?: string;
90
+ shortcut?: string;
91
+ run?: () => void;
92
+ }
93
+ export interface NotificationItem {
94
+ id: string;
95
+ title: string;
96
+ detail: string;
97
+ at: string;
98
+ tone: Tone;
99
+ href: string;
100
+ /** Where it came from — "Agents", "Fleet"… */
101
+ source: string;
102
+ read?: boolean;
103
+ }
104
+ export interface ShellUser {
105
+ name: string;
106
+ email: string;
107
+ role: string;
108
+ avatar?: string | null;
109
+ /** Second line under the role, e.g. "Acme Ltd · Marketing workspace". */
110
+ context?: string;
111
+ }
112
+ export interface MenuLink {
113
+ label: string;
114
+ href: string;
115
+ icon: LucideIcon;
116
+ }
117
+ /** A tab in the record drawer. Products decide what a record shows. */
118
+ export interface DrawerTabDef {
119
+ id: string;
120
+ label: string;
121
+ count?: number;
122
+ content: React.ReactNode;
123
+ }
124
+ export interface DrawerRecord {
125
+ id: string;
126
+ title: string;
127
+ subtitle?: string;
128
+ status?: {
129
+ label: string;
130
+ tone: Tone;
131
+ };
132
+ /** Buttons under the title — the record's actions. */
133
+ actions?: React.ReactNode;
134
+ /** One tab renders without a tab strip. */
135
+ tabs: DrawerTabDef[];
136
+ /** The record's own page: shows an "Open full page" button in the drawer. */
137
+ href?: string;
138
+ /** Small leading visual, e.g. an avatar with the organization's initials. */
139
+ leading?: React.ReactNode;
140
+ }
package/dist/types.js ADDED
File without changes
package/package.json CHANGED
@@ -1,6 +1,100 @@
1
1
  {
2
2
  "name": "@waveinno/ui",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.1",
4
+ "description": "WAVEINNO design system — tokens, shell, primitives and patterns shared by every WAVEINNO product",
5
+ "keywords": [
6
+ "waveinno",
7
+ "design-system",
8
+ "react",
9
+ "nextjs",
10
+ "tailwindcss",
11
+ "radix-ui"
12
+ ],
13
+ "license": "UNLICENSED",
14
+ "author": "WAVEINNO <info@waveinno.com>",
15
+ "homepage": "https://github.com/waveinno/waveinno-ui#readme",
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/waveinno/waveinno-ui.git"
19
+ },
20
+ "type": "module",
21
+ "sideEffects": [
22
+ "*.css"
23
+ ],
24
+ "main": "./dist/index.js",
25
+ "types": "./dist/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js",
30
+ "default": "./dist/index.js"
31
+ },
32
+ "./styles.css": "./dist/styles.css",
33
+ "./package.json": "./package.json",
34
+ "./brand/*": "./dist/brand/*"
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "README.md",
39
+ "CHANGELOG.md"
40
+ ],
41
+ "workspaces": [
42
+ "playground"
43
+ ],
44
+ "scripts": {
45
+ "dev": "npm run dev -w playground",
46
+ "build": "node scripts/build.mjs",
47
+ "test:dist": "npm run build && cross-env UI_FROM=dist npm run build -w playground",
48
+ "build:playground": "npm run build -w playground",
49
+ "new": "node scripts/new-component.mjs",
50
+ "typecheck": "tsc --noEmit",
51
+ "check": "npm run typecheck && node scripts/check-exports.mjs && npm run typecheck -w playground",
52
+ "prepublishOnly": "npm run check && npm run build",
53
+ "pack:local": "npm run build && node -e \"require('fs').mkdirSync('packs',{recursive:true})\" && npm pack --pack-destination ./packs"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public",
57
+ "registry": "https://registry.npmjs.org/"
58
+ },
59
+ "dependencies": {
60
+ "@radix-ui/react-avatar": "^1.2.6",
61
+ "@radix-ui/react-checkbox": "^1.3.11",
62
+ "@radix-ui/react-dialog": "^1.1.23",
63
+ "@radix-ui/react-dropdown-menu": "^2.1.24",
64
+ "@radix-ui/react-label": "^2.1.15",
65
+ "@radix-ui/react-popover": "^1.1.23",
66
+ "@radix-ui/react-progress": "^1.1.16",
67
+ "@radix-ui/react-select": "^2.3.7",
68
+ "@radix-ui/react-separator": "^1.1.15",
69
+ "@radix-ui/react-slot": "^1.3.3",
70
+ "@radix-ui/react-switch": "^1.3.7",
71
+ "@radix-ui/react-tabs": "^1.1.21",
72
+ "@radix-ui/react-tooltip": "^1.2.16",
73
+ "@tanstack/react-table": "^8.21.3",
74
+ "class-variance-authority": "^0.7.1",
75
+ "clsx": "^2.1.1",
76
+ "lucide-react": "^1.47.0",
77
+ "recharts": "^3.10.1",
78
+ "sonner": "^2.0.8",
79
+ "tailwind-merge": "^3.7.0",
80
+ "zustand": "^5.0.15"
81
+ },
82
+ "peerDependencies": {
83
+ "next": ">=16",
84
+ "react": ">=19",
85
+ "react-dom": ">=19",
86
+ "tailwindcss": ">=4"
87
+ },
88
+ "devDependencies": {
89
+ "@types/node": "^26.6.2",
90
+ "@types/react": "^19.3.0",
91
+ "@types/react-dom": "^19.3.0",
92
+ "cross-env": "^10.1.0",
93
+ "esbuild": "^0.28.2",
94
+ "next": "^16.3.6",
95
+ "react": "^19.3.0",
96
+ "react-dom": "^19.3.0",
97
+ "tailwindcss": "^4.3.3",
98
+ "typescript": "^7.0.2"
99
+ }
100
+ }