@kismet-ux/constellation 1.14.0 → 1.15.0
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.
- package/README.md +219 -208
- package/dist/form/Checkbox/checkbox.js +4 -57
- package/dist/form/Checkbox/checkbox.js.map +1 -1
- package/dist/form/DatePicker/date-picker.d.ts +1 -1
- package/dist/form/DatePicker/date-picker.d.ts.map +1 -1
- package/dist/form/DatePicker/date-picker.js +7 -59
- package/dist/form/DatePicker/date-picker.js.map +1 -1
- package/dist/form/Input/input.css +42 -6
- package/dist/form/Input/input.d.ts +6 -0
- package/dist/form/Input/input.d.ts.map +1 -1
- package/dist/form/Input/input.js +3 -3
- package/dist/form/Input/input.js.map +1 -1
- package/dist/form/Input/input.module.scss.js +1 -1
- package/dist/form/Select/select.d.ts.map +1 -1
- package/dist/form/Select/select.js +5 -5
- package/dist/form/Select/select.js.map +1 -1
- package/dist/form.d.ts +2 -2
- package/dist/index-BPKtGvrM.d.ts +200 -0
- package/dist/index-ByI9bvw8.d.ts +647 -0
- package/dist/index-C7SAfZfl.d.ts +647 -0
- package/dist/index-Cq8JgMRD.d.ts +354 -0
- package/dist/index-D8p7TX9C.d.ts +200 -0
- package/dist/index-DyDvelCa.d.ts +354 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.js +30 -30
- package/dist/input-BHmlHvYR.d.ts +58 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js +1 -31
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
- package/dist/layout.d.ts +3 -3
- package/dist/navigation/NavUser/nav-user.js +2 -2
- package/dist/navigation/Sheet/sheet.js +3 -30
- package/dist/navigation/Sheet/sheet.js.map +1 -1
- package/dist/navigation.d.ts +1 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.js +1 -28
- package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
- package/dist/tooltip-Cw8p0qeV.d.ts +46 -0
- package/dist/types/form/date-picker.d.ts +2 -0
- package/dist/types/form/date-picker.d.ts.map +1 -1
- package/dist/types/form/select.d.ts +2 -0
- package/dist/types/form/select.d.ts.map +1 -1
- package/dist/types/form/theme.d.ts +9 -0
- package/dist/types/form/theme.d.ts.map +1 -1
- package/dist/typography/Typography/typography.css +21 -1
- package/dist/ui/Button/button-variants.d.ts +1 -1
- package/dist/ui/Button/button.css +1 -1
- package/dist/ui/Icon/icon-variants.d.ts +1 -1
- package/dist/ui/SwipeRow/swipe-row-variants.js.map +1 -1
- package/dist/ui/SwipeRow/swipe-row.js.map +1 -1
- package/dist/ui/Toggle/toggle-variants.d.ts +1 -1
- package/dist/ui.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,208 +1,219 @@
|
|
|
1
|
-
# Kismet Constellation
|
|
2
|
-
|
|
3
|
-
A themeable React component library. ~60 components, light/dark out of the box, and a design-token system where **one file holds every color decision**.
|
|
4
|
-
|
|
5
|
-
No router dependency, no bundled fonts, no registry, no brand baked in — it's meant to be copied into a project and made yours.
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install
|
|
9
|
-
npm run dev # → http://localhost:5173
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
The dev server opens on **Foundations**, a live showcase of the whole token system: color families, type scale, spacing, radius, elevation, and components in context. Every other component has its own preview page in the sidebar.
|
|
13
|
-
|
|
14
|
-
Append `?theme=light`, `?theme=dark`, or `?theme=system` to pin the mode.
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## Two ways to use it
|
|
19
|
-
|
|
20
|
-
**Copy the repo** (what it's designed for) — you own the source, and rebranding means editing `_palette.scss` and `_theme.scss` as described below.
|
|
21
|
-
|
|
22
|
-
**Install it** as a dependency:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm install @kismet-ux/constellation
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
```tsx
|
|
29
|
-
import '@kismet-ux/constellation/styles';
|
|
30
|
-
import { Button } from '@kismet-ux/constellation/ui';
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**You only pay for what you render.** Each component ships its own stylesheet, imported by the component itself, so your bundler drops the CSS for everything you don't use — the same way it drops the JS. Importing `…/styles` gives you the tokens and reset (4.6 kB gzipped); each component adds its own on top.
|
|
34
|
-
|
|
35
|
-
Installed, the SCSS is already compiled, so the two-file seam isn't available to you — retheme by overriding the custom properties *after* importing the stylesheet. Every token in the next section is fair game:
|
|
36
|
-
|
|
37
|
-
```css
|
|
38
|
-
@import '@kismet-ux/constellation/styles';
|
|
39
|
-
|
|
40
|
-
:root {
|
|
41
|
-
--primary-main: #7c3aed;
|
|
42
|
-
--primary-emphasis: #6d28d9;
|
|
43
|
-
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
|
|
44
|
-
}
|
|
45
|
-
:root:not([data-theme='light']) { /* your dark overrides */ }
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Making it yours
|
|
51
|
-
|
|
52
|
-
### 1. Color
|
|
53
|
-
|
|
54
|
-
Everything routes through two files:
|
|
55
|
-
|
|
56
|
-
| File | Holds |
|
|
57
|
-
|---|---|
|
|
58
|
-
| `src/styles/_palette.scss` | The raw ramps — `$sky-500`, `$slate-900`, … |
|
|
59
|
-
| `src/styles/_theme.scss` | The mapping to CSS custom properties, light and dark |
|
|
60
|
-
|
|
61
|
-
No component names a color. Change the ramps and the entire library follows.
|
|
62
|
-
|
|
63
|
-
Seven theme families ship by default — `primary` (sky), `secondary` (violet), `info`, `success` (emerald), `warning` (amber), `destructive` (rose), `slate` — and every one exposes the same ten roles:
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
main · dark · emphasis · light · contrast
|
|
67
|
-
focus · focus-visible · hover · outlined-border · selected
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
That uniformity is what lets any component accept a `theme` prop and behave predictably:
|
|
71
|
-
|
|
72
|
-
```tsx
|
|
73
|
-
<Button theme={'success'}>Save</Button>
|
|
74
|
-
<Chip theme={'warning'}>Pending</Chip>
|
|
75
|
-
<StatCard theme={'info'} label={'Queries'} value={42} />
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
Two ramp shapes, chosen on purpose:
|
|
79
|
-
|
|
80
|
-
- **Alpha tints (25–400)** for states that sit over an unknown surface — hover, selected, focus. They compose correctly on light and dark without knowing what's behind them.
|
|
81
|
-
- **Solid shades (500–950)** for text and fills, where the value must be exact.
|
|
82
|
-
|
|
83
|
-
`$info-*` is the per-channel midpoint of `$slate-*` and `$sky-*`, shade for shade. Same hue as primary at lower chroma — which is what makes "info" read as the quiet informational tone rather than a competing accent. If you re-pick the primary, regenerate info the same way.
|
|
84
|
-
|
|
85
|
-
### 2. Type
|
|
86
|
-
|
|
87
|
-
`--font-sans`, `--font-serif` and `--font-mono` resolve to system stacks. Nothing to download, nothing to license, no flash of unstyled text. To brand it, override one variable:
|
|
88
|
-
|
|
89
|
-
```scss
|
|
90
|
-
:root { --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; }
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
`src/styles/_fonts.scss` has a `font-face` mixin and notes for self-hosting.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
1
|
+
# Kismet Constellation
|
|
2
|
+
|
|
3
|
+
A themeable React component library. ~60 components, light/dark out of the box, and a design-token system where **one file holds every color decision**.
|
|
4
|
+
|
|
5
|
+
No router dependency, no bundled fonts, no registry, no brand baked in — it's meant to be copied into a project and made yours.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install
|
|
9
|
+
npm run dev # → http://localhost:5173
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
The dev server opens on **Foundations**, a live showcase of the whole token system: color families, type scale, spacing, radius, elevation, and components in context. Every other component has its own preview page in the sidebar.
|
|
13
|
+
|
|
14
|
+
Append `?theme=light`, `?theme=dark`, or `?theme=system` to pin the mode.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Two ways to use it
|
|
19
|
+
|
|
20
|
+
**Copy the repo** (what it's designed for) — you own the source, and rebranding means editing `_palette.scss` and `_theme.scss` as described below.
|
|
21
|
+
|
|
22
|
+
**Install it** as a dependency:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install @kismet-ux/constellation
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import '@kismet-ux/constellation/styles';
|
|
30
|
+
import { Button } from '@kismet-ux/constellation/ui';
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**You only pay for what you render.** Each component ships its own stylesheet, imported by the component itself, so your bundler drops the CSS for everything you don't use — the same way it drops the JS. Importing `…/styles` gives you the tokens and reset (4.6 kB gzipped); each component adds its own on top.
|
|
34
|
+
|
|
35
|
+
Installed, the SCSS is already compiled, so the two-file seam isn't available to you — retheme by overriding the custom properties *after* importing the stylesheet. Every token in the next section is fair game:
|
|
36
|
+
|
|
37
|
+
```css
|
|
38
|
+
@import '@kismet-ux/constellation/styles';
|
|
39
|
+
|
|
40
|
+
:root {
|
|
41
|
+
--primary-main: #7c3aed;
|
|
42
|
+
--primary-emphasis: #6d28d9;
|
|
43
|
+
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
|
|
44
|
+
}
|
|
45
|
+
:root:not([data-theme='light']) { /* your dark overrides */ }
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Making it yours
|
|
51
|
+
|
|
52
|
+
### 1. Color
|
|
53
|
+
|
|
54
|
+
Everything routes through two files:
|
|
55
|
+
|
|
56
|
+
| File | Holds |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `src/styles/_palette.scss` | The raw ramps — `$sky-500`, `$slate-900`, … |
|
|
59
|
+
| `src/styles/_theme.scss` | The mapping to CSS custom properties, light and dark |
|
|
60
|
+
|
|
61
|
+
No component names a color. Change the ramps and the entire library follows.
|
|
62
|
+
|
|
63
|
+
Seven theme families ship by default — `primary` (sky), `secondary` (violet), `info`, `success` (emerald), `warning` (amber), `destructive` (rose), `slate` — and every one exposes the same ten roles:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
main · dark · emphasis · light · contrast
|
|
67
|
+
focus · focus-visible · hover · outlined-border · selected
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
That uniformity is what lets any component accept a `theme` prop and behave predictably:
|
|
71
|
+
|
|
72
|
+
```tsx
|
|
73
|
+
<Button theme={'success'}>Save</Button>
|
|
74
|
+
<Chip theme={'warning'}>Pending</Chip>
|
|
75
|
+
<StatCard theme={'info'} label={'Queries'} value={42} />
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Two ramp shapes, chosen on purpose:
|
|
79
|
+
|
|
80
|
+
- **Alpha tints (25–400)** for states that sit over an unknown surface — hover, selected, focus. They compose correctly on light and dark without knowing what's behind them.
|
|
81
|
+
- **Solid shades (500–950)** for text and fills, where the value must be exact.
|
|
82
|
+
|
|
83
|
+
`$info-*` is the per-channel midpoint of `$slate-*` and `$sky-*`, shade for shade. Same hue as primary at lower chroma — which is what makes "info" read as the quiet informational tone rather than a competing accent. If you re-pick the primary, regenerate info the same way.
|
|
84
|
+
|
|
85
|
+
### 2. Type
|
|
86
|
+
|
|
87
|
+
`--font-sans`, `--font-serif` and `--font-mono` resolve to system stacks. Nothing to download, nothing to license, no flash of unstyled text. To brand it, override one variable:
|
|
88
|
+
|
|
89
|
+
```scss
|
|
90
|
+
:root { --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; }
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`src/styles/_fonts.scss` has a `font-face` mixin and notes for self-hosting.
|
|
94
|
+
|
|
95
|
+
A brand with a separate display face sets two more, both unset by default — every heading (`h1`–`h6`) follows:
|
|
96
|
+
|
|
97
|
+
```scss
|
|
98
|
+
:root {
|
|
99
|
+
--font-display: 'Fraunces', ui-serif, Georgia, serif;
|
|
100
|
+
--font-display-weight: 700;
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 3. Brand
|
|
105
|
+
|
|
106
|
+
`<Logo />` is a geometric mark plus a **text** wordmark — no baked-in SVG paths:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
<Logo name={'Acme'} /> {/* rename */}
|
|
110
|
+
<Logo name={'Acme'} mark={<YourMark />} /> {/* or replace the glyph */}
|
|
111
|
+
<Logo name={null} /> {/* mark only */}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Colors come from `--logo-mark` and `--logo-fill`. Inside a collapsed sidebar the wordmark folds away and the mark holds its place.
|
|
115
|
+
|
|
116
|
+
### 4. Space, radius, elevation
|
|
117
|
+
|
|
118
|
+
- `--size-1` … `--size-12`, where `--size-N` is N ÷ 2 rem. No magic numbers.
|
|
119
|
+
- `--radius-xs|sm|md|lg|xl|2xl|full`.
|
|
120
|
+
- `--button-radius` and `--field-radius` re-cut every button and form field at once. Both are unset by default (buttons fall back to `--size-5`, fields to a `36px` pill).
|
|
121
|
+
- Fields take `appearance={'outlined' | 'filled' | 'underline'}`, or set `data-field-appearance` on `<html>` for the whole app. `--field-filled-background` picks the filled ground.
|
|
122
|
+
- 24 elevation levels. In light mode height is carried by a two-layer key + ambient shadow; in dark mode, where shadow reads as nothing, by a progressively lighter surface. Both ramps are generated in `_theme.scss` — change the formula once, not 24 times.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Routing
|
|
127
|
+
|
|
128
|
+
The library never imports a router. Out of the box `Link` renders a plain `<a>` and navigation is a full page load — correct everywhere, just not SPA-fast.
|
|
129
|
+
|
|
130
|
+
Wrap the app once and every link, breadcrumb, sidebar item and menu action upgrades together:
|
|
131
|
+
|
|
132
|
+
```tsx
|
|
133
|
+
import { RouterProvider } from '@kismet-ux/constellation/navigation';
|
|
134
|
+
import { Link, useNavigate } from 'react-router-dom';
|
|
135
|
+
|
|
136
|
+
<RouterProvider linkComponent={Link} navigate={useNavigate()}>
|
|
137
|
+
<App />
|
|
138
|
+
</RouterProvider>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Works the same with Next, TanStack Router, or anything else that exposes a link component and an imperative navigate.
|
|
142
|
+
|
|
143
|
+
Components take data, never globals: `AppShell` takes `defaultSidebarOpen`, `NavUser` takes `user` plus `onSettings` / `onLogout`.
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Layout of the repo
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
src/
|
|
151
|
+
styles/ ← _palette.scss + _theme.scss: the theming seam
|
|
152
|
+
ui/ Button, Dialog, Table, Chip, Alert, StatCard, …
|
|
153
|
+
form/ Input, Select, Checkbox, DatePicker, Label
|
|
154
|
+
layout/ AppShell, Sidebar, Container, Row, Column, Grid
|
|
155
|
+
navigation/ Link, RouterProvider, Breadcrumbs, DropdownMenu, Sheet
|
|
156
|
+
typography/ Typography, Heading, TruncatedText
|
|
157
|
+
settings/ appearance switchers
|
|
158
|
+
user/ UserInfo, UserMenuContent
|
|
159
|
+
brand/ Logo
|
|
160
|
+
hooks/ useAppearance, useBreakpoint, useAlerts, useTableSorting, …
|
|
161
|
+
dev/ the preview harness you see at localhost:5173
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Each component is a folder: `component-name.tsx` + `component-name.module.scss` + `index.ts`.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Developing it against a real app
|
|
169
|
+
|
|
170
|
+
Publishing a version for every small change is how versioning goes off the rails. Instead, point a consuming app at a sibling checkout:
|
|
171
|
+
|
|
172
|
+
```
|
|
173
|
+
projects/
|
|
174
|
+
kismet-constellation/ ← this repo
|
|
175
|
+
your-app/
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
In the app's `vite.config.js`:
|
|
179
|
+
|
|
180
|
+
```js
|
|
181
|
+
import constellationLocal from '@kismet-ux/constellation/vite';
|
|
182
|
+
|
|
183
|
+
export default defineConfig({
|
|
184
|
+
plugins: [constellationLocal({ root: '../kismet-constellation' }), react()],
|
|
185
|
+
});
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
…and in its `.env.local`:
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
CONSTELLATION_LOCAL=true
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The plugin builds resolve aliases from this package's own `exports` map, so there is no alias list to maintain. It aliases to `dist`, so keep a build running:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
npx rollup -c --watch
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
`__CONSTELLATION_LOCAL__` is defined as `true` while it is on, which is what `DevIndicator` reads to show its badge. With the variable unset the plugin is inert and the app uses the published package, so nothing depends on the checkout existing.
|
|
201
|
+
|
|
202
|
+
⚠️ **The plugin appends to `server.fs.allow`, and must.** Setting that option at all replaces Vite's default, so listing only the library root locks the consuming app out of its own source — every module 403s and the page renders blank with no useful error.
|
|
203
|
+
|
|
204
|
+
## Commands
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
npm run dev # dev harness
|
|
208
|
+
npm run build # bundle + type declarations → dist/
|
|
209
|
+
npm run typecheck # tsc --noEmit
|
|
210
|
+
npm run lint # eslint --fix
|
|
211
|
+
npm run stylelint # alphabetical SCSS property order
|
|
212
|
+
npm run format # prettier
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Notes for agents
|
|
218
|
+
|
|
219
|
+
`AGENTS.md` documents the architecture and conventions; `.claude/skills/constellation-*` carry per-category component references. Load the relevant skill before editing in a category.
|
|
@@ -1,65 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { Label } from '../Label/label.js';
|
|
3
|
+
import { Typography } from '../../typography/Typography/typography.js';
|
|
3
4
|
import cn from 'clsx';
|
|
4
|
-
import '../Input/input.js';
|
|
5
|
-
import * as React from 'react';
|
|
6
|
-
import '../../layout/Sidebar/sidebar-context.js';
|
|
7
|
-
import '../../ui/Alert/alert-context.js';
|
|
8
|
-
import '../../ui/Table/table-sort-context.js';
|
|
9
|
-
import '../../layout/Skeleton/skeleton.css';
|
|
10
|
-
import '../../navigation/Sheet/sheet.js';
|
|
11
|
-
import '../../ui/Button/button.js';
|
|
12
|
-
import '../../ui/Tooltip/tooltip.js';
|
|
13
5
|
import { CheckIcon } from 'lucide-react';
|
|
14
|
-
import '
|
|
15
|
-
import '../../layout/Sidebar/sidebar-variants.js';
|
|
16
|
-
import '../../layout/Sidebar/sidebar.css';
|
|
17
|
-
import '../../layout/AppContent/app-content.css';
|
|
18
|
-
import '../../layout/AppContentFooter/app-content-footer.css';
|
|
19
|
-
import '../../layout/AppContentMain/app-content-main.css';
|
|
20
|
-
import { Row } from '../../layout/Row/row.js';
|
|
21
|
-
import '../../navigation/Link/link.js';
|
|
22
|
-
import { Typography } from '../../typography/Typography/typography.js';
|
|
23
|
-
import '../../layout/AppFooter/app-footer.css';
|
|
24
|
-
import '../../navigation/Router/router-context.js';
|
|
25
|
-
import '../../ui/Separator/separator.js';
|
|
26
|
-
import 'react-dom';
|
|
27
|
-
import '../../typography/TruncatedText/truncated-text.js';
|
|
28
|
-
import '../../navigation/Breadcrumbs/breadcrumbs.css';
|
|
29
|
-
import '../../navigation/DropdownMenu/dropdown-menu.js';
|
|
30
|
-
import '../../ui/Avatar/avatar.js';
|
|
31
|
-
import '../../user/UserInfo/user-info.css';
|
|
32
|
-
import '../../navigation/NavUser/nav-user.css';
|
|
33
|
-
import '../../ui/Alert/alert.js';
|
|
34
|
-
import '../../ui/Alert/alert.css';
|
|
35
|
-
import '../../ui/Chip/chip.js';
|
|
36
|
-
import '../../ui/ChipSelect/chip-select.js';
|
|
37
|
-
import '../../ui/CodeBlock/code-block.js';
|
|
38
|
-
import '../../ui/DevIndicator/dev-indicator.css';
|
|
39
|
-
import '../../ui/Dialog/dialog.js';
|
|
40
|
-
import '../../ui/EmptyState/empty-state.js';
|
|
41
|
-
import '../../ui/Icon/icon.js';
|
|
42
|
-
import '../../ui/List/list.js';
|
|
43
|
-
import '../../ui/Pagination/pagination.js';
|
|
44
|
-
import '../../ui/ProgressBar/progress-bar.js';
|
|
45
|
-
import '../../ui/StatCard/stat-card.js';
|
|
46
|
-
import '../../ui/StatusDot/status-dot.js';
|
|
47
|
-
import '../../ui/StatusDot/status-dot-variants.js';
|
|
48
|
-
import '../../ui/StepProgress/step-progress.js';
|
|
49
|
-
import '../../ui/SwipeRow/swipe-row.js';
|
|
50
|
-
import '../../ui/Switch/switch.js';
|
|
51
|
-
import '../../ui/Table/table.js';
|
|
52
|
-
import '../../ui/TableActionCell/table-action-cell.js';
|
|
53
|
-
import '../../ui/TableToolbar/table-toolbar.js';
|
|
54
|
-
import '../../ui/Toggle/toggle.js';
|
|
55
|
-
import '../../ui/ToggleGroup/toggle-group.js';
|
|
56
|
-
import '../../settings/AppearanceTabs/appearance-tabs.css';
|
|
57
|
-
import '../../layout/AppSidebarHeader/app-sidebar-header.css';
|
|
58
|
-
import '../../layout/Collapse/collapse.js';
|
|
59
|
-
import { Column } from '../../layout/Column/column.js';
|
|
60
|
-
import '../../layout/Container/container.js';
|
|
61
|
-
import '../../layout/Grid/grid.js';
|
|
6
|
+
import * as React from 'react';
|
|
62
7
|
import s from './checkbox.module.scss.js';
|
|
8
|
+
import { Column } from '../../layout/Column/column.js';
|
|
9
|
+
import { Row } from '../../layout/Row/row.js';
|
|
63
10
|
|
|
64
11
|
const Checkbox = React.forwardRef(({ className, id, theme = 'primary', destructive = false, size = 'md', checked: controlledChecked, defaultChecked = false, onCheckedChange, disabled, value = 'on', name, required, label, helperText, ['aria-invalid']: ariaInvalid, ['aria-describedby']: ariaDescribedBy, onClick, onKeyDown, ...props }, ref) => {
|
|
65
12
|
const isControlled = controlledChecked !== undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../../src/form/Checkbox/checkbox.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { Column, Row } from '@constellation/layout';\nimport { type FormTheme } from '@constellation/types';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './checkbox.module.scss';\n\ntype CheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'\n> {\n theme?: FormTheme;\n destructive?: boolean;\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n onCheckedChange?: (checked: CheckedState) => void;\n value?: string;\n name?: string;\n required?: boolean;\n /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */\n label?: React.ReactNode;\n /** Optional helper / validation text rendered beneath the checkbox + label row. */\n helperText?: React.ReactNode;\n /**\n * Box size. `md` (default) is the form size; `sm` suits a dense list row and\n * `lg` a primary confirm. The tick and the helper-text indent follow it.\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n id,\n theme = 'primary',\n destructive = false,\n size = 'md',\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n value = 'on',\n name,\n required,\n label,\n helperText,\n ['aria-invalid']: ariaInvalid,\n ['aria-describedby']: ariaDescribedBy,\n onClick,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = React.useState<CheckedState>(defaultChecked);\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n const helperId = helperText ? `${checkboxId}-helper` : undefined;\n const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;\n\n const dataState =\n checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n\n const toggle = () => {\n if (disabled) return;\n const next = checked === 'indeterminate' ? true : !checked;\n if (!isControlled) {\n setInternalChecked(next);\n }\n onCheckedChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n toggle();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (e.key === ' ') {\n e.preventDefault();\n toggle();\n }\n };\n\n const button = (\n <button\n ref={ref}\n id={checkboxId}\n type={'button'}\n role={'checkbox'}\n aria-checked={checked === 'indeterminate' ? 'mixed' : checked}\n aria-invalid={destructive ? 'true' : ariaInvalid}\n aria-required={required}\n aria-describedby={describedBy}\n data-slot={'checkbox'}\n data-state={dataState}\n disabled={disabled}\n className={cn(\n s.checkbox,\n s[`theme-${theme}`],\n size !== 'md' && s[`size-${size}`],\n className,\n )}\n {...props}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {checked ? (\n <span data-slot={'checkbox-indicator'} className={s.indicator}>\n <CheckIcon className={s.icon} />\n </span>\n ) : null}\n </button>\n );\n\n // Match native <input type='checkbox'> form-submission semantics: an\n // unchecked (or indeterminate) box is omitted entirely from the submission,\n // not present-but-empty. Only emit the hidden input when actually checked.\n const hiddenInput =\n name && checked === true ? <input type={'hidden'} name={name} value={value} /> : null;\n\n if (label === undefined && helperText === undefined) {\n return (\n <>\n {button}\n {hiddenInput}\n </>\n );\n }\n\n return (\n <Column data-slot={'checkbox-field'} gap={1}>\n <Row data-slot={'checkbox-row'} gap={1} align={'center'}>\n {button}\n {label !== undefined ? (\n <Label\n data-slot={'checkbox-label'}\n htmlFor={checkboxId}\n className={cn(s['label'], disabled && s['label--disabled'])}\n theme={destructive ? 'destructive' : 'inherit'}\n >\n {label}\n </Label>\n ) : null}\n </Row>\n {helperText !== undefined ? (\n <Typography\n data-slot={'checkbox-helper-text'}\n id={helperId}\n variant={'caption'}\n theme={destructive ? 'destructive' : 'muted'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n ) : null}\n {hiddenInput}\n </Column>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../src/form/Checkbox/checkbox.tsx"],"sourcesContent":["import { Label } from '@constellation/form/Label';\nimport { Column, Row } from '@constellation/layout';\nimport { type FormTheme } from '@constellation/types';\nimport { Typography } from '@constellation/typography/Typography';\nimport cn from 'clsx';\nimport { CheckIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './checkbox.module.scss';\n\ntype CheckedState = boolean | 'indeterminate';\n\nexport interface CheckboxProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n 'onChange' | 'value' | 'defaultValue' | 'defaultChecked'\n> {\n theme?: FormTheme;\n destructive?: boolean;\n checked?: CheckedState;\n defaultChecked?: CheckedState;\n onCheckedChange?: (checked: CheckedState) => void;\n value?: string;\n name?: string;\n required?: boolean;\n /** Optional inline label rendered to the right of the checkbox and associated via htmlFor. */\n label?: React.ReactNode;\n /** Optional helper / validation text rendered beneath the checkbox + label row. */\n helperText?: React.ReactNode;\n /**\n * Box size. `md` (default) is the form size; `sm` suits a dense list row and\n * `lg` a primary confirm. The tick and the helper-text indent follow it.\n */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Checkbox = React.forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n id,\n theme = 'primary',\n destructive = false,\n size = 'md',\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled,\n value = 'on',\n name,\n required,\n label,\n helperText,\n ['aria-invalid']: ariaInvalid,\n ['aria-describedby']: ariaDescribedBy,\n onClick,\n onKeyDown,\n ...props\n },\n ref,\n ) => {\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = React.useState<CheckedState>(defaultChecked);\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const generatedId = React.useId();\n const checkboxId = id ?? generatedId;\n const helperId = helperText ? `${checkboxId}-helper` : undefined;\n const describedBy = [ariaDescribedBy, helperId].filter(Boolean).join(' ') || undefined;\n\n const dataState =\n checked === 'indeterminate' ? 'indeterminate' : checked ? 'checked' : 'unchecked';\n\n const toggle = () => {\n if (disabled) return;\n const next = checked === 'indeterminate' ? true : !checked;\n if (!isControlled) {\n setInternalChecked(next);\n }\n onCheckedChange?.(next);\n };\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n toggle();\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n if (e.defaultPrevented) return;\n if (e.key === ' ') {\n e.preventDefault();\n toggle();\n }\n };\n\n const button = (\n <button\n ref={ref}\n id={checkboxId}\n type={'button'}\n role={'checkbox'}\n aria-checked={checked === 'indeterminate' ? 'mixed' : checked}\n aria-invalid={destructive ? 'true' : ariaInvalid}\n aria-required={required}\n aria-describedby={describedBy}\n data-slot={'checkbox'}\n data-state={dataState}\n disabled={disabled}\n className={cn(\n s.checkbox,\n s[`theme-${theme}`],\n size !== 'md' && s[`size-${size}`],\n className,\n )}\n {...props}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n >\n {checked ? (\n <span data-slot={'checkbox-indicator'} className={s.indicator}>\n <CheckIcon className={s.icon} />\n </span>\n ) : null}\n </button>\n );\n\n // Match native <input type='checkbox'> form-submission semantics: an\n // unchecked (or indeterminate) box is omitted entirely from the submission,\n // not present-but-empty. Only emit the hidden input when actually checked.\n const hiddenInput =\n name && checked === true ? <input type={'hidden'} name={name} value={value} /> : null;\n\n if (label === undefined && helperText === undefined) {\n return (\n <>\n {button}\n {hiddenInput}\n </>\n );\n }\n\n return (\n <Column data-slot={'checkbox-field'} gap={1}>\n <Row data-slot={'checkbox-row'} gap={1} align={'center'}>\n {button}\n {label !== undefined ? (\n <Label\n data-slot={'checkbox-label'}\n htmlFor={checkboxId}\n className={cn(s['label'], disabled && s['label--disabled'])}\n theme={destructive ? 'destructive' : 'inherit'}\n >\n {label}\n </Label>\n ) : null}\n </Row>\n {helperText !== undefined ? (\n <Typography\n data-slot={'checkbox-helper-text'}\n id={helperId}\n variant={'caption'}\n theme={destructive ? 'destructive' : 'muted'}\n className={s['helper-text']}\n >\n {helperText}\n </Typography>\n ) : null}\n {hiddenInput}\n </Column>\n );\n },\n);\nCheckbox.displayName = 'Checkbox';\n\nexport { Checkbox };\n"],"names":["_jsx","_jsxs","_Fragment"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type DatePickerProps } from '@constellation/types';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
declare function DatePicker({ value: valueProp, defaultValue, onChange, label, helperText, error, disabled, sizeVariant, placeholder, min, max, required, id, className, name, }: DatePickerProps): React.JSX.Element;
|
|
3
|
+
declare function DatePicker({ value: valueProp, defaultValue, onChange, label, helperText, error, appearance, disabled, sizeVariant, placeholder, min, max, required, id, className, name, }: DatePickerProps): React.JSX.Element;
|
|
4
4
|
export { DatePicker };
|
|
5
5
|
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/form/DatePicker/date-picker.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,iBAAS,UAAU,CAAC,EAClB,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAa,EACb,QAAgB,EAChB,WAAW,EACX,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAgB,EAChB,EAAE,EACF,SAAS,EACT,IAAI,GACL,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../src/form/DatePicker/date-picker.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAK5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,iBAAS,UAAU,CAAC,EAClB,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,UAAU,EACV,KAAa,EACb,UAAU,EACV,QAAgB,EAChB,WAAW,EACX,WAAW,EACX,GAAG,EACH,GAAG,EACH,QAAgB,EAChB,EAAE,EACF,SAAS,EACT,IAAI,GACL,EAAE,eAAe,qBA0cjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|