@santi020k/lumen-core 1.7.0-rc.0 → 1.7.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,10 @@ 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
+ It also publishes shared web behavior contracts such as `LumenTabsChangeDetail` and
11
+ `LumenTabsChangeEvent`. Import them from the root or `@santi020k/lumen-core/tabs` when application
12
+ code listens for `ui:tabs-change`.
13
+
10
14
  Cross-platform foundations originate in `tokens/lumen.tokens.json` and are published as
11
15
  `@santi020k/lumen-tokens`. Core also exports generated hexadecimal light/dark palettes and native
12
16
  numeric spacing, radius, typography, duration, easing, and elevation values. The legacy
@@ -1 +1 @@
1
- {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC5B,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,wBAAwB;;;;;;;CAOkB,CAAA;AAiPvD,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,WAc9C,CAAA;AA0LD,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,iBAAa,KACZ,cAAc,EA0BhB,CAAA;AAeD,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,iBAAa,WAA6E,CAAA"}
1
+ {"version":3,"file":"code.d.ts","sourceRoot":"","sources":["../src/code.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC5B,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEjE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,eAAO,MAAM,wBAAwB;;;;;;;CAOkB,CAAA;AA0QvD,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,WAK9C,CAAA;AA0LD,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,iBAAa,KACZ,cAAc,EA0BhB,CAAA;AAeD,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,iBAAa,WAA6E,CAAA"}
package/dist/code.js CHANGED
@@ -214,16 +214,29 @@ const startsWithIdentifierPattern = /^[A-Za-z_$]/;
214
214
  const startsWithNumberPattern = /^\d/;
215
215
  const startsWithCommentPattern = /^(?:#|--|\/[/*]|<!--)/;
216
216
  const startsWithStringPattern = /^["'`]/;
217
+ const trimBlankEdgeLines = (lines) => {
218
+ let start = 0;
219
+ let end = lines.length;
220
+ while (start < end && lines[start]?.trim() === '')
221
+ start += 1;
222
+ while (end > start && lines[end - 1]?.trim() === '')
223
+ end -= 1;
224
+ return lines.slice(start, end);
225
+ };
226
+ const getMinimumIndent = (lines) => {
227
+ let minimum = Number.POSITIVE_INFINITY;
228
+ for (const line of lines) {
229
+ if (line.trim() === '')
230
+ continue;
231
+ const indent = leadingWhitespacePattern.exec(line)?.[0].length ?? 0;
232
+ if (indent < minimum)
233
+ minimum = indent;
234
+ }
235
+ return Number.isFinite(minimum) ? minimum : 0;
236
+ };
217
237
  export const normalizeLumenCode = (code) => {
218
- const lines = code.replaceAll(/\r\n?/g, '\n').split('\n');
219
- while (lines[0]?.trim() === '')
220
- lines.shift();
221
- while (lines.at(-1)?.trim() === '')
222
- lines.pop();
223
- const indentation = lines
224
- .filter(line => line.trim() !== '')
225
- .map(line => leadingWhitespacePattern.exec(line)?.[0].length ?? 0);
226
- const trimBy = indentation.length > 0 ? Math.min(...indentation) : 0;
238
+ const lines = trimBlankEdgeLines(code.replaceAll(/\r\n?/g, '\n').split('\n'));
239
+ const trimBy = getMinimumIndent(lines);
227
240
  return lines.map(line => line.slice(trimBy)).join('\n');
228
241
  };
229
242
  const getJavascriptTokenKind = (value) => {
@@ -1,4 +1,4 @@
1
- export declare const lumenComponentNames: readonly ["Accordion", "Alert", "AlertDialog", "Agenda", "AspectRatio", "Attachment", "Autocomplete", "Avatar", "Backdrop", "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", "Graphic", "HoverCard", "Icon", "Image", "Illustration", "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", "ScatterChart", "Heatmap", "RangeChart", "ComboChart", "VisuallyHidden"];
1
+ export declare const lumenComponentNames: readonly ["Accordion", "Alert", "AlertDialog", "Agenda", "AspectRatio", "Attachment", "Autocomplete", "Avatar", "Backdrop", "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", "ErrorState", "ErrorSummary", "Eyebrow", "Field", "FieldError", "FloatingBadge", "Form", "FormattedDate", "Graphic", "HoverCard", "Icon", "Image", "Illustration", "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", "Sparkline", "Spinner", "Switch", "Table", "Tabs", "TagGroup", "Textarea", "ThemeBuilder", "ThemeToggle", "TimeField", "Toast", "ToastViewport", "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", "ScatterChart", "Heatmap", "RangeChart", "ComboChart", "VisuallyHidden"];
2
2
  export type LumenComponentName = typeof lumenComponentNames[number];
3
3
  export interface LumenComponentBehavior {
4
4
  astro: 'none' | 'ui-primitives';
@@ -287,6 +287,11 @@ export declare const lumenComponentBehavior: {
287
287
  readonly elements: "registered-element";
288
288
  readonly react: "component";
289
289
  };
290
+ readonly ErrorState: {
291
+ readonly astro: "none";
292
+ readonly elements: "registered-element";
293
+ readonly react: "component";
294
+ };
290
295
  readonly ErrorSummary: {
291
296
  readonly astro: "none";
292
297
  readonly elements: "registered-element";
@@ -632,11 +637,6 @@ export declare const lumenComponentBehavior: {
632
637
  readonly elements: "registered-element";
633
638
  readonly react: "component";
634
639
  };
635
- readonly Sonner: {
636
- readonly astro: "ui-primitives";
637
- readonly elements: "registered-element";
638
- readonly react: "component";
639
- };
640
640
  readonly Sparkline: {
641
641
  readonly astro: "none";
642
642
  readonly elements: "registered-element";
@@ -742,6 +742,11 @@ export declare const lumenComponentBehavior: {
742
742
  readonly elements: "registered-element";
743
743
  readonly react: "hook";
744
744
  };
745
+ readonly ToastViewport: {
746
+ readonly astro: "ui-primitives";
747
+ readonly elements: "registered-element";
748
+ readonly react: "component";
749
+ };
745
750
  readonly Toggle: {
746
751
  readonly astro: "ui-primitives";
747
752
  readonly astroRuntimeBypass: "controlled";
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,s/DAiKtB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsK8C,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"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../src/components.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,2gEAkKtB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuK8C,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"}
@@ -45,6 +45,7 @@ export const lumenComponentNames = [
45
45
  'Drawer',
46
46
  'DropdownMenu',
47
47
  'Empty',
48
+ 'ErrorState',
48
49
  'ErrorSummary',
49
50
  'Eyebrow',
50
51
  'Field',
@@ -97,7 +98,6 @@ export const lumenComponentNames = [
97
98
  'Skeleton',
98
99
  'SkipLink',
99
100
  'Slider',
100
- 'Sonner',
101
101
  'Sparkline',
102
102
  'Spinner',
103
103
  'Switch',
@@ -109,6 +109,7 @@ export const lumenComponentNames = [
109
109
  'ThemeToggle',
110
110
  'TimeField',
111
111
  'Toast',
112
+ 'ToastViewport',
112
113
  'Toggle',
113
114
  'ToggleGroup',
114
115
  'Tooltip',
@@ -217,6 +218,7 @@ export const lumenComponentBehavior = {
217
218
  Drawer: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
218
219
  DropdownMenu: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
219
220
  Empty: { astro: 'none', elements: 'registered-element', react: 'component' },
221
+ ErrorState: { astro: 'none', elements: 'registered-element', react: 'component' },
220
222
  ErrorSummary: { astro: 'none', elements: 'registered-element', react: 'component' },
221
223
  Eyebrow: { astro: 'none', elements: 'registered-element', react: 'component' },
222
224
  Field: { astro: 'none', elements: 'registered-element', react: 'component' },
@@ -286,7 +288,6 @@ export const lumenComponentBehavior = {
286
288
  Skeleton: { astro: 'none', elements: 'registered-element', react: 'component' },
287
289
  SkipLink: { astro: 'none', elements: 'registered-element', react: 'component' },
288
290
  Slider: { astro: 'none', elements: 'registered-element', react: 'component' },
289
- Sonner: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
290
291
  Sparkline: { astro: 'none', elements: 'registered-element', react: 'component' },
291
292
  SpeedDial: { astro: 'none', elements: 'registered-element', react: 'component' },
292
293
  Spinner: { astro: 'none', elements: 'registered-element', react: 'component' },
@@ -308,6 +309,7 @@ export const lumenComponentBehavior = {
308
309
  TimeField: { astro: 'none', elements: 'registered-element', react: 'component' },
309
310
  Timeline: { astro: 'none', elements: 'registered-element', react: 'component' },
310
311
  Toast: { astro: 'ui-primitives', elements: 'registered-element', react: 'hook' },
312
+ ToastViewport: { astro: 'ui-primitives', elements: 'registered-element', react: 'component' },
311
313
  Toggle: {
312
314
  astro: 'ui-primitives',
313
315
  astroRuntimeBypass: 'controlled',
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
package/dist/data.js CHANGED
@@ -1,7 +1,17 @@
1
+ const defaultDataViewPage = 1;
2
+ const defaultDataViewPageSize = 25;
3
+ const normalizePositiveInteger = (value, fallback) => {
4
+ if (!Number.isFinite(value))
5
+ return fallback;
6
+ const normalized = Math.trunc(value);
7
+ return Number.isSafeInteger(normalized) && normalized > 0 ?
8
+ normalized :
9
+ fallback;
10
+ };
1
11
  export const createDataViewState = (state = {}) => ({
2
12
  filters: state.filters ?? {},
3
- page: state.page ?? 1,
4
- pageSize: state.pageSize ?? 25,
13
+ page: normalizePositiveInteger(state.page ?? defaultDataViewPage, defaultDataViewPage),
14
+ pageSize: normalizePositiveInteger(state.pageSize ?? defaultDataViewPageSize, defaultDataViewPageSize),
5
15
  pinnedColumns: state.pinnedColumns ?? [],
6
16
  query: state.query ?? '',
7
17
  selectedIds: state.selectedIds ?? [],
@@ -9,8 +19,8 @@ export const createDataViewState = (state = {}) => ({
9
19
  });
10
20
  export const serializeDataViewState = (state) => {
11
21
  const params = new URLSearchParams();
12
- params.set('page', String(state.page));
13
- params.set('pageSize', String(state.pageSize));
22
+ params.set('page', String(normalizePositiveInteger(state.page, defaultDataViewPage)));
23
+ params.set('pageSize', String(normalizePositiveInteger(state.pageSize, defaultDataViewPageSize)));
14
24
  if (state.query)
15
25
  params.set('q', state.query);
16
26
  if (state.sort)
@@ -37,9 +47,20 @@ const parseDataViewFilters = (params) => {
37
47
  const parseDataViewSort = (sort) => {
38
48
  if (!sort)
39
49
  return undefined;
50
+ const direction = sort.endsWith(':desc') ? 'desc' : 'asc';
51
+ let suffix = '';
52
+ if (sort.endsWith(':desc')) {
53
+ suffix = ':desc';
54
+ }
55
+ else if (sort.endsWith(':asc')) {
56
+ suffix = ':asc';
57
+ }
58
+ const key = suffix ? sort.slice(0, -suffix.length) : sort;
59
+ if (!key)
60
+ return undefined;
40
61
  return {
41
- direction: sort.endsWith(':desc') ? 'desc' : 'asc',
42
- key: sort.split(':')[0] ?? ''
62
+ direction,
63
+ key
43
64
  };
44
65
  };
45
66
  export const parseDataViewState = (value) => {
@@ -91,12 +112,13 @@ export const sortDataRecords = (records, sort) => {
91
112
  });
92
113
  };
93
114
  export const paginateDataRecords = (records, page, pageSize) => {
94
- const safePage = Math.max(1, page);
95
- const start = (safePage - 1) * pageSize;
115
+ const safePage = normalizePositiveInteger(page, defaultDataViewPage);
116
+ const safePageSize = normalizePositiveInteger(pageSize, defaultDataViewPageSize);
117
+ const start = (safePage - 1) * safePageSize;
96
118
  return {
97
- items: records.slice(start, start + pageSize),
119
+ items: records.slice(start, start + safePageSize),
98
120
  page: safePage,
99
- pageCount: Math.max(1, Math.ceil(records.length / pageSize)),
121
+ pageCount: Math.max(1, Math.ceil(records.length / safePageSize)),
100
122
  total: records.length
101
123
  };
102
124
  };
@@ -0,0 +1,13 @@
1
+ export declare const lumenErrorStateKinds: readonly ["error", "offline"];
2
+ export type LumenErrorStateKind = typeof lumenErrorStateKinds[number];
3
+ export declare const lumenErrorStateLayouts: readonly ["compact", "default", "page"];
4
+ export type LumenErrorStateLayout = typeof lumenErrorStateLayouts[number];
5
+ export declare const lumenErrorStateAnnouncements: readonly ["assertive", "off", "polite"];
6
+ export type LumenErrorStateAnnouncement = typeof lumenErrorStateAnnouncements[number];
7
+ export interface LumenErrorStateContent {
8
+ description?: string;
9
+ kind?: LumenErrorStateKind;
10
+ reference?: string;
11
+ title: string;
12
+ }
13
+ //# sourceMappingURL=error-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-state.d.ts","sourceRoot":"","sources":["../src/error-state.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,+BAAgC,CAAA;AAEjE,MAAM,MAAM,mBAAmB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB,yCAA0C,CAAA;AAE7E,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;AAEzE,eAAO,MAAM,4BAA4B,yCAA0C,CAAA;AAEnF,MAAM,MAAM,2BAA2B,GAAG,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAA;AAErF,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,mBAAmB,CAAA;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd"}
@@ -0,0 +1,3 @@
1
+ export const lumenErrorStateKinds = ['error', 'offline'];
2
+ export const lumenErrorStateLayouts = ['compact', 'default', 'page'];
3
+ export const lumenErrorStateAnnouncements = ['assertive', 'off', 'polite'];
@@ -1,19 +1,19 @@
1
1
  export declare const lumenColorTokens: {
2
2
  readonly light: {
3
- readonly canvas: "#FFFFFF";
3
+ readonly canvas: "#F9FAFB";
4
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";
5
+ readonly surfaceMuted: "#EFF2F5";
6
+ readonly surfaceStrong: "#DBE0E6";
7
+ readonly line: "#CFD5DD";
8
+ readonly ink: "#161D27";
9
+ readonly inkSoft: "#4D5766";
10
+ readonly inkMuted: "#737D8C";
11
+ readonly brand: "#0369A0";
12
+ readonly brandSolid: "#035C8C";
13
+ readonly brandSoft: "#DEF0F8";
14
14
  readonly onBrand: "#FFFFFF";
15
- readonly accent: "#16A286";
16
- readonly success: "#1B9D4A";
15
+ readonly accent: "#13967E";
16
+ readonly success: "#16A249";
17
17
  readonly warning: "#F59F0A";
18
18
  readonly danger: "#EF4343";
19
19
  readonly onDanger: "#000000";
@@ -40,20 +40,20 @@ export declare const lumenColorTokens: {
40
40
  };
41
41
  export declare const lumenCssColorTokens: {
42
42
  readonly light: {
43
- readonly canvas: "0 0% 100%";
43
+ readonly canvas: "210 24% 98%";
44
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%";
45
+ readonly surfaceMuted: "210 22% 95%";
46
+ readonly surfaceStrong: "213 18% 88%";
47
+ readonly line: "214 17% 84%";
48
+ readonly ink: "216 28% 12%";
49
+ readonly inkSoft: "215 14% 35%";
50
+ readonly inkMuted: "215 10% 50%";
51
+ readonly brand: "201 96% 32%";
52
+ readonly brandSolid: "201 96% 28%";
53
+ readonly brandSoft: "198 64% 92%";
54
54
  readonly onBrand: "0 0% 100%";
55
- readonly accent: "168 76% 36%";
56
- readonly success: "142 71% 36%";
55
+ readonly accent: "169 78% 33%";
56
+ readonly success: "142 76% 36%";
57
57
  readonly warning: "38 92% 50%";
58
58
  readonly danger: "0 84% 60%";
59
59
  readonly onDanger: "0 0% 0%";
@@ -80,20 +80,20 @@ export declare const lumenCssColorTokens: {
80
80
  };
81
81
  export declare const lumenChartColorTokens: {
82
82
  readonly light: {
83
- readonly axis: "#6C7889";
84
- readonly grid: "#D7DAE0";
85
- readonly reference: "#454F5F";
86
- readonly selection: "#2463EB";
87
- readonly tooltipBackground: "#0F1729";
83
+ readonly axis: "#737D8C";
84
+ readonly grid: "#CFD5DD";
85
+ readonly reference: "#4D5766";
86
+ readonly selection: "#0369A0";
87
+ readonly tooltipBackground: "#161D27";
88
88
  readonly tooltipForeground: "#FFFFFF";
89
- readonly sequentialLow: "#F0F5FF";
90
- readonly sequentialMid: "#6590F1";
91
- readonly sequentialHigh: "#114BBA";
89
+ readonly sequentialLow: "#DEF0F8";
90
+ readonly sequentialMid: "#3EAEEA";
91
+ readonly sequentialHigh: "#024F78";
92
92
  readonly divergingNegative: "#EF4343";
93
- readonly divergingMid: "#E5E7EB";
94
- readonly divergingPositive: "#2463EB";
95
- readonly series1: "#2463EB";
96
- readonly series2: "#16A286";
93
+ readonly divergingMid: "#DBE0E6";
94
+ readonly divergingPositive: "#0369A0";
95
+ readonly series1: "#0369A0";
96
+ readonly series2: "#13967E";
97
97
  readonly series3: "#A43FDF";
98
98
  readonly series4: "#FA6A14";
99
99
  readonly series5: "#E73270";
@@ -132,14 +132,14 @@ export declare const lumenChartCssColorTokens: {
132
132
  readonly selection: "var(--brand)";
133
133
  readonly tooltipBackground: "var(--ink)";
134
134
  readonly tooltipForeground: "var(--surface)";
135
- readonly sequentialLow: "218 100% 97%";
136
- readonly sequentialMid: "221 83% 67%";
137
- readonly sequentialHigh: "221 83% 40%";
135
+ readonly sequentialLow: "198 64% 92%";
136
+ readonly sequentialMid: "201 80% 58%";
137
+ readonly sequentialHigh: "201 96% 24%";
138
138
  readonly divergingNegative: "0 84% 60%";
139
- readonly divergingMid: "220 13% 91%";
140
- readonly divergingPositive: "221 83% 53%";
141
- readonly series1: "221 83% 53%";
142
- readonly series2: "168 76% 36%";
139
+ readonly divergingMid: "213 18% 88%";
140
+ readonly divergingPositive: "201 96% 32%";
141
+ readonly series1: "201 96% 32%";
142
+ readonly series2: "169 78% 33%";
143
143
  readonly series3: "280 72% 56%";
144
144
  readonly series4: "25 95% 53%";
145
145
  readonly series5: "340 82% 55%";
@@ -195,6 +195,9 @@ export declare const lumenRadii: {
195
195
  readonly sm: 6;
196
196
  readonly md: 10;
197
197
  readonly lg: 12;
198
+ readonly xl: 16;
199
+ readonly "2xl": 20;
200
+ readonly "3xl": 24;
198
201
  readonly full: 9999;
199
202
  };
200
203
  export declare const lumenFontFamilies: {
@@ -1 +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,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CxB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C3B,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;;CAItB,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,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;CAE3B,CAAA;AAEV,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAC5D,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,qBAAqB,CAAC,KAAK,CAAA;AACtE,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC,KAAK,CAAA"}
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,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CxB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C3B,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAA;AAEV,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,eAAO,MAAM,YAAY;;;;;;;;;CASf,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;;CAQb,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,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,eAAO,MAAM,wBAAwB;;CAE3B,CAAA;AAEV,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAA;AAEV,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,gBAAgB,CAAA;AAC5D,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,qBAAqB,CAAC,KAAK,CAAA;AACtE,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,gBAAgB,CAAC,KAAK,CAAA"}
@@ -1,20 +1,20 @@
1
1
  /* This file is generated by scripts/generate-platform-tokens.mjs. */
2
2
  export const lumenColorTokens = {
3
3
  light: {
4
- canvas: "#FFFFFF",
4
+ canvas: "#F9FAFB",
5
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",
6
+ surfaceMuted: "#EFF2F5",
7
+ surfaceStrong: "#DBE0E6",
8
+ line: "#CFD5DD",
9
+ ink: "#161D27",
10
+ inkSoft: "#4D5766",
11
+ inkMuted: "#737D8C",
12
+ brand: "#0369A0",
13
+ brandSolid: "#035C8C",
14
+ brandSoft: "#DEF0F8",
15
15
  onBrand: "#FFFFFF",
16
- accent: "#16A286",
17
- success: "#1B9D4A",
16
+ accent: "#13967E",
17
+ success: "#16A249",
18
18
  warning: "#F59F0A",
19
19
  danger: "#EF4343",
20
20
  onDanger: "#000000"
@@ -41,20 +41,20 @@ export const lumenColorTokens = {
41
41
  };
42
42
  export const lumenCssColorTokens = {
43
43
  light: {
44
- canvas: "0 0% 100%",
44
+ canvas: "210 24% 98%",
45
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%",
46
+ surfaceMuted: "210 22% 95%",
47
+ surfaceStrong: "213 18% 88%",
48
+ line: "214 17% 84%",
49
+ ink: "216 28% 12%",
50
+ inkSoft: "215 14% 35%",
51
+ inkMuted: "215 10% 50%",
52
+ brand: "201 96% 32%",
53
+ brandSolid: "201 96% 28%",
54
+ brandSoft: "198 64% 92%",
55
55
  onBrand: "0 0% 100%",
56
- accent: "168 76% 36%",
57
- success: "142 71% 36%",
56
+ accent: "169 78% 33%",
57
+ success: "142 76% 36%",
58
58
  warning: "38 92% 50%",
59
59
  danger: "0 84% 60%",
60
60
  onDanger: "0 0% 0%"
@@ -81,20 +81,20 @@ export const lumenCssColorTokens = {
81
81
  };
82
82
  export const lumenChartColorTokens = {
83
83
  light: {
84
- axis: "#6C7889",
85
- grid: "#D7DAE0",
86
- reference: "#454F5F",
87
- selection: "#2463EB",
88
- tooltipBackground: "#0F1729",
84
+ axis: "#737D8C",
85
+ grid: "#CFD5DD",
86
+ reference: "#4D5766",
87
+ selection: "#0369A0",
88
+ tooltipBackground: "#161D27",
89
89
  tooltipForeground: "#FFFFFF",
90
- sequentialLow: "#F0F5FF",
91
- sequentialMid: "#6590F1",
92
- sequentialHigh: "#114BBA",
90
+ sequentialLow: "#DEF0F8",
91
+ sequentialMid: "#3EAEEA",
92
+ sequentialHigh: "#024F78",
93
93
  divergingNegative: "#EF4343",
94
- divergingMid: "#E5E7EB",
95
- divergingPositive: "#2463EB",
96
- series1: "#2463EB",
97
- series2: "#16A286",
94
+ divergingMid: "#DBE0E6",
95
+ divergingPositive: "#0369A0",
96
+ series1: "#0369A0",
97
+ series2: "#13967E",
98
98
  series3: "#A43FDF",
99
99
  series4: "#FA6A14",
100
100
  series5: "#E73270",
@@ -133,14 +133,14 @@ export const lumenChartCssColorTokens = {
133
133
  selection: "var(--brand)",
134
134
  tooltipBackground: "var(--ink)",
135
135
  tooltipForeground: "var(--surface)",
136
- sequentialLow: "218 100% 97%",
137
- sequentialMid: "221 83% 67%",
138
- sequentialHigh: "221 83% 40%",
136
+ sequentialLow: "198 64% 92%",
137
+ sequentialMid: "201 80% 58%",
138
+ sequentialHigh: "201 96% 24%",
139
139
  divergingNegative: "0 84% 60%",
140
- divergingMid: "220 13% 91%",
141
- divergingPositive: "221 83% 53%",
142
- series1: "221 83% 53%",
143
- series2: "168 76% 36%",
140
+ divergingMid: "213 18% 88%",
141
+ divergingPositive: "201 96% 32%",
142
+ series1: "201 96% 32%",
143
+ series2: "169 78% 33%",
144
144
  series3: "280 72% 56%",
145
145
  series4: "25 95% 53%",
146
146
  series5: "340 82% 55%",
@@ -196,6 +196,9 @@ export const lumenRadii = {
196
196
  sm: 6,
197
197
  md: 10,
198
198
  lg: 12,
199
+ xl: 16,
200
+ "2xl": 20,
201
+ "3xl": 24,
199
202
  full: 9999
200
203
  };
201
204
  export const lumenFontFamilies = {
@@ -72,6 +72,6 @@ export declare const lumenIllustrations: {
72
72
  };
73
73
  };
74
74
  export type LumenIllustrationName = keyof typeof lumenIllustrations;
75
- export declare const lumenIllustrationNames: readonly ("success" | "error" | "empty" | "offline")[];
75
+ export declare const lumenIllustrationNames: readonly ("success" | "error" | "offline" | "empty")[];
76
76
  export declare const renderLumenIllustrationSvg: (name: LumenIllustrationName) => string;
77
77
  //# sourceMappingURL=illustrations.generated.d.ts.map
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export { alignLumenChartSeries, appendLumenChartDatum, createLumenBarGeometry, c
2
2
  export { type LumenCodeToken, lumenCodeTokenClassNames, type LumenCodeTokenKind, normalizeLumenCode, renderLumenCodeHtml, tokenizeLumenCode } from './code.js';
3
3
  export { type LumenComponentBehavior, lumenComponentBehavior, type LumenComponentName, lumenComponentNames, type LumenGlobalBehavior, lumenGlobalBehaviors, lumenPackages, type LumenPackageTarget, type LumenStylingContract, lumenStylingContracts } from './components.js';
4
4
  export { applyDataViewState, createDataViewRequestUrl, createDataViewSearchParams, createDataViewServerRequest, createDataViewState, createDataViewStorageKey, filterDataRecords, getVirtualRange, loadDataViewState, type LumenDataRecord, type LumenDataViewServerRequest, type LumenDataViewState, type LumenKeyValueReader, type LumenKeyValueStorage, type LumenKeyValueWriter, type LumenSortDirection, paginateDataRecords, parseDataViewState, pinDataViewColumn, saveDataViewState, serializeDataViewState, sortDataRecords, toggleDataViewSelection, unpinDataViewColumn } from './data.js';
5
+ export { type LumenErrorStateAnnouncement, lumenErrorStateAnnouncements, type LumenErrorStateContent, type LumenErrorStateKind, lumenErrorStateKinds, type LumenErrorStateLayout, lumenErrorStateLayouts } from './error-state.js';
5
6
  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
7
  export { createLumenFormFailure, createLumenFormSuccess, getLumenFieldErrors, type LumenFieldError, type LumenFormErrorInput, type LumenFormErrors, type LumenFormFailure, type LumenFormResult, type LumenFormStatus, lumenFormStatuses, type LumenFormSuccess, normalizeLumenFormErrors } from './forms.js';
7
8
  export { getLumenIcon, getLumenIconPack, getRegisteredLumenIconNames, type LumenIconData, type LumenIconName, lumenIconNames, type LumenIconNode, type LumenIconPack, lumenIcons, type LumenIconStyle, registerLumenIconPack, renderLumenIconSvg, resolveLumenIconName } from './icons.js';
@@ -12,6 +13,7 @@ export { createEmptyLumenPhoneNumber, getLumenPhoneCountries, getLumenPhoneCount
12
13
  export { type LumenAstroPropsResult, type LumenClassValue, type LumenGlass, resolveLumenAstroProps, resolveLumenGlass } from './props.js';
13
14
  export { getLumenRichTextShortcut, isLumenRichTextToggleCommand, type LumenRichTextChangeDetail, type LumenRichTextCommandDetail, type LumenRichTextShortcutEvent, type LumenRichTextToggleCommand, lumenRichTextToggleCommands } from './rich-text.js';
14
15
  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';
16
+ export { type LumenTabsChangeDetail, type LumenTabsChangeEvent, scrollLumenTabIntoView } from './tabs.js';
15
17
  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';
16
18
  export { coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, createThemeBuilderTokens, exportThemeBuilderCss, exportThemeBuilderValue, type LumenThemeBuilderExportFormat, type LumenThemeBuilderMode, type LumenThemeBuilderOptions, type LumenThemeBuilderResult, type LumenThemeBuilderScheme, normalizeThemeBuilderHex, normalizeThemeBuilderHue, themeBuilderHexToHsl } from './theme-builder.js';
17
19
  export { composeClassName, lumenChart, lumenColors, type LumenColorScheme, lumenColorTokens, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, lumenDurations, lumenEasings, lumenElevation, lumenFont, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenGlass, lumenGraphicFrameSizes, lumenGraphicOpacities, lumenGraphicStrokeWidths, lumenIllustrationSizes, lumenLightTheme, lumenMotion, lumenRadii, lumenRadius, type LumenSemanticColor, lumenShadow, lumenSpacing, lumenThemeAttribute } from './tokens.js';
@@ -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
@@ -2,6 +2,7 @@ export { alignLumenChartSeries, appendLumenChartDatum, createLumenBarGeometry, c
2
2
  export { lumenCodeTokenClassNames, normalizeLumenCode, renderLumenCodeHtml, tokenizeLumenCode } from './code.js';
3
3
  export { lumenComponentBehavior, lumenComponentNames, lumenGlobalBehaviors, lumenPackages, lumenStylingContracts } from './components.js';
4
4
  export { applyDataViewState, createDataViewRequestUrl, createDataViewSearchParams, createDataViewServerRequest, createDataViewState, createDataViewStorageKey, filterDataRecords, getVirtualRange, loadDataViewState, paginateDataRecords, parseDataViewState, pinDataViewColumn, saveDataViewState, serializeDataViewState, sortDataRecords, toggleDataViewSelection, unpinDataViewColumn } from './data.js';
5
+ export { lumenErrorStateAnnouncements, lumenErrorStateKinds, lumenErrorStateLayouts } from './error-state.js';
5
6
  export { createFigmaVariableName, exportThemeDesignTokens, exportThemeFigmaVariables, hslTokenToFigmaColor, hslTokenToHexColor } from './figma.js';
6
7
  export { createLumenFormFailure, createLumenFormSuccess, getLumenFieldErrors, lumenFormStatuses, normalizeLumenFormErrors } from './forms.js';
7
8
  export { getLumenIcon, getLumenIconPack, getRegisteredLumenIconNames, lumenIconNames, lumenIcons, registerLumenIconPack, renderLumenIconSvg, resolveLumenIconName } from './icons.js';
@@ -12,6 +13,7 @@ export { createEmptyLumenPhoneNumber, getLumenPhoneCountries, getLumenPhoneCount
12
13
  export { resolveLumenAstroProps, resolveLumenGlass } from './props.js';
13
14
  export { getLumenRichTextShortcut, isLumenRichTextToggleCommand, lumenRichTextToggleCommands } from './rich-text.js';
14
15
  export { canPlaceScheduleEvent, createScheduleSlots, createScheduleStorageKey, expandRecurringScheduleEvent, getScheduleConflicts, loadScheduleEvents, moveScheduleEvent, parseScheduleEvents, resizeScheduleEvent, resizeScheduleEvents, saveScheduleEvents, scheduleEventsOverlap, serializeScheduleEvents } from './schedule.js';
16
+ export { scrollLumenTabIntoView } from './tabs.js';
15
17
  export { createThemeFromHue, createThemePalette, exportThemeCss, getContrastRatio, lumenColorTokenNames, lumenGlassColorTokenNames, lumenGlassEffectTokenNames, lumenGlassTokenNames, lumenMotionTokenNames, lumenRadiusTokenNames, lumenSemanticColorTokenNames, lumenShadowTokenNames, lumenStructureTokenNames, lumenTokenNames, lumenTypographyTokenNames, mergeThemeTokens, parseThemeCss, scoreThemeContrast, suggestReadableInk, tuneThemeContrast } from './theme.js';
16
18
  export { coerceThemeBuilderExportFormat, coerceThemeBuilderMode, coerceThemeBuilderScheme, createThemeBuilderTokens, exportThemeBuilderCss, exportThemeBuilderValue, normalizeThemeBuilderHex, normalizeThemeBuilderHue, themeBuilderHexToHsl } from './theme-builder.js';
17
19
  export { composeClassName, lumenChart, lumenColors, lumenColorTokens, lumenCssColorTokens, lumenDarkColors, lumenDarkTheme, lumenDurations, lumenEasings, lumenElevation, lumenFont, lumenFontFamilies, lumenFontSizes, lumenFontWeights, lumenGlass, lumenGraphicFrameSizes, lumenGraphicOpacities, lumenGraphicStrokeWidths, lumenIllustrationSizes, lumenLightTheme, lumenMotion, lumenRadii, lumenRadius, lumenShadow, lumenSpacing, lumenThemeAttribute } from './tokens.js';
@@ -11,6 +11,7 @@ export interface LumenRichTextChangeDetail {
11
11
  }
12
12
  export interface LumenRichTextShortcutEvent {
13
13
  altKey: boolean;
14
+ code?: string;
14
15
  ctrlKey: boolean;
15
16
  key: string;
16
17
  metaKey: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rich-text.d.ts","sourceRoot":"","sources":["../src/rich-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,mIAS7B,CAAA;AAEX,MAAM,MAAM,0BAA0B,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAA;AAEnF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAkBD,eAAO,MAAM,4BAA4B,GACvC,SAAS,MAAM,KACd,OAAO,IAAI,0BAAyD,CAAA;AAEvE,eAAO,MAAM,wBAAwB,GACnC,OAAO,0BAA0B,KAChC,MAAM,GAAG,SAMX,CAAA"}
1
+ {"version":3,"file":"rich-text.d.ts","sourceRoot":"","sources":["../src/rich-text.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,mIAS7B,CAAA;AAEX,MAAM,MAAM,0BAA0B,GAAG,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAA;AAEnF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAwBD,eAAO,MAAM,4BAA4B,GACvC,SAAS,MAAM,KACd,OAAO,IAAI,0BAAyD,CAAA;AAEvE,eAAO,MAAM,wBAAwB,GACnC,OAAO,0BAA0B,KAChC,MAAM,GAAG,SAQX,CAAA"}
package/dist/rich-text.js CHANGED
@@ -15,16 +15,23 @@ const shortcuts = {
15
15
  u: 'underline',
16
16
  z: 'undo'
17
17
  };
18
- const shiftedShortcuts = {
19
- 7: 'insertOrderedList',
20
- 8: 'insertUnorderedList',
18
+ const shiftedKeyShortcuts = {
21
19
  x: 'strikeThrough',
22
20
  z: 'redo'
23
21
  };
22
+ // Shift changes the character a digit key produces (e.g. "&" or "*" on a US
23
+ // layout), so the list shortcuts must match the physical key via `code`
24
+ // rather than the layout-dependent shifted glyph in `key`.
25
+ const shiftedCodeShortcuts = {
26
+ Digit7: 'insertOrderedList',
27
+ Digit8: 'insertUnorderedList'
28
+ };
24
29
  export const isLumenRichTextToggleCommand = (command) => toggleCommands.has(command);
25
30
  export const getLumenRichTextShortcut = (event) => {
26
31
  if ((!event.ctrlKey && !event.metaKey) || event.altKey)
27
32
  return undefined;
28
33
  const key = event.key.toLowerCase();
29
- return event.shiftKey ? shiftedShortcuts[key] : shortcuts[key];
34
+ if (!event.shiftKey)
35
+ return shortcuts[key];
36
+ return (event.code ? shiftedCodeShortcuts[event.code] : undefined) ?? shiftedKeyShortcuts[key];
30
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../src/schedule.ts"],"names":[],"mappings":"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"}
package/dist/schedule.js CHANGED
@@ -43,26 +43,34 @@ export const getScheduleConflicts = (events) => {
43
43
  return conflicts;
44
44
  };
45
45
  export const canPlaceScheduleEvent = (events, event) => !events.some(nextEvent => scheduleEventsOverlap(event, nextEvent));
46
- const clampTime = (value, min, max) => {
47
- const minTime = min ? new Date(min).getTime() : undefined;
48
- const maxTime = max ? new Date(max).getTime() : undefined;
49
- return Math.min(maxTime ?? value, Math.max(minTime ?? value, value));
50
- };
46
+ const clampTime = (value, min, max) => Math.min(max, Math.max(min, value));
51
47
  const snapTime = (value, snapMinutes = 15) => {
52
48
  const snapMs = Math.max(1, snapMinutes) * 60_000;
53
49
  return Math.round(value / snapMs) * snapMs;
54
50
  };
51
+ const minScheduleEventDurationMs = 60_000;
55
52
  export const resizeScheduleEvent = (event, nextDateTime, options = {}) => {
56
53
  const edge = options.edge ?? 'end';
57
54
  const start = new Date(event.start).getTime();
58
55
  const end = new Date(event.end).getTime();
59
- const next = clampTime(snapTime(new Date(nextDateTime).getTime(), options.snapMinutes), options.min, options.max);
60
- const nextStart = edge === 'start' ? Math.min(next, end - 60_000) : start;
61
- const nextEnd = edge === 'end' ? Math.max(next, start + 60_000) : end;
56
+ const minBound = options.min ? new Date(options.min).getTime() : -Infinity;
57
+ const maxBound = options.max ? new Date(options.max).getTime() : Infinity;
58
+ const snapped = snapTime(new Date(nextDateTime).getTime(), options.snapMinutes);
59
+ // The explicit min/max bound is a hard caller contract (for example a visible
60
+ // drag range) and must never be exceeded; the minimum duration is only a
61
+ // best-effort safety net and yields to that bound when the two conflict
62
+ // (for example when the event's fixed edge already sits outside the bound).
63
+ if (edge === 'start') {
64
+ const upperBound = Math.max(minBound, Math.min(maxBound, end - minScheduleEventDurationMs));
65
+ return {
66
+ ...event,
67
+ start: new Date(clampTime(snapped, minBound, upperBound)).toISOString()
68
+ };
69
+ }
70
+ const lowerBound = Math.min(maxBound, Math.max(minBound, start + minScheduleEventDurationMs));
62
71
  return {
63
72
  ...event,
64
- end: new Date(nextEnd).toISOString(),
65
- start: new Date(nextStart).toISOString()
73
+ end: new Date(clampTime(snapped, lowerBound, maxBound)).toISOString()
66
74
  };
67
75
  };
68
76
  export const resizeScheduleEvents = (events, eventId, nextDateTime, options = {}) => events.map(event => event.id === eventId ?
package/dist/tabs.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ export interface LumenTabsChangeDetail {
2
+ storageKey?: string | undefined;
3
+ value: string;
4
+ }
5
+ export type LumenTabsChangeEvent = CustomEvent<LumenTabsChangeDetail>;
6
+ export declare const scrollLumenTabIntoView: (tab: HTMLElement) => void;
7
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB,GAAI,KAAK,WAAW,KAAG,IAMzD,CAAA"}
package/dist/tabs.js ADDED
@@ -0,0 +1,6 @@
1
+ export const scrollLumenTabIntoView = (tab) => {
2
+ const scrollIntoView = Reflect.get(tab, 'scrollIntoView');
3
+ if (typeof scrollIntoView !== 'function')
4
+ return;
5
+ scrollIntoView.call(tab, { block: 'nearest', inline: 'nearest' });
6
+ };
package/dist/tokens.d.ts CHANGED
@@ -3,20 +3,20 @@ export declare const lumenThemeAttribute = "data-theme";
3
3
  export declare const lumenDarkTheme = "dark";
4
4
  export declare const lumenLightTheme = "light";
5
5
  export declare const lumenColors: {
6
- readonly canvas: "0 0% 100%";
6
+ readonly canvas: "210 24% 98%";
7
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%";
8
+ readonly surfaceMuted: "210 22% 95%";
9
+ readonly surfaceStrong: "213 18% 88%";
10
+ readonly line: "214 17% 84%";
11
+ readonly ink: "216 28% 12%";
12
+ readonly inkSoft: "215 14% 35%";
13
+ readonly inkMuted: "215 10% 50%";
14
+ readonly brand: "201 96% 32%";
15
+ readonly brandSolid: "201 96% 28%";
16
+ readonly brandSoft: "198 64% 92%";
17
17
  readonly onBrand: "0 0% 100%";
18
- readonly accent: "168 76% 36%";
19
- readonly success: "142 71% 36%";
18
+ readonly accent: "169 78% 33%";
19
+ readonly success: "142 76% 36%";
20
20
  readonly warning: "38 92% 50%";
21
21
  readonly danger: "0 84% 60%";
22
22
  readonly onDanger: "0 0% 0%";
@@ -47,14 +47,14 @@ export declare const lumenChart: {
47
47
  readonly selection: "var(--brand)";
48
48
  readonly tooltipBackground: "var(--ink)";
49
49
  readonly tooltipForeground: "var(--surface)";
50
- readonly sequentialLow: "218 100% 97%";
51
- readonly sequentialMid: "221 83% 67%";
52
- readonly sequentialHigh: "221 83% 40%";
50
+ readonly sequentialLow: "198 64% 92%";
51
+ readonly sequentialMid: "201 80% 58%";
52
+ readonly sequentialHigh: "201 96% 24%";
53
53
  readonly divergingNegative: "0 84% 60%";
54
- readonly divergingMid: "220 13% 91%";
55
- readonly divergingPositive: "221 83% 53%";
56
- readonly series1: "221 83% 53%";
57
- readonly series2: "168 76% 36%";
54
+ readonly divergingMid: "213 18% 88%";
55
+ readonly divergingPositive: "201 96% 32%";
56
+ readonly series1: "201 96% 32%";
57
+ readonly series2: "169 78% 33%";
58
58
  readonly series3: "280 72% 56%";
59
59
  readonly series4: "25 95% 53%";
60
60
  readonly series5: "340 82% 55%";
@@ -94,7 +94,7 @@ export declare const lumenGlass: {
94
94
  readonly edge: "0 0% 100% / 0.9";
95
95
  readonly edgeSoft: "0 0% 100% / 0.34";
96
96
  readonly highlight: "0 0% 100% / 0.85";
97
- readonly refraction: "221 83% 53% / 0.08";
97
+ readonly refraction: "201 96% 32% / 0.08";
98
98
  readonly saturate: "1.7";
99
99
  readonly shade: "222 47% 11% / 0.07";
100
100
  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)";
package/dist/tokens.js CHANGED
@@ -17,7 +17,7 @@ export const lumenGlass = {
17
17
  edge: '0 0% 100% / 0.9',
18
18
  edgeSoft: '0 0% 100% / 0.34',
19
19
  highlight: '0 0% 100% / 0.85',
20
- refraction: '221 83% 53% / 0.08',
20
+ refraction: '201 96% 32% / 0.08',
21
21
  saturate: '1.7',
22
22
  shade: '222 47% 11% / 0.07',
23
23
  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)'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@santi020k/lumen-core",
3
- "version": "1.7.0-rc.0",
3
+ "version": "1.7.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -55,6 +55,10 @@
55
55
  "types": "./dist/schedule.d.ts",
56
56
  "import": "./dist/schedule.js"
57
57
  },
58
+ "./tabs": {
59
+ "types": "./dist/tabs.d.ts",
60
+ "import": "./dist/tabs.js"
61
+ },
58
62
  "./theme": {
59
63
  "types": "./dist/theme.d.ts",
60
64
  "import": "./dist/theme.js"