@exxatdesignux/ui 0.2.6 → 0.2.8

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 (134) hide show
  1. package/package.json +2 -1
  2. package/template/.agents/skills/shadcn/SKILL.md +242 -0
  3. package/template/.agents/skills/shadcn/agents/openai.yml +5 -0
  4. package/template/.agents/skills/shadcn/assets/shadcn-small.png +0 -0
  5. package/template/.agents/skills/shadcn/assets/shadcn.png +0 -0
  6. package/template/.agents/skills/shadcn/cli.md +257 -0
  7. package/template/.agents/skills/shadcn/customization.md +202 -0
  8. package/template/.agents/skills/shadcn/evals/evals.json +47 -0
  9. package/template/.agents/skills/shadcn/mcp.md +94 -0
  10. package/template/.agents/skills/shadcn/rules/base-vs-radix.md +306 -0
  11. package/template/.agents/skills/shadcn/rules/composition.md +195 -0
  12. package/template/.agents/skills/shadcn/rules/forms.md +192 -0
  13. package/template/.agents/skills/shadcn/rules/icons.md +101 -0
  14. package/template/.agents/skills/shadcn/rules/styling.md +162 -0
  15. package/template/.claude/skills/exxat-ds-skill/SKILL.md +712 -0
  16. package/template/.cursor/rules/exxat-accessibility.mdc +33 -0
  17. package/template/.cursor/rules/exxat-command-menu.mdc +23 -0
  18. package/template/.cursor/rules/exxat-dashboard-view-charts.mdc +53 -0
  19. package/template/.cursor/rules/exxat-data-tables.mdc +31 -0
  20. package/template/.cursor/rules/exxat-ds-agents.mdc +26 -0
  21. package/template/.cursor/rules/exxat-kbd-shortcuts.mdc +100 -0
  22. package/template/.cursor/rules/exxat-list-page-connected-views.mdc +16 -0
  23. package/template/.cursor/rules/exxat-no-toast.mdc +26 -0
  24. package/template/.cursor/rules/exxat-page-vs-drawer.mdc +22 -0
  25. package/template/.cursor/rules/exxat-table-properties-drawer.mdc +40 -0
  26. package/template/AGENTS.md +52 -11
  27. package/template/app/(app)/dashboard/page.tsx +1 -1
  28. package/template/app/(app)/data-list/[id]/page.tsx +24 -8
  29. package/template/app/(app)/data-list/new/page.tsx +7 -4
  30. package/template/app/(app)/data-list/page.tsx +1 -1
  31. package/template/app/(app)/examples/page.tsx +41 -0
  32. package/template/app/(app)/question-bank/page.tsx +3 -3
  33. package/template/components/app-sidebar.tsx +52 -35
  34. package/template/components/compliance-table.tsx +79 -0
  35. package/template/components/data-list-client.tsx +36 -25
  36. package/template/components/data-list-table.tsx +797 -10
  37. package/template/components/data-views/finder-panel-view.tsx +405 -0
  38. package/template/components/data-views/folder-grid-view.tsx +86 -0
  39. package/template/components/data-views/index.ts +59 -0
  40. package/template/components/data-views/list-page-split-details-placeholder.tsx +39 -0
  41. package/template/components/data-views/list-page-split-hub-chrome.tsx +60 -0
  42. package/template/components/data-views/list-page-split-hub-tokens.ts +16 -0
  43. package/template/components/data-views/list-page-tree-column-header.tsx +31 -0
  44. package/template/components/data-views/list-page-tree-panel-shell.tsx +91 -0
  45. package/template/components/data-views/list-page-view-frame.tsx +53 -0
  46. package/template/components/data-views/os-folder-glyph.tsx +121 -0
  47. package/template/components/folder-details-shell.tsx +230 -0
  48. package/template/components/hub-tree-panel-view.tsx +672 -0
  49. package/template/components/list-hub-status-badge.tsx +17 -3
  50. package/template/components/placements-page-header.tsx +14 -8
  51. package/template/components/placements-table-columns.tsx +8 -8
  52. package/template/components/question-bank-client.tsx +157 -40
  53. package/template/components/question-bank-new-folder-sheet.tsx +248 -0
  54. package/template/components/question-bank-os-folder-view.tsx +648 -0
  55. package/template/components/question-bank-page-header.tsx +3 -3
  56. package/template/components/question-bank-panel-activator.tsx +9 -0
  57. package/template/components/question-bank-secondary-nav.tsx +226 -0
  58. package/template/components/question-bank-table.tsx +707 -22
  59. package/template/components/secondary-panel.tsx +41 -107
  60. package/template/components/sites-table.tsx +66 -0
  61. package/template/components/team-client.tsx +7 -0
  62. package/template/components/team-table.tsx +156 -1
  63. package/template/components/templates/list-page.tsx +2 -2
  64. package/template/components/ui/avatar.tsx +1 -1
  65. package/template/components/ui/badge.tsx +1 -1
  66. package/template/components/ui/banner.tsx +1 -1
  67. package/template/components/ui/breadcrumb.tsx +1 -1
  68. package/template/components/ui/button.tsx +1 -1
  69. package/template/components/ui/calendar.tsx +1 -1
  70. package/template/components/ui/card.tsx +1 -1
  71. package/template/components/ui/chart.tsx +1 -1
  72. package/template/components/ui/checkbox.tsx +1 -1
  73. package/template/components/ui/coach-mark.tsx +1 -1
  74. package/template/components/ui/collapsible.tsx +1 -1
  75. package/template/components/ui/command.tsx +1 -1
  76. package/template/components/ui/date-picker-field.tsx +1 -1
  77. package/template/components/ui/dialog.tsx +1 -1
  78. package/template/components/ui/drag-handle-grip.tsx +1 -1
  79. package/template/components/ui/drawer.tsx +1 -1
  80. package/template/components/ui/dropdown-menu.tsx +1 -1
  81. package/template/components/ui/field.tsx +1 -1
  82. package/template/components/ui/form.tsx +1 -1
  83. package/template/components/ui/input-group.tsx +1 -1
  84. package/template/components/ui/input-mask.tsx +1 -1
  85. package/template/components/ui/input.tsx +1 -1
  86. package/template/components/ui/kbd.tsx +1 -1
  87. package/template/components/ui/label.tsx +1 -1
  88. package/template/components/ui/payment-card-fields.tsx +1 -1
  89. package/template/components/ui/popover.tsx +1 -1
  90. package/template/components/ui/radio-group.tsx +1 -1
  91. package/template/components/ui/resizable.tsx +68 -0
  92. package/template/components/ui/select.tsx +1 -1
  93. package/template/components/ui/selection-tile-grid.tsx +1 -1
  94. package/template/components/ui/separator.tsx +1 -1
  95. package/template/components/ui/sheet.tsx +1 -1
  96. package/template/components/ui/sidebar.tsx +1 -1
  97. package/template/components/ui/skeleton.tsx +1 -1
  98. package/template/components/ui/sonner.tsx +1 -1
  99. package/template/components/ui/status-badge.tsx +1 -1
  100. package/template/components/ui/table.tsx +1 -1
  101. package/template/components/ui/tabs.tsx +1 -1
  102. package/template/components/ui/textarea.tsx +1 -1
  103. package/template/components/ui/tip.tsx +1 -1
  104. package/template/components/ui/toggle-group.tsx +1 -1
  105. package/template/components/ui/toggle-switch.tsx +1 -1
  106. package/template/components/ui/toggle.tsx +1 -1
  107. package/template/components/ui/tooltip.tsx +1 -1
  108. package/template/components/ui/view-segmented-control.tsx +1 -1
  109. package/template/docs/data-views-pattern.md +7 -0
  110. package/template/fontawesome-subset.manifest.json +2 -2
  111. package/template/hooks/use-location-hash.ts +15 -0
  112. package/template/hooks/use-sidebar-reflow-zoom.ts +40 -0
  113. package/template/lib/ask-leo-route-context.ts +25 -57
  114. package/template/lib/coach-mark-registry.ts +13 -13
  115. package/template/lib/command-menu-config.ts +28 -23
  116. package/template/lib/command-menu-search-data.ts +10 -9
  117. package/template/lib/data-list-view-surface.ts +12 -1
  118. package/template/lib/data-list-view.ts +6 -3
  119. package/template/lib/mock/dashboard.ts +11 -11
  120. package/template/lib/mock/navigation.tsx +22 -63
  121. package/template/lib/mock/placements-kpi.ts +19 -19
  122. package/template/lib/mock/question-bank-folders.ts +167 -0
  123. package/template/lib/mock/question-bank-inspector.ts +109 -0
  124. package/template/lib/mock/question-bank-kpi.ts +1 -1
  125. package/template/lib/mock/question-bank.ts +80 -0
  126. package/template/lib/question-bank-nav.ts +91 -0
  127. package/template/next.config.mjs +8 -0
  128. package/template/package.json +1 -0
  129. package/template/public/folders/icons8-folder-windows-11.svg +1 -0
  130. package/template/scripts/fontawesome-subset-audit.mjs +2 -3
  131. package/template/app/(app)/compliance/page.tsx +0 -10
  132. package/template/app/(app)/rotations/page.tsx +0 -15
  133. package/template/app/(app)/sites/all/page.tsx +0 -13
  134. package/template/app/(app)/team/page.tsx +0 -10
@@ -6,6 +6,15 @@ export type QuestionBankStatus = "published" | "draft" | "in_review"
6
6
  export type QuestionBankType = "multiple_choice" | "true_false" | "short_answer"
7
7
  export type QuestionBankDifficulty = "easy" | "medium" | "hard"
8
8
 
9
+ /** Bloom taxonomy label for bank inspector / analytics (optional on mock rows). */
10
+ export type QuestionBankBloomLevel =
11
+ | "Remember"
12
+ | "Understand"
13
+ | "Apply"
14
+ | "Analyze"
15
+ | "Evaluate"
16
+ | "Create"
17
+
9
18
  export interface QuestionBankItem extends Record<string, unknown> {
10
19
  id: string
11
20
  /** Short preview / stem */
@@ -16,6 +25,35 @@ export interface QuestionBankItem extends Record<string, unknown> {
16
25
  status: QuestionBankStatus
17
26
  author: string
18
27
  updatedAt: string
28
+ /** Folder tree id (`lib/mock/question-bank-folders.ts`). */
29
+ folderId: string
30
+ /** Multiple choice options (only for type: "multiple_choice") */
31
+ options?: {
32
+ text: string
33
+ isCorrect?: boolean
34
+ }[]
35
+ /** Stable bank code for lists / inspector (e.g. PH-ANA-001). */
36
+ itemCode?: string
37
+ bloomLevel?: QuestionBankBloomLevel | string
38
+ /** Topic-style tags for inspector (# displayed in UI). */
39
+ tags?: string[]
40
+ /** ISO-ish created date (inspector “Creator & history”). */
41
+ createdAt?: string
42
+ /** Display name for “Created by” when different from `author`. */
43
+ createdBy?: string
44
+ /** Last editor display name (inspector copy). */
45
+ lastEditedBy?: string
46
+ /** Precomposed “Last edited” line; overrides derived copy when set. */
47
+ lastEditedSummary?: string
48
+ /** Revision label e.g. v4 */
49
+ version?: string
50
+ examUsageCount?: number
51
+ /** Point-biserial index (psychometrics preview). */
52
+ pbi?: number
53
+ /** Mean percent correct when used in assessments. */
54
+ avgScoreCorrectPct?: number
55
+ /** Where / when the item was last used on an exam. */
56
+ lastUsedLabel?: string
19
57
  }
20
58
 
21
59
  export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
@@ -28,6 +66,25 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
28
66
  status: "published",
29
67
  author: "Dr. Chen",
30
68
  updatedAt: "2026-03-28",
69
+ folderId: "fld-science",
70
+ itemCode: "QB-ANA-001",
71
+ bloomLevel: "Apply",
72
+ tags: ["Brachial plexus", "Peripheral nerves", "Spine"],
73
+ createdAt: "2024-11-02",
74
+ createdBy: "Dr. Sarah Thompson",
75
+ lastEditedBy: "Dr. James Patel",
76
+ lastEditedSummary: "14 months ago · Dr. James Patel",
77
+ version: "v4",
78
+ examUsageCount: 22,
79
+ pbi: 0.48,
80
+ avgScoreCorrectPct: 88,
81
+ lastUsedLabel: "Midterm 2024 · 14 months ago",
82
+ options: [
83
+ { text: "C5, C6, C7, C8, T1", isCorrect: true },
84
+ { text: "C3, C4, C5, C6", isCorrect: false },
85
+ { text: "C6, C7, C8, T1, T2", isCorrect: false },
86
+ { text: "C4, C5, C6, C7", isCorrect: false },
87
+ ],
31
88
  },
32
89
  {
33
90
  id: "q2",
@@ -38,6 +95,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
38
95
  status: "published",
39
96
  author: "Jordan Lee",
40
97
  updatedAt: "2026-03-27",
98
+ folderId: "fld-skills-lab",
41
99
  },
42
100
  {
43
101
  id: "q3",
@@ -48,6 +106,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
48
106
  status: "in_review",
49
107
  author: "Alex Rivera",
50
108
  updatedAt: "2026-03-26",
109
+ folderId: "fld-science",
51
110
  },
52
111
  {
53
112
  id: "q4",
@@ -58,6 +117,13 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
58
117
  status: "draft",
59
118
  author: "Sam Patel",
60
119
  updatedAt: "2026-03-25",
120
+ folderId: "fld-ethics",
121
+ options: [
122
+ { text: "Patient is incapacitated and disclosure is in their best interest", isCorrect: true },
123
+ { text: "Family member requests the information", isCorrect: false },
124
+ { text: "Patient has not explicitly prohibited disclosure", isCorrect: false },
125
+ { text: "Disclosure would benefit hospital operations", isCorrect: false },
126
+ ],
61
127
  },
62
128
  {
63
129
  id: "q5",
@@ -68,6 +134,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
68
134
  status: "published",
69
135
  author: "Dr. Chen",
70
136
  updatedAt: "2026-03-24",
137
+ folderId: "fld-clinical",
71
138
  },
72
139
  {
73
140
  id: "q6",
@@ -78,6 +145,13 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
78
145
  status: "published",
79
146
  author: "Morgan Lee",
80
147
  updatedAt: "2026-03-23",
148
+ folderId: "fld-ops",
149
+ options: [
150
+ { text: "Gloving and gowning", isCorrect: true },
151
+ { text: "Hand sanitization", isCorrect: false },
152
+ { text: "Equipment gathering", isCorrect: false },
153
+ { text: "Workspace cleaning", isCorrect: false },
154
+ ],
81
155
  },
82
156
  {
83
157
  id: "q7",
@@ -88,6 +162,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
88
162
  status: "draft",
89
163
  author: "Casey Nguyen",
90
164
  updatedAt: "2026-03-22",
165
+ folderId: "fld-clinical",
91
166
  },
92
167
  {
93
168
  id: "q8",
@@ -98,6 +173,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
98
173
  status: "in_review",
99
174
  author: "Riley Johnson",
100
175
  updatedAt: "2026-03-21",
176
+ folderId: "fld-science",
101
177
  },
102
178
  {
103
179
  id: "q9",
@@ -108,6 +184,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
108
184
  status: "published",
109
185
  author: "Quinn Martinez",
110
186
  updatedAt: "2026-03-20",
187
+ folderId: "fld-clinical",
111
188
  },
112
189
  {
113
190
  id: "q10",
@@ -118,6 +195,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
118
195
  status: "published",
119
196
  author: "Dr. Chen",
120
197
  updatedAt: "2026-03-19",
198
+ folderId: "fld-science",
121
199
  },
122
200
  {
123
201
  id: "q11",
@@ -128,6 +206,7 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
128
206
  status: "draft",
129
207
  author: "Taylor Brooks",
130
208
  updatedAt: "2026-03-18",
209
+ folderId: "fld-ops",
131
210
  },
132
211
  {
133
212
  id: "q12",
@@ -138,5 +217,6 @@ export const QUESTION_BANK_ITEMS: QuestionBankItem[] = [
138
217
  status: "in_review",
139
218
  author: "Jordan Lee",
140
219
  updatedAt: "2026-03-17",
220
+ folderId: "fld-ops",
141
221
  },
142
222
  ]
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Question bank secondary nav + URL scope — demo “My” matches mock author rows.
3
+ */
4
+
5
+ import type { QuestionBankItem } from "@/lib/mock/question-bank"
6
+ import type { QuestionBankFolder } from "@/lib/mock/question-bank-folders"
7
+ import { collectFolderDescendantIds } from "@/lib/mock/question-bank-folders"
8
+
9
+ /** Demo curator — “My questions” filters `author` / `createdBy` to this value. */
10
+ export const QUESTION_BANK_NAV_MY_AUTHOR = "Dr. Chen"
11
+
12
+ export type QuestionBankNavScope = "all" | "my" | "folder"
13
+
14
+ export interface QuestionBankNavState {
15
+ scope: QuestionBankNavScope
16
+ /** Set when `scope === "folder"` */
17
+ folderId: string | null
18
+ }
19
+
20
+ export function parseQuestionBankNav(searchParams: URLSearchParams): QuestionBankNavState {
21
+ const raw = (searchParams.get("scope") ?? "all").toLowerCase()
22
+ if (raw === "my") return { scope: "my", folderId: null }
23
+ if (raw === "folder") {
24
+ const folderId = searchParams.get("folderId") ?? searchParams.get("folder")
25
+ return { scope: "folder", folderId: folderId || null }
26
+ }
27
+ return { scope: "all", folderId: null }
28
+ }
29
+
30
+ /** Breadcrumb + title for `SiteHeader` / `PageHeader` (matches secondary nav scopes). */
31
+ export interface QuestionBankHubHeaderModel {
32
+ title: string
33
+ breadcrumbs?: { label: string; href?: string }[]
34
+ }
35
+
36
+ export function questionBankHubHeaderModel(
37
+ folders: QuestionBankFolder[],
38
+ nav: QuestionBankNavState,
39
+ ): QuestionBankHubHeaderModel {
40
+ if (nav.scope === "my") {
41
+ return {
42
+ breadcrumbs: [{ label: "Question bank", href: "/question-bank" }],
43
+ title: "My questions",
44
+ }
45
+ }
46
+ if (nav.scope === "folder" && nav.folderId) {
47
+ const name = folders.find(f => f.id === nav.folderId)?.name ?? "Folder"
48
+ return {
49
+ breadcrumbs: [{ label: "Question bank", href: "/question-bank" }],
50
+ title: name,
51
+ }
52
+ }
53
+ return { title: "All questions" }
54
+ }
55
+
56
+ export function filterQuestionBankItemsByNav(
57
+ items: QuestionBankItem[],
58
+ folders: QuestionBankFolder[],
59
+ nav: QuestionBankNavState,
60
+ ): QuestionBankItem[] {
61
+ if (nav.scope === "all") return items
62
+ if (nav.scope === "my") {
63
+ return items.filter(
64
+ i => i.author === QUESTION_BANK_NAV_MY_AUTHOR || i.createdBy === QUESTION_BANK_NAV_MY_AUTHOR,
65
+ )
66
+ }
67
+ if (nav.scope === "folder" && nav.folderId) {
68
+ const allowedFolderIds = collectFolderDescendantIds(folders, nav.folderId)
69
+ return items.filter(i => allowedFolderIds.has(i.folderId))
70
+ }
71
+ return items
72
+ }
73
+
74
+ /** Build `/question-bank` href with optional query + hash (hash without leading `#`). */
75
+ export function questionBankNavHref(opts: {
76
+ scope: QuestionBankNavScope
77
+ folderId?: string | null
78
+ hash?: string
79
+ }): string {
80
+ const base = "/question-bank"
81
+ const sp = new URLSearchParams()
82
+ if (opts.scope === "my") sp.set("scope", "my")
83
+ if (opts.scope === "folder" && opts.folderId) {
84
+ sp.set("scope", "folder")
85
+ sp.set("folderId", opts.folderId)
86
+ }
87
+ const qs = sp.toString()
88
+ const h = opts.hash?.replace(/^#/, "")
89
+ const hashPart = h ? `#${h}` : ""
90
+ return qs ? `${base}?${qs}${hashPart}` : `${base}${hashPart}`
91
+ }
@@ -10,6 +10,14 @@ const nextConfig = {
10
10
  experimental: {
11
11
  optimizePackageImports: ["lucide-react", "recharts", "@exxatdesignux/ui"],
12
12
  },
13
+ async redirects() {
14
+ return [
15
+ { source: "/rotations", destination: "/examples", permanent: false },
16
+ { source: "/compliance", destination: "/examples", permanent: false },
17
+ { source: "/sites/all", destination: "/examples", permanent: false },
18
+ { source: "/sites/all/:path*", destination: "/examples", permanent: false },
19
+ ]
20
+ },
13
21
  }
14
22
 
15
23
  export default withBundleAnalyzer(nextConfig)
@@ -49,6 +49,7 @@
49
49
  "react-day-picker": "^9.14.0",
50
50
  "react-dom": "^19.2.4",
51
51
  "react-hook-form": "^7.72.0",
52
+ "react-resizable-panels": "^4.10.0",
52
53
  "recharts": "^2.15.4",
53
54
  "shadcn": "^4.1.0",
54
55
  "sonner": "^2.0.7",
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="WQEfvoQAcpQgQgyjQQ4Hqa" x1="24" x2="24" y1="6.708" y2="14.977" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#eba600"/><stop offset="1" stop-color="#c28200"/></linearGradient><path fill="url(#WQEfvoQAcpQgQgyjQQ4Hqa)" d="M24.414,10.414l-2.536-2.536C21.316,7.316,20.553,7,19.757,7L5,7C3.895,7,3,7.895,3,9l0,30 c0,1.105,0.895,2,2,2l38,0c1.105,0,2-0.895,2-2V13c0-1.105-0.895-2-2-2l-17.172,0C25.298,11,24.789,10.789,24.414,10.414z"/><linearGradient id="WQEfvoQAcpQgQgyjQQ4Hqb" x1="24" x2="24" y1="10.854" y2="40.983" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#ffd869"/><stop offset="1" stop-color="#fec52b"/></linearGradient><path fill="url(#WQEfvoQAcpQgQgyjQQ4Hqb)" d="M21.586,14.414l3.268-3.268C24.947,11.053,25.074,11,25.207,11H43c1.105,0,2,0.895,2,2v26 c0,1.105-0.895,2-2,2H5c-1.105,0-2-0.895-2-2V15.5C3,15.224,3.224,15,3.5,15h16.672C20.702,15,21.211,14.789,21.586,14.414z"/></svg>
@@ -16,8 +16,7 @@ import { fileURLToPath } from "node:url"
16
16
 
17
17
  const __dirname = path.dirname(fileURLToPath(import.meta.url))
18
18
  const WEB_ROOT = path.join(__dirname, "..")
19
- const REPO_ROOT = path.join(WEB_ROOT, "..", "..")
20
- const UI_SRC = path.join(REPO_ROOT, "packages", "ui", "src")
19
+ const UI_SRC = path.join(WEB_ROOT, "node_modules", "@exxatdesignux/ui", "src")
21
20
 
22
21
  const IGNORE_DIR = new Set([
23
22
  "node_modules",
@@ -164,7 +163,7 @@ function main() {
164
163
  const manifest = {
165
164
  kitId: "d9bd5774e0",
166
165
  generatedAt: new Date().toISOString(),
167
- sourcePaths: ["apps/web/{app,components,lib,contexts,hooks}", "packages/ui/src"],
166
+ sourcePaths: ["{app,components,lib,contexts,hooks}", "node_modules/@exxatdesignux/ui/src"],
168
167
  stylesDetected: sortedStyles,
169
168
  duotoneNote:
170
169
  "Icons used as fa-duotone fa-solid … require Duotone + Solid in Kit settings (e.g. star-christmas).",
@@ -1,10 +0,0 @@
1
- import { ComplianceClient } from "@/components/compliance-client"
2
- import { PrimaryPageTemplate } from "@/components/templates/primary-page-template"
3
-
4
- export default function CompliancePage() {
5
- return (
6
- <PrimaryPageTemplate siteHeader={{ title: "Compliance" }}>
7
- <ComplianceClient />
8
- </PrimaryPageTemplate>
9
- )
10
- }
@@ -1,15 +0,0 @@
1
- import { PrimaryPageTemplate } from "@/components/templates/primary-page-template"
2
- import { RotationsPanelActivator } from "@/components/rotations-panel-activator"
3
- import { RotationsEmptyState } from "@/components/rotations-empty-state"
4
-
5
- export default function RotationsPage() {
6
- return (
7
- <PrimaryPageTemplate
8
- beforeSiteHeader={<RotationsPanelActivator />}
9
- siteHeader={{ title: "Rotations" }}
10
- contentClassName="px-4 lg:px-6 py-6"
11
- >
12
- <RotationsEmptyState />
13
- </PrimaryPageTemplate>
14
- )
15
- }
@@ -1,13 +0,0 @@
1
- import { SitesAllClient } from "@/components/sites-all-client"
2
- import { PrimaryPageTemplate } from "@/components/templates/primary-page-template"
3
-
4
- export default function SitesAllPage() {
5
- return (
6
- <PrimaryPageTemplate
7
- siteHeader={{ title: "Sites" }}
8
- contentClassName="pb-6"
9
- >
10
- <SitesAllClient />
11
- </PrimaryPageTemplate>
12
- )
13
- }
@@ -1,10 +0,0 @@
1
- import { PrimaryPageTemplate } from "@/components/templates/primary-page-template"
2
- import { TeamClient } from "@/components/team-client"
3
-
4
- export default function TeamPage() {
5
- return (
6
- <PrimaryPageTemplate siteHeader={{ title: "Team" }}>
7
- <TeamClient />
8
- </PrimaryPageTemplate>
9
- )
10
- }