rouse-ui-kit-make-kit 0.1.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.
@@ -0,0 +1,114 @@
1
+ <!-- make-kit-guidelines -->
2
+ ## Design System Setup — MANDATORY
3
+
4
+ This project depends on `@make-kits/rouse-ui-kit` packages. Before writing
5
+ any code:
6
+
7
+ 1. Read guidelines/setup.md and guidelines/Guidelines.md by their exact
8
+ path (e.g. node_modules/<scope>/<package>/guidelines/setup.md).
9
+ This project uses pnpm, which symlinks packages — do NOT use
10
+ `find`, `glob`, or `file_search` to discover files as they silently
11
+ fail on symlinks. Instead use: reading files by exact path,
12
+ `ls` (follows symlinks), `find -L` (`-L` follows symlinks), or `cat`.
13
+ 2. Execute all setup instructions (install dependencies, config changes)
14
+ against THIS project — not the package itself.
15
+ 3. Do not skip, modify, or improvise any setup steps.
16
+ 4. Read ALL other required .md files specified in guidelines/Guidelines.md.
17
+ 5. Verify that all packages specified in setup.md appear in this
18
+ project's package.json and that all required .md files have been read before proceeding.
19
+ <!-- /make-kit-guidelines -->
20
+
21
+ **Add your own guidelines here**
22
+
23
+ ## Rouse Design System Guidelines
24
+
25
+ Read `guidelines/setup.md` for full component reference and import patterns.
26
+
27
+ ### General
28
+ - Use `rouse-ui-kit` components for ALL UI elements — never build custom buttons, inputs, chips, alerts, or labels from scratch
29
+ - Import everything from `rouse-ui-kit`; never import directly from `@mui/material` for UI components (MUI is a peer dependency of the kit)
30
+ - Always wrap the app in `ThemeProvider` + `CssBaseline` from MUI using the `theme` export from `rouse-ui-kit`
31
+ - Set `html { font-size: 16px }` in global CSS so MUI rem values are correct
32
+
33
+ ### Typography
34
+ - Use `Typography variant="h4"` for page titles, `h5` for section headers, `h6` for card headers
35
+ - Never set `fontSize` manually — always use MUI Typography `variant` prop
36
+ - Never use `color: "black"` — use `theme.palette.text.primary` (#191919) or `theme.palette.text.secondary` (#666666)
37
+
38
+ ### Status & Labels
39
+ - Use `LabelFilled` for status (Active/Inactive) with `color="success"` or `color="default"`
40
+ - Use `ChipStatus` for contract tier / category badges (Premium, Basic)
41
+ - Use `AlertStandard` for all contextual messages — never custom-build alert boxes
42
+
43
+ ### Layout
44
+ - Page backgrounds: `bgcolor: theme.palette.background.default` (#F5F5F5)
45
+ - Card/section backgrounds: `bgcolor: background.white` (#FFFFFF) with `border: 1px solid ${theme.palette.divider}`
46
+ - Section cards have a header (title in `h6` + optional `LabelFilled` badge) separated by a divider from the content
47
+ - Modals: `background.white`, `borderRadius: 2`, `boxShadow: 3`, max-width `28rem`–`32rem`
48
+
49
+ ### Forms
50
+ - All text inputs: `TextFieldOutlined` — use `placeholder` + `size="small"` for search bars
51
+ - All dropdowns: `SelectOutlined`
52
+ - All checkboxes: `Checkbox` from rouse-ui-kit
53
+ - Form modals always have 3 sections: header (title+desc), content (fields), footer (Cancel + primary CTA)
54
+
55
+ <!--
56
+
57
+ System Guidelines (original template — keep for reference)
58
+
59
+ Use this file to provide the AI with rules and guidelines you want it to follow.
60
+ This template outlines a few examples of things you can add. You can add your own sections and format it to suit your needs
61
+
62
+ TIP: More context isn't always better. It can confuse the LLM. Try and add the most important rules you need
63
+
64
+ # General guidelines
65
+
66
+ Any general rules you want the AI to follow.
67
+ For example:
68
+
69
+ * Only use absolute positioning when necessary. Opt for responsive and well structured layouts that use flexbox and grid by default
70
+ * Refactor code as you go to keep code clean
71
+ * Keep file sizes small and put helper functions and components in their own files.
72
+
73
+ --------------
74
+
75
+ # Design system guidelines
76
+ Rules for how the AI should make generations look like your company's design system
77
+
78
+ Additionally, if you select a design system to use in the prompt box, you can reference
79
+ your design system's components, tokens, variables and components.
80
+ For example:
81
+
82
+ * Use a base font-size of 14px
83
+ * Date formats should always be in the format “Jun 10”
84
+ * The bottom toolbar should only ever have a maximum of 4 items
85
+ * Never use the floating action button with the bottom toolbar
86
+ * Chips should always come in sets of 3 or more
87
+ * Don't use a dropdown if there are 2 or fewer options
88
+
89
+ You can also create sub sections and add more specific details
90
+ For example:
91
+
92
+
93
+ ## Button
94
+ The Button component is a fundamental interactive element in our design system, designed to trigger actions or navigate
95
+ users through the application. It provides visual feedback and clear affordances to enhance user experience.
96
+
97
+ ### Usage
98
+ Buttons should be used for important actions that users need to take, such as form submissions, confirming choices,
99
+ or initiating processes. They communicate interactivity and should have clear, action-oriented labels.
100
+
101
+ ### Variants
102
+ * Primary Button
103
+ * Purpose : Used for the main action in a section or page
104
+ * Visual Style : Bold, filled with the primary brand color
105
+ * Usage : One primary button per section to guide users toward the most important action
106
+ * Secondary Button
107
+ * Purpose : Used for alternative or supporting actions
108
+ * Visual Style : Outlined with the primary color, transparent background
109
+ * Usage : Can appear alongside a primary button for less important actions
110
+ * Tertiary Button
111
+ * Purpose : Used for the least important actions
112
+ * Visual Style : Text-only with no border, using primary color
113
+ * Usage : For actions that should be available but not emphasized
114
+ -->
@@ -0,0 +1,260 @@
1
+ # Rouse UI Kit — Setup & Component Reference
2
+
3
+ ## Installation
4
+
5
+ This project uses `rouse-ui-kit` from npm. It is already listed in `package.json`.
6
+
7
+ ```bash
8
+ npm install
9
+ ```
10
+
11
+ ## Import pattern
12
+
13
+ All components and tokens are imported from `rouse-ui-kit`:
14
+
15
+ ```tsx
16
+ import {
17
+ ButtonContained, ButtonOutlined, ButtonText,
18
+ TextFieldOutlined, SelectOutlined,
19
+ ChipFilled, ChipStatus,
20
+ LabelFilled, LabelOutlined,
21
+ AlertStandard,
22
+ Checkbox,
23
+ IconButtonOutlined,
24
+ Menu,
25
+ theme, background, gray, other, interaction,
26
+ primary, secondary, text, typography,
27
+ } from "rouse-ui-kit";
28
+ ```
29
+
30
+ Always wrap the app in `ThemeProvider` and `CssBaseline` from MUI:
31
+
32
+ ```tsx
33
+ import { ThemeProvider } from "@mui/material/styles";
34
+ import CssBaseline from "@mui/material/CssBaseline";
35
+ import { theme } from "rouse-ui-kit";
36
+
37
+ <ThemeProvider theme={theme}>
38
+ <CssBaseline />
39
+ {/* app content */}
40
+ </ThemeProvider>
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Design Tokens
46
+
47
+ ### Colors — use via `theme.palette.*`
48
+
49
+ | Token | Value | Usage |
50
+ |---|---|---|
51
+ | `theme.palette.text.primary` | `#191919` | All primary text |
52
+ | `theme.palette.text.secondary` | `#666666` | Labels, captions, metadata |
53
+ | `theme.palette.text.disabled` | `#999999` | Disabled states |
54
+ | `theme.palette.secondary.main` | `#2C4D9E` | Links, active nav, accent |
55
+ | `theme.palette.secondary.light` | `#6F8DE3` | Hover/light accent |
56
+ | `theme.palette.primary.main` | `#4C4C4C` | Borders, icons |
57
+ | `theme.palette.divider` | `rgba(0,0,0,0.12)` | Borders, dividers |
58
+ | `theme.palette.action.hover` | `rgba(0,0,0,0.04)` | Row hover |
59
+ | `background.white` | `#FFFFFF` | Card/surface backgrounds |
60
+ | `background.paper` | `#FAFAFA` | Slightly off-white surfaces |
61
+ | `background.default` | `#F5F5F5` | Page background |
62
+ | `gray[10]` | `#E5E5E5` | Avatar backgrounds, subtle fills |
63
+
64
+ Import standalone tokens when needed:
65
+ ```tsx
66
+ import { background, gray, other, interaction } from "rouse-ui-kit";
67
+ ```
68
+
69
+ ### Typography — use MUI `variant` prop, never hardcode font sizes
70
+
71
+ | Variant | Size | Weight | Use for |
72
+ |---|---|---|---|
73
+ | `h4` | 34px (2.125rem) | 400 | Page titles |
74
+ | `h5` | 24px (1.5rem) | 400 | Section headers |
75
+ | `h6` | 20px (1.25rem) | 500 | Card headers, sub-section titles |
76
+ | `subtitle1` | 16px | 400 | Secondary headers |
77
+ | `subtitle2` | 14px | 500 | Table headers, labels with emphasis |
78
+ | `body1` | 16px | 400 | Body text |
79
+ | `body2` | 14px | 400 | Secondary body, descriptions |
80
+ | `caption` | 12px | 400 | Metadata, timestamps, hints |
81
+
82
+ **Never** set `fontSize` manually on `Typography` — always use `variant`.
83
+ **Never** use `color: "black"` — always use `theme.palette.text.primary`.
84
+
85
+ ---
86
+
87
+ ## Components
88
+
89
+ ### ButtonContained
90
+ Primary CTA. Use for the main action on a page/section.
91
+
92
+ ```tsx
93
+ <ButtonContained label="Add client" onClick={handleClick} />
94
+ <ButtonContained label="Save" disabled={!isValid} />
95
+ ```
96
+
97
+ Props: `label`, `onClick`, `disabled`, `icon` ("none" | "left" | "right")
98
+
99
+ ### ButtonOutlined
100
+ Secondary action. Use alongside `ButtonContained` for cancel/alternative actions.
101
+
102
+ ```tsx
103
+ <ButtonOutlined label="Cancel" onClick={handleClose} />
104
+ <ButtonOutlined label="Filters" icon={FilterList} />
105
+ ```
106
+
107
+ Props: `label`, `onClick`, `disabled`, `icon`
108
+
109
+ ### ButtonText
110
+ Tertiary action. Least emphasis.
111
+
112
+ ```tsx
113
+ <ButtonText label="Learn more" onClick={handleClick} />
114
+ ```
115
+
116
+ ### TextFieldOutlined
117
+ Use for all text inputs. For search bars use `placeholder` instead of `label` with `size="small"`.
118
+
119
+ ```tsx
120
+ // Form field (floating label)
121
+ <TextFieldOutlined label="Name" value={name} onChange={setName} />
122
+
123
+ // Search bar (placeholder, no floating label)
124
+ <TextFieldOutlined
125
+ placeholder="Search clients"
126
+ value={search}
127
+ onChange={setSearch}
128
+ icon={SearchIcon}
129
+ clearable
130
+ size="small"
131
+ onClear={() => setSearch("")}
132
+ />
133
+
134
+ // With error
135
+ <TextFieldOutlined label="Email" value={email} onChange={setEmail} error helperText="Invalid email" />
136
+ ```
137
+
138
+ Props: `label`, `placeholder`, `value`, `onChange`, `error`, `helperText`, `disabled`, `clearable`, `onClear`, `icon`, `onIconClick`, `type`, `size` ("small" | "medium")
139
+
140
+ ### SelectOutlined
141
+ Use for all dropdown selects.
142
+
143
+ ```tsx
144
+ const options = [
145
+ { value: "rouse", label: "Rouse" },
146
+ { value: "rb", label: "Ritchie Bros" },
147
+ ];
148
+
149
+ <SelectOutlined
150
+ label="Company"
151
+ value={company}
152
+ options={options}
153
+ onChange={setCompany}
154
+ />
155
+ ```
156
+
157
+ Props: `label`, `value`, `options`, `onChange`, `error`, `helperText`, `disabled`, `clearable`, `onClear`
158
+
159
+ ### Checkbox
160
+ Use for boolean fields and multi-select lists.
161
+
162
+ ```tsx
163
+ <Checkbox label="All Seller Orgs" checked={isChecked} onChange={setIsChecked} />
164
+ <Checkbox label="Disabled" disabled />
165
+ ```
166
+
167
+ Props: `label`, `checked`, `onChange`, `disabled`, `indeterminate`
168
+
169
+ ### ChipFilled
170
+ Use for filter tabs and toggleable categories.
171
+
172
+ ```tsx
173
+ <ChipFilled label="All clients" selected={filter === "all"} onClick={() => setFilter("all")} />
174
+ ```
175
+
176
+ Props: `label`, `selected`, `onClick`, `disabled`, `color` ("primary" | "secondary"), `deletable`, `onDelete`
177
+
178
+ ### ChipStatus
179
+ Use for contract tiers and category badges (not status — use LabelFilled for status).
180
+
181
+ ```tsx
182
+ <ChipStatus label="Premium" color="secondary" />
183
+ <ChipStatus label="Basic" color="default" />
184
+ ```
185
+
186
+ Props: `label`, `color` ("primary" | "secondary" | "default"), `icon`
187
+
188
+ ### LabelFilled
189
+ **Use for status indicators** (Active/Inactive, approval states).
190
+
191
+ ```tsx
192
+ <LabelFilled label="Active" color="success" icon="none" />
193
+ <LabelFilled label="Inactive" color="default" icon="none" />
194
+ <LabelFilled label="Full edit" color="primary" icon="none" />
195
+ <LabelFilled label="Required" color="error" icon="none" />
196
+ ```
197
+
198
+ Colors: `"default"` | `"primary"` | `"secondary"` | `"error"` | `"warning"` | `"success"` | `"info"`
199
+ Props: `label`, `color`, `icon` ("none" | "left" | "right" | "only")
200
+
201
+ ### LabelOutlined
202
+ Same as LabelFilled but outlined style. Use when less emphasis is needed.
203
+
204
+ ```tsx
205
+ <LabelOutlined label="View only" color="default" icon="none" />
206
+ ```
207
+
208
+ ### AlertStandard
209
+ Use for contextual messages, warnings, and info banners.
210
+
211
+ ```tsx
212
+ <AlertStandard severity="info">
213
+ Seller Orgs are independent units.
214
+ </AlertStandard>
215
+
216
+ <AlertStandard severity="warning" action="End session" onAction={handleEnd}>
217
+ You are viewing as Carlos Mendez — session ends in 15 min
218
+ </AlertStandard>
219
+
220
+ <AlertStandard severity="secondary" onClose={handleClose}>
221
+ Draft saved automatically.
222
+ </AlertStandard>
223
+ ```
224
+
225
+ Severities: `"error"` | `"warning"` | `"info"` | `"success"` | `"primary"` | `"secondary"`
226
+ Props: `severity`, `title`, `children`, `action`, `onAction`, `onClose`
227
+
228
+ ### IconButtonOutlined
229
+ Use for icon-only actions in tables and cards.
230
+
231
+ ```tsx
232
+ <IconButtonOutlined icon={MoreVert} size="small" aria-label="More options" onClick={handleClick} />
233
+ ```
234
+
235
+ Sizes: `"xSmall"` | `"small"` | `"medium"` | `"large"`
236
+
237
+ ### Menu
238
+ Use for dropdown menus and option lists.
239
+
240
+ ```tsx
241
+ <Menu
242
+ options={[{ value: "edit", label: "Edit" }, { value: "delete", label: "Delete" }]}
243
+ selectedValues={[selected]}
244
+ onSelect={setSelected}
245
+ />
246
+ ```
247
+
248
+ ---
249
+
250
+ ## Rules
251
+
252
+ - **Never use hardcoded hex colors** — always use `theme.palette.*` or named tokens
253
+ - **Never use hardcoded font sizes** — always use Typography `variant` prop
254
+ - **Never use `fontWeight: 700`** unless it's a stat number (use `fontWeight: 500` for emphasis)
255
+ - **Use `background.white`** for card/surface backgrounds, not `"#fff"` or `"white"`
256
+ - **Use `LabelFilled` for status** (Active/Inactive), **ChipStatus for category** (Premium/Basic)
257
+ - **Use `AlertStandard` for all banners and contextual messages** — never build custom alert boxes
258
+ - **Modals** should use `background.white`, `borderRadius: 2`, `boxShadow: 3`, max-width constraint
259
+ - **Tables**: use `Box component="table"` with `borderCollapse: "collapse"`, headers with `Typography variant="subtitle2"`
260
+ - **Form modals**: always have a header section (title + description), content section, and footer with Cancel + primary action
package/package.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "rouse-ui-kit-make-kit",
3
+ "version": "0.1.2",
4
+ "description": "Rouse UI Kit — Figma Make guidelines",
5
+ "keywords": ["make-kit", "figma-make", "rouse", "design-system"],
6
+ "files": ["guidelines"],
7
+ "make-kit": {
8
+ "library": "rouse-ui-kit",
9
+ "version": "0.1.2"
10
+ }
11
+ }