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.
- package/dist/components/Card.d.ts +61 -0
- package/dist/components/Card.d.ts.map +1 -0
- package/dist/components/Card.js +37 -0
- package/dist/components/Card.js.map +1 -0
- package/dist/components/CommandPalette.d.ts +76 -0
- package/dist/components/CommandPalette.d.ts.map +1 -0
- package/dist/components/CommandPalette.js +194 -0
- package/dist/components/CommandPalette.js.map +1 -0
- package/dist/components/DateField.d.ts +14 -0
- package/dist/components/DateField.d.ts.map +1 -1
- package/dist/components/DateField.js +1 -1
- package/dist/components/DateField.js.map +1 -1
- package/dist/components/Kbd.d.ts +45 -0
- package/dist/components/Kbd.d.ts.map +1 -0
- package/dist/components/Kbd.js +45 -0
- package/dist/components/Kbd.js.map +1 -0
- package/dist/components/Table.d.ts +18 -0
- package/dist/components/Table.d.ts.map +1 -1
- package/dist/components/Table.js +14 -3
- package/dist/components/Table.js.map +1 -1
- package/dist/components/TagGroup.d.ts +51 -0
- package/dist/components/TagGroup.d.ts.map +1 -0
- package/dist/components/TagGroup.js +84 -0
- package/dist/components/TagGroup.js.map +1 -0
- package/dist/components/TimeField.d.ts +72 -0
- package/dist/components/TimeField.d.ts.map +1 -0
- package/dist/components/TimeField.js +102 -0
- package/dist/components/TimeField.js.map +1 -0
- package/dist/components/index.d.ts +14 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/iso-time.d.ts +23 -0
- package/dist/components/iso-time.d.ts.map +1 -0
- package/dist/components/iso-time.js +34 -0
- package/dist/components/iso-time.js.map +1 -0
- package/dist/components/shortcut.d.ts +19 -0
- package/dist/components/shortcut.d.ts.map +1 -0
- package/dist/components/shortcut.js +122 -0
- package/dist/components/shortcut.js.map +1 -0
- package/dist/components/use-table-sort.d.ts +38 -0
- package/dist/components/use-table-sort.d.ts.map +1 -0
- package/dist/components/use-table-sort.js +33 -0
- package/dist/components/use-table-sort.js.map +1 -0
- package/dist/figma-descriptions.json +103 -68
- package/dist/figma-map.json +343 -2
- package/dist/meta/Card.json +153 -0
- package/dist/meta/Checkbox.json +2 -2
- package/dist/meta/CommandPalette.json +178 -0
- package/dist/meta/DatePicker.json +2 -2
- package/dist/meta/Kbd.json +97 -0
- package/dist/meta/Radio.json +2 -2
- package/dist/meta/RadioGroup.json +2 -2
- package/dist/meta/Table.json +4 -1
- package/dist/meta/TableBody.json +3 -0
- package/dist/meta/TableCell.json +49 -5
- package/dist/meta/TableHead.json +3 -0
- package/dist/meta/TableRow.json +3 -0
- package/dist/meta/Tag.json +54 -0
- package/dist/meta/TagGroup.json +211 -0
- package/dist/meta/TimeField.json +224 -0
- package/dist/meta/Toggle.json +2 -2
- package/dist/meta/components.json +1010 -36
- package/dist/meta/contrast.json +1133 -6
- package/dist/meta/index.json +86 -12
- package/dist/meta/patterns/DataTable.json +27 -3
- package/dist/meta/patterns/PageShell.json +15 -2
- package/dist/meta/patterns/index.json +7 -3
- package/dist/styles/agent-activity.css +4 -2
- package/dist/styles/approval-gate.css +4 -3
- package/dist/styles/card.css +75 -0
- package/dist/styles/citation.css +4 -2
- package/dist/styles/command-palette.css +250 -0
- package/dist/styles/confidence-indicator.css +2 -2
- package/dist/styles/index.css +5 -0
- package/dist/styles/kbd.css +47 -0
- package/dist/styles/streaming-text.css +3 -2
- package/dist/styles/table.css +51 -0
- package/dist/styles/tag-group.css +172 -0
- package/dist/styles/time-field.css +31 -0
- package/llms.txt +2 -2
- package/package.json +1 -1
package/dist/components/Table.js
CHANGED
|
@@ -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
|
-
|
|
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":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAC;AAUxE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE,CAAC,CACH,cACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,SAAS,qBACJ,cAAc,YAE/B,mBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE;YACT,WAAW;YACX,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;YACpD,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YACrC,SAAS;SACV;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,YAEX,QAAQ,GACH,GACJ,CACP,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,YACxC,mBAAW,IAAI,EAAE,GAAG,EAAE,GAAG,YACtB,QAAQ,GACH,GACqB,CAChC,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,YACxC,mBAAW,IAAI,EAAE,GAAG,EAAE,GAAG,YACtB,QAAQ,GACH,GACqB,CAChC,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAsBpC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC;IAElC,OAAO,CACL,iBACM,IAAI,EACR,GAAG,EAAE,GAAG,mBACO,UAAU,IAAI,SAAS,EACtC,SAAS,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAEjE,SAAS;gBACR,CAAC,MAAM,CAAC,CAAC,CAAC,CACR,aAAI,KAAK,EAAC,KAAK,YACb,KAAC,QAAQ,OAAK,SAAS,GAAI,GACxB,CACN,CAAC,CAAC,CAAC,CACF,uBACE,KAAC,QAAQ,OAAK,SAAS,GAAI,GACxB,CACN,CAAC,EACH,QAAQ,IACN,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../src/components/Table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzC;;;;GAIG;AACH,MAAM,mBAAmB,GAAG,aAAa,CAAyB,IAAI,CAAC,CAAC;AAUxE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,EACE,OAAO,GAAG,SAAS,EACnB,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,EACjC,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE,CAAC,CACH,cACE,SAAS,EAAC,qBAAqB,EAC/B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,gBACC,SAAS,qBACJ,cAAc,YAE/B,mBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE;YACT,WAAW;YACX,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;YACpD,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YACrC,SAAS;SACV;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,YAEX,QAAQ,GACH,GACJ,CACP,CACF,CAAC;AACF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,YACxC,mBAAW,IAAI,EAAE,GAAG,EAAE,GAAG,YACtB,QAAQ,GACH,GACqB,CAChC,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAGjC,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAChC,KAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAC,MAAM,YACxC,mBAAW,IAAI,EAAE,GAAG,EAAE,GAAG,YACtB,QAAQ,GACH,GACqB,CAChC,CAAC,CAAC;AACH,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAsBpC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAChC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC;IAElC,OAAO,CACL,iBACM,IAAI,EACR,GAAG,EAAE,GAAG,mBACO,UAAU,IAAI,SAAS,EACtC,SAAS,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAEjE,SAAS;gBACR,CAAC,MAAM,CAAC,CAAC,CAAC,CACR,aAAI,KAAK,EAAC,KAAK,YACb,KAAC,QAAQ,OAAK,SAAS,GAAI,GACxB,CACN,CAAC,CAAC,CAAC,CACF,uBACE,KAAC,QAAQ,OAAK,SAAS,GAAI,GACxB,CACN,CAAC,EACH,QAAQ,IACN,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AACF,QAAQ,CAAC,WAAW,GAAG,UAAU,CAAC;AAgDlC,MAAM,QAAQ,GAAG,CAAC,EAAE,SAAS,EAAqC,EAAE,EAAE,CAAC,CACrE,cACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iBACV,MAAM,EAClB,SAAS,EAAC,OAAO,YAEhB,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,CAC3B,eAAM,CAAC,EAAC,uBAAuB,GAAG,CACnC,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,CAC/B,eAAM,CAAC,EAAC,sBAAsB,GAAG,CAClC,CAAC,CAAC,CAAC,CACF,eAAM,CAAC,EAAC,2BAA2B,GAAG,CACvC,GACG,CACP,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CACE,EACE,MAAM,EACN,KAAK,EAAE,SAAS,EAChB,KAAK,GAAG,SAAS,EACjB,OAAO,GAAG,SAAS,EACnB,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EACD,GAAG,EACH,EAAE;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,IAAI,aAAa,KAAK,SAAS,CAAC;IACzD,8DAA8D;IAC9D,MAAM,KAAK,GAAG,MAAM;QAClB,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,iBAAiB,GAAG;QACxB,yBAAyB;QACzB,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE;QACzD,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QACnC,UAAU,IAAI,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;KACxE;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,MAAM,OAAO,GAAG,CACd,8BACG,IAAI,IAAI,CACP,eAAM,SAAS,EAAC,sBAAsB,iBAAa,MAAM,YACtD,IAAI,GACA,CACR,EACA,QAAQ,EACR,UAAU,CAAC,CAAC,CAAC,CACZ,eACE,SAAS,EAAC,0EAA0E,iBACxE,MAAM,YAElB,KAAC,QAAQ,IAAC,SAAS,EAAE,aAAa,GAAI,GACjC,CACR,CAAC,CAAC,CAAC,CACF,YAAY,IAAI,CACd,eACE,SAAS,EAAC,qDAAqD,iBACnD,MAAM,YAEjB,YAAY,GACR,CACR,CACF,IACA,CACJ,CAAC;IAEF,OAAO,CACL,KAAC,GAAG,OACE,IAAI,EACR,GAAG,EAAE,GAAG,KACJ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,eAK1B,UAAU,IAAI,aAAa,KAAK,MAAM;YACpC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,gBAEX,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,kBACrC,WAAW,IAAI,SAAS,EACtC,SAAS,EAAE,SAAS,YAEnB,UAAU,CAAC,CAAC,CAAC;QACZ,kEAAkE;QAClE,gEAAgE;QAChE,sBAAsB;QACtB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAChE,OAAO,GACD,CACV,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAE,iBAAiB,YAAG,OAAO,GAAQ,CACrD,GACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AACF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC"}
|
|
@@ -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":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
package/dist/components/index.js
CHANGED
|
@@ -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":"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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|