@conscia-labs/design-system 0.2.0 → 0.3.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 +48 -0
- package/dist/{card-DqFHjLjm.d.ts → card-BFUHJgV-.d.ts} +3 -1
- package/dist/{chunk-5MGPU2JE.js → chunk-6VZDLHRF.js} +143 -25
- package/dist/chunk-6VZDLHRF.js.map +1 -0
- package/dist/{chunk-YHPZ5CQU.js → chunk-HLND6FZS.js} +89 -69
- package/dist/chunk-HLND6FZS.js.map +1 -0
- package/dist/{chunk-CU3OXBFI.js → chunk-VVTTFVCC.js} +37 -56
- package/dist/chunk-VVTTFVCC.js.map +1 -0
- package/dist/foundation.css +85 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +6 -4
- package/dist/patterns/index.d.ts +20 -4
- package/dist/patterns/index.js +4 -2
- package/dist/primitives/index.d.ts +2 -4
- package/dist/primitives/index.js +3 -3
- package/dist/standalone.css +1 -1
- package/dist/styles.css +85 -0
- package/package.json +1 -1
- package/dist/chunk-5MGPU2JE.js.map +0 -1
- package/dist/chunk-CU3OXBFI.js.map +0 -1
- package/dist/chunk-YHPZ5CQU.js.map +0 -1
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
CardHeader,
|
|
7
7
|
CardTitle,
|
|
8
8
|
Checkbox,
|
|
9
|
+
Input,
|
|
9
10
|
Select,
|
|
10
11
|
SelectContent,
|
|
11
12
|
SelectGroup,
|
|
@@ -18,7 +19,7 @@ import {
|
|
|
18
19
|
TableHead,
|
|
19
20
|
TableHeader,
|
|
20
21
|
TableRow
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-HLND6FZS.js";
|
|
22
23
|
import {
|
|
23
24
|
cn
|
|
24
25
|
} from "./chunk-JU5DQXFC.js";
|
|
@@ -155,34 +156,15 @@ function Badge({
|
|
|
155
156
|
return /* @__PURE__ */ jsx3("span", { "data-slot": "badge", className: cn(badgeVariants({ variant, className })), ...props });
|
|
156
157
|
}
|
|
157
158
|
|
|
158
|
-
// src/primitives/input.tsx
|
|
159
|
-
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
160
|
-
function Input({ className, type, ...props }) {
|
|
161
|
-
return /* @__PURE__ */ jsx4(
|
|
162
|
-
"input",
|
|
163
|
-
{
|
|
164
|
-
type,
|
|
165
|
-
"data-slot": "input",
|
|
166
|
-
className: cn(
|
|
167
|
-
"border-input bg-card flex h-[var(--ds-field-control-height)] w-full min-w-0 rounded-[var(--ds-field-control-radius)] border px-[var(--ds-field-control-padding-x)] py-2 text-base shadow-none transition-colors outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
168
|
-
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
169
|
-
"aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:ring-danger/40",
|
|
170
|
-
className
|
|
171
|
-
),
|
|
172
|
-
...props
|
|
173
|
-
}
|
|
174
|
-
);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
159
|
// src/primitives/switch.tsx
|
|
178
160
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
179
|
-
import { jsx as
|
|
161
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
180
162
|
function Switch({
|
|
181
163
|
className,
|
|
182
164
|
size = "default",
|
|
183
165
|
...props
|
|
184
166
|
}) {
|
|
185
|
-
return /* @__PURE__ */
|
|
167
|
+
return /* @__PURE__ */ jsx4(
|
|
186
168
|
SwitchPrimitive.Root,
|
|
187
169
|
{
|
|
188
170
|
"data-slot": "switch",
|
|
@@ -192,7 +174,7 @@ function Switch({
|
|
|
192
174
|
className
|
|
193
175
|
),
|
|
194
176
|
...props,
|
|
195
|
-
children: /* @__PURE__ */
|
|
177
|
+
children: /* @__PURE__ */ jsx4(
|
|
196
178
|
SwitchPrimitive.Thumb,
|
|
197
179
|
{
|
|
198
180
|
"data-slot": "switch-thumb",
|
|
@@ -204,9 +186,9 @@ function Switch({
|
|
|
204
186
|
}
|
|
205
187
|
|
|
206
188
|
// src/primitives/textarea.tsx
|
|
207
|
-
import { jsx as
|
|
189
|
+
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
208
190
|
function Textarea({ className, ...props }) {
|
|
209
|
-
return /* @__PURE__ */
|
|
191
|
+
return /* @__PURE__ */ jsx5(
|
|
210
192
|
"textarea",
|
|
211
193
|
{
|
|
212
194
|
"data-slot": "textarea",
|
|
@@ -217,13 +199,13 @@ function Textarea({ className, ...props }) {
|
|
|
217
199
|
}
|
|
218
200
|
|
|
219
201
|
// src/primitives/compat.tsx
|
|
220
|
-
import { jsx as
|
|
202
|
+
import { jsx as jsx6, jsxs } from "react/jsx-runtime";
|
|
221
203
|
var ConsciaButton = Button;
|
|
222
204
|
function ConsciaIconButton({
|
|
223
205
|
size = "icon",
|
|
224
206
|
...props
|
|
225
207
|
}) {
|
|
226
|
-
return /* @__PURE__ */
|
|
208
|
+
return /* @__PURE__ */ jsx6(Button, { size, ...props });
|
|
227
209
|
}
|
|
228
210
|
var ConsciaCard = Card;
|
|
229
211
|
var ConsciaCardContent = CardContent;
|
|
@@ -235,7 +217,7 @@ function ConsciaCardHeader({
|
|
|
235
217
|
...props
|
|
236
218
|
}) {
|
|
237
219
|
if (!actionRight) {
|
|
238
|
-
return /* @__PURE__ */
|
|
220
|
+
return /* @__PURE__ */ jsx6(CardHeader, { className, ...props, children });
|
|
239
221
|
}
|
|
240
222
|
return /* @__PURE__ */ jsxs(
|
|
241
223
|
CardHeader,
|
|
@@ -246,8 +228,8 @@ function ConsciaCardHeader({
|
|
|
246
228
|
),
|
|
247
229
|
...props,
|
|
248
230
|
children: [
|
|
249
|
-
/* @__PURE__ */
|
|
250
|
-
/* @__PURE__ */
|
|
231
|
+
/* @__PURE__ */ jsx6("div", { className: "grid gap-2", children }),
|
|
232
|
+
/* @__PURE__ */ jsx6("div", { className: "justify-self-end", children: actionRight })
|
|
251
233
|
]
|
|
252
234
|
}
|
|
253
235
|
);
|
|
@@ -271,12 +253,12 @@ var ConsciaTableHead = TableHead;
|
|
|
271
253
|
var ConsciaTableRow = TableRow;
|
|
272
254
|
|
|
273
255
|
// src/primitives/field.tsx
|
|
274
|
-
import { jsx as
|
|
256
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
275
257
|
function Field({
|
|
276
258
|
className,
|
|
277
259
|
...props
|
|
278
260
|
}) {
|
|
279
|
-
return /* @__PURE__ */
|
|
261
|
+
return /* @__PURE__ */ jsx7(
|
|
280
262
|
"div",
|
|
281
263
|
{
|
|
282
264
|
"data-slot": "field",
|
|
@@ -289,7 +271,7 @@ function FieldGroup({
|
|
|
289
271
|
className,
|
|
290
272
|
...props
|
|
291
273
|
}) {
|
|
292
|
-
return /* @__PURE__ */
|
|
274
|
+
return /* @__PURE__ */ jsx7(
|
|
293
275
|
"div",
|
|
294
276
|
{
|
|
295
277
|
"data-slot": "field-group",
|
|
@@ -302,7 +284,7 @@ function FieldLabel({
|
|
|
302
284
|
className,
|
|
303
285
|
...props
|
|
304
286
|
}) {
|
|
305
|
-
return /* @__PURE__ */
|
|
287
|
+
return /* @__PURE__ */ jsx7(
|
|
306
288
|
"label",
|
|
307
289
|
{
|
|
308
290
|
"data-slot": "field-label",
|
|
@@ -315,7 +297,7 @@ function FieldDescription({
|
|
|
315
297
|
className,
|
|
316
298
|
...props
|
|
317
299
|
}) {
|
|
318
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ jsx7(
|
|
319
301
|
"p",
|
|
320
302
|
{
|
|
321
303
|
"data-slot": "field-description",
|
|
@@ -328,7 +310,7 @@ function FieldError({
|
|
|
328
310
|
className,
|
|
329
311
|
...props
|
|
330
312
|
}) {
|
|
331
|
-
return /* @__PURE__ */
|
|
313
|
+
return /* @__PURE__ */ jsx7(
|
|
332
314
|
"p",
|
|
333
315
|
{
|
|
334
316
|
"data-slot": "field-error",
|
|
@@ -340,7 +322,7 @@ function FieldError({
|
|
|
340
322
|
|
|
341
323
|
// src/primitives/form-select.tsx
|
|
342
324
|
import * as React from "react";
|
|
343
|
-
import { jsx as
|
|
325
|
+
import { jsx as jsx8, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
344
326
|
var emptyValue = "__conscia_empty_select_value__";
|
|
345
327
|
function toSelectValue(value) {
|
|
346
328
|
if (value === void 0) {
|
|
@@ -376,7 +358,7 @@ function FormSelect({
|
|
|
376
358
|
}
|
|
377
359
|
onValueChange?.(actualValue);
|
|
378
360
|
}
|
|
379
|
-
return /* @__PURE__ */
|
|
361
|
+
return /* @__PURE__ */ jsx8("div", { className: cn("min-w-0", className), onClick, children: /* @__PURE__ */ jsxs2(
|
|
380
362
|
Select,
|
|
381
363
|
{
|
|
382
364
|
name,
|
|
@@ -385,8 +367,8 @@ function FormSelect({
|
|
|
385
367
|
disabled,
|
|
386
368
|
onValueChange: handleValueChange,
|
|
387
369
|
children: [
|
|
388
|
-
/* @__PURE__ */
|
|
389
|
-
/* @__PURE__ */
|
|
370
|
+
/* @__PURE__ */ jsx8(SelectTrigger, { id, "aria-label": ariaLabel, className: triggerClassName, children: /* @__PURE__ */ jsx8(SelectValue, { placeholder }) }),
|
|
371
|
+
/* @__PURE__ */ jsx8(SelectContent, { className: contentClassName, children: /* @__PURE__ */ jsx8(SelectGroup, { children: options.map((option) => /* @__PURE__ */ jsx8(
|
|
390
372
|
SelectItem,
|
|
391
373
|
{
|
|
392
374
|
value: toSelectValue(option.value) ?? emptyValue,
|
|
@@ -403,12 +385,12 @@ var ConsciaFormSelect = FormSelect;
|
|
|
403
385
|
|
|
404
386
|
// src/primitives/label.tsx
|
|
405
387
|
import * as LabelPrimitive from "@radix-ui/react-label";
|
|
406
|
-
import { jsx as
|
|
388
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
407
389
|
function Label({
|
|
408
390
|
className,
|
|
409
391
|
...props
|
|
410
392
|
}) {
|
|
411
|
-
return /* @__PURE__ */
|
|
393
|
+
return /* @__PURE__ */ jsx9(
|
|
412
394
|
LabelPrimitive.Root,
|
|
413
395
|
{
|
|
414
396
|
"data-slot": "label",
|
|
@@ -424,7 +406,7 @@ function Label({
|
|
|
424
406
|
// src/primitives/searchable-select.tsx
|
|
425
407
|
import * as React2 from "react";
|
|
426
408
|
import { Check, ChevronsUpDown, Search, X } from "lucide-react";
|
|
427
|
-
import { jsx as
|
|
409
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
428
410
|
function SearchableSelect({
|
|
429
411
|
id,
|
|
430
412
|
name,
|
|
@@ -521,10 +503,10 @@ function SearchableSelect({
|
|
|
521
503
|
}
|
|
522
504
|
}
|
|
523
505
|
return /* @__PURE__ */ jsxs3("div", { ref: rootRef, "data-slot": "searchable-select", className: cn("relative min-w-0", className), children: [
|
|
524
|
-
name ? /* @__PURE__ */
|
|
506
|
+
name ? /* @__PURE__ */ jsx10("input", { type: "hidden", name, value }) : null,
|
|
525
507
|
/* @__PURE__ */ jsxs3("div", { className: "relative", children: [
|
|
526
|
-
/* @__PURE__ */
|
|
527
|
-
/* @__PURE__ */
|
|
508
|
+
/* @__PURE__ */ jsx10(Search, { className: "pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground", "aria-hidden": "true" }),
|
|
509
|
+
/* @__PURE__ */ jsx10(
|
|
528
510
|
Input,
|
|
529
511
|
{
|
|
530
512
|
id,
|
|
@@ -558,7 +540,7 @@ function SearchableSelect({
|
|
|
558
540
|
onKeyDown
|
|
559
541
|
}
|
|
560
542
|
),
|
|
561
|
-
clearable && value ? /* @__PURE__ */
|
|
543
|
+
clearable && value ? /* @__PURE__ */ jsx10(
|
|
562
544
|
Button,
|
|
563
545
|
{
|
|
564
546
|
type: "button",
|
|
@@ -572,12 +554,12 @@ function SearchableSelect({
|
|
|
572
554
|
onValueChange("");
|
|
573
555
|
setSearch("");
|
|
574
556
|
},
|
|
575
|
-
children: /* @__PURE__ */
|
|
557
|
+
children: /* @__PURE__ */ jsx10(X, {})
|
|
576
558
|
}
|
|
577
559
|
) : null,
|
|
578
|
-
/* @__PURE__ */
|
|
560
|
+
/* @__PURE__ */ jsx10(ChevronsUpDown, { className: "pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground", "aria-hidden": "true" })
|
|
579
561
|
] }),
|
|
580
|
-
open ? /* @__PURE__ */
|
|
562
|
+
open ? /* @__PURE__ */ jsx10(
|
|
581
563
|
"div",
|
|
582
564
|
{
|
|
583
565
|
id: listboxId,
|
|
@@ -602,14 +584,14 @@ function SearchableSelect({
|
|
|
602
584
|
onClick: () => select(option),
|
|
603
585
|
children: [
|
|
604
586
|
/* @__PURE__ */ jsxs3("span", { className: "grid min-w-0 flex-1 gap-0.5", children: [
|
|
605
|
-
/* @__PURE__ */
|
|
606
|
-
option.description ? /* @__PURE__ */
|
|
587
|
+
/* @__PURE__ */ jsx10("span", { className: "truncate font-medium", children: option.label }),
|
|
588
|
+
option.description ? /* @__PURE__ */ jsx10("span", { className: "truncate text-[length:var(--ds-menu-label-size)] text-muted-foreground", children: option.description }) : null
|
|
607
589
|
] }),
|
|
608
|
-
option.value === value ? /* @__PURE__ */
|
|
590
|
+
option.value === value ? /* @__PURE__ */ jsx10(Check, { className: "size-4 shrink-0 text-success-foreground", "aria-hidden": "true" }) : null
|
|
609
591
|
]
|
|
610
592
|
},
|
|
611
593
|
option.value
|
|
612
|
-
)) : /* @__PURE__ */
|
|
594
|
+
)) : /* @__PURE__ */ jsx10("p", { className: "px-3 py-6 text-center text-[length:var(--ds-menu-item-size)] text-muted-foreground", children: emptyMessage })
|
|
613
595
|
}
|
|
614
596
|
) : null
|
|
615
597
|
] });
|
|
@@ -625,7 +607,6 @@ export {
|
|
|
625
607
|
AvatarFallback,
|
|
626
608
|
badgeVariants,
|
|
627
609
|
Badge,
|
|
628
|
-
Input,
|
|
629
610
|
Switch,
|
|
630
611
|
Textarea,
|
|
631
612
|
ConsciaButton,
|
|
@@ -661,4 +642,4 @@ export {
|
|
|
661
642
|
Label,
|
|
662
643
|
SearchableSelect
|
|
663
644
|
};
|
|
664
|
-
//# sourceMappingURL=chunk-
|
|
645
|
+
//# sourceMappingURL=chunk-VVTTFVCC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives/alert.tsx","../src/primitives/avatar.tsx","../src/primitives/badge.tsx","../src/primitives/switch.tsx","../src/primitives/textarea.tsx","../src/primitives/compat.tsx","../src/primitives/field.tsx","../src/primitives/form-select.tsx","../src/primitives/label.tsx","../src/primitives/searchable-select.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"./utils\";\n\nconst alertVariants = cva(\n \"relative grid w-full grid-cols-[auto_1fr] items-start gap-x-3 rounded-[var(--ds-radius-surface)] border px-4 py-3.5 text-sm [&>svg]:mt-0.5 [&>svg]:size-5\",\n {\n variants: {\n variant: {\n default: \"border-border-default bg-card text-foreground\",\n information:\n \"border-information-border bg-information-background text-information-foreground\",\n success:\n \"border-success-border bg-success-background text-success-foreground\",\n warning:\n \"border-warning-border bg-warning-background text-warning-foreground\",\n danger: \"border-danger-border bg-danger-background text-danger-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\"font-medium leading-5\", className)}\n {...props}\n />\n );\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\"col-start-2 mt-0.5 text-sm leading-5 opacity-80\", className)}\n {...props}\n />\n );\n}\n\nexport { Alert, AlertDescription, AlertTitle, alertVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from \"./utils\";\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\"relative flex size-8 shrink-0 overflow-hidden rounded-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\"flex size-full items-center justify-center rounded-full bg-surface-muted text-xs font-medium text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"./utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-1.5 py-0.5 text-[var(--ds-metadata)] font-medium leading-4 transition-colors\",\n {\n variants: {\n variant: {\n default: \"border-primary bg-primary text-primary-foreground\",\n accent: \"border-selection-border bg-selection-background text-selection-foreground\",\n secondary: \"border-neutral-border bg-neutral-background text-neutral-foreground\",\n neutral: \"border-neutral-border bg-neutral-background text-neutral-foreground\",\n outline: \"border-border-default text-foreground\",\n information: \"border-information-border bg-information-background text-information-foreground\",\n info: \"border-information-border bg-information-background text-information-foreground\",\n success: \"border-success-border bg-success-background text-success-foreground\",\n warning: \"border-warning-border bg-warning-background text-warning-foreground\",\n danger: \"border-danger-border bg-danger-background text-danger-foreground\",\n destructive: \"border-danger-border bg-danger-background text-danger-foreground\"\n }\n },\n defaultVariants: {\n variant: \"neutral\"\n }\n },\n);\n\nfunction Badge({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return <span data-slot=\"badge\" className={cn(badgeVariants({ variant, className }))} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\n\nimport { cn } from \"./utils\";\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\";\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80\",\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\"min-h-28 w-full rounded-[var(--ds-field-control-radius)] border border-input bg-card px-[var(--ds-field-control-padding-x)] py-3 text-sm outline-none transition-colors placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50\", className)}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import * as React from \"react\";\n\nimport { Button } from \"./button\";\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"./card\";\nimport { Checkbox } from \"./checkbox\";\nimport { Input } from \"./input\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./select\";\nimport { Switch } from \"./switch\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./table\";\nimport { Textarea } from \"./textarea\";\nimport { cn } from \"./utils\";\n\n/**\n * Temporary Admin UI migration aliases. New product code should import the\n * clean primitive names from @conscia-labs/design-system.\n */\nconst ConsciaButton = Button;\n\nfunction ConsciaIconButton({\n size = \"icon\",\n ...props\n}: React.ComponentProps<typeof Button>) {\n return <Button size={size} {...props} />;\n}\n\nconst ConsciaCard = Card;\nconst ConsciaCardContent = CardContent;\nconst ConsciaCardDescription = CardDescription;\n\nfunction ConsciaCardHeader({\n actionRight,\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CardHeader> & {\n actionRight?: React.ReactNode;\n}) {\n if (!actionRight) {\n return (\n <CardHeader className={className} {...props}>\n {children}\n </CardHeader>\n );\n }\n\n return (\n <CardHeader\n className={cn(\n \"grid grid-cols-[minmax(0,1fr)_auto] items-start gap-4\",\n className,\n )}\n {...props}\n >\n <div className=\"grid gap-2\">{children}</div>\n <div className=\"justify-self-end\">{actionRight}</div>\n </CardHeader>\n );\n}\n\nconst ConsciaCardTitle = CardTitle;\nconst ConsciaCheckbox = Checkbox;\nconst ConsciaInput = Input;\nconst ConsciaSwitch = Switch;\nconst ConsciaTextarea = Textarea;\nconst ConsciaSelect = Select;\nconst ConsciaSelectContent = SelectContent;\nconst ConsciaSelectGroup = SelectGroup;\nconst ConsciaSelectItem = SelectItem;\nconst ConsciaSelectTrigger = SelectTrigger;\nconst ConsciaSelectValue = SelectValue;\nconst ConsciaTable = Table;\nconst ConsciaTableBody = TableBody;\nconst ConsciaTableCell = TableCell;\nconst ConsciaTableHeader = TableHeader;\nconst ConsciaTableHead = TableHead;\nconst ConsciaTableRow = TableRow;\n\nexport {\n ConsciaButton,\n ConsciaCard,\n ConsciaCardContent,\n ConsciaCardDescription,\n ConsciaCardHeader,\n ConsciaCardTitle,\n ConsciaCheckbox,\n ConsciaIconButton,\n ConsciaInput,\n ConsciaSwitch,\n ConsciaTextarea,\n ConsciaSelect,\n ConsciaSelectContent,\n ConsciaSelectGroup,\n ConsciaSelectItem,\n ConsciaSelectTrigger,\n ConsciaSelectValue,\n ConsciaTable,\n ConsciaTableBody,\n ConsciaTableCell,\n ConsciaTableHeader,\n ConsciaTableHead,\n ConsciaTableRow,\n};\n","import * as React from \"react\";\n\nimport { cn } from \"./utils\";\n\nfunction Field({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field\"\n className={cn(\"grid gap-[var(--ds-field-label-gap)]\", className)}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\"grid gap-[var(--ds-field-gap)]\", className)}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"field-label\"\n className={cn(\"text-[length:var(--ds-field-label-size)] font-medium leading-[var(--ds-field-label-line-height)] text-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\"mt-[var(--ds-field-message-gap)] text-[var(--ds-metadata)] text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction FieldError({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"field-error\"\n className={cn(\"mt-[var(--ds-field-message-gap)] text-[var(--ds-metadata)] font-medium text-danger-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport { Field, FieldDescription, FieldError, FieldGroup, FieldLabel };\n","\"use client\";\n\nimport * as React from \"react\";\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"./select\";\nimport { cn } from \"./utils\";\n\ntype FormSelectOption = {\n value: string;\n label: React.ReactNode;\n disabled?: boolean;\n};\n\ntype FormSelectProps = {\n id?: string;\n name?: string;\n value?: string;\n defaultValue?: string;\n required?: boolean;\n disabled?: boolean;\n placeholder?: string;\n options: FormSelectOption[];\n className?: string;\n triggerClassName?: string;\n contentClassName?: string;\n onValueChange?: (value: string) => void;\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n \"aria-label\"?: string;\n};\n\nconst emptyValue = \"__conscia_empty_select_value__\";\n\nfunction toSelectValue(value: string | undefined) {\n if (value === undefined) {\n return undefined;\n }\n\n return value === \"\" ? emptyValue : value;\n}\n\nfunction fromSelectValue(value: string) {\n return value === emptyValue ? \"\" : value;\n}\n\nfunction FormSelect({\n name,\n id,\n value,\n defaultValue,\n required,\n disabled,\n placeholder,\n options,\n className,\n triggerClassName,\n contentClassName,\n onValueChange,\n onClick,\n \"aria-label\": ariaLabel,\n}: FormSelectProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue ?? \"\");\n const currentValue = value ?? internalValue;\n\n function handleValueChange(nextValue: string) {\n const actualValue = fromSelectValue(nextValue);\n\n if (value === undefined) {\n setInternalValue(actualValue);\n }\n\n onValueChange?.(actualValue);\n }\n\n return (\n <div className={cn(\"min-w-0\", className)} onClick={onClick}>\n <Select\n name={name}\n value={toSelectValue(currentValue)}\n required={required}\n disabled={disabled}\n onValueChange={handleValueChange}\n >\n <SelectTrigger id={id} aria-label={ariaLabel} className={triggerClassName}>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent className={contentClassName}>\n <SelectGroup>\n {options.map((option) => (\n <SelectItem\n key={option.value}\n value={toSelectValue(option.value) ?? emptyValue}\n disabled={option.disabled}\n >\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n );\n}\n\nconst ConsciaFormSelect = FormSelect;\n\nexport { ConsciaFormSelect, FormSelect };\nexport type { FormSelectOption, FormSelectProps };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\nimport { cn } from \"./utils\";\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-[length:var(--ds-field-label-size)] font-medium leading-[var(--ds-field-label-line-height)] text-foreground select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronsUpDown, Search, X } from \"lucide-react\";\n\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { cn } from \"./utils\";\n\ntype SearchableSelectOption = {\n value: string;\n label: string;\n description?: string;\n keywords?: string[];\n disabled?: boolean;\n};\n\ntype SearchableSelectProps = {\n id?: string;\n name?: string;\n value?: string;\n options: SearchableSelectOption[];\n onValueChange: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n emptyMessage?: string;\n disabled?: boolean;\n clearable?: boolean;\n clearLabel?: string;\n optionsLabel?: string;\n className?: string;\n \"aria-label\"?: string;\n};\n\nfunction SearchableSelect({\n id,\n name,\n value = \"\",\n options,\n onValueChange,\n placeholder = \"Select an option\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No matching options.\",\n disabled = false,\n clearable = false,\n clearLabel = \"Clear selection\",\n optionsLabel,\n className,\n \"aria-label\": ariaLabel,\n}: SearchableSelectProps) {\n const generatedId = React.useId();\n const listboxId = `${id ?? generatedId}-listbox`;\n const rootRef = React.useRef<HTMLDivElement>(null);\n const activeOptionRef = React.useRef<HTMLButtonElement>(null);\n const [open, setOpen] = React.useState(false);\n const [search, setSearch] = React.useState(\"\");\n const [activeIndex, setActiveIndex] = React.useState(0);\n const selected = options.find((option) => option.value === value);\n const normalizedSearch = search.trim().toLowerCase();\n const filteredOptions = normalizedSearch\n ? options.filter((option) =>\n [option.label, option.description, ...(option.keywords ?? [])]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase()\n .includes(normalizedSearch),\n )\n : options;\n const enabledIndexes = filteredOptions.reduce<number[]>((indexes, option, index) => {\n if (!option.disabled) {\n indexes.push(index);\n }\n\n return indexes;\n }, []);\n const resolvedActiveIndex = enabledIndexes.includes(activeIndex)\n ? activeIndex\n : (enabledIndexes[0] ?? -1);\n\n React.useEffect(() => {\n if (!open) {\n return;\n }\n\n function closeWhenOutside(event: PointerEvent) {\n if (!rootRef.current?.contains(event.target as Node)) {\n setOpen(false);\n setSearch(\"\");\n }\n }\n document.addEventListener(\"pointerdown\", closeWhenOutside);\n return () => document.removeEventListener(\"pointerdown\", closeWhenOutside);\n }, [open]);\n\n React.useEffect(() => {\n if (open) {\n activeOptionRef.current?.scrollIntoView({ block: \"nearest\" });\n }\n }, [open, resolvedActiveIndex]);\n\n function select(option: SearchableSelectOption) {\n if (option.disabled) {\n return;\n }\n\n onValueChange(option.value);\n setSearch(\"\");\n setOpen(false);\n }\n\n function onKeyDown(event: React.KeyboardEvent<HTMLInputElement>) {\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n setOpen(true);\n setActiveIndex((current) => {\n const position = enabledIndexes.indexOf(current);\n return enabledIndexes[Math.min(enabledIndexes.length - 1, position + 1)] ?? -1;\n });\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault();\n setOpen(true);\n setActiveIndex((current) => {\n const position = enabledIndexes.indexOf(current);\n return enabledIndexes[Math.max(0, position === -1 ? 0 : position - 1)] ?? -1;\n });\n } else if (event.key === \"Home\") {\n event.preventDefault();\n setOpen(true);\n setActiveIndex(enabledIndexes[0] ?? -1);\n } else if (event.key === \"End\") {\n event.preventDefault();\n setOpen(true);\n setActiveIndex(enabledIndexes.at(-1) ?? -1);\n } else if (event.key === \"Enter\" && open && filteredOptions[resolvedActiveIndex]) {\n event.preventDefault();\n select(filteredOptions[resolvedActiveIndex]);\n } else if (event.key === \"Escape\") {\n setOpen(false);\n setSearch(\"\");\n } else if (event.key === \"Tab\") {\n setOpen(false);\n setSearch(\"\");\n }\n }\n\n return (\n <div ref={rootRef} data-slot=\"searchable-select\" className={cn(\"relative min-w-0\", className)}>\n {name ? <input type=\"hidden\" name={name} value={value} /> : null}\n <div className=\"relative\">\n <Search className=\"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" aria-hidden=\"true\" />\n <Input\n id={id}\n role=\"combobox\"\n aria-label={ariaLabel}\n aria-autocomplete=\"list\"\n aria-expanded={open}\n aria-controls={open ? listboxId : undefined}\n aria-activedescendant={open && filteredOptions[resolvedActiveIndex] ? `${listboxId}-${resolvedActiveIndex}` : undefined}\n autoComplete=\"off\"\n className=\"px-9\"\n disabled={disabled}\n placeholder={open ? searchPlaceholder : placeholder}\n value={open ? search : selected?.label ?? \"\"}\n onFocus={(event) => {\n setOpen(true);\n setSearch(\"\");\n event.currentTarget.select();\n }}\n onClick={() => {\n if (!open) {\n setOpen(true);\n setSearch(\"\");\n }\n }}\n onChange={(event) => {\n setSearch(event.target.value);\n setOpen(true);\n setActiveIndex(0);\n }}\n onKeyDown={onKeyDown}\n />\n {clearable && value ? (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n disabled={disabled}\n className=\"absolute right-8 top-1/2 -translate-y-1/2\"\n aria-label={clearLabel}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n onValueChange(\"\");\n setSearch(\"\");\n }}\n >\n <X />\n </Button>\n ) : null}\n <ChevronsUpDown className=\"pointer-events-none absolute right-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground\" aria-hidden=\"true\" />\n </div>\n\n {open ? (\n <div\n id={listboxId}\n role=\"listbox\"\n aria-label={optionsLabel ?? (ariaLabel ? `${ariaLabel} options` : \"Options\")}\n className=\"absolute z-50 mt-1 max-h-72 w-full overflow-y-auto rounded-md border border-border-subtle bg-popover p-1 text-popover-foreground shadow-md\"\n >\n {filteredOptions.length ? filteredOptions.map((option, index) => (\n <button\n key={option.value}\n id={`${listboxId}-${index}`}\n type=\"button\"\n role=\"option\"\n aria-selected={option.value === value}\n aria-disabled={option.disabled || undefined}\n disabled={option.disabled}\n tabIndex={-1}\n ref={index === resolvedActiveIndex ? activeOptionRef : undefined}\n data-active={index === resolvedActiveIndex}\n className=\"flex w-full items-center gap-3 rounded-sm px-3 py-2 text-left text-[length:var(--ds-menu-item-size)] outline-none hover:bg-surface-muted focus-visible:bg-surface-muted data-[active=true]:bg-surface-muted disabled:pointer-events-none disabled:opacity-50\"\n onMouseDown={(event) => event.preventDefault()}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => select(option)}\n >\n <span className=\"grid min-w-0 flex-1 gap-0.5\">\n <span className=\"truncate font-medium\">{option.label}</span>\n {option.description ? <span className=\"truncate text-[length:var(--ds-menu-label-size)] text-muted-foreground\">{option.description}</span> : null}\n </span>\n {option.value === value ? <Check className=\"size-4 shrink-0 text-success-foreground\" aria-hidden=\"true\" /> : null}\n </button>\n )) : <p className=\"px-3 py-6 text-center text-[length:var(--ds-menu-item-size)] text-muted-foreground\">{emptyMessage}</p>}\n </div>\n ) : null}\n </div>\n );\n}\n\nexport { SearchableSelect };\nexport type { SearchableSelectOption, SearchableSelectProps };\n"],"mappings":"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","names":["jsx","cva","jsx","cva","jsx","jsx","jsx","jsx","jsx","jsxs","jsx","React","jsx","jsxs"]}
|
package/dist/foundation.css
CHANGED
|
@@ -117,6 +117,24 @@
|
|
|
117
117
|
--sidebar-active-foreground: #ffffff;
|
|
118
118
|
--sidebar-active-indicator: #7f8ae8;
|
|
119
119
|
--sidebar-border: rgb(255 255 255 / 8%);
|
|
120
|
+
/*
|
|
121
|
+
* Sidebar semantics intentionally sit on top of the existing palette. The
|
|
122
|
+
* legacy aliases above remain the compatibility surface for consumers that
|
|
123
|
+
* still use bg-sidebar and text-sidebar-foreground.
|
|
124
|
+
*/
|
|
125
|
+
--sidebar-canvas: var(--sidebar);
|
|
126
|
+
--sidebar-header: var(--sidebar);
|
|
127
|
+
--sidebar-content: var(--sidebar);
|
|
128
|
+
--sidebar-hover: var(--sidebar-accent);
|
|
129
|
+
--sidebar-primary-text: var(--sidebar-foreground);
|
|
130
|
+
--sidebar-secondary-text: color-mix(in oklab, var(--sidebar-foreground) 78%, transparent);
|
|
131
|
+
--sidebar-metadata-text: color-mix(in oklab, var(--sidebar-foreground) 62%, transparent);
|
|
132
|
+
--sidebar-icon: color-mix(in oklab, var(--sidebar-foreground) 72%, transparent);
|
|
133
|
+
--sidebar-search: var(--sidebar-accent);
|
|
134
|
+
--sidebar-footer: var(--sidebar);
|
|
135
|
+
--sidebar-group-label: color-mix(in oklab, var(--sidebar-foreground) 72%, transparent);
|
|
136
|
+
--sidebar-group-count: color-mix(in oklab, var(--sidebar-foreground) 62%, transparent);
|
|
137
|
+
--sidebar-focus-ring: var(--ring);
|
|
120
138
|
--font-sans: "Saans", "Inter", "Aptos", "Segoe UI", Arial, sans-serif;
|
|
121
139
|
--ds-space-inline: 0.5rem;
|
|
122
140
|
--ds-space-control: 0.625rem;
|
|
@@ -139,7 +157,16 @@
|
|
|
139
157
|
--ds-control-height-sm: 2rem;
|
|
140
158
|
--ds-control-height-lg: 2.75rem;
|
|
141
159
|
--ds-control-padding-x: 1rem;
|
|
160
|
+
--ds-sidebar-width: 16rem;
|
|
161
|
+
--ds-sidebar-width-mobile: 18rem;
|
|
142
162
|
--ds-sidebar-item-height: 2.25rem;
|
|
163
|
+
--ds-sidebar-item-height-touch: 2.75rem;
|
|
164
|
+
--ds-sidebar-header-height: 3.5rem;
|
|
165
|
+
--ds-sidebar-content-padding-x: 0.625rem;
|
|
166
|
+
--ds-sidebar-content-padding-y: 0.75rem;
|
|
167
|
+
--ds-sidebar-footer-padding: 0.625rem;
|
|
168
|
+
--ds-sidebar-group-gap: 0.25rem;
|
|
169
|
+
--ds-sidebar-group-label-size: 0.75rem;
|
|
143
170
|
--ds-surface-padding: 1.25rem;
|
|
144
171
|
--ds-table-header-height: 2.25rem;
|
|
145
172
|
--ds-row-height: 2.75rem;
|
|
@@ -170,6 +197,8 @@
|
|
|
170
197
|
--ds-control-height-sm: 1.75rem;
|
|
171
198
|
--ds-control-height-lg: 2.25rem;
|
|
172
199
|
--ds-control-padding-x: 0.75rem;
|
|
200
|
+
--ds-sidebar-width: 15rem;
|
|
201
|
+
--ds-sidebar-width-mobile: 17rem;
|
|
173
202
|
--ds-sidebar-item-height: 2rem;
|
|
174
203
|
--ds-surface-padding: 1rem;
|
|
175
204
|
--ds-table-header-height: 2rem;
|
|
@@ -259,10 +288,53 @@
|
|
|
259
288
|
--sidebar-active-foreground: #ffffff;
|
|
260
289
|
--sidebar-active-indicator: #7c86df;
|
|
261
290
|
--sidebar-border: rgb(255 255 255 / 8%);
|
|
291
|
+
--sidebar-canvas: var(--sidebar);
|
|
292
|
+
--sidebar-header: var(--sidebar);
|
|
293
|
+
--sidebar-content: var(--sidebar);
|
|
294
|
+
--sidebar-hover: var(--sidebar-accent);
|
|
295
|
+
--sidebar-primary-text: var(--sidebar-foreground);
|
|
296
|
+
--sidebar-secondary-text: color-mix(in oklab, var(--sidebar-foreground) 78%, transparent);
|
|
297
|
+
--sidebar-metadata-text: color-mix(in oklab, var(--sidebar-foreground) 62%, transparent);
|
|
298
|
+
--sidebar-icon: color-mix(in oklab, var(--sidebar-foreground) 72%, transparent);
|
|
299
|
+
--sidebar-search: var(--sidebar-accent);
|
|
300
|
+
--sidebar-footer: var(--sidebar);
|
|
301
|
+
--sidebar-group-label: color-mix(in oklab, var(--sidebar-foreground) 72%, transparent);
|
|
302
|
+
--sidebar-group-count: color-mix(in oklab, var(--sidebar-foreground) 62%, transparent);
|
|
303
|
+
--sidebar-focus-ring: var(--ring);
|
|
262
304
|
--ds-shadow-raised: 0 1px 2px rgb(0 0 0 / 28%);
|
|
263
305
|
--ds-shadow-floating: 0 16px 32px rgb(0 0 0 / 34%);
|
|
264
306
|
}
|
|
265
307
|
|
|
308
|
+
/*
|
|
309
|
+
* Light sidebars use the same semantic surface family as the rest of the
|
|
310
|
+
* light theme. The variant is scoped to the sidebar so an application can
|
|
311
|
+
* keep a dark sidebar by default and opt into this hierarchy per shell.
|
|
312
|
+
*/
|
|
313
|
+
[data-sidebar-variant="light"],
|
|
314
|
+
:root:not(.dark):not([data-appearance="dark"])
|
|
315
|
+
[data-sidebar-variant="auto"] {
|
|
316
|
+
--sidebar: var(--surface-muted);
|
|
317
|
+
--sidebar-foreground: var(--text-primary);
|
|
318
|
+
--sidebar-accent: var(--surface-raised);
|
|
319
|
+
--sidebar-active: var(--accent-background);
|
|
320
|
+
--sidebar-active-foreground: var(--selection-foreground);
|
|
321
|
+
--sidebar-active-indicator: var(--selection-indicator);
|
|
322
|
+
--sidebar-border: var(--border-subtle);
|
|
323
|
+
--sidebar-canvas: var(--surface-muted);
|
|
324
|
+
--sidebar-header: var(--surface);
|
|
325
|
+
--sidebar-content: var(--surface-muted);
|
|
326
|
+
--sidebar-hover: var(--surface-raised);
|
|
327
|
+
--sidebar-primary-text: var(--text-primary);
|
|
328
|
+
--sidebar-secondary-text: var(--text-secondary);
|
|
329
|
+
--sidebar-metadata-text: var(--text-supporting);
|
|
330
|
+
--sidebar-icon: var(--text-secondary);
|
|
331
|
+
--sidebar-search: var(--surface-raised);
|
|
332
|
+
--sidebar-footer: var(--surface);
|
|
333
|
+
--sidebar-group-label: var(--text-secondary);
|
|
334
|
+
--sidebar-group-count: var(--text-supporting);
|
|
335
|
+
--sidebar-focus-ring: var(--border-focus);
|
|
336
|
+
}
|
|
337
|
+
|
|
266
338
|
@theme inline {
|
|
267
339
|
--radius-sm: calc(var(--radius) - 4px);
|
|
268
340
|
--radius-md: calc(var(--radius) - 2px);
|
|
@@ -341,6 +413,19 @@
|
|
|
341
413
|
--color-sidebar-accent: var(--sidebar-accent);
|
|
342
414
|
--color-sidebar-active: var(--sidebar-active);
|
|
343
415
|
--color-sidebar-active-foreground: var(--sidebar-active-foreground);
|
|
416
|
+
--color-sidebar-canvas: var(--sidebar-canvas);
|
|
417
|
+
--color-sidebar-header: var(--sidebar-header);
|
|
418
|
+
--color-sidebar-content: var(--sidebar-content);
|
|
419
|
+
--color-sidebar-hover: var(--sidebar-hover);
|
|
420
|
+
--color-sidebar-primary-text: var(--sidebar-primary-text);
|
|
421
|
+
--color-sidebar-secondary-text: var(--sidebar-secondary-text);
|
|
422
|
+
--color-sidebar-metadata-text: var(--sidebar-metadata-text);
|
|
423
|
+
--color-sidebar-icon: var(--sidebar-icon);
|
|
424
|
+
--color-sidebar-search: var(--sidebar-search);
|
|
425
|
+
--color-sidebar-footer: var(--sidebar-footer);
|
|
426
|
+
--color-sidebar-group-label: var(--sidebar-group-label);
|
|
427
|
+
--color-sidebar-group-count: var(--sidebar-group-count);
|
|
428
|
+
--color-sidebar-focus-ring: var(--sidebar-focus-ring);
|
|
344
429
|
--color-sidebar-border: var(--sidebar-border);
|
|
345
430
|
--font-sans: var(--font-sans);
|
|
346
431
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { ConsciaAppearance, ConsciaDensity, appearanceOptions, applyConsciaPreferences, densityOptions } from './foundation/index.js';
|
|
2
|
-
export { ActivityItem, ActivityItemProps, ActivityList, AppShell, AppSidebar, AppSidebarContent, AppSidebarFooter, AppSidebarHeader, AppearanceControl, CodeBlock, CodeBlockProps, CodeBlockSnippet, ConfirmationDialog, ConfirmationDialogProps, DataTable, DataTableColumn, DataTableProps, DensityControl, DesignPreferenceControls, DesignSystemPreferenceSync, DetailBackLink, DetailBackLinkProps, DetailSection, DetailSectionProps, DetailSections, EntityTable, EntityTableColumn, EntityTableProps, ErrorState, InspectorRegion, InventoryDesktop, InventoryMobile, InventorySurface, KeyValueItem, KeyValueList, LoadingRows, MainRegion, MetricBand, MetricBandItem, MetricBandItemProps, MetricBandProps, NavigationGroup, NavigationItem, NavigationSubItem, NavigationSubList, PageBoundary, PageContent, PageFrame, PageHeader, PageHeaderProps, PageToolbar, PageToolbarProps, PaginationControls, PaginationControlsProps, ProductIdentity, ProviderMark, ProviderMarkProps, ResourceSummary, ResourceSummaryProps, SidebarNavigation, SidebarNavigationEntry, SidebarNavigationItem, SidebarNavigationLinkProps, SidebarNavigationSection, SidebarSeparator, SidebarTrigger, StateView, StateViewProps, TopBar, ValueMeter, ValueMeterProps, useAppShell, useConsciaPreferences } from './patterns/index.js';
|
|
3
|
-
export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ConsciaButton, ConsciaCard, ConsciaCardContent, ConsciaCardDescription, ConsciaCardHeader, ConsciaCardTitle, ConsciaCheckbox, ConsciaFormSelect, ConsciaIconButton, ConsciaInput, ConsciaSelect, ConsciaSelectContent, ConsciaSelectGroup, ConsciaSelectItem, ConsciaSelectTrigger, ConsciaSelectValue, ConsciaSwitch, ConsciaTable, ConsciaTableBody, ConsciaTableCell, ConsciaTableHead, ConsciaTableHeader, ConsciaTableRow, ConsciaTextarea, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Field, FieldDescription, FieldError, FieldGroup, FieldLabel, FormSelect, FormSelectOption, FormSelectProps,
|
|
4
|
-
export { B as Button, C as Card, a as CardContent, b as CardDescription, c as CardHeader, d as CardTitle, S as Separator, e as buttonVariants } from './card-
|
|
2
|
+
export { ActivityItem, ActivityItemProps, ActivityList, AppShell, AppSidebar, AppSidebarContent, AppSidebarFooter, AppSidebarHeader, AppearanceControl, CodeBlock, CodeBlockProps, CodeBlockSnippet, ConfirmationDialog, ConfirmationDialogProps, DataTable, DataTableColumn, DataTableProps, DensityControl, DesignPreferenceControls, DesignSystemPreferenceSync, DetailBackLink, DetailBackLinkProps, DetailSection, DetailSectionProps, DetailSections, EntityTable, EntityTableColumn, EntityTableProps, ErrorState, InspectorRegion, InventoryDesktop, InventoryMobile, InventorySurface, KeyValueItem, KeyValueList, LoadingRows, MainRegion, MetricBand, MetricBandItem, MetricBandItemProps, MetricBandProps, NavigationGroup, NavigationItem, NavigationSubItem, NavigationSubList, PageBoundary, PageContent, PageFrame, PageHeader, PageHeaderProps, PageToolbar, PageToolbarProps, PaginationControls, PaginationControlsProps, ProductIdentity, ProviderMark, ProviderMarkProps, ResourceSummary, ResourceSummaryProps, SidebarNavigation, SidebarNavigationEntry, SidebarNavigationItem, SidebarNavigationLinkProps, SidebarNavigationSection, SidebarSearch, SidebarSeparator, SidebarTrigger, StateView, StateViewProps, TopBar, ValueMeter, ValueMeterProps, useAppShell, useConsciaPreferences } from './patterns/index.js';
|
|
3
|
+
export { Alert, AlertDescription, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, ConsciaButton, ConsciaCard, ConsciaCardContent, ConsciaCardDescription, ConsciaCardHeader, ConsciaCardTitle, ConsciaCheckbox, ConsciaFormSelect, ConsciaIconButton, ConsciaInput, ConsciaSelect, ConsciaSelectContent, ConsciaSelectGroup, ConsciaSelectItem, ConsciaSelectTrigger, ConsciaSelectValue, ConsciaSwitch, ConsciaTable, ConsciaTableBody, ConsciaTableCell, ConsciaTableHead, ConsciaTableHeader, ConsciaTableRow, ConsciaTextarea, Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Field, FieldDescription, FieldError, FieldGroup, FieldLabel, FormSelect, FormSelectOption, FormSelectProps, Label, NavigationTab, NavigationTabs, NavigationTabsList, SearchableSelect, SearchableSelectOption, SearchableSelectProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Switch, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsSize, TabsTrigger, TabsVariant, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, alertVariants, badgeVariants } from './primitives/index.js';
|
|
4
|
+
export { B as Button, C as Card, a as CardContent, b as CardDescription, c as CardHeader, d as CardTitle, I as Input, S as Separator, e as buttonVariants } from './card-BFUHJgV-.js';
|
|
5
5
|
export { cn } from './utils/index.js';
|
|
6
6
|
export { PaginationState, SortingState } from '@tanstack/react-table';
|
|
7
7
|
import 'react';
|
package/dist/index.js
CHANGED
|
@@ -44,6 +44,7 @@ import {
|
|
|
44
44
|
ProviderMark,
|
|
45
45
|
ResourceSummary,
|
|
46
46
|
SidebarNavigation,
|
|
47
|
+
SidebarSearch,
|
|
47
48
|
SidebarSeparator,
|
|
48
49
|
SidebarTrigger,
|
|
49
50
|
StateView,
|
|
@@ -51,7 +52,7 @@ import {
|
|
|
51
52
|
ValueMeter,
|
|
52
53
|
useAppShell,
|
|
53
54
|
useConsciaPreferences
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-6VZDLHRF.js";
|
|
55
56
|
import {
|
|
56
57
|
appearanceOptions,
|
|
57
58
|
applyConsciaPreferences,
|
|
@@ -95,14 +96,13 @@ import {
|
|
|
95
96
|
FieldGroup,
|
|
96
97
|
FieldLabel,
|
|
97
98
|
FormSelect,
|
|
98
|
-
Input,
|
|
99
99
|
Label,
|
|
100
100
|
SearchableSelect,
|
|
101
101
|
Switch,
|
|
102
102
|
Textarea,
|
|
103
103
|
alertVariants,
|
|
104
104
|
badgeVariants
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-VVTTFVCC.js";
|
|
106
106
|
import {
|
|
107
107
|
Button,
|
|
108
108
|
Card,
|
|
@@ -135,6 +135,7 @@ import {
|
|
|
135
135
|
DropdownMenuSubContent,
|
|
136
136
|
DropdownMenuSubTrigger,
|
|
137
137
|
DropdownMenuTrigger,
|
|
138
|
+
Input,
|
|
138
139
|
NavigationTab,
|
|
139
140
|
NavigationTabs,
|
|
140
141
|
NavigationTabsList,
|
|
@@ -176,7 +177,7 @@ import {
|
|
|
176
177
|
TooltipProvider,
|
|
177
178
|
TooltipTrigger,
|
|
178
179
|
buttonVariants
|
|
179
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-HLND6FZS.js";
|
|
180
181
|
import {
|
|
181
182
|
cn
|
|
182
183
|
} from "./chunk-JU5DQXFC.js";
|
|
@@ -320,6 +321,7 @@ export {
|
|
|
320
321
|
SheetTitle,
|
|
321
322
|
SheetTrigger,
|
|
322
323
|
SidebarNavigation,
|
|
324
|
+
SidebarSearch,
|
|
323
325
|
SidebarSeparator,
|
|
324
326
|
SidebarTrigger,
|
|
325
327
|
Skeleton,
|
package/dist/patterns/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SortingState, PaginationState } from '@tanstack/react-table';
|
|
3
3
|
export { PaginationState, SortingState } from '@tanstack/react-table';
|
|
4
|
-
import { S as Separator, B as Button, C as Card } from '../card-
|
|
4
|
+
import { I as Input, S as Separator, B as Button, C as Card } from '../card-BFUHJgV-.js';
|
|
5
5
|
import { ConsciaAppearance, ConsciaDensity } from '../foundation/index.js';
|
|
6
6
|
import 'class-variance-authority/types';
|
|
7
7
|
import 'class-variance-authority';
|
|
@@ -80,8 +80,10 @@ declare function useAppShell(): AppShellContextValue;
|
|
|
80
80
|
declare function AppShell({ defaultSidebarOpen, children, className, style, ...props }: React.ComponentProps<"div"> & {
|
|
81
81
|
defaultSidebarOpen?: boolean;
|
|
82
82
|
}): React.JSX.Element;
|
|
83
|
-
declare function AppSidebar({ side, className, children, title, description, ...props }: React.ComponentProps<"aside"> & {
|
|
83
|
+
declare function AppSidebar({ side, variant, className, children, title, description, ...props }: React.ComponentProps<"aside"> & {
|
|
84
84
|
side?: "left" | "right";
|
|
85
|
+
/** Preserve the historical dark sidebar by default; auto follows appearance. */
|
|
86
|
+
variant?: "light" | "dark" | "auto";
|
|
85
87
|
title?: string;
|
|
86
88
|
description?: string;
|
|
87
89
|
}): React.JSX.Element;
|
|
@@ -95,8 +97,9 @@ declare function ProductIdentity({ label, description, icon, className, }: {
|
|
|
95
97
|
className?: string;
|
|
96
98
|
}): React.JSX.Element;
|
|
97
99
|
declare function SidebarSeparator({ className, ...props }: React.ComponentProps<typeof Separator>): React.JSX.Element;
|
|
98
|
-
declare function NavigationGroup({ label, children, className, }: {
|
|
100
|
+
declare function NavigationGroup({ label, count, children, className, }: {
|
|
99
101
|
label?: React.ReactNode;
|
|
102
|
+
count?: React.ReactNode;
|
|
100
103
|
children: React.ReactNode;
|
|
101
104
|
className?: string;
|
|
102
105
|
}): React.JSX.Element;
|
|
@@ -111,6 +114,19 @@ declare function NavigationSubItem({ asChild, active, className, ...props }: Rea
|
|
|
111
114
|
}): React.JSX.Element;
|
|
112
115
|
declare function NavigationSubList({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
113
116
|
declare function SidebarTrigger({ className, onClick, ...props }: React.ComponentProps<typeof Button>): React.JSX.Element;
|
|
117
|
+
type SidebarSearchProps = Omit<React.ComponentProps<typeof Input>, "type"> & {
|
|
118
|
+
expanded?: boolean;
|
|
119
|
+
defaultExpanded?: boolean;
|
|
120
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
121
|
+
triggerLabel?: string;
|
|
122
|
+
shortcut?: string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Shared search affordance for sidebars. Applications own query state and
|
|
126
|
+
* filtering; this component owns the compact trigger, focus handoff, and
|
|
127
|
+
* keyboard-accessible expanded field.
|
|
128
|
+
*/
|
|
129
|
+
declare function SidebarSearch({ expanded: expandedProp, defaultExpanded, onExpandedChange, triggerLabel, shortcut, className, onKeyDown, ...props }: SidebarSearchProps): React.JSX.Element;
|
|
114
130
|
declare function MainRegion({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
115
131
|
declare function TopBar({ className, ...props }: React.ComponentProps<"header">): React.JSX.Element;
|
|
116
132
|
declare function PageFrame({ width, className, ...props }: React.ComponentProps<"main"> & {
|
|
@@ -314,4 +330,4 @@ type ValueMeterProps = React.ComponentProps<"div"> & {
|
|
|
314
330
|
};
|
|
315
331
|
declare function ValueMeter({ label, value, maximum, valueLabel, detail, tone, className, ...props }: ValueMeterProps): React.JSX.Element;
|
|
316
332
|
|
|
317
|
-
export { ActivityItem, type ActivityItemProps, ActivityList, AppShell, AppSidebar, AppSidebarContent, AppSidebarFooter, AppSidebarHeader, AppearanceControl, CodeBlock, type CodeBlockProps, type CodeBlockSnippet, ConfirmationDialog, type ConfirmationDialogProps, DataTable, type DataTableColumn, type DataTableProps, DensityControl, DesignPreferenceControls, DesignSystemPreferenceSync, DetailBackLink, type DetailBackLinkProps, DetailSection, type DetailSectionProps, DetailSections, EntityTable, type EntityTableColumn, type EntityTableProps, ErrorState, InspectorRegion, InventoryDesktop, InventoryMobile, InventorySurface, KeyValueItem, KeyValueList, LoadingRows, MainRegion, MetricBand, MetricBandItem, type MetricBandItemProps, type MetricBandProps, NavigationGroup, NavigationItem, NavigationSubItem, NavigationSubList, PageBoundary, PageContent, PageFrame, PageHeader, type PageHeaderProps, PageToolbar, type PageToolbarProps, PaginationControls, type PaginationControlsProps, ProductIdentity, ProviderMark, type ProviderMarkProps, ResourceSummary, type ResourceSummaryProps, SidebarNavigation, type SidebarNavigationEntry, type SidebarNavigationItem, type SidebarNavigationLinkProps, type SidebarNavigationSection, SidebarSeparator, SidebarTrigger, StateView, type StateViewProps, TopBar, ValueMeter, type ValueMeterProps, useAppShell, useConsciaPreferences };
|
|
333
|
+
export { ActivityItem, type ActivityItemProps, ActivityList, AppShell, AppSidebar, AppSidebarContent, AppSidebarFooter, AppSidebarHeader, AppearanceControl, CodeBlock, type CodeBlockProps, type CodeBlockSnippet, ConfirmationDialog, type ConfirmationDialogProps, DataTable, type DataTableColumn, type DataTableProps, DensityControl, DesignPreferenceControls, DesignSystemPreferenceSync, DetailBackLink, type DetailBackLinkProps, DetailSection, type DetailSectionProps, DetailSections, EntityTable, type EntityTableColumn, type EntityTableProps, ErrorState, InspectorRegion, InventoryDesktop, InventoryMobile, InventorySurface, KeyValueItem, KeyValueList, LoadingRows, MainRegion, MetricBand, MetricBandItem, type MetricBandItemProps, type MetricBandProps, NavigationGroup, NavigationItem, NavigationSubItem, NavigationSubList, PageBoundary, PageContent, PageFrame, PageHeader, type PageHeaderProps, PageToolbar, type PageToolbarProps, PaginationControls, type PaginationControlsProps, ProductIdentity, ProviderMark, type ProviderMarkProps, ResourceSummary, type ResourceSummaryProps, SidebarNavigation, type SidebarNavigationEntry, type SidebarNavigationItem, type SidebarNavigationLinkProps, type SidebarNavigationSection, SidebarSearch, SidebarSeparator, SidebarTrigger, StateView, type StateViewProps, TopBar, ValueMeter, type ValueMeterProps, useAppShell, useConsciaPreferences };
|
package/dist/patterns/index.js
CHANGED
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
ProviderMark,
|
|
44
44
|
ResourceSummary,
|
|
45
45
|
SidebarNavigation,
|
|
46
|
+
SidebarSearch,
|
|
46
47
|
SidebarSeparator,
|
|
47
48
|
SidebarTrigger,
|
|
48
49
|
StateView,
|
|
@@ -50,9 +51,9 @@ import {
|
|
|
50
51
|
ValueMeter,
|
|
51
52
|
useAppShell,
|
|
52
53
|
useConsciaPreferences
|
|
53
|
-
} from "../chunk-
|
|
54
|
+
} from "../chunk-6VZDLHRF.js";
|
|
54
55
|
import "../chunk-D5LYROOM.js";
|
|
55
|
-
import "../chunk-
|
|
56
|
+
import "../chunk-HLND6FZS.js";
|
|
56
57
|
import "../chunk-JU5DQXFC.js";
|
|
57
58
|
export {
|
|
58
59
|
ActivityItem,
|
|
@@ -98,6 +99,7 @@ export {
|
|
|
98
99
|
ProviderMark,
|
|
99
100
|
ResourceSummary,
|
|
100
101
|
SidebarNavigation,
|
|
102
|
+
SidebarSearch,
|
|
101
103
|
SidebarSeparator,
|
|
102
104
|
SidebarTrigger,
|
|
103
105
|
StateView,
|