@santi020k/lumen-core 1.1.0 → 1.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 CHANGED
@@ -7,6 +7,40 @@ Most consumers should install a framework package such as `@santi020k/lumen-astr
7
7
  The package exports `lumenColors` and `lumenGlass` for consumers that need to mirror Lumen theme
8
8
  tokens outside the shared stylesheet.
9
9
 
10
+ Cross-platform foundations originate in `tokens/lumen.tokens.json` and are published as
11
+ `@santi020k/lumen-tokens`. Core also exports generated hexadecimal light/dark palettes and native
12
+ numeric spacing, radius, typography, duration, easing, and elevation values. The legacy
13
+ `lumenColors` export retains CSS-ready HSL values.
14
+
15
+ ## Language Helpers
16
+
17
+ The root entry exports the shared locale contract used by the Astro, React, and Elements language
18
+ controls. `normalizeLumenLocales` trims labels and values, removes duplicate or invalid values, and
19
+ falls back to `lumenDefaultLocales`. `getLumenLocalePair` resolves the current locale and the next
20
+ cyclic option, while `formatLumenLanguageLabel` fills the `{current}` and `{next}` placeholders in
21
+ an accessible-label template.
22
+
23
+ ```ts
24
+ import {
25
+ formatLumenLanguageLabel,
26
+ getLumenLocalePair,
27
+ type LumenLocaleOption,
28
+ normalizeLumenLocales
29
+ } from '@santi020k/lumen-core'
30
+
31
+ const locales: readonly LumenLocaleOption[] = normalizeLumenLocales([
32
+ { label: 'English', value: 'en' },
33
+ { label: 'Español', value: 'es' }
34
+ ])
35
+
36
+ const { current, next } = getLumenLocalePair(locales, 'en')
37
+ const label = formatLumenLanguageLabel(
38
+ 'Change language from {current} to {next}',
39
+ current,
40
+ next
41
+ )
42
+ ```
43
+
10
44
  ## Chart Helpers
11
45
 
12
46
  `@santi020k/lumen-core/charts` exports the shared `LumenChartSeries` contract plus deterministic
@@ -1,4 +1,4 @@
1
- export declare const lumenComponentNames: readonly ["Accordion", "Alert", "AlertDialog", "Agenda", "AspectRatio", "Attachment", "Autocomplete", "Avatar", "BackToTop", "Badge", "BarChart", "Breadcrumb", "Bubble", "Button", "ButtonGroup", "Calendar", "Callout", "Card", "CardContent", "CardDescription", "CardFooter", "CardHeader", "CardTitle", "Carousel", "Chart", "Checkbox", "CheckboxGroup", "Collapsible", "Code", "CodeTabs", "Combobox", "Container", "CopyButton", "Command", "ContextMenu", "ColorPicker", "DataTable", "DatePicker", "DateRangePicker", "Dialog", "Direction", "Drawer", "DropdownMenu", "Empty", "ErrorSummary", "Eyebrow", "Field", "FieldError", "FloatingBadge", "Form", "FormattedDate", "HoverCard", "Icon", "Image", "Input", "InputGroup", "InputOTP", "Item", "Kbd", "Label", "Link", "LineChart", "ListBox", "Marker", "Menubar", "Message", "MessageScroller", "NativeSelect", "NavigationMenu", "NumberField", "Pagination", "PasswordField", "PhoneInput", "PieChart", "Pill", "Popover", "Progress", "Prose", "RadioGroup", "Resizable", "RichTextEditor", "ScrollArea", "ScrollProgress", "Schedule", "SearchField", "Select", "Separator", "Sheet", "Sidebar", "Skeleton", "SkipLink", "Slider", "Sonner", "Sparkline", "Spinner", "Switch", "Table", "Tabs", "TagGroup", "Textarea", "ThemeBuilder", "ThemeToggle", "TimeField", "Toast", "Toggle", "ToggleGroup", "Tooltip", "Tree", "TreeGrid", "Typography", "VirtualList", "LanguageToggle", "Particles", "AnimatedNumber", "RevealGroup", "ScrollReveal", "Stat", "StatDescription", "StatIcon", "StatLabel", "StatTrend", "StatValue", "Stack", "Meter", "Note", "Rating", "Timeline", "AnimatedLogo", "AnimatedPortrait", "ButtonLink", "CoverImage", "GradientDivider", "Stepper", "FileUpload", "Tour", "Anchor", "Segmented", "Toolbar", "Descriptions", "Popconfirm", "Transfer", "Cascader", "TreeSelect", "Mentions", "QRCode", "Watermark", "Affix", "SpeedDial", "Grid", "VisuallyHidden"];
1
+ export declare const lumenComponentNames: readonly ["Accordion", "Alert", "AlertDialog", "Agenda", "AspectRatio", "Attachment", "Autocomplete", "Avatar", "BackToTop", "Badge", "BarChart", "Breadcrumb", "Bubble", "Button", "ButtonGroup", "Calendar", "Callout", "Card", "CardContent", "CardDescription", "CardFooter", "CardHeader", "CardTitle", "Carousel", "Chart", "Checkbox", "CheckboxGroup", "Collapsible", "Code", "CodeTabs", "Combobox", "Container", "CopyButton", "Command", "ContextNavigation", "ContextMenu", "ColorPicker", "DataTable", "DatePicker", "DateRangePicker", "Dialog", "Direction", "Drawer", "DropdownMenu", "Empty", "ErrorSummary", "Eyebrow", "Field", "FieldError", "FloatingBadge", "Form", "FormattedDate", "HoverCard", "Icon", "Image", "Input", "InputGroup", "InputOTP", "Item", "KanbanBoard", "KanbanColumn", "Kbd", "Label", "Link", "LineChart", "ListBox", "Marker", "Menubar", "Message", "MessageScroller", "NativeSelect", "NavigationMenu", "NumberField", "Pagination", "PasswordField", "PhoneInput", "PieChart", "Pill", "Popover", "Progress", "Prose", "RadioGroup", "Resizable", "RichTextEditor", "ScrollArea", "ScrollProgress", "Schedule", "SearchField", "Select", "Separator", "Sheet", "Sidebar", "Skeleton", "SkipLink", "Slider", "Sonner", "Sparkline", "Spinner", "Switch", "Table", "Tabs", "TagGroup", "Textarea", "ThemeBuilder", "ThemeToggle", "TimeField", "Toast", "Toggle", "ToggleGroup", "Tooltip", "Tree", "TreeGrid", "Typography", "VirtualList", "LanguageToggle", "Particles", "AnimatedNumber", "RevealGroup", "ScrollReveal", "Stat", "StatDescription", "StatIcon", "StatLabel", "StatTrend", "StatValue", "Stack", "Meter", "Note", "Rating", "Timeline", "AnimatedLogo", "AnimatedPortrait", "ButtonLink", "CoverImage", "GradientDivider", "Stepper", "FileUpload", "Tour", "Anchor", "Segmented", "Toolbar", "Descriptions", "Popconfirm", "Transfer", "Cascader", "TreeSelect", "Mentions", "QRCode", "Watermark", "Affix", "SpeedDial", "Grid", "VisuallyHidden"];
2
2
  export type LumenComponentName = typeof lumenComponentNames[number];
3
3
  export interface LumenComponentBehavior {
4
4
  astro: 'none' | 'ui-primitives';
@@ -217,6 +217,11 @@ export declare const lumenComponentBehavior: {
217
217
  readonly elements: "registered-element";
218
218
  readonly react: "component";
219
219
  };
220
+ readonly ContextNavigation: {
221
+ readonly astro: "none";
222
+ readonly elements: "registered-element";
223
+ readonly react: "component";
224
+ };
220
225
  readonly ContextMenu: {
221
226
  readonly astro: "ui-primitives";
222
227
  readonly elements: "registered-element";
@@ -357,6 +362,16 @@ export declare const lumenComponentBehavior: {
357
362
  readonly elements: "registered-element";
358
363
  readonly react: "component";
359
364
  };
365
+ readonly KanbanBoard: {
366
+ readonly astro: "ui-primitives";
367
+ readonly elements: "registered-element";
368
+ readonly react: "hook";
369
+ };
370
+ readonly KanbanColumn: {
371
+ readonly astro: "none";
372
+ readonly elements: "registered-element";
373
+ readonly react: "component";
374
+ };
360
375
  readonly Kbd: {
361
376
  readonly astro: "none";
362
377
  readonly elements: "registered-element";
@@ -368,7 +383,7 @@ export declare const lumenComponentBehavior: {
368
383
  readonly react: "component";
369
384
  };
370
385
  readonly LanguageToggle: {
371
- readonly astro: "none";
386
+ readonly astro: "ui-primitives";
372
387
  readonly elements: "registered-element";
373
388
  readonly react: "component";
374
389
  };
@@ -819,6 +834,12 @@ export declare const lumenStylingContracts: {
819
834
  readonly rootSlot: "code-tabs";
820
835
  readonly stability: "stable";
821
836
  };
837
+ readonly ContextNavigation: {
838
+ readonly customProperties: readonly ["--ui-context-navigation-gap", "--ui-context-navigation-min-height", "--ui-context-navigation-padding"];
839
+ readonly parts: readonly ["context-navigation-context"];
840
+ readonly rootSlot: "context-navigation";
841
+ readonly stability: "stable";
842
+ };
822
843
  readonly Link: {
823
844
  readonly customProperties: readonly ["--ui-link-font-weight", "--ui-link-underline-offset"];
824
845
  readonly parts: readonly [];
@@ -859,7 +880,7 @@ export declare const lumenStylingContracts: {
859
880
  export interface LumenPackageTarget {
860
881
  name: string;
861
882
  packageName: string;
862
- runtime: 'astro' | 'core' | 'elements' | 'icons' | 'react' | 'umbrella';
883
+ runtime: 'astro' | 'compose' | 'core' | 'elements' | 'icons' | 'react' | 'react-native' | 'swift' | 'tokens' | 'umbrella';
863
884
  }
864
885
  export declare const lumenPackages: readonly [{
865
886
  readonly name: "Lumen";
@@ -885,6 +906,22 @@ export declare const lumenPackages: readonly [{
885
906
  readonly name: "Lumen Elements";
886
907
  readonly packageName: "@santi020k/lumen-elements";
887
908
  readonly runtime: "elements";
909
+ }, {
910
+ readonly name: "Lumen React Native";
911
+ readonly packageName: "@santi020k/lumen-react-native";
912
+ readonly runtime: "react-native";
913
+ }, {
914
+ readonly name: "Lumen Tokens";
915
+ readonly packageName: "@santi020k/lumen-tokens";
916
+ readonly runtime: "tokens";
917
+ }, {
918
+ readonly name: "Lumen SwiftUI";
919
+ readonly packageName: "LumenUI";
920
+ readonly runtime: "swift";
921
+ }, {
922
+ readonly name: "Lumen Compose";
923
+ readonly packageName: "com.santi020k:lumen-compose";
924
+ readonly runtime: "compose";
888
925
  }, {
889
926
  readonly name: "Lumen Brand Icons";
890
927
  readonly packageName: "@santi020k/lumen-icons-brand";
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,o2DAuJtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;CACrC;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4J8C,CAAA;AAEjF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAA;IACxC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;EAiBkB,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,SAAS,QAAQ,MAAM,EAAE,EAAE,CAAA;IAC7C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,QAAQ,CAAA;CACpB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2E4C,CAAA;AAE9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAA;CACxE;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBwB,CAAA"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,w5DA0JtB,CAAA;AAEV,MAAM,MAAM,kBAAkB,GAAG,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAEnE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,KAAK,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAA;CACrC;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+J8C,CAAA;AAEjF,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAAA;IACvC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAAA;IACxC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;CACvB;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;EAiBkB,CAAA;AAEnD,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,SAAS,QAAQ,MAAM,EAAE,EAAE,CAAA;IAC7C,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,QAAQ,CAAA;CACpB;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF4C,CAAA;AAE9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,GACd,SAAS,GACT,MAAM,GACN,UAAU,GACV,OAAO,GACP,OAAO,GACP,cAAc,GACd,OAAO,GACP,QAAQ,GACR,UAAU,CAAA;CACb;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BwB,CAAA"}
@@ -33,6 +33,7 @@ export const lumenComponentNames = [
33
33
  'Container',
34
34
  'CopyButton',
35
35
  'Command',
36
+ 'ContextNavigation',
36
37
  'ContextMenu',
37
38
  'ColorPicker',
38
39
  'DataTable',
@@ -57,6 +58,8 @@ export const lumenComponentNames = [
57
58
  'InputGroup',
58
59
  'InputOTP',
59
60
  'Item',
61
+ 'KanbanBoard',
62
+ 'KanbanColumn',
60
63
  'Kbd',
61
64
  'Label',
62
65
  'Link',
@@ -193,6 +196,7 @@ export const lumenComponentBehavior = {
193
196
  Command: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
194
197
  Container: { astro: 'none', elements: 'registered-element', react: 'component' },
195
198
  CopyButton: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
199
+ ContextNavigation: { astro: 'none', elements: 'registered-element', react: 'component' },
196
200
  ContextMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
197
201
  CoverImage: { astro: 'none', elements: 'registered-element', react: 'component' },
198
202
  DataTable: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
@@ -221,9 +225,11 @@ export const lumenComponentBehavior = {
221
225
  InputGroup: { astro: 'none', elements: 'registered-element', react: 'component' },
222
226
  InputOTP: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
223
227
  Item: { astro: 'none', elements: 'registered-element', react: 'component' },
228
+ KanbanBoard: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
229
+ KanbanColumn: { astro: 'none', elements: 'registered-element', react: 'component' },
224
230
  Kbd: { astro: 'none', elements: 'registered-element', react: 'component' },
225
231
  Label: { astro: 'none', elements: 'registered-element', react: 'component' },
226
- LanguageToggle: { astro: 'none', elements: 'registered-element', react: 'component' },
232
+ LanguageToggle: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
227
233
  LineChart: { astro: 'none', elements: 'registered-element', react: 'component' },
228
234
  Link: { astro: 'none', elements: 'registered-element', react: 'component' },
229
235
  ListBox: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
@@ -364,6 +370,16 @@ export const lumenStylingContracts = {
364
370
  rootSlot: 'code-tabs',
365
371
  stability: 'stable'
366
372
  },
373
+ ContextNavigation: {
374
+ customProperties: [
375
+ '--ui-context-navigation-gap',
376
+ '--ui-context-navigation-min-height',
377
+ '--ui-context-navigation-padding'
378
+ ],
379
+ parts: ['context-navigation-context'],
380
+ rootSlot: 'context-navigation',
381
+ stability: 'stable'
382
+ },
367
383
  Link: {
368
384
  customProperties: ['--ui-link-font-weight', '--ui-link-underline-offset'],
369
385
  parts: [],
@@ -412,6 +428,18 @@ export const lumenPackages = [
412
428
  runtime: 'react'
413
429
  },
414
430
  { name: 'Lumen Elements', packageName: '@santi020k/lumen-elements', runtime: 'elements' },
431
+ {
432
+ name: 'Lumen React Native',
433
+ packageName: '@santi020k/lumen-react-native',
434
+ runtime: 'react-native'
435
+ },
436
+ { name: 'Lumen Tokens', packageName: '@santi020k/lumen-tokens', runtime: 'tokens' },
437
+ { name: 'Lumen SwiftUI', packageName: 'LumenUI', runtime: 'swift' },
438
+ {
439
+ name: 'Lumen Compose',
440
+ packageName: 'com.santi020k:lumen-compose',
441
+ runtime: 'compose'
442
+ },
415
443
  {
416
444
  name: 'Lumen Brand Icons',
417
445
  packageName: '@santi020k/lumen-icons-brand',
@@ -1 +1 @@
1
- {"version":3,"file":"figma.d.ts","sourceRoot":"","sources":["../src/figma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,oBAAoB,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,sBAAsB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACT,aAAa,GACb,WAAW,GACX,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,QAAQ,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC,CAAA;CAChF;AAuGD,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAUpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAMlD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,OAAO,mBAAmB,EAC1B,eAAgB,KACf,MAAmD,CAAA;AAEtD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,gBAAgB,EACxB,UAAS,+BAAoC,KAC5C,4BAwBF,CAAA;AAuCD,eAAO,MAAM,uBAAuB,GAClC,QAAQ,gBAAgB,KACvB,sBAyCD,CAAA"}
1
+ {"version":3,"file":"figma.d.ts","sourceRoot":"","sources":["../src/figma.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EAEvB,gBAAgB,EACjB,MAAM,YAAY,CAAA;AAOnB,MAAM,WAAW,oBAAoB;IACnC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,oBAAoB,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,kBAAkB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,sBAAsB,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,+BAA+B;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACT,aAAa,GACb,WAAW,GACX,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,QAAQ,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC,CAAA;CAChF;AAyGD,eAAO,MAAM,oBAAoB,GAAI,OAAO,MAAM,KAAG,oBAUpD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,KAAG,MAMlD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,OAAO,mBAAmB,EAC1B,eAAgB,KACf,MAAmD,CAAA;AAEtD,eAAO,MAAM,yBAAyB,GACpC,QAAQ,gBAAgB,EACxB,UAAS,+BAAoC,KAC5C,4BAwBF,CAAA;AAuCD,eAAO,MAAM,uBAAuB,GAClC,QAAQ,gBAAgB,KACvB,sBAyCD,CAAA"}
package/dist/figma.js CHANGED
@@ -23,6 +23,8 @@ const lumenTokenDescriptions = {
23
23
  'ink-muted': 'Muted foreground color for secondary content.',
24
24
  'ink-soft': 'Soft foreground color for tertiary content.',
25
25
  line: 'Borders, dividers, and structural lines.',
26
+ 'on-brand': 'Readable foreground placed on a solid brand fill.',
27
+ 'on-danger': 'Readable foreground placed on a solid danger fill.',
26
28
  success: 'Positive or complete status color.',
27
29
  surface: 'Default component surface.',
28
30
  'surface-muted': 'Subtle component surface.',
@@ -0,0 +1,130 @@
1
+ export declare const lumenColorTokens: {
2
+ readonly light: {
3
+ readonly canvas: "#FFFFFF";
4
+ readonly surface: "#FFFFFF";
5
+ readonly surfaceMuted: "#F3F4F6";
6
+ readonly surfaceStrong: "#E5E7EB";
7
+ readonly line: "#D7DAE0";
8
+ readonly ink: "#0F1729";
9
+ readonly inkSoft: "#454F5F";
10
+ readonly inkMuted: "#6C7889";
11
+ readonly brand: "#2463EB";
12
+ readonly brandSolid: "#1452D7";
13
+ readonly brandSoft: "#F0F5FF";
14
+ readonly onBrand: "#FFFFFF";
15
+ readonly accent: "#16A286";
16
+ readonly success: "#1B9D4A";
17
+ readonly warning: "#F59F0A";
18
+ readonly danger: "#EF4343";
19
+ readonly onDanger: "#000000";
20
+ };
21
+ readonly dark: {
22
+ readonly canvas: "#101219";
23
+ readonly surface: "#171A21";
24
+ readonly surfaceMuted: "#20242C";
25
+ readonly surfaceStrong: "#303540";
26
+ readonly line: "#393F4C";
27
+ readonly ink: "#F3F5F7";
28
+ readonly inkSoft: "#BCC3CD";
29
+ readonly inkMuted: "#949CA8";
30
+ readonly brand: "#29B4F5";
31
+ readonly brandSolid: "#087AAF";
32
+ readonly brandSoft: "#07354B";
33
+ readonly onBrand: "#FFFFFF";
34
+ readonly accent: "#1AC19A";
35
+ readonly success: "#24C25E";
36
+ readonly warning: "#F6A823";
37
+ readonly danger: "#F15B5B";
38
+ readonly onDanger: "#101219";
39
+ };
40
+ };
41
+ export declare const lumenCssColorTokens: {
42
+ readonly light: {
43
+ readonly canvas: "0 0% 100%";
44
+ readonly surface: "0 0% 100%";
45
+ readonly surfaceMuted: "220 14% 96%";
46
+ readonly surfaceStrong: "220 13% 91%";
47
+ readonly line: "220 13% 86%";
48
+ readonly ink: "222 47% 11%";
49
+ readonly inkSoft: "215 16% 32%";
50
+ readonly inkMuted: "215 12% 48%";
51
+ readonly brand: "221 83% 53%";
52
+ readonly brandSolid: "221 83% 46%";
53
+ readonly brandSoft: "218 100% 97%";
54
+ readonly onBrand: "0 0% 100%";
55
+ readonly accent: "168 76% 36%";
56
+ readonly success: "142 71% 36%";
57
+ readonly warning: "38 92% 50%";
58
+ readonly danger: "0 84% 60%";
59
+ readonly onDanger: "0 0% 0%";
60
+ };
61
+ readonly dark: {
62
+ readonly canvas: "224 24% 8%";
63
+ readonly surface: "224 18% 11%";
64
+ readonly surfaceMuted: "223 16% 15%";
65
+ readonly surfaceStrong: "222 14% 22%";
66
+ readonly line: "222 14% 26%";
67
+ readonly ink: "210 20% 96%";
68
+ readonly inkSoft: "214 14% 77%";
69
+ readonly inkMuted: "216 10% 62%";
70
+ readonly brand: "199 91% 56%";
71
+ readonly brandSolid: "199 91% 36%";
72
+ readonly brandSoft: "199 84% 16%";
73
+ readonly onBrand: "0 0% 100%";
74
+ readonly accent: "166 76% 43%";
75
+ readonly success: "142 69% 45%";
76
+ readonly warning: "38 92% 55%";
77
+ readonly danger: "0 84% 65%";
78
+ readonly onDanger: "224 24% 8%";
79
+ };
80
+ };
81
+ export declare const lumenSpacing: {
82
+ readonly zero: 0;
83
+ readonly xs: 4;
84
+ readonly sm: 8;
85
+ readonly md: 12;
86
+ readonly lg: 16;
87
+ readonly xl: 24;
88
+ readonly "2xl": 32;
89
+ readonly "3xl": 48;
90
+ };
91
+ export declare const lumenRadii: {
92
+ readonly sm: 6;
93
+ readonly md: 10;
94
+ readonly lg: 12;
95
+ readonly full: 9999;
96
+ };
97
+ export declare const lumenFontFamilies: {
98
+ readonly sans: readonly ["Montserrat", "Avenir Next", "Segoe UI", "sans-serif"];
99
+ };
100
+ export declare const lumenFontSizes: {
101
+ readonly xs: 12;
102
+ readonly sm: 14;
103
+ readonly md: 16;
104
+ readonly lg: 18;
105
+ readonly xl: 20;
106
+ readonly "2xl": 24;
107
+ };
108
+ export declare const lumenFontWeights: {
109
+ readonly regular: 400;
110
+ readonly medium: 500;
111
+ readonly semibold: 600;
112
+ readonly bold: 700;
113
+ };
114
+ export declare const lumenDurations: {
115
+ readonly fast: 120;
116
+ readonly standard: 160;
117
+ readonly slow: 300;
118
+ };
119
+ export declare const lumenEasings: {
120
+ readonly standard: readonly [0.32, 0.72, 0, 1];
121
+ readonly emphasized: readonly [0.22, 1, 0.36, 1];
122
+ };
123
+ export declare const lumenElevation: {
124
+ readonly resting: 1;
125
+ readonly raised: 3;
126
+ readonly overlay: 6;
127
+ };
128
+ export type LumenColorScheme = keyof typeof lumenColorTokens;
129
+ export type LumenSemanticColor = keyof typeof lumenColorTokens.light;
130
+ //# sourceMappingURL=foundations.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundations.generated.d.ts","sourceRoot":"","sources":["../src/foundations.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCnB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCtB,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;CAKb,CAAA;AAEV,eAAO,MAAM,iBAAiB;;CAEpB,CAAA;AAEV,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAA;AAEV,eAAO,MAAM,gBAAgB;;;;;CAKnB,CAAA;AAEV,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AAEV,eAAO,MAAM,YAAY;;;CAGf,CAAA;AAEV,eAAO,MAAM,cAAc;;;;CAIjB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAC5D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC,KAAK,CAAA"}
@@ -0,0 +1,128 @@
1
+ /* This file is generated by scripts/generate-platform-tokens.mjs. */
2
+ export const lumenColorTokens = {
3
+ light: {
4
+ canvas: "#FFFFFF",
5
+ surface: "#FFFFFF",
6
+ surfaceMuted: "#F3F4F6",
7
+ surfaceStrong: "#E5E7EB",
8
+ line: "#D7DAE0",
9
+ ink: "#0F1729",
10
+ inkSoft: "#454F5F",
11
+ inkMuted: "#6C7889",
12
+ brand: "#2463EB",
13
+ brandSolid: "#1452D7",
14
+ brandSoft: "#F0F5FF",
15
+ onBrand: "#FFFFFF",
16
+ accent: "#16A286",
17
+ success: "#1B9D4A",
18
+ warning: "#F59F0A",
19
+ danger: "#EF4343",
20
+ onDanger: "#000000"
21
+ },
22
+ dark: {
23
+ canvas: "#101219",
24
+ surface: "#171A21",
25
+ surfaceMuted: "#20242C",
26
+ surfaceStrong: "#303540",
27
+ line: "#393F4C",
28
+ ink: "#F3F5F7",
29
+ inkSoft: "#BCC3CD",
30
+ inkMuted: "#949CA8",
31
+ brand: "#29B4F5",
32
+ brandSolid: "#087AAF",
33
+ brandSoft: "#07354B",
34
+ onBrand: "#FFFFFF",
35
+ accent: "#1AC19A",
36
+ success: "#24C25E",
37
+ warning: "#F6A823",
38
+ danger: "#F15B5B",
39
+ onDanger: "#101219"
40
+ }
41
+ };
42
+ export const lumenCssColorTokens = {
43
+ light: {
44
+ canvas: "0 0% 100%",
45
+ surface: "0 0% 100%",
46
+ surfaceMuted: "220 14% 96%",
47
+ surfaceStrong: "220 13% 91%",
48
+ line: "220 13% 86%",
49
+ ink: "222 47% 11%",
50
+ inkSoft: "215 16% 32%",
51
+ inkMuted: "215 12% 48%",
52
+ brand: "221 83% 53%",
53
+ brandSolid: "221 83% 46%",
54
+ brandSoft: "218 100% 97%",
55
+ onBrand: "0 0% 100%",
56
+ accent: "168 76% 36%",
57
+ success: "142 71% 36%",
58
+ warning: "38 92% 50%",
59
+ danger: "0 84% 60%",
60
+ onDanger: "0 0% 0%"
61
+ },
62
+ dark: {
63
+ canvas: "224 24% 8%",
64
+ surface: "224 18% 11%",
65
+ surfaceMuted: "223 16% 15%",
66
+ surfaceStrong: "222 14% 22%",
67
+ line: "222 14% 26%",
68
+ ink: "210 20% 96%",
69
+ inkSoft: "214 14% 77%",
70
+ inkMuted: "216 10% 62%",
71
+ brand: "199 91% 56%",
72
+ brandSolid: "199 91% 36%",
73
+ brandSoft: "199 84% 16%",
74
+ onBrand: "0 0% 100%",
75
+ accent: "166 76% 43%",
76
+ success: "142 69% 45%",
77
+ warning: "38 92% 55%",
78
+ danger: "0 84% 65%",
79
+ onDanger: "224 24% 8%"
80
+ }
81
+ };
82
+ export const lumenSpacing = {
83
+ zero: 0,
84
+ xs: 4,
85
+ sm: 8,
86
+ md: 12,
87
+ lg: 16,
88
+ xl: 24,
89
+ "2xl": 32,
90
+ "3xl": 48
91
+ };
92
+ export const lumenRadii = {
93
+ sm: 6,
94
+ md: 10,
95
+ lg: 12,
96
+ full: 9999
97
+ };
98
+ export const lumenFontFamilies = {
99
+ sans: ["Montserrat", "Avenir Next", "Segoe UI", "sans-serif"]
100
+ };
101
+ export const lumenFontSizes = {
102
+ xs: 12,
103
+ sm: 14,
104
+ md: 16,
105
+ lg: 18,
106
+ xl: 20,
107
+ "2xl": 24
108
+ };
109
+ export const lumenFontWeights = {
110
+ regular: 400,
111
+ medium: 500,
112
+ semibold: 600,
113
+ bold: 700
114
+ };
115
+ export const lumenDurations = {
116
+ fast: 120,
117
+ standard: 160,
118
+ slow: 300
119
+ };
120
+ export const lumenEasings = {
121
+ standard: [0.32, 0.72, 0, 1],
122
+ emphasized: [0.22, 1, 0.36, 1]
123
+ };
124
+ export const lumenElevation = {
125
+ resting: 1,
126
+ raised: 3,
127
+ overlay: 6
128
+ };
package/dist/index.d.ts CHANGED
@@ -5,10 +5,12 @@ export { applyDataViewState, createDataViewRequestUrl, createDataViewSearchParam
5
5
  export { createFigmaVariableName, exportThemeDesignTokens, exportThemeFigmaVariables, hslTokenToFigmaColor, hslTokenToHexColor, type LumenDesignToken, type LumenDesignTokenExport, type LumenDesignTokenType, type LumenEffectDesignToken, type LumenFigmaColorValue, type LumenFigmaVariable, type LumenFigmaVariableCollection, type LumenFigmaVariableExportOptions, type LumenFigmaVariableMode, type LumenStructureDesignToken } from './figma.js';
6
6
  export { createLumenFormFailure, createLumenFormSuccess, getLumenFieldErrors, type LumenFieldError, type LumenFormErrorInput, type LumenFormErrors, type LumenFormFailure, type LumenFormResult, type LumenFormStatus, lumenFormStatuses, type LumenFormSuccess, normalizeLumenFormErrors } from './forms.js';
7
7
  export { getLumenIcon, getLumenIconPack, getRegisteredLumenIconNames, type LumenIconData, type LumenIconName, lumenIconNames, type LumenIconNode, type LumenIconPack, lumenIcons, type LumenIconStyle, registerLumenIconPack, renderLumenIconSvg, resolveLumenIconName } from './icons.js';
8
+ export { createLumenKanbanMoveDetail, getAdjacentKanbanColumn, type LumenKanbanMoveDetail, type LumenKanbanMoveInput } from './kanban.js';
9
+ export { formatLumenLanguageLabel, getLumenLocalePair, lumenDefaultLocales, type LumenLocaleOption, normalizeLumenLocales } from './language.js';
8
10
  export { type LumenAstroPropsResult, type LumenClassValue, type LumenGlass, resolveLumenAstroProps, resolveLumenGlass } from './props.js';
9
11
  export { getLumenRichTextShortcut, isLumenRichTextToggleCommand, type LumenRichTextChangeDetail, type LumenRichTextCommandDetail, type LumenRichTextShortcutEvent, type LumenRichTextToggleCommand, lumenRichTextToggleCommands } from './rich-text.js';
10
12
  export { canPlaceScheduleEvent, createScheduleSlots, createScheduleStorageKey, expandRecurringScheduleEvent, getScheduleConflicts, loadScheduleEvents, type LumenScheduleConflict, type LumenScheduleEvent, type LumenScheduleKeyValueReader, type LumenScheduleKeyValueStorage, type LumenScheduleKeyValueWriter, type LumenScheduleResizeEdge, type LumenScheduleResizeOptions, type LumenScheduleResource, type LumenScheduleSlot, moveScheduleEvent, parseScheduleEvents, resizeScheduleEvent, resizeScheduleEvents, saveScheduleEvents, scheduleEventsOverlap, serializeScheduleEvents } from './schedule.js';
11
13
  export { createThemeFromHue, createThemePalette, exportThemeCss, getContrastRatio, type LumenColorTokenName, lumenColorTokenNames, type LumenContrastScore, type LumenGlassColorTokenName, lumenGlassColorTokenNames, type LumenGlassEffectTokenName, lumenGlassEffectTokenNames, type LumenGlassTokenName, lumenGlassTokenNames, type LumenMotionTokenName, lumenMotionTokenNames, type LumenRadiusTokenName, lumenRadiusTokenNames, type LumenSemanticColorTokenName, lumenSemanticColorTokenNames, type LumenShadowTokenName, lumenShadowTokenNames, type LumenStructureTokenName, lumenStructureTokenNames, type LumenThemeContrastSuggestion, type LumenThemeFromHueOptions, type LumenThemeTokenName, type LumenThemeTokens, lumenTokenNames, type LumenTypographyTokenName, lumenTypographyTokenNames, mergeThemeTokens, parseThemeCss, scoreThemeContrast, suggestReadableInk, tuneThemeContrast } from './theme.js';
12
14
  export { coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, createThemeBuilderTokens, exportThemeBuilderCss, exportThemeBuilderValue, type LumenThemeBuilderExportFormat, type LumenThemeBuilderMode, type LumenThemeBuilderOptions, type LumenThemeBuilderResult, type LumenThemeBuilderScheme, normalizeThemeBuilderHex, normalizeThemeBuilderHue, themeBuilderHexToHsl } from './theme-builder.js';
13
- export { composeClassName, lumenChart, lumenColors, lumenDarkTheme, lumenFont, lumenGlass, lumenLightTheme, lumenMotion, lumenRadius, lumenShadow, lumenThemeAttribute } from './tokens.js';
15
+ export { composeClassName, lumenChart, lumenColors, type LumenColorScheme, lumenColorTokens, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, lumenDurations, lumenEasings, lumenElevation, lumenFont, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenGlass, lumenLightTheme, lumenMotion, lumenRadii, lumenRadius, type LumenSemanticColor, lumenShadow, lumenSpacing, lumenThemeAttribute } from './tokens.js';
14
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,9 +5,11 @@ export { applyDataViewState, createDataViewRequestUrl, createDataViewSearchParam
5
5
  export { createFigmaVariableName, exportThemeDesignTokens, exportThemeFigmaVariables, hslTokenToFigmaColor, hslTokenToHexColor } from './figma.js';
6
6
  export { createLumenFormFailure, createLumenFormSuccess, getLumenFieldErrors, lumenFormStatuses, normalizeLumenFormErrors } from './forms.js';
7
7
  export { getLumenIcon, getLumenIconPack, getRegisteredLumenIconNames, lumenIconNames, lumenIcons, registerLumenIconPack, renderLumenIconSvg, resolveLumenIconName } from './icons.js';
8
+ export { createLumenKanbanMoveDetail, getAdjacentKanbanColumn } from './kanban.js';
9
+ export { formatLumenLanguageLabel, getLumenLocalePair, lumenDefaultLocales, normalizeLumenLocales } from './language.js';
8
10
  export { resolveLumenAstroProps, resolveLumenGlass } from './props.js';
9
11
  export { getLumenRichTextShortcut, isLumenRichTextToggleCommand, lumenRichTextToggleCommands } from './rich-text.js';
10
12
  export { canPlaceScheduleEvent, createScheduleSlots, createScheduleStorageKey, expandRecurringScheduleEvent, getScheduleConflicts, loadScheduleEvents, moveScheduleEvent, parseScheduleEvents, resizeScheduleEvent, resizeScheduleEvents, saveScheduleEvents, scheduleEventsOverlap, serializeScheduleEvents } from './schedule.js';
11
13
  export { createThemeFromHue, createThemePalette, exportThemeCss, getContrastRatio, lumenColorTokenNames, lumenGlassColorTokenNames, lumenGlassEffectTokenNames, lumenGlassTokenNames, lumenMotionTokenNames, lumenRadiusTokenNames, lumenSemanticColorTokenNames, lumenShadowTokenNames, lumenStructureTokenNames, lumenTokenNames, lumenTypographyTokenNames, mergeThemeTokens, parseThemeCss, scoreThemeContrast, suggestReadableInk, tuneThemeContrast } from './theme.js';
12
14
  export { coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, createThemeBuilderTokens, exportThemeBuilderCss, exportThemeBuilderValue, normalizeThemeBuilderHex, normalizeThemeBuilderHue, themeBuilderHexToHsl } from './theme-builder.js';
13
- export { composeClassName, lumenChart, lumenColors, lumenDarkTheme, lumenFont, lumenGlass, lumenLightTheme, lumenMotion, lumenRadius, lumenShadow, lumenThemeAttribute } from './tokens.js';
15
+ export { composeClassName, lumenChart, lumenColors, lumenColorTokens, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, lumenDurations, lumenEasings, lumenElevation, lumenFont, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenGlass, lumenLightTheme, lumenMotion, lumenRadii, lumenRadius, lumenShadow, lumenSpacing, lumenThemeAttribute } from './tokens.js';
@@ -0,0 +1,11 @@
1
+ export type LumenKanbanMoveInput = 'keyboard' | 'pointer';
2
+ export interface LumenKanbanMoveDetail {
3
+ beforeId?: string;
4
+ fromColumn: string;
5
+ input: LumenKanbanMoveInput;
6
+ itemId: string;
7
+ toColumn: string;
8
+ }
9
+ export declare const createLumenKanbanMoveDetail: ({ beforeId, fromColumn, input, itemId, toColumn }: LumenKanbanMoveDetail) => LumenKanbanMoveDetail | null;
10
+ export declare const getAdjacentKanbanColumn: (columns: readonly string[], currentColumn: string, direction: -1 | 1, rightToLeft?: boolean) => string | undefined;
11
+ //# sourceMappingURL=kanban.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kanban.d.ts","sourceRoot":"","sources":["../src/kanban.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,2BAA2B,GAAI,mDAMzC,qBAAqB,KAAG,qBAAqB,GAAG,IAgBlD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,SAAS,SAAS,MAAM,EAAE,EAC1B,eAAe,MAAM,EACrB,WAAW,CAAC,CAAC,GAAG,CAAC,EACjB,qBAAmB,KAClB,MAAM,GAAG,SASX,CAAA"}
package/dist/kanban.js ADDED
@@ -0,0 +1,23 @@
1
+ export const createLumenKanbanMoveDetail = ({ beforeId, fromColumn, input, itemId, toColumn }) => {
2
+ const normalizedItemId = itemId.trim();
3
+ const normalizedFromColumn = fromColumn.trim();
4
+ const normalizedToColumn = toColumn.trim();
5
+ const normalizedBeforeId = beforeId?.trim();
6
+ if (!normalizedItemId || !normalizedFromColumn || !normalizedToColumn)
7
+ return null;
8
+ return {
9
+ ...(normalizedBeforeId ? { beforeId: normalizedBeforeId } : {}),
10
+ fromColumn: normalizedFromColumn,
11
+ input,
12
+ itemId: normalizedItemId,
13
+ toColumn: normalizedToColumn
14
+ };
15
+ };
16
+ export const getAdjacentKanbanColumn = (columns, currentColumn, direction, rightToLeft = false) => {
17
+ const currentIndex = columns.indexOf(currentColumn);
18
+ if (currentIndex < 0)
19
+ return undefined;
20
+ const effectiveDirection = rightToLeft ? -direction : direction;
21
+ const nextIndex = currentIndex + effectiveDirection;
22
+ return columns[nextIndex];
23
+ };
@@ -0,0 +1,12 @@
1
+ export interface LumenLocaleOption {
2
+ label: string;
3
+ value: string;
4
+ }
5
+ export declare const lumenDefaultLocales: readonly LumenLocaleOption[];
6
+ export declare const normalizeLumenLocales: (locales: readonly LumenLocaleOption[] | undefined) => readonly LumenLocaleOption[];
7
+ export declare const getLumenLocalePair: (locales: readonly LumenLocaleOption[], value: string | undefined) => {
8
+ current: LumenLocaleOption;
9
+ next: LumenLocaleOption;
10
+ };
11
+ export declare const formatLumenLanguageLabel: (template: string, current: LumenLocaleOption, next: LumenLocaleOption) => string;
12
+ //# sourceMappingURL=language.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language.d.ts","sourceRoot":"","sources":["../src/language.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAID,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAG3D,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,SAAS,SAAS,iBAAiB,EAAE,GAAG,SAAS,KAChD,SAAS,iBAAiB,EAkB5B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,SAAS,SAAS,iBAAiB,EAAE,EACrC,OAAO,MAAM,GAAG,SAAS,KACxB;IAAE,OAAO,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAMvD,CAAA;AAED,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,SAAS,iBAAiB,EAC1B,MAAM,iBAAiB,KACtB,MAEgC,CAAA"}
@@ -0,0 +1,29 @@
1
+ const lumenDefaultLocale = { label: 'English', value: 'en' };
2
+ export const lumenDefaultLocales = [
3
+ lumenDefaultLocale,
4
+ { label: 'Español', value: 'es' }
5
+ ];
6
+ export const normalizeLumenLocales = (locales) => {
7
+ if (!locales?.length)
8
+ return lumenDefaultLocales;
9
+ const normalized = [];
10
+ const values = new Set();
11
+ for (const locale of locales) {
12
+ const label = locale.label.trim();
13
+ const value = locale.value.trim();
14
+ if (!label || !value || values.has(value))
15
+ continue;
16
+ normalized.push({ label, value });
17
+ values.add(value);
18
+ }
19
+ return normalized.length > 0 ? normalized : lumenDefaultLocales;
20
+ };
21
+ export const getLumenLocalePair = (locales, value) => {
22
+ const currentIndex = Math.max(0, locales.findIndex(locale => locale.value === value));
23
+ const current = locales[currentIndex] ?? lumenDefaultLocale;
24
+ const next = locales[(currentIndex + 1) % locales.length] ?? current;
25
+ return { current, next };
26
+ };
27
+ export const formatLumenLanguageLabel = (template, current, next) => template
28
+ .replaceAll('{current}', current.label)
29
+ .replaceAll('{next}', next.label);
package/dist/theme.d.ts CHANGED
@@ -9,7 +9,7 @@ export interface LumenThemeContrastSuggestion {
9
9
  foreground: string;
10
10
  ratio: number;
11
11
  }
12
- export declare const lumenSemanticColorTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "accent", "success", "warning", "danger"];
12
+ export declare const lumenSemanticColorTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "on-brand", "accent", "success", "warning", "danger", "on-danger"];
13
13
  export declare const lumenGlassColorTokenNames: readonly ["glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction"];
14
14
  export declare const lumenGlassEffectTokenNames: readonly ["glass-blur", "glass-saturate", "glass-brightness", "glass-shadow"];
15
15
  export declare const lumenGlassTokenNames: readonly ["glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-blur", "glass-saturate", "glass-brightness", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction", "glass-shadow"];
@@ -18,8 +18,8 @@ export declare const lumenShadowTokenNames: readonly ["ui-shadow-sm", "ui-shadow
18
18
  export declare const lumenTypographyTokenNames: readonly ["ui-font"];
19
19
  export declare const lumenMotionTokenNames: readonly ["ui-duration-fast", "ui-duration", "ui-duration-slow", "ui-ease", "ui-ease-emphasized"];
20
20
  export declare const lumenStructureTokenNames: readonly ["ui-radius-sm", "ui-radius", "ui-radius-lg", "ui-shadow-sm", "ui-shadow-md", "ui-shadow-lg", "ui-font", "ui-duration-fast", "ui-duration", "ui-duration-slow", "ui-ease", "ui-ease-emphasized"];
21
- export declare const lumenColorTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "accent", "success", "warning", "danger", "glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction"];
22
- export declare const lumenTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "accent", "success", "warning", "danger", "glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-blur", "glass-saturate", "glass-brightness", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction", "glass-shadow", "ui-radius-sm", "ui-radius", "ui-radius-lg", "ui-shadow-sm", "ui-shadow-md", "ui-shadow-lg", "ui-font", "ui-duration-fast", "ui-duration", "ui-duration-slow", "ui-ease", "ui-ease-emphasized"];
21
+ export declare const lumenColorTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "on-brand", "accent", "success", "warning", "danger", "on-danger", "glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction"];
22
+ export declare const lumenTokenNames: readonly ["canvas", "surface", "surface-muted", "surface-strong", "line", "ink", "ink-soft", "ink-muted", "brand", "brand-solid", "brand-soft", "on-brand", "accent", "success", "warning", "danger", "on-danger", "glass-bg", "glass-bg-subtle", "glass-bg-strong", "glass-border", "glass-highlight", "glass-blur", "glass-saturate", "glass-brightness", "glass-edge", "glass-edge-soft", "glass-shade", "glass-refraction", "glass-shadow", "ui-radius-sm", "ui-radius", "ui-radius-lg", "ui-shadow-sm", "ui-shadow-md", "ui-shadow-lg", "ui-font", "ui-duration-fast", "ui-duration", "ui-duration-slow", "ui-ease", "ui-ease-emphasized"];
23
23
  export type LumenSemanticColorTokenName = typeof lumenSemanticColorTokenNames[number];
24
24
  export type LumenGlassColorTokenName = typeof lumenGlassColorTokenNames[number];
25
25
  export type LumenGlassEffectTokenName = typeof lumenGlassEffectTokenNames[number];
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/theme.js CHANGED
@@ -10,10 +10,12 @@ export const lumenSemanticColorTokenNames = [
10
10
  'brand',
11
11
  'brand-solid',
12
12
  'brand-soft',
13
+ 'on-brand',
13
14
  'accent',
14
15
  'success',
15
16
  'warning',
16
- 'danger'
17
+ 'danger',
18
+ 'on-danger'
17
19
  ];
18
20
  export const lumenGlassColorTokenNames = [
19
21
  'glass-bg',
@@ -197,12 +199,14 @@ export const createThemePalette = (brand, accent = brand) => ({
197
199
  brand,
198
200
  'brand-soft': replaceTrailingIntegerPercentage(brand, 96),
199
201
  'brand-solid': brand,
202
+ 'on-brand': '0 0% 100%',
200
203
  canvas: '0 0% 100%',
201
204
  danger: '0 84% 60%',
202
205
  ink: '222 47% 11%',
203
206
  'ink-muted': '215 12% 48%',
204
207
  'ink-soft': '215 16% 32%',
205
208
  line: '220 13% 86%',
209
+ 'on-danger': '0 0% 0%',
206
210
  success: '142 71% 36%',
207
211
  surface: '0 0% 100%',
208
212
  'surface-muted': '220 14% 96%',
@@ -226,12 +230,14 @@ export const createThemeFromHue = (hue, options = {}) => {
226
230
  brand: `${h} 88% 60%`,
227
231
  'brand-soft': `${h} 80% 16%`,
228
232
  'brand-solid': `${h} 88% 46%`,
233
+ 'on-brand': '0 0% 100%',
229
234
  canvas: `${h} 24% 8%`,
230
235
  danger: '0 84% 65%',
231
236
  ink: `${h} 20% 96%`,
232
237
  'ink-muted': `${h} 10% 62%`,
233
238
  'ink-soft': `${h} 14% 77%`,
234
239
  line: `${h} 14% 26%`,
240
+ 'on-danger': `${h} 24% 8%`,
235
241
  success: '142 69% 45%',
236
242
  surface: `${h} 18% 11%`,
237
243
  'surface-muted': `${h} 16% 15%`,
@@ -246,12 +252,14 @@ export const createThemeFromHue = (hue, options = {}) => {
246
252
  brand: `${h} 85% 53%`,
247
253
  'brand-soft': `${h} 90% 96%`,
248
254
  'brand-solid': `${h} 85% 45%`,
255
+ 'on-brand': '0 0% 100%',
249
256
  canvas: `${h} 20% 99%`,
250
257
  danger: '0 84% 60%',
251
258
  ink: `${h} 40% 11%`,
252
259
  'ink-muted': `${h} 10% 48%`,
253
260
  'ink-soft': `${h} 14% 32%`,
254
261
  line: `${h} 14% 86%`,
262
+ 'on-danger': '0 0% 0%',
255
263
  success: '142 71% 36%',
256
264
  surface: `${h} 20% 100%`,
257
265
  'surface-muted': `${h} 16% 96%`,
package/dist/tokens.d.ts CHANGED
@@ -1,22 +1,44 @@
1
+ export { type LumenColorScheme, lumenColorTokens, lumenCssColorTokens, lumenDurations, lumenEasings, lumenElevation, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenRadii, type LumenSemanticColor, lumenSpacing } from './foundations.generated.js';
1
2
  export declare const lumenThemeAttribute = "data-theme";
2
3
  export declare const lumenDarkTheme = "dark";
3
4
  export declare const lumenLightTheme = "light";
4
5
  export declare const lumenColors: {
5
- readonly accent: "264 95% 57%";
6
- readonly brand: "264 92% 47%";
7
- readonly brandSoft: "264 60% 94%";
8
- readonly brandSolid: "264 92% 42%";
9
- readonly canvas: "268 20% 98%";
10
- readonly danger: "0 84% 60%";
11
- readonly ink: "268 10% 20%";
12
- readonly inkMuted: "268 6% 28%";
13
- readonly inkSoft: "268 8% 36%";
14
- readonly line: "268 15% 84%";
15
- readonly success: "142 76% 36%";
16
- readonly surface: "268 20% 100%";
17
- readonly surfaceMuted: "268 20% 96%";
18
- readonly surfaceStrong: "268 15% 90%";
6
+ readonly canvas: "0 0% 100%";
7
+ readonly surface: "0 0% 100%";
8
+ readonly surfaceMuted: "220 14% 96%";
9
+ readonly surfaceStrong: "220 13% 91%";
10
+ readonly line: "220 13% 86%";
11
+ readonly ink: "222 47% 11%";
12
+ readonly inkSoft: "215 16% 32%";
13
+ readonly inkMuted: "215 12% 48%";
14
+ readonly brand: "221 83% 53%";
15
+ readonly brandSolid: "221 83% 46%";
16
+ readonly brandSoft: "218 100% 97%";
17
+ readonly onBrand: "0 0% 100%";
18
+ readonly accent: "168 76% 36%";
19
+ readonly success: "142 71% 36%";
19
20
  readonly warning: "38 92% 50%";
21
+ readonly danger: "0 84% 60%";
22
+ readonly onDanger: "0 0% 0%";
23
+ };
24
+ export declare const lumenDarkColors: {
25
+ readonly canvas: "224 24% 8%";
26
+ readonly surface: "224 18% 11%";
27
+ readonly surfaceMuted: "223 16% 15%";
28
+ readonly surfaceStrong: "222 14% 22%";
29
+ readonly line: "222 14% 26%";
30
+ readonly ink: "210 20% 96%";
31
+ readonly inkSoft: "214 14% 77%";
32
+ readonly inkMuted: "216 10% 62%";
33
+ readonly brand: "199 91% 56%";
34
+ readonly brandSolid: "199 91% 36%";
35
+ readonly brandSoft: "199 84% 16%";
36
+ readonly onBrand: "0 0% 100%";
37
+ readonly accent: "166 76% 43%";
38
+ readonly success: "142 69% 45%";
39
+ readonly warning: "38 92% 55%";
40
+ readonly danger: "0 84% 65%";
41
+ readonly onDanger: "224 24% 8%";
20
42
  };
21
43
  export declare const lumenChart: {
22
44
  readonly axis: "var(--ink-muted)";
@@ -52,22 +74,22 @@ export declare const lumenGlass: {
52
74
  readonly shadow: "0 1px 2px hsl(222 47% 11% / 0.08), 0 12px 32px hsl(222 47% 11% / 0.12), 0 32px 80px hsl(222 47% 11% / 0.14)";
53
75
  };
54
76
  export declare const lumenRadius: {
55
- readonly base: "0.625rem";
56
- readonly lg: "0.75rem";
57
- readonly sm: "0.375rem";
77
+ readonly base: `${number}rem`;
78
+ readonly lg: `${number}rem`;
79
+ readonly sm: `${number}rem`;
58
80
  };
59
81
  export declare const lumenShadow: {
60
82
  readonly lg: "0 24px 64px hsl(222 47% 11% / 0.14)";
61
83
  readonly md: "0 8px 24px hsl(222 47% 11% / 0.08)";
62
84
  readonly sm: "0 1px 2px hsl(222 47% 11% / 0.06)";
63
85
  };
64
- export declare const lumenFont: "\"Montserrat\", \"Avenir Next\", \"Segoe UI\", sans-serif";
86
+ export declare const lumenFont: string;
65
87
  export declare const lumenMotion: {
66
88
  readonly duration: "160ms";
67
89
  readonly durationFast: "120ms";
68
90
  readonly durationSlow: "300ms";
69
- readonly ease: "cubic-bezier(0.32, 0.72, 0, 1)";
70
- readonly easeEmphasized: "cubic-bezier(0.22, 1, 0.36, 1)";
91
+ readonly ease: `cubic-bezier(${string})`;
92
+ readonly easeEmphasized: `cubic-bezier(${string})`;
71
93
  };
72
94
  export declare const composeClassName: (...classes: (boolean | null | string | undefined)[]) => string;
73
95
  //# sourceMappingURL=tokens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;CAgBd,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAiBb,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAcb,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,SAAS,EACpB,2DAA8D,CAAA;AAEhE,eAAO,MAAM,WAAW;;;;;;CAMd,CAAA;AAEV,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,WAAsC,CAAA"}
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,KAAK,kBAAkB,EACvB,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAElD,eAAO,MAAM,mBAAmB,eAAe,CAAA;AAC/C,eAAO,MAAM,cAAc,SAAS,CAAA;AACpC,eAAO,MAAM,eAAe,UAAU,CAAA;AAEtC,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAA4B,CAAA;AACpD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAA2B,CAAA;AAEvD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CAiBb,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CAcb,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,WAAW;;;;CAId,CAAA;AAEV,eAAO,MAAM,SAAS,QAET,CAAA;AAEb,eAAO,MAAM,WAAW;;;;;;CAMd,CAAA;AAEV,eAAO,MAAM,gBAAgB,GAAI,GAAG,SAAS,CAAC,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,WAAsC,CAAA"}
package/dist/tokens.js CHANGED
@@ -1,23 +1,10 @@
1
+ import { lumenCssColorTokens, lumenDurations, lumenEasings, lumenFontFamilies, lumenRadii } from './foundations.generated.js';
2
+ export { lumenColorTokens, lumenCssColorTokens, lumenDurations, lumenEasings, lumenElevation, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenRadii, lumenSpacing } from './foundations.generated.js';
1
3
  export const lumenThemeAttribute = 'data-theme';
2
4
  export const lumenDarkTheme = 'dark';
3
5
  export const lumenLightTheme = 'light';
4
- export const lumenColors = {
5
- accent: '264 95% 57%',
6
- brand: '264 92% 47%',
7
- brandSoft: '264 60% 94%',
8
- brandSolid: '264 92% 42%',
9
- canvas: '268 20% 98%',
10
- danger: '0 84% 60%',
11
- ink: '268 10% 20%',
12
- inkMuted: '268 6% 28%',
13
- inkSoft: '268 8% 36%',
14
- line: '268 15% 84%',
15
- success: '142 76% 36%',
16
- surface: '268 20% 100%',
17
- surfaceMuted: '268 20% 96%',
18
- surfaceStrong: '268 15% 90%',
19
- warning: '38 92% 50%'
20
- };
6
+ export const lumenColors = lumenCssColorTokens.light;
7
+ export const lumenDarkColors = lumenCssColorTokens.dark;
21
8
  export const lumenChart = {
22
9
  axis: 'var(--ink-muted)',
23
10
  divergingMid: '220 13% 91%',
@@ -52,21 +39,23 @@ export const lumenGlass = {
52
39
  shadow: '0 1px 2px hsl(222 47% 11% / 0.08), 0 12px 32px hsl(222 47% 11% / 0.12), 0 32px 80px hsl(222 47% 11% / 0.14)'
53
40
  };
54
41
  export const lumenRadius = {
55
- base: '0.625rem',
56
- lg: '0.75rem',
57
- sm: '0.375rem'
42
+ base: `${lumenRadii.md / 16}rem`,
43
+ lg: `${lumenRadii.lg / 16}rem`,
44
+ sm: `${lumenRadii.sm / 16}rem`
58
45
  };
59
46
  export const lumenShadow = {
60
47
  lg: '0 24px 64px hsl(222 47% 11% / 0.14)',
61
48
  md: '0 8px 24px hsl(222 47% 11% / 0.08)',
62
49
  sm: '0 1px 2px hsl(222 47% 11% / 0.06)'
63
50
  };
64
- export const lumenFont = '"Montserrat", "Avenir Next", "Segoe UI", sans-serif';
51
+ export const lumenFont = lumenFontFamilies.sans
52
+ .map(family => family === 'sans-serif' ? family : `"${family}"`)
53
+ .join(', ');
65
54
  export const lumenMotion = {
66
- duration: '160ms',
67
- durationFast: '120ms',
68
- durationSlow: '300ms',
69
- ease: 'cubic-bezier(0.32, 0.72, 0, 1)',
70
- easeEmphasized: 'cubic-bezier(0.22, 1, 0.36, 1)'
55
+ duration: `${lumenDurations.standard}ms`,
56
+ durationFast: `${lumenDurations.fast}ms`,
57
+ durationSlow: `${lumenDurations.slow}ms`,
58
+ ease: `cubic-bezier(${lumenEasings.standard.join(', ')})`,
59
+ easeEmphasized: `cubic-bezier(${lumenEasings.emphasized.join(', ')})`
71
60
  };
72
61
  export const composeClassName = (...classes) => classes.filter(Boolean).join(' ');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@santi020k/lumen-core",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -79,10 +79,18 @@
79
79
  "url": "https://github.com/santi020k/lumen.git",
80
80
  "directory": "packages/core"
81
81
  },
82
- "homepage": "https://lumen.santi020k.com",
82
+ "homepage": "https://lumen.santi020k.com/docs/foundations",
83
83
  "bugs": {
84
84
  "url": "https://github.com/santi020k/lumen/issues"
85
85
  },
86
+ "keywords": [
87
+ "accessible-ui",
88
+ "component-metadata",
89
+ "design-system",
90
+ "design-tokens",
91
+ "lumen",
92
+ "ui"
93
+ ],
86
94
  "author": {
87
95
  "name": "Santiago Molina",
88
96
  "url": "https://santi020k.com"