@kismet-ux/constellation 1.14.0 → 1.15.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 (58) hide show
  1. package/README.md +227 -208
  2. package/dist/form/Checkbox/checkbox.js +4 -57
  3. package/dist/form/Checkbox/checkbox.js.map +1 -1
  4. package/dist/form/DatePicker/date-picker.d.ts +1 -1
  5. package/dist/form/DatePicker/date-picker.d.ts.map +1 -1
  6. package/dist/form/DatePicker/date-picker.js +7 -59
  7. package/dist/form/DatePicker/date-picker.js.map +1 -1
  8. package/dist/form/Input/input.css +42 -6
  9. package/dist/form/Input/input.d.ts +6 -0
  10. package/dist/form/Input/input.d.ts.map +1 -1
  11. package/dist/form/Input/input.js +3 -3
  12. package/dist/form/Input/input.js.map +1 -1
  13. package/dist/form/Input/input.module.scss.js +1 -1
  14. package/dist/form/Select/select.d.ts.map +1 -1
  15. package/dist/form/Select/select.js +5 -5
  16. package/dist/form/Select/select.js.map +1 -1
  17. package/dist/form.d.ts +2 -2
  18. package/dist/index-B0UMInYo.d.ts +647 -0
  19. package/dist/index-B828Nf0P.d.ts +200 -0
  20. package/dist/index-BPKtGvrM.d.ts +200 -0
  21. package/dist/index-BdpiAK5-.d.ts +354 -0
  22. package/dist/index-ByI9bvw8.d.ts +647 -0
  23. package/dist/index-C7SAfZfl.d.ts +647 -0
  24. package/dist/index-Cq8JgMRD.d.ts +354 -0
  25. package/dist/index-D8p7TX9C.d.ts +200 -0
  26. package/dist/index-DyDvelCa.d.ts +354 -0
  27. package/dist/index.d.ts +8 -8
  28. package/dist/index.js +29 -29
  29. package/dist/input-BHmlHvYR.d.ts +58 -0
  30. package/dist/layout/AppSidebarHeader/app-sidebar-header.js +1 -31
  31. package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
  32. package/dist/layout.d.ts +3 -3
  33. package/dist/navigation/NavUser/nav-user.js +2 -2
  34. package/dist/navigation/Router/router-context.d.ts +13 -5
  35. package/dist/navigation/Router/router-context.d.ts.map +1 -1
  36. package/dist/navigation/Router/router-context.js +22 -5
  37. package/dist/navigation/Router/router-context.js.map +1 -1
  38. package/dist/navigation/Sheet/sheet.js +3 -30
  39. package/dist/navigation/Sheet/sheet.js.map +1 -1
  40. package/dist/navigation.d.ts +15 -7
  41. package/dist/settings/AppearanceTabs/appearance-tabs.js +1 -28
  42. package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
  43. package/dist/tooltip-Cw8p0qeV.d.ts +46 -0
  44. package/dist/types/form/date-picker.d.ts +2 -0
  45. package/dist/types/form/date-picker.d.ts.map +1 -1
  46. package/dist/types/form/select.d.ts +2 -0
  47. package/dist/types/form/select.d.ts.map +1 -1
  48. package/dist/types/form/theme.d.ts +9 -0
  49. package/dist/types/form/theme.d.ts.map +1 -1
  50. package/dist/typography/Typography/typography.css +21 -1
  51. package/dist/ui/Button/button-variants.d.ts +1 -1
  52. package/dist/ui/Button/button.css +1 -1
  53. package/dist/ui/Icon/icon-variants.d.ts +1 -1
  54. package/dist/ui/SwipeRow/swipe-row-variants.js.map +1 -1
  55. package/dist/ui/SwipeRow/swipe-row.js.map +1 -1
  56. package/dist/ui/Toggle/toggle-variants.d.ts +1 -1
  57. package/dist/ui.d.ts +2 -2
  58. package/package.json +1 -1
package/README.md CHANGED
@@ -1,208 +1,227 @@
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
- ### 3. Brand
96
-
97
- `<Logo />` is a geometric mark plus a **text** wordmark — no baked-in SVG paths:
98
-
99
- ```tsx
100
- <Logo name={'Acme'} /> {/* rename */}
101
- <Logo name={'Acme'} mark={<YourMark />} /> {/* or replace the glyph */}
102
- <Logo name={null} /> {/* mark only */}
103
- ```
104
-
105
- Colors come from `--logo-mark` and `--logo-fill`. Inside a collapsed sidebar the wordmark folds away and the mark holds its place.
106
-
107
- ### 4. Space, radius, elevation
108
-
109
- - `--size-1` … `--size-12`, where `--size-N` is N ÷ 2 rem. No magic numbers.
110
- - `--radius-xs|sm|md|lg|xl|2xl|full`.
111
- - 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.
112
-
113
- ---
114
-
115
- ## Routing
116
-
117
- 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.
118
-
119
- Wrap the app once and every link, breadcrumb, sidebar item and menu action upgrades together:
120
-
121
- ```tsx
122
- import { RouterProvider } from '@kismet-ux/constellation/navigation';
123
- import { Link, useNavigate } from 'react-router-dom';
124
-
125
- <RouterProvider linkComponent={Link} navigate={useNavigate()}>
126
- <App />
127
- </RouterProvider>
128
- ```
129
-
130
- Works the same with Next, TanStack Router, or anything else that exposes a link component and an imperative navigate.
131
-
132
- Components take data, never globals: `AppShell` takes `defaultSidebarOpen`, `NavUser` takes `user` plus `onSettings` / `onLogout`.
133
-
134
- ---
135
-
136
- ## Layout of the repo
137
-
138
- ```
139
- src/
140
- styles/ ← _palette.scss + _theme.scss: the theming seam
141
- ui/ Button, Dialog, Table, Chip, Alert, StatCard, …
142
- form/ Input, Select, Checkbox, DatePicker, Label
143
- layout/ AppShell, Sidebar, Container, Row, Column, Grid
144
- navigation/ Link, RouterProvider, Breadcrumbs, DropdownMenu, Sheet
145
- typography/ Typography, Heading, TruncatedText
146
- settings/ appearance switchers
147
- user/ UserInfo, UserMenuContent
148
- brand/ Logo
149
- hooks/ useAppearance, useBreakpoint, useAlerts, useTableSorting, …
150
- dev/ the preview harness you see at localhost:5173
151
- ```
152
-
153
- Each component is a folder: `component-name.tsx` + `component-name.module.scss` + `index.ts`.
154
-
155
- ---
156
-
157
- ## Developing it against a real app
158
-
159
- Publishing a version for every small change is how versioning goes off the rails. Instead, point a consuming app at a sibling checkout:
160
-
161
- ```
162
- projects/
163
- kismet-constellation/ ← this repo
164
- your-app/
165
- ```
166
-
167
- In the app's `vite.config.js`:
168
-
169
- ```js
170
- import constellationLocal from '@kismet-ux/constellation/vite';
171
-
172
- export default defineConfig({
173
- plugins: [constellationLocal({ root: '../kismet-constellation' }), react()],
174
- });
175
- ```
176
-
177
- …and in its `.env.local`:
178
-
179
- ```
180
- CONSTELLATION_LOCAL=true
181
- ```
182
-
183
- 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:
184
-
185
- ```bash
186
- npx rollup -c --watch
187
- ```
188
-
189
- `__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.
190
-
191
- ⚠️ **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.
192
-
193
- ## Commands
194
-
195
- ```bash
196
- npm run dev # dev harness
197
- npm run build # bundle + type declarations → dist/
198
- npm run typecheck # tsc --noEmit
199
- npm run lint # eslint --fix
200
- npm run stylelint # alphabetical SCSS property order
201
- npm run format # prettier
202
- ```
203
-
204
- ---
205
-
206
- ## Notes for agents
207
-
208
- `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
+ # 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} linkProp={'to'} navigate={useNavigate()}>
137
+ <App />
138
+ </RouterProvider>
139
+ ```
140
+
141
+ Constellation hands every link its destination as `href`. React Router and TanStack Router read `to` instead, so name that prop with `linkProp={'to'}`; Next and Inertia read `href` and need nothing extra:
142
+
143
+ ```tsx
144
+ <RouterProvider linkComponent={NextLink} navigate={router.push}>
145
+ <App />
146
+ </RouterProvider>
147
+ ```
148
+
149
+ Anything else that exposes a link component and an imperative navigate works the same way.
150
+
151
+ Components take data, never globals: `AppShell` takes `defaultSidebarOpen`, `NavUser` takes `user` plus `onSettings` / `onLogout`.
152
+
153
+ ---
154
+
155
+ ## Layout of the repo
156
+
157
+ ```
158
+ src/
159
+ styles/ ← _palette.scss + _theme.scss: the theming seam
160
+ ui/ Button, Dialog, Table, Chip, Alert, StatCard, …
161
+ form/ Input, Select, Checkbox, DatePicker, Label
162
+ layout/ AppShell, Sidebar, Container, Row, Column, Grid
163
+ navigation/ Link, RouterProvider, Breadcrumbs, DropdownMenu, Sheet
164
+ typography/ Typography, Heading, TruncatedText
165
+ settings/ appearance switchers
166
+ user/ UserInfo, UserMenuContent
167
+ brand/ Logo
168
+ hooks/ useAppearance, useBreakpoint, useAlerts, useTableSorting, …
169
+ dev/ the preview harness you see at localhost:5173
170
+ ```
171
+
172
+ Each component is a folder: `component-name.tsx` + `component-name.module.scss` + `index.ts`.
173
+
174
+ ---
175
+
176
+ ## Developing it against a real app
177
+
178
+ Publishing a version for every small change is how versioning goes off the rails. Instead, point a consuming app at a sibling checkout:
179
+
180
+ ```
181
+ projects/
182
+ kismet-constellation/ ← this repo
183
+ your-app/
184
+ ```
185
+
186
+ In the app's `vite.config.js`:
187
+
188
+ ```js
189
+ import constellationLocal from '@kismet-ux/constellation/vite';
190
+
191
+ export default defineConfig({
192
+ plugins: [constellationLocal({ root: '../kismet-constellation' }), react()],
193
+ });
194
+ ```
195
+
196
+ …and in its `.env.local`:
197
+
198
+ ```
199
+ CONSTELLATION_LOCAL=true
200
+ ```
201
+
202
+ 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:
203
+
204
+ ```bash
205
+ npx rollup -c --watch
206
+ ```
207
+
208
+ `__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.
209
+
210
+ ⚠️ **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.
211
+
212
+ ## Commands
213
+
214
+ ```bash
215
+ npm run dev # dev harness
216
+ npm run build # bundle + type declarations → dist/
217
+ npm run typecheck # tsc --noEmit
218
+ npm run lint # eslint --fix
219
+ npm run stylelint # alphabetical SCSS property order
220
+ npm run format # prettier
221
+ ```
222
+
223
+ ---
224
+
225
+ ## Notes for agents
226
+
227
+ `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 '../../internal/slot.js';
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":"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"}
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,qBAocjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
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"}