lucent-ui 0.15.0 → 0.17.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.
@@ -34,6 +34,20 @@ export const COMPONENT_MANIFEST = {
34
34
  required: false,
35
35
  description: 'Array of hex color strings shown as clickable swatches. Defaults to a 16-color palette.',
36
36
  },
37
+ {
38
+ name: 'size',
39
+ type: 'string',
40
+ required: false,
41
+ default: '"md"',
42
+ description: 'Swatch trigger size. "sm" renders a 24px swatch, "md" renders 40px.',
43
+ },
44
+ {
45
+ name: 'inline',
46
+ type: 'boolean',
47
+ required: false,
48
+ default: 'false',
49
+ description: 'Places the label beside the swatch instead of above it. Useful for compact layouts.',
50
+ },
37
51
  {
38
52
  name: 'disabled',
39
53
  type: 'boolean',
@@ -44,6 +44,14 @@ export const COMPONENT_MANIFEST = {
44
44
  default: 'false',
45
45
  description: 'Disables interaction and renders muted text. Removes href and onClick.',
46
46
  },
47
+ {
48
+ name: 'inverse',
49
+ type: 'boolean',
50
+ required: false,
51
+ default: 'false',
52
+ description: 'Uses surface background with primary text instead of accent for the active state. ' +
53
+ 'Ideal for sidebar navigation on tinted chrome where the accent highlight would be too heavy.',
54
+ },
47
55
  {
48
56
  name: 'onClick',
49
57
  type: 'function',
@@ -5,7 +5,9 @@ export const COMPONENT_MANIFEST = {
5
5
  domain: 'neutral',
6
6
  specVersion: '0.1',
7
7
  description: 'Full-viewport shell layout with optional header, left sidebar, right panel, and footer slots arranged in a flex column/row structure.',
8
- designIntent: 'PageLayout owns the outermost chrome of an application page. The body row is a flex row containing ' +
8
+ designIntent: 'PageLayout owns the outermost chrome of an application page. Chrome regions (header, sidebar, footer) ' +
9
+ 'default to bgBase so the main content card feels elevated against the page canvas — especially ' +
10
+ 'noticeable with tinted bgBase values. The body row is a flex row containing ' +
9
11
  'an optional left sidebar, a bordered main content card, and an optional right panel — all as structural ' +
10
12
  'siblings so they share the same vertical space. The header and footer sit outside the body row as ' +
11
13
  'flex children of the outer column, ensuring they span the full width. Sidebars collapse to zero width ' +
@@ -87,6 +89,16 @@ export const COMPONENT_MANIFEST = {
87
89
  default: '28',
88
90
  description: 'Footer height in px (number) or any CSS value (string). Default: 28 — sized for a compact status bar.',
89
91
  },
92
+ {
93
+ name: 'chromeBackground',
94
+ type: 'string',
95
+ required: false,
96
+ default: '"bgBase"',
97
+ description: 'Background token for chrome regions (header, sidebar, footer). ' +
98
+ '"bgBase" uses the page canvas color so the main content card feels elevated; ' +
99
+ '"bgSubtle" uses a subtle shade of bgBase for chrome distinction; ' +
100
+ '"surface" matches the old behavior where chrome and content share the same background.',
101
+ },
90
102
  {
91
103
  name: 'mainStyle',
92
104
  type: 'object',
@@ -8,24 +8,38 @@ export const ButtonManifest = {
8
8
  designIntent: 'Buttons communicate available actions. Variant conveys hierarchy: use "primary" for the ' +
9
9
  'single most important action in a view, "secondary" for supporting actions, "ghost" for ' +
10
10
  'low-emphasis actions in dense UIs, "outline" for bordered buttons with no fill, and "danger" exclusively for destructive or irreversible ' +
11
- 'operations. Size should match surrounding content density prefer "md" as the default, ' +
12
- '"sm" for toolbars or tables, and "xs" for compact UIs like customizer panels.',
11
+ 'operations. Use "danger-ghost" for low-emphasis destructive actions (red text, no fill) and ' +
12
+ '"danger-outline" for bordered destructive buttons. Size should match surrounding content density — prefer "md" as the default, ' +
13
+ '"sm" for toolbars or tables, "xs" for compact UIs like customizer panels, and "2xs" for ' +
14
+ 'ultra-dense inline controls (~22px height) such as table-inline actions or toolbar icon triggers.',
13
15
  props: [
14
16
  {
15
17
  name: 'variant',
16
18
  type: 'enum',
17
19
  required: false,
18
20
  default: 'primary',
19
- description: 'Visual style conveying action hierarchy.',
20
- enumValues: ['primary', 'secondary', 'outline', 'ghost', 'danger'],
21
+ description: 'Visual style conveying action hierarchy. ' +
22
+ '"primary" filled accent for the single most important action. ' +
23
+ '"secondary" — subtle accent-tinted fill for supporting actions. ' +
24
+ '"outline" — bordered with no fill, for neutral secondary actions. ' +
25
+ '"ghost" — transparent with no border, for low-emphasis or inline actions. ' +
26
+ '"danger" — filled red for irreversible destructive actions (e.g. "Delete account"). ' +
27
+ '"danger-outline" — red border + red text for destructive actions that need visual weight without a filled background. ' +
28
+ '"danger-ghost" — red text only, for low-emphasis destructive actions (e.g. "Remove" in a list row).',
29
+ enumValues: ['primary', 'secondary', 'outline', 'ghost', 'danger', 'danger-outline', 'danger-ghost'],
21
30
  },
22
31
  {
23
32
  name: 'size',
24
33
  type: 'enum',
25
34
  required: false,
26
35
  default: 'md',
27
- description: 'Controls height and padding.',
28
- enumValues: ['xs', 'sm', 'md', 'lg'],
36
+ description: 'Controls height and padding. ' +
37
+ '"lg" (48px) — hero sections, onboarding flows. ' +
38
+ '"md" (42px) — default for most forms and dialogs. ' +
39
+ '"sm" (34px) — toolbars, table headers, card actions. ' +
40
+ '"xs" (26px) — compact UIs like customizer panels, inline controls. ' +
41
+ '"2xs" (22px) — ultra-dense inline icon triggers, table-row actions, dashboard toolbar buttons.',
42
+ enumValues: ['2xs', 'xs', 'sm', 'md', 'lg'],
29
43
  },
30
44
  {
31
45
  name: 'children',
@@ -135,6 +149,18 @@ export const ButtonManifest = {
135
149
  title: 'Dropdown trigger',
136
150
  code: `<Button variant="outline" chevron>Options</Button>`,
137
151
  },
152
+ {
153
+ title: 'Bordered destructive action',
154
+ code: `<Button variant="danger-outline" onClick={handleRevoke}>Revoke access</Button>`,
155
+ },
156
+ {
157
+ title: 'Low-emphasis destructive action',
158
+ code: `<Button variant="danger-ghost" onClick={handleRemove}>Remove</Button>`,
159
+ },
160
+ {
161
+ title: 'Dense inline action',
162
+ code: `<Button variant="ghost" size="2xs" leftIcon={<RefreshIcon />}>Retry</Button>`,
163
+ },
138
164
  ],
139
165
  compositionGraph: [],
140
166
  accessibility: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lucent-ui",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "An AI-first React component library with machine-readable manifests.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -35,7 +35,7 @@
35
35
  "homepage": "https://lucentui.dev",
36
36
  "repository": {
37
37
  "type": "git",
38
- "url": "https://github.com/rozinashopify/lucent-ui"
38
+ "url": "https://github.com/rozina-hudson/lucent-ui"
39
39
  },
40
40
  "author": "Rozina Szogyenyi",
41
41
  "license": "MIT",