ionbase-ui 0.76.0 → 0.81.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.
Files changed (82) hide show
  1. package/dist/components/Card.d.ts +61 -0
  2. package/dist/components/Card.d.ts.map +1 -0
  3. package/dist/components/Card.js +37 -0
  4. package/dist/components/Card.js.map +1 -0
  5. package/dist/components/CommandPalette.d.ts +76 -0
  6. package/dist/components/CommandPalette.d.ts.map +1 -0
  7. package/dist/components/CommandPalette.js +194 -0
  8. package/dist/components/CommandPalette.js.map +1 -0
  9. package/dist/components/DateField.d.ts +14 -0
  10. package/dist/components/DateField.d.ts.map +1 -1
  11. package/dist/components/DateField.js +1 -1
  12. package/dist/components/DateField.js.map +1 -1
  13. package/dist/components/Kbd.d.ts +45 -0
  14. package/dist/components/Kbd.d.ts.map +1 -0
  15. package/dist/components/Kbd.js +45 -0
  16. package/dist/components/Kbd.js.map +1 -0
  17. package/dist/components/Table.d.ts +18 -0
  18. package/dist/components/Table.d.ts.map +1 -1
  19. package/dist/components/Table.js +14 -3
  20. package/dist/components/Table.js.map +1 -1
  21. package/dist/components/TagGroup.d.ts +51 -0
  22. package/dist/components/TagGroup.d.ts.map +1 -0
  23. package/dist/components/TagGroup.js +84 -0
  24. package/dist/components/TagGroup.js.map +1 -0
  25. package/dist/components/TimeField.d.ts +72 -0
  26. package/dist/components/TimeField.d.ts.map +1 -0
  27. package/dist/components/TimeField.js +102 -0
  28. package/dist/components/TimeField.js.map +1 -0
  29. package/dist/components/index.d.ts +14 -1
  30. package/dist/components/index.d.ts.map +1 -1
  31. package/dist/components/index.js +6 -0
  32. package/dist/components/index.js.map +1 -1
  33. package/dist/components/iso-time.d.ts +23 -0
  34. package/dist/components/iso-time.d.ts.map +1 -0
  35. package/dist/components/iso-time.js +34 -0
  36. package/dist/components/iso-time.js.map +1 -0
  37. package/dist/components/shortcut.d.ts +19 -0
  38. package/dist/components/shortcut.d.ts.map +1 -0
  39. package/dist/components/shortcut.js +122 -0
  40. package/dist/components/shortcut.js.map +1 -0
  41. package/dist/components/use-table-sort.d.ts +38 -0
  42. package/dist/components/use-table-sort.d.ts.map +1 -0
  43. package/dist/components/use-table-sort.js +33 -0
  44. package/dist/components/use-table-sort.js.map +1 -0
  45. package/dist/figma-descriptions.json +103 -68
  46. package/dist/figma-map.json +343 -2
  47. package/dist/meta/Card.json +153 -0
  48. package/dist/meta/Checkbox.json +2 -2
  49. package/dist/meta/CommandPalette.json +178 -0
  50. package/dist/meta/DatePicker.json +2 -2
  51. package/dist/meta/Kbd.json +97 -0
  52. package/dist/meta/Radio.json +2 -2
  53. package/dist/meta/RadioGroup.json +2 -2
  54. package/dist/meta/Table.json +4 -1
  55. package/dist/meta/TableBody.json +3 -0
  56. package/dist/meta/TableCell.json +49 -5
  57. package/dist/meta/TableHead.json +3 -0
  58. package/dist/meta/TableRow.json +3 -0
  59. package/dist/meta/Tag.json +54 -0
  60. package/dist/meta/TagGroup.json +211 -0
  61. package/dist/meta/TimeField.json +224 -0
  62. package/dist/meta/Toggle.json +2 -2
  63. package/dist/meta/components.json +1010 -36
  64. package/dist/meta/contrast.json +1133 -6
  65. package/dist/meta/index.json +86 -12
  66. package/dist/meta/patterns/DataTable.json +27 -3
  67. package/dist/meta/patterns/PageShell.json +15 -2
  68. package/dist/meta/patterns/index.json +7 -3
  69. package/dist/styles/agent-activity.css +4 -2
  70. package/dist/styles/approval-gate.css +4 -3
  71. package/dist/styles/card.css +75 -0
  72. package/dist/styles/citation.css +4 -2
  73. package/dist/styles/command-palette.css +250 -0
  74. package/dist/styles/confidence-indicator.css +2 -2
  75. package/dist/styles/index.css +5 -0
  76. package/dist/styles/kbd.css +47 -0
  77. package/dist/styles/streaming-text.css +3 -2
  78. package/dist/styles/table.css +51 -0
  79. package/dist/styles/tag-group.css +172 -0
  80. package/dist/styles/time-field.css +31 -0
  81. package/llms.txt +2 -2
  82. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
3
  import { createContext, forwardRef, useContext } from 'react';
4
4
  import { Checkbox } from './Checkbox.js';
5
5
  /**
@@ -54,6 +54,7 @@ export const TableRow = forwardRef(({ isSelected, selection, className, children
54
54
  (inHead ? (_jsx("th", { scope: "col", children: _jsx(Checkbox, { ...selection }) })) : (_jsx("td", { children: _jsx(Checkbox, { ...selection }) }))), children] }));
55
55
  });
56
56
  TableRow.displayName = 'TableRow';
57
+ const SortIcon = ({ direction }) => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", children: direction === 'ascending' ? (_jsx("path", { d: "m5 12 7-7 7 7M12 19V5" })) : direction === 'descending' ? (_jsx("path", { d: "M12 5v14m7-7-7 7-7-7" })) : (_jsx("path", { d: "m7 15 5 5 5-5M7 9l5-5 5 5" })) }));
57
58
  /**
58
59
  * One component covers Figma's `Table Cell` + `Cell Text`: the two are never
59
60
  * used apart in the design (`Table Cell` always wraps exactly one `Cell
@@ -64,9 +65,10 @@ TableRow.displayName = 'TableRow';
64
65
  * could disagree with where the cell actually sits — a `<th>` rendered inside
65
66
  * `<tbody>` is still a header cell to the browser and to CSS either way.
66
67
  */
67
- export const TableCell = forwardRef(({ header, scope: scopeProp, align = 'leading', variant = 'default', showDivider, icon, trailingIcon, className, children, ...rest }, ref) => {
68
+ export const TableCell = forwardRef(({ header, scope: scopeProp, align = 'leading', variant = 'default', showDivider, icon, trailingIcon, sortDirection, onSort, className, children, ...rest }, ref) => {
68
69
  const section = useContext(TableSectionContext);
69
70
  const Tag = header ? 'th' : 'td';
71
+ const isSortable = header && sortDirection !== undefined;
70
72
  // `scope` is only valid on `<th>` — never put it on a `<td>`.
71
73
  const scope = header
72
74
  ? (scopeProp ?? (section === 'body' ? 'row' : 'col'))
@@ -74,10 +76,19 @@ export const TableCell = forwardRef(({ header, scope: scopeProp, align = 'leadin
74
76
  const contentClassNames = [
75
77
  'ion-table__cell-content',
76
78
  variant === 'link' ? 'ion-table__cell-content--link' : '',
79
+ isSortable ? 'ion-table__sort' : '',
80
+ isSortable && sortDirection !== 'none' ? 'ion-table__sort--active' : '',
77
81
  ]
78
82
  .filter(Boolean)
79
83
  .join(' ');
80
- return (_jsx(Tag, { ...rest, ref: ref, ...(scope ? { scope } : {}), "data-align": align !== 'leading' ? align : undefined, "data-divider": showDivider || undefined, className: className, children: _jsxs("span", { className: contentClassNames, children: [icon && (_jsx("span", { className: "ion-table__cell-icon", "aria-hidden": "true", children: icon })), children, trailingIcon && (_jsx("span", { className: "ion-table__cell-icon ion-table__cell-icon--trailing", "aria-hidden": "true", children: trailingIcon }))] }) }));
84
+ const content = (_jsxs(_Fragment, { children: [icon && (_jsx("span", { className: "ion-table__cell-icon", "aria-hidden": "true", children: icon })), children, isSortable ? (_jsx("span", { className: "ion-table__cell-icon ion-table__cell-icon--trailing ion-table__sort-icon", "aria-hidden": "true", children: _jsx(SortIcon, { direction: sortDirection }) })) : (trailingIcon && (_jsx("span", { className: "ion-table__cell-icon ion-table__cell-icon--trailing", "aria-hidden": "true", children: trailingIcon })))] }));
85
+ return (_jsx(Tag, { ...rest, ref: ref, ...(scope ? { scope } : {}), "aria-sort": isSortable && sortDirection !== 'none'
86
+ ? sortDirection
87
+ : rest['aria-sort'], "data-align": align !== 'leading' ? align : undefined, "data-divider": showDivider || undefined, className: className, children: isSortable ? (
88
+ // A real button inside the <th>, not a clickable <th>: the header
89
+ // keeps its column-header role and the button gets focus, Enter
90
+ // and Space for free.
91
+ _jsx("button", { type: "button", className: contentClassNames, onClick: onSort, children: content })) : (_jsx("span", { className: contentClassNames, children: content })) }));
81
92
  });
82
93
  TableCell.displayName = 'TableCell';
83
94
  //# sourceMappingURL=Table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/components/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/components/Table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { type AriaTagGroupProps } from 'react-aria';
3
+ import { Item } from '@react-stately/collections';
4
+ import type { Key } from '@react-types/shared';
5
+ export type TagGroupSize = 'sm' | 'md';
6
+ export interface TagGroupProps<T extends object> extends Omit<AriaTagGroupProps<T>, 'selectionMode' | 'selectionBehavior' | 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange' | 'disallowEmptySelection' | 'shouldSelectOnPressUp' | 'escapeKeyBehavior' | 'onAction' | 'errorMessage'> {
7
+ /**
8
+ * Called with the keys of the tags to remove — from a tag's × button, or
9
+ * Delete / Backspace on a focused tag. Pass it and every tag shows a remove
10
+ * button; leave it out and the tags are read-only labels. The group does
11
+ * not remove anything itself: drop the keys from your own list.
12
+ */
13
+ onRemove?: (keys: Set<Key>) => void;
14
+ /** Figma's `Size`. Set once here, so every tag in a group matches. */
15
+ size?: TagGroupSize;
16
+ /**
17
+ * Shown in place of the tags when there are none — "No filters applied".
18
+ * Without it an empty group renders nothing but its label.
19
+ */
20
+ emptyLabel?: React.ReactNode;
21
+ className?: string;
22
+ }
23
+ /**
24
+ * TagGroup — labels a person applied and can take away: active filters, the
25
+ * labels on a record, the recipients of a message.
26
+ *
27
+ * NOT A BADGE
28
+ *
29
+ * A Badge reports a state the system decided — Failing, Paid. A Tag is a
30
+ * choice someone made, which is why it is removable and why it is neutral:
31
+ * colouring tags by intent would make "Status: Failing" as a filter look like
32
+ * the agent is failing.
33
+ *
34
+ * WHAT REACT ARIA GIVES IT
35
+ *
36
+ * `useTagGroup` makes the group one tab stop with arrow keys between tags, a
37
+ * remove button per tag named "Remove <tag>", and Delete / Backspace to remove
38
+ * the focused one. When a tag goes, focus moves to its neighbour. The one case
39
+ * React Aria leaves open is the last tag: focus would fall to <body>, so the
40
+ * group takes it instead and reads out `emptyLabel`.
41
+ *
42
+ * No selection: a chip that toggles on and off is a SegmentedControl or a
43
+ * Checkbox, which already say "selected" the way a screen reader expects.
44
+ */
45
+ export declare function TagGroup<T extends object>(props: TagGroupProps<T>): React.JSX.Element;
46
+ /**
47
+ * One tag. The children are its label; `key` is what `onRemove` hands back.
48
+ * Give it `textValue` when the children are not plain text.
49
+ */
50
+ export { Item as Tag };
51
+ //# sourceMappingURL=TagGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagGroup.d.ts","sourceRoot":"","sources":["../../src/components/TagGroup.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AACjD,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,KAAK,EAAE,GAAG,EAAQ,MAAM,qBAAqB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;AAEvC,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,IAAI,CAC3D,iBAAiB,CAAC,CAAC,CAAC,EAClB,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,qBAAqB,GACrB,mBAAmB,GACnB,wBAAwB,GACxB,uBAAuB,GACvB,mBAAmB,GACnB,UAAU,GACV,cAAc,CACjB;IACC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACpC,sEAAsE;IACtE,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,qBAsEjE;AAED;;;GAGG;AACH,OAAO,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC"}
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef } from 'react';
4
+ import { useButton, useFocusRing, useHover, useTag, useTagGroup, mergeProps, } from 'react-aria';
5
+ import { useListState } from 'react-stately';
6
+ import { Item } from '@react-stately/collections';
7
+ const RemoveIcon = () => (_jsx("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M18 6 6 18M6 6l12 12" }) }));
8
+ function RemoveButton(props) {
9
+ const ref = useRef(null);
10
+ const { buttonProps } = useButton(props, ref);
11
+ const { focusProps, isFocusVisible } = useFocusRing();
12
+ return (_jsx("button", { ...mergeProps(buttonProps, focusProps), ref: ref, className: "ion-tag__remove", "data-focus-visible": isFocusVisible || undefined, children: _jsx(RemoveIcon, {}) }));
13
+ }
14
+ function TagRow({ item, state }) {
15
+ const ref = useRef(null);
16
+ const { focusProps, isFocusVisible } = useFocusRing();
17
+ const { hoverProps, isHovered } = useHover({});
18
+ const { rowProps, gridCellProps, removeButtonProps, allowsRemoving, isDisabled, } = useTag({ item }, state, ref);
19
+ return (_jsx("div", { ...mergeProps(rowProps, focusProps, hoverProps), ref: ref, className: [
20
+ 'ion-tag',
21
+ isDisabled ? 'ion-tag--disabled' : '',
22
+ allowsRemoving ? 'ion-tag--removable' : '',
23
+ ]
24
+ .filter(Boolean)
25
+ .join(' '), "data-focus-visible": isFocusVisible || undefined, "data-hovered": isHovered || undefined, children: _jsxs("div", { ...gridCellProps, className: "ion-tag__cell", children: [_jsx("span", { className: "ion-tag__label", children: item.rendered }), allowsRemoving && _jsx(RemoveButton, { ...removeButtonProps })] }) }));
26
+ }
27
+ /**
28
+ * TagGroup — labels a person applied and can take away: active filters, the
29
+ * labels on a record, the recipients of a message.
30
+ *
31
+ * NOT A BADGE
32
+ *
33
+ * A Badge reports a state the system decided — Failing, Paid. A Tag is a
34
+ * choice someone made, which is why it is removable and why it is neutral:
35
+ * colouring tags by intent would make "Status: Failing" as a filter look like
36
+ * the agent is failing.
37
+ *
38
+ * WHAT REACT ARIA GIVES IT
39
+ *
40
+ * `useTagGroup` makes the group one tab stop with arrow keys between tags, a
41
+ * remove button per tag named "Remove <tag>", and Delete / Backspace to remove
42
+ * the focused one. When a tag goes, focus moves to its neighbour. The one case
43
+ * React Aria leaves open is the last tag: focus would fall to <body>, so the
44
+ * group takes it instead and reads out `emptyLabel`.
45
+ *
46
+ * No selection: a chip that toggles on and off is a SegmentedControl or a
47
+ * Checkbox, which already say "selected" the way a screen reader expects.
48
+ */
49
+ export function TagGroup(props) {
50
+ const { size = 'sm', emptyLabel, className, label, description, onRemove, } = props;
51
+ const gridRef = useRef(null);
52
+ const refocusGroup = useRef(false);
53
+ // Wrapped so the group knows a removal it took focus from has happened.
54
+ const handleRemove = onRemove
55
+ ? (keys) => {
56
+ refocusGroup.current = !!gridRef.current?.contains(document.activeElement);
57
+ onRemove(keys);
58
+ }
59
+ : undefined;
60
+ const ariaProps = { ...props, onRemove: handleRemove };
61
+ const state = useListState(ariaProps);
62
+ const { gridProps, labelProps, descriptionProps } = useTagGroup(ariaProps, state, gridRef);
63
+ const isEmpty = state.collection.size === 0;
64
+ useEffect(() => {
65
+ if (refocusGroup.current && isEmpty)
66
+ gridRef.current?.focus();
67
+ refocusGroup.current = false;
68
+ }, [isEmpty]);
69
+ return (_jsxs("div", { className: ['ion-tag-group', `ion-tag-group--${size}`, className]
70
+ .filter(Boolean)
71
+ .join(' '), children: [label && (_jsx("div", { ...labelProps, className: "ion-tag-group__label", children: label })), _jsx("div", { ...gridProps, ref: gridRef,
72
+ // Empty, React Aria drops the grid role — an empty grid is an error.
73
+ // It becomes a named group instead, focusable only then, so the last
74
+ // removal lands somewhere that says "Active filters, No filters applied".
75
+ role: isEmpty ? 'group' : gridProps.role, tabIndex: isEmpty ? -1 : gridProps.tabIndex, className: "ion-tag-group__list", children: isEmpty
76
+ ? emptyLabel && _jsx("p", { className: "ion-tag-group__empty", children: emptyLabel })
77
+ : [...state.collection].map((item) => (_jsx(TagRow, { item: item, state: state }, item.key))) }), description && (_jsx("div", { ...descriptionProps, className: "ion-tag-group__description", children: description }))] }));
78
+ }
79
+ /**
80
+ * One tag. The children are its label; `key` is what `onRemove` hands back.
81
+ * Give it `textValue` when the children are not plain text.
82
+ */
83
+ export { Item as Tag };
84
+ //# sourceMappingURL=TagGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagGroup.js","sourceRoot":"","sources":["../../src/components/TagGroup.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import { type IsoTime } from './iso-time.js';
3
+ export type TimeFieldSize = 'sm' | 'md' | 'lg';
4
+ /** The smallest unit the field edits. */
5
+ export type TimeFieldGranularity = 'hour' | 'minute' | 'second';
6
+ export interface TimeFieldProps {
7
+ /** Field label. Required for a usable control — see `a11y.requires`. */
8
+ label?: React.ReactNode;
9
+ /** Names the field when there is no visible `label`. */
10
+ 'aria-label'?: string;
11
+ /** Helper text below the field — "In the workspace's timezone". */
12
+ description?: React.ReactNode;
13
+ /** Replaces the helper text when `isInvalid` is set. */
14
+ errorMessage?: React.ReactNode;
15
+ isInvalid?: boolean;
16
+ isDisabled?: boolean;
17
+ isReadOnly?: boolean;
18
+ isRequired?: boolean;
19
+ /** Matches Input's `Size` variant: Small, Medium, Large. */
20
+ size?: TimeFieldSize;
21
+ /**
22
+ * The time as `HH:MM` (or `HH:MM:SS`), 24-hour, whatever the reader sees.
23
+ * `null` means no time is chosen. A wall-clock reading — no date, no
24
+ * timezone. A malformed value throws rather than rendering an empty field.
25
+ */
26
+ value?: IsoTime | null;
27
+ /** The initial time, for an uncontrolled field. */
28
+ defaultValue?: IsoTime;
29
+ /** Fires with `HH:MM` (`HH:MM:SS` at second granularity), or `null` when cleared. */
30
+ onChange?: (value: IsoTime | null) => void;
31
+ /** Earliest allowed time, `HH:MM`. Later is not wrapped past midnight. */
32
+ minValue?: IsoTime;
33
+ /** Latest allowed time, `HH:MM`. */
34
+ maxValue?: IsoTime;
35
+ /** Defaults to `minute`. `second` adds a seconds segment and value. */
36
+ granularity?: TimeFieldGranularity;
37
+ /**
38
+ * 12 or 24-hour display. Leave it out: the reader's locale already knows,
39
+ * and forcing 12-hour on a 24-hour reader is the misreading this field
40
+ * exists to prevent. The value is 24-hour either way.
41
+ */
42
+ hourCycle?: 12 | 24;
43
+ /** Posts the value under this name, for an uncontrolled form. */
44
+ name?: string;
45
+ className?: string;
46
+ wrapperClassName?: string;
47
+ id?: string;
48
+ }
49
+ /**
50
+ * TimeField — a time of day, typed into segments.
51
+ *
52
+ * DatePicker's text half, for times: hour, minute and, where the locale uses
53
+ * one, AM/PM — each a spinbutton that takes digits or arrow keys. The order,
54
+ * the separator and the 12 or 24-hour clock come from the reader's locale, so
55
+ * "2:30 PM" and "14:30" are the same field and the same value.
56
+ *
57
+ * WHY NOT A TEXT INPUT OR `<input type="time">`
58
+ *
59
+ * Free text means guessing whether "2:30" is afternoon. The native control
60
+ * cannot be styled to match the other fields, and Safari's has no picker at
61
+ * all. Segments cannot hold a time that does not exist, and every browser
62
+ * draws them the same.
63
+ *
64
+ * No dropdown of times. A list of 96 quarter-hours is slower to scan than two
65
+ * digits are to type, and it makes 09:07 impossible. Where only a few times
66
+ * are allowed, that is a Select, not a TimeField.
67
+ */
68
+ export declare function TimeField({ label, 'aria-label': ariaLabel, description, errorMessage, isInvalid, isDisabled, isReadOnly, isRequired, size, value, defaultValue, onChange, minValue, maxValue, granularity, hourCycle, name, className, wrapperClassName, id, }: TimeFieldProps): React.JSX.Element;
69
+ export declare namespace TimeField {
70
+ var displayName: string;
71
+ }
72
+ //# sourceMappingURL=TimeField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeField.d.ts","sourceRoot":"","sources":["../../src/components/TimeField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,OAAO,EAAqB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC/C,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC7B,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,wDAAwD;IACxD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACvB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uEAAuE;IACvE,WAAW,CAAC,EAAE,oBAAoB,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;IACpB,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAkBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,YAAY,EAAE,SAAS,EACvB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,IAAW,EACX,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAsB,EACtB,SAAS,EACT,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,EAAE,GACH,EAAE,cAAc,qBA4HhB;yBAjJe,SAAS"}
@@ -0,0 +1,102 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useMemo, useRef, useState } from 'react';
4
+ import { useLocale, useTimeField } from 'react-aria';
5
+ import { useTimeFieldState } from 'react-stately';
6
+ import { Segment } from './DateField.js';
7
+ import { toIsoTime, toTime } from './iso-time.js';
8
+ const ClockIcon = () => (_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", focusable: "false", children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("path", { d: "M12 6v6l4 2" })] }));
9
+ /**
10
+ * TimeField — a time of day, typed into segments.
11
+ *
12
+ * DatePicker's text half, for times: hour, minute and, where the locale uses
13
+ * one, AM/PM — each a spinbutton that takes digits or arrow keys. The order,
14
+ * the separator and the 12 or 24-hour clock come from the reader's locale, so
15
+ * "2:30 PM" and "14:30" are the same field and the same value.
16
+ *
17
+ * WHY NOT A TEXT INPUT OR `<input type="time">`
18
+ *
19
+ * Free text means guessing whether "2:30" is afternoon. The native control
20
+ * cannot be styled to match the other fields, and Safari's has no picker at
21
+ * all. Segments cannot hold a time that does not exist, and every browser
22
+ * draws them the same.
23
+ *
24
+ * No dropdown of times. A list of 96 quarter-hours is slower to scan than two
25
+ * digits are to type, and it makes 09:07 impossible. Where only a few times
26
+ * are allowed, that is a Select, not a TimeField.
27
+ */
28
+ export function TimeField({ label, 'aria-label': ariaLabel, description, errorMessage, isInvalid, isDisabled, isReadOnly, isRequired, size = 'md', value, defaultValue, onChange, minValue, maxValue, granularity = 'minute', hourCycle, name, className, wrapperClassName, id, }) {
29
+ const withSeconds = granularity === 'second';
30
+ // As DatePicker: `undefined` stays uncontrolled, `null` is controlled-and-empty.
31
+ // Checked before any hook, so a malformed value throws its own message.
32
+ toTime(value ?? null, 'value');
33
+ toTime(minValue, 'minValue');
34
+ toTime(maxValue, 'maxValue');
35
+ /*
36
+ * One `Time` object per string, not per render. A controlled TimeField —
37
+ * the demo wizard holds its value in state — built a fresh `Time` every
38
+ * render and rendered forever (React error 301); keyed on the string, it
39
+ * does not. DatePicker rebuilds its CalendarDate the same way and does not
40
+ * loop, so the difference is inside react-stately's time-field state. Not
41
+ * traced further; the storybook story `ControlledDoesNotLoop` holds the line.
42
+ */
43
+ const timeValue = useMemo(() => (value === undefined ? undefined : toTime(value, 'value')), [value]);
44
+ const min = useMemo(() => toTime(minValue, 'minValue'), [minValue]);
45
+ const max = useMemo(() => toTime(maxValue, 'maxValue'), [maxValue]);
46
+ const [initial] = useState(() => toTime(defaultValue, 'defaultValue'));
47
+ const ariaProps = {
48
+ id,
49
+ label,
50
+ 'aria-label': ariaLabel,
51
+ value: timeValue,
52
+ defaultValue: initial,
53
+ minValue: min,
54
+ maxValue: max,
55
+ granularity,
56
+ hourCycle,
57
+ isDisabled,
58
+ isReadOnly,
59
+ isRequired,
60
+ isInvalid,
61
+ onChange: onChange
62
+ ? (time) => onChange(time ? toIsoTime(time, withSeconds) : null)
63
+ : undefined,
64
+ };
65
+ const { locale } = useLocale();
66
+ const state = useTimeFieldState({ ...ariaProps, locale });
67
+ const ref = useRef(null);
68
+ const { labelProps, fieldProps, descriptionProps, errorMessageProps } = useTimeField(ariaProps, state, ref);
69
+ /*
70
+ * Invalid is the prop OR the field's own bounds check. Left to the prop
71
+ * alone, 18:00 against a 17:00 maximum marked the segments aria-invalid and
72
+ * left the box looking valid. With no `errorMessage`, React Aria's own
73
+ * localized message says what the bound is.
74
+ */
75
+ const { isInvalid: outOfBounds, validationErrors } = state.displayValidation;
76
+ const invalid = !!isInvalid || outOfBounds;
77
+ const error = errorMessage ??
78
+ (validationErrors.length ? validationErrors.join(' ') : null);
79
+ const helper = invalid && error ? error : description;
80
+ return (_jsxs("div", { className: [
81
+ 'ion-field',
82
+ invalid ? 'ion-field--error' : '',
83
+ wrapperClassName || '',
84
+ ]
85
+ .filter(Boolean)
86
+ .join(' '), children: [label && (
87
+ // A <span>, as in DatePicker: the segments are spinbuttons, so a
88
+ // <label htmlFor> has no one control to point at.
89
+ _jsx("span", { ...labelProps, className: "ion-field__label", children: label })), _jsxs("div", { className: [
90
+ 'ion-input',
91
+ 'ion-time-field',
92
+ size !== 'md' ? `ion-input--${size}` : '',
93
+ invalid ? 'ion-input--invalid' : '',
94
+ isDisabled ? 'ion-input--disabled' : '',
95
+ isReadOnly ? 'ion-input--readonly' : '',
96
+ className || '',
97
+ ]
98
+ .filter(Boolean)
99
+ .join(' '), "data-invalid": invalid || undefined, "data-disabled": isDisabled || undefined, children: [_jsx("span", { className: "ion-input__icon-start", "aria-hidden": "true", children: _jsx(ClockIcon, {}) }), _jsx("div", { ...fieldProps, ref: ref, className: "ion-date-field", children: state.segments.map((segment, i) => (_jsx(Segment, { segment: segment, state: state }, i))) }), name && (_jsx("input", { type: "hidden", name: name, value: state.value ? toIsoTime(state.timeValue, withSeconds) : '' }))] }), helper && (_jsx("span", { ...(invalid && error ? errorMessageProps : descriptionProps), className: "ion-field__helper", children: helper }))] }));
100
+ }
101
+ TimeField.displayName = 'TimeField';
102
+ //# sourceMappingURL=TimeField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeField.js","sourceRoot":"","sources":["../../src/components/TimeField.tsx"],"names":[],"mappings":"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"}
@@ -47,9 +47,18 @@ export type { LinkProps, LinkVariant } from './Link.js';
47
47
  export { NavItem } from './NavItem.js';
48
48
  export type { NavItemProps } from './NavItem.js';
49
49
  export { Table, TableHead, TableBody, TableRow, TableCell } from './Table.js';
50
- export type { TableProps, TableDensity, TableRowProps, TableRowSelection, TableCellProps, TableCellAlign, TableCellScope, } from './Table.js';
50
+ export type { TableProps, TableDensity, TableRowProps, TableRowSelection, TableCellProps, TableCellAlign, TableCellScope, TableSortDirection, } from './Table.js';
51
+ export { useTableSort } from './use-table-sort.js';
52
+ export type { TableSort, TableSortProps, UseTableSortResult, } from './use-table-sort.js';
51
53
  export { ScrollProgress } from './ScrollProgress.js';
52
54
  export type { ScrollProgressProps, ScrollProgressSection, ScrollProgressPlacement, } from './ScrollProgress.js';
55
+ export { TimeField } from './TimeField.js';
56
+ export type { TimeFieldProps, TimeFieldSize, TimeFieldGranularity, } from './TimeField.js';
57
+ export type { IsoTime } from './iso-time.js';
58
+ export { TagGroup, Tag } from './TagGroup.js';
59
+ export type { TagGroupProps, TagGroupSize } from './TagGroup.js';
60
+ export { Card } from './Card.js';
61
+ export type { CardProps, CardHeadingLevel, CardIntent } from './Card.js';
53
62
  export { FullCard } from './FullCard.js';
54
63
  export type { FullCardProps, FullCardAlignment, FullCardHeadingLevel, } from './FullCard.js';
55
64
  export { AgentStop } from './AgentStop.js';
@@ -109,4 +118,8 @@ export { agentRunFrom, agentRunHasEnded, agentRunLog, agentRunReducer, initialAg
109
118
  export type { AgentRunApproval, AgentRunEvent, AgentRunPhase, AgentRunRecording, AgentRunState, AgentRunStep, AgentRunStepStatus, ReplayAgentRunOptions, } from './agent-run.js';
110
119
  export { useAgentRun } from './use-agent-run.js';
111
120
  export type { UseAgentRunOptions, UseAgentRunResult } from './use-agent-run.js';
121
+ export { Kbd } from './Kbd.js';
122
+ export type { KbdProps, KbdPlatform } from './Kbd.js';
123
+ export { CommandPalette } from './CommandPalette.js';
124
+ export type { CommandPaletteProps, CommandPaletteItem, } from './CommandPalette.js';
112
125
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACV,wBAAwB,EACxB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAQ9B,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOtE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,UAAU,EACV,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/C,YAAY,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC3C,YAAY,EACV,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,UAAU,EACV,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,YAAY,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,cAAc,EACd,aAAa,EACb,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EACV,wBAAwB,EACxB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7D,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1D,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EACV,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAQ9B,YAAY,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpD,YAAY,EACV,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOtE,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAQpB,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC"}
@@ -23,7 +23,11 @@ export { Modal } from './Modal.js';
23
23
  export { Link } from './Link.js';
24
24
  export { NavItem } from './NavItem.js';
25
25
  export { Table, TableHead, TableBody, TableRow, TableCell } from './Table.js';
26
+ export { useTableSort } from './use-table-sort.js';
26
27
  export { ScrollProgress } from './ScrollProgress.js';
28
+ export { TimeField } from './TimeField.js';
29
+ export { TagGroup, Tag } from './TagGroup.js';
30
+ export { Card } from './Card.js';
27
31
  export { FullCard } from './FullCard.js';
28
32
  export { AgentStop } from './AgentStop.js';
29
33
  export { ApprovalGate } from './ApprovalGate.js';
@@ -64,4 +68,6 @@ export { ChartLegend, ChartTooltip, chartAxisProps, chartGridProps, chartSeriesC
64
68
  */
65
69
  export { agentRunFrom, agentRunHasEnded, agentRunLog, agentRunReducer, initialAgentRunState, replayAgentRun, } from './agent-run.js';
66
70
  export { useAgentRun } from './use-agent-run.js';
71
+ export { Kbd } from './Kbd.js';
72
+ export { CommandPalette } from './CommandPalette.js';
67
73
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAM7C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAOnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAOnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAO/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQlD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAKrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAO3C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAS5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAW9E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAMrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAMzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAMtE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAO1D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAOpE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO/E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAgBvD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQpD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;GAIG;AACH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAUpB;;;;;GAKG;AACH,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Time } from '@internationalized/date';
2
+ /**
3
+ * A wall-clock time as `HH:MM` or `HH:MM:SS`, 24-hour.
4
+ *
5
+ * An alias for `string`, so it documents rather than enforces; `toTime` is
6
+ * the runtime check.
7
+ */
8
+ export type IsoTime = string;
9
+ /**
10
+ * `HH:MM[:SS]` in, `Time` out. Throws on anything else, for the reason
11
+ * `toCalendarDate` does: an empty field for a malformed value looks exactly
12
+ * like "no time chosen", and the caller never finds out.
13
+ */
14
+ export declare function toTime(value: undefined, prop: string): undefined;
15
+ export declare function toTime(value: IsoTime | null, prop: string): Time | null;
16
+ export declare function toTime(value: IsoTime | null | undefined, prop: string): Time | null | undefined;
17
+ /** `Time` out to `HH:MM`, or `HH:MM:SS` when the field shows seconds. */
18
+ export declare function toIsoTime(time: {
19
+ hour: number;
20
+ minute: number;
21
+ second: number;
22
+ }, withSeconds: boolean): IsoTime;
23
+ //# sourceMappingURL=iso-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-time.d.ts","sourceRoot":"","sources":["../../src/components/iso-time.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAI7B;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;AAClE,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AACzE,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACjC,IAAI,EAAE,MAAM,GACX,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAiB3B,yEAAyE;AACzE,wBAAgB,SAAS,CACvB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACtD,WAAW,EAAE,OAAO,GACnB,OAAO,CAGT"}
@@ -0,0 +1,34 @@
1
+ /*
2
+ * The time boundary — `iso-date.ts`'s sibling, for the same reasons.
3
+ *
4
+ * The public value is a wall-clock time as `HH:MM` (or `HH:MM:SS`), 24-hour,
5
+ * with no date and no timezone. What the user SEES is their own locale's
6
+ * format — "2:30 PM" for one reader, "14:30" for another — and the value
7
+ * comes back as `14:30` either way. react-aria's `Time` object never appears
8
+ * in a consumer's import list.
9
+ *
10
+ * NOT A `Date`, NOT A TIMESTAMP
11
+ *
12
+ * "Run every day at 09:00" means nine o'clock wherever the schedule lives.
13
+ * A `Date` would pin it to one instant, and it would drift an hour twice a
14
+ * year. Pair the time with a timezone field where the product needs one; the
15
+ * time itself stays a wall-clock reading.
16
+ */
17
+ import { Time } from '@internationalized/date';
18
+ const ISO_TIME = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?$/;
19
+ export function toTime(value, prop) {
20
+ if (value === undefined || value === null)
21
+ return value;
22
+ const m = ISO_TIME.exec(value);
23
+ if (!m) {
24
+ throw new Error(`TimeField: \`${prop}\` must be "HH:MM" or "HH:MM:SS" in 24-hour time, got "${value}".`);
25
+ }
26
+ return new Time(Number(m[1]), Number(m[2]), m[3] ? Number(m[3]) : 0);
27
+ }
28
+ const pad = (n) => String(n).padStart(2, '0');
29
+ /** `Time` out to `HH:MM`, or `HH:MM:SS` when the field shows seconds. */
30
+ export function toIsoTime(time, withSeconds) {
31
+ const hm = `${pad(time.hour)}:${pad(time.minute)}`;
32
+ return withSeconds ? `${hm}:${pad(time.second)}` : hm;
33
+ }
34
+ //# sourceMappingURL=iso-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iso-time.js","sourceRoot":"","sources":["../../src/components/iso-time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAU/C,MAAM,QAAQ,GAAG,4CAA4C,CAAC;AAa9D,MAAM,UAAU,MAAM,CACpB,KAAiC,EACjC,IAAY;IAEZ,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,0DAA0D,KAAK,IAAI,CACxF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAEtD,yEAAyE;AACzE,MAAM,UAAU,SAAS,CACvB,IAAsD,EACtD,WAAoB;IAEpB,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACnD,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACxD,CAAC"}
@@ -0,0 +1,19 @@
1
+ type Modifier = 'mod' | 'ctrl' | 'alt' | 'shift' | 'meta';
2
+ export interface ParsedShortcut {
3
+ modifiers: Set<Modifier>;
4
+ key: string;
5
+ }
6
+ /** `mod+Shift+P` → `{ modifiers: {mod, shift}, key: 'p' }`. Throws on a shortcut with no key. */
7
+ export declare function parseShortcut(shortcut: string): ParsedShortcut;
8
+ export interface ShortcutKey {
9
+ /** What is printed on the key: `⌘`, `Ctrl`, `K`. */
10
+ symbol: string;
11
+ /** What a screen reader should say: `Command`, `Control`, `K`. */
12
+ name: string;
13
+ }
14
+ /** The keys to draw, in the platform's conventional order. */
15
+ export declare function shortcutKeys(shortcut: string, isMac: boolean): ShortcutKey[];
16
+ /** Whether a keydown is this shortcut — modifiers exact, so `mod+k` is not `mod+shift+k`. */
17
+ export declare function matchesShortcut(event: Pick<KeyboardEvent, 'key' | 'metaKey' | 'ctrlKey' | 'altKey' | 'shiftKey'>, shortcut: ParsedShortcut, isMac: boolean): boolean;
18
+ export {};
19
+ //# sourceMappingURL=shortcut.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcut.d.ts","sourceRoot":"","sources":["../../src/components/shortcut.ts"],"names":[],"mappings":"AAWA,KAAK,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAkB1D,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAsB9D;AAqDD,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,EAAE,CAkB5E;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAC7B,KAAK,EAAE,IAAI,CACT,aAAa,EACb,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CACtD,EACD,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,OAAO,GACb,OAAO,CAUT"}