@dalexto/lexsys-registry 0.1.1 → 0.1.3

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 (39) hide show
  1. package/dist/index.js +12 -3
  2. package/package.json +2 -2
  3. package/templates/blocks/AuthForm/AuthForm.tsx +9 -5
  4. package/templates/blocks/AuthForm/AuthForm.types.ts +3 -3
  5. package/templates/blocks/AuthForm/AuthForm.variants.ts +8 -2
  6. package/templates/blocks/CommandPalette/CommandPalette.tsx +15 -12
  7. package/templates/blocks/CommandPalette/CommandPalette.types.ts +2 -2
  8. package/templates/blocks/CommandPalette/CommandPalette.variants.ts +6 -6
  9. package/templates/blocks/DataTable/DataTable.tsx +2 -2
  10. package/templates/blocks/DataTable/DataTable.types.ts +2 -2
  11. package/templates/blocks/DataTable/DataTable.variants.ts +5 -4
  12. package/templates/blocks/FilterToolbar/FilterToolbar.tsx +12 -5
  13. package/templates/blocks/FilterToolbar/FilterToolbar.types.ts +4 -4
  14. package/templates/blocks/FilterToolbar/FilterToolbar.variants.ts +11 -5
  15. package/templates/blocks/FormField/FormField.tsx +1 -1
  16. package/templates/blocks/FormField/FormField.types.ts +1 -1
  17. package/templates/blocks/FormField/FormField.variants.ts +1 -1
  18. package/templates/blocks/PageHeader/PageHeader.tsx +2 -2
  19. package/templates/blocks/PageHeader/PageHeader.types.ts +2 -2
  20. package/templates/blocks/PageHeader/PageHeader.variants.ts +6 -5
  21. package/templates/blocks/SettingsPanel/SettingsPanel.tsx +1 -1
  22. package/templates/blocks/SettingsPanel/SettingsPanel.types.ts +1 -1
  23. package/templates/blocks/Sidebar/Sidebar.tsx +1048 -22
  24. package/templates/blocks/Sidebar/Sidebar.types.ts +185 -1
  25. package/templates/blocks/Sidebar/Sidebar.utils.ts +34 -0
  26. package/templates/blocks/Sidebar/Sidebar.variants.ts +445 -25
  27. package/templates/blocks/StatsCard/StatsCard.tsx +1 -1
  28. package/templates/blocks/StatsCard/StatsCard.types.ts +1 -1
  29. package/templates/blocks/StatsCard/StatsCard.variants.ts +7 -6
  30. package/templates/primitives/DatePicker/DatePicker.tsx +11 -1
  31. package/templates/primitives/DatePicker/DatePicker.types.ts +4 -1
  32. package/templates/primitives/DatePicker/DatePicker.variants.ts +11 -2
  33. package/templates/primitives/Toolbar/Toolbar.variants.ts +4 -2
  34. package/templates/styles/theme.css +14 -1
  35. package/templates/styles/tokens.css +147 -29
  36. package/templates/templates/DashboardShell/DashboardShell.variants.ts +19 -4
  37. package/templates/templates/SettingsPageLayout/SettingsPageLayout.tsx +2 -2
  38. package/templates/templates/SettingsPageLayout/SettingsPageLayout.types.ts +2 -2
  39. package/templates/templates/SettingsPageLayout/SettingsPageLayout.variants.ts +16 -7
package/dist/index.js CHANGED
@@ -1503,10 +1503,19 @@ var sidebarRegistryItem = {
1503
1503
  files: [
1504
1504
  "blocks/Sidebar/Sidebar.tsx",
1505
1505
  "blocks/Sidebar/Sidebar.types.ts",
1506
- "blocks/Sidebar/Sidebar.variants.ts"
1506
+ "blocks/Sidebar/Sidebar.variants.ts",
1507
+ "blocks/Sidebar/Sidebar.utils.ts"
1508
+ ],
1509
+ dependencies: ["@base-ui/react", "clsx", "lucide-react", "tailwind-merge"],
1510
+ registryDependencies: [
1511
+ "badge",
1512
+ "button",
1513
+ "collapsible",
1514
+ "drawer",
1515
+ "input",
1516
+ "scroll-area",
1517
+ "separator"
1507
1518
  ],
1508
- dependencies: ["clsx", "tailwind-merge"],
1509
- registryDependencies: ["button", "drawer", "scroll-area"],
1510
1519
  utilities: ["cn"],
1511
1520
  styles: ["theme"],
1512
1521
  target: "src/components/ui/Sidebar"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dalexto/lexsys-registry",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Install metadata and templates for the Lexsys registry-first UI framework",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -35,7 +35,7 @@
35
35
  "node": ">=24 <25"
36
36
  },
37
37
  "devDependencies": {
38
- "@types/node": "^25.9.1"
38
+ "@types/node": "^25.9.2"
39
39
  },
40
40
  "scripts": {
41
41
  "build": "tsup && tsc -p tsconfig.json --emitDeclarationOnly --outDir dist",
@@ -10,8 +10,8 @@ import {
10
10
  CardContent,
11
11
  CardFooter,
12
12
  CardHeader,
13
- } from "@/components/primitives/Card"
14
- import { Button } from "@/components/primitives/Button"
13
+ } from "@/components/primitives/Card/Card"
14
+ import { Button } from "@/components/primitives/Button/Button"
15
15
  import type {
16
16
  AuthFormContentProps,
17
17
  AuthFormFooterProps,
@@ -19,7 +19,11 @@ import type {
19
19
  AuthFormProps,
20
20
  AuthFormSubmitProps,
21
21
  } from "./AuthForm.types"
22
- import { authFormFieldsClassName, authFormClasses } from "./AuthForm.variants"
22
+ import {
23
+ authFormClasses,
24
+ authFormContentClasses,
25
+ authFormFooterClasses,
26
+ } from "./AuthForm.variants"
23
27
  import { cn } from "@/lib/utils"
24
28
 
25
29
  const AuthForm = ({
@@ -59,7 +63,7 @@ const AuthFormContent = ({
59
63
  return (
60
64
  <CardContent
61
65
  ref={ref}
62
- className={cn(authFormFieldsClassName, className)}
66
+ className={cn(authFormContentClasses(), className)}
63
67
  {...props}
64
68
  />
65
69
  )
@@ -71,7 +75,7 @@ const AuthFormFooter = ({ ref, className, ...props }: AuthFormFooterProps) => {
71
75
  return (
72
76
  <CardFooter
73
77
  ref={ref}
74
- className={cn("flex-col gap-(--lex-space-3)", className)}
78
+ className={cn(authFormFooterClasses(), className)}
75
79
  {...props}
76
80
  />
77
81
  )
@@ -5,13 +5,13 @@
5
5
  */
6
6
 
7
7
  import type { FormEventHandler, ReactNode, Ref } from "react"
8
- import type { CardProps } from "@/components/primitives/Card"
9
- import type { ButtonProps } from "@/components/primitives/Button"
8
+ import type { CardProps } from "@/components/primitives/Card/Card.types"
9
+ import type { ButtonProps } from "@/components/primitives/Button/Button.types"
10
10
  import type {
11
11
  CardContentProps,
12
12
  CardFooterProps,
13
13
  CardHeaderProps,
14
- } from "@/components/primitives/Card"
14
+ } from "@/components/primitives/Card/Card.types"
15
15
 
16
16
  export interface AuthFormProps extends Omit<
17
17
  CardProps,
@@ -5,7 +5,13 @@
5
5
  */
6
6
 
7
7
  export const authFormClasses = (): string => {
8
- return "lex-auth-form w-full text-(--lex-color-text-primary)"
8
+ return "lex-auth-form w-full text-(--lex-auth-form-root-foreground)"
9
9
  }
10
10
 
11
- export const authFormFieldsClassName = "flex flex-col gap-(--lex-space-4)"
11
+ export const authFormContentClasses = (): string => {
12
+ return "flex flex-col gap-(--lex-auth-form-content-gap)"
13
+ }
14
+
15
+ export const authFormFooterClasses = (): string => {
16
+ return "flex-col gap-(--lex-auth-form-footer-gap)"
17
+ }
@@ -12,17 +12,18 @@ import {
12
12
  DialogPortal,
13
13
  DialogTitle,
14
14
  DialogViewport,
15
- } from "@/components/primitives/Dialog"
15
+ } from "@/components/primitives/Dialog/Dialog"
16
16
  import {
17
+ Combobox,
17
18
  ComboboxInput,
18
19
  ComboboxInputGroup,
19
- } from "@/components/primitives/Combobox"
20
- import { Separator } from "@/components/primitives/Separator"
20
+ } from "@/components/primitives/Combobox/Combobox"
21
+ import { Separator } from "@/components/primitives/Separator/Separator"
21
22
  import {
22
23
  ScrollArea,
23
24
  ScrollAreaContent,
24
25
  ScrollAreaViewport,
25
- } from "@/components/primitives/ScrollArea"
26
+ } from "@/components/primitives/ScrollArea/ScrollArea"
26
27
  import type {
27
28
  CommandPaletteContentProps,
28
29
  CommandPaletteDescriptionProps,
@@ -116,14 +117,16 @@ const CommandPaletteInput = ({
116
117
  ...props
117
118
  }: CommandPaletteInputProps) => {
118
119
  return (
119
- <ComboboxInputGroup className={cn(commandPaletteInputClasses, className)}>
120
- <ComboboxInput
121
- ref={ref}
122
- autoFocus
123
- aria-label="Search commands"
124
- {...props}
125
- />
126
- </ComboboxInputGroup>
120
+ <Combobox>
121
+ <ComboboxInputGroup className={cn(commandPaletteInputClasses, className)}>
122
+ <ComboboxInput
123
+ ref={ref}
124
+ autoFocus
125
+ aria-label="Search commands"
126
+ {...props}
127
+ />
128
+ </ComboboxInputGroup>
129
+ </Combobox>
127
130
  )
128
131
  }
129
132
 
@@ -10,8 +10,8 @@ import type {
10
10
  ReactNode,
11
11
  Ref,
12
12
  } from "react"
13
- import type { DialogProps } from "@/components/primitives/Dialog"
14
- import type { ComboboxInputProps } from "@/components/primitives/Combobox"
13
+ import type { DialogProps } from "@/components/primitives/Dialog/Dialog.types"
14
+ import type { ComboboxInputProps } from "@/components/primitives/Combobox/Combobox.types"
15
15
 
16
16
  export interface CommandPaletteProps extends DialogProps {
17
17
  children?: ReactNode
@@ -5,21 +5,21 @@
5
5
  */
6
6
 
7
7
  export const commandPaletteRootClasses =
8
- "lex-command-palette flex flex-col gap-(--lex-space-2)"
8
+ "lex-command-palette flex flex-col gap-(--lex-command-palette-root-gap)"
9
9
 
10
10
  export const commandPaletteInputClasses = "w-full"
11
11
 
12
12
  export const commandPaletteListClasses =
13
- "flex max-h-(--lex-size-command-palette-list-max-height,16rem) flex-col"
13
+ "flex max-h-(--lex-command-palette-list-max-height) flex-col"
14
14
 
15
15
  export const commandPaletteGroupLabelClasses =
16
- "px-(--lex-space-3) py-(--lex-space-1) text-(length:--lex-typography-label-xs-font-size) font-(--lex-typography-label-xs-font-weight) text-(--lex-color-text-secondary)"
16
+ "px-(--lex-command-palette-group-label-padding-x) py-(--lex-command-palette-group-label-padding-y) text-(length:--lex-typography-label-xs-font-size) font-(--lex-typography-label-xs-font-weight) text-(--lex-color-text-secondary)"
17
17
 
18
18
  export const commandPaletteItemClasses =
19
- "flex w-full flex-col items-start gap-(--lex-space-1) rounded-(--lex-radius-control) px-(--lex-space-3) py-(--lex-space-2) text-left text-(--lex-color-text-primary) outline-none transition-colors hover:bg-(--lex-action-secondary-hover) focus-visible:bg-(--lex-action-secondary-hover)"
19
+ "flex w-full flex-col items-start gap-(--lex-command-palette-item-gap) rounded-(--lex-command-palette-item-radius) px-(--lex-command-palette-item-padding-x) py-(--lex-command-palette-item-padding-y) text-left text-(--lex-command-palette-item-foreground) outline-none transition-colors hover:bg-(--lex-command-palette-item-hover-background) focus-visible:bg-(--lex-command-palette-item-hover-background)"
20
20
 
21
21
  export const commandPaletteItemDescriptionClasses =
22
- "text-(length:--lex-typography-body-xs-font-size) text-(--lex-color-text-secondary)"
22
+ "text-(length:--lex-typography-body-xs-font-size) text-(--lex-command-palette-item-description-foreground)"
23
23
 
24
24
  export const commandPaletteEmptyClasses =
25
- "px-(--lex-space-3) py-(--lex-space-4) text-(length:--lex-typography-body-sm-font-size) text-(--lex-color-text-secondary)"
25
+ "px-(--lex-command-palette-empty-padding-x) py-(--lex-command-palette-empty-padding-y) text-(length:--lex-typography-body-sm-font-size) text-(--lex-color-text-secondary)"
@@ -12,7 +12,7 @@ import {
12
12
  PaginationLink,
13
13
  PaginationNext,
14
14
  PaginationPrevious,
15
- } from "@/components/primitives/Pagination"
15
+ } from "@/components/primitives/Pagination/Pagination"
16
16
  import {
17
17
  Table,
18
18
  TableBody,
@@ -22,7 +22,7 @@ import {
22
22
  TableHead,
23
23
  TableHeader,
24
24
  TableRow,
25
- } from "@/components/primitives/Table"
25
+ } from "@/components/primitives/Table/Table"
26
26
  import type {
27
27
  DataTableBodyProps,
28
28
  DataTableCaptionProps,
@@ -13,7 +13,7 @@ import type {
13
13
  PaginationNextProps,
14
14
  PaginationPreviousProps,
15
15
  PaginationProps,
16
- } from "@/components/primitives/Pagination"
16
+ } from "@/components/primitives/Pagination/Pagination.types"
17
17
  import type {
18
18
  TableBodyProps,
19
19
  TableCaptionProps,
@@ -23,7 +23,7 @@ import type {
23
23
  TableHeaderProps,
24
24
  TableProps,
25
25
  TableRowProps,
26
- } from "@/components/primitives/Table"
26
+ } from "@/components/primitives/Table/Table.types"
27
27
 
28
28
  export interface DataTableProps extends HTMLAttributes<HTMLDivElement> {
29
29
  ref?: Ref<HTMLDivElement>
@@ -5,15 +5,16 @@
5
5
  */
6
6
 
7
7
  export const dataTableClasses = (): string => {
8
- return ["lex-data-table", "flex w-full flex-col gap-(--lex-space-4)"].join(
9
- " ",
10
- )
8
+ return [
9
+ "lex-data-table",
10
+ "flex w-full flex-col gap-(--lex-data-table-root-gap)",
11
+ ].join(" ")
11
12
  }
12
13
 
13
14
  export const dataTableFooterClasses = (): string => {
14
15
  return [
15
16
  "lex-data-table__footer",
16
- "flex flex-col gap-(--lex-space-3)",
17
+ "flex flex-col gap-(--lex-data-table-footer-gap)",
17
18
  "sm:flex-row sm:items-center sm:justify-between",
18
19
  ].join(" ")
19
20
  }
@@ -4,14 +4,14 @@
4
4
  * Reference FilterToolbar block — compound Toolbar filter row.
5
5
  */
6
6
 
7
- import { Button } from "@/components/primitives/Button"
8
- import { Input } from "@/components/primitives/Input"
7
+ import { Button } from "@/components/primitives/Button/Button"
8
+ import { Input } from "@/components/primitives/Input/Input"
9
9
  import {
10
10
  Select,
11
11
  SelectTrigger,
12
12
  SelectValue,
13
- } from "@/components/primitives/Select"
14
- import { Toolbar, ToolbarGroup } from "@/components/primitives/Toolbar"
13
+ } from "@/components/primitives/Select/Select"
14
+ import { Toolbar, ToolbarGroup } from "@/components/primitives/Toolbar/Toolbar"
15
15
  import type {
16
16
  FilterToolbarButtonProps,
17
17
  FilterToolbarGroupProps,
@@ -23,6 +23,7 @@ import type {
23
23
  } from "./FilterToolbar.types"
24
24
  import {
25
25
  filterToolbarClasses,
26
+ filterToolbarGroupClasses,
26
27
  filterToolbarSearchClasses,
27
28
  filterToolbarSelectTriggerClasses,
28
29
  } from "./FilterToolbar.variants"
@@ -51,7 +52,13 @@ const FilterToolbarGroup = ({
51
52
  className,
52
53
  ...props
53
54
  }: FilterToolbarGroupProps) => {
54
- return <ToolbarGroup ref={ref} className={className} {...props} />
55
+ return (
56
+ <ToolbarGroup
57
+ ref={ref}
58
+ className={cn(filterToolbarGroupClasses(), className)}
59
+ {...props}
60
+ />
61
+ )
55
62
  }
56
63
 
57
64
  FilterToolbarGroup.displayName = "FilterToolbarGroup"
@@ -4,17 +4,17 @@
4
4
  * Public types for the FilterToolbar block.
5
5
  */
6
6
 
7
- import type { ButtonProps } from "@/components/primitives/Button"
8
- import type { InputProps } from "@/components/primitives/Input"
7
+ import type { ButtonProps } from "@/components/primitives/Button/Button.types"
8
+ import type { InputProps } from "@/components/primitives/Input/Input.types"
9
9
  import type {
10
10
  SelectProps,
11
11
  SelectTriggerProps,
12
12
  SelectValueProps,
13
- } from "@/components/primitives/Select"
13
+ } from "@/components/primitives/Select/Select.types"
14
14
  import type {
15
15
  ToolbarGroupProps,
16
16
  ToolbarProps,
17
- } from "@/components/primitives/Toolbar"
17
+ } from "@/components/primitives/Toolbar/Toolbar.types"
18
18
 
19
19
  export type FilterToolbarProps = ToolbarProps
20
20
 
@@ -7,11 +7,17 @@
7
7
  export const filterToolbarClasses = (): string => {
8
8
  return [
9
9
  "lex-filter-toolbar",
10
- "flex flex-wrap items-center gap-(--lex-space-2)",
11
- "rounded-(--lex-radius-control)",
12
- "border border-(--lex-border-default)",
13
- "bg-(--lex-color-background-subtle)",
14
- "p-(--lex-space-2)",
10
+ "flex flex-wrap items-center gap-(--lex-toolbar-root-gap)",
11
+ "rounded-(--lex-toolbar-radius)",
12
+ "border border-(--lex-toolbar-root-border-color)",
13
+ "bg-(--lex-toolbar-root-background)",
14
+ "p-(--lex-toolbar-root-padding)",
15
+ ].join(" ")
16
+ }
17
+
18
+ export const filterToolbarGroupClasses = (): string => {
19
+ return [
20
+ "lex-filter-toolbar__group flex flex-wrap items-center gap-(--lex-toolbar-group-gap)",
15
21
  ].join(" ")
16
22
  }
17
23
 
@@ -11,7 +11,7 @@ import {
11
11
  FieldError,
12
12
  FieldItem,
13
13
  FieldLabel,
14
- } from "@/components/primitives/Field"
14
+ } from "@/components/primitives/Field/Field"
15
15
  import type {
16
16
  FormFieldControlProps,
17
17
  FormFieldDescriptionProps,
@@ -11,7 +11,7 @@ import type {
11
11
  FieldItemProps,
12
12
  FieldLabelProps,
13
13
  FieldProps,
14
- } from "@/components/primitives/Field"
14
+ } from "@/components/primitives/Field/Field.types"
15
15
 
16
16
  export type FormFieldProps = FieldProps
17
17
 
@@ -5,5 +5,5 @@
5
5
  */
6
6
 
7
7
  export const formFieldClasses = (): string => {
8
- return "lex-form-field flex flex-col gap-[var(--lex-space-2)]"
8
+ return "lex-form-field flex flex-col gap-(--lex-form-field-root-gap)"
9
9
  }
@@ -4,7 +4,7 @@
4
4
  * Reference PageHeader block — compound page title surface with breadcrumb and actions.
5
5
  */
6
6
 
7
- import { Button } from "@/components/primitives/Button"
7
+ import { Button } from "@/components/primitives/Button/Button"
8
8
  import {
9
9
  Breadcrumb,
10
10
  BreadcrumbItem,
@@ -12,7 +12,7 @@ import {
12
12
  BreadcrumbList,
13
13
  BreadcrumbPage,
14
14
  BreadcrumbSeparator,
15
- } from "@/components/primitives/Breadcrumb"
15
+ } from "@/components/primitives/Breadcrumb/Breadcrumb"
16
16
  import type {
17
17
  PageHeaderActionProps,
18
18
  PageHeaderActionsProps,
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import type { HTMLAttributes, ReactNode, Ref } from "react"
8
- import type { ButtonProps } from "@/components/primitives/Button"
8
+ import type { ButtonProps } from "@/components/primitives/Button/Button.types"
9
9
  import type {
10
10
  BreadcrumbItemProps,
11
11
  BreadcrumbLinkProps,
@@ -13,7 +13,7 @@ import type {
13
13
  BreadcrumbPageProps,
14
14
  BreadcrumbProps,
15
15
  BreadcrumbSeparatorProps,
16
- } from "@/components/primitives/Breadcrumb"
16
+ } from "@/components/primitives/Breadcrumb/Breadcrumb.types"
17
17
 
18
18
  export interface PageHeaderProps extends HTMLAttributes<HTMLElement> {
19
19
  ref?: Ref<HTMLElement>
@@ -7,17 +7,18 @@
7
7
  export const pageHeaderClasses = (): string => {
8
8
  return [
9
9
  "lex-page-header",
10
- "flex flex-col gap-(--lex-space-4)",
11
- "border-b border-(--lex-border-default) pb-(--lex-space-4)",
10
+ "flex flex-col gap-(--lex-page-header-root-gap)",
11
+ "border-b border-(--lex-page-header-root-border-color)",
12
+ "pb-(--lex-page-header-root-padding-bottom)",
12
13
  ].join(" ")
13
14
  }
14
15
 
15
16
  export const pageHeaderTopClasses = (): string => {
16
- return "lex-page-header__top flex flex-col gap-(--lex-space-3)"
17
+ return "lex-page-header__top flex flex-col gap-(--lex-page-header-top-gap)"
17
18
  }
18
19
 
19
20
  export const pageHeaderHeadingClasses = (): string => {
20
- return "lex-page-header__heading flex flex-col gap-(--lex-space-1)"
21
+ return "lex-page-header__heading flex flex-col gap-(--lex-page-header-heading-gap)"
21
22
  }
22
23
 
23
24
  export const pageHeaderTitleClasses = (): string => {
@@ -40,7 +41,7 @@ export const pageHeaderDescriptionClasses = (): string => {
40
41
  }
41
42
 
42
43
  export const pageHeaderActionsClasses = (): string => {
43
- return "lex-page-header__actions flex flex-wrap items-center gap-(--lex-space-2)"
44
+ return "lex-page-header__actions flex flex-wrap items-center gap-(--lex-page-header-actions-gap)"
44
45
  }
45
46
 
46
47
  export const pageHeaderBreadcrumbClasses = (): string => {
@@ -11,7 +11,7 @@ import {
11
11
  CardFooter,
12
12
  CardHeader,
13
13
  CardTitle,
14
- } from "@/components/primitives/Card"
14
+ } from "@/components/primitives/Card/Card"
15
15
  import type {
16
16
  SettingsPanelContentProps,
17
17
  SettingsPanelDescriptionProps,
@@ -12,7 +12,7 @@ import type {
12
12
  CardHeaderProps,
13
13
  CardProps,
14
14
  CardTitleProps,
15
- } from "@/components/primitives/Card"
15
+ } from "@/components/primitives/Card/Card.types"
16
16
 
17
17
  export interface SettingsPanelProps extends Omit<CardProps, "children"> {
18
18
  ref?: Ref<HTMLDivElement>